/* ========================================
   Analytics - Field Scorecard
   By-technician Inspection / Service / Service-Quote rollup over the org chart.
   ======================================== */

/* ========================================
   Filter Bar
   ======================================== */
.scorecard-filter-bar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.scorecard-filter-controls {
    display: flex;
    gap: 16px;
    align-items: flex-end;
    flex-wrap: wrap;
}

.scorecard-filter-bar .filter-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.scorecard-filter-bar .filter-group label {
    font-size: 12px;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.scorecard-select,
.scorecard-date {
    padding: 7px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #ffffff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 500;
    color: #0f172a;
    min-height: 34px;
    cursor: pointer;
}

.scorecard-select:focus,
.scorecard-date:focus {
    outline: none;
    border-color: #059669;
}

.scorecard-custom-range {
    display: flex;
    gap: 16px;
    align-items: flex-end;
}

/* Period selector hosted inside the table's group-header row */
.scorecard-period-cell {
    padding: 8px 12px 6px 20px !important;
    vertical-align: middle;
    text-align: left;
}

.scorecard-period-cell .scorecard-select {
    font-size: 12px;
    font-weight: 600;
    padding: 5px 8px;
    min-height: 30px;
}

.scorecard-period-cell .scorecard-custom-range {
    display: inline-flex;
    gap: 6px;
    margin-top: 6px;
    align-items: center;
}

.scorecard-period-cell .scorecard-date {
    font-size: 12px;
    padding: 4px 6px;
    min-height: 28px;
}

.filter-checkbox {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 500;
    color: #0f172a;
    cursor: pointer;
    user-select: none;
    padding-bottom: 7px;
}

.filter-checkbox input[type="checkbox"] {
    width: 15px;
    height: 15px;
    accent-color: #059669;
    cursor: pointer;
}

/* ========================================
   Card & Table
   ======================================== */
.scorecard-card {
    background: #ffffff;
    border: 1px solid #e1e8ef;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 24px;
}

.scorecard-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

/* Header - group row */
.scorecard-header-groups th {
    padding: 14px 12px 6px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    text-align: center;
    border-bottom: none;
}

.scorecard-header-groups .scorecard-entity-col {
    text-align: left;
}

.scorecard-group.inspections { color: #2563eb; background: #eff6ff; }
.scorecard-group.services    { color: #0891b2; background: #ecfeff; }
.scorecard-group.quotes      { color: #7c3aed; background: #f5f3ff; }
.scorecard-group.gm          { color: #059669; background: #ecfdf5; }

/* Header - labels row */
.scorecard-header-labels th {
    padding: 4px 12px 10px;
    font-size: 11px;
    font-weight: 600;
    color: #64748b;
    border-bottom: 2px solid #e2e8f0;
}

/* Column sizing */
.scorecard-entity-col {
    width: 25%;
    text-align: left;
    padding-left: 20px !important;
}

.scorecard-count {
    width: 6%;
    text-align: center;
}

.scorecard-dollar {
    width: 11%;
    text-align: right;
    padding-right: 14px !important;
}

.scorecard-pct {
    width: 8%;
    text-align: right;
    padding-right: 16px !important;
}

/* Body rows */
.scorecard-table tbody tr {
    border-bottom: 1px solid #f1f5f9;
    transition: background 0.1s ease;
}

.scorecard-table tbody tr:hover {
    background: #f8fafc;
}

.scorecard-table tbody td {
    padding: 10px 12px;
}

.scorecard-table tbody td.scorecard-entity-col {
    font-weight: 600;
    color: #0f172a;
}

.scorecard-table tbody td.scorecard-count {
    text-align: center;
    color: #475569;
}

.scorecard-table tbody td.scorecard-dollar {
    text-align: right;
    font-weight: 600;
    color: #0f172a;
}

.scorecard-table tbody td.scorecard-pct {
    text-align: right;
    font-weight: 600;
    color: #059669;
}

/* Row depth indentation */
.scorecard-row[data-depth="0"] td.scorecard-entity-col { padding-left: 20px !important; font-size: 14px; font-weight: 700; }
.scorecard-row[data-depth="1"] td.scorecard-entity-col { padding-left: 44px !important; font-size: 13px; font-weight: 600; }
.scorecard-row[data-depth="2"] td.scorecard-entity-col { padding-left: 68px !important; }
.scorecard-row[data-depth="3"] td.scorecard-entity-col { padding-left: 92px !important; }
.scorecard-row[data-depth="4"] td.scorecard-entity-col { padding-left: 116px !important; }

.scorecard-row[data-depth="2"] td.scorecard-entity-col,
.scorecard-row[data-depth="3"] td.scorecard-entity-col,
.scorecard-row[data-depth="4"] td.scorecard-entity-col {
    font-size: 13px;
    font-weight: 500;
    color: #334155;
}

/* Expand/Collapse toggle */
.scorecard-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-right: 6px;
    cursor: pointer;
    color: #94a3b8;
    font-size: 10px;
    transition: transform 0.15s ease, color 0.15s ease;
    vertical-align: middle;
}

.scorecard-toggle:hover { color: #059669; }
.scorecard-toggle.expanded { transform: rotate(90deg); }
.scorecard-toggle.empty { visibility: hidden; }

.scorecard-entity-icon {
    color: #64748b;
    font-size: 12px;
    margin-right: 6px;
    vertical-align: middle;
}

.scorecard-entity-badge {
    font-size: 10px;
    font-weight: 500;
    color: #94a3b8;
    margin-left: 8px;
    vertical-align: middle;
}

.scorecard-row.child-hidden { display: none; }

/* Drill-down affordance on tech metric cells */
.sc-drill { cursor: pointer; }
.sc-drill:hover { text-decoration: underline; color: #059669; }

/* Tech name links to the Tech Dashboard */
.sc-tech-link { color: #0f172a; text-decoration: none; }
.sc-tech-link:hover { color: #059669; text-decoration: underline; }

/* Footer totals */
.scorecard-totals th {
    padding: 14px 12px;
    font-size: 13px;
    font-weight: 700;
    color: #0f172a;
    border-top: 2px solid #e2e8f0;
    background: #f8fafc;
}

.scorecard-totals th.scorecard-count { text-align: center; }
.scorecard-totals th.scorecard-dollar { text-align: right; }
.scorecard-totals th.scorecard-pct { text-align: right; }

/* Zero muting */
.scorecard-zero {
    color: #cbd5e1 !important;
    font-weight: 400 !important;
}
