/* ============================================================================
   THEMES — 7 visual themes via [data-theme="..."] overrides
   ============================================================================ */

  /* ================================================================
     THEME TOKENS — 7 distinct visual identities
     Editorial (default): warm paper, terracotta, serif-driven
     Terminal: deep dark, phosphor green, mono-everywhere
     Swiss:    flat white, red accent, geometric sans-serif
     Brutalist: stark black/white/yellow, raw, oversized
     Italia:   tricolor undertones, serif titles + clean sans body
     Modernist: WSJ-like: deep navy ink on warm off-white, amber accents,
                Playfair display for headlines, Inter for body
     TradeView: clean financial dashboard look — minimal borders, panel shadows, rounded corners
  ================================================================ */
  :root, [data-theme="editorial"]{
    --ink:#0d0e0c;
    --paper:#f5f1e8;
    --paper-2:#ebe5d4;
    --rule:#0d0e0c;
    --accent:#b8451f;
    --accent-2:#1f4d3a;
    --gold:#a8862a;
    --muted:#6b6660;
    --pos:#1f4d3a;
    --neg:#9b2c1f;
    --shadow:0 1px 0 rgba(13,14,12,.08), 0 8px 24px -12px rgba(13,14,12,.18);
    --font-display:'Fraunces', Georgia, serif;
    --font-body:'Fraunces', Georgia, serif;
    --font-mono:'JetBrains Mono', ui-monospace, monospace;
    --bg-radial:
      radial-gradient(1200px 600px at 90% -10%, rgba(184,69,31,.08), transparent 60%),
      radial-gradient(900px 500px at -10% 110%, rgba(31,77,58,.10), transparent 60%);
    --grain-opacity:.04;
    --tile-bg:var(--paper-2);
    --table-bg:var(--paper-2);
    --table-header-bg:var(--ink);
    --table-header-fg:var(--paper);
    --pill-radius:2px;
    --button-radius:0;
  }
  [data-theme="terminal"]{
    --ink:#d6f7d6;
    --paper:#0a0e0a;
    --paper-2:#13191a;
    --rule:#2a3a2a;
    --accent:#39ff7a;
    --accent-2:#34c0e6;
    --gold:#ffd166;
    --muted:#7a8d7a;
    --pos:#39ff7a;
    --neg:#ff5577;
    --shadow:0 0 0 1px rgba(57,255,122,.15), 0 8px 24px -12px rgba(57,255,122,.10);
    --font-display:'JetBrains Mono', ui-monospace, monospace;
    --font-body:'JetBrains Mono', ui-monospace, monospace;
    --font-mono:'JetBrains Mono', ui-monospace, monospace;
    --bg-radial:
      radial-gradient(1000px 600px at 50% 0%, rgba(57,255,122,.05), transparent 60%);
    --grain-opacity:.02;
    --tile-bg:var(--paper-2);
    --table-bg:var(--paper-2);
    --table-header-bg:#0f1f12;
    --table-header-fg:#39ff7a;
    --pill-radius:0;
    --button-radius:0;
  }
  [data-theme="swiss"]{
    --ink:#111111;
    --paper:#ffffff;
    --paper-2:#f4f4f4;
    --rule:#111111;
    --accent:#e63946;
    --accent-2:#003049;
    --gold:#fcbf49;
    --muted:#8a8a8a;
    --pos:#2a9d8f;
    --neg:#e63946;
    --shadow:none;
    --font-display:'Helvetica Neue', Helvetica, Arial, sans-serif;
    --font-body:'Helvetica Neue', Helvetica, Arial, sans-serif;
    --font-mono:'IBM Plex Mono', ui-monospace, monospace;
    --bg-radial:none;
    --grain-opacity:0;
    --tile-bg:#ffffff;
    --table-bg:#ffffff;
    --table-header-bg:#f4f4f4;
    --table-header-fg:#111111;
    --pill-radius:0;
    --button-radius:0;
  }
  [data-theme="brutalist"]{
    --ink:#000000;
    --paper:#ffeb3b;
    --paper-2:#ffffff;
    --rule:#000000;
    --accent:#ff1744;
    --accent-2:#000000;
    --gold:#000000;
    --muted:#444444;
    --pos:#000000;
    --neg:#ff1744;
    --shadow:6px 6px 0 #000;
    --font-display:'Archivo Black', 'Impact', sans-serif;
    --font-body:'Space Grotesk', 'Helvetica Neue', sans-serif;
    --font-mono:'Space Mono', 'Courier New', monospace;
    --bg-radial:none;
    --grain-opacity:0;
    --tile-bg:#ffffff;
    --table-bg:#ffffff;
    --table-header-bg:#000000;
    --table-header-fg:#ffeb3b;
    --pill-radius:0;
    --button-radius:0;
  }
  [data-theme="italia"]{
    /* Italian fixed-income reading: tricolor undertones, serif titles + clean sans body */
    --ink:#1a1d1c;
    --paper:#fbf8f1;
    --paper-2:#f0ece1;
    --rule:#c8b88a;
    --accent:#a51c30;          /* deep Italian red */
    --accent-2:#1f5d3a;        /* tricolore green */
    --gold:#9a7b1f;
    --muted:#766f63;
    --pos:#1f5d3a;
    --neg:#a51c30;
    --shadow:0 1px 0 rgba(26,29,28,.06), 0 6px 16px -10px rgba(26,29,28,.14);
    --font-display:'Source Serif 4', 'Georgia', serif;
    --font-body:'Source Sans 3', system-ui, sans-serif;
    --font-mono:'IBM Plex Mono', ui-monospace, monospace;
    --bg-radial:
      radial-gradient(900px 500px at 100% -10%, rgba(31,93,58,.08), transparent 55%),
      radial-gradient(900px 500px at 0% 110%, rgba(165,28,48,.05), transparent 55%);
    --grain-opacity:0;
    --tile-bg:#fffdf6;
    --table-bg:#fffdf6;
    --table-header-bg:#1f5d3a;
    --table-header-fg:#fbf8f1;
    --pill-radius:3px;
    --button-radius:3px;
  }
  [data-theme="tradeview"]{
    /* Pro-trading aesthetic: TradingView-like neutral palette.
       Near-white bg with bluish cards, blue primary, trading green/red. */
    --ink:#131722;             /* near-black with blue tint */
    --paper:#ffffff;
    --paper-2:#f8f9fa;         /* card */
    --rule:#e0e3eb;            /* light border */
    --accent:#1976d2;          /* primary blue */
    --accent-2:#089981;        /* trading green (positive) */
    --gold:#ff9800;
    --muted:#787b86;
    --pos:#089981;
    --neg:#f23645;
    --shadow:0 10px 30px rgba(0,0,0,0.10), 0 1px 2px rgba(0,0,0,0.04);
    --font-display:'Inter', system-ui, sans-serif;
    --font-body:'Inter', system-ui, sans-serif;
    --font-mono:'JetBrains Mono', ui-monospace, monospace;
    --bg-radial:
      radial-gradient(circle at 0% 0%, rgba(41,98,255,0.12), transparent 45%),
      radial-gradient(circle at 100% 100%, rgba(8,153,129,0.08), transparent 50%);
    --grain-opacity:0;
    --tile-bg:#ffffff;
    --table-bg:#ffffff;
    --table-header-bg:#f8f9fa;
    --table-header-fg:#131722;
    --pill-radius:6px;
    --button-radius:6px;
  }
  [data-theme="modernist"]{
    /* WSJ-like: deep navy ink on warm off-white, amber accents,
       Playfair display for headlines, Inter for body */
    --ink:#0a1f3d;
    --paper:#faf7f2;
    --paper-2:#f0eadf;
    --rule:#0a1f3d;
    --accent:#c8941a;           /* burnt amber */
    --accent-2:#1c4a8a;
    --gold:#c8941a;
    --muted:#5e6b7b;
    --pos:#1c6e3d;
    --neg:#a82828;
    --shadow:0 1px 0 rgba(10,31,61,.10), 0 10px 28px -16px rgba(10,31,61,.25);
    --font-display:'Playfair Display', 'Times New Roman', serif;
    --font-body:'Inter', system-ui, sans-serif;
    --font-mono:'IBM Plex Mono', ui-monospace, monospace;
    --bg-radial:
      radial-gradient(1100px 500px at 50% -20%, rgba(200,148,26,.06), transparent 60%);
    --grain-opacity:0;
    --tile-bg:#ffffff;
    --table-bg:#ffffff;
    --table-header-bg:#0a1f3d;
    --table-header-fg:#faf7f2;
    --pill-radius:0;
    --button-radius:0;
  }

  /* Theme-specific accent overrides for active pill */
  [data-theme="terminal"] .toc-bar a.toc-active{background:var(--accent);color:#000;}
  [data-theme="brutalist"] .toc-bar a.toc-active{background:#000;color:#ffeb3b;}
  [data-theme="swiss"]     .toc-bar a.toc-active{background:#e30613;color:#fff;}
  [data-theme="italia"]    .toc-bar a.toc-active{background:var(--accent);color:#fff;}
  [data-theme="tradeview"] .toc-bar a.toc-active{background:#2962ff;color:#fff;}
  [data-theme="modernist"] .toc-bar a.toc-active{background:#0a1f3d;color:#f4c842;}
  /* In terminal theme make it accent-coloured */
  [data-theme="terminal"] .theme-switch .ts-icon{color:var(--accent);}
  [data-theme="terminal"] .theme-switch .ts-select{background:transparent;color:var(--accent);}
  [data-theme="terminal"] .theme-switch .ts-select option{background:var(--paper);color:var(--ink);}

  /* Theme-specific structural overrides */
  [data-theme="terminal"] header.masthead{border-top:1px solid var(--accent);border-bottom:1px solid var(--accent);}
  [data-theme="terminal"] .title{font-style:normal;font-weight:400;letter-spacing:0;font-size:clamp(32px,5vw,56px);}
  [data-theme="terminal"] .title b{font-weight:400;color:var(--accent);}
  [data-theme="terminal"] .title i{font-style:normal;color:var(--accent-2);}

  [data-theme="terminal"] .panel,
  [data-theme="terminal"] .alt-card,
  [data-theme="terminal"] .cf-chart,
  [data-theme="terminal"] .constraints-block,
  [data-theme="terminal"] .sw-price-panel,
  [data-theme="terminal"] .tile.loaded,
  [data-theme="terminal"] .income-block,
  [data-theme="terminal"] .live-panel .lp-btn {
    background: var(--table-bg);
    color: var(--ink);
  }
  [data-theme="terminal"] .field input,
  [data-theme="terminal"] .field select,
  [data-theme="terminal"] .params .field input,
  [data-theme="terminal"] .params .field select,
  [data-theme="terminal"] .constraints-grid .field input,
  [data-theme="terminal"] .constraints-grid .field select,
  [data-theme="terminal"] .income-grid .field input,
  [data-theme="terminal"] .income-grid .field select,
  [data-theme="terminal"] .paste-dialog input[type=number],
  [data-theme="terminal"] .qty-input {
    background: var(--paper);
    color: var(--ink);
  }

  [data-theme="swiss"] header.masthead{border-top:8px solid var(--accent);border-bottom:1px solid var(--ink);}
  [data-theme="swiss"] .title{font-style:normal;font-weight:700;letter-spacing:-.04em;text-align:left;font-size:clamp(48px,9vw,96px);}
  [data-theme="swiss"] .title i{font-style:normal;color:var(--accent);}
  [data-theme="swiss"] .subtitle{text-align:left;}
  [data-theme="swiss"] .meta-right{text-align:right;align-self:start;}

  [data-theme="brutalist"] header.masthead{border-top:12px solid var(--ink);border-bottom:6px solid var(--ink);}
  [data-theme="brutalist"] .title{font-family:var(--font-display);font-style:normal;font-weight:900;letter-spacing:-.03em;text-transform:uppercase;font-size:clamp(56px,10vw,120px);line-height:.85;}
  [data-theme="brutalist"] .title b{font-weight:900;}
  [data-theme="brutalist"] .title i{font-style:normal;background:var(--ink);color:var(--paper);padding:0 .15em;}

  [data-theme="italia"] header.masthead{
    border-top:none; border-bottom:1px solid var(--rule);
    background:linear-gradient(to right,
      rgba(31,93,58,.10) 0%, rgba(31,93,58,.10) 33%,
      rgba(255,255,255,.0) 33%, rgba(255,255,255,.0) 66%,
      rgba(165,28,48,.10) 66%, rgba(165,28,48,.10) 100%);
    padding:32px 24px 22px;
  }
  [data-theme="italia"] .title{font-style:normal;font-weight:600;letter-spacing:-.015em;font-size:clamp(36px,6vw,68px);}
  [data-theme="italia"] .title b{font-weight:700;}
  [data-theme="italia"] .title i{font-style:italic;color:var(--accent);}
  [data-theme="italia"] .subtitle{color:var(--muted);letter-spacing:.25em;}
  [data-theme="italia"] .sec-head{border-bottom:2px solid var(--accent-2);}
  [data-theme="italia"] .sec-head h2{font-weight:600;}
  [data-theme="italia"] .sec-head h2 .num{color:var(--accent);}

  /* TradeView: clean financial dashboard look — minimal borders, panel shadows, rounded corners */
  [data-theme="tradeview"] header.masthead{
    border-top:none; border-bottom:1px solid var(--rule);
    padding:24px 0 18px;
  }
  [data-theme="tradeview"] .title{font-style:normal;font-weight:700;letter-spacing:-.025em;font-size:clamp(36px,6vw,60px);}
  [data-theme="tradeview"] .title b{font-weight:700;background:linear-gradient(135deg, var(--accent), var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent;}
  [data-theme="tradeview"] .title i{font-style:normal;font-weight:300;color:var(--muted);}
  [data-theme="tradeview"] .subtitle{color:var(--muted);letter-spacing:.18em;}
  [data-theme="tradeview"] .sec-head{border-bottom:1px solid var(--rule);}
  [data-theme="tradeview"] .sec-head h2{font-weight:600;letter-spacing:-.01em;}
  [data-theme="tradeview"] .sec-head h2 .num{
    color:var(--accent);background:rgba(25,118,210,.08);padding:2px 8px;border-radius:4px;
    margin-right:8px;vertical-align:middle;
  }
  [data-theme="tradeview"] .panel,
  [data-theme="tradeview"] .tile,
  [data-theme="tradeview"] .export-card,
  [data-theme="tradeview"] .alt-card,
  [data-theme="tradeview"] .constraints-block{
    border:1px solid var(--rule);border-radius:12px;box-shadow:var(--shadow);
  }
  [data-theme="tradeview"] .panel-head,
  [data-theme="tradeview"] .constraints-head,
  [data-theme="tradeview"] .constraints-foot{border-radius:12px 12px 0 0;background:var(--paper-2);}
  [data-theme="tradeview"] .constraints-foot{border-radius:0 0 12px 12px;}
  [data-theme="tradeview"] .filterbar{border-radius:12px;background:#ffffff;box-shadow:var(--shadow);}
  [data-theme="tradeview"] .table-wrap{border-radius:12px;}
  [data-theme="tradeview"] table.bonds thead th{
    background:var(--paper-2);color:var(--ink);
    border-bottom:1px solid var(--rule);font-weight:600;
  }
  [data-theme="tradeview"] table.bonds tbody tr:hover{background:rgba(25,118,210,.04);}
  [data-theme="tradeview"] table.bonds tbody tr.sel{background:rgba(25,118,210,.08);}
  [data-theme="tradeview"] table.bonds tbody tr.sel:hover{background:rgba(25,118,210,.12);}
  [data-theme="tradeview"] .btn{border-radius:6px;font-weight:600;letter-spacing:.05em;}
  [data-theme="tradeview"] .btn:hover{filter:brightness(1.1);}
  [data-theme="tradeview"] .pill{border-radius:6px;}

  [data-theme="modernist"] header.masthead{
    border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);
    position:relative;
  }
  [data-theme="modernist"] header.masthead::before{
    content:""; position:absolute; left:0; right:0; top:8px; height:1px; background:var(--ink);
  }
  [data-theme="modernist"] header.masthead::after{
    content:""; position:absolute; left:0; right:0; bottom:8px; height:1px; background:var(--ink);
  }
  [data-theme="modernist"] .title{font-style:normal;font-weight:900;letter-spacing:-.025em;font-size:clamp(40px,7vw,76px);line-height:1;}
  [data-theme="modernist"] .title b{font-weight:900;}
  [data-theme="modernist"] .title i{font-style:italic;font-weight:400;}
  [data-theme="modernist"] .subtitle{
    border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);
    padding:6px 0;display:inline-block;
    font-family:var(--font-mono);
  }
  [data-theme="modernist"] .sec-head h2{font-weight:700;letter-spacing:-.015em;}
  [data-theme="brutalist"] .sec-head h2{font-weight:900;text-transform:uppercase;}
  [data-theme="terminal"] .sec-head h2{font-weight:400;}
  [data-theme="swiss"] .sec-head h2{font-weight:700;letter-spacing:-.02em;}
  [data-theme="terminal"] .tile-fetch{border-color:var(--accent);}
  [data-theme="terminal"] table.bonds tbody tr:hover{background:rgba(87, 107, 103, 0.014);}
  [data-theme="terminal"] table.bonds tbody tr.sel{background:rgba(87, 107, 103,.08);}
  [data-theme="terminal"] table.bonds tbody tr.sel:hover{background:rgba(87, 107, 103,.12);}
  [data-theme="terminal"] .bi-link{color:var(--accent);border-color:var(--accent);}
  [data-theme="brutalist"] .bi-link{color:#000;border-color:#000;}
  [data-theme="tradeview"] .bi-link{border-radius:4px;}
  [data-theme="terminal"] .constraints-grid .field select{background:var(--paper);color:var(--ink);}
  [data-theme="terminal"] .constraints-prefill{
    background:var(--paper-2);border-bottom:1px solid var(--accent);
  }
  /* In high-contrast themes keep btn--build readable */
  [data-theme="brutalist"] .btn--build{background:#1a1a1a;border-color:#1a1a1a;color:#ffeb3b;}
  [data-theme="swiss"]     .btn--build{background:#00a550;border-color:#00a550;}
  [data-theme="terminal"]  .btn--build{background:var(--accent-2);color:#000;}
  [data-theme="terminal"] .cta-switch{border-color:var(--accent);color:var(--accent);}
  [data-theme="brutalist"] .cta-switch{border-color:#000;color:#000;}
  [data-theme="brutalist"] .cta-switch:hover{background:#000;color:#ffeb3b;}
  [data-theme="terminal"] .notice{
    background:var(--paper-2);border-color:var(--accent);
  }
  [data-theme="brutalist"] .export-card{box-shadow:var(--shadow);background:var(--paper-2);}
  [data-theme="brutalist"] .export-card .ex-head h3{font-weight:900;text-transform:uppercase;}

