:root {
    --sidebar-width: 240px;
    --navbar-height: 72px;
    --background: #f4f7fb;
    --surface: #ffffff;
    --border: #e6ebf2;
    --text-primary: #18212f;
    --text-secondary: #718096;
    --primary: #2563eb;
    --primary-light: #e8f0ff;
    --success: #16a34a;
}

html[data-bs-theme="dark"] {
    --background: #0f172a;
    --surface: #182235;
    --border: #2b3a50;
    --text-primary: #f1f5f9;
    --text-secondary: #94a3b8;
    --primary: #60a5fa;
    --primary-light: #1e3a5f;
    --success: #4ade80;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
    margin: 0;
    background: var(--background);
    color: var(--text-primary);
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    transition: background .25s ease, color .25s ease;
}

.top-navbar {
    position: sticky;
    top: 0;
    z-index: 1000;
    height: var(--navbar-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 32px;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--text-primary);
    font-size: 24px;
    font-weight: 750;
    text-decoration: none;
}
.brand:hover { color: var(--text-primary); }
.brand-icon {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    color: white;
    background: linear-gradient(135deg, #2563eb, #60a5fa);
}

.navbar-actions { display: flex; align-items: center; gap: 18px; }
.version-badge { color: var(--text-secondary); font-size: 14px; }
.theme-button {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface);
    color: var(--text-primary);
    font-size: 18px;
    transition: transform .2s ease, background .2s ease;
}
.theme-button:hover { transform: translateY(-2px); background: var(--background); }

.app-layout { display: flex; min-height: calc(100vh - var(--navbar-height)); }
.sidebar {
    position: fixed;
    top: var(--navbar-height);
    bottom: 0;
    left: 0;
    width: var(--sidebar-width);
    padding: 24px 16px;
    background: var(--surface);
    border-right: 1px solid var(--border);
}
.sidebar-title {
    padding: 0 16px 16px;
    color: #a0aec0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.4px;
}
.sidebar-menu { display: flex; flex-direction: column; gap: 7px; }
.menu-item {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 13px 16px;
    border-radius: 12px;
    color: #526071;
    text-decoration: none;
    font-size: 15px;
    font-weight: 500;
    transition: color .2s ease, background .2s ease, transform .2s ease;
}
html[data-bs-theme="dark"] .menu-item { color: #cbd5e1; }
.menu-item i { width: 20px; font-size: 18px; }
.menu-item:hover { color: var(--primary); background: var(--primary-light); transform: translateX(3px); }
.menu-item.active {
    color: white;
    background: linear-gradient(135deg, #2563eb, #3b82f6);
    box-shadow: 0 8px 20px rgba(37, 99, 235, .22);
}

.main-content {
    width: calc(100% - var(--sidebar-width));
    margin-left: var(--sidebar-width);
    padding: 32px;
}
.page-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 28px; }
.page-header h1 { margin: 0 0 7px; font-size: 30px; font-weight: 750; }
.page-header p { margin: 0; color: var(--text-secondary); }
.system-status {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 14px;
    border: 1px solid #bbf7d0;
    border-radius: 999px;
    color: #15803d;
    background: #f0fdf4;
    font-size: 14px;
    font-weight: 600;
}
html[data-bs-theme="dark"] .system-status {
    color: #86efac;
    background: #153522;
    border-color: #255b37;
}
.status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--success);
    box-shadow: 0 0 0 5px rgba(22, 163, 74, .12);
}

.stat-card {
    height: 100%;
    min-height: 150px;
    display: flex;
    align-items: flex-start;
    gap: 17px;
    padding: 22px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: 0 8px 25px rgba(30, 41, 59, .05);
    transition: transform .2s ease, box-shadow .2s ease;
}
.stat-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(30, 41, 59, .09); }
html[data-bs-theme="dark"] .stat-card { box-shadow: 0 8px 25px rgba(0, 0, 0, .22); }
.stat-icon {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    font-size: 21px;
}
.stat-icon-blue { color: #2563eb; background: #e8f0ff; }
.stat-icon-green { color: #16a34a; background: #eaf9ef; }
.stat-icon-purple { color: #7c3aed; background: #f1eafe; }
.stat-icon-orange { color: #ea580c; background: #fff0e7; }
.stat-content { display: flex; flex-direction: column; }
.stat-label { margin-bottom: 5px; color: var(--text-secondary); font-size: 13px; font-weight: 600; }
.stat-value { margin-bottom: 4px; color: var(--text-primary); font-size: 30px; line-height: 1.1; }
.stat-text-value { font-size: 25px; }
.stat-detail { color: #94a3b8; font-size: 12px; }

.dashboard-panel {
    margin-top: 28px;
    padding: 26px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 20px;
    box-shadow: 0 8px 25px rgba(30, 41, 59, .05);
}
html[data-bs-theme="dark"] .dashboard-panel { box-shadow: 0 8px 25px rgba(0, 0, 0, .22); }
.panel-header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 20px; border-bottom: 1px solid var(--border); }
.panel-header h2 { margin: 0 0 6px; font-size: 20px; font-weight: 700; }
.panel-header p { margin: 0; color: var(--text-secondary); font-size: 14px; }
.view-all-link { display: flex; align-items: center; gap: 8px; color: var(--primary); text-decoration: none; font-size: 14px; font-weight: 600; }
.empty-state { padding: 58px 20px; text-align: center; }
.empty-state-icon {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    margin: 0 auto 18px;
    border-radius: 18px;
    color: var(--primary);
    background: var(--primary-light);
    font-size: 27px;
}
.empty-state h3 { margin-bottom: 8px; font-size: 18px; font-weight: 700; }
.empty-state p { margin: 0; color: var(--text-secondary); }

@media (max-width: 991px) {
    :root { --sidebar-width: 78px; }
    .sidebar-title, .menu-item span { display: none; }
    .menu-item { justify-content: center; }
    .menu-item i { width: auto; }
}

@media (max-width: 767px) {
    .version-badge { display: none; }
    .top-navbar { padding: 0 18px; }
    .main-content { padding: 22px 16px; }
    .page-header { align-items: flex-start; flex-direction: column; gap: 16px; }
}

/* Sprint 12 - Live Dashboard */
.dashboard-notice {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: -8px 0 24px;
    padding: 13px 16px;
    border: 1px solid #bfdbfe;
    border-radius: 14px;
    color: #1d4ed8;
    background: #eff6ff;
    font-size: 14px;
}

html[data-bs-theme="dark"] .dashboard-notice {
    color: #bfdbfe;
    background: #172554;
    border-color: #1e3a8a;
}

.system-warning {
    color: #b45309;
    background: #fffbeb;
    border-color: #fde68a;
}

.system-warning .status-dot {
    background: #f59e0b;
    box-shadow: 0 0 0 5px rgba(245, 158, 11, .14);
}

.scan-date-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border-radius: 999px;
    color: var(--text-secondary);
    background: var(--background);
    font-size: 13px;
    font-weight: 600;
}

.picks-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    padding-top: 24px;
}

.pick-card {
    position: relative;
    overflow: hidden;
    padding: 22px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: var(--background);
}

.pick-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, #2563eb, #22c55e);
}

.pick-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}

.pick-rank {
    margin-right: 8px;
    color: var(--primary);
    font-size: 13px;
    font-weight: 800;
}

.pick-league {
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 600;
}

.pick-card h3 {
    margin: 0 0 16px;
    font-size: 18px;
    line-height: 1.45;
}

.pick-card h3 span {
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 500;
}

.pick-market {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 18px;
    color: #15803d;
    font-weight: 750;
}

html[data-bs-theme="dark"] .pick-market {
    color: #86efac;
}

.pick-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-bottom: 16px;
}

.pick-metrics div {
    padding: 10px 8px;
    border: 1px solid var(--border);
    border-radius: 12px;
    text-align: center;
    background: var(--surface);
}

.pick-metrics span,
.pick-metrics strong {
    display: block;
}

.pick-metrics span {
    margin-bottom: 3px;
    color: var(--text-secondary);
    font-size: 10px;
    text-transform: uppercase;
}

.pick-metrics strong {
    font-size: 15px;
}

.decision-badge,
.risk-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
}

.decision-badge {
    padding: 7px 10px;
    color: #1d4ed8;
    background: #dbeafe;
}

.risk-badge {
    padding: 6px 9px;
}

.risk-low { color: #15803d; background: #dcfce7; }
.risk-medium { color: #b45309; background: #fef3c7; }
.risk-high { color: #b91c1c; background: #fee2e2; }

.pick-reasons {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin: 16px 0 0;
    padding: 15px 0 0;
    border-top: 1px solid var(--border);
    list-style: none;
}

.pick-reasons li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: var(--text-secondary);
    font-size: 12px;
}

.pick-reasons i {
    color: #22c55e;
}

@media (max-width: 1199px) {
    .picks-grid { grid-template-columns: 1fr; }
}

@media (max-width: 575px) {
    .panel-header { align-items: flex-start; flex-direction: column; gap: 14px; }
    .pick-metrics { grid-template-columns: 1fr; }
}

/* Sprint 12.1 - Today's Picks page */

.picks-summary-badge {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 15px;
    border: 1px solid var(--border);
    border-radius: 999px;
    color: var(--primary);
    background: var(--surface);
    font-size: 14px;
    font-weight: 700;
}

.picks-page-panel {
    margin-top: 0;
}

.picks-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding-top: 24px;
}

.pick-row-card {
    display: flex;
    gap: 20px;
    padding: 22px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: var(--background);
    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.pick-row-card:hover {
    transform: translateY(-2px);
    border-color: rgba(37, 99, 235, 0.35);
    box-shadow: 0 12px 30px rgba(30, 41, 59, 0.08);
}

.pick-row-rank {
    flex: 0 0 50px;
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    color: white;
    background: linear-gradient(135deg, #2563eb, #3b82f6);
    font-size: 16px;
    font-weight: 800;
    box-shadow: 0 8px 20px rgba(37, 99, 235, 0.2);
}

.pick-row-main {
    flex: 1;
    min-width: 0;
}

.pick-row-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.pick-row-heading h3 {
    margin: 5px 0 0;
    color: var(--text-primary);
    font-size: 21px;
    font-weight: 750;
}

.pick-row-heading h3 span {
    color: var(--text-secondary);
    font-size: 14px;
    font-weight: 500;
}

.pick-page-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}

.metric-box {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 15px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
}

.metric-box span {
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 600;
}

.metric-box strong {
    color: var(--text-primary);
    font-size: 18px;
}

.metric-box .metric-decision {
    color: var(--primary);
    font-size: 15px;
}

.selection-reasons {
    margin-top: 18px;
    padding-top: 17px;
    border-top: 1px solid var(--border);
}

.selection-reasons-title {
    display: block;
    margin-bottom: 10px;
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
}

.selection-reasons ul {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 18px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.selection-reasons li {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--text-secondary);
    font-size: 13px;
}

.selection-reasons li i {
    color: var(--success);
}

.picks-empty-state {
    max-width: 720px;
    margin: 0 auto;
}

.empty-state-note {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 18px;
    padding: 11px 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    color: var(--text-secondary);
    background: var(--background);
    font-size: 13px;
}

@media (max-width: 991px) {
    .pick-page-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .picks-summary-badge {
        align-self: flex-start;
    }

    .pick-row-card {
        flex-direction: column;
    }

    .pick-row-heading {
        flex-direction: column;
    }

    .pick-page-metrics {
        grid-template-columns: 1fr;
    }
}


/* Sprint 13.2 - Statistics Center */
.statistics-status-badge,
.league-count-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: 999px;
    color: var(--primary);
    background: var(--surface);
    font-size: 13px;
    font-weight: 700;
}

.statistics-stat-card { min-height: 142px; }

.statistics-period-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.period-card { margin-top: 28px; }
.period-card-heading { display: flex; align-items: center; gap: 14px; }
.period-card-heading h2 { margin: 0 0 4px; font-size: 18px; }
.period-card-heading p { margin: 0; color: var(--text-secondary); font-size: 12px; }
.period-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    color: var(--primary);
    background: var(--primary-light);
    font-size: 19px;
}
.period-card-value { margin-top: 22px; font-size: 36px; line-height: 1; font-weight: 800; }
.period-progress,
.mini-progress { overflow: hidden; background: var(--background); border-radius: 999px; }
.period-progress { height: 9px; margin-top: 16px; }
.period-progress span,
.mini-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #2563eb, #60a5fa); }
.period-card-meta { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 15px; color: var(--text-secondary); font-size: 13px; }
.period-card-meta strong { color: var(--text-primary); }

.statistics-table-wrap { overflow-x: auto; margin-top: 8px; }
.statistics-table { width: 100%; min-width: 760px; border-collapse: collapse; }
.statistics-table th,
.statistics-table td { padding: 16px 14px; border-bottom: 1px solid var(--border); text-align: left; font-size: 14px; }
.statistics-table th { color: var(--text-secondary); font-size: 11px; letter-spacing: .55px; text-transform: uppercase; }
.statistics-table tbody tr:last-child td { border-bottom: 0; }
.statistics-table tbody tr { transition: background .2s ease; }
.statistics-table tbody tr:hover { background: var(--background); }
.league-rank { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: var(--primary); background: var(--primary-light); font-weight: 800; }
.result-value { display: inline-flex; min-width: 30px; justify-content: center; padding: 4px 8px; border-radius: 8px; font-weight: 700; }
.result-win { color: #15803d; background: #dcfce7; }
.result-loss { color: #b91c1c; background: #fee2e2; }
html[data-bs-theme="dark"] .result-win { color: #86efac; background: #153522; }
html[data-bs-theme="dark"] .result-loss { color: #fca5a5; background: #451a1a; }
.league-rate-cell { min-width: 130px; }
.league-rate-cell strong { display: block; margin-bottom: 7px; }
.mini-progress { height: 6px; }
.statistics-empty-state { padding-bottom: 34px; }
.statistics-next-panel { display: flex; align-items: center; gap: 18px; }
.statistics-next-panel h2 { margin: 0 0 5px; font-size: 18px; }
.statistics-next-panel p { margin: 0; color: var(--text-secondary); }
.statistics-next-icon { width: 52px; height: 52px; flex: 0 0 52px; display: grid; place-items: center; border-radius: 15px; color: #7c3aed; background: #f1eafe; font-size: 23px; }
html[data-bs-theme="dark"] .statistics-next-icon { background: #312e57; color: #c4b5fd; }

@media (max-width: 991px) {
    .statistics-period-grid { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
    .statistics-page-header { align-items: flex-start; flex-direction: column; gap: 14px; }
    .statistics-status-badge { align-self: flex-start; }
    .statistics-next-panel { align-items: flex-start; }
}

/* Sprint 13.3 - Statistics interactive charts */
.statistics-charts-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-top: 28px;
}

.statistics-chart-panel {
    margin-top: 0;
    min-width: 0;
}

.statistics-chart-wide {
    grid-column: 1 / -1;
}

.chart-panel-header {
    align-items: flex-start;
    gap: 18px;
}

.chart-period-filter {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--background);
}

.chart-filter-button {
    border: 0;
    border-radius: 8px;
    padding: 7px 11px;
    color: var(--text-secondary);
    background: transparent;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s ease, color .2s ease, box-shadow .2s ease;
}

.chart-filter-button:hover {
    color: var(--primary);
}

.chart-filter-button.active {
    color: #fff;
    background: var(--primary);
    box-shadow: 0 5px 12px rgba(37, 99, 235, .2);
}

.chart-canvas-wrap {
    position: relative;
    height: 310px;
    margin-top: 18px;
}

.chart-canvas-large {
    height: 350px;
}

.chart-empty-state {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 1px dashed var(--border);
    border-radius: 16px;
    color: var(--text-secondary);
    background: var(--background);
    text-align: center;
    font-size: 13px;
}

.chart-empty-state[hidden] {
    display: none;
}

.chart-empty-state i {
    color: var(--primary);
    font-size: 30px;
}

.chart-legend-summary {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
    margin-top: 16px;
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 650;
}

.chart-legend-summary span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.legend-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
}

.legend-win { background: #16a34a; }
.legend-loss { background: #dc2626; }
.legend-pending { background: #f59e0b; }

@media (max-width: 991px) {
    .statistics-charts-grid {
        grid-template-columns: 1fr;
    }

    .statistics-chart-wide {
        grid-column: auto;
    }
}

@media (max-width: 767px) {
    .chart-panel-header {
        flex-direction: column;
    }

    .chart-period-filter {
        align-self: stretch;
    }

    .chart-filter-button {
        flex: 1;
    }

    .chart-canvas-wrap,
    .chart-canvas-large {
        height: 290px;
    }
}

/* Sprint 13.4 — Statistics filters */
.statistics-filter-panel {
    margin-bottom: 24px;
    padding: 22px;
}
.statistics-filter-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}
.statistics-filter-heading h2 {
    margin: 0 0 5px;
    font-size: 18px;
}
.statistics-filter-heading h2 i { margin-right: 7px; }
.statistics-filter-heading p {
    margin: 0;
    color: var(--text-secondary);
}
.statistics-filter-count {
    flex: 0 0 auto;
    padding: 7px 11px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--background);
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 700;
}
.statistics-filter-form {
    display: grid;
    grid-template-columns: repeat(5, minmax(125px, 1fr)) auto;
    align-items: end;
    gap: 14px;
}
.statistics-filter-field {
    display: grid;
    gap: 7px;
}
.statistics-filter-field > span {
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 700;
}
.statistics-filter-actions {
    display: flex;
    gap: 9px;
    white-space: nowrap;
}
.statistics-filter-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
@media (max-width: 1199px) {
    .statistics-filter-form { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
    .statistics-filter-actions { grid-column: span 3; }
}
@media (max-width: 767px) {
    .statistics-filter-heading { flex-direction: column; }
    .statistics-filter-form { grid-template-columns: 1fr; }
    .statistics-filter-actions { grid-column: auto; flex-wrap: wrap; }
    .statistics-filter-actions .btn { flex: 1 1 145px; justify-content: center; }
}

/* Sprint 13.5 — Statistics Center polish and release */
.statistics-sr-status {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.statistics-filter-help { margin: 12px 0 0; color: var(--text-secondary); font-size: 12px; }
.statistics-active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 16px; }
.statistics-active-label { color: var(--text-secondary); font-size: 12px; font-weight: 700; }
.filter-chip { padding: 6px 10px; border: 1px solid #bfdbfe; border-radius: 999px; color: #1d4ed8; background: #eff6ff; font-size: 12px; font-weight: 700; }
html[data-bs-theme="dark"] .filter-chip { color: #bfdbfe; background: #172554; border-color: #1e3a8a; }
.statistics-table caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.statistics-empty-action { display: inline-flex; align-items: center; gap: 7px; margin-top: 18px; }
.statistics-release-panel { display: flex; align-items: center; gap: 18px; }
.statistics-release-panel h2 { margin: 0 0 5px; font-size: 18px; }
.statistics-release-panel p { margin: 0; color: var(--text-secondary); }
.statistics-release-badge { margin-left: auto; padding: 7px 11px; border-radius: 999px; color: #15803d; background: #dcfce7; font-size: 12px; font-weight: 800; }
html[data-bs-theme="dark"] .statistics-release-badge { color: #86efac; background: #153522; }
.chart-canvas-wrap.is-loading::before { content: ""; position: absolute; inset: 0; z-index: 2; border-radius: 16px; background: linear-gradient(90deg, var(--background) 25%, var(--surface) 50%, var(--background) 75%); background-size: 200% 100%; animation: statistics-skeleton 1.2s infinite; }
@keyframes statistics-skeleton { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .chart-canvas-wrap.is-loading::before { animation: none; } .stat-card, .menu-item, .theme-button { transition: none; } }
.statistics-noscript { margin-top: 18px; padding: 12px 14px; border: 1px solid #fde68a; border-radius: 12px; color: #92400e; background: #fffbeb; }
.form-control:focus-visible, .form-select:focus-visible, .btn:focus-visible, .chart-filter-button:focus-visible { outline: 3px solid rgba(37, 99, 235, .28); outline-offset: 2px; }
@media (max-width: 767px) { .statistics-release-panel { align-items: flex-start; flex-wrap: wrap; } .statistics-release-badge { margin-left: 0; } }


/* Sprint 14.2 — Learning Center page */
.learning-page-header { align-items: center; }
.learning-readiness-badge { display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border-radius:999px;font-size:12px;font-weight:800; }
.learning-readiness-badge.is-ready { color:#15803d;background:#dcfce7; }
.learning-readiness-badge.is-waiting { color:#a16207;background:#fef3c7; }
html[data-bs-theme="dark"] .learning-readiness-badge.is-ready { color:#86efac;background:#153522; }
html[data-bs-theme="dark"] .learning-readiness-badge.is-waiting { color:#fde68a;background:#422006; }
.learning-readiness-panel,.learning-next-panel { display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px; }
.learning-readiness-copy,.learning-next-panel { display:flex;align-items:center;gap:16px; }
.learning-readiness-copy h2,.learning-next-panel h2 { margin:0 0 5px;font-size:18px; }
.learning-readiness-copy p,.learning-next-panel p { margin:0;color:var(--text-secondary); }
.learning-panel-icon { width:52px;height:52px;flex:0 0 52px;display:grid;place-items:center;border-radius:15px;color:#7c3aed;background:#f1eafe;font-size:23px; }
html[data-bs-theme="dark"] .learning-panel-icon { color:#c4b5fd;background:#312e57; }
.learning-progress-block { min-width:250px;text-align:right; }
.learning-progress-block strong { display:block;font-size:18px; }
.learning-progress-block>span { display:block;color:var(--text-secondary);font-size:12px; }
.learning-progress { height:8px;margin-top:10px;overflow:hidden;border-radius:999px;background:var(--background); }
.learning-progress span { display:block;height:100%;border-radius:inherit;background:var(--primary); }
.learning-kpi-grid { margin-bottom:24px; }
.learning-grid { display:grid;gap:24px;margin-bottom:24px; }
.learning-grid-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.learning-section { min-width:0;margin:0; }
.learning-section .panel-header>i { color:var(--primary);font-size:22px; }
.learning-table { margin:0; }
.learning-table th { white-space:nowrap; }
.sample-badge { display:block;width:max-content;margin-top:4px;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800; }
.sample-badge.ready { color:#15803d;background:#dcfce7; }
.sample-badge.low { color:#a16207;background:#fef3c7; }
html[data-bs-theme="dark"] .sample-badge.ready { color:#86efac;background:#153522; }
html[data-bs-theme="dark"] .sample-badge.low { color:#fde68a;background:#422006; }
.learning-ranking { display:grid;gap:10px; }
.learning-rank-row { display:grid;grid-template-columns:auto 1fr minmax(90px,130px);align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:14px; }
.learning-rank-row small { display:block;color:var(--text-secondary); }
.learning-rate { text-align:right; }
.learning-score-bands { display:grid;grid-template-columns:repeat(7,minmax(100px,1fr));gap:12px; }
.score-band-card { padding:15px;border:1px solid var(--border);border-radius:14px;background:var(--background); }
.score-band-card>span,.score-band-card>small { display:block;color:var(--text-secondary); }
.score-band-card>strong { display:block;margin:7px 0 2px;font-size:20px; }
.score-band-card.no-data { opacity:.55; }
.signal-list { display:grid;gap:10px; }
.signal-row { display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:12px;border:1px solid var(--border);border-radius:14px; }
.signal-row.positive>i { color:#16a34a; }.signal-row.negative>i { color:#dc2626; }
.signal-row span { display:block;color:var(--text-secondary);font-size:12px; }
.signal-row b { font-size:14px; }
.learning-inline-empty { margin:16px 0 0;padding:18px;border:1px dashed var(--border);border-radius:14px;color:var(--text-secondary);text-align:center; }
.learning-empty-state { padding:54px 24px;text-align:center; }
.learning-empty-state h2 { margin:16px 0 8px;font-size:22px; }
.learning-empty-state p { max-width:650px;margin:0 auto 20px;color:var(--text-secondary); }
.learning-sprint-badge { margin-left:auto;padding:7px 11px;border-radius:999px;color:#1d4ed8;background:#dbeafe;font-size:12px;font-weight:800; }
html[data-bs-theme="dark"] .learning-sprint-badge { color:#bfdbfe;background:#172554; }
@media (max-width:1199px){.learning-score-bands{grid-template-columns:repeat(4,minmax(100px,1fr));}}
@media (max-width:991px){.learning-grid-two{grid-template-columns:1fr}.learning-readiness-panel{align-items:flex-start;flex-direction:column}.learning-progress-block{width:100%;text-align:left}.learning-score-bands{grid-template-columns:repeat(3,minmax(100px,1fr));}}
@media (max-width:767px){.learning-page-header{align-items:flex-start;flex-direction:column}.learning-score-bands{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-next-panel{align-items:flex-start;flex-wrap:wrap}.learning-sprint-badge{margin-left:0}.learning-rank-row{grid-template-columns:auto 1fr}.learning-rate{grid-column:2;text-align:left}}


/* Sprint 14.3 — Learning Charts */
.learning-charts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:24px}.learning-chart-panel{min-width:0;margin:0}.learning-chart-wide{grid-column:1/-1}.learning-chart-panel .chart-canvas-wrap{height:300px}.learning-chart-panel .chart-canvas-large{height:360px}.learning-chart-panel [data-learning-empty-for][hidden]{display:none}.learning-chart-panel canvas[hidden]{display:none}.learning-chart-panel .chart-canvas-wrap.is-loading::before{content:"";position:absolute;inset:0;z-index:2;border-radius:16px;background:linear-gradient(90deg,var(--background) 25%,var(--surface) 50%,var(--background) 75%);background-size:200% 100%;animation:statistics-skeleton 1.2s infinite}@media(prefers-reduced-motion:reduce){.learning-chart-panel .chart-canvas-wrap.is-loading::before{animation:none}}@media(max-width:991px){.learning-charts-grid{grid-template-columns:1fr}.learning-chart-wide{grid-column:auto}}@media(max-width:767px){.learning-chart-panel .chart-canvas-wrap,.learning-chart-panel .chart-canvas-large{height:290px}.learning-chart-panel .chart-panel-header{align-items:flex-start}.learning-chart-panel .chart-period-filter{width:100%}.learning-chart-panel .chart-filter-button{flex:1}}

/* Sprint 14.4 - Learning Insights Engine */
.learning-insights-section { margin-top: 1.25rem; }
.learning-insights-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.learning-insight-card { display: flex; gap: .9rem; padding: 1rem; border: 1px solid var(--border-color, #dfe5ec); border-radius: 14px; background: var(--card-bg, #fff); }
.learning-insight-card.tone-positive { border-left: 4px solid #198754; }
.learning-insight-card.tone-warning { border-left: 4px solid #dc8b00; }
.learning-insight-card.tone-info { border-left: 4px solid #0d6efd; }
.learning-insight-icon { flex: 0 0 auto; font-size: 1.35rem; line-height: 1; }
.tone-positive .learning-insight-icon { color: #198754; }
.tone-warning .learning-insight-icon { color: #dc8b00; }
.tone-info .learning-insight-icon { color: #0d6efd; }
.learning-insight-content { min-width: 0; }
.learning-insight-content h3 { margin: .35rem 0 .45rem; font-size: 1rem; }
.learning-insight-content p { margin: 0 0 .55rem; }
.learning-insight-content small { opacity: .72; }
.learning-insight-meta { display: flex; align-items: center; justify-content: space-between; gap: .6rem; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.confidence-badge { padding: .18rem .45rem; border-radius: 999px; background: rgba(108,117,125,.14); white-space: nowrap; }
.confidence-high { color: #198754; }
.confidence-medium { color: #b06a00; }
.confidence-low { color: #6c757d; }
.learning-insights-note { display: flex; gap: .55rem; align-items: center; margin-top: 1rem; padding: .8rem 1rem; border-radius: 10px; background: rgba(13,110,253,.08); font-size: .9rem; }
@media (max-width: 820px) { .learning-insights-grid { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .learning-insight-card { padding: .85rem; } .learning-insight-meta { align-items: flex-start; flex-direction: column; } }


/* Sprint 14.5 - Learning Center polish and stable release */
.learning-release-panel{display:flex;align-items:center;gap:18px;margin-top:24px;border:1px solid rgba(25,135,84,.28);background:linear-gradient(135deg,rgba(25,135,84,.08),rgba(13,110,253,.05))}
.learning-release-panel h2{margin:0 0 5px;font-size:18px}.learning-release-panel p{margin:0;color:var(--text-secondary)}
.learning-release-badge{margin-left:auto;padding:7px 11px;border-radius:999px;color:#15803d;background:#dcfce7;font-size:12px;font-weight:800;white-space:nowrap}
html[data-bs-theme="dark"] .learning-release-badge{color:#86efac;background:#153522}
.learning-insight-card:focus-within{outline:3px solid rgba(37,99,235,.22);outline-offset:2px}
@media(max-width:767px){.learning-release-panel{align-items:flex-start;flex-wrap:wrap}.learning-release-badge{margin-left:0}}

/* Sprint 15.1 Part 2 - Confidence Calibration */
.confidence-calibration-section{margin-top:24px}
.calibration-overview{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}
.calibration-overview article{padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-soft)}
.calibration-overview span{display:block;color:var(--text-secondary);font-size:12px;margin-bottom:5px}
.calibration-overview strong{font-size:17px}
.calibration-pill{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}
.status-well_calibrated{background:rgba(25,135,84,.12);color:#198754}
.status-overconfident{background:rgba(220,53,69,.12);color:#dc3545}
.status-underconfident{background:rgba(13,110,253,.12);color:#0d6efd}
.status-insufficient_data{background:rgba(108,117,125,.14);color:#6c757d}
@media(max-width:1100px){.calibration-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.calibration-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Sprint 15.2 Part 2 - Dynamic Weight Engine integration */
.dynamic-weights-section{margin-top:24px}
.dynamic-weight-mode{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(13,110,253,.1);color:#0d6efd;font-size:11px;font-weight:800;white-space:nowrap}
.dynamic-weight-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.dynamic-weight-overview article{padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-soft)}
.dynamic-weight-overview span,.factor-reliability{display:block;color:var(--text-secondary);font-size:11px}
.dynamic-weight-overview strong{font-size:17px}
.dynamic-weight-pill{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}
.recommendation-increase{background:rgba(25,135,84,.12);color:#198754}
.recommendation-decrease{background:rgba(220,53,69,.12);color:#dc3545}
.recommendation-keep{background:rgba(13,110,253,.12);color:#0d6efd}
.recommendation-insufficient_data{background:rgba(108,117,125,.14);color:#6c757d}
.weight-delta-positive{color:#198754;font-weight:700}.weight-delta-negative{color:#dc3545;font-weight:700}
@media(max-width:900px){.dynamic-weight-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.dynamic-weight-overview{grid-template-columns:1fr}.dynamic-weight-mode{margin-top:8px}}


/* Sprint 15.3 Part 2 - Weight Validation integration */
.weight-validation-section{margin-top:24px}
.weight-validation-mode{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(111,66,193,.1);color:#6f42c1;font-size:11px;font-weight:800;white-space:nowrap}
.weight-validation-overview{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}
.weight-validation-overview article{padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-soft)}
.weight-validation-overview span{display:block;color:var(--text-secondary);font-size:11px;margin-bottom:5px}
.weight-validation-overview strong{font-size:16px}
.weight-validation-pill{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px!important;font-weight:800;white-space:nowrap}
.validation-improved{background:rgba(25,135,84,.12);color:#198754}
.validation-degraded{background:rgba(220,53,69,.12);color:#dc3545}
.validation-neutral{background:rgba(13,110,253,.12);color:#0d6efd}
.validation-insufficient_data{background:rgba(108,117,125,.14);color:#6c757d}
.validation-positive{color:#198754}.validation-negative{color:#dc3545}
.weight-validation-warning{display:flex;align-items:center;gap:8px;margin-top:14px;padding:10px 12px;border-radius:10px;background:rgba(255,193,7,.12);color:var(--text-primary);font-size:13px}
@media(max-width:1100px){.weight-validation-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.weight-validation-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.weight-validation-mode{margin-top:8px}}

/* Sprint 15.4 Part 2 - Weight Promotion Gate integration */
.weight-promotion-section{margin-top:24px}
.weight-promotion-mode{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(253,126,20,.11);color:#fd7e14;font-size:11px;font-weight:800;white-space:nowrap}
.weight-promotion-overview{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}
.weight-promotion-overview article{padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-soft)}
.weight-promotion-overview span{display:block;color:var(--text-secondary);font-size:11px;margin-bottom:5px}
.weight-promotion-overview strong{font-size:16px}
.weight-promotion-pill{display:inline-flex!important;padding:5px 9px;border-radius:999px;font-size:11px!important;font-weight:800;white-space:nowrap}
.promotion-promote{background:rgba(25,135,84,.12);color:#198754}.promotion-hold{background:rgba(255,193,7,.16);color:#997404}.promotion-reject{background:rgba(220,53,69,.12);color:#dc3545}.promotion-insufficient_data{background:rgba(108,117,125,.14);color:#6c757d}
.promotion-checks-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}
.promotion-check{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:11px 12px;border:1px solid var(--border-color);border-radius:10px;background:var(--surface-soft);font-size:12px}.promotion-check strong{font-size:11px}.check-pass i,.check-pass strong{color:#198754}.check-fail i,.check-fail strong{color:#dc3545}
.promotion-reasons{display:grid;gap:8px;margin-top:14px}.promotion-reasons p{display:flex;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;border-radius:10px;background:rgba(13,110,253,.07);font-size:13px}
@media(max-width:1100px){.weight-promotion-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.promotion-checks-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.weight-promotion-overview,.promotion-checks-grid{grid-template-columns:1fr}.weight-promotion-mode{margin-top:8px}}

/* Sprint 15.5 - Weight Versioning & Audit Trail */
.weight-versioning-section{margin-top:24px}
.weight-versioning-mode{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(32,201,151,.12);color:#14866d;font-size:11px;font-weight:800;white-space:nowrap}
.weight-versioning-overview{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}
.weight-versioning-overview article{padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-soft);overflow:hidden}
.weight-versioning-overview span{display:block;color:var(--text-secondary);font-size:11px;margin-bottom:5px}.weight-versioning-overview strong{display:block;font-size:14px;overflow-wrap:anywhere}
.version-status-pill{display:inline-flex!important;width:max-content;padding:5px 9px;border-radius:999px;font-size:11px!important;font-weight:800;white-space:nowrap}.version-candidate{background:rgba(25,135,84,.12);color:#198754}.version-observation{background:rgba(108,117,125,.14);color:#6c757d}
.version-comparison-card{display:flex;align-items:center;gap:10px;margin-top:14px;padding:12px;border-radius:10px;background:rgba(32,201,151,.08)}.version-comparison-card div{display:grid;gap:3px}.version-comparison-card span{color:var(--text-secondary);font-size:12px}
.version-history-list{display:grid;gap:8px;margin-top:14px}.version-history-list article{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--border-color);border-radius:10px;background:var(--surface-soft)}.version-history-list article div{display:grid}.version-history-list article span{font-size:11px;color:var(--text-secondary)}.version-history-list article b{font-size:12px}
@media(max-width:1100px){.weight-versioning-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.weight-versioning-overview{grid-template-columns:1fr}.weight-versioning-mode{margin-top:8px}.version-history-list article{grid-template-columns:1fr auto}.version-history-list article b{grid-column:1/-1}}

/* Sprint 16.1 Part 2 - Weight Activation Manager integration */
.weight-activation-section{margin-top:24px}
.weight-activation-mode{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(13,110,253,.11);color:#0d6efd;font-size:11px;font-weight:800;white-space:nowrap}
.weight-activation-overview{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}
.weight-activation-overview article{padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-soft);overflow:hidden}
.weight-activation-overview span{display:block;color:var(--text-secondary);font-size:11px;margin-bottom:5px}.weight-activation-overview strong{display:block;font-size:14px;overflow-wrap:anywhere}
.activation-status-pill{display:inline-flex!important;width:max-content;padding:5px 9px;border-radius:999px;font-size:11px!important;font-weight:800;white-space:nowrap}.activation-active{background:rgba(25,135,84,.13);color:#198754}.activation-inactive{background:rgba(108,117,125,.14);color:#6c757d}
.activation-state-card,.activation-empty-card{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:13px 14px;border-radius:11px}.activation-state-card{background:rgba(25,135,84,.09)}.activation-empty-card{background:rgba(255,193,7,.11)}.activation-state-card>i{color:#198754;font-size:20px}.activation-empty-card>i{color:#997404;font-size:20px}.activation-state-card div,.activation-empty-card div{display:grid;gap:3px}.activation-state-card span,.activation-empty-card span{color:var(--text-secondary);font-size:12px}
.activation-candidate-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.activation-candidate-card>div{display:grid;gap:4px;padding:12px;border:1px solid var(--border-color);border-radius:10px;background:var(--surface-soft)}.activation-candidate-card span{color:var(--text-secondary);font-size:11px}.activation-candidate-card strong{font-size:12px;overflow-wrap:anywhere}
@media(max-width:1100px){.weight-activation-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.activation-candidate-card{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.weight-activation-overview,.activation-candidate-card{grid-template-columns:1fr}.weight-activation-mode{margin-top:8px}}

/* Sprint 16.2 Part 2 - Weight Rollback Manager integration */
.weight-rollback-section{margin-top:24px}
.weight-rollback-mode{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(220,53,69,.1);color:#dc3545;font-size:11px;font-weight:800;white-space:nowrap}
.weight-rollback-overview{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}
.weight-rollback-overview article{padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-soft);overflow:hidden}
.weight-rollback-overview span{display:block;color:var(--text-secondary);font-size:11px;margin-bottom:5px}.weight-rollback-overview strong{display:block;font-size:14px;overflow-wrap:anywhere}
.rollback-status-pill{display:inline-flex!important;width:max-content;padding:5px 9px;border-radius:999px;font-size:11px!important;font-weight:800;white-space:nowrap}.rollback-available{background:rgba(25,135,84,.13);color:#198754}.rollback-unavailable{background:rgba(108,117,125,.14);color:#6c757d}
.rollback-target-card,.rollback-empty-card{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:13px 14px;border-radius:11px}.rollback-target-card{background:rgba(13,110,253,.08)}.rollback-empty-card{background:rgba(255,193,7,.11)}.rollback-target-card>i{color:#0d6efd;font-size:20px}.rollback-empty-card>i{color:#997404;font-size:20px}.rollback-target-card div,.rollback-empty-card div{display:grid;gap:3px}.rollback-target-card span,.rollback-empty-card span{color:var(--text-secondary);font-size:12px}
.rollback-candidate-list{display:grid;gap:8px;margin-top:14px}.rollback-candidate-list article{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--border-color);border-radius:10px;background:var(--surface-soft)}.rollback-candidate-list article div{display:grid;gap:2px}.rollback-candidate-list article span{font-size:11px;color:var(--text-secondary)}.rollback-candidate-list article b{font-size:12px}
@media(max-width:1100px){.weight-rollback-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.weight-rollback-overview{grid-template-columns:1fr}.weight-rollback-mode{margin-top:8px}.rollback-candidate-list article{grid-template-columns:1fr auto}.rollback-candidate-list article b{grid-column:1/-1}}

/* Sprint 16.3 Part 2 - Shadow / Canary Evaluation integration */
.shadow-evaluation-section{margin-top:24px}
.shadow-evaluation-mode{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(111,66,193,.11);color:#6f42c1;font-size:11px;font-weight:800;white-space:nowrap}
.shadow-evaluation-overview{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}
.shadow-evaluation-overview article{padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-soft);overflow:hidden}
.shadow-evaluation-overview span{display:block;color:var(--text-secondary);font-size:11px;margin-bottom:5px}.shadow-evaluation-overview strong{display:block;font-size:14px;overflow-wrap:anywhere}
.shadow-status-pill{display:inline-flex!important;width:max-content;padding:5px 9px;border-radius:999px;font-size:11px!important;font-weight:800;white-space:nowrap}.shadow-improved{background:rgba(25,135,84,.13);color:#198754}.shadow-degraded{background:rgba(220,53,69,.12);color:#dc3545}.shadow-neutral{background:rgba(13,110,253,.11);color:#0d6efd}.shadow-insufficient-data{background:rgba(108,117,125,.14);color:#6c757d}
.shadow-comparison-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.shadow-comparison-grid article{display:grid;gap:5px;padding:14px;border:1px solid var(--border-color);border-radius:11px;background:var(--surface-soft)}.shadow-comparison-grid span,.shadow-comparison-grid small{color:var(--text-secondary);font-size:11px}.shadow-comparison-grid strong{font-size:18px}
.shadow-empty-card{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:13px 14px;border-radius:11px;background:rgba(255,193,7,.11)}.shadow-empty-card>i{color:#997404;font-size:20px}.shadow-empty-card div{display:grid;gap:3px}.shadow-empty-card span{color:var(--text-secondary);font-size:12px}
@media(max-width:1100px){.shadow-evaluation-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.shadow-evaluation-overview,.shadow-comparison-grid{grid-template-columns:1fr}.shadow-evaluation-mode{margin-top:8px}}


/* Sprint 16.4 Part 2 - Active Weight Performance Monitor integration */
.active-weight-monitor-section{margin-top:24px}
.active-weight-monitor-mode{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(25,135,84,.11);color:#198754;font-size:11px;font-weight:800;white-space:nowrap}
.active-weight-monitor-overview{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}
.active-weight-monitor-overview article{padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-soft);overflow:hidden}
.active-weight-monitor-overview span{display:block;color:var(--text-secondary);font-size:11px;margin-bottom:5px}.active-weight-monitor-overview strong{display:block;font-size:14px;overflow-wrap:anywhere}
.active-monitor-status-pill{display:inline-flex!important;width:max-content;padding:5px 9px;border-radius:999px;font-size:11px!important;font-weight:800;white-space:nowrap}.active-monitor-healthy{background:rgba(25,135,84,.13);color:#198754}.active-monitor-watch{background:rgba(255,193,7,.16);color:#8a6d00}.active-monitor-degraded{background:rgba(220,53,69,.12);color:#dc3545}.active-monitor-insufficient-data{background:rgba(108,117,125,.14);color:#6c757d}
.active-weight-monitor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.active-weight-monitor-grid article{display:grid;gap:5px;padding:14px;border:1px solid var(--border-color);border-radius:11px;background:var(--surface-soft)}.active-weight-monitor-grid span,.active-weight-monitor-grid small{color:var(--text-secondary);font-size:11px}.active-weight-monitor-grid strong{font-size:18px}
.active-monitor-empty-card{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:13px 14px;border-radius:11px;background:rgba(255,193,7,.11)}.active-monitor-empty-card>i{color:#997404;font-size:20px}.active-monitor-empty-card div{display:grid;gap:3px}.active-monitor-empty-card span{color:var(--text-secondary);font-size:12px}
.active-monitor-alerts{display:grid;gap:8px;margin:14px 0}.active-monitor-alerts p{display:flex;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;border-radius:10px;background:rgba(255,193,7,.1);font-size:13px}.active-monitor-alerts i{color:#997404}
@media(max-width:1100px){.active-weight-monitor-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.active-weight-monitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.active-weight-monitor-overview,.active-weight-monitor-grid{grid-template-columns:1fr}.active-weight-monitor-mode{margin-top:8px}}

/* Sprint 16.5 - Weight Governance & Final Audit */
.weight-governance-audit { border-top: 3px solid currentColor; }
.weight-governance-audit .learning-safety-contract { font-weight: 700; margin-top: 1rem; }

/* Sprint 17.2 Part 2 - Weighted Match Scoring integration */
.weighted-match-scoring-section{margin-top:24px}
.weighted-scoring-mode{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(13,110,253,.11);color:#0d6efd;font-size:11px;font-weight:800;white-space:nowrap}
.weighted-scoring-overview{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}
.weighted-scoring-overview article{padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-soft);overflow:hidden}
.weighted-scoring-overview span{display:block;color:var(--text-secondary);font-size:11px;margin-bottom:5px}.weighted-scoring-overview strong{display:block;font-size:14px;overflow-wrap:anywhere}
.weighted-status-pill{display:inline-flex!important;width:max-content;padding:5px 9px;border-radius:999px;font-size:11px!important;font-weight:800}.weighted-ready{background:rgba(25,135,84,.13);color:#198754}.weighted-unavailable{background:rgba(108,117,125,.14);color:#6c757d}
.weighted-scoring-empty-card{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:13px 14px;border-radius:11px;background:rgba(255,193,7,.11)}.weighted-scoring-empty-card>i{color:#997404;font-size:20px}.weighted-scoring-empty-card div{display:grid;gap:3px}.weighted-scoring-empty-card span{color:var(--text-secondary);font-size:12px}
.weighted-scoring-table tfoot td{border-top:2px solid var(--border-color)}
@media(max-width:1100px){.weighted-scoring-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.weighted-scoring-overview{grid-template-columns:1fr}.weighted-scoring-mode{margin-top:8px}}

/* Sprint 17.3 Part 3 — Confidence Calibration Preview */
.confidence-preview-section { margin-top: 1.5rem; }
.confidence-preview-mode { display: inline-flex; align-items: center; gap: .45rem; font-size: .75rem; font-weight: 800; letter-spacing: .04em; }
.confidence-preview-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); gap: .85rem; margin: 1rem 0; }
.confidence-preview-overview article { padding: .9rem; border: 1px solid var(--border-color, #dfe3e8); border-radius: .8rem; display: flex; flex-direction: column; gap: .35rem; }
.confidence-preview-overview span { font-size: .78rem; opacity: .72; }
.confidence-preview-status { font-size: .78rem; letter-spacing: .04em; }
.confidence-preview-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; margin: 1rem 0; }
.confidence-preview-card { border: 1px solid var(--border-color, #dfe3e8); border-radius: .8rem; padding: 1rem; }
.confidence-preview-card h3 { font-size: 1rem; margin-bottom: .65rem; }
.confidence-preview-card p { margin: .45rem 0; }
.confidence-adjustments-table td { vertical-align: middle; }
.confidence-explanation-list { display: grid; gap: .55rem; margin: 1rem 0; }
.confidence-explanation-list div { display: flex; align-items: flex-start; gap: .55rem; }

/* Sprint 17.4 Part 3 — Prediction Audit Trail integration */
.prediction-audit-section{margin-top:1.5rem}
.prediction-audit-mode{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .65rem;border-radius:999px;background:rgba(111,66,193,.11);color:#6f42c1;font-size:.72rem;font-weight:800;letter-spacing:.03em;white-space:nowrap}
.prediction-audit-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.85rem;margin:1rem 0}
.prediction-audit-overview article{padding:.9rem;border:1px solid var(--border-color,#dfe3e8);border-radius:.8rem;background:var(--surface-soft);overflow:hidden}
.prediction-audit-overview span{display:block;font-size:.76rem;opacity:.72;margin-bottom:.35rem}.prediction-audit-overview strong{display:block;overflow-wrap:anywhere}
.prediction-audit-status{display:inline-flex!important;width:max-content;padding:.3rem .55rem;border-radius:999px;font-size:.72rem!important}.prediction-audit-ready{background:rgba(25,135,84,.13);color:#198754}.prediction-audit-unavailable{background:rgba(108,117,125,.14);color:#6c757d}
.prediction-audit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:1rem 0}.prediction-audit-card{padding:1rem;border:1px solid var(--border-color,#dfe3e8);border-radius:.8rem}.prediction-audit-card h3{font-size:1rem;margin-bottom:.7rem}.prediction-audit-card p{margin:.45rem 0}.prediction-audit-id{font-family:monospace;font-size:.78rem;overflow-wrap:anywhere}
.prediction-audit-empty{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;border-radius:.8rem;background:rgba(255,193,7,.11);margin:1rem 0}.prediction-audit-empty i{font-size:1.2rem;color:#997404}.prediction-audit-empty div{display:grid;gap:.2rem}.prediction-audit-empty span{font-size:.8rem;opacity:.75}

/* Sprint 19.3 — Daily Workflow Dashboard & History */
.workflow-dashboard-section{margin-top:24px}.workflow-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:16px 0}.workflow-summary-grid article{padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-soft)}.workflow-summary-grid span{display:block;color:var(--text-secondary);font-size:11px;margin-bottom:5px}.workflow-summary-grid strong{display:block;overflow-wrap:anywhere}.workflow-status{display:inline-flex!important;width:max-content;padding:5px 9px;border-radius:999px;font-size:11px!important;font-weight:800}.workflow-ready{background:rgba(25,135,84,.13);color:#198754}.workflow-empty{background:rgba(108,117,125,.14);color:#6c757d}.workflow-id-row{display:flex;align-items:center;gap:9px;padding:11px 13px;border-radius:10px;background:var(--surface-soft);font-family:monospace;font-size:12px;overflow-wrap:anywhere}.workflow-empty{display:flex;align-items:center;gap:12px;padding:16px;border-radius:12px}.workflow-empty>i{font-size:22px}.workflow-empty div{display:grid;gap:3px}.workflow-empty span{font-size:12px}.workflow-readonly-badge{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(13,110,253,.11);color:#0d6efd;font-size:11px;font-weight:800}.workflow-filter-bar{display:flex;align-items:end;gap:12px;margin-bottom:18px;padding:14px;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-soft)}.workflow-filter-bar label{display:grid;gap:5px;font-size:12px}.workflow-history-totals{grid-template-columns:repeat(4,minmax(0,1fr))}.workflow-history-list{display:grid;gap:14px}.workflow-history-card{padding:18px;border:1px solid var(--border-color);border-radius:14px;background:var(--surface-card)}.workflow-history-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.workflow-history-head h2{margin:8px 0 2px;font-size:20px}.workflow-history-head small{color:var(--text-secondary)}.workflow-stage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.workflow-stage-grid div{padding:10px;border-radius:10px;background:var(--surface-soft)}.workflow-stage-grid span{display:block;font-size:11px;color:var(--text-secondary)}.workflow-code{display:block;padding:9px 11px;border-radius:9px;overflow-wrap:anywhere}.workflow-picks-list{display:grid;gap:7px;margin-top:12px}.workflow-picks-list div{display:flex;justify-content:space-between;gap:12px;padding:9px 11px;border-radius:9px;background:var(--surface-soft);font-size:12px}
@media(max-width:1000px){.workflow-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.workflow-summary-grid,.workflow-history-totals,.workflow-stage-grid{grid-template-columns:1fr}.workflow-filter-bar,.workflow-history-head,.workflow-picks-list div{align-items:stretch;flex-direction:column}.workflow-picks-list div{display:grid}}
