    :root {
      /* ── TCT Brand tokens ── */
      --primary:      #D9743A;   /* Crude  — the single accent   */
      --bg-deep:      #0C0B0A;   /* Carbon — primary background  */
      --bg-panel:     #141210;   /* Panel  — cards & surfaces    */
      --bg-elev:      #1e1c1a;   /* one notch above Panel        */
      --txt-bright:   #F2EFE9;   /* Bone   — primary text        */
      --txt-main:     #a8a8a8;   /* muted bone                   */
      --txt-muted:    #5a5a5a;
      --txt-dim:      #3a3a3a;
      --live:         #5FA777;   /* Live   — status signals only */
      --green:        #88c79c;   /* chart / profit indicator     */
      --red:          #cf6b5a;
      --amber:        #d4a672;
      --bdr-strong:   #252220;
      --bdr-mid:      #1c1a18;
      --bdr-faint:    #141210;
      --font-mono: 'JetBrains Mono','Courier New',monospace;
      --font-disp: 'JetBrains Mono','Courier New',monospace;
    }
    /* ── LIGHT THEME ── */
    [data-theme="light"] {
      --primary:    #c85e2a;
      --bg-deep:    #efefef;
      --bg-panel:   #fafafa;
      --bg-elev:    #ffffff;
      --txt-bright: #111111;
      --txt-main:   #3a3a3a;
      --txt-muted:  #7a7a7a;
      --txt-dim:    #c0c0c0;
      --green:      #1c7a3c;
      --red:        #b82820;
      --amber:      #9a6010;
      --cyan:       #1a7fa0;
      --bdr-strong: #d8d8d8;
      --bdr-mid:    #e6e6e6;
      --bdr-faint:  #f0f0f0;
    }

    /* ── THEME TOGGLE BUTTON ── */
    .theme-btn {
      background:none; border:1px solid var(--bdr-mid); cursor:pointer;
      color:var(--txt-muted); width:28px; height:28px;
      display:flex; align-items:center; justify-content:center;
      border-radius:3px; transition:color .12s, border-color .12s;
      flex-shrink:0; padding:0;
    }
    .theme-btn:hover { color:var(--txt-bright); border-color:var(--txt-muted); }
    .t-sun  { display:block; }
    .t-moon { display:none; }
    [data-theme="light"] .t-sun  { display:none; }
    [data-theme="light"] .t-moon { display:block; }

    *,*::before,*::after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation;}
    /* let the chart fully handle its own touch gestures (pinch zoom, pan) */
    #chart,#chart *{touch-action:none;}
    html{height:100%;touch-action:manipulation;}
    body{
      height:100vh;height:100dvh;width:100%;overflow:hidden;
      display:flex;flex-direction:column;
      background:var(--bg-deep);
      font-family:var(--font-mono);
      color:var(--txt-main);
      font-size:12px;letter-spacing:.3px;
      position:relative;
    }
    body::after{
      content:'';position:fixed;inset:0;pointer-events:none;z-index:1;
      background:repeating-linear-gradient(0deg,transparent 0,transparent 2px,rgba(0,0,0,0.3) 2px,rgba(0,0,0,0.3) 3px);
      opacity:0.4;
    }
    [data-theme="light"] body::after{ display:none; }

    /* ===== HEADER (merged: instrument · price · controls) ===== */
    .header{
      flex-shrink:0;height:52px;
      display:flex;align-items:center;padding:0 14px;gap:12px;
      background:var(--bg-panel);
      border-bottom:1px solid var(--bdr-strong);
      position:relative;z-index:2;
    }
    /* mobile: taller header for easier tapping */
    @media (max-width: 640px) {
      .header{ height:58px; padding:0 12px; gap:10px; }
      .hdr-price{ font-size:20px; }
      .topbar-btn{ padding:6px 10px; font-size:11px; }
      .topbar-btn.icon{ padding:6px 11px; font-size:22px; }
      .live-indicator{ font-size:10px; }
    }
    /* extra narrow: hide the LIVE chip so price has room */
    @media (max-width: 400px) {
      .live-indicator{ display:none; }
    }

    /* brand — left side of header */
    .hdr-brand{
      font-family:var(--font-disp);
      font-size:16px;font-weight:700;
      letter-spacing:4px;line-height:1;
      color:var(--txt-bright);
      user-select:none;flex-shrink:0;
      text-decoration:none; /* acts as <a> link */
    }
    .hdr-brand:active{opacity:.7;}
    .hdr-brand-accent{color:var(--primary);}
    @media(max-width:640px){
      .hdr-brand{font-size:14px;letter-spacing:3px;}
    }

    /* right cluster: price + instrument (clickable to cycle) */
    .hdr-right{margin-left:auto;flex-shrink:0;}
    .hdr-sym-btn{
      background:transparent;border:none;cursor:pointer;
      display:flex;align-items:center;gap:10px;
      padding:4px 6px;margin-right:-6px;
      transition:opacity .15s;
    }
    .hdr-sym-btn:active{opacity:.7;}
    /* price + change stacked */
    .hdr-price-block{
      display:flex;flex-direction:column;align-items:flex-end;gap:1px;
    }
    .hdr-price{
      font-family:var(--font-disp);
      font-size:20px;font-weight:700;
      font-variant-numeric:tabular-nums;
      line-height:1.05;transition:color .15s;
    }
    .hdr-price.up{color:var(--green);}
    .hdr-price.dn{color:var(--red);}
    .hdr-chg{
      font-size:9px;font-weight:600;letter-spacing:1px;line-height:1;
    }
    .hdr-chg.up{color:var(--green);}
    .hdr-chg.dn{color:var(--red);}
    /* instrument name — rightmost */
    .hdr-sym-block{
      display:flex;flex-direction:column;align-items:flex-end;gap:1px;
    }
    .hdr-sym{
      font-family:var(--font-disp);
      font-size:16px;font-weight:700;
      color:var(--txt-bright);letter-spacing:2px;line-height:1;
    }
    .hdr-caret{font-size:9px;color:var(--txt-muted);letter-spacing:0;}
    @media(max-width:640px){
      .hdr-price{font-size:17px;}
      .hdr-sym{font-size:14px;letter-spacing:1.5px;}
      .hdr-sym-btn{gap:8px;}
    }

    /* right-edge controls cluster */
    .hdr-controls{
      display:flex;align-items:center;gap:7px;flex-shrink:0;
    }
    .live-indicator{
      display:flex;align-items:center;gap:5px;
      font-size:9px;font-weight:700;color:var(--live);letter-spacing:1.5px;
    }
    .live-indicator::before{
      content:'';width:6px;height:6px;background:var(--live);
      box-shadow:0 0 6px var(--live);
      animation:blink 1.6s ease-in-out infinite;
    }
    @keyframes blink{0%,100%{opacity:1;}50%{opacity:.25;}}
    .topbar-btn{
      background:var(--bg-elev);
      border:1px solid var(--bdr-strong);
      padding:4px 8px;
      font-family:var(--font-mono);font-size:10px;font-weight:700;
      color:var(--txt-bright);letter-spacing:1px;cursor:pointer;
      transition:border-color .12s,color .12s;line-height:1;
    }
    .topbar-btn:active{border-color:var(--primary);color:var(--primary);}
    .topbar-btn.icon{font-size:18px;padding:4px 9px;line-height:1;color:var(--primary);}
    .topbar-btn.active{border-color:var(--primary);color:var(--primary);background:rgba(217,107,53,.08);}

    /* ===== CHART PANEL ===== */
    .chart-panel{
      flex:1;position:relative;min-height:0;
      background:var(--bg-deep);
      border-left:1px solid var(--bdr-mid);
      border-right:1px solid var(--bdr-mid);
      z-index:2;overflow:hidden;
    }
    .chart-panel::before,.chart-panel::after{
      content:'';position:absolute;width:12px;height:12px;
      border-color:var(--primary);pointer-events:none;z-index:5;
    }
    .chart-panel::before{top:0;left:0;border-top:1px solid;border-left:1px solid;}
    .chart-panel::after{bottom:0;right:0;border-bottom:1px solid;border-right:1px solid;}
    #chart{width:100%;height:100%;}

    /* user drawing canvas overlay */
    .draw-canvas{
      position:absolute;inset:0;
      pointer-events:none;z-index:7;
    }
    .draw-canvas.active{pointer-events:auto;cursor:crosshair;}

    /* annotation connecting lines (SVG) */
    .annot-svg{
      position:absolute;inset:0;
      pointer-events:none;z-index:6;
    }

    /* TradingView-style brand watermark, bottom-left of the chart */
    .chart-watermark{
      position:absolute;bottom:32px;left:52px;z-index:4;
      pointer-events:none;
      font-family:var(--font-disp);
      font-size:18px;font-weight:700;
      color:var(--txt-bright);
      letter-spacing:4px;
      opacity:0.14;
      user-select:none;-webkit-user-select:none;
    }
    .chart-watermark .wm-accent{color:var(--primary);}
    @media (max-width: 640px){
      .chart-watermark{ font-size:15px; letter-spacing:3px; bottom:30px; left:46px; }
    }

    .go-live{
      position:absolute;top:10px;right:74px;z-index:11;
      background:var(--primary);color:#000;
      font-family:var(--font-mono);font-size:9px;font-weight:700;
      letter-spacing:1.5px;padding:5px 10px;border:none;
      cursor:pointer;opacity:0;pointer-events:none;
      transition:opacity .2s;
    }
    .go-live.on{opacity:1;pointer-events:auto;}
    .go-live::before{content:'▶ ';}

    /* ── Drawing tools — vertical left panel ── */
    .draw-panel{
      position:absolute;left:0;top:0;bottom:0;width:38px;z-index:8;
      background:var(--bg-panel);
      border-right:1px solid var(--bdr-mid);
      display:flex;flex-direction:column;align-items:center;
      padding:6px 0 4px;gap:2px;
    }
    .dtb{
      width:32px;height:32px;flex-shrink:0;
      display:flex;align-items:center;justify-content:center;
      background:transparent;border:1px solid transparent;
      color:var(--txt-muted);cursor:pointer;border-radius:3px;
      transition:color .12s,background .12s;
    }
    .dtb:hover{color:var(--txt-bright);background:rgba(255,255,255,.06);}
    .dtb.active{color:var(--primary);background:rgba(217,107,53,.16);border-color:rgba(217,107,53,.35);}
    .dtb.danger{color:var(--red);}
    .dtb.danger:hover{background:rgba(207,107,90,.1);}
    .dtb-sep{width:22px;height:1px;background:var(--bdr-mid);margin:3px 0;flex-shrink:0;}
    /* Mobile slide-in toggle tab */
    .draw-tab{
      display:none;
      position:absolute;top:50%;left:0;
      transform:translateY(-50%);
      z-index:9;width:14px;height:44px;
      background:var(--bg-panel);
      border:1px solid var(--bdr-mid);border-left:none;
      border-radius:0 4px 4px 0;
      align-items:center;justify-content:center;
      cursor:pointer;padding:0;
      color:var(--txt-muted);
      transition:left .22s ease,color .12s;
    }
    .draw-tab:hover{color:var(--txt-bright);}
    .draw-tab.open{left:38px;}
    .draw-tab .tab-arrow{
      display:block;
      transition:transform .22s ease;
    }
    .draw-tab.open .tab-arrow{transform:rotate(180deg);}
    @media(max-width:640px){
      .draw-panel{
        transform:translateX(-100%);
        transition:transform .22s ease;
      }
      .draw-panel.open{
        transform:translateX(0);
        box-shadow:3px 0 12px rgba(0,0,0,.65);
      }
      .draw-tab{display:flex;}
      .chart-watermark{left:18px;} /* panel off-screen by default on mobile */
    }
    /* floating text input when text tool is active */
    .draw-text-input{
      display:none;position:absolute;z-index:20;
      background:var(--bg-elev);border:1px solid var(--primary);
      color:var(--txt-bright);
      font-family:var(--font-mono);font-size:11px;
      padding:3px 8px;outline:none;min-width:90px;max-width:180px;
      letter-spacing:.5px;
    }

    /* ===== FLOATING CHART CARD (vote / lesson play) ===== */
    .chart-card{
      position:absolute;top:18px;left:50%;
      transform:translate(-50%,-6px);
      width:min(400px,92%);
      background:var(--bg-panel);
      backdrop-filter:blur(10px);
      -webkit-backdrop-filter:blur(10px);
      border:1px solid var(--bdr-strong);
      padding:14px 16px 14px;
      z-index:14;
      opacity:0;pointer-events:none;
      transition:opacity .28s, transform .28s;
    }
    .chart-card.on{opacity:1;pointer-events:auto;transform:translate(-50%,0);}
    .chart-card::before,.chart-card::after{
      content:'';position:absolute;width:10px;height:10px;
      border-color:var(--primary);
    }
    .chart-card::before{top:-1px;left:-1px;border-top:1px solid;border-left:1px solid;}
    .chart-card::after{bottom:-1px;right:-1px;border-bottom:1px solid;border-right:1px solid;}
    .card-eyebrow{font-size:8.5px;font-weight:700;color:var(--primary);letter-spacing:2.5px;margin-bottom:6px;}
    .card-title{font-family:var(--font-disp);font-size:16px;font-weight:700;color:var(--txt-bright);letter-spacing:1px;line-height:1.25;margin-bottom:6px;}
    .card-sub{font-size:10px;color:var(--txt-main);line-height:1.55;letter-spacing:.3px;margin-bottom:11px;}
    .card-close{position:absolute;top:8px;right:10px;background:transparent;border:none;color:var(--txt-muted);font-size:16px;cursor:pointer;line-height:1;padding:2px 4px;}
    .card-close:hover{color:var(--primary);}
    .card-actions{display:flex;gap:8px;}
    .vote-btn{flex:1;height:46px;background:transparent;border:1.5px solid;font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s, transform .08s;}
    .vote-btn:active{transform:scale(0.96);}
    .vote-btn.long{color:var(--green);border-color:var(--green);}
    .vote-btn.long:active{background:rgba(136,199,156,.14);}
    .vote-btn.short{color:var(--red);border-color:var(--red);}
    .vote-btn.short:active{background:rgba(207,107,90,.14);}
    .vote-btn:disabled{opacity:.28;cursor:not-allowed;transform:none !important;}
    .play-btn{width:100%;height:46px;background:var(--primary);color:#000;border:none;font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:2.5px;cursor:pointer;transition:filter .12s, transform .08s;}
    .play-btn:active{transform:scale(0.97);filter:brightness(.92);}
    .play-btn::before{content:'▶ ';}

    /* subtitle-style narrator — sits inside the chart canvas, above time axis + watermark */
    .narrator{
      position:absolute;
      /* ~33px = half of LightweightCharts price-axis width; shifts center into plot area */
      left:50%;
      bottom:54px;   /* above time axis (~28px) and watermark (bottom:32px + ~18px text) */
      transform:translateX(calc(-50% - 33px)) translateY(6px);
      z-index:9;pointer-events:none;
      display:flex;flex-direction:column;align-items:center;gap:5px;
      width:min(78%,480px);
      max-width:calc(100% - 80px); /* never overlap price axis (66px) or left edge (14px) */
      padding:8px 16px 9px;
      background:rgba(12,11,10,0.82);
      border-radius:2px;
      backdrop-filter:blur(4px);
      -webkit-backdrop-filter:blur(4px);
      opacity:0;
      transition:opacity .4s ease, transform .4s ease;
    }
    .narrator.on{opacity:1;transform:translateX(calc(-50% - 33px)) translateY(0);}
    .narrator-phase{
      font-size:8px;color:var(--txt-muted);
      letter-spacing:2.5px;font-weight:600;white-space:nowrap;
    }
    .narrator-text{
      font-family:var(--font-mono);
      font-size:clamp(11px,3vw,13px);
      font-weight:500;line-height:1.55;
      color:var(--txt-bright);
      letter-spacing:.3px;
      text-align:center;
    }

    /* ===== ACTION ===== */
    .act{
      flex-shrink:0;height:62px;
      display:flex;align-items:center;justify-content:center;
      padding:8px 12px;gap:10px;
      background:var(--bg-panel);
      border-top:1px solid var(--bdr-strong);
      position:relative;z-index:2;
    }
    /* Challenge countdown mode — taller act bar with label row */
    .act.challenge-mode{
      height:auto;flex-wrap:wrap;
      padding:7px 12px 8px;gap:6px;
    }
    .challenge-act-hdr{
      width:100%;display:flex;align-items:center;gap:6px;
      font-family:var(--font-mono);font-size:9px;letter-spacing:1.5px;color:var(--txt-dim);
    }
    .challenge-act-eyebrow{color:var(--primary);font-weight:700;}
    .challenge-act-timer{color:var(--txt-muted);}
    .challenge-act-timer.ready{color:var(--txt);}
    .btn{flex:1;height:42px;background:transparent;border:1px solid;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:2px;cursor:pointer;transition:background .12s, transform .08s;display:flex;align-items:center;justify-content:center;}
    .btn:active{transform:scale(0.97);}
    .btn:disabled{opacity:.32;cursor:not-allowed;}
    .btn:disabled:active{transform:none;}
    .btn-buy{color:var(--green);border-color:var(--green);background:rgba(136,199,156,.05);}
    .btn-buy:active:not(:disabled){background:rgba(136,199,156,.14);}
    .btn-sell{color:var(--red);border-color:var(--red);background:rgba(207,107,90,.05);}
    .btn-sell:active:not(:disabled){background:rgba(207,107,90,.14);}
    .watch-row{width:100%;display:flex;align-items:center;gap:10px;height:42px;border:1px dashed var(--bdr-strong);padding:0 12px;color:var(--txt-muted);font-size:10px;letter-spacing:2px;}
    .watch-info{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;}
    .watch-row .dot{width:6px;height:6px;border-radius:50%;background:var(--primary);animation:blink 1.2s ease-in-out infinite;flex-shrink:0;}
    .watch-row .phase{color:var(--primary);font-weight:700;}
    .phase-count{font-size:9px;color:var(--txt-dim);letter-spacing:1px;}
    .watch-stop{
      background:var(--bg-elev);border:1px solid var(--red);color:var(--red);
      padding:6px 10px;font-family:var(--font-mono);font-size:10px;font-weight:700;
      letter-spacing:1.5px;cursor:pointer;
    }
    .watch-stop:active{background:rgba(207,107,90,.14);transform:scale(0.96);}

    .pos{width:100%;display:flex;align-items:stretch;gap:8px;}
    .pos-info{flex:1;display:flex;align-items:center;justify-content:space-between;background:var(--bg-elev);border:1px solid var(--bdr-strong);border-left:2px solid var(--green);padding:0 12px;height:42px;}
    .pos-info.short{border-left-color:var(--red);}
    .pos-L{display:flex;align-items:center;gap:8px;}
    .pos-tag{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:700;letter-spacing:1.5px;}
    .pos-tag.long{color:var(--green);}
    .pos-tag.short{color:var(--red);}
    .pos-tag::before{content:'';width:5px;height:5px;background:currentColor;animation:blink 1.2s ease-in-out infinite;}
    .pos-entry{font-size:9px;color:var(--txt-muted);letter-spacing:1px;}
    .pos-pnl{font-family:var(--font-disp);font-size:17px;font-weight:700;color:var(--green);font-variant-numeric:tabular-nums;letter-spacing:.5px;}
    .pos-pnl.neg{color:var(--red);}
    .btn-close{width:110px;height:42px;background:var(--bg-elev);border:1px solid var(--amber);color:var(--amber);font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:1.5px;cursor:pointer;}
    .btn-close:active{background:rgba(212,166,114,.12);}


    /* ===== TOAST ===== */
    .toast{position:fixed;top:48px;left:50%;transform:translateX(-50%) translateY(-14px);background:var(--bg-elev);border:1px solid var(--green);border-left:3px solid var(--green);padding:10px 18px;text-align:left;z-index:300;opacity:0;pointer-events:none;min-width:200px;transition:opacity .25s, transform .25s;}
    .toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
    .toast.neg{border-color:var(--red);border-left-color:var(--red);}
    .toast.neg .toast-v{color:var(--red);}
    .toast-l{font-size:8px;color:var(--txt-muted);letter-spacing:2px;margin-bottom:4px;}
    .toast-v{font-family:var(--font-disp);font-size:20px;font-weight:700;color:var(--green);letter-spacing:.5px;}

    /* ===== DRAWER ===== */
    .drawer-backdrop{position:fixed;inset:0;z-index:400;background:rgba(0,0,0,0.55);opacity:0;pointer-events:none;transition:opacity .25s;}
    .drawer-backdrop.on{opacity:1;pointer-events:auto;}
    .drawer{position:fixed;top:0;right:0;height:100dvh;width:340px;max-width:90vw;z-index:410;background:var(--bg-panel);border-left:1px solid var(--bdr-strong);transform:translateX(100%);transition:transform .28s ease;display:flex;flex-direction:column;}
    .drawer.on{transform:translateX(0);}
    .drawer-hdr{flex-shrink:0;height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--bdr-strong);}
    .drawer-title{font-family:var(--font-disp);font-size:13px;font-weight:700;color:var(--txt-bright);letter-spacing:3px;}
    .drawer-close{background:transparent;border:none;color:var(--txt-muted);font-size:20px;cursor:pointer;padding:4px 8px;}
    .drawer-body{flex:1;overflow-y:auto;padding:18px 16px 32px;}
    .drawer-section{margin-bottom:22px;}
    .drawer-section-title{font-size:9px;font-weight:700;color:var(--primary);letter-spacing:2.5px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--bdr-strong);}

    .mode-option{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;cursor:pointer;background:var(--bg-elev);border:1px solid var(--bdr-strong);margin-bottom:8px;transition:border-color .12s, background .12s;}
    .mode-option.active{border-color:var(--primary);background:rgba(217,107,53,.06);}
    .mode-radio{width:14px;height:14px;border:1px solid var(--txt-muted);flex-shrink:0;margin-top:2px;display:flex;align-items:center;justify-content:center;}
    .mode-option.active .mode-radio{border-color:var(--primary);}
    .mode-option.active .mode-radio::after{content:'';width:6px;height:6px;background:var(--primary);}
    .mode-info{flex:1;}
    .mode-name{font-size:11px;font-weight:700;color:var(--txt-bright);letter-spacing:1.5px;margin-bottom:3px;}
    .mode-desc{font-size:10px;color:var(--txt-muted);line-height:1.5;letter-spacing:.5px;}

    .action-btn{width:100%;padding:11px 12px;margin-bottom:6px;background:var(--bg-elev);border:1px solid var(--primary);color:var(--primary);font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:1.8px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:3px;transition:background .12s;}
    .action-btn:active{background:rgba(217,107,53,.12);}
    .action-sub{font-size:9px;color:var(--txt-muted);letter-spacing:1.2px;font-weight:400;}

    /* ── Tier sections ───────────────────────────────────────────────── */
    .tier-section{margin-bottom:20px;}
    .tier-hdr{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--bdr-mid);margin-bottom:8px;}
    .tier-name{font-size:9px;font-weight:700;letter-spacing:3px;}
    .tier-beginner{color:var(--green);}
    .tier-intermediate{color:var(--amber);}
    .tier-pro{color:var(--primary);}
    .tier-count{font-size:9px;color:var(--txt-muted);letter-spacing:1px;margin-left:auto;}
    .tier-lock{font-size:11px;margin-left:auto;opacity:.5;}
    .tier-upgrade-cta{font-size:9px;font-weight:700;letter-spacing:1.5px;color:var(--primary);cursor:pointer;margin-left:6px;}
    /* Locked tier placeholder */
    .tier-gated .tier-hdr{opacity:.55;}
    .tier-gate-msg{font-size:10px;color:var(--txt-muted);padding:10px 14px;background:var(--bg-panel);border:1px solid var(--bdr-mid);border-left:3px solid var(--bdr-strong);letter-spacing:.3px;line-height:1.7;margin-bottom:4px;}
    .tier-gate-msg strong{color:var(--txt-main);}
    .tier-gate-pro{border-left-color:var(--primary);}
    /* Progress bar */
    .tier-progress{margin-top:10px;margin-bottom:4px;}
    .tier-progress-track{height:2px;background:var(--bdr-strong);border-radius:2px;overflow:hidden;margin-bottom:5px;}
    .tier-progress-fill{height:100%;background:var(--primary);border-radius:2px;transition:width .5s ease;}
    .tier-progress-label{font-size:9px;color:var(--txt-muted);letter-spacing:1px;}
    /* Pattern cards */
    .lib-item{padding:9px 12px;background:var(--bg-elev);border:1px solid var(--bdr-strong);border-left:2px solid var(--bdr-strong);margin-bottom:6px;cursor:pointer;transition:border-color .12s,border-left-color .12s,opacity .12s;position:relative;overflow:hidden;}
    .lib-item:active{background:var(--bg-panel);}
    .lib-item.long{border-left-color:var(--green);}
    .lib-item.short{border-left-color:var(--red);}
    .lib-item.locked{opacity:.8;}
    .lib-item.locked .lib-name,.lib-item.locked .lib-sub{filter:blur(3.5px);user-select:none;}
    .lib-item.attempted{opacity:.7;}
    .lib-name{font-size:11px;font-weight:700;color:var(--txt-bright);letter-spacing:1px;margin-bottom:3px;}
    .lib-sub{font-size:9px;color:var(--txt-muted);letter-spacing:.5px;}
    /* Attempt checkmark */
    .pattern-check{position:absolute;top:50%;right:10px;transform:translateY(-50%);font-size:11px;color:var(--green);}
    .lib-item.locked .pattern-check{display:none;}
    /* PRO badge — shift left if both check and badge could collide */
    .pro-badge{position:absolute;top:50%;right:10px;transform:translateY(-50%);font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:1.5px;color:#000;background:var(--primary);padding:3px 7px;}
    /* Concept tag */
    .concept-tag{display:inline-block;font-size:7px;font-weight:700;letter-spacing:1.5px;padding:1px 5px;border:1px solid;border-radius:1px;margin-right:6px;vertical-align:middle;opacity:.85;}
    .speed-pro{position:relative;}
    .speed-pro::after{content:'PRO';position:absolute;top:-5px;right:-2px;font-size:7px;font-weight:700;color:var(--primary);letter-spacing:1px;}
    /* Recommendation banner */
    .rec-banner{display:none;margin-bottom:10px;padding:10px 12px;background:rgba(217,107,53,.08);border:1px solid rgba(217,107,53,.3);border-left:2px solid var(--primary);}
    .rec-banner.show{display:block;}
    .rec-label{font-size:9px;font-weight:700;color:var(--primary);letter-spacing:2px;margin-bottom:4px;}
    .rec-text{font-size:10px;color:var(--txt-dim);letter-spacing:.5px;}
    /* Upgrade prompt overlay */
    .upgrade-overlay{display:none;position:fixed;inset:0;z-index:900;background:rgba(0,0,0,.72);align-items:center;justify-content:center;}
    .upgrade-overlay.on{display:flex;}
    .upgrade-box{background:var(--bg-panel);border:1px solid var(--bdr-strong);padding:28px 24px;max-width:320px;width:90%;text-align:center;}
    .upgrade-eyebrow{font-size:9px;font-weight:700;color:var(--primary);letter-spacing:2px;margin-bottom:10px;}
    .upgrade-title{font-size:16px;font-weight:700;color:var(--txt-bright);letter-spacing:.5px;margin-bottom:8px;}
    .upgrade-sub{font-size:11px;color:var(--txt-muted);line-height:1.6;margin-bottom:20px;}
    .upgrade-cta{display:block;width:100%;padding:12px;background:var(--primary);color:#fff;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:2px;border:none;cursor:pointer;margin-bottom:10px;}
    .upgrade-dismiss{font-size:10px;color:var(--txt-muted);background:none;border:none;cursor:pointer;text-decoration:underline;}

    .pill-row{display:flex;gap:6px;}
    .pill{flex:1;padding:9px;background:var(--bg-elev);border:1px solid var(--bdr-strong);font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--txt-bright);letter-spacing:1.5px;cursor:pointer;text-align:center;}
    .pill.active{border-color:var(--primary);color:var(--primary);background:rgba(217,107,53,.06);}
    .inst-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;}
    .inst-pill{
      padding:10px 8px;background:var(--bg-elev);border:1px solid var(--bdr-strong);
      font-family:var(--font-mono);font-size:11px;font-weight:700;
      color:var(--txt-bright);letter-spacing:1.2px;cursor:pointer;text-align:center;
      transition:border-color .12s,color .12s,background .12s;
    }
    .inst-pill:active{transform:scale(0.97);}
    .inst-pill.active{border-color:var(--primary);color:var(--primary);background:rgba(217,107,53,.06);}

    /* ===== RESULT MODAL ===== */
    .modal-backdrop{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,0.75);opacity:0;pointer-events:none;transition:opacity .3s;display:flex;align-items:center;justify-content:center;padding:20px;}
    .modal-backdrop.on{opacity:1;pointer-events:auto;}
    .modal{background:var(--bg-panel);border:1px solid var(--bdr-strong);width:100%;max-width:420px;padding:24px 20px;position:relative;transform:scale(0.95);transition:transform .3s;}
    .modal-backdrop.on .modal{transform:scale(1);}
    .modal::before,.modal::after{content:'';position:absolute;width:12px;height:12px;border-color:var(--primary);}
    .modal::before{top:-1px;left:-1px;border-top:1px solid;border-left:1px solid;}
    .modal::after{bottom:-1px;right:-1px;border-bottom:1px solid;border-right:1px solid;}
    .modal-eyebrow{font-size:9px;font-weight:700;color:var(--primary);letter-spacing:2.5px;margin-bottom:8px;}
    .modal-result-tag{font-family:var(--font-disp);font-size:32px;font-weight:700;letter-spacing:3px;margin-bottom:12px;}
    .modal-result-tag.correct{color:var(--green);}
    .modal-result-tag.wrong{color:var(--red);}
    .modal-result-tag.info{color:var(--primary);}
    .modal-detail-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--bdr-strong);font-size:11px;}
    .modal-detail-row:last-of-type{border-bottom:none;}
    .modal-detail-k{color:var(--txt-muted);letter-spacing:1.5px;font-size:9px;}
    .modal-detail-v{color:var(--txt-bright);font-weight:700;letter-spacing:1px;}
    .modal-detail-v.green{color:var(--green);}
    .modal-detail-v.red{color:var(--red);}
    .lesson-box{margin-top:14px;padding:12px;background:var(--bg-elev);border:1px solid var(--bdr-strong);border-left:2px solid var(--primary);font-size:10.5px;line-height:1.65;color:var(--txt-main);}
    .lesson-title{font-size:9px;font-weight:700;color:var(--primary);letter-spacing:2px;margin-bottom:6px;}
    .modal-actions{display:flex;gap:8px;margin-top:18px;}
    .modal-btn{flex:1;padding:11px;background:var(--bg-elev);border:1px solid var(--bdr-strong);font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--txt-bright);letter-spacing:1.5px;cursor:pointer;}
    .modal-btn:active{transform:scale(0.96);}
    .modal-btn.primary{background:var(--primary);color:#000;border-color:var(--primary);}

    /* ═══════ BOOT OVERLAY (shown while bootstrap fetches run) ═══════ */
    .boot-overlay{
      position:fixed;inset:0;z-index:9999;
      background:var(--bg-deep);
      display:flex;flex-direction:column;
      align-items:center;justify-content:center;gap:12px;
      font-family:var(--font-mono);
    }
    .boot-overlay.hidden{display:none;}
    .boot-text{
      font-family:var(--font-disp);
      font-size:20px;font-weight:700;color:var(--primary);
      letter-spacing:3px;
      animation:blink 1.5s ease-in-out infinite;
    }
    .boot-overlay.error .boot-text{color:var(--red);animation:none;}
    .boot-sub{
      font-size:11px;color:var(--txt-muted);letter-spacing:1.5px;
      text-align:center;max-width:80%;
    }
    .boot-retry{
      margin-top:14px;padding:10px 22px;
      background:var(--primary);color:#000;border:none;cursor:pointer;
      font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:2px;
    }

    /* ═══════ ACCOUNT (in MORE tab) ═══════ */
    .signin-card{
      background:var(--bg-elev);
      border:1px solid var(--bdr-strong);
      border-top:2px solid var(--primary);
      padding:24px 16px 20px;
      text-align:center;
    }
    .signin-icon{font-size:28px;margin-bottom:10px;opacity:.6;}
    .signin-title{font-size:13px;font-weight:700;color:var(--txt-bright);letter-spacing:.5px;margin-bottom:8px;}
    .signin-msg{
      font-size:11px;color:var(--txt-muted);
      line-height:1.6;letter-spacing:.3px;
      margin-bottom:20px;
    }
    /* Custom Google sign-in button — always visible, no iframe */
    .gsi-btn{
      display:flex;align-items:center;justify-content:center;gap:10px;
      width:100%;padding:13px 16px;
      background:#fff;border:none;border-radius:2px;
      cursor:pointer;
      font-family:var(--font-mono);font-size:12px;font-weight:700;
      letter-spacing:1.5px;color:#1f1f1f;
      box-shadow:0 1px 3px rgba(0,0,0,.4);
      -webkit-tap-highlight-color:transparent;
      transition:opacity .15s;
    }
    .gsi-btn:active{opacity:.85;}
    .gsi-btn svg{flex-shrink:0;width:18px;height:18px;}
    .signin-hint{font-size:9px;color:var(--txt-muted);letter-spacing:1px;margin-top:12px;}
    /* Hidden Google button wrapper — kept for SDK compat, not displayed */
    .signin-btn-wrap{display:none;}
    .profile-card{
      display:flex;align-items:center;gap:12px;
      background:var(--bg-elev);
      border:1px solid var(--bdr-strong);
      padding:12px 14px;
    }
    .profile-avatar{
      width:42px;height:42px;border-radius:50%;
      background:var(--bg-deep);
      object-fit:cover;flex-shrink:0;
    }
    .profile-info{flex:1;min-width:0;}
    .profile-name{
      font-size:13px;font-weight:700;color:var(--txt-bright);
      letter-spacing:.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
      display:flex;align-items:center;gap:7px;
    }
    .profile-tier-badge{
      flex-shrink:0;font-size:8px;font-weight:700;letter-spacing:1.5px;
      padding:2px 6px;background:var(--primary);color:#fff;line-height:1.4;
    }
    .profile-tier-badge.trial{background:transparent;border:1px solid var(--primary);color:var(--primary);}
    .profile-email{
      font-size:10px;color:var(--txt-muted);
      letter-spacing:.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    }
    .signout-btn{
      background:transparent;border:1px solid var(--bdr-strong);
      color:var(--txt-muted);
      font-family:var(--font-mono);font-size:10px;font-weight:600;
      letter-spacing:1.5px;padding:6px 10px;cursor:pointer;
    }
    .signout-btn:active{color:var(--red);border-color:var(--red);}
    /* Share icon button in identity card */
    .p-share-ico{
      background:transparent;border:none;
      color:var(--primary);cursor:pointer;
      padding:6px;display:flex;align-items:center;flex-shrink:0;
      opacity:.7;
    }
    .p-share-ico:active{opacity:1;}
    /* Invite friends + sign out bottom section */
    .p-invite{margin-top:20px;padding-top:14px;border-top:1px solid var(--bdr-strong);}
    .invite-btn{
      display:flex;align-items:center;justify-content:center;gap:8px;
      width:100%;padding:11px 16px;
      background:transparent;border:1px solid var(--primary);
      color:var(--primary);font-family:var(--font-mono);
      font-size:10px;font-weight:700;letter-spacing:2px;cursor:pointer;
    }
    .invite-btn:active{background:var(--primary);color:#000;}
    .signout-link{
      display:block;width:100%;margin-top:14px;padding:4px;
      background:transparent;border:none;
      color:var(--txt-dim);font-family:var(--font-mono);
      font-size:9px;letter-spacing:2px;text-align:center;cursor:pointer;
    }
    .signout-link:active{color:var(--red);}

    /* ═══════ PROFILE TAB — STATS ═══════ */
    .p-section{margin-top:16px;}
    .p-section-head{
      font-size:9px;font-weight:700;color:var(--primary);
      letter-spacing:2.5px;margin-bottom:8px;padding-bottom:6px;
      border-bottom:1px solid var(--bdr-strong);
    }
    .stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
    .stat-card{
      background:var(--bg-elev);border:1px solid var(--bdr-strong);
      padding:14px 10px;text-align:center;
    }
    .stat-card.span2{grid-column:span 2;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;text-align:left;}
    .stat-val{font-size:24px;font-weight:700;color:var(--txt-bright);letter-spacing:-.5px;line-height:1;}
    .stat-val.accent{color:var(--primary);}
    .stat-val.green{color:var(--green);}
    .stat-val.sm{font-size:14px;letter-spacing:.5px;}
    .stat-lbl{font-size:8px;font-weight:700;color:var(--txt-muted);letter-spacing:2px;margin-top:5px;}
    /* username */
    .uname-section{margin-top:16px;}
    .uname-label{font-size:9px;font-weight:700;color:var(--primary);letter-spacing:2.5px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--bdr-strong);}
    .uname-row{display:flex;align-items:stretch;gap:0;}
    .uname-prefix{
      background:var(--bg-panel);border:1px solid var(--bdr-strong);border-right:none;
      color:var(--txt-muted);font-family:var(--font-mono);font-size:13px;
      padding:8px 10px;display:flex;align-items:center;flex-shrink:0;
    }
    .username-input{
      flex:1;background:var(--bg-elev);border:1px solid var(--bdr-strong);border-right:none;
      color:var(--txt-bright);font-family:var(--font-mono);font-size:13px;
      padding:8px 10px;outline:none;letter-spacing:.5px;min-width:0;
      -webkit-user-select:text;user-select:text;
    }
    .username-input:focus{border-color:var(--primary);}
    .username-save-btn{
      background:var(--primary);color:#000;
      font-family:var(--font-mono);font-size:10px;font-weight:700;
      letter-spacing:1.5px;padding:8px 14px;border:none;cursor:pointer;
      white-space:nowrap;flex-shrink:0;
    }
    .uname-hint{font-size:9px;color:var(--txt-muted);letter-spacing:.5px;margin-top:5px;}
    /* share card */
    .share-card{
      margin-top:16px;background:var(--bg-elev);
      border:1px solid var(--bdr-strong);border-top:2px solid var(--primary);
      padding:14px;
    }
    .share-card-head{font-size:9px;font-weight:700;color:var(--primary);letter-spacing:2.5px;margin-bottom:10px;}
    /* share preview card — mini identity card */
    .share-preview{
      background:var(--bg-deep);
      border:1px solid var(--bdr-strong);
      border-top:2px solid var(--primary);
      padding:12px 12px 10px;
      margin-bottom:12px;
      position:relative;overflow:hidden;
    }
    .sp-rank{
      font-size:8px;font-weight:700;
      color:var(--primary);letter-spacing:2.5px;
      border-left:2px solid var(--primary);
      padding-left:6px;margin-bottom:10px;
      line-height:1.2;
    }
    .sp-main-row{
      display:flex;align-items:flex-end;gap:10px;
      padding-bottom:10px;
      border-bottom:1px solid var(--bdr-faint);
      margin-bottom:10px;
    }
    .sp-hero{min-width:0;}
    .sp-hero-val{
      font-size:40px;font-weight:700;line-height:1;
      color:var(--primary);
    }
    .sp-hero-lbl{
      font-size:7px;color:var(--txt-muted);
      letter-spacing:2px;margin-top:3px;
    }
    .sp-mini-cols{
      flex:1;display:flex;
      gap:0;border-left:1px solid var(--bdr-faint);padding-left:10px;
    }
    .sp-mini-item{flex:1;padding:0 4px;}
    .sp-mini-val{
      font-size:18px;font-weight:700;
      color:var(--txt-bright);line-height:1;
    }
    .sp-mini-val.g{color:var(--green);}
    .sp-mini-val.c{color:#5cb8d4;}
    .sp-mini-lbl{
      font-size:6px;color:var(--txt-muted);
      letter-spacing:1.5px;margin-top:3px;
    }
    .sp-footer{
      font-size:7px;color:var(--txt-dim);
      letter-spacing:1.5px;
    }
    .share-btn{
      display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
      padding:10px;background:var(--primary);border:none;
      color:#000;font-family:var(--font-mono);font-size:10px;
      font-weight:700;letter-spacing:2px;cursor:pointer;
    }
    .share-btn:active{opacity:.8;}
    .share-btn svg{flex-shrink:0;}
    /* sign out danger zone */
    .danger-zone{margin-top:20px;padding-top:14px;border-top:1px solid var(--bdr-strong);}
    .stat-section-head{font-size:9px;font-weight:700;color:var(--primary);letter-spacing:2.5px;margin-top:18px;margin-bottom:6px;}
    .stat-wide{grid-column:span 2;text-align:left;padding:10px 12px;}
    .username-save-btn:active{opacity:.8;}
    .username-hint{
      font-size:9px;color:var(--txt-muted);
      letter-spacing:.5px;margin-top:5px;
    }

    /* ═══════════ TAB HOST + BOTTOM NAV (PWA-style) ═══════════ */
    .tab-host{
      flex:1;position:relative;min-height:0;
      background:var(--bg-deep);
    }
    .tab-page{
      position:absolute;inset:0;
      display:none;flex-direction:column;
    }
    .tab-page.active{display:flex;}
    /* All scrollable tab pages */
    .tab-page[data-tab="learn"] .page-scroll,
    .tab-page[data-tab="more"]  .page-scroll,
    .tab-page[data-tab="profile"] .page-scroll{
      flex:1;overflow-y:auto;overflow-x:hidden;
      padding:14px 14px 32px;
      -webkit-overflow-scrolling:touch;
    }

    /* Bottom nav */
    .bot-nav{
      flex-shrink:0;
      height:calc(58px + env(safe-area-inset-bottom));
      padding-bottom:env(safe-area-inset-bottom);
      display:flex;
      background:var(--bg-panel);
      border-top:1px solid var(--bdr-strong);
      position:relative;z-index:5;
    }
    .tab-btn{
      flex:1;
      display:flex;flex-direction:column;
      align-items:center;justify-content:center;
      gap:3px;
      background:transparent;border:none;
      color:var(--txt-muted);
      cursor:pointer;
      font-family:var(--font-mono);
      font-size:9.5px;font-weight:700;
      letter-spacing:2px;
      position:relative;
      transition:color .15s;
      padding:8px 4px 6px;
    }
    .tab-btn svg{
      width:22px;height:22px;
      display:block;
    }
    .tab-btn.active{color:var(--primary);}
    .tab-btn.active::before{
      content:'';position:absolute;
      top:0;left:24%;right:24%;height:2px;
      background:var(--primary);
    }
    .tab-btn:active{transform:scale(0.96);}
    /* Sign-in nudge dot on PROFILE nav */
    .tab-btn.signin-nudge::after{
      content:'';position:absolute;top:6px;right:calc(50% - 14px);
      width:6px;height:6px;border-radius:50%;
      background:var(--primary);
      animation:nudgePulse 2s ease-in-out infinite;
    }
    @keyframes nudgePulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(.7);}}

    /* LEARN tab: challenge banner */
    .challenge-card{
      background:linear-gradient(135deg,rgba(217,107,53,0.10),rgba(217,107,53,0.02));
      border:1px solid var(--primary);
      border-left:3px solid var(--primary);
      padding:14px 16px 16px;
      margin-bottom:18px;
      cursor:pointer;
      transition:background .12s, transform .08s;
    }
    .challenge-card:active{transform:scale(0.98);background:rgba(217,107,53,0.14);}
    .challenge-card.done{
      cursor:default;
      background:rgba(0,0,0,0.04);
      border-color:var(--bdr-strong);
      border-left-color:var(--bdr-strong);
    }
    .challenge-card.done:active{transform:none;background:rgba(0,0,0,0.04);}
    .challenge-done-result{
      display:inline-block;
      font-family:var(--font-mono);font-size:13px;font-weight:700;
      letter-spacing:1.5px;padding:2px 0 8px;
    }
    .challenge-label{
      font-size:9px;font-weight:700;color:var(--primary);
      letter-spacing:2.5px;margin-bottom:6px;
    }
    .challenge-title{
      font-family:var(--font-disp);
      font-size:18px;font-weight:700;color:var(--txt-bright);
      letter-spacing:1.5px;margin-bottom:6px;line-height:1.2;
    }
    .challenge-sub{
      font-size:10.5px;color:var(--txt-main);
      line-height:1.55;letter-spacing:.3px;margin-bottom:12px;
    }
    .challenge-cta{
      display:inline-block;
      background:var(--primary);color:#000;
      font-family:var(--font-mono);
      font-size:11px;font-weight:700;letter-spacing:2px;
      padding:9px 14px;
    }

    /* Shared section heading for LEARN + MORE */
    .section-head{
      display:flex;align-items:center;justify-content:space-between;
      font-size:9px;font-weight:700;color:var(--primary);
      letter-spacing:2.5px;
      padding-bottom:8px;margin-bottom:10px;
      border-bottom:1px solid var(--bdr-strong);
    }
    .section-head .section-sub{
      font-size:8.5px;color:var(--txt-muted);
      letter-spacing:2px;font-weight:600;
    }
    .lib-intro{
      font-size:10px;color:var(--txt-muted);
      line-height:1.5;letter-spacing:.3px;
      margin-bottom:12px;
    }

    /* MORE tab sections */
    .more-section{margin-bottom:22px;}

    /* PWA install button */
    .pwa-install-btn{
      width:100%;padding:11px 14px;
      background:transparent;
      border:1px solid var(--primary);color:var(--primary);
      font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:2px;
      cursor:pointer;text-align:left;
      transition:background .12s;
    }
    .pwa-install-btn:active{background:rgba(217,116,58,.12);}

    /* Profile — in-sim leaderboard */
    .sim-lb-tabs{
      display:flex;gap:6px;margin-top:2px;
      /* sits to the right of the section head */
    }
    .p-section-head{display:flex;align-items:center;justify-content:space-between;}
    .sim-lb-tab{
      font-size:8px;font-weight:700;letter-spacing:1.5px;
      color:var(--txt-muted);cursor:pointer;padding:2px 7px;
      border:1px solid var(--bdr-strong);
    }
    .sim-lb-tab.active{color:var(--primary);border-color:var(--primary);}
    .sim-lb-table{margin-top:2px;}
    .sim-lb-row{
      display:grid;
      grid-template-columns:22px 1fr 42px 44px;
      align-items:center;gap:6px;
      padding:7px 10px;
      border-bottom:1px solid var(--bdr-strong);
      font-size:11px;
    }
    .sim-lb-row:last-child{border-bottom:none;}
    .sim-lb-row.me{background:rgba(217,116,58,.06);border-left:2px solid var(--primary);}
    .sim-lb-rank{color:var(--txt-dim);font-size:9px;font-weight:700;letter-spacing:1px;}
    .sim-lb-row.me .sim-lb-rank{color:var(--primary);}
    .sim-lb-name{color:var(--txt-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;}
    .sim-lb-row.me .sim-lb-name{color:var(--txt-bright);font-weight:700;}
    .sim-lb-wins{color:var(--green);font-weight:700;text-align:right;font-size:11px;}
    .sim-lb-acc{color:var(--txt-muted);font-size:9px;text-align:right;}
    .lb-empty-sim{
      padding:18px 10px;text-align:center;
      font-size:9px;color:var(--txt-dim);letter-spacing:1.5px;
    }

    .about-text{
      font-size:10.5px;color:var(--txt-muted);
      line-height:1.6;letter-spacing:.4px;
    }
    .copyright-block{
      margin-top:14px;padding-top:12px;
      border-top:1px solid var(--bdr-strong);
      font-size:9px;color:var(--txt-muted);
      letter-spacing:1.8px;line-height:1.6;
    }
    .copyright-brand{
      font-family:var(--font-disp);color:var(--primary);
      letter-spacing:2.5px;font-weight:700;
    }
    .copyright-rights{
      margin-top:4px;font-size:8.5px;
      color:var(--txt-dim);letter-spacing:1.5px;
    }

    /* Hide stale drawer if any code still references it */
    .drawer,.drawer-backdrop{display:none !important;}

    @media (max-width: 640px){
      .bot-nav{ height:calc(56px + env(safe-area-inset-bottom)); }
      .tab-btn svg{ width:20px;height:20px; }
      .tab-btn{ font-size:9px; }
    }
