/* ============================================================
   UI CLEANUP v6 (2026-08-02) — widget/OBS parity.

   v4 and v5 size the top UI in two tiers: a gentler bump for the stream,
   a larger one for the web (the canvas is scaled to ~0.25 in a browser but
   renders 1:1 in OBS). The ask is now for the widget to match the page
   exactly, so every web-tier rule is re-applied to obs-mode verbatim.

   Generated from the `body:not(.obs-mode)` rules in v4 + v5 — regenerate
   with scratchpad/gen-v6.js if either changes, or the two drift apart.
   54 rules mirrored.
   ============================================================ */
body.obs-mode .header-slots::before { font-size: 46px; top: 14px; left: 24px; letter-spacing: 4px; }
body.obs-mode .header-slots { padding-top: 74px; gap: 22px; padding-left: 24px; padding-right: 24px; }
body.obs-mode .header-slot { gap: 16px; }
body.obs-mode .header-slot-name { font-size: 52px; max-width: 520px; }
body.obs-mode .header-slot[data-slot-index="0"] .header-slot-label { font-size: 74px; letter-spacing: 4px; }
body.obs-mode .header-slot[data-slot-index="1"] .header-slot-label { font-size: 44px; padding: 6px 24px; border-width: 3px; }
body.obs-mode .header-slot-pic-wrap { width: 150px; height: 150px; }
body.obs-mode .header-slot-pic,
body.obs-mode .header-slot-pic-fb { width: 150px; height: 150px; border-width: 6px; }
body.obs-mode .header-slot-pic-fb { font-size: 62px; }
body.obs-mode .header-combined-card { gap: 22px; }
body.obs-mode .header-combined-pic-ring { width: 176px; height: 176px; padding: 9px; }
body.obs-mode .header-combined-name { font-size: 56px; }
body.obs-mode .header-combined-pill { font-size: 40px; padding: 5px 22px; }
body.obs-mode .header-stats { gap: 16px; flex-wrap: wrap; justify-content: flex-end; min-width: 0; }
body.obs-mode .header-stat { padding: 12px 22px; border-radius: 18px; }
body.obs-mode .header-stat-label { font-size: 44px; letter-spacing: 3px; }
body.obs-mode .header-stat-value { font-size: 58px; margin-top: 6px; }
body.obs-mode .header-slots { flex-wrap: wrap; align-content: center; row-gap: 12px; }
body.obs-mode .header-bar-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px 32px; }
body.obs-mode .header-stats.is-own-card { padding: 46px 24px 16px; border-radius: 22px; }
body.obs-mode .header-stats.is-own-card::before { font-size: 40px; top: 12px; left: 24px; }
body.obs-mode .header-ad-slot { min-height: 340px; border-radius: 28px; }
body.obs-mode .header-ad-card::before { width: 210px; height: 210px; left: 34px; border-radius: 34px; }
body.obs-mode .header-ad-center { left: 268px; right: 28px; gap: 12px; }
body.obs-mode .header-ad-name { font-size: 62px; }
body.obs-mode .header-ad-url { font-size: 34px; }
body.obs-mode .podium-row { padding: 16px 24px 20px; }
body.obs-mode .podium-name { font-size: 54px; }
body.obs-mode .podium-xp { font-size: 96px; }
body.obs-mode .podium-slot-compact .podium-xp { font-size: 68px; }
body.obs-mode .podium-rank-badge { font-size: 40px; top: 10px; left: 14px; }
body.obs-mode .podium-slot-1 .podium-avatar-wrap { width: 250px; height: 250px; flex: 0 0 250px; }
body.obs-mode .podium-slot-2 .podium-avatar-wrap { width: 210px; height: 210px; flex: 0 0 210px; }
body.obs-mode .podium-slot-3 .podium-avatar-wrap { width: 180px; height: 180px; flex: 0 0 180px; }
body.obs-mode .podium-slot-compact .podium-avatar-wrap { width: 160px; height: 160px; flex: 0 0 160px; }
body.obs-mode .podium-avatar { border-width: 5px; }
body.obs-mode .podium-surface { border-radius: 26px; padding: 18px 12px 16px; gap: 12px; }
body.obs-mode .podium-current-label { padding: 14px 30px; gap: 16px; top: -30px !important; }
body.obs-mode .podium-current-live { font-size: 40px; letter-spacing: 5px; }
body.obs-mode .podium-current-text { font-size: 44px; }
body.obs-mode .podium-current-dot { width: 26px; height: 26px; }
body.obs-mode .podium-current-sep { height: 44px; }
body.obs-mode .header-bar .wt-legal-footer { font-size: 40px; padding: 6px 0 10px; }
body.obs-mode .header-url-row { gap: 16px; padding-left: 40px; padding-right: 40px; }
body.obs-mode .header-url-band { font-size: 46px; }
body.obs-mode .header-grid-cta { font-size: 34px; padding: 12px 28px; border-width: 3px; margin-left: 16px; }
body.obs-mode .header-streamers-toggle { font-size: 32px; padding: 12px 24px; border-width: 3px; }
body.obs-mode .header-streamers-dot { width: 18px; height: 18px; }
body.obs-mode .header-mode-switch { font-size: 34px; }
body.obs-mode .header-slots { height: 264px; }
body.obs-mode .header-stats.is-own-card { height: 202px; }
body.obs-mode .header-ad-slot { height: 490px; }
body.obs-mode .stats-toggle { font-size: 40px; padding: 12px 30px; border-width: 3px; }
body.obs-mode.header-min .header-bar .wt-legal-footer { font-size: 34px; }
