/* ============================================================================
   app.css - core dashboard chrome stylesheet (design system / modular refactor).
   Lifted VERBATIM from the first inline <style> in dashboard.html (:root tokens +
   the 3-column shell, nav, topbar, cards, and view chrome). Linked in place =>
   identical parse + cascade. tokens.css (loaded just before) also defines the
   base tokens, so tokens survive even if this file ever fails to load.
   ============================================================================ */

  :root{
    --bg:#05020e; --bg-2:#0a0420; --panel:#0c0622;
    --text:#f9f6ff; --text-2:#d6cfee; --text-3:#ada3ce; --muted:#877ba8; --muted-soft:#6e6892;
    --purple:#7c5cfc; --purple-bright:#b09cff; --magenta:#d946a8; --magenta-bright:#f472b6;
    --cyan:#06d6f5; --cyan-bright:#67e8f9; --gold:#e6b347; --green:#14b87f; --green-bright:#4ade80; --amber:#f59e0b; --red:#f56565;
    --border:rgba(124,92,252,0.14); --border-strong:rgba(255,255,255,0.10); --hairline:rgba(255,255,255,0.06);
    --card:linear-gradient(180deg, rgba(255,255,255,0.045), rgba(255,255,255,0.012));
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;overflow-x:clip;}
  body{background:var(--bg);color:var(--text);font-family:"Inter",system-ui,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;}
  a{text-decoration:none;color:inherit;}
  ::-webkit-scrollbar{width:10px;height:10px;}::-webkit-scrollbar-thumb{background:rgba(124,92,252,0.25);border-radius:8px;}
  .app{display:grid;grid-template-columns:92px 248px 1fr;height:100vh;overflow:hidden;}

  /* Sidebar */
  /* ===== Parent rail (narrow tier) ===== */
  .rail{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#080216,#050110);border-right:1px solid var(--hairline);display:flex;flex-direction:column;align-items:center;padding:14px 8px;gap:3px;overflow-y:auto;overflow-x:hidden;}
  .rail::-webkit-scrollbar{width:0;}
  .rail .rlogo{width:38px;height:38px;display:flex;align-items:center;justify-content:center;margin-bottom:4px;}
  .rail .rlogo img{width:34px;height:34px;object-fit:contain;display:block;}
  .rail-collapse{width:30px;height:24px;border-radius:7px;border:1px solid var(--border-strong);background:rgba(255,255,255,0.03);color:var(--text-3);display:flex;align-items:center;justify-content:center;cursor:pointer;margin-bottom:2px;transition:all .15s;}
  .rail-collapse:hover{color:var(--text);border-color:var(--purple);}
  .rail-collapse svg{transition:transform .2s;}
  .rail .rdiv{width:60px;height:1px;background:var(--hairline);margin:4px 0 6px;}
  /* NB: do NOT transition `color` here. `.active` swaps the background to a
   gradient, and a gradient cannot be interpolated, so it snaps in instantly.
   With `transition:all` the label was still the dim --text-3 for ~90ms while
   sitting on the purple gradient, so it read as vanishing and then fading back
   in on every click. Colour now flips with the gradient; only the hover
   background and shadow animate. */
.ritem{position:relative;width:100%;border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 4px;color:var(--text-3);cursor:pointer;transition:background-color .15s,box-shadow .15s;}
  .ritem:hover{background:rgba(124,92,252,0.10);color:var(--text);}
  .ritem.active{background:linear-gradient(135deg,var(--purple),var(--magenta));color:#fff;box-shadow:0 8px 22px -8px rgba(124,92,252,0.7);}
/* Same trap as .nav-item.active:hover — the light `.ritem:hover` override
   (0,2,1) outranks `.ritem.active` (0,2,0) and its `background` shorthand wipes
   the gradient, while `.rail .ritem.active` still forces white text. Keep the
   gradient on hover so the active rail label never turns white-on-white. */
.ritem.active:hover{background:linear-gradient(135deg,var(--purple),var(--magenta));}
  .ritem.active::before{content:"";position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:3px;height:22px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,var(--purple-bright),var(--magenta-bright));}
  .ritem svg{width:20px;height:20px;flex:0 0 auto;}
  .ritem .rlabel{font-size:10px;font-weight:600;letter-spacing:.01em;text-align:center;line-height:1.1;white-space:nowrap;}
  .ritem .tip{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);white-space:nowrap;background:#15102b;color:var(--text);font-size:12px;font-weight:600;padding:6px 11px;border-radius:8px;border:1px solid var(--border-strong);opacity:0;pointer-events:none;transition:opacity .15s;z-index:60;box-shadow:0 10px 28px -10px rgba(0,0,0,0.6);}
  .rail .rspacer{flex:1;min-height:8px;}
  .rail .rutil{border:none;background:none;}
  /* When a utility rail item (Workspace) is active it must show the same
     gradient as a normal active item — otherwise the light-mode white-card
     rule for .rutil keeps a white background under the white active
     label/icon, making it invisible. */
  .rail .rutil.active{background:linear-gradient(135deg,var(--purple),var(--magenta));}
  /* tooltips only show for icon-only buttons (rail arrow); rail items keep their labels */
  .rail .ritem .tip{display:none;}
  .rc-tip{position:fixed;left:100px;top:60px;transform:translateY(-50%);white-space:nowrap;background:#15102b;color:#fff;font-size:12px;font-weight:600;padding:6px 11px;border-radius:8px;border:1px solid var(--border-strong);opacity:0;pointer-events:none;transition:opacity .15s;z-index:2000;box-shadow:0 10px 28px -10px rgba(0,0,0,0.6);}
  .rc-tip.show{opacity:1;}
  .rail-collapse{position:relative;}

  /* Panel header (replaces nothing; new) */
  .side .panel-head{display:flex;align-items:center;justify-content:space-between;padding:2px 8px 14px;margin-bottom:6px;border-bottom:1px solid var(--hairline);}
  .side .panel-head h2{font-family:"Inter Tight",sans-serif;font-size:18px;font-weight:800;letter-spacing:-0.02em;margin:0;}
  .side .panel-x{width:30px;height:30px;border-radius:9px;border:1px solid var(--border-strong);background:rgba(255,255,255,0.03);color:var(--text-3);display:flex;align-items:center;justify-content:center;cursor:pointer;}
  .side .panel-x:hover{color:var(--text);border-color:var(--purple);}
  /* WORKFLOW badges — de-rainbowed to one brand chip (workflows are tools, and
     tools don't each earn their own colour). */
  .badge.wf.c-purple,.badge.wf.c-yellow,.badge.wf.c-pink,.badge.wf.c-red,.badge.wf.c-green,.badge.wf.c-orange{background:rgba(124,92,252,0.14);color:var(--purple-bright);}
  .side{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#0a0420,#070314);border-right:1px solid var(--hairline);display:flex;flex-direction:column;padding:20px 14px;gap:3px;overflow-y:auto;}
  .side .logo{display:flex;align-items:center;gap:10px;padding:4px 8px 16px;}
  .side .logo .wordmark{font-family:"Inter Tight","Inter",sans-serif;font-weight:900;font-size:22px;letter-spacing:-0.01em;line-height:1;color:var(--text);text-transform:uppercase;display:inline-flex;}
  .side .logo .wordmark .wv{color:var(--magenta-bright);}
  .nav-group{margin-top:12px;}
  .nav-group .gl{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-soft);padding:6px 10px;}
  .nav-item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;color:var(--text-3);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;}
  .nav-item:hover{background:rgba(124,92,252,0.08);color:var(--text-2);}
  .nav-item.active{background:linear-gradient(135deg,rgba(124,92,252,0.9),rgba(217,70,168,0.85));color:#fff;box-shadow:0 8px 22px -8px rgba(124,92,252,0.6);}
/* Hovering the ACTIVE item used to wipe its gradient: `.nav-item:hover` sets the
   `background` SHORTHAND, which resets background-image to none, and the light
   override `[data-theme="light"] .nav-item:hover` (0,2,1) outranks
   `.nav-item.active` (0,2,0). The label kept its white colour, so it became text
   on pale lavender — invisible, and only in light mode. This (0,3,0) rule keeps
   the gradient and just lifts it slightly on hover. The colour is intentionally
   NOT restated here: .nav-item.active already sets it, and only the background
   was being wiped. */
.nav-item.active:hover{background:linear-gradient(135deg,rgba(124,92,252,1),rgba(217,70,168,0.95));}
  .nav-item .ic{width:18px;height:18px;flex:0 0 auto;opacity:.9;}
  .nav-item .tx{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .badge{font-family:"JetBrains Mono",monospace;font-size:8px;letter-spacing:.06em;padding:2px 6px;border-radius:5px;font-weight:600;}
  .badge.wf{background:rgba(124,92,252,0.16);color:var(--purple-bright);}
  .badge.nw{background:rgba(217,70,168,0.16);color:var(--magenta-bright);}
  .badge.dot{width:6px;height:6px;border-radius:50%;padding:0;background:var(--cyan);}
  .side .spacer{flex:1;min-height:10px;}
  /* Sidebar language selector — functional dropdown wired to Google Translate. */
  .side .lang{position:relative;margin-top:8px;}
  .side .lang-btn{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:9px;border:1px solid var(--border-strong);color:var(--text-2);font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s;}
  .side .lang-btn:hover{border-color:var(--purple);color:var(--text);}
  .side .lang .flag{width:20px;height:14px;border-radius:3px;overflow:hidden;box-shadow:0 0 0 1px rgba(255,255,255,0.08);flex:none;display:inline-flex;}
  .side .lang .flag img{width:100%;height:100%;object-fit:cover;display:block;}
  .side .lang .car{margin-left:auto;opacity:.6;transition:transform .2s ease;}
  .side .lang.open .car{transform:rotate(180deg);}
  .side .lang-menu{position:absolute;bottom:calc(100% + 6px);left:0;right:0;background:var(--panel);border:1px solid var(--border-strong);border-radius:12px;padding:6px;box-shadow:0 -14px 34px -14px rgba(0,0,0,.5);display:none;z-index:60;}
  .side .lang.open .lang-menu{display:block;}
  .side .lang-opt{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border:0;background:transparent;color:var(--text-2);font:inherit;font-size:13px;font-weight:600;border-radius:9px;cursor:pointer;text-align:left;}
  .side .lang-opt:hover{background:rgba(124,92,252,0.08);color:var(--text);}
  .side .lang-opt.active{color:var(--purple-bright);}
  /* (UI translation is handled by self-contained dictionary i18n — see the
     mv-lang-i18n script in dashboard.html. No external translation service.) */
  /* Account card (panel bottom) */
  .side .acct{display:flex;align-items:center;gap:11px;margin-top:10px;padding:10px 11px;border-radius:12px;border:1px solid var(--border);background:rgba(124,92,252,0.06);}
  .side .acct-av{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--purple),var(--magenta));display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#fff;letter-spacing:.02em;}
  .side .acct-meta{display:flex;flex-direction:column;min-width:0;gap:2px;}
  .side .acct-email{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .side .acct-plan{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.12em;color:var(--purple-bright);font-weight:600;}
  .side .acct-logout{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:10px;padding:12px;border-radius:12px;border:1px solid var(--border-bright,rgba(124,92,252,0.45));background:rgba(124,92,252,0.05);color:var(--purple-bright);font-size:14px;font-weight:700;cursor:pointer;font-family:"Inter",sans-serif;transition:all .15s;}
  .side .acct-logout:hover{background:rgba(124,92,252,0.16);border-color:var(--purple);color:#fff;}
  .side .acct-logout svg{flex:0 0 auto;}

  /* Top bar */
  .main{display:flex;flex-direction:column;min-width:0;height:100vh;overflow-y:auto;}
  .topbars{position:sticky;top:0;z-index:30;background:var(--bg);background:linear-gradient(180deg,#080315,#06020f);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-bottom:1px solid var(--hairline);box-shadow:0 12px 28px -18px rgba(0,0,0,0.8);}
  .topbar{display:flex;align-items:center;gap:12px;padding:14px 26px;flex-wrap:wrap;}
  .logout{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border-radius:999px;border:1px solid var(--border-strong);background:rgba(245,101,101,0.08);color:var(--text-2);font-size:13px;font-weight:600;cursor:pointer;font-family:"Inter",sans-serif;transition:all .15s;}
  .logout:hover{border-color:var(--red);color:#fb8a8a;background:rgba(245,101,101,0.14);}
  .logout svg{flex:0 0 auto;}
  .icbtn{width:38px;height:38px;border-radius:10px;border:1px solid var(--border-strong);background:rgba(255,255,255,0.03);display:flex;align-items:center;justify-content:center;color:var(--text-3);cursor:pointer;}
  .icbtn:hover{color:var(--text);border-color:var(--purple);}
  /* The topbar Back control. .icbtn sets display:flex, which would otherwise
     win over the hidden attribute and leave the button on screen when there is
     nowhere to go back to. */
  .icbtn[hidden]{display:none;}
  /* The Back control shows a label next to its chevron, so it sizes to content
     rather than sitting in the square icon-button box. */
  .icbtn.navback{width:auto;gap:6px;padding:0 12px;font-family:var(--font);font-size:12.5px;font-weight:600;}
  /* Disabled communicates "there is nowhere to go back to". It stays visible
     so the control does not jump around as history changes. */
  .icbtn:disabled{opacity:.45;cursor:not-allowed;}
  .icbtn:disabled:hover{color:var(--text-3);border-color:var(--border-strong);}
  .search{display:flex;align-items:center;gap:8px;padding:0 12px;height:38px;border-radius:10px;border:1px solid var(--border-strong);background:rgba(255,255,255,0.03);color:var(--muted);font-size:13px;min-width:140px;}
  .search kbd{margin-left:auto;font-family:"JetBrains Mono",monospace;font-size:10px;padding:2px 6px;border-radius:5px;background:rgba(255,255,255,0.06);color:var(--text-3);}
  .credits{display:flex;align-items:center;gap:8px;height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:rgba(124,92,252,0.07);font-size:12px;color:var(--text-2);font-weight:600;}
  .credits .pro{font-family:"JetBrains Mono",monospace;font-size:9px;padding:2px 7px;border-radius:5px;background:linear-gradient(135deg,var(--purple),var(--magenta));color:#fff;}
  .analyze-bar{flex:1;display:flex;align-items:center;gap:8px;min-width:240px;height:42px;padding:0 6px 0 16px;border-radius:12px;border:1px solid var(--border-strong);background:rgba(255,255,255,0.03);}
  .analyze-bar input{flex:1;background:none;border:none;color:var(--text);font-size:14px;outline:none;font-family:"Inter",sans-serif;}
  .analyze-bar input::placeholder{color:var(--muted);}
  .btn-grad{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;background:linear-gradient(135deg,var(--purple),var(--magenta));color:#fff;font-weight:700;border-radius:9px;padding:9px 20px;font-size:13.5px;box-shadow:0 8px 22px -8px rgba(124,92,252,0.6);font-family:"Inter",sans-serif;}
  .btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border-strong);background:none;color:var(--text-2);border-radius:9px;padding:9px 16px;font-size:13px;font-weight:600;cursor:pointer;}
  /* icons inside action buttons stay their own size + centred with the label */
  .btn-grad svg,.btn-ghost svg{flex:none;}
  .topbar2{display:flex;align-items:center;gap:10px;padding:11px 26px;border-top:1px solid var(--hairline);flex-wrap:wrap;}
  .chip-sel{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;border-radius:9px;border:1px solid var(--border-strong);background:rgba(255,255,255,0.03);color:var(--text-2);font-size:12.5px;font-weight:500;cursor:pointer;}
  .seg{display:inline-flex;background:rgba(255,255,255,0.03);border:1px solid var(--border-strong);border-radius:9px;padding:3px;gap:2px;}
  .seg span{padding:6px 11px;border-radius:7px;font-size:12px;font-weight:600;color:var(--text-3);cursor:pointer;}
  .seg span.on{background:linear-gradient(135deg,var(--purple),var(--magenta));color:#fff;}
  /* Region dropdown (real select) */
  .dd-sel{position:relative;display:inline-flex;align-items:center;height:34px;border-radius:9px;border:1px solid var(--border-strong);background:rgba(255,255,255,0.03);padding:0 10px 0 11px;gap:7px;color:var(--text-2);}
  .dd-sel:hover{border-color:var(--purple);}
  .dd-sel .dd-ic{flex:0 0 auto;pointer-events:none;}
  .dd-sel .dd-input{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:none;border:none;outline:none;color:var(--text-2);font-family:"Inter",sans-serif;font-size:12.5px;font-weight:500;cursor:pointer;padding-right:18px;}
  .dd-sel .dd-input option{background:#100632;color:var(--text);}
  .dd-sel .dd-car{position:absolute;right:10px;pointer-events:none;opacity:.6;color:var(--text-3);}
  /* Range label */
  .seg-lbl{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-left:4px;}
  /* Custom date-range picker popover (topbar Range control) */
  .mv-range-pop{position:fixed;z-index:200;min-width:246px;background:var(--panel);border:1px solid var(--border-strong);border-radius:12px;padding:14px;box-shadow:0 18px 44px -16px rgba(0,0,0,0.55);display:none;}
  .mv-range-pop.open{display:block;}
  .mv-range-pop h4{margin:0 0 11px;font:700 10.5px/1 "JetBrains Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
  .mv-range-pop .rp-err{margin:0 0 9px;color:var(--red);font-size:11.5px;display:none;}
  .mv-range-pop .row{display:flex;gap:10px;margin-bottom:11px;}
  .mv-range-pop label{flex:1;display:flex;flex-direction:column;gap:5px;font:600 10.5px/1 "Inter",sans-serif;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);}
  .mv-range-pop input[type="date"]{background:var(--bg-2);border:1px solid var(--border-strong);border-radius:9px;color:var(--text);font:600 12.5px "Inter",sans-serif;padding:9px 11px;}
  .mv-range-pop .acts{display:flex;justify-content:flex-end;gap:8px;}
  .mv-range-pop .rp-cancel{background:transparent;border:1px solid var(--border-strong);color:var(--text-3);border-radius:9px;padding:8px 15px;font:600 12.5px "Inter",sans-serif;cursor:pointer;}
  .mv-range-pop .rp-apply{background:var(--purple);border:0;color:#fff;border-radius:9px;padding:8px 17px;font:700 12.5px "Inter",sans-serif;cursor:pointer;}
  .mv-range-pop .rp-apply:hover{background:var(--purple-bright);}
  /* Theme toggle pill with label */
  .themebtn{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--border-strong);background:rgba(255,255,255,0.03);color:var(--text-2);font-size:12.5px;font-weight:600;cursor:pointer;font-family:"Inter",sans-serif;transition:all .15s;}
  .themebtn:hover{border-color:var(--purple);color:var(--text);}
  .themebtn svg{flex:0 0 auto;}
  .user{display:flex;align-items:center;gap:9px;margin-left:auto;padding:5px 12px 5px 5px;border-radius:999px;border:1px solid var(--border-strong);cursor:pointer;}
  .user .av{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--purple),var(--magenta));display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;}
  .user .nm{font-size:13px;font-weight:600;color:var(--text-2);}
  .user-wrap{position:relative;margin-left:auto;}
  .user-wrap .user{margin-left:0;}
  .user-wrap .chev{transition:transform .18s;}
  .user-wrap.open .chev{transform:rotate(180deg);}
  .user-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:212px;background:var(--panel);border:1px solid var(--border-strong);border-radius:12px;padding:6px;box-shadow:0 18px 44px -12px rgba(0,0,0,.6);z-index:200;display:none;}
  .user-menu.open{display:block;}
  .user-menu button{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:10px 12px;border:none;background:none;color:var(--text-2);font-size:13px;font-weight:600;border-radius:8px;cursor:pointer;font-family:"Inter",sans-serif;}
  .user-menu button:hover{background:var(--bg-2);color:var(--text);}
  .user-menu button svg{flex:none;color:var(--text-3);}
  .user-menu button:hover svg{color:var(--purple-bright);}
  .user-menu .um-div{height:1px;background:var(--hairline);margin:5px 4px;}
  .user-menu .um-logout{color:var(--red);}
  .user-menu .um-logout:hover{background:rgba(245,101,101,0.12);color:var(--red);}
  .user-menu .um-logout svg{color:var(--red);}
  .user-menu .um-logout:hover svg{color:var(--red);}

  /* Content */
  .content{padding:22px 26px 60px;max-width:1440px;}
  /* ── Device-size preview (topbar Desktop/Tablet/Mobile toggle) ──────────────
     Clicking a device pill constrains the content column to that width, reflows
     the main grids, and frames it like a device canvas so the pills produce a
     real, visible effect. Desktop = full width (default). All rules are scoped
     to a preview class, so the normal desktop layout is never affected. */
  .content{transition:max-width .3s ease, margin .3s ease, padding .35s ease, border-radius .35s ease, box-shadow .35s ease;}
  .content.dev-tablet{max-width:860px;margin-inline:auto;}
  .content.dev-mobile{max-width:404px;margin-inline:auto;}
  /* Stage behind the framed device: a distinct backdrop + soft brand glow so the
     narrowed column reads as an intentional device preview, not an empty page. */
  .main.dev-preview{background:radial-gradient(120% 55% at 50% 0%, rgba(124,92,252,0.16), transparent 60%), var(--bg-2);}
  /* The device "screen": a clearly visible bezel via a light ring + brand-tinted
     depth. Plain drop-shadows are invisible on the near-black background, so the
     edge is drawn with light rings and a coloured glow instead. */
  .main.dev-preview .content.dev-tablet,
  .main.dev-preview .content.dev-mobile{
    margin-top:30px;margin-bottom:46px;padding:30px 26px 52px;
    background:var(--bg);
    border:1px solid var(--border-strong);
    border-radius:var(--radius-xl);
    box-shadow:0 0 0 1px rgba(255,255,255,0.06), 0 34px 80px -30px rgba(0,0,0,0.9), 0 22px 90px -42px rgba(124,92,252,0.5);
  }
  .main.dev-preview .content.dev-mobile{padding:32px 20px 48px;}
  /* Reflow inner grids so cards fit the narrower device widths. */
  .content.dev-tablet .grid-kpi,.content.dev-tablet .km-stats,.content.dev-tablet .sd-grid,.content.dev-tablet .grid-3,.content.dev-tablet .grid-4,.content.dev-tablet .mvr-kpis{grid-template-columns:repeat(2,1fr)!important;}
  .content.dev-mobile .grid-kpi,.content.dev-mobile .km-stats,.content.dev-mobile .sd-grid,.content.dev-mobile .grid-3,.content.dev-mobile .grid-4,.content.dev-mobile .grid-2,.content.dev-mobile .grid-2b,.content.dev-mobile .stats-grid,.content.dev-mobile .sa-feats,.content.dev-mobile .tt-chips,.content.dev-mobile .mvr-kpis{grid-template-columns:1fr!important;}
  /* ── AI Search Visibility panel (Domain Overview / Competitor Intelligence) ──
     Top-cited-domain chips + the scan-state badge, filled at runtime by the
     mv-domov-live-fillers script from real /api/cited-sources data. Tokenised so
     both themes read correctly. */
  .mv-aichip{font-size:11px;padding:3px 8px;background:rgba(124,92,252,0.08);border:1px solid rgba(124,92,252,0.18);border-radius:var(--radius-xs);color:var(--purple);font-weight:600;white-space:nowrap;}
  .mv-aibadge{padding:5px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;white-space:nowrap;}
  .mv-aibadge--high{background:rgba(14,165,116,0.15);color:var(--green);}
  .mv-aibadge--mid{background:rgba(196,154,60,0.15);color:var(--gold);}
  .mv-aibadge--low{background:rgba(239,68,68,0.12);color:var(--red);}
  .mv-aibadge--off{background:rgba(127,127,127,0.12);color:var(--muted);}
  .card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:22px;position:relative;overflow:hidden;}
  .eyebrow{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;font-weight:600;display:inline-flex;align-items:center;gap:7px;}
  .tag-green{color:var(--green-bright);}
  .verified{font-family:"JetBrains Mono",monospace;font-size:9px;letter-spacing:.1em;padding:3px 9px;border-radius:6px;background:rgba(20,184,127,0.14);color:var(--green-bright);}
  .preview-tag{font-family:"JetBrains Mono",monospace;font-size:8.5px;letter-spacing:.1em;padding:2px 7px;border-radius:5px;background:rgba(124,92,252,0.16);color:var(--purple-bright);}

  /* Command Center strip */
  .status-strip{display:flex;align-items:center;gap:18px;font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.05em;color:var(--muted);padding:11px 18px;border:1px solid var(--hairline);border-radius:12px;background:var(--card);margin-bottom:18px;flex-wrap:wrap;}
  .status-strip .live{display:inline-flex;align-items:center;gap:6px;color:var(--green);}
  .status-strip .live .d{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);}
  .status-strip .mvtag{display:inline-flex;align-items:center;gap:8px;color:var(--text-2);font-weight:700;letter-spacing:.12em;}

  /* Quick Preview */
  .qp-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap;}
  .qp h3{font-family:"Inter Tight",sans-serif;font-size:18px;font-weight:700;margin:0 0 4px;}
  .qp .s1{color:var(--text-2);font-size:13.5px;margin:0;}
  .qp .s2{color:var(--muted);font-size:12px;margin:3px 0 16px;}
  .qp-input{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
  .qp-input .field{flex:1;min-width:220px;display:flex;align-items:center;height:46px;padding:0 16px;border-radius:11px;border:1px solid var(--border-strong);background:rgba(255,255,255,0.03);}
  .qp-input input{width:100%;background:none;border:none;color:var(--text);font-size:14px;outline:none;}
  .qp-input input::placeholder{color:var(--muted);}
  /* The Overview "Probe" CTA was the only primary button not on the brand
     gradient (it was cyan on an off-scale 10px radius). It now composes
     .btn-grad like every other primary action; this only keeps its taller
     height so it still lines up with the input beside it. */
  .btn-probe{padding:13px 22px;}
  .try-row{display:flex;align-items:center;gap:9px;margin-top:14px;flex-wrap:wrap;}
  .try-row .tl{color:var(--muted);font-size:12px;}
  .try-chip{padding:6px 13px;border-radius:8px;border:1px solid var(--border-strong);background:rgba(255,255,255,0.03);font-size:12px;color:var(--text-2);cursor:pointer;}
  .try-chip:hover{border-color:var(--purple);color:var(--text);}

  .sec-head{display:flex;align-items:flex-end;justify-content:space-between;margin:22px 0 6px;gap:16px;flex-wrap:wrap;}
  .sec-head h1{font-family:"Inter Tight",sans-serif;font-size:32px;font-weight:800;letter-spacing:-0.03em;margin:0;}
  .sec-head h1 em{font-family:"Fraunces",serif;font-style:italic;font-weight:400;background:linear-gradient(135deg,var(--purple-bright),var(--magenta-bright));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
  .sec-head p{margin:6px 0 0;color:var(--text-3);font-size:13.5px;max-width:560px;}
  .sec-head .acts{display:flex;gap:8px;}
  .btn-sm{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.06em;padding:9px 15px;border-radius:9px;cursor:pointer;font-weight:600;}
  .btn-sm.ghost{border:1px solid var(--border-strong);background:none;color:var(--text-2);}
  .btn-sm.grad{border:none;background:linear-gradient(135deg,var(--purple),var(--magenta));color:#fff;}

  .export-row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px;}
  .tbtn{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:9px;border:1px solid var(--border-strong);background:var(--card);color:var(--text-2);font-size:12.5px;font-weight:600;cursor:pointer;}
  .tbtn:hover{border-color:var(--purple);color:var(--text);}
  /* ===== View switching ===== */
  .view[hidden]{display:none;}

  /* ===== Competitor Intelligence page ===== */
  .ci-hero{display:block;margin-bottom:14px;}
  .ci-hero-icon{width:60px;height:60px;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--purple),var(--magenta));box-shadow:0 12px 30px -10px rgba(124,92,252,0.6);flex:0 0 auto;}
  .ci-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
  .ci-pill{font-family:"JetBrains Mono",monospace;font-size:9.5px;letter-spacing:.1em;font-weight:600;padding:4px 10px;border-radius:7px;display:inline-flex;align-items:center;gap:6px;}
  /* de-rainbowed: decorative label pills share one neutral chip; colour is
     carried by state signals (the live dot / solid tier badges) only. */
  .ci-pill.p-live,.ci-pill.p-mag,.ci-pill.p-pur,.ci-pill.p-green,
  .ci-pill.p-amber,.ci-pill.p-gold,.ci-pill.p-cyan,.ci-pill.p-red{background:rgba(124,92,252,0.10);color:var(--text-2);}
  .ci-pill .dotlive{width:6px;height:6px;border-radius:50%;background:var(--cyan-bright);box-shadow:0 0 8px var(--cyan-bright);}
  .ci-title{font-family:"Inter Tight",sans-serif;font-size:28px;font-weight:800;letter-spacing:-0.03em;margin:0 0 8px;}
  .ci-title em{font-family:"Fraunces",serif;font-style:italic;font-weight:400;background:linear-gradient(135deg,var(--purple-bright),var(--magenta-bright));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
  .ci-desc{margin:0;color:var(--text-3);font-size:13.5px;line-height:1.6;max-width:640px;}
  .ci-exports-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
  .ci-exports-row .tbtn{height:38px;box-sizing:border-box;}
  .ci-metrics .kpi .top{align-items:flex-start;}
  .ci-mi{margin-top:1px;}
  .ci-metrics{margin-bottom:18px;}
  .ci-mi{display:flex;align-items:center;justify-content:center;background:none;border:none;}
  .ci-mi svg{width:18px;height:18px;}
  /* Metric-icon chips — de-rainbowed to one brand mark (metrics are labels, not
     state; they don't each earn a colour). */
  .mi-red,.mi-pink,.mi-cyan,.mi-gold{color:var(--purple-bright);}
  .mi-green{color:var(--green-bright);}
  .mi-purple{color:var(--purple-bright);}
  /* Run card */
  .ci-run{}
  .ci-runstatus{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--text-3);padding:11px 14px;border-radius:11px;background:rgba(124,92,252,0.07);border:1px solid var(--border);margin-bottom:16px;line-height:1.5;}
  .ci-runstatus b{color:var(--text);font-weight:700;}
  .ci-runstatus svg{flex:0 0 auto;}
  .ci-runrow{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
  .ci-field{flex:1;min-width:200px;display:flex;align-items:center;gap:9px;height:46px;padding:0 15px;border-radius:11px;border:1px solid var(--border-strong);background:rgba(255,255,255,0.03);color:var(--muted);}
  .ci-field input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:14px;font-family:"Inter",sans-serif;}
  .ci-field input::placeholder{color:var(--muted);}
  .ci-run-btn{display:inline-flex;align-items:center;gap:9px;height:46px;padding:0 22px;border-radius:11px;font-size:14px;white-space:nowrap;}
  .ci-runfoot{display:flex;justify-content:space-between;gap:16px;margin-top:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);}
  .ci-tip{display:inline-flex;align-items:center;gap:6px;color:var(--magenta-bright);white-space:nowrap;}


  /* Export / share actions — de-rainbowed. Tools & actions don't get per-action
     colours (design constitution); the icon + label carry meaning. Every variant
     shares ONE neutral ghost look + a single brand hover. */
  .tb-red,.tb-green,.tb-cyan,.tb-gold,.tb-purple,.tb-cyan2,.tb-purple2{color:var(--text-2);border-color:var(--border-strong);}
  .tb-red:hover,.tb-green:hover,.tb-cyan:hover,.tb-gold:hover,.tb-purple:hover,.tb-cyan2:hover,.tb-purple2:hover{color:var(--text);border-color:var(--purple);background:rgba(124,92,252,0.10);}

  .grid-2{display:grid;grid-template-columns:1fr 1.45fr;gap:16px;margin-bottom:18px;}
  .grid-2b{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px;}
  .grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:18px;}
  .grid-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px;}

  .opp h4{font-family:"Inter Tight",sans-serif;font-size:18px;font-weight:700;margin:10px 0 6px;}
  .opp p{color:var(--text-3);font-size:13px;margin:0;}
  .brief .meta{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;}
  .brief h4{font-family:"Inter Tight",sans-serif;font-size:20px;font-weight:700;margin:9px 0 8px;}
  .brief p{color:var(--text-3);font-size:13px;margin:0 0 12px;}
  .brief ul{margin:0 0 16px;padding-left:18px;color:var(--text-2);font-size:13px;}
  .brief ul li{margin-bottom:5px;}
  .brief .acts{display:flex;gap:8px;flex-wrap:wrap;}
  .pill{padding:8px 14px;border-radius:999px;border:1px solid var(--border-strong);font-size:12px;color:var(--text-2);font-weight:600;cursor:pointer;background:rgba(255,255,255,0.03);}
  .pill:hover{border-color:var(--purple);}

  .kpi .top{display:flex;align-items:center;justify-content:space-between;}
  .kpi .kl{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);}
  .kpi .nb{font-family:"JetBrains Mono",monospace;font-size:8px;padding:2px 6px;border-radius:4px;background:rgba(217,70,168,0.16);color:var(--magenta-bright);}
  .kpi .kv{font-family:"Inter Tight",sans-serif;font-size:40px;font-weight:800;letter-spacing:-0.03em;margin:10px 0 6px;line-height:1;}
  .kpi .kv.pink{color:var(--text);}
  .kpi .kv small{font-size:18px;color:var(--text-3);font-weight:600;}
  .kpi .kv.dom{font-size:26px;color:var(--text);}
  .kpi .ksub{font-size:12px;color:var(--muted);}

  .ch-head{margin-bottom:16px;}
  .ch-head h3{font-family:"Inter Tight",sans-serif;font-size:16px;font-weight:700;margin:0;}
  .ch-head p{margin:3px 0 0;font-size:12px;color:var(--muted);}
  .bars{display:flex;align-items:flex-end;gap:9px;height:150px;}
  .bars .b{flex:1;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--magenta-bright),var(--purple));}
  .bars.cyan .b{background:linear-gradient(180deg,var(--cyan-bright),var(--cyan));}
  .axisrow{display:flex;gap:9px;margin-top:8px;}
  .axisrow span{flex:1;text-align:center;font-size:10px;color:var(--muted);font-family:"JetBrains Mono",monospace;}
  .hbar{display:flex;align-items:center;gap:12px;margin-bottom:13px;}
  .hbar .lb{width:74px;font-size:12px;color:var(--text-3);}
  .hbar .track{flex:1;height:11px;border-radius:999px;background:rgba(255,255,255,0.05);overflow:hidden;}
  .hbar .fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gold),var(--amber));}
  .hbar .vn{width:30px;text-align:right;font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--text-2);font-weight:600;}

  .list-label{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--text-3);margin-bottom:6px;}
  .lrow{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--hairline);}
  .lrow:last-of-type{border-bottom:none;}
  .rank{width:26px;height:26px;border-radius:8px;background:rgba(230,179,71,0.16);color:var(--gold);font-family:"JetBrains Mono",monospace;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;}
  .lrow .dom{flex:1;font-size:14px;font-weight:600;}
  .score-chip{font-family:"JetBrains Mono",monospace;font-size:13px;font-weight:700;padding:4px 10px;border-radius:8px;}
  .sc-good{background:rgba(20,184,127,0.15);color:var(--green-bright);}
  .sc-mid{background:rgba(245,158,11,0.15);color:var(--amber);}
  .note{font-size:12px;color:var(--muted);margin-top:12px;display:flex;align-items:center;gap:7px;}
  .feed{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--hairline);}
  .feed:last-of-type{border-bottom:none;}
  .feed .fdot{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:15px;}
  .feed .ft{flex:1;}
  .feed .ft b{font-size:13.5px;font-weight:600;display:block;}
  .feed .ft span{font-size:11.5px;color:var(--muted);}

  .welcome{text-align:center;padding:46px 24px;background:linear-gradient(135deg,rgba(124,92,252,0.10),rgba(217,70,168,0.06));border:1px solid var(--border);border-radius:20px;margin-bottom:24px;}
  .welcome .wave{font-size:34px;}
  .welcome h2{font-family:"Inter Tight",sans-serif;font-size:30px;font-weight:800;letter-spacing:-0.02em;margin:10px 0 12px;}
  .welcome p{color:var(--text-3);font-size:14px;max-width:620px;margin:0 auto 22px;line-height:1.6;}
  .welcome .wbtns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
  .wbtn{padding:13px 22px;border-radius:11px;font-size:14px;font-weight:700;cursor:pointer;}
  .wbtn.grad{border:none;background:linear-gradient(135deg,var(--purple),var(--magenta));color:#fff;box-shadow:0 12px 30px -10px rgba(124,92,252,0.6);}
  .wbtn.ghost{border:1px solid var(--border-strong);background:rgba(255,255,255,0.03);color:var(--text);}

  .qa .ql{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;}
  .qa .chips{display:flex;gap:9px;flex-wrap:wrap;}
  .dchip{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:9px;border:1px solid var(--border-strong);background:var(--card);font-size:12.5px;color:var(--text-2);font-weight:500;cursor:pointer;}
  .dchip:hover{border-color:var(--purple);color:var(--text);}
  .dchip .fav{width:16px;height:16px;border-radius:4px;object-fit:cover;background:rgba(255,255,255,0.06);}

  @media(max-width:1150px){.grid-kpi{grid-template-columns:1fr 1fr;}.grid-3{grid-template-columns:1fr;}.grid-2,.grid-2b{grid-template-columns:1fr;}}
  @media(max-width:1150px){.app{grid-template-columns:64px 248px 1fr;}}
  @media(max-width:820px){.app{grid-template-columns:64px 1fr;}.side{display:none;}}

  .i{display:inline-flex;vertical-align:-2px;margin-right:3px;color:var(--purple-bright);}
  .ksub .i{color:var(--purple-bright);}
  .wbtn .bi{display:inline-flex;vertical-align:-3px;margin-right:6px;}
  .verified svg{vertical-align:-1px;}
  .brief .meta svg{vertical-align:-2px;margin-right:3px;color:var(--gold);}
  .feed .fdot svg{display:block;}

  /* ===== Light theme (toggle) ===== */
  body,.side,.topbar,.topbar2,.card,.nav-item,.icbtn,.search,.credits,.analyze-bar,.tbtn,.pill,.dchip,.chip-sel,.seg,.user,.status-strip,.lang,.score-chip,.rank,.hbar .track,.feed .fdot,.welcome,.try-chip,.qp-input .field{transition:background-color .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease;}
  [data-theme="light"]{
    --bg:#f6f4fc; --bg-2:#efeafa; --panel:#ffffff;
    --text:#1a1430; --text-2:#3a3358; --text-3:#5d557e; --muted:#7a7299; --muted-soft:#9a93b5;
    --purple:#7c5cfc; --purple-bright:#6d4ef0; --magenta:#c0379a; --magenta-bright:#cf3f9b;
    --cyan:#0891b2; --cyan-bright:#0aa6c9; --gold:#b07d0a; --green:#0f9d6b; --green-bright:#0f9d6b; --amber:#c2700a; --red:#dc3b56;
    --border:rgba(124,92,252,0.20); --border-strong:rgba(26,20,48,0.12); --hairline:rgba(26,20,48,0.08);
    --card:linear-gradient(180deg,#ffffff,#faf8ff);
  }
  [data-theme="light"] #view-growth .ga-desc{color:var(--text-2);}
  [data-theme="light"] .aa-sg{background:#fff;border-color:rgba(124,92,252,.30);color:var(--text-2);box-shadow:0 1px 2px rgba(26,20,48,.05);}
  [data-theme="light"] .aa-tag{background:rgba(124,92,252,.14);color:#5a3fd6;}
  [data-theme="light"] .ig-preview{border:1px solid #e2e0ee;box-shadow:0 8px 28px rgba(26,20,48,.12);}
  [data-theme="light"] .ig-drop{border-color:rgba(124,92,252,.4);background:rgba(124,92,252,.05);}
  [data-theme="light"] .ig-stat-accent .ig-stat-v{color:#0a7c96;}
  [data-theme="light"] .tb-cyan2{color:#0a93ad;border-color:rgba(10,147,173,.4);}
  [data-theme="light"] .rk-select select{color:var(--text);font-weight:600;}
  [data-theme="light"] .rk-chev{color:var(--text-3);}
  [data-theme="light"] .rk-csvlink{color:#0a7c96;}
  /* (sa-ic-* light overrides removed — unified brand chip is theme-aware) */
  [data-theme="light"] body{background:var(--bg);}
  [data-theme="light"] .side{background:linear-gradient(180deg,#ffffff,#f3f0fb);}
  [data-theme="light"] .topbars{background:#f6f4fc;background:linear-gradient(180deg,#ffffff,#f5f2fc);box-shadow:0 12px 28px -20px rgba(80,60,160,0.25);}
  [data-theme="light"] .topbar{background:transparent;}
  [data-theme="light"] .icbtn,
  [data-theme="light"] .search,
  [data-theme="light"] .analyze-bar,
  [data-theme="light"] .chip-sel,
  [data-theme="light"] .dchip,
  [data-theme="light"] .try-chip,
  [data-theme="light"] .qp-input .field{background:#ffffff;}
  [data-theme="light"] .search kbd,
  [data-theme="light"] .seg{background:#f1edfb;}
  [data-theme="light"] .dd-sel{background:#ffffff;}
  [data-theme="light"] .dd-sel .dd-input{color:#3a3358;}
  [data-theme="light"] .dd-sel .dd-input option{background:#ffffff;color:#1a1430;}
  [data-theme="light"] .themebtn{background:#ffffff;}
  [data-theme="light"] .ci-field{background:#ffffff;}
  [data-theme="light"] .ci-runstatus{background:rgba(124,92,252,0.07);color:#4a4366;}
  /* (light-theme export-button colours removed — neutral .tb-* is theme-aware via var(--text-2)) */
  [data-theme="light"] .nav-item:hover{background:rgba(124,92,252,0.10);}
/* Must be light-scoped too: the rule above is (0,3,0) (the attribute counts in
   the class column), so a bare .nav-item.active:hover ties it and loses on
   order. Without this, hovering the ACTIVE item wipes its gradient via the
   `background` shorthand while the colour stays white -> white on pale lavender. */
[data-theme="light"] .nav-item.active:hover{background:linear-gradient(135deg,rgba(124,92,252,1),rgba(217,70,168,0.95));}
  [data-theme="light"] .credits{background:rgba(124,92,252,0.10);color:#3a3358;}
  [data-theme="light"] .hbar .track{background:rgba(26,20,48,0.07);}
  [data-theme="light"] .card{box-shadow:0 1px 2px rgba(26,20,48,0.04),0 12px 30px -18px rgba(124,92,252,0.30);}
  [data-theme="light"] .welcome{background:linear-gradient(135deg,rgba(124,92,252,0.10),rgba(217,70,168,0.06));}
  [data-theme="light"] ::-webkit-scrollbar-thumb{background:rgba(124,92,252,0.30);}
  /* light-theme readability */
  [data-theme="light"] .pill{background:rgba(124,92,252,0.07);color:#3a3358;border-color:rgba(124,92,252,0.25);}
  [data-theme="light"] .pill:hover{background:rgba(124,92,252,0.12);color:#1a1430;}
  [data-theme="light"] .opp p,
  [data-theme="light"] .brief p,
  [data-theme="light"] .welcome p,
  [data-theme="light"] .sec-head p{color:#4a4366;}
  [data-theme="light"] .ch-head p,
  [data-theme="light"] .qp .s2,
  [data-theme="light"] .kpi .ksub,
  [data-theme="light"] .note,
  [data-theme="light"] .feed .ft span,
  [data-theme="light"] .axisrow span,
  [data-theme="light"] .try-row .tl{color:#6d6589;}
  [data-theme="light"] .status-strip{color:#5d557e;}
  [data-theme="light"] .status-strip span,
  [data-theme="light"] .status-strip span[style]{color:#5d557e !important;}
  [data-theme="light"] .qa .ql,
  [data-theme="light"] .kpi .kl,
  [data-theme="light"] .nav-group .gl,
  [data-theme="light"] .brief .meta{color:#7a7299;}
  [data-theme="light"] .sc-good{background:rgba(15,157,107,0.14);color:#0f9d6b;}
  /* stronger secondary-text contrast in light mode */
  [data-theme="light"]{--muted:#6a6188;--muted-soft:#8e86a8;}
  [data-theme="light"] .kpi .ksub,
  [data-theme="light"] .feed .ft span,
  [data-theme="light"] .axisrow span,
  [data-theme="light"] .note,
  [data-theme="light"] .ch-head p,
  [data-theme="light"] .qp .s2{color:#5d5578;}
  [data-theme="light"] .status-strip,
  [data-theme="light"] .status-strip span,
  [data-theme="light"] .status-strip span[style]{color:#4f4870 !important;}
  [data-theme="light"] .dchip{color:#3a3358;}
  [data-theme="light"] .welcome p{color:#46406a;}
  [data-theme="light"] .side .acct{background:rgba(124,92,252,0.07);}
  [data-theme="light"] .side .acct-email{color:#1a1430;}
  [data-theme="light"] .side .acct-plan{color:#6d4ef0;}
  [data-theme="light"] .side .acct-logout{color:#6d4ef0;border-color:rgba(124,92,252,0.5);background:rgba(124,92,252,0.06);}
  [data-theme="light"] .side .acct-logout:hover{background:rgba(124,92,252,0.14);color:#4a2fd0;}
  [data-theme="light"] .rail{background:linear-gradient(180deg,#ffffff,#f3f0fb);}
  [data-theme="light"] .ritem:hover{background:rgba(124,92,252,0.10);}
  [data-theme="light"] .ritem .tip{background:#ffffff;color:#1a1430;}
  [data-theme="light"] .rail .ritem{color:#5d557e;}
  [data-theme="light"] .rail .ritem:hover{color:#1a1430;}
/* Needs .rail in the selector to outrank the :hover colour rule above (0,4,0). */
[data-theme="light"] .rail .ritem.active:hover{background:linear-gradient(135deg,var(--purple),var(--magenta));}
  [data-theme="light"] .rail .ritem.active{color:#fff;}
  [data-theme="light"] .ritem .rlabel{color:inherit;}
  [data-theme="light"] .rail .rutil{background:#ffffff;}
  /* Active Workspace (rutil) must keep the gradient in light mode — outrank the
     white-card rule above (0,3,0) so the white label/icon isn't lost on white. */
  [data-theme="light"] .rail .rutil.active{background:linear-gradient(135deg,var(--purple),var(--magenta));}
  .app.panel-collapsed{grid-template-columns:92px 0 1fr;}
  .app.panel-collapsed .side{transform:translateX(-110%);opacity:0;pointer-events:none;}
  .side{transition:transform .26s cubic-bezier(.16,1,.3,1),opacity .2s;}
  /* arrow points right (expand) when collapsed */
  .app.panel-collapsed .rail-collapse .rc-ic{transform:rotate(180deg);}
  .rail-collapse .rc-ic{transition:transform .2s;}

  /* === Analyst AI chat === */
  .ci-pill.p-newsolid{background:var(--magenta-bright);color:#fff;}
  .ci-pill.p-orangesolid{background:linear-gradient(135deg,#f0942e,#e6741a);color:#fff;}
  .aa-chat{padding:0;overflow:hidden;}
  .aa-chat-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;border-bottom:1px solid var(--hairline);}
  .aa-bot{display:flex;align-items:center;gap:12px;}
  .aa-ava{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:#fff;background:linear-gradient(150deg,var(--purple),var(--magenta));flex:none;}
  .aa-ava svg{width:22px;height:22px;}
  .aa-botname{font-weight:800;font-size:14.5px;color:var(--text);display:flex;align-items:center;gap:8px;}
  .aa-tag{font:600 10px/1 'JetBrains Mono',monospace;letter-spacing:.04em;padding:4px 7px;border-radius:6px;background:rgba(124,92,252,.18);color:var(--purple-bright);}
  .aa-status{font-size:12px;color:var(--text-3);display:flex;align-items:center;gap:6px;margin-top:3px;}
  .aa-gear{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--text-3);background:transparent;border:1px solid var(--hairline);cursor:pointer;transition:.15s;}
  .aa-gear:hover{color:var(--text);border-color:var(--border-strong);}
  .aa-chips{display:flex;flex-wrap:wrap;gap:10px;padding:16px 20px;border-bottom:1px solid var(--hairline);}
  .aa-chip{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border-radius:10px;font-size:12.5px;font-weight:600;color:var(--text-2);background:var(--bg-2);border:1px solid var(--hairline);cursor:pointer;transition:.15s;}
  .aa-chip:hover{color:var(--text);border-color:var(--border);background:rgba(124,92,252,.08);}
  .aa-chip svg{color:var(--muted);}
  .aa-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:52px 24px 40px;}
  .aa-ava-lg{width:64px;height:64px;border-radius:18px;margin-bottom:18px;}
  .aa-ava-lg svg{width:36px;height:36px;}
  .aa-empty-h{font-family:'Fraunces',serif;font-weight:600;font-size:21px;color:var(--text);margin:0 0 10px;}
  .aa-empty-p{max-width:440px;font-size:13.5px;line-height:1.6;color:var(--text-3);margin:0;}
  .aa-suggest{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:4px 20px 22px;}
  .aa-sg{padding:9px 15px;border-radius:999px;font-size:12.5px;font-weight:600;color:var(--text-2);background:var(--bg-2);border:1px solid var(--border);cursor:pointer;transition:.15s;}
  .aa-sg:hover{color:#fff;background:linear-gradient(135deg,var(--purple),var(--magenta));border-color:transparent;}
  [data-theme="light"] .aa-sg:hover{color:#fff;}
  .aa-inputbar{display:flex;align-items:center;gap:10px;margin:0 20px;padding:6px 6px 6px 16px;border-radius:14px;background:var(--bg-2);border:1px solid var(--border);}
  .aa-inputbar input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:13.5px;padding:9px 0;}
  .aa-inputbar input::placeholder{color:var(--muted);}
  .aa-send{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--purple),var(--magenta));border:none;cursor:pointer;flex:none;transition:.15s;}
  .aa-send:hover{filter:brightness(1.08);}
  .aa-foot{text-align:center;font-size:11px;color:var(--muted);padding:14px 20px 18px;}

  /* === Integrations === */
  .ci-pill.p-greensolid{background:linear-gradient(135deg,#1bc98a,#0f9d6b);color:#fff;}
  /* .ci-pill.p-cyan folded into the neutral pill group above (was cyan) */
  .ig-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;position:relative;overflow:hidden;}
  .ig-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 240px at 88% -40%,rgba(34,211,238,.14),transparent 60%);pointer-events:none;}
  .ig-hero-main{position:relative;z-index:1;}
  .ig-badges{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
  .ig-hero-stats{display:flex;gap:14px;position:relative;z-index:1;flex:none;}
  .ig-stat{min-width:120px;padding:16px 18px;border-radius:14px;background:var(--bg-2);border:1px solid var(--hairline);text-align:left;}
  .ig-stat-accent{background:linear-gradient(160deg,rgba(34,211,238,.12),rgba(124,92,252,.08));border-color:rgba(34,211,238,.25);}
  .ig-stat-k{font:600 10px/1 'JetBrains Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
  .ig-stat-v{font-family:'Inter Tight',sans-serif;font-weight:800;font-size:30px;color:var(--text);margin-top:8px;line-height:1;}
  .ig-stat-accent .ig-stat-v{color:var(--cyan-bright);}
  .ig-stat-v small{font-size:18px;}

  .ig-card{position:relative;overflow:hidden;}
  .ig-rail{position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#4285F4,#34A853,#FBBC05,#EA4335);}
  .ig-card-row{display:flex;gap:20px;align-items:flex-start;}
  .ig-logo{width:58px;height:58px;border-radius:15px;display:grid;place-items:center;flex:none;}
  .ig-logo-g{background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.25);}
  .ig-card-body{flex:1;min-width:0;}
  .ig-card-title{font-family:'Inter Tight',sans-serif;font-weight:800;font-size:18px;color:var(--text);display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
  .ig-status{font:600 10px/1 'JetBrains Mono',monospace;letter-spacing:.05em;padding:5px 9px;border-radius:7px;background:rgba(150,140,180,.16);color:var(--muted);}
  .ig-card-desc{font-size:13.5px;line-height:1.6;color:var(--text-3);margin:10px 0 0;max-width:760px;}
  .ig-livebadge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:6px;font:700 10px/1.4 'JetBrains Mono',monospace;background:rgba(20,184,127,.16);color:var(--green-bright);vertical-align:middle;}
  .ig-feats{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0;}
  .ig-feat{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;font-size:11.5px;font-weight:600;color:var(--text-2);background:var(--bg-2);border:1px solid var(--hairline);}
  .ig-feat svg{color:var(--purple-bright);}
  .ig-card-actions{display:flex;gap:12px;flex-wrap:wrap;}
  .ig-btn-g{display:inline-flex;align-items:center;gap:9px;padding:11px 18px;border-radius:11px;font-size:13.5px;font-weight:700;color:#fff;background:#1a73e8;border:none;cursor:pointer;transition:.15s;}
  .ig-btn-g:hover{background:#1765cc;}
  .ig-btn-warn{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border-radius:11px;font-size:13px;font-weight:600;color:var(--gold);background:rgba(230,179,71,.1);border:1px solid rgba(230,179,71,.3);cursor:pointer;transition:.15s;}
  .ig-btn-warn:hover{background:rgba(230,179,71,.18);}

  .ig-wl-head{display:flex;gap:18px;align-items:flex-start;margin-bottom:24px;}
  .ig-logo-wl{width:48px;height:48px;border-radius:13px;background:linear-gradient(150deg,var(--purple),var(--magenta));color:#fff;}
  .ig-pro{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:7px;font:700 10px/1.4 'JetBrains Mono',monospace;background:linear-gradient(135deg,var(--purple),var(--magenta));color:#fff;}
  .ig-pro-dim{background:rgba(124,92,252,.16);color:var(--purple-bright);}
  .ig-wl-grid{display:grid;grid-template-columns:1fr 380px;gap:32px;align-items:start;}
  .ig-form{display:flex;flex-direction:column;}
  .ig-lbl{display:flex;align-items:center;gap:7px;font:700 10.5px/1 'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);margin:18px 0 9px;}
  .ig-lbl:first-child{margin-top:0;}
  .ig-lbl svg{color:var(--purple-bright);}
  .ig-hint{color:var(--muted);font-weight:500;letter-spacing:.02em;}
  .ig-input{width:100%;padding:12px 14px;border-radius:11px;background:var(--bg-2);border:1px solid var(--border);color:var(--text);font-size:13.5px;outline:none;transition:.15s;}
  .ig-input::placeholder{color:var(--muted);}
  .ig-input:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(124,92,252,.16);}
  .ig-drop{display:flex;align-items:center;gap:14px;padding:18px;border-radius:13px;border:1.5px dashed var(--border);background:rgba(124,92,252,.04);cursor:pointer;transition:.15s;}
  .ig-drop:hover{border-color:var(--purple);background:rgba(124,92,252,.08);}
  .ig-drop svg{color:var(--purple-bright);flex:none;}
  .ig-drop b{display:block;font-size:13.5px;color:var(--text);}
  .ig-drop span{display:block;font-size:12px;color:var(--muted);margin-top:2px;}
  .ig-colors{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .ig-color{display:flex;align-items:center;gap:0;border-radius:11px;background:var(--bg-2);border:1px solid var(--border);overflow:hidden;}
  .ig-sw{width:42px;height:42px;flex:none;}
  .ig-color input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font:600 13px/1 'JetBrains Mono',monospace;padding:0 12px;}

  .ig-preview-wrap{display:flex;flex-direction:column;}
  .ig-preview{background:#fff;border-radius:16px;padding:22px;box-shadow:0 12px 40px rgba(0,0,0,.35);}
  .ig-pv-head{display:flex;align-items:center;gap:12px;}
  .ig-pv-logo{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-family:'Inter Tight';font-weight:800;font-size:16px;color:#fff;background:linear-gradient(150deg,#7c5cfc,#e0399b);}
  .ig-pv-name{font-family:'Inter Tight';font-weight:800;font-size:15px;color:#1a1430;}
  .ig-pv-sub{font-size:11.5px;color:#8a86a0;margin-top:1px;}
  .ig-pv-rule{height:2px;border-radius:2px;background:linear-gradient(90deg,#7c5cfc,#e0399b);margin:16px 0;}
  .ig-pv-stats{display:flex;gap:34px;}
  .ig-pv-k{font:700 9.5px/1 'JetBrains Mono',monospace;letter-spacing:.06em;color:#a09bb5;}
  .ig-pv-val{font-family:'Inter Tight';font-weight:800;font-size:21px;color:#1a1430;margin-top:6px;}
  .ig-pv-up{color:#0f9d6b;}
  .ig-pv-bar{height:8px;border-radius:5px;background:linear-gradient(90deg,#7c5cfc,#e0399b);margin:18px 0 12px;}
  .ig-pv-line{height:8px;border-radius:5px;background:#ece9f5;}
  .ig-pv-line.short{width:62%;margin-top:8px;}
  .ig-pv-foot{text-align:center;font-size:10.5px;color:#a09bb5;margin-top:18px;}
  .ig-pv-actions{display:flex;gap:9px;margin-top:16px;flex-wrap:wrap;}
  .ig-save{padding:10px 15px;font-size:12.5px;}
  .ig-ghost{display:inline-flex;align-items:center;gap:7px;padding:10px 14px;border-radius:11px;font-size:12.5px;font-weight:600;color:var(--text-2);background:var(--bg-2);border:1px solid var(--border);cursor:pointer;transition:.15s;}
  .ig-ghost:hover{color:var(--text);border-color:var(--border-strong);}
  .ig-reset{color:var(--magenta-bright);}
  .ig-reset svg{color:var(--magenta-bright);}

  .ig-toggle{display:flex;align-items:center;gap:13px;margin-top:26px;padding:16px 18px;border-radius:13px;background:var(--bg-2);border:1px solid var(--hairline);cursor:pointer;}
  .ig-toggle input{display:none;}
  .ig-check{width:22px;height:22px;border-radius:7px;border:1.5px solid var(--border-strong);display:grid;place-items:center;color:transparent;flex:none;transition:.15s;}
  .ig-toggle input:checked + .ig-check{background:var(--purple);border-color:var(--purple);color:#fff;}
  .ig-toggle-txt{flex:1;}
  .ig-toggle-txt b{display:block;font-size:13.5px;color:var(--text);}
  .ig-toggle-txt span{display:block;font-size:12px;color:var(--text-3);margin-top:2px;}
  @media(max-width:1080px){.ig-wl-grid{grid-template-columns:1fr;}.ig-hero{flex-direction:column;}.ig-hero-stats{width:100%;}}

  /* === Integrations v2 (two-column dashboard) === */
  .ig2-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;position:relative;overflow:hidden;padding:22px 24px;}
  .ig2-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 200px at 92% -50%,rgba(34,211,238,.13),transparent 60%);pointer-events:none;}
  .ig2-hero-l{position:relative;z-index:1;min-width:0;}
  .ig2-title{font-family:'Fraunces',serif;font-weight:600;font-size:26px;color:var(--text);margin:10px 0 6px;line-height:1;}
  .ig2-desc{font-size:13px;line-height:1.55;color:var(--text-3);margin:0;max-width:620px;}
  .ig2-hero-stats{display:flex;gap:12px;position:relative;z-index:1;flex:none;}
  .ig2-stat{min-width:96px;padding:14px 16px;border-radius:13px;background:var(--bg-2);border:1px solid var(--hairline);text-align:center;}
  .ig2-stat-accent{background:linear-gradient(160deg,rgba(34,211,238,.12),rgba(124,92,252,.07));border-color:rgba(34,211,238,.25);}
  .ig2-stat-v{font-family:'Inter Tight',sans-serif;font-weight:800;font-size:28px;color:var(--text);line-height:1;}
  .ig2-stat-accent .ig2-stat-v{color:var(--cyan-bright);}
  .ig2-stat-v small{font-size:16px;}
  .ig2-stat-k{font:600 9.5px/1 'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:7px;}

  .ig2-grid{display:grid;grid-template-columns:1fr 392px;gap:22px;align-items:start;margin-top:20px;}
  .ig2-col{min-width:0;}
  .ig2-col-r{position:sticky;top:18px;}
  .ig2-sec-head{display:flex;align-items:center;gap:9px;font:700 11px/1 'JetBrains Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin:0 2px 13px;}
  .ig2-sec-head svg{color:var(--purple-bright);}
  .ig2-sec-meta{margin-left:auto;font-weight:500;color:var(--muted);letter-spacing:.02em;text-transform:none;}

  .ig2-src{position:relative;overflow:hidden;padding:20px;margin-bottom:14px;}
  .ig2-src-top{display:flex;gap:15px;align-items:flex-start;}
  .ig2-src-meta{flex:1;min-width:0;}

  .ig2-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
  .ig2-tile{padding:16px;display:flex;flex-direction:column;align-items:flex-start;gap:0;transition:.15s;}
  .ig2-tile:hover{border-color:var(--border);transform:translateY(-2px);}
  .ig2-tile-logo{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;margin-bottom:12px;}
  .ig2-tile-name{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:13.5px;color:var(--text);}
  .ig2-tile-sub{font-size:11.5px;color:var(--text-3);margin-top:3px;line-height:1.4;}
  .ig2-tile-btn{margin-top:13px;width:100%;padding:8px;border-radius:9px;font-size:12px;font-weight:700;color:var(--purple-bright);background:rgba(124,92,252,.1);border:1px solid rgba(124,92,252,.22);cursor:pointer;transition:.15s;}
  .ig2-tile-btn:hover{background:rgba(124,92,252,.18);}

  .ig2-wl{padding:18px;}
  .ig2-wl .ig-preview{margin-bottom:20px;}
  .ig2-form{display:flex;flex-direction:column;}
  .ig2-form .ig-colors{grid-template-columns:1fr 1fr;}
  .ig2-form .ig-pv-actions{flex-wrap:wrap;}

  @media(max-width:1120px){
    .ig2-grid{grid-template-columns:1fr;}
    .ig2-col-r{position:static;}
    .ig2-hero{flex-direction:column;align-items:flex-start;}
    .ig2-hero-stats{width:100%;}
    .ig2-stat{flex:1;}
  }
  @media(max-width:560px){.ig2-tiles{grid-template-columns:1fr;}}

  .ig2-request{display:flex;align-items:center;gap:14px;padding:16px 18px;margin-top:14px;border-style:dashed;border-color:var(--border);background:transparent;}
  .ig2-req-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:var(--purple-bright);background:rgba(124,92,252,.12);flex:none;}
  .ig2-req-txt{flex:1;min-width:0;}
  .ig2-req-txt b{display:block;font-size:13.5px;color:var(--text);}
  .ig2-req-txt span{display:block;font-size:12px;color:var(--text-3);margin-top:2px;}
  .ig2-req-btn{padding:9px 16px;border-radius:10px;font-size:12.5px;font-weight:700;color:var(--text);background:var(--bg-2);border:1px solid var(--border-strong);cursor:pointer;transition:.15s;flex:none;}
  .ig2-req-btn:hover{border-color:var(--purple);color:var(--purple-bright);}

  /* === Integrations v3 (hero+google 2col, exports, refined wl) === */
  .ig3-top{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:20px;align-items:stretch;}
  .ig3-hero{position:relative;overflow:hidden;padding:24px;display:flex;flex-direction:column;}
  .ig3-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(500px 300px at 110% -10%,rgba(34,211,238,.12),transparent 60%);pointer-events:none;}
  .ig3-hero-icon{width:54px;height:54px;border-radius:15px;background:linear-gradient(150deg,#1bc98a,#0ea5b8);color:#fff;position:relative;z-index:1;}
  .ig3-title{font-family:'Fraunces',serif;font-weight:600;font-size:25px;color:var(--text);margin:14px 0 8px;line-height:1;position:relative;z-index:1;}
  .ig3-desc{font-size:12.5px;line-height:1.55;color:var(--text-3);margin:0 0 20px;position:relative;z-index:1;}
  .ig3-stats{display:flex;gap:12px;margin-top:auto;position:relative;z-index:1;}
  .ig3-stat{flex:1;padding:14px 16px;border-radius:13px;background:var(--bg-2);border:1px solid var(--hairline);text-align:left;}
  .ig3-stat-accent{background:linear-gradient(160deg,rgba(34,211,238,.12),rgba(124,92,252,.07));border-color:rgba(34,211,238,.25);}
  .ig3-stat-v{font-family:'Inter Tight',sans-serif;font-weight:800;font-size:26px;color:var(--text);line-height:1;}
  .ig3-stat-accent .ig3-stat-v{color:var(--cyan-bright);}
  .ig3-stat-v small{font-size:15px;}
  .ig3-stat-k{font:600 9.5px/1 'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:7px;}

  .ig3-google{position:relative;overflow:hidden;padding:24px;display:flex;flex-direction:column;}
  .ig3-g-top{display:flex;gap:18px;align-items:flex-start;}
  .ig3-google .ig-feats{margin:18px 0;}
  .ig3-google .ig-card-actions{margin-top:auto;}

  .ig3-exports{margin-top:18px;}
  .tb-cyan2,.tb-purple2{color:var(--text-2);border-color:var(--border-strong);background:var(--card);}

  /* refined white-label */
  .ig3-wl{margin-top:18px;padding:26px;}
  .ig3-wl .ig-wl-head{padding-bottom:22px;border-bottom:1px solid var(--hairline);margin-bottom:26px;}
  .ig3-wl .ig-wl-grid{gap:40px;}
  .ig3-wl .ig-input{padding:13px 15px;}
  .ig3-wl .ig-drop{padding:20px;}
  .ig3-wl .ig-preview{box-shadow:0 16px 48px rgba(0,0,0,.4);}

  @media(max-width:1080px){
    .ig3-top{grid-template-columns:1fr;}
    .ig-wl-grid{grid-template-columns:1fr;}
  }

  /* === Rank Alerts === */
  .rk-hero{display:flex;align-items:flex-start;gap:18px;position:relative;overflow:hidden;}
  .rk-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 220px at 95% -40%,rgba(240,148,46,.13),transparent 60%);pointer-events:none;}
  .rk-hero-icon{width:54px;height:54px;border-radius:15px;background:linear-gradient(150deg,#f0942e,#e6741a);color:#fff;flex:none;position:relative;z-index:1;}
  .rk-hero-exports{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;position:relative;z-index:1;}
  .rk-hero-exports .tbtn{flex:0 0 auto;}
  .rk-stats{margin-top:16px;}
  /* (rk-stats metric icon inherits the unified brand .mi-* colour above) */

  .rk-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:stretch;margin-top:16px;}
  .rk-track,.rk-tracked{padding:22px;}
  .rk-sec-head{display:flex;align-items:flex-start;gap:13px;margin-bottom:20px;}
  .rk-sec-icon{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:#fff;flex:none;}
  .rk-ico-orange{background:linear-gradient(150deg,#f0942e,#e6741a);}
  .rk-ico-purple{background:linear-gradient(150deg,var(--purple),var(--magenta));}
  .rk-sec-meta{flex:1;min-width:0;}
  .rk-sec-title{font-family:'Inter Tight',sans-serif;font-weight:800;font-size:16px;color:var(--text);}
  .rk-sec-sub{font-size:12px;color:var(--text-3);margin-top:3px;line-height:1.4;}
  .rk-csvlink{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--cyan-bright);text-decoration:none;flex:none;white-space:nowrap;}
  .rk-csvlink:hover{text-decoration:underline;}
  .rk-refresh{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:9px;font-size:12px;font-weight:600;color:var(--purple-bright);background:rgba(124,92,252,.1);border:1px solid rgba(124,92,252,.22);cursor:pointer;flex:none;transition:.15s;}
  .rk-refresh:hover{background:rgba(124,92,252,.18);}

  .rk-select{position:relative;}
  .rk-select select{flex:1;appearance:none;-webkit-appearance:none;background:transparent;border:none;outline:none;color:var(--text);font-size:13.5px;padding:12px 38px 12px 14px;cursor:pointer;width:100%;}
  .rk-select select option{background:var(--panel);color:var(--text);}
  .rk-chev{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;}

  .rk-track-actions{display:flex;align-items:center;gap:13px;margin-top:18px;flex-wrap:wrap;}
  .rk-start{display:inline-flex;align-items:center;gap:9px;padding:12px 18px;border-radius:11px;font-size:13.5px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--purple),var(--magenta));border:none;cursor:pointer;transition:.15s;}
  .rk-start:hover{filter:brightness(1.06);}
  .rk-or{font-size:12.5px;color:var(--muted);}
  .rk-csvnote{display:flex;gap:9px;margin-top:18px;padding:13px 15px;border-radius:11px;background:var(--bg-2);border:1px solid var(--hairline);font-size:11.5px;line-height:1.55;color:var(--text-3);}
  .rk-csvnote svg{color:var(--gold);flex:none;margin-top:1px;}
  .rk-csvnote code{font:600 11px/1 'JetBrains Mono',monospace;padding:2px 5px;border-radius:5px;background:rgba(124,92,252,.12);color:var(--purple-bright);}
  .rk-csvnote b{color:var(--text-2);}

  .rk-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 20px 26px;border:1px solid var(--hairline);border-radius:14px;background:var(--bg-2);}
  .rk-empty-icon{width:60px;height:60px;border-radius:16px;display:grid;place-items:center;color:#fff;background:linear-gradient(150deg,var(--purple),var(--magenta));margin-bottom:16px;}
  .rk-empty-h{font-family:'Fraunces',serif;font-weight:600;font-size:19px;color:var(--text);margin:0 0 9px;}
  .rk-empty-p{max-width:380px;font-size:12.5px;line-height:1.6;color:var(--text-3);margin:0 0 18px;}
  .rk-empty-pills{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:20px;}
  .rk-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid var(--hairline);}
  /* Rank-alert / team feature chips — de-rainbowed to one brand chip. */
  .rk-pill-red,.rk-pill-gold,.rk-pill-cyan,.rk-pill-purple,.rk-pill-green{color:var(--purple-bright);background:rgba(124,92,252,.12);}
  .rk-cta{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:11px;font-size:13.5px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--purple),var(--magenta));border:none;cursor:pointer;transition:.15s;}
  .rk-cta:hover{filter:brightness(1.06);}

  @media(max-width:1100px){.rk-grid{grid-template-columns:1fr;}}

  /* === Team === */
  .ci-pill.p-pursolid{background:linear-gradient(135deg,var(--purple),var(--magenta));color:#fff;}
  .tm-hero{display:flex;align-items:flex-start;gap:18px;position:relative;overflow:hidden;}
  .tm-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 220px at 95% -40%,rgba(124,92,252,.13),transparent 60%);pointer-events:none;}
  .tm-hero-icon{width:54px;height:54px;border-radius:15px;background:linear-gradient(150deg,var(--purple),var(--magenta));color:#fff;flex:none;position:relative;z-index:1;}
  .tm-hero-exports{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;position:relative;z-index:1;align-items:center;}
  .tm-invite{margin-left:auto;padding:10px 18px;font-size:13px;}
  .tm-stats{margin-top:16px;}

  .tm-grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:stretch;margin-top:16px;}
  .tm-invitecard,.tm-activity{padding:22px;}
  .tm-invite-row{display:grid;grid-template-columns:1fr 150px;gap:14px;align-items:end;}
  .tm-invite-email,.tm-invite-role{display:flex;flex-direction:column;}
  .tm-send{margin:16px auto 0;align-self:center;padding-left:28px;padding-right:28px;}
  .tm-act-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:34px 20px;}
  .tm-act-icon{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;color:var(--muted);background:var(--bg-2);border:1px solid var(--hairline);margin-bottom:16px;}
  .tm-act-h{font-weight:700;font-size:14px;color:var(--text);}
  .tm-act-p{font-size:12.5px;color:var(--text-3);margin-top:5px;}

  .tm-grid-bottom{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:stretch;margin-top:16px;}
  .tm-yourteam,.tm-workspaces{padding:22px;}
  .tm-empty{padding:34px 22px 28px;}
  .tm-avatars{display:flex;justify-content:center;margin-bottom:18px;}
  .tm-ava{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-family:'Inter Tight',sans-serif;font-weight:800;font-size:14px;color:#fff;border:3px solid var(--panel);margin-left:-12px;}
  .tm-ava:first-child{margin-left:0;}
  .tm-ava-pur{background:linear-gradient(150deg,#7c5cfc,#a855f7);}
  .tm-ava-grn{background:linear-gradient(150deg,#14b87f,#0ea571);}
  .tm-ava-cyn{background:linear-gradient(150deg,#22d3ee,#0891b2);}
  .tm-ava-add{background:var(--bg-2);border:3px dashed var(--border-strong);color:var(--muted);}
  /* (rk-pill-purple/green folded into the unified brand chip above) */
  .rk-ico-green{background:linear-gradient(150deg,#14b87f,#0ea571);}
  .rk-ico-pink{background:linear-gradient(150deg,#e0399b,#c0379a);}
  .tm-cta{background:linear-gradient(135deg,var(--purple),var(--magenta));}
  .tm-ws-icon{width:60px;height:60px;border-radius:16px;display:grid;place-items:center;color:#fff;background:linear-gradient(150deg,#e0399b,#c0379a);margin-bottom:16px;}

  @media(max-width:1100px){.tm-grid2{grid-template-columns:1fr;}.tm-grid-bottom{grid-template-columns:1fr;}.tm-hero{flex-direction:column;}.tm-invite{margin-left:0;}}

  /* equal-height 2-col: let inner empty-states fill the stretched card */
  .tm-grid2 > .card,.tm-grid-bottom > .card,.rk-grid > .card{display:flex;flex-direction:column;}
  .tm-activity .tm-act-empty,.tm-workspaces .tm-empty,.tm-yourteam .tm-empty,.rk-tracked .rk-empty{flex:1;justify-content:center;}

  /* === Site Audit === */
  .sa-card{padding:26px 28px;position:relative;overflow:hidden;}
  .sa-card::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 260px at 85% -30%,rgba(124,92,252,.12),transparent 60%);pointer-events:none;}
  .sa-exports{position:relative;z-index:1;justify-content:flex-start;}
  .sa-divider{height:1px;background:var(--hairline);margin:18px 0 22px;position:relative;z-index:1;}
  .sa-hero{position:relative;z-index:1;}
  .sa-hero-icon{width:60px;height:60px;border-radius:16px;background:linear-gradient(150deg,var(--purple),var(--magenta));color:#fff;}
  .sa-eyebrow{font:700 10.5px/1 'JetBrains Mono',monospace;letter-spacing:.12em;color:var(--purple-bright);margin:18px 0 12px;position:relative;z-index:1;}
  .sa-badges{position:relative;z-index:1;margin-bottom:12px;}
  .sa-title{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:32px;letter-spacing:-0.03em;line-height:1.05;color:var(--text);margin:0 0 12px;position:relative;z-index:1;}
  .sa-title em{font-family:"Fraunces",serif;font-weight:400;font-style:italic;background:linear-gradient(120deg,var(--purple-bright),var(--magenta-bright));-webkit-background-clip:text;background-clip:text;color:transparent;}
  .sa-desc{font-size:14px;line-height:1.6;color:var(--text-3);max-width:760px;margin:0 0 22px;position:relative;z-index:1;}
  .sa-feats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;position:relative;z-index:1;margin-bottom:22px;}
  .sa-feat{display:flex;align-items:center;gap:10px;padding:13px 15px;border-radius:13px;background:var(--bg-2);border:1px solid var(--hairline);font-size:13px;font-weight:600;color:var(--text-2);}
  .sa-feat-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:none;}
  /* Feature-chip icons — de-rainbowed to ONE consistent brand chip. Features are
     descriptive, not state; they don't each earn a colour (design constitution).
     Also folds in .sa-ic-gold (previously undefined). */
  .sa-ic-green,.sa-ic-orange,.sa-ic-pink,.sa-ic-purple,.sa-ic-cyan,.sa-ic-gold{background:rgba(124,92,252,.14);color:var(--purple-bright);}
  .sa-runrow{display:flex;gap:12px;align-items:stretch;position:relative;z-index:1;margin-bottom:18px;flex-wrap:wrap;}
  .sa-field{flex:1;min-width:240px;}
  .sa-run{white-space:nowrap;}
  .sa-sample{white-space:nowrap;}
  .sa-try{display:flex;align-items:center;gap:9px;flex-wrap:wrap;position:relative;z-index:1;}
  .sa-try-lbl{font:700 10.5px/1 'JetBrains Mono',monospace;letter-spacing:.08em;color:var(--muted);}
  .sa-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;font-size:12.5px;font-weight:600;color:var(--text-2);background:var(--bg-2);border:1px solid var(--border);cursor:pointer;transition:.15s;}
  .sa-fav{width:16px;height:16px;border-radius:4px;flex:none;}
  .sa-chip:hover{color:var(--text);border-color:var(--purple);background:rgba(124,92,252,.08);}

  /* Keyword Magic Tool */
  .km-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;position:relative;z-index:1;margin-bottom:22px;}
  .km-stat{padding:15px 17px;border-radius:14px;background:var(--bg-2);border:1px solid var(--hairline);}
  .km-stat-top{display:flex;align-items:center;gap:8px;margin-bottom:11px;}
  .km-dot{width:7px;height:7px;border-radius:50%;flex:none;box-shadow:0 0 8px currentColor;}
  /* Stat dots — de-rainbowed to one brand mark (stat categories are labels, not
     state; they don't each earn a colour). */
  .km-dot.d-purple,.km-dot.d-gold,.km-dot.d-green,.km-dot.d-cyan{color:var(--purple-bright);background:var(--purple-bright);}
  .km-stat-l{font:700 9.5px/1 'JetBrains Mono',monospace;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);}
  .km-stat-v{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:26px;letter-spacing:-0.02em;line-height:1;color:var(--text-2);margin:0 0 7px;}
  .km-stat-bar{display:inline-block;width:30px;height:5px;border-radius:3px;background:linear-gradient(90deg,var(--purple),var(--magenta));margin:2px 0 9px;}
  .km-stat-bar.b-green{background:linear-gradient(90deg,var(--green),var(--green-bright));}

  /* Keyword Gap extra-competitors row */
  #view-kgap .kg-extra{display:flex;align-items:center;gap:11px;position:relative;z-index:1;margin-top:14px;flex-wrap:wrap;}
  #view-kgap .kg-extra-lbl{font-size:12.5px;font-weight:600;color:var(--text-3);white-space:nowrap;}
  #view-kgap .kg-extra-field{flex:1;min-width:200px;}
  #view-kgap .kg-extra-field input{width:100%;box-sizing:border-box;background:var(--bg-2);border:1px solid var(--border-strong);border-radius:10px;color:var(--text-2);font-size:13px;font-family:"Inter",sans-serif;padding:11px 15px;}
  #view-kgap .kg-extra-field input:focus{outline:none;border-color:var(--purple);}
  #view-kgap .kg-extra-field input::placeholder{color:var(--muted);}
  #view-kgap .kg-mgr{display:inline-flex;align-items:center;gap:7px;border:1px dashed rgba(124,92,252,.5);background:rgba(124,92,252,.06);color:var(--purple-bright);border-radius:10px;padding:11px 18px;font-size:13px;font-weight:600;cursor:pointer;font-family:"Inter",sans-serif;white-space:nowrap;transition:.15s;}
  #view-kgap .kg-mgr:hover{border-color:var(--purple);background:rgba(124,92,252,.12);}
  /* light overrides */
  [data-theme="light"] #view-kgap .kg-extra-field input{background:#fff;}
  [data-theme="light"] #view-kgap .kg-mgr{color:#5a3fd6;background:rgba(124,92,252,.07);}

  .km-stat-s{font-size:12px;color:var(--muted);}
  .km-actions{display:flex;align-items:center;gap:11px;position:relative;z-index:1;flex-wrap:wrap;}
  .km-actbtn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--border-strong);background:rgba(255,255,255,0.03);color:var(--text-2);transition:.15s;}
  .km-actbtn:hover{border-color:var(--purple);color:var(--text);}
  .km-ready{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);}
  .km-ready .km-rdot{width:7px;height:7px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 8px var(--green-bright);}
  .km-filters{display:flex;flex-direction:column;gap:13px;position:relative;z-index:1;margin-bottom:18px;}
  .km-frow{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
  .km-flbl{font:700 10px/1 'JetBrains Mono',monospace;letter-spacing:.1em;color:var(--muted);margin-right:4px;}
  .km-fpill{padding:7px 15px;border-radius:999px;font-size:12.5px;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--bg-2);color:var(--text-3);transition:.15s;}
  .km-fpill:hover{color:var(--text-2);border-color:var(--purple);}
  .km-fpill.active{background:linear-gradient(135deg,var(--purple),var(--magenta));color:#fff;border-color:transparent;box-shadow:0 6px 16px -8px rgba(124,92,252,.7);}
  /* light overrides */
  [data-theme="light"] .km-stat-v{color:var(--text);}
  /* (km-dot light overrides removed — unified brand dot is theme-aware) */
  [data-theme="light"] .km-actbtn{background:#fff;}
  [data-theme="light"] .km-fpill{background:#fff;color:var(--text-2);}
  [data-theme="light"] .km-fpill.active{background:linear-gradient(135deg,var(--purple),var(--magenta));color:#fff;}

  /* Bulk Analysis */
  #view-bulk .km-stat-v{color:var(--text);font-size:30px;}
  #view-bulk .ba-toolrow{display:flex;align-items:center;gap:11px;position:relative;z-index:1;flex-wrap:wrap;margin-bottom:14px;}
  #view-bulk .ba-tlbl{font:700 10px/1 'JetBrains Mono',monospace;letter-spacing:.1em;color:var(--muted);margin-right:2px;}
  #view-bulk .ba-select{position:relative;}
  #view-bulk .ba-select select{appearance:none;-webkit-appearance:none;background:var(--bg-2);border:1px solid var(--border-strong);color:var(--text-2);font-size:13px;font-weight:600;font-family:"Inter",sans-serif;border-radius:10px;padding:10px 38px 10px 15px;cursor:pointer;}
  #view-bulk .ba-select .ba-chev{position:absolute;right:13px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--text-3);}
  #view-bulk .ba-run{display:inline-flex;align-items:center;gap:8px;border:none;cursor:pointer;background:linear-gradient(135deg,var(--magenta),var(--purple));color:#fff;font-weight:700;border-radius:10px;padding:10px 20px;font-size:13.5px;box-shadow:0 8px 22px -8px rgba(217,70,168,0.6);font-family:"Inter",sans-serif;white-space:nowrap;}
  #view-bulk .ba-trysample{border:1px dashed var(--border-strong);background:none;color:var(--text-2);border-radius:10px;padding:10px 18px;font-size:13px;font-weight:600;cursor:pointer;font-family:"Inter",sans-serif;}
  #view-bulk .ba-trysample:hover{border-color:var(--purple);color:var(--text);}
  #view-bulk .ba-textarea{width:100%;box-sizing:border-box;min-height:150px;resize:vertical;background:var(--bg-2);border:1px solid var(--border-strong);border-radius:13px;color:var(--text-2);font-family:"JetBrains Mono",monospace;font-size:13px;line-height:2;padding:15px 17px;position:relative;z-index:1;}
  #view-bulk .ba-textarea:focus{outline:none;border-color:var(--purple);}
  #view-bulk .ba-textarea::placeholder{color:var(--muted);}
  /* light overrides */
  /* (#view-bulk stat value de-rainbowed to ink above; light override removed) */
  [data-theme="light"] #view-bulk .ba-select select{background:#fff;}
  [data-theme="light"] #view-bulk .ba-textarea{background:#fff;color:var(--text-2);}


  @media(max-width:900px){.sa-feats{grid-template-columns:1fr 1fr;}.sa-title{font-size:32px;}}

  /* Competitor Battle extras */
  .cb-runrow{align-items:center;}
  .cb-vsdiv{font:800 13px/1 'Inter Tight',sans-serif;color:var(--muted);padding:0 2px;flex:none;}
  .cb-compare{white-space:nowrap;}
  .cb-chip{gap:5px;}
  .cb-chip .cb-vs{color:var(--muted);font-weight:700;font-size:11px;margin:0 1px;}
  @media(max-width:760px){.cb-runrow .sa-field{min-width:100%;}.cb-vsdiv{align-self:center;}}

  /* sa note (format-required line) */
  .sa-note{display:flex;gap:9px;align-items:flex-start;margin-top:18px;padding:12px 15px;border-radius:11px;background:var(--bg-2);border:1px solid var(--hairline);font-size:12px;line-height:1.55;color:var(--text-3);position:relative;z-index:1;}
  .sa-note svg{color:var(--cyan-bright);flex:none;margin-top:1px;}
  .sa-note b{color:var(--text-2);}
  .sa-note code{font:600 11px/1 'JetBrains Mono',monospace;padding:2px 6px;border-radius:5px;background:rgba(124,92,252,.12);color:var(--purple-bright);}
  .sa-note-outer{margin-top:18px;}

  /* === Visibility Overview second card === */
  .vis-card{padding:28px;position:relative;overflow:hidden;}
  .vis-card::before{content:"";position:absolute;inset:0;background:radial-gradient(800px 300px at 78% 120%,rgba(124,92,252,.14),transparent 60%);pointer-events:none;}
  .vis-grid{display:grid;grid-template-columns:1fr 440px;gap:36px;align-items:start;position:relative;z-index:1;}
  .vis-pills{margin-bottom:18px;}
  .vis-h{font-family:"Inter Tight",sans-serif;font-weight:800;letter-spacing:-0.02em;font-size:28px;line-height:1.15;color:var(--text);margin:0 0 16px;}
  .vis-p{font-size:13.5px;line-height:1.65;color:var(--text-3);margin:0 0 22px;}
  .vis-p b{color:var(--text-2);font-weight:700;}
  .vis-sample{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .vis-grid2x2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .vis-fcard{padding:18px;border-radius:14px;background:var(--bg-2);border:1px solid var(--hairline);transition:.15s;}
  .vis-fcard:hover{border-color:var(--border);transform:translateY(-2px);}
  .vis-fic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;margin-bottom:13px;}
  /* de-rainbowed: feature-card icons share one theme-aware brand chip
     (matches .sa-ic-*); no per-tool colour, no light-mode hex overrides. */
  .vis-fic-purple,.vis-fic-gold,.vis-fic-cyan,.vis-fic-green,.vis-fic-pink{background:rgba(124,92,252,.14);color:var(--purple-bright);}
  .vis-ft{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:14px;color:var(--text);}
  .vis-fs{font-size:12px;color:var(--text-3);margin-top:4px;line-height:1.45;}
  @media(max-width:980px){.vis-grid{grid-template-columns:1fr;}.vis-grid2x2{grid-template-columns:1fr 1fr;}.vis-h{font-size:26px;}}
  @media(max-width:560px){.vis-grid2x2{grid-template-columns:1fr;}}
