:root{--paper:#f4f7f6;--card:#fff;--ink:#17221f;--ink-2:#52615c;--muted:#7d8c87;--line:#dde5e2;--grid:#e8eeec;--accent:#0e6b63;--accent-soft:#e3efed;--signal:#a86a12;--signal-soft:#f7eedd;--good:#006300;--bad:#d03b3b;--s1:#2a78d6;--s2:#1baf7a;--s3:#eda100;--s4:#008300;--s5:#4a3aa7;--other:#a7b3af;--spark:#b9c6c2;--shadow:0 4px 14px #17221f14;--mono:ui-monospace, "Cascadia Code", Consolas, Menlo, monospace;--sans:"Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif}@media (prefers-color-scheme:dark){:root{--paper:#0f1513;--card:#171f1c;--ink:#e2eae6;--ink-2:#a9b8b2;--muted:#7d8c87;--line:#26312d;--grid:#202b27;--accent:#45b3a5;--accent-soft:#16302c;--signal:#d99a3d;--signal-soft:#33260f;--good:#0ca30c;--bad:#e06060;--s1:#3987e5;--s2:#199e70;--s3:#c98500;--s4:#008300;--s5:#9085e9;--other:#5c6663;--spark:#46524e;--shadow:0 4px 14px #00000059}}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font-family:var(--sans);margin:0;font-size:14.5px;line-height:1.5}.app{max-width:1180px;margin:0 auto;padding:20px 20px 60px}.topbar{flex-wrap:wrap;align-items:center;gap:18px;padding:6px 2px 16px;display:flex}.wordmark{font-family:var(--mono);letter-spacing:.16em;color:var(--accent);font-size:15px;font-weight:700}.client-name{font-size:15px;font-weight:650}.sync{font-family:var(--mono);color:var(--ink-2);align-items:center;gap:7px;margin-left:auto;font-size:11.5px;display:flex}.sync .dot{background:var(--good);border-radius:50%;flex:none;width:8px;height:8px}.sync .dot.stale{background:var(--signal)}.periodbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:0 2px 16px;display:flex}.period{color:var(--ink-2);margin:0;font-size:12px}.periodsel{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.periodsel .chip{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink-2);cursor:pointer;border-radius:999px;padding:7px 12px;font-size:12px;line-height:1;transition:background .12s,color .12s,border-color .12s}.periodsel .chip:hover{border-color:var(--accent);color:var(--ink)}.periodsel .chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.periodsel .range{align-items:center;gap:6px;display:flex}.periodsel .range input[type=date]{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;border-radius:8px;padding:6px 8px;font-size:12px}@media (prefers-color-scheme:dark){.periodsel .range input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial}}.periodsel .range .dash{color:var(--ink-2)}.periodsel .range .apply{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:8px;padding:7px 12px;font-size:12px}.periodsel .range .apply:disabled{opacity:.45;cursor:not-allowed}.periodsel .range .hint{color:var(--signal,#b4531f);white-space:nowrap;font-size:11px}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px}.card-head{align-items:baseline;gap:10px;padding:16px 18px 0;display:flex}.card-title{font-size:13px;font-weight:700}.card-sub{color:var(--muted);font-size:11.5px}.card-head .spacer{margin-left:auto}.kpis{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}@media (max-width:940px){.kpis{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.kpis{grid-template-columns:1fr}}.kpi{padding:14px 16px 12px}.kpi .label{color:var(--ink-2);font-size:12px}.kpi .value{letter-spacing:-.01em;margin-top:2px;font-size:27px;font-weight:650}.kpi .delta{margin-top:1px;font-size:12px;font-weight:600}.kpi .delta small{color:var(--muted);font-weight:400}.up{color:var(--good)}.down{color:var(--bad)}.flat{color:var(--muted)}.row{gap:14px;margin-top:14px;display:grid}.row.split{grid-template-columns:6fr 5fr}@media (max-width:900px){.row.split{grid-template-columns:1fr}}.brief-body{white-space:pre-wrap;padding:12px 18px 18px;font-size:13.5px}.empty{color:var(--muted);padding:16px 18px 20px;font-size:13px}.chbars{gap:9px;padding:12px 18px 16px;display:grid}.chrow{grid-template-columns:130px 1fr 74px;align-items:center;gap:10px;display:grid}.chname{color:var(--ink-2);align-items:center;gap:7px;min-width:0;font-size:12.5px;display:flex}.chname span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chdot{border-radius:50%;flex:none;width:9px;height:9px}.track{height:18px;display:block}.bar{border-radius:0 4px 4px 0;min-width:2px;height:18px;display:block}.chval{text-align:right;font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:650}.sources{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:14px;display:grid}.srccard{padding:13px 15px 11px}.srccard .head{align-items:center;gap:7px;margin-bottom:9px;display:flex}.srccard .nm{font-size:12.5px;font-weight:700}.srccard .fresh{font-family:var(--mono);color:var(--muted);align-items:center;gap:4px;margin-left:auto;font-size:10px;display:flex}.srccard .fresh i{background:var(--good);border-radius:50%;width:6px;height:6px;display:inline-block}.srccard .fresh i.err{background:var(--bad)}.mrow{justify-content:space-between;align-items:baseline;gap:8px;padding:3.5px 0;font-size:12.5px;display:flex}.mrow .ml{color:var(--muted)}.mrow .mv{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.notes{background:var(--signal-soft);border-radius:8px;margin-top:14px;padding:12px 16px}.notes p{color:var(--ink);margin:0 0 6px;font-size:12.5px;line-height:1.5}.notes p:last-child{margin-bottom:0}.notes .ic{color:var(--signal);font-weight:700}.prodtable{padding:6px 18px 16px;overflow-x:auto}.prodtable table{border-collapse:collapse;width:100%;font-size:13px}.prodtable th{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:8px;font-size:10.5px}.prodtable td{border-bottom:1px solid var(--grid);padding:8px}.prodtable tr:last-child td{border-bottom:none}.prodtable .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.kpi{position:relative}.spark{position:absolute;bottom:14px;right:14px}.spark polyline{fill:none;stroke:var(--spark);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.spark circle{fill:var(--accent);stroke:var(--card);stroke-width:2px}.chart-wrap{padding:8px 10px 2px}.chart-wrap svg{width:100%;height:auto;display:block}.axis-txt{font-family:var(--sans);fill:var(--muted);font-size:10.5px}.gridline{stroke:var(--grid);stroke-width:1px}.baseline{stroke:var(--line);stroke-width:1px}.area-fill{fill:var(--s1);opacity:.1}.area-line{fill:none;stroke:var(--s1);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.end-dot{fill:var(--s1);stroke:var(--card);stroke-width:2px}.end-label{font-family:var(--sans);fill:var(--ink);font-size:12px;font-weight:650}.col rect{fill:var(--s1)}.graph-card{box-shadow:var(--shadow);background:radial-gradient(120% 140% at 50% -20%,#1d2333 0%,#151a26 55%,#12161f 100%);border:1px solid #ffffff17;border-radius:10px;margin-bottom:14px;overflow:hidden}.graph-head{align-items:baseline;gap:10px;padding:14px 18px 0;display:flex}.graph-head .gt{color:#e6edf3;font-size:13px;font-weight:700}.graph-head .gs{color:#8fa1b3;font-size:11.5px}.graph-scroll{overflow-x:auto}.graph-scroll svg{width:100%;min-width:620px;height:auto;display:block}.gedge{stroke:#ffffff21;stroke-width:1px}.glabel{font-family:var(--sans);fill:#a9bac9;font-size:11.5px}.glabel.center{font-family:var(--mono);letter-spacing:.14em;fill:#d9efe9;font-size:12px;font-weight:600}.gsub{font-family:var(--sans);fill:#6f8496;font-size:10px}.pulse{opacity:0;animation:flow var(--dur,3s) linear var(--delay,0s) infinite}@keyframes flow{0%{opacity:0;transform:translate(0)}12%{opacity:1}78%{opacity:1}to{transform:translate(var(--dx), var(--dy));opacity:0}}.ping{fill:none;stroke:#45b3a5;stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;animation:3s ease-out infinite ping}@keyframes ping{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}@media (prefers-reduced-motion:reduce){.pulse,.ping{animation:none}.pulse{opacity:.7}}.section-label{font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:22px 2px 0;font-size:11px}footer{font-family:var(--mono);color:var(--muted);flex-wrap:wrap;gap:16px;margin-top:26px;padding:0 2px;font-size:11px;display:flex}.login-wrap{max-width:420px;margin:12vh auto 0;padding:0 20px}.login-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;margin-top:16px;padding:24px}.login-card p{color:var(--ink-2);margin:0 0 14px;font-size:13.5px}input[type=email],input[type=text]{border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);border-radius:6px;padding:9px 12px;font-size:14px}button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-top:10px;padding:9px 16px;font-size:14px;font-weight:600}button:disabled{opacity:.55;cursor:default}.connect{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.connect-card{text-align:center;width:100%;max-width:440px;padding:32px 30px}.connect-card .wordmark{color:var(--accent);letter-spacing:.08em;font-size:13px;font-weight:700}.connect-card h1{color:var(--ink);margin:18px 0 8px;font-size:22px}.connect-card .lede{color:var(--ink-2);margin:0 0 20px;font-size:14px;line-height:1.5}.connect-card .fine{color:var(--muted);margin-top:18px;font-size:12px}.connect-card .warn{color:var(--bad);margin:0 0 12px;font-size:13px}.connect-form{text-align:left;flex-direction:column;gap:8px;display:flex}.connect-form label{color:var(--ink-2);font-size:12px;font-weight:600}.connect-form input{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:9px;padding:11px 12px;font-size:14px}.connect-form input:focus{border-color:var(--accent);outline:none}.connect-form button{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:9px;margin-top:6px;padding:12px;font-size:14px;font-weight:600}.connect-card .tick,.connect-card .cross{color:#fff;border-radius:50%;place-items:center;width:46px;height:46px;margin:6px auto 0;font-size:24px;font-weight:700;display:grid}.connect-card .tick{background:var(--good)}.connect-card .cross{background:var(--signal)}
