:root {
    --yoy-accent:#f59e0b;
    --yoy-accent-dark:#b45309;
    --yoy-accent-soft:rgba(245,158,11,.16);
}

.page-yoy .wrap {
    max-width:1180px;
    margin:0 auto;
    padding:34px 28px 64px;
}

.page-yoy .hero {
    color:#fff;
    margin:0 0 28px;
    text-shadow:0 2px 14px rgba(0,0,0,.48);
}

.page-yoy .hero h1 {
    font-size:clamp(42px, 6vw, 64px);
    font-weight:950;
    letter-spacing:-.055em;
    line-height:.95;
    margin:0 0 8px;
}

.page-yoy .hero p {
    margin:0;
    color:rgba(255,255,255,.86);
    font-size:16px;
}

.page-yoy .controls {
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:20px;
}

.page-yoy .controls-label {
    font-size:13px;
    color:rgba(255,255,255,.84);
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.07em;
}

.page-yoy .toggle-group {
    display:inline-flex;
    gap:5px;
    padding:5px;
    border-radius:999px;
    background:rgba(255,255,255,.16);
    border:1px solid rgba(255,255,255,.24);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
}

.page-yoy .toggle-btn {
    border:0;
    border-radius:999px;
    padding:9px 18px;
    cursor:pointer;
    font-weight:900;
    font-size:14px;
    background:transparent;
    color:rgba(255,255,255,.78);
    transition:background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.page-yoy .toggle-btn:hover {
    color:#fff;
    transform:translateY(-1px);
}

.page-yoy .toggle-btn.active {
    background:linear-gradient(135deg, var(--yoy-accent), var(--yoy-accent-dark));
    color:white;
    box-shadow:0 10px 24px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.25);
}

.page-yoy .card,
.page-yoy .chart-card,
.page-yoy .stats-card {
    background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.84));
    border:1px solid rgba(255,255,255,.48);
    border-radius:26px;
    box-shadow:0 22px 60px rgba(0,0,0,.24);
    backdrop-filter:blur(18px) saturate(145%);
    -webkit-backdrop-filter:blur(18px) saturate(145%);
}

.page-yoy .card {
    padding:24px;
    margin-bottom:18px;
}

.page-yoy .chart-card {
    padding:24px;
    margin-bottom:18px;
}

.page-yoy .chart-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    margin-bottom:12px;
    gap:16px;
    flex-wrap:wrap;
}

.page-yoy .chart-head h2,
.page-yoy .stats-card h2 {
    font-size:26px;
    font-weight:950;
    letter-spacing:-.04em;
    color:#0f172a;
}

.page-yoy .chart-legend {
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin-bottom:16px;
}

.page-yoy .legend-item {
    display:flex;
    align-items:center;
    gap:7px;
    font-size:13px;
    font-weight:850;
    cursor:pointer;
    padding:6px 11px;
    border-radius:999px;
    background:rgba(15,23,42,.045);
    border:1px solid rgba(15,23,42,.07);
    transition:opacity .15s ease, transform .15s ease, background .15s ease;
}

.page-yoy .legend-item:hover {
    transform:translateY(-1px);
    background:rgba(15,23,42,.075);
}

.page-yoy .legend-item.muted {
    opacity:.34;
}

.page-yoy .legend-swatch {
    width:24px;
    height:4px;
    border-radius:999px;
}

.page-yoy .legend-item.current-year {
    background:rgba(15,118,110,.10);
    border-color:rgba(15,118,110,.22);
}

.page-yoy .legend-item.current-year .legend-swatch {
    height:5px;
}

.page-yoy .chart-wrap {
    height:420px;
    margin:0 -8px;
}

.page-yoy .chart-note {
    margin-top:14px;
    font-size:13px;
    color:#64748b;
    line-height:1.5;
}

.page-yoy .stats-card {
    padding:24px;
    margin-bottom:18px;
    overflow-x:auto;
}

.page-yoy .stats-card h2 {
    margin-bottom:16px;
}

.page-yoy .stats-table {
    width:100%;
    border-collapse:collapse;
    font-size:14px;
}

.page-yoy .stats-table th {
    text-align:left;
    padding:11px 14px;
    border-bottom:2px solid rgba(226,232,240,.92);
    color:#64748b;
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.07em;
    white-space:nowrap;
}

.page-yoy .stats-table td {
    padding:13px 14px;
    border-bottom:1px solid rgba(226,232,240,.86);
    white-space:nowrap;
}

.page-yoy .stats-table tbody tr:hover {
    background:rgba(248,250,252,.86);
}

.page-yoy .stats-table tbody tr:last-child td {
    border-bottom:none;
}

.page-yoy .current-yr-row td {
    font-weight:900;
    background:rgba(15,118,110,.055);
}

.page-yoy .year-swatch {
    display:inline-block;
    width:14px;
    height:14px;
    border-radius:4px;
    vertical-align:middle;
    margin-right:7px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.34);
}

.page-yoy .bar-cell {
    min-width:160px;
}

.page-yoy .bar-wrap {
    background:#f1f5f9;
    border-radius:999px;
    height:8px;
    width:100%;
    overflow:hidden;
}

.page-yoy .bar-fill {
    height:100%;
    border-radius:999px;
}

.page-yoy .loading {
    text-align:center;
    padding:60px 0;
    color:#64748b;
    font-size:15px;
}

.page-yoy .source {
    margin-top:14px;
    color:rgba(255,255,255,.78);
    font-size:13px;
    line-height:1.5;
}

.page-yoy .source a {
    color:white;
    font-weight:800;
}

@media (max-width:700px) {
    .page-yoy .wrap {
        padding:28px 16px 46px;
    }

    .page-yoy .hero {
        margin-bottom:22px;
    }

    .page-yoy .hero h1 {
        font-size:40px;
    }

    .page-yoy .hero p {
        font-size:15px;
    }

    .page-yoy .controls {
        align-items:flex-start;
        flex-direction:column;
    }

    .page-yoy .toggle-group {
        width:100%;
    }

    .page-yoy .toggle-btn {
        flex:1;
        padding:10px 12px;
        font-size:13px;
    }

    .page-yoy .chart-card,
    .page-yoy .stats-card {
        border-radius:22px;
        padding:18px;
    }

    .page-yoy .chart-wrap {
        height:320px;
        margin:0 -12px;
    }

    .page-yoy .chart-head h2,
    .page-yoy .stats-card h2 {
        font-size:22px;
    }

    .page-yoy .legend-item {
        font-size:12px;
        padding:5px 9px;
    }
}
