:root {
  color-scheme: dark;
  --bg:#090d0b; --panel:#111814; --panel-2:#151e18; --line:#29362e;
  --text:#f2f6f3; --muted:#9aa99f; --accent:#78dda0; --accent-ink:#06120a;
}
* { box-sizing:border-box; }
body {
  margin:0;
  background:
    radial-gradient(circle at 76% -8%,rgba(51,96,65,.32),transparent 34rem),
    radial-gradient(circle at -10% 30%,rgba(72,53,100,.14),transparent 28rem),var(--bg);
  color:var(--text);
  font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.shell { width:min(1220px,calc(100% - 36px)); margin-inline:auto; }
.masthead { display:flex; align-items:end; justify-content:space-between; gap:32px; padding:50px 0 28px; }
h1,h2,p { margin:0; }
h1 { font:600 clamp(2.7rem,6vw,5.25rem)/.92 Georgia,"Times New Roman",serif; letter-spacing:-.05em; }
h2 { font-size:1.05rem; letter-spacing:-.01em; }
.eyebrow,.kicker { color:var(--accent); text-transform:uppercase; letter-spacing:.14em; font-size:.68rem; font-weight:750; }
.eyebrow { margin-bottom:11px; }
.lede { color:var(--muted); max-width:38rem; margin-top:16px; }
.source-status { display:flex; align-items:center; gap:9px; color:var(--muted); font-size:.78rem; padding-bottom:5px; text-align:right; }
.masthead-actions { display:grid; justify-items:end; gap:11px; }
.logout-button { border:1px solid var(--line); border-radius:9px; background:transparent; color:var(--muted); padding:7px 11px; font:inherit; font-size:.72rem; cursor:pointer; }
.logout-button:hover { border-color:#52685a; color:var(--text); }
.status-dot { width:8px; height:8px; border-radius:99px; background:#d3a84e; box-shadow:0 0 0 4px rgba(211,168,78,.11); flex:none; }
.status-dot.ready { background:var(--accent); box-shadow:0 0 0 4px rgba(120,221,160,.12); }
.tabs { display:flex; gap:8px; border-bottom:1px solid var(--line); padding-bottom:17px; }
.tab { min-width:155px; display:grid; justify-items:start; gap:1px; border:1px solid var(--line); border-radius:12px; background:rgba(17,24,20,.7); color:var(--text); padding:10px 15px; cursor:pointer; font:inherit; transition:.18s ease; }
.tab:hover { border-color:#425549; transform:translateY(-1px); }
.tab span { font-weight:680; }
.tab small { color:var(--muted); font-size:.68rem; }
.tab[aria-pressed="true"] { background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
.tab[aria-pressed="true"] small { color:#234b31; }
main { padding:24px 0 48px; }
.notice { border-radius:12px; padding:14px 16px; margin-bottom:12px; }
.error { border:1px solid #914c4c; background:#321b1b; }
.warning { border:1px solid #826d39; background:#2c2516; color:#f1d98d; }
.summary { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:12px; }
.summary article,.panel { background:linear-gradient(145deg,rgba(22,32,26,.97),rgba(13,19,15,.97)); border:1px solid var(--line); border-radius:16px; box-shadow:0 18px 45px rgba(0,0,0,.12); }
.summary article { min-height:124px; padding:19px; display:flex; flex-direction:column; }
.summary article>span { color:var(--muted); font-size:.76rem; }
.summary article>strong { font-size:clamp(1.35rem,2.3vw,1.85rem); letter-spacing:-.04em; margin-top:auto; }
.summary article>small { color:var(--muted); font-size:.68rem; margin-top:3px; }
.summary .hero-metric { border-color:#41634d; background:linear-gradient(145deg,rgba(28,55,37,.96),rgba(13,24,17,.98)); }
.workspace { display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr); gap:12px; }
.panel { padding:20px; margin-bottom:12px; min-width:0; }
.panel-title,.detail-head,.records-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.panel-title>span,.records-heading>p { color:var(--muted); font-size:.75rem; }
.panel-title>div>span { color:var(--muted); font-size:.72rem; }
.kicker { margin-bottom:4px; }
.toggleline { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:16px 0; padding:11px 0; color:var(--muted); font-size:.72rem; }
.toggleline label { display:flex; align-items:center; gap:7px; color:var(--text); white-space:nowrap; cursor:pointer; }
input[type="checkbox"] { width:15px; height:15px; accent-color:var(--accent); }
.allocation-bar { display:flex; height:11px; overflow:hidden; border-radius:99px; background:#222d26; margin:18px 0; }
.allocation-bar i { display:block; height:100%; min-width:2px; }
.allocation-list { display:grid; gap:4px; }
.allocation-row { appearance:none; width:100%; display:grid; grid-template-columns:10px minmax(0,1fr) auto; align-items:center; gap:12px; border:1px solid transparent; border-radius:10px; background:transparent; color:var(--text); text-align:left; padding:10px 9px; cursor:pointer; font:inherit; }
.allocation-row:hover,.allocation-row[aria-pressed="true"] { background:var(--panel-2); border-color:var(--line); }
.swatch { width:9px; height:9px; border-radius:99px; }
.allocation-row span { min-width:0; }
.allocation-row strong,.allocation-row small { display:block; }
.allocation-row strong { font-size:.84rem; }
.allocation-row small { color:var(--muted); font-size:.68rem; margin-top:2px; }
.allocation-value { text-align:right; white-space:nowrap; }
.detail-head h2 { margin-top:2px; }
.detail-head>div>p:last-child { color:var(--muted); font-size:.72rem; margin-top:4px; }
.detail-total { text-align:right; white-space:nowrap; }
.detail-total strong,.detail-total span { display:block; }
.detail-total strong { font-size:1.25rem; letter-spacing:-.03em; }
.detail-total span { color:var(--muted); font-size:.7rem; }
.drilldown { display:grid; margin-top:18px; }
.drill-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; border-top:1px solid var(--line); padding:11px 0; }
.drill-item:first-child { border-top:0; padding-top:0; }
.drill-item strong,.drill-item span { display:block; }
.drill-item strong { font-size:.82rem; overflow-wrap:anywhere; }
.drill-item span { color:var(--muted); font-size:.7rem; margin-top:2px; }
.drill-item em { font-style:normal; font-size:.82rem; font-weight:680; white-space:nowrap; }
.quality-notes { display:grid; gap:7px; margin-top:15px; padding-top:13px; border-top:1px solid var(--line); }
.quality-notes p { border-left:3px solid #425148; padding-left:10px; color:var(--muted); font-size:.7rem; }
.records-heading { align-items:end; padding:28px 3px 14px; }
.columns { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.records-panel { max-height:430px; overflow:hidden; }
.table-wrap { max-height:350px; overflow:auto; scrollbar-color:#3c4b41 transparent; }
table { width:100%; border-collapse:collapse; }
th,td { text-align:left; padding:10px 8px; border-bottom:1px solid var(--line); white-space:nowrap; }
th { position:sticky; top:0; background:#111814; z-index:1; color:var(--muted); font-size:.65rem; text-transform:uppercase; letter-spacing:.08em; }
td { font-size:.76rem; }
td:last-child,th:last-child { text-align:right; }
.action-button,.icon-button,.row-actions button,.dialog-actions button { border:1px solid var(--line); background:#172019; color:var(--text); border-radius:9px; padding:7px 10px; font:inherit; font-size:.72rem; cursor:pointer; }
.action-button:hover,.row-actions button:hover,.dialog-actions button:hover { border-color:#52685a; }
.row-actions { display:flex; justify-content:flex-end; gap:6px; }
.row-actions .danger-action { color:#f0a39a; }
.primary-action { background:var(--accent)!important; border-color:var(--accent)!important; color:var(--accent-ink)!important; font-weight:700!important; }
.empty { color:var(--muted); text-align:center!important; padding:28px; }
dialog { width:min(560px,calc(100% - 28px)); max-height:calc(100% - 32px); overflow:auto; border:1px solid #425348; border-radius:16px; background:#101713; color:var(--text); padding:0; box-shadow:0 30px 90px rgba(0,0,0,.6); }
dialog::backdrop { background:rgba(1,5,3,.75); backdrop-filter:blur(4px); }
dialog form { padding:22px; display:grid; gap:13px; }
.dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:3px; }
.icon-button { border:0; background:transparent; font-size:1.35rem; line-height:1; padding:3px 6px; }
dialog label { display:grid; gap:5px; color:var(--muted); font-size:.72rem; }
dialog input,dialog textarea { width:100%; border:1px solid var(--line); border-radius:9px; background:#0a100c; color:var(--text); padding:10px 11px; font:inherit; }
dialog input:focus,dialog textarea:focus { outline:2px solid rgba(120,221,160,.35); border-color:var(--accent); }
.form-columns { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-help { color:var(--muted); font-size:.68rem; }
.form-error { border:1px solid #914c4c; background:#321b1b; border-radius:9px; padding:9px; font-size:.72rem; }
.dialog-actions { display:flex; justify-content:flex-end; gap:8px; border-top:1px solid var(--line); padding-top:14px; }
footer { border-top:1px solid var(--line); padding:22px 0 36px; color:var(--muted); font-size:.72rem; }
.login-body { min-height:100vh; display:grid; place-items:center; padding:24px; }
.login-card { width:min(560px,100%); padding:clamp(28px,7vw,52px); border:1px solid var(--line); border-radius:20px; background:linear-gradient(145deg,rgba(22,32,26,.98),rgba(13,19,15,.98)); box-shadow:0 30px 90px rgba(0,0,0,.35); }
.login-card h1 { font-size:clamp(3rem,10vw,5rem); margin-top:10px; }
.google-login { display:block; margin-top:30px; border-radius:11px; background:var(--accent); color:var(--accent-ink); padding:13px 18px; text-align:center; text-decoration:none; font-weight:750; }
.google-login:hover { filter:brightness(1.05); }
.login-note { margin-top:20px; color:var(--muted); font-size:.72rem; }
.login-note strong { color:var(--text); font-weight:650; }
[hidden] { display:none!important; }
@media (max-width:840px) {
  .masthead { align-items:flex-start; flex-direction:column; }
  .source-status { text-align:left; }
  .masthead-actions { justify-items:start; }
  .summary { grid-template-columns:1fr 1fr; }
  .workspace,.columns { grid-template-columns:1fr; }
}
@media (max-width:580px) {
  .shell { width:min(100% - 24px,1220px); }
  .tabs { display:grid; grid-template-columns:1fr; }
  .tab { min-width:0; }
  .summary { grid-template-columns:1fr; }
  .summary article { min-height:104px; }
  .panel-title,.detail-head,.records-heading,.toggleline { display:block; }
  .panel-title>span,.detail-total,.toggleline label { display:block; text-align:left; margin-top:8px; }
  .allocation-row { grid-template-columns:10px minmax(0,1fr); }
  .allocation-value { grid-column:2; text-align:left; }
  .drill-item { grid-template-columns:1fr; gap:5px; }
  .form-columns { grid-template-columns:1fr; }
}
