:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--surface:#fff;--surface-2:#f5f8fc;--border:#e3e9f2;--border-strong:#cfd9e6;--text:#0b1726;--text-2:#4a5d75;--muted:#8494a8;--accent:#1d4ed8;--accent-2:#0891b2;--amber:#f59e0b;--success:#059669;--accent-soft:#eaf2ff;--glow:0 0 0 1px #0e749040, 0 14px 34px #0e749024;--radius:16px;--radius-sm:10px;--shadow:0 1px 2px #0b17260d, 0 6px 20px #0b17260f;--shadow-lg:0 18px 44px #0b172624;--header-from:#0b2a5b;--header-via:#123f86;--header-to:#0e6f8a;--font:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{margin:0}body{background:radial-gradient(900px 420px at 0% 0%, #1d4ed80f, transparent 60%), radial-gradient(800px 420px at 100% 0%, #0891b20f, transparent 60%), var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5;overflow-x:hidden}.num{font-variant-numeric:tabular-nums}button{font:inherit;color:inherit}a{color:var(--accent)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.header{background:radial-gradient(600px 200px at 85% -20%, #22d3ee59, transparent 70%), linear-gradient(120deg, var(--header-from) 0%, var(--header-via) 55%, var(--header-to) 100%);color:#fff;padding:18px 24px;position:relative;overflow:hidden;box-shadow:0 8px 24px #0b2a5b2e}.header:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff0f 1px,#0000 1px),linear-gradient(90deg,#ffffff0f 1px,#0000 1px);background-size:36px 36px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000,#000 40% 70%,#0000);mask-image:linear-gradient(90deg,#0000,#000 40% 70%,#0000)}.header:after{content:"";background:linear-gradient(90deg,#22d3ee,#38bdf8 40%,#f59e0b 80%,#fbbf24);height:3px;position:absolute;bottom:0;left:0;right:0}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1400px;margin:0 auto;display:flex;position:relative}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand-mark{filter:drop-shadow(0 4px 12px #00000040);flex:none;width:38px;height:38px}.brand h1{letter-spacing:-.02em;margin:0;font-size:1.4rem;font-weight:800}.brand p{color:#bae6fd;letter-spacing:.02em;margin:0;font-size:.8rem}.header-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{color:#e0f2fe;white-space:nowrap;background:#ffffff1f;border:1px solid #ffffff38;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:.78rem;font-weight:600;display:inline-flex}.chip-live:before{content:"";background:#34d399;border-radius:50%;width:7px;height:7px;animation:2s infinite pulse;box-shadow:0 0 8px #34d399}.chip-demo{color:#fef3c7;background:#f59e0b38;border-color:#fbbf2499}a.chip{text-decoration:none;transition:background .2s,border-color .2s}a.chip:hover{background:#ffffff38;border-color:#ffffff73}.page{max-width:1400px;margin:0 auto;padding:22px 24px 36px}.stack{gap:18px;display:grid}.stack>*{animation:.45s both rise}.stack>:nth-child(2){animation-delay:40ms}.stack>:nth-child(3){animation-delay:80ms}.stack>:nth-child(4){animation-delay:.12s}.stack>:nth-child(5){animation-delay:.16s}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:20px;position:relative}.card h3{text-transform:uppercase;letter-spacing:.08em;color:var(--text-2);margin:0 0 14px;font-size:.8rem;font-weight:800}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.card-head h3{margin:0}.muted{color:var(--text-2)}.grid-charts{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:18px;display:grid}.tabs{flex-wrap:wrap;gap:6px;display:flex}.tab{border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:7px 14px;font-size:.86rem;font-weight:600;transition:background .2s,color .2s,border-color .2s,box-shadow .2s;display:inline-flex;box-shadow:0 1px 2px #0b17260a}.tab:hover{color:var(--text);border-color:#93c5fd}.tab[aria-pressed=true]{color:#fff;background:linear-gradient(135deg,#1d4ed8,#0891b2);border-color:#0000;box-shadow:0 6px 18px #1d4ed847}.tab .count{background:var(--surface-2);color:var(--text-2);border-radius:999px;padding:1px 7px;font-size:.72rem}.tab[aria-pressed=true] .count{color:#fff;background:#ffffff38}.tabs-main .tab{padding:9px 18px;font-size:.92rem}.kpis{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:12px;display:grid}.kpi{text-align:left;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow);background:linear-gradient(#fff,#f7faff);min-width:0;padding:14px 16px;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;overflow:hidden}.kpi:before{content:"";background:var(--kpi-color,var(--accent));height:3px;position:absolute;inset:0 0 auto}.kpi:hover{border-color:color-mix(in srgb, var(--kpi-color,var(--accent)) 40%, white);box-shadow:0 14px 30px color-mix(in srgb, var(--kpi-color,var(--accent)) 18%, transparent);transform:translateY(-2px)}.kpi[aria-pressed=true]{border-color:var(--kpi-color,var(--accent));box-shadow:0 0 0 3px color-mix(in srgb, var(--kpi-color,var(--accent)) 18%, transparent)}.kpi-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;font-size:.72rem;font-weight:700;display:flex}.kpi-dot{background:var(--kpi-color);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--kpi-color) 18%, transparent);border-radius:50%;flex:none}.kpi-value{letter-spacing:-.02em;color:var(--text);margin-top:4px;font-size:1.85rem;font-weight:800}.kpi-sub{color:var(--muted);font-size:.76rem;font-weight:600}.kpi-bar{background:#edf2f8;border-radius:999px;height:5px;margin-top:10px;overflow:hidden}.kpi-bar>span{background:var(--kpi-color);border-radius:999px;height:100%;transition:width .8s cubic-bezier(.2,.8,.2,1);display:block}.kpi-hero{color:#fff;background:radial-gradient(120% 140% at 100% 0,#22d3ee8c,#0000 55%),linear-gradient(135deg,#0b2a5b 0%,#1d4ed8 50%,#0e7490 100%);border:none;grid-column:span 2;box-shadow:0 16px 36px #1d4ed84d}.kpi-hero:before{display:none}.kpi-hero:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff29,#0000);width:40%;animation:4.5s ease-in-out infinite shimmer;position:absolute;top:0;bottom:0;left:0}.kpi-hero .kpi-label,.kpi-hero .kpi-sub{color:#e0f2fee6}.kpi-hero .kpi-value{color:#fff;font-size:2.6rem}.kpi-hero .kpi-bar{background:#ffffff38}.kpi-hero .kpi-bar>span{background:linear-gradient(90deg,#fbbf24,#fde68a);box-shadow:0 0 10px #fbbf24b3}.kpi-hero:hover{box-shadow:0 20px 44px #1d4ed866}.kpi-hero[aria-pressed=true]{box-shadow:0 0 0 3px #93c5fd,0 16px 36px #1d4ed859}.module-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.module-card{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;padding:16px;transition:transform .2s,box-shadow .2s,border-color .2s;overflow:hidden}.module-card:hover{box-shadow:var(--glow);border-color:#7dd3fc;transform:translateY(-2px)}.module-card-top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.module-card-name{color:var(--text);font-size:.98rem;font-weight:700}.module-card-pct{background:linear-gradient(90deg,#1d4ed8,#0891b2);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.35rem;font-weight:800}.module-card-pct[data-tone=low]{background:linear-gradient(90deg,#d97706,#ea580c);-webkit-background-clip:text;background-clip:text}.module-card-pct[data-tone=full]{background:linear-gradient(90deg,#059669,#10b981);-webkit-background-clip:text;background-clip:text}.progress{background:#edf2f8;border-radius:999px;height:7px;margin:10px 0 8px;position:relative;overflow:hidden}.progress>span{background:linear-gradient(90deg,#1d4ed8,#06b6d4);border-radius:999px;height:100%;transition:width .9s cubic-bezier(.2,.8,.2,1);display:block;position:relative;overflow:hidden}.progress>span:after{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);width:40%;animation:2.8s ease-in-out infinite shimmer;position:absolute;inset:0}.module-card-pills{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.badge{white-space:nowrap;color:color-mix(in srgb, var(--badge-color) 78%, black);background:color-mix(in srgb, var(--badge-color) 11%, white);border:1px solid color-mix(in srgb, var(--badge-color) 28%, white);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:.75rem;font-weight:600;display:inline-flex}.badge:before{content:"";background:var(--badge-color);border-radius:50%;width:6px;height:6px}.pill-btn{cursor:pointer}.pill-btn:hover{background:color-mix(in srgb, var(--badge-color) 20%, white)}.insights{border-radius:var(--radius);background:radial-gradient(500px 180px at 100% 0,#22d3ee1f,#0000 70%),linear-gradient(135deg,#eff6ff,#ecfeff);border:1px solid #cfe3fb;padding:16px 18px 16px 22px;position:relative;overflow:hidden}.insights:before{content:"";background:linear-gradient(#1d4ed8,#06b6d4 60%,#f59e0b);width:4px;position:absolute;top:0;bottom:0;left:0}.insights-head{color:#0b2a5b;text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:8px;margin-bottom:8px;font-size:.8rem;font-weight:800;display:flex}.insights-head svg{color:#f59e0b;filter:drop-shadow(0 0 4px #f59e0b80)}.insights ul{color:#1e293b;gap:5px;margin:0;padding-left:18px;display:grid}.insights li::marker{color:#0891b2}.filter-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.input,.select{font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);min-width:0;padding:8px 12px}.input::placeholder{color:var(--muted)}.input{width:240px;max-width:100%}.input:focus,.select:focus{border-color:var(--accent-2);background:#fff;outline:none;box-shadow:0 0 0 3px #0891b226}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.filter-chip{color:#0b4a6f;cursor:pointer;background:#e0f2fe;border:1px solid #7dd3fc;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:560px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.85rem}thead th{z-index:1;text-align:left;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-bottom:1px solid var(--border-strong);background:#f1f5fb;padding:11px 12px;font-size:.72rem;font-weight:700;position:sticky;top:0}tbody td{vertical-align:top;color:#24364b;border-bottom:1px solid #eef2f7;padding:9px 12px}tbody tr{transition:background .15s}tbody tr:nth-child(2n){background:#fbfcfe}tbody tr:hover{background:#eef6ff}td.idx{color:var(--muted)}td.strong{color:var(--text);font-weight:600}td.wrap{min-width:180px;max-width:280px}.empty{text-align:center;color:var(--muted);padding:32px}.desc{color:var(--text-2);font-size:.82rem;display:inline-block;position:relative}.desc[data-truncated=true]{cursor:help}.desc-pop{color:#e2e8f0;width:min(640px,85vw);max-height:50vh;box-shadow:var(--shadow-lg);white-space:pre-wrap;word-break:break-word;z-index:20;background:#0b1726;border-radius:12px;margin-top:6px;padding:12px 14px;line-height:1.6;position:absolute;top:100%;right:0;overflow-y:auto}.chart-tooltip{color:#f8fafc;box-shadow:var(--shadow-lg);background:#0b1726;border-radius:12px;min-width:150px;padding:10px 12px;font-size:.8rem}.chart-tooltip-title{color:#7dd3fc;margin-bottom:6px;font-weight:700}.chart-tooltip-row{justify-content:space-between;align-items:center;gap:14px;display:flex}.chart-tooltip-row span:first-child{color:#cbd5e1;align-items:center;gap:6px;display:inline-flex}.chart-tooltip-total{border-top:1px solid #334155;margin-top:4px;padding-top:4px}.legend{color:var(--text-2);flex-wrap:wrap;justify-content:center;gap:6px 14px;margin-top:8px;font-size:.8rem;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:3px;width:10px;height:10px;display:inline-block}.legend b{color:var(--text)}.donut-wrap{position:relative}.donut-center{text-align:center;pointer-events:none;place-content:center;display:grid;position:absolute;inset:0}.donut-center strong{background:linear-gradient(90deg,#0b2a5b,#0891b2);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.8rem;font-weight:800}.donut-center small{color:var(--text-2);text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;font-weight:700}.recharts-sector,.recharts-rectangle{transition:filter .2s}.recharts-sector:hover,.recharts-bar-rectangle:hover{filter:brightness(1.08)drop-shadow(0 3px 6px #0b172633)}.notice{border-radius:var(--radius-sm);border:1px solid #0000;margin-top:10px;padding:10px 12px;font-size:.86rem}.notice-error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.notice-ok{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.notice-info{color:#0e7490;background:#ecfeff;border-color:#a5f3fc}.file-input{border:2px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);width:100%;color:var(--text-2);padding:10px}.btn{border-radius:var(--radius-sm);cursor:pointer;color:#fff;background:linear-gradient(135deg,#1d4ed8,#0891b2);border:none;padding:9px 16px;font-weight:700;box-shadow:0 8px 20px #1d4ed840}.btn:hover{filter:brightness(1.08)}.footer{text-align:center;color:var(--muted);padding:16px 0 0;font-size:.8rem}.to-top{z-index:30;color:#fff;cursor:pointer;background:linear-gradient(135deg,#1d4ed8,#0891b2);border:none;border-radius:999px;padding:10px 14px;font-weight:700;position:fixed;bottom:16px;right:16px;box-shadow:0 10px 26px #1d4ed859}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (width<=760px){.header{padding:14px 16px}.page{padding:16px}.grid-charts{grid-template-columns:minmax(0,1fr)}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-hero{grid-column:1/-1}.kpi-value{font-size:1.5rem}.kpi-hero .kpi-value{font-size:2.2rem}.card{padding:16px}.input{width:100%}.filter-row>*{flex:100%}.tabs{scrollbar-width:thin;flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.tab{flex:none}.table-wrap{max-height:70vh}}
