/* ===================================================================
   overview.css — ov- namespace
   =================================================================== */

:root, [data-theme="light"] {
  --ov-bg:#F8F8F6; --ov-surface:#FFFFFF; --ov-surface2:#F0EDE5;
  --ov-ink:#1A1815; --ov-ink2:rgba(26,24,21,.74); --ov-ink3:rgba(26,24,21,.56);
  --ov-line:rgba(26,24,21,.12); --ov-line2:rgba(26,24,21,.24);
  --ov-accent:#8B6A2E;
  --ov-warn:#8B5E14; --ov-warn-bg:rgba(139,94,20,.10);
  --ov-star:#B8860B;
  --ov-sel:rgba(26,24,21,.04);
}
[data-theme="dark"] {
  --ov-bg:#1C1A17; --ov-surface:#252320; --ov-surface2:#2E2B27;
  --ov-ink:#F4F1E8; --ov-ink2:rgba(244,241,232,.78); --ov-ink3:rgba(244,241,232,.58);
  --ov-line:rgba(244,241,232,.12); --ov-line2:rgba(244,241,232,.24);
  --ov-accent:#C99B4D;
  --ov-warn:#D4A155; --ov-warn-bg:rgba(212,161,85,.14);
  --ov-star:#D4A155;
  --ov-sel:rgba(244,241,232,.05);
}

#overview {
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  color:var(--ov-ink); font-size:15px; line-height:1.55;
}
#overview * { box-sizing:border-box; }
.ov-muted { color:var(--ov-ink3); font-weight:400; }

.ov-loading, .ov-blank {
  padding:64px 40px; text-align:center;
  background:var(--ov-surface); border:1px solid var(--ov-line);
  border-radius:10px; color:var(--ov-ink3);
}
.ov-blank h3 {
  font-family:'Newsreader',Georgia,serif; font-weight:500; font-size:22px;
  margin:0 0 10px; color:var(--ov-ink);
}
.ov-blank p { margin:0 auto; max-width:400px; font-size:14.5px; }

/* ---------- nudge ---------- */
.ov-nudge {
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap;
  padding:13px 18px; margin-bottom:16px;
  background:var(--ov-warn-bg); border-radius:9px;
  font-size:14px; color:var(--ov-ink);
}
.ov-nudge strong { font-weight:600; }

/* ---------- headline ---------- */
.ov-headline {
  display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));
  gap:12px; margin-bottom:16px;
}
.ov-big {
  background:var(--ov-surface); border:1px solid var(--ov-line);
  border-radius:10px; padding:20px 22px;
}
.ov-big-num {
  font-family:'Newsreader',Georgia,serif; font-weight:400;
  font-size:38px; line-height:1; letter-spacing:-.025em; margin-bottom:8px;
}
.ov-big-label { font-size:13.5px; font-weight:500; }
.ov-big-sub { font-size:12.5px; color:var(--ov-ink3); margin-top:2px; }

/* ---------- strips ---------- */
.ov-strips {
  background:var(--ov-surface); border:1px solid var(--ov-line);
  border-radius:10px; overflow:hidden; margin-bottom:12px;
}
.ov-strip + .ov-strip { border-top:1px solid var(--ov-line); }

.ov-strip-head {
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; width:100%; padding:16px 20px;
  background:transparent; border:none; cursor:pointer; text-align:left;
  font-family:inherit; color:var(--ov-ink);
}
.ov-strip-head:hover { background:var(--ov-sel); }

.ov-strip-left { min-width:0; }
.ov-strip-title { display:block; font-size:15px; font-weight:500; }
.ov-strip-acct {
  display:block; font-size:12.5px; color:var(--ov-ink3); margin-top:1px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:280px;
}

.ov-strip-right { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.ov-strip-metric {
  font-family:'Newsreader',Georgia,serif; font-size:22px;
  letter-spacing:-.02em; white-space:nowrap;
}
.ov-strip-unit {
  font-family:'Inter',sans-serif; font-size:12.5px;
  color:var(--ov-ink3); margin-left:4px;
}
.ov-chev { color:var(--ov-ink3); transition:transform .18s ease; flex-shrink:0; }
.ov-strip.is-open .ov-chev { transform:rotate(180deg); }

.ov-sparkwrap { color:var(--ov-accent); width:80px; height:24px; flex-shrink:0; }
.ov-spark { width:100%; height:100%; display:block; opacity:.75; }

.ov-strip-body {
  padding:4px 20px 20px;
  border-top:1px solid var(--ov-line);
  background:var(--ov-bg);
}
.ov-note { font-size:13.5px; color:var(--ov-ink3); margin:14px 0 4px; line-height:1.6; }
.ov-note-foot { margin:14px 0 0; }

/* ---------- rows ---------- */
.ov-rows { margin:0; display:grid; grid-template-columns:1fr auto; align-items:baseline; }
.ov-rows dt {
  font-size:14px; color:var(--ov-ink2);
  padding:9px 0; border-top:1px solid var(--ov-line);
}
.ov-rows dd {
  margin:0; font-size:14px; text-align:right;
  padding:9px 0; border-top:1px solid var(--ov-line);
}
.ov-rows strong { font-weight:600; }

/* ---------- sub-lists ---------- */
.ov-sub { margin-top:18px; padding-top:14px; border-top:1px solid var(--ov-line); }
.ov-sub-label {
  font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ov-ink3); margin-bottom:8px;
}
.ov-sub-row {
  display:flex; align-items:baseline; gap:14px;
  padding:6px 0; text-decoration:none; color:inherit;
}
.ov-sub-link:hover .ov-sub-t { text-decoration:underline; text-underline-offset:3px; }
.ov-sub-n {
  font-family:'Newsreader',Georgia,serif; font-size:16px;
  min-width:52px; text-align:right; flex-shrink:0;
}
.ov-sub-t {
  font-size:14px; color:var(--ov-ink2);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

.ov-revline {
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  font-size:14px; color:var(--ov-ink2);
}
.ov-stars { color:var(--ov-star); font-size:14px; letter-spacing:1px; }
.ov-flag {
  padding:3px 9px; border-radius:5px; font-size:12.5px; font-weight:500;
  background:var(--ov-warn-bg); color:var(--ov-warn);
}

.ov-pending {
  margin-top:14px; padding:11px 14px; border-radius:7px;
  background:var(--ov-surface2); color:var(--ov-ink3);
  font-size:13px; line-height:1.55;
}

/* ---------- footer ---------- */
.ov-foot {
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; flex-wrap:wrap;
  font-size:12.5px; color:var(--ov-ink3); padding:4px 2px;
}
.ov-link {
  background:none; border:none; cursor:pointer; padding:4px 2px;
  font-family:inherit; font-size:13px; color:var(--ov-ink2);
  text-decoration:underline; text-underline-offset:3px; white-space:nowrap;
}
.ov-link:hover { color:var(--ov-ink); }

@media (max-width:640px) {
  .ov-headline { grid-template-columns:repeat(auto-fit, minmax(130px, 1fr)); gap:10px; }
  .ov-big { padding:16px; }
  .ov-big-num { font-size:30px; }
  .ov-strip-head { padding:14px 16px; gap:10px; }
  .ov-strip-body { padding:4px 16px 16px; }
  .ov-sparkwrap { display:none; }
  .ov-strip-acct { max-width:160px; }
}