@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=Sora:wght@300;400;500;600;700&display=swap";:root{--bg-ink:#f0f6fb;--bg-haze:#d9e9f2;--bg-accent:#f8dccf;--panel:#ffffffe0;--panel-border:#3b62842e;--text-main:#17334d;--text-soft:#46647e;--accent:#e7774e;--accent-strong:#d45f35;--chip-bg:#58acc726;--chip-border:#58acc747;--shadow:0 22px 45px -28px #16344f73}*{box-sizing:border-box}body{min-height:100vh;color:var(--text-main);background:radial-gradient(circle at 14% 8%, var(--bg-accent) 0%, transparent 28%), radial-gradient(circle at 92% 18%, var(--bg-haze) 0%, transparent 34%), linear-gradient(140deg, #f8fbfe 0%, #eef5fa 52%, #e7f1f8 100%);margin:0;font-family:Sora,sans-serif}body:before{content:"";pointer-events:none;background-image:linear-gradient(#3e63810f 1px,#0000 1px),linear-gradient(90deg,#3e63810f 1px,#0000 1px);background-size:38px 38px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#00000059,#0000 75%);mask-image:linear-gradient(#00000059,#0000 75%)}#app{max-width:1440px;margin:0 auto;padding:clamp(1rem,3vw,2rem)}.dashboard-shell{gap:.9rem;display:grid}.hero-banner{border:1px solid var(--panel-border);background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow);border-radius:20px;justify-content:space-between;align-items:flex-start;gap:1rem;padding:clamp(1rem,2vw,1.45rem);display:flex}.kicker{text-transform:uppercase;letter-spacing:.2em;color:var(--accent-strong);margin:0;font-size:.78rem;font-weight:700}h1{margin:.35rem 0;font-family:Fraunces,serif;font-size:clamp(1.9rem,4vw,2.8rem);line-height:1.05}.subtitle{max-width:58ch;color:var(--text-soft);margin:0;font-size:clamp(.87rem,1.7vw,.98rem)}.updated-at{color:#2f536f;letter-spacing:.02em;margin:.55rem 0 0;font-size:.8rem;font-weight:600}.clear-btn{background:linear-gradient(130deg, var(--accent), var(--accent-strong));color:#fff;cursor:pointer;border:0;border-radius:12px;padding:.72rem 1rem;font-family:inherit;font-weight:600;transition:transform .15s,filter .2s}.clear-btn:hover:not(:disabled){filter:saturate(1.15);transform:translateY(-1px)}.clear-btn:disabled{opacity:.45;cursor:not-allowed}.clear-btn:focus-visible,.chip:focus-visible{outline-offset:2px;outline:2px solid #f08b64}.filters-strip{border:1px solid var(--panel-border);background:var(--panel);border-radius:16px;padding:.65rem .8rem}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip{border:1px solid var(--chip-border);background:var(--chip-bg);color:#1f4d6d;border-radius:999px;padding:.32rem .72rem;font-family:inherit;font-size:.78rem;font-weight:600}button.chip{cursor:pointer}.chip-idle{color:#5f7990;border-style:dashed;font-weight:500}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;display:grid}.kpi-card{border:1px solid var(--panel-border);background:var(--panel);box-shadow:var(--shadow);border-radius:16px;padding:.9rem 1rem}.kpi-label{color:var(--text-soft);text-transform:uppercase;letter-spacing:.14em;margin:0;font-size:.75rem}.kpi-value{margin:.4rem 0 0;font-family:Fraunces,serif;font-size:clamp(1.45rem,2.8vw,2rem);line-height:1.15}.kpi-value-small{font-family:Sora,sans-serif;font-size:clamp(.95rem,1.6vw,1.22rem);font-weight:700}.empty-state{color:#8e4f34;background:#fff9f4e0;border:1px dashed #e7774e70;border-radius:14px;padding:.72rem .95rem;font-size:.9rem}.chart-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:.75rem;display:grid}.panel{border:1px solid var(--panel-border);background:var(--panel);box-shadow:var(--shadow);border-radius:16px;padding:.9rem}.panel h2{margin:0;font-family:Fraunces,serif;font-size:clamp(1rem,1.9vw,1.3rem);line-height:1.2}.panel p{color:var(--text-soft);margin:.34rem 0 .8rem;font-size:.85rem}.panel-wide{grid-column:span 8}.panel-regular{grid-column:span 4}.chart-slot{height:280px;position:relative}.chart-tall{height:350px}.chart-slot canvas{width:100%!important;height:100%!important}.insight-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:.75rem;display:grid}.insight-list{color:var(--text-main);gap:.65rem;margin:0;padding-left:1.1rem;display:grid}.insight-list li{line-height:1.45}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.84rem}th,td{text-align:left;border-bottom:1px solid #3b628424;padding:.5rem .35rem}th{color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}tbody tr:hover{background:#58acc71f}@media (width<=1180px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-wide{grid-column:span 12}.panel-regular{grid-column:span 6}.insight-grid{grid-template-columns:1fr}}@media (width<=820px){.hero-banner{flex-direction:column;align-items:stretch}.clear-btn{width:100%}.panel-regular{grid-column:span 12}.chart-slot{height:250px}.chart-tall{height:300px}}
