:root{--bg:#f6f7f9;--surface:#fff;--text:#16181d;--muted:#646b78;--border:#e3e6eb;--grid:#eceef2;--accent:#2f5bea;--accent-text:#fff;--series-1:#2f5bea;--series-2:#9aa3b2;--up:#12805c;--down:#c2362b;--amber:#c98a00;--green:#12805c;--red:#c2362b;--warn-bg:#fff6e0;--warn-border:#f0d48a;--info-bg:#eef3ff;--info-border:#c9d7fb;--ok-bg:#e8f6ef;--ok-border:#b7e0cb;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#111317;--surface:#1a1d23;--text:#e9ebef;--muted:#9aa1ad;--border:#2b2f37;--grid:#252930;--accent:#6f8ff5;--series-1:#6f8ff5;--series-2:#6b7280;--up:#3ccf91;--down:#ff7a6e;--warn-bg:#2d2412;--warn-border:#5c4a1f;--info-bg:#182136;--info-border:#2a3a63;--ok-bg:#12261d;--ok-border:#24503a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{letter-spacing:-.01em;margin:0 0 4px;font-size:28px;line-height:1.2}h2{margin:0;font-size:20px}h3{margin:28px 0 10px;font-size:15px}.muted{color:var(--muted)}.small{font-size:13px}.strong{font-weight:600}.error{color:var(--red)}.page,.report{max-width:1040px;margin:0 auto;padding:32px 16px 64px}.page.narrow{max-width:640px}.page-head{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.crumbs{color:var(--muted);gap:6px;margin-bottom:16px;font-size:14px;display:flex}.crumb-right{margin-left:auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:20px;padding:20px}.stack{flex-direction:column;gap:14px;display:flex}.row{flex-wrap:wrap;gap:10px;display:flex}label{flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}label.check{flex-direction:row;align-items:center;gap:8px;font-weight:500}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-weight:400}textarea{resize:vertical}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.ghost{background:0 0}.btn:disabled{opacity:.6;cursor:progress}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:12px;display:flex}.inline-form label{flex:220px}.banner{border:1px solid;border-radius:8px;margin:12px 0;padding:10px 14px;font-size:14px}.banner.warn{background:var(--warn-bg);border-color:var(--warn-border)}.banner.info{background:var(--info-bg);border-color:var(--info-border)}.banner.ok{background:var(--ok-bg);border-color:var(--ok-border)}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{flex-direction:column;gap:14px;width:100%;max-width:360px;margin:0;display:flex}.login-card h1{font-size:22px}.data{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden}.data th,.data td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:9px 12px}.data th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:12px;font-weight:600}.data tr:last-child td{border-bottom:0}.data .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.data .delta-col{width:90px}.clients .actions{white-space:nowrap;text-align:right}.clients .actions a+a{margin-left:12px}.clients tr.inactive td{opacity:.6}.pill{border:1px solid var(--border);color:var(--muted);border-radius:99px;margin-left:8px;padding:1px 7px;font-size:11px}.dot{vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.dot.green{background:var(--green)}.dot.amber{background:var(--amber)}.dot.red{background:var(--red)}.report-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:8px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 6px;font-size:12px;font-weight:600}.report-period{margin:0;font-size:16px}.controls{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.section{margin-top:28px}.section-head{border-bottom:2px solid var(--text);justify-content:space-between;align-items:baseline;margin-bottom:16px;padding-bottom:8px;display:flex}.section-head p{margin:0;font-size:13px}.stats{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.stat-label{color:var(--muted);font-size:13px}.stat-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:2px;font-size:28px;font-weight:700}.stat-foot{min-height:20px;font-size:13px}.stat-hint{color:var(--muted);margin-top:2px;font-size:12px}.delta{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.delta.up{color:var(--up)}.delta.down{color:var(--down)}.delta.neutral{color:var(--muted);font-weight:500}.chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 8px 4px}.empty{padding:24px 0}.report-foot{border-top:1px solid var(--border);margin-top:32px;padding-top:12px}@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}.data{display:block;overflow-x:auto}.stat-value{font-size:22px}}@page{size:A4;margin:14mm}@media print{:root{--bg:#fff;--surface:#fff;--text:#000;--muted:#555;--border:#d5d8de;--grid:#e8eaee;--series-1:#2f5bea;--series-2:#9aa3b2;--up:#0b6b4b;--down:#b02a20;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{font-size:11pt}.no-print,.crumbs{display:none!important}.report{max-width:none;padding:0}.banner.info{color:var(--muted);background:0 0;border:0;padding:0}.stats{grid-template-columns:repeat(4,1fr)}.stat,.chart,.data,.block{break-inside:avoid}.recharts-tooltip-wrapper,.recharts-tooltip-cursor{display:none!important}h3{break-after:avoid}.section{break-before:auto}a{color:inherit}}
