        /* ============================================================
           PSA BRAND COLOURS — from Vercel website :root CSS variables
           CANONICAL VALUES — USE EVERYWHERE ACROSS THE PROJECT
           ============================================================
           --primary (navy):      hsl(214,60%,10%)  = #0a1628
           --navy-deep (header):  hsl(212,62%,16%)  = #0f2440
           --navy-mid:            hsl(212,55%,19%)  = #162a42
           --orange (accent):     hsl(25,82%,51%)   = #e8771a
           --orange-hover:        hsl(25,78%,47%)   = #d66c14
           --background (page):   hsl(36,20%,96%)   = #f7f4f0
           --foreground (text):   hsl(0,0%,17%)     = #2b2b2b
           --cream:               hsl(48,23%,97%)   = #f9f7f3
           --warm-grey:           hsl(43,18%,93%)   = #efece6
           --border:              hsl(36,14%,86%)   = #dedad3
           --gold:                hsl(43,52%,54%)   = #c9a84c
           --text-light:          hsl(0,0%,42%)     = #6b6b6b
           --text-lighter:        hsl(0,0%,60%)     = #999999
           ============================================================ */
        :root{
            --navy:#0a1628;--navy-deep:#0f2440;--navy-mid:#162a42;
            --orange:#e8771a;--orange-hover:#d66c14;--orange-light:rgba(232,119,26,.07);--orange-border:rgba(232,119,26,.22);
            --bg:#f7f4f0;--bg-card:#fff;--bg-input:#f9f7f3;--cream:#f9f7f3;--warm-grey:#efece6;
            --text-dark:#2b2b2b;--text-body:#2b2b2b;--text-muted:#6b6b6b;--text-light:#999999;
            --border:#dedad3;--border-light:#efece6;
            --green:#2d8a56;--blue:#2e6da4;--purple:#7c5cbf;
            /* Type tokens — single source of truth for fonts. Change here to re-skin
               the whole app (was ~306 hardcoded literals before tokenisation, 15 Jun 2026). */
            --font-body:'Plus Jakarta Sans',sans-serif;--font-title:'Plus Jakarta Sans',sans-serif;--font-display:'Plus Jakarta Sans',sans-serif;
            --font-mono:'JetBrains Mono',monospace;--font-brand:'Britannic Bold','Arial Black',sans-serif;
        }
        *{margin:0;padding:0;box-sizing:border-box}
        html,body{overflow-x:hidden;width:100%}
        body{font-family:var(--font-body);background:var(--bg);color:var(--text-body);min-height:100vh;font-size:15px;-webkit-font-smoothing:antialiased}
        ::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}

        /* ===== LOGIN ===== */
        .login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--navy-deep)}
        .login-card{background:#fff;border-radius:4px;padding:2.75rem;width:420px;max-width:92vw;box-shadow:0 8px 40px rgba(0,0,0,.15)}
        .login-logo{font-family:var(--font-brand);font-size:1.35rem;font-weight:700;color:rgb(22,59,91);text-align:center;margin-bottom:.15rem;white-space:nowrap}.login-logo span{color:rgb(255,131,0)}
        .login-subtitle{text-align:center;color:var(--text-light);font-size:.55rem;text-transform:uppercase;letter-spacing:3px;margin-bottom:2.25rem}
        .form-group{margin-bottom:1.15rem}.form-group label{display:block;font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);margin-bottom:.4rem}
        .form-group input{width:100%;padding:.7rem .9rem;background:var(--bg-input);border:1px solid var(--border);border-radius:3px;color:var(--text-dark);font-family:var(--font-body);font-size:.88rem;transition:border-color .2s}
        .form-group input:focus{outline:none;border-color:var(--orange)}.form-group input::placeholder{color:var(--text-light)}
        .btn{display:inline-flex;align-items:center;justify-content:center;padding:.7rem 1.4rem;border:none;border-radius:3px;font-family:var(--font-body);font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s;letter-spacing:.3px}
        .btn-primary{background:var(--orange);color:#fff;width:100%}.btn-primary:hover{background:var(--orange-hover)}.btn-primary:disabled{opacity:.5;cursor:default}
        .login-error{background:rgba(220,53,53,.06);border:1px solid rgba(220,53,53,.2);color:#c0392b;padding:.65rem .85rem;font-size:.82rem;margin-bottom:1rem;border-radius:3px;display:none}
        .login-footer{text-align:center;margin-top:2rem;color:var(--text-light);font-size:.68rem}

        /* ===== CHANGE PASSWORD ===== */
        .cp-screen{display:none;align-items:center;justify-content:center;min-height:100vh;background:var(--navy-deep)}
        .cp-card{background:#fff;border-radius:4px;padding:2.75rem;width:380px;box-shadow:0 8px 40px rgba(0,0,0,.15)}
        .cp-title{font-family:var(--font-body);font-size:1.2rem;font-weight:600;color:var(--navy);margin-bottom:.3rem}
        .cp-desc{font-size:.82rem;color:var(--text-muted);margin-bottom:1.5rem}

        /* ===== APP ===== */
        .app-container{display:none;min-height:100vh}
        .header{display:flex;flex-direction:column;align-items:center;background:var(--navy-deep);position:sticky;top:0;z-index:100}
        .header-top{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 2.5rem;height:64px}
        .header-left{flex:1;display:flex;align-items:center}
        .ops-btn{display:inline-flex;align-items:center;padding:6px 14px;background:var(--orange);color:#fff;font-family:var(--font-body);font-size:.76rem;font-weight:600;letter-spacing:.3px;border-radius:4px;text-decoration:none;transition:background .2s,opacity .2s;white-space:nowrap}
        .ops-btn:hover{background:#d4820a;color:#fff}
        .header-center{display:flex;flex-direction:column;align-items:center;justify-content:center}
        .header-brand{font-family:var(--font-brand);font-size:1.4rem;font-weight:700;color:rgba(255,255,255,.95);letter-spacing:.3px;cursor:pointer}
        .header-brand span{color:rgb(255,131,0);font-weight:700}
        .header-tagline{font-size:.5rem;text-transform:uppercase;letter-spacing:3.5px;color:rgba(255,255,255,.28);margin-top:.1rem;font-weight:400}
        .header-right{flex:1;display:flex;align-items:center;justify-content:flex-end;gap:1.15rem}
        .header-avatar{width:32px;height:32px;border-radius:50%;background:rgba(232,119,26,.15);border:1.5px solid rgba(232,119,26,.4);display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-size:.7rem;font-weight:700;color:var(--orange);letter-spacing:.3px;cursor:pointer;transition:border-color .2s}
        .header-avatar:hover{border-color:var(--orange)}
        .header-user{font-size:.8rem;color:rgba(255,255,255,.45);font-weight:400;display:none}
        .logout-btn{font-size:.76rem;color:rgba(255,255,255,.35);cursor:pointer;background:none;border:none;font-family:var(--font-body);transition:color .2s}.logout-btn:hover{color:var(--orange)}
        .avatar-menu-wrap{position:relative}
        .avatar-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border-radius:8px;box-shadow:0 4px 24px rgba(0,0,0,.15),0 1px 4px rgba(0,0,0,.08);min-width:170px;z-index:1000;padding:6px 0;font-family:var(--font-body)}
        .avatar-dropdown.hidden{display:none}
        .avatar-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 16px;border:none;background:none;font-family:var(--font-body);font-size:.82rem;color:var(--text-body);cursor:pointer;transition:background .12s}
        .avatar-dropdown-item:hover{background:rgba(232,119,26,.06)}
        .avatar-dropdown-item.hidden{display:none}
        .header-nav{display:flex;align-items:center;gap:0;border-top:1px solid rgba(255,255,255,.06);width:100%;justify-content:center;height:40px}
        .nav-tab{padding:0 1.25rem;height:40px;display:flex;align-items:center;font-size:.82rem;font-weight:400;color:rgba(255,255,255,.5);cursor:pointer;border:none;background:none;font-family:var(--font-body);transition:color .2s;position:relative;letter-spacing:.2px}
        .nav-tab:hover{color:rgba(255,255,255,.75)}.nav-tab.active{color:#fff;font-weight:500}
        .nav-tab.active::after{content:'';position:absolute;bottom:0;left:.75rem;right:.75rem;height:2px;background:var(--orange);border-radius:1px}
        .nav-gear-btn{background:none;border:none;color:rgba(255,255,255,.35);cursor:pointer;padding:4px 8px;transition:color .2s;display:inline-flex;align-items:center}
        .nav-gear-btn:hover,.nav-gear-btn.active{color:rgba(255,255,255,.85)}
        .nav-gear-btn svg{width:16px;height:16px;fill:currentColor}
        .admin-tab-bar{display:flex;gap:1.5rem;margin-bottom:.4rem}
        .admin-tab-desc{font-family:var(--font-body);font-size:.82rem;color:var(--text-muted);margin-bottom:1.5rem}
        .admin-tab-link{font-family:var(--font-body);font-size:1.85rem;font-weight:700;color:var(--text-muted);cursor:pointer;background:none;border:none;padding:0 0 .45rem 0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;letter-spacing:.3px}
        .admin-tab-link:hover{color:var(--navy)}
        .admin-tab-link.active{color:var(--navy);border-bottom-color:var(--orange)}
        .content{max-width:1400px;margin:0 auto;padding:2.25rem 2.5rem 3rem}.tab-panel{display:none}.tab-panel.active{display:block}

        /* ===== SEARCH / ASK PSA ===== */
        .lang-toggle{display:flex;align-items:center;border:1px solid rgba(255,255,255,.2);border-radius:3px;overflow:hidden;flex-shrink:0}
        .lang-btn{padding:.35rem .6rem;border:none;background:transparent;font-family:var(--font-body);font-size:.72rem;font-weight:600;cursor:pointer;color:rgba(255,255,255,.4);transition:all .2s;letter-spacing:.3px}
        .lang-btn.active{background:var(--orange);color:#fff}.lang-btn:hover:not(.active){color:rgba(255,255,255,.7)}
        /* Quote button */
        .quote-btn{display:flex;align-items:center;gap:5px;padding:.4rem 1rem;border:1px solid rgba(232,119,26,.45);border-radius:3px;background:rgba(232,119,26,.08);color:rgba(255,255,255,.85);cursor:pointer;font-family:var(--font-body);font-size:.82rem;font-weight:600;transition:all .2s;flex-shrink:0;position:relative;letter-spacing:.3px}
        .quote-btn:hover{color:#fff;border-color:var(--orange);background:rgba(232,119,26,.18)}
        .quote-btn.active{background:var(--orange);color:#fff;border-color:var(--orange)}
        .quote-btn .quote-yen{font-family:var(--font-mono);font-weight:700;font-size:.88rem;color:var(--orange)}
        .quote-btn.active .quote-yen{color:#fff}
        .quote-popup{position:absolute;top:calc(100% + 8px);left:0;width:360px;background:#fff;border-radius:10px;box-shadow:0 8px 32px rgba(10,22,40,.18);border:1px solid var(--border);z-index:200;display:none;overflow:hidden}
        .quote-popup.visible{display:block}
        .quote-search-wrap{padding:12px 14px;border-bottom:1px solid var(--border-light)}
        .quote-search{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-family:var(--font-body);font-size:.82rem;outline:none;background:var(--cream)}
        .quote-search:focus{border-color:var(--orange)}
        .quote-search::placeholder{color:var(--text-light)}
        .quote-dropdown{max-height:220px;overflow-y:auto}
        .quote-dropdown-item{padding:8px 14px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background .1s}
        .quote-dropdown-item:hover,.quote-dropdown-item.selected{background:rgba(232,119,26,.06)}
        .quote-dropdown-item .qd-ticker{font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--orange);min-width:40px}
        .quote-dropdown-item .qd-name{font-size:.82rem;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .quote-result{padding:16px}
        .quote-result-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:4px}
        .quote-result-name{font-family:var(--font-body);font-size:.95rem;font-weight:600;color:var(--navy)}
        .quote-result-exchange{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted)}
        .quote-result-price-row{display:flex;align-items:baseline;gap:10px;margin:8px 0 4px}
        .quote-result-price{font-family:var(--font-mono);font-size:1.5rem;font-weight:700;color:var(--navy)}
        .quote-result-change{font-family:var(--font-mono);font-size:.82rem;font-weight:600}
        .quote-result-change.up{color:#2d8a56}.quote-result-change.down{color:#c0392b}.quote-result-change.flat{color:var(--text-muted)}
        .quote-result-meta{font-size:.75rem;color:var(--text-muted);margin-top:6px;padding-top:8px;border-top:1px solid var(--border-light);display:flex;flex-wrap:wrap;gap:4px 12px}
        .quote-result-meta span{white-space:nowrap}
        .quote-result-link{display:inline-block;margin-top:10px;font-size:.78rem;font-weight:600;color:var(--orange);cursor:pointer;transition:color .15s}
        .quote-result-link:hover{text-decoration:underline}
        /* Market bar on homepage — inline with datebar */
        /* Market bar — inline strip in the datebar (rebuilt 21 May 2026 v3) */
        .hp-market-bar{display:flex;align-items:baseline;gap:14px;flex:1;justify-content:center;flex-wrap:wrap}
        .hp-market-item{display:inline-flex;align-items:baseline;gap:8px;font-family:var(--font-mono);font-size:.82rem;line-height:1.3}
        .hp-market-label{font-family:var(--font-body);font-weight:700;color:var(--text-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.6px}
        .hp-market-price{color:var(--navy);font-weight:700;font-size:.92rem;letter-spacing:-0.2px}
        .hp-market-chg{font-weight:700;font-size:.78rem}
        .hp-market-chg.up{color:#2d8a56}
        .hp-market-chg.down{color:#c0392b}
        .hp-market-chg.flat{color:var(--text-muted);font-weight:500}
        .hp-market-sep{color:var(--border);font-weight:400;font-size:.7rem;margin:0 2px;align-self:center}
        .hp-market-bar--loading .hp-market-price{color:var(--text-light)}
        @keyframes spin{to{transform:rotate(360deg)}}
        .citation{color:var(--text-muted);font-size:.82rem;cursor:pointer;border-bottom:1px dotted var(--border);transition:all .15s}.citation:hover{color:var(--orange);border-bottom-color:var(--orange)}

        /* Dashboard company info bar */
        .dash-co-bar{background:#0f2440;color:#fff;padding:16px 24px;border-radius:8px 8px 0 0;font-family:var(--font-body);font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
        .dash-co-bar-left{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
        .dash-co-bar-left .co-name{font-size:15px;font-weight:600}
        .dash-co-bar-left .sep{color:rgba(255,255,255,.3)}
        .dash-co-bar-left .co-fl{background:rgba(45,138,86,.2);color:#6fcf97;font-size:10px;font-weight:700;padding:2px 7px;border-radius:3px;text-transform:uppercase;letter-spacing:.5px}
        .dash-co-bar-right{display:flex;align-items:baseline;gap:12px}
        .dash-co-bar-right .co-price{font-family:var(--font-mono);font-size:16px;font-weight:700}
        .dash-co-bar-right .co-mcap{font-family:var(--font-mono);font-size:12px;color:rgba(255,255,255,.6)}
        /* Dashboard headline (extracted from Latest View) */
        .dash-headline{font-family:var(--font-body);font-size:1.1rem;font-weight:700;color:var(--navy-deep);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border);line-height:1.35}
        /* View Evolution timeline styling */
        /* Scoped to DIRECT <p> children only — the new pill/entry timeline renders its
           text as nested .evo-entry-text p, which must NOT inherit this legacy orange-dot
           + left-border bullet styling (that was the stray "orange circle"). */
        .evo-timeline > p{position:relative;padding-left:20px;border-left:2px solid var(--border);margin-bottom:14px;font-size:13px;line-height:1.75}
        .evo-timeline > p::before{content:'';position:absolute;left:-5px;top:8px;width:8px;height:8px;border-radius:50%;background:var(--orange)}
        .evo-timeline > p:last-child{border-left-color:transparent}

        /* Ask PSA: Escalation button (chat drawer) */
        .ask-escalate-btn{font-family:var(--font-body);font-size:.78rem;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--orange),#d4691a);border:none;border-radius:10px;padding:.6rem 1.2rem;cursor:pointer;transition:all .2s;letter-spacing:.01em;margin-top:8px;align-self:flex-start;max-width:92%;line-height:1.4;box-shadow:0 2px 8px rgba(232,119,26,.2)}
        .ask-escalate-btn:hover{background:linear-gradient(135deg,#d4691a,var(--orange));transform:translateY(-1px);box-shadow:0 4px 14px rgba(232,119,26,.25)}
        .ask-escalate-btn:disabled{cursor:default;opacity:.5;transform:none;box-shadow:none}
        .ask-no-coverage-btn{font-family:var(--font-body);font-size:.78rem;font-weight:600;color:#fff;background:var(--navy);border:none;border-radius:10px;padding:.6rem 1.2rem;cursor:pointer;transition:all .2s;letter-spacing:.01em;margin-top:8px;align-self:flex-start;max-width:92%;line-height:1.4;box-shadow:0 2px 8px rgba(10,22,40,.2)}
        .ask-no-coverage-btn:hover{background:#0f2440;transform:translateY(-1px);box-shadow:0 4px 14px rgba(10,22,40,.25)}
        .ask-no-coverage-btn:disabled{cursor:default;opacity:.5;transform:none;box-shadow:none}
        .ask-escalation-panel{background:rgba(10,22,40,.04);border:1px solid var(--border-light);border-radius:10px;padding:12px 14px;margin-top:8px;max-width:92%;align-self:flex-start}
        .ask-escalation-query{font-size:.75rem;color:var(--text-muted);background:rgba(10,22,40,.06);padding:6px 10px;border-radius:6px;margin-bottom:8px;line-height:1.4;font-family:var(--font-mono);word-break:break-word}
        .ask-escalation-context{width:100%;border:1px solid var(--border-light);border-radius:8px;padding:8px 10px;font-size:.82rem;font-family:var(--font-body);resize:vertical;min-height:48px;max-height:120px;color:var(--text-body);background:#fff;outline:none;transition:border-color .2s;box-sizing:border-box}
        .ask-escalation-context:focus{border-color:var(--orange)}
        .ask-escalation-context::placeholder{color:var(--text-muted);font-size:.8rem}
        .ask-escalation-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px;align-items:center}
        .ask-escalation-send{padding:6px 18px;background:var(--navy);color:#fff;border:none;border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;font-family:var(--font-body);transition:background .2s}
        .ask-escalation-send:hover{background:#0f2440}
        .ask-escalation-send:disabled{opacity:.5;cursor:default}
        .ask-escalation-cancel{background:none;border:none;color:var(--text-muted);font-size:.78rem;cursor:pointer;text-decoration:underline}
        .ask-escalation-confirmed{font-size:.8rem;color:var(--text-muted);font-style:italic;margin-top:8px;padding:8px 0;align-self:flex-start}
        .esc-badge-wrap{display:inline-flex;align-items:center;gap:4px;cursor:pointer;position:relative;padding:2px 4px}
        .esc-badge-wrap.hidden{display:none}
        .esc-badge{font-family:var(--font-mono);font-size:10px;font-weight:700;color:#fff;background:var(--orange);border-radius:9px;padding:1px 5px;min-width:14px;text-align:center;line-height:14px}
        .esc-stats-row{display:flex;gap:1rem;margin-bottom:1.25rem}
        .esc-filter-row{display:flex;gap:.5rem;margin-bottom:.5rem}
        .esc-card{background:var(--cream);border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.35rem;margin-bottom:.75rem}
        .esc-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}
        .esc-card-client{font-weight:600;color:var(--navy);font-size:.92rem}
        .esc-card-time{font-size:.78rem;color:var(--text-muted);font-family:var(--font-mono)}
        .esc-card-query{font-size:.88rem;color:var(--text);margin-bottom:.65rem;font-style:italic}
        .esc-card-response{font-size:.82rem;color:var(--text-muted);max-height:120px;overflow:hidden;margin-bottom:.65rem;line-height:1.5}
        .esc-card-note{font-size:.8rem;color:var(--text-body);background:rgba(232,119,26,.06);border-left:3px solid var(--orange);padding:6px 10px;border-radius:0 6px 6px 0;margin-bottom:.65rem;line-height:1.5}
        .esc-card-note-label{font-weight:600;color:var(--orange);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px}
        .esc-card-exchange{margin-top:4px;margin-bottom:.65rem}
        .esc-card-exchange summary{font-size:.78rem;color:var(--orange);cursor:pointer;font-weight:600;list-style:none;display:flex;align-items:center;gap:4px}
        .esc-card-exchange summary::-webkit-details-marker{display:none}
        .esc-card-exchange summary::before{content:'\25B6';font-size:.6rem;transition:transform .2s}
        .esc-card-exchange[open] summary::before{transform:rotate(90deg)}
        .esc-card-exchange-body{margin-top:8px;padding:10px 12px;background:rgba(10,22,40,.03);border-radius:8px;font-size:.78rem;line-height:1.5}
        .esc-card-exchange-label{font-weight:600;color:var(--navy);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px}
        .esc-card-exchange-text{color:var(--text-body);margin-bottom:8px;white-space:pre-wrap;word-break:break-word}
        .esc-card-exchange-text:last-child{margin-bottom:0}
        .esc-card-footer{display:flex;justify-content:space-between;align-items:center}
        .esc-card-tickers{font-size:.78rem;color:var(--text-muted);font-family:var(--font-mono)}
        .esc-status-pending{font-size:.75rem;font-weight:600;color:var(--orange);text-transform:uppercase;letter-spacing:.5px}
        .esc-status-resolved{font-size:.75rem;font-weight:600;color:#5a8a6a;text-transform:uppercase;letter-spacing:.5px}
        .esc-resolve-btn{font-family:var(--font-body);font-size:.78rem;font-weight:500;color:#fff;background:var(--navy);border:none;border-radius:6px;padding:.35rem .85rem;cursor:pointer;transition:background .15s}
        .esc-resolve-btn:hover{background:var(--orange)}
        .esc-type-badge{display:inline-block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;padding:2px 8px;border-radius:10px;margin-right:6px;vertical-align:middle}
        .esc-type-search{background:rgba(52,120,198,.12);color:#3478c6}
        .esc-type-call{background:rgba(90,138,106,.12);color:#5a8a6a}
        .esc-type-research{background:rgba(232,119,26,.12);color:var(--orange)}

        /* Contact tab */
        .ct-analysts{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;padding:20px 24px 24px;margin-bottom:28px;background:var(--cream);border:1px solid var(--border);border-radius:14px}
        .ct-analyst{text-align:center;width:105px;cursor:pointer}
        .ct-analyst-photo{width:72px;height:72px;border-radius:50%;object-fit:cover;border:2.5px solid #fff;box-shadow:0 2px 8px rgba(10,22,40,.08);transition:border-color .2s,transform .15s}
        .ct-analyst:hover .ct-analyst-photo{border-color:var(--orange);transform:scale(1.05)}
        .ct-detail-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(10,22,40,.45);z-index:1000;display:flex;align-items:center;justify-content:center;animation:ctFadeIn .2s}
        @keyframes ctFadeIn{from{opacity:0}to{opacity:1}}
        .ct-detail-card{background:#fff;border-radius:16px;box-shadow:0 12px 40px rgba(10,22,40,.18);max-width:480px;width:90%;max-height:85vh;overflow-y:auto;padding:32px 28px 28px;position:relative}
        .ct-detail-close{position:absolute;top:12px;right:16px;font-size:1.4rem;color:var(--text-muted);cursor:pointer;background:none;border:none;line-height:1}
        .ct-detail-close:hover{color:var(--navy)}
        .ct-detail-header{display:flex;align-items:center;gap:20px;margin-bottom:20px}
        .ct-detail-photo{width:88px;height:88px;border-radius:50%;object-fit:cover;border:3px solid var(--cream);box-shadow:0 2px 10px rgba(10,22,40,.1)}
        .ct-detail-name{font-family:var(--font-body);font-size:1.5rem;font-weight:700;color:var(--navy);line-height:1.2}
        .ct-detail-role{font-family:var(--font-body);font-size:.82rem;color:var(--text-muted);margin-top:2px}
        .ct-detail-section{margin-top:18px}
        .ct-detail-section-title{font-family:var(--font-body);font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px}
        .ct-detail-stocks{display:flex;flex-wrap:wrap;gap:6px}
        .ct-detail-stock{font-family:var(--font-body);font-size:.76rem;font-weight:500;background:var(--cream);border:1px solid var(--border);border-radius:8px;padding:4px 10px;color:var(--navy);cursor:pointer;transition:all .15s}
        .ct-detail-stock:hover{border-color:var(--orange);color:var(--orange)}
        .ct-detail-stock.fl{border-left:3px solid var(--orange);font-weight:600}
        .ct-detail-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:12px}
        .ct-detail-stat{text-align:center;padding:10px 8px;background:var(--cream);border-radius:10px}
        .ct-detail-stat-val{font-family:var(--font-mono);font-size:1.3rem;font-weight:700;color:var(--navy)}
        .ct-detail-stat-lbl{font-family:var(--font-body);font-size:.65rem;color:var(--text-muted);margin-top:2px}
        .ct-analyst-initials{display:flex;align-items:center;justify-content:center;background:var(--navy);color:#fff;font-family:var(--font-body);font-size:.9rem;font-weight:600;letter-spacing:.5px}
        .ct-analyst-name{font-family:var(--font-body);font-size:.78rem;font-weight:600;color:var(--navy);margin-top:10px;line-height:1.2}
        .ct-analyst-role{font-size:.65rem;color:var(--text-muted);margin-top:2px;line-height:1.2}
        .ct-analyst-specs{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;margin-top:6px;min-height:20px}
        .ct-analyst-spec{font-family:var(--font-body);font-size:.6rem;font-weight:500;background:#fff;border:1px solid var(--border);border-radius:10px;padding:1px 7px;color:var(--text-muted);white-space:nowrap}
        .ct-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}
        .ct-time-toggle{display:flex;gap:8px;margin-top:8px;margin-bottom:16px;flex-wrap:wrap}
        .ct-time-btn{font-family:var(--font-body);font-size:.82rem;font-weight:500;padding:7px 16px;border-radius:20px;border:1px solid var(--border);background:var(--cream);color:var(--text);cursor:pointer;transition:all .15s}
        .ct-time-btn:hover{border-color:var(--navy)}
        .ct-time-btn.active{background:var(--navy);color:#fff;border-color:var(--navy)}
        .ct-card{background:var(--cream);border:1px solid var(--border);border-radius:12px;padding:2.5rem 1.5rem;text-align:center;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .15s}
        .ct-card:hover{border-color:var(--orange);box-shadow:0 4px 20px rgba(232,119,26,.1);transform:translateY(-2px)}
        .ct-card-icon{width:48px;height:48px;margin:0 auto 16px;color:var(--navy);opacity:.7}
        .ct-card-title{font-family:var(--font-body);font-size:1.15rem;font-weight:700;color:var(--navy);margin-bottom:8px}
        .ct-card-desc{font-size:.88rem;color:var(--text-muted);line-height:1.5;margin-bottom:16px}
        .ct-card-cta{font-size:.82rem;font-weight:600;color:var(--orange)}
        .ct-form-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:2rem}
        .ct-form-back{display:inline-block;font-size:.82rem;color:var(--text-muted);cursor:pointer;margin-bottom:16px;text-decoration:none}
        .ct-form-back:hover{color:var(--orange)}
        .ct-form-title{font-family:var(--font-body);font-size:1.05rem;font-weight:700;color:var(--navy);margin-bottom:20px}
        .ct-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);margin-bottom:6px}
        .ct-topic-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
        .ct-topic-pill{font-family:var(--font-body);font-size:.82rem;font-weight:500;padding:7px 16px;border-radius:20px;border:1px solid var(--border);background:var(--cream);color:var(--text);cursor:pointer;transition:all .15s}
        .ct-topic-pill:hover{border-color:var(--navy)}
        .ct-topic-pill.active{background:var(--navy);color:#fff;border-color:var(--navy)}
        .ct-select{font-family:var(--font-body);font-size:.88rem;width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);margin-bottom:16px;outline:none;transition:border-color .15s}
        .ct-select:focus{border-color:var(--orange)}
        .ct-textarea{font-family:var(--font-body);font-size:.88rem;width:100%;min-height:120px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);resize:vertical;outline:none;transition:border-color .15s;box-sizing:border-box;margin-bottom:16px}
        .ct-textarea:focus{border-color:var(--orange)}
        .ct-submit{font-family:var(--font-body);font-size:.92rem;font-weight:600;width:100%;padding:12px;background:var(--orange);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background .15s}
        .ct-submit:hover{background:#d06a15}
        .ct-submit:disabled{opacity:.5;cursor:not-allowed}
        .ct-confirmation{text-align:center;padding:3rem 1rem}
        .ct-confirmation-icon{width:56px;height:56px;margin:0 auto 16px;color:#5a8a6a}
        .ct-confirmation h3{font-family:var(--font-body);font-size:1.15rem;font-weight:700;color:var(--navy);margin-bottom:8px}
        .ct-confirmation p{font-size:.88rem;color:var(--text-muted);margin-bottom:24px}
        .ct-another-btn{font-family:var(--font-body);font-size:.85rem;font-weight:500;padding:8px 20px;border:1px solid var(--border);border-radius:8px;background:var(--cream);color:var(--navy);cursor:pointer;transition:border-color .15s}
        .ct-another-btn:hover{border-color:var(--orange)}
        .ct-history-title{font-family:var(--font-body);font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:12px}
        .ct-history-item{background:var(--cream);border:1px solid var(--border);border-radius:10px;padding:14px 18px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
        .ct-history-left{flex:1;min-width:0}
        .ct-history-query{font-size:.85rem;color:var(--text);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .ct-history-meta{font-size:.75rem;color:var(--text-muted);font-family:var(--font-mono)}
        .ct-status-pending{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:10px;background:rgba(232,119,26,.12);color:var(--orange)}
        .ct-status-resolved{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:10px;background:rgba(90,138,106,.12);color:#5a8a6a}
        .ct-field-row{margin-bottom:16px}
        @media(max-width:768px){.ct-cards{grid-template-columns:1fr}}

        /* Ask PSA: Stock popup */
        .ask-stock-popup{position:fixed;z-index:200;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 32px rgba(10,22,40,.12);padding:16px 18px;width:260px;opacity:0;pointer-events:none;transition:opacity .15s}
        .ask-stock-popup.visible{opacity:1;pointer-events:auto}
        .ask-stock-popup-name{font-size:15px;font-weight:700;color:var(--navy-mid);margin-bottom:2px}
        .ask-stock-popup-meta{font-size:11px;color:var(--text-muted);margin-bottom:10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
        .ask-stock-popup-meta .d{width:1px;height:10px;background:var(--border)}
        .ask-stock-popup-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:12px}
        .ask-stock-popup-row .lbl{color:var(--text-muted)}
        .ask-stock-popup-row .val{font-family:var(--font-mono);font-weight:500;color:var(--navy)}
        .ask-stock-popup-link{display:block;text-align:center;margin-top:10px;padding:7px 0;font-size:11px;font-weight:600;color:#fff;background:var(--navy-mid);border-radius:6px;cursor:pointer;transition:background .15s;text-decoration:none}
        .ask-stock-popup-link:hover{background:var(--orange)}
        .ask-stock-tag{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:3px}
        .ask-stock-tag-fl{background:rgba(45,138,86,.08);color:var(--green)}
        .ask-stock-tag-p{background:rgba(46,109,164,.08);color:var(--blue)}

        /* Ask PSA: Stocks mentioned strip */
        .ask-stocks{margin:16px 0 20px}
        .ask-stocks-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:8px}
        .ask-stocks-grid{display:flex;flex-wrap:wrap;gap:8px}
        .ask-stock-chip{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--border);border-radius:8px;padding:8px 14px;cursor:pointer;transition:all .15s;min-width:0}
        .ask-stock-chip:hover{border-color:var(--orange);box-shadow:0 2px 8px rgba(232,119,26,.08);transform:translateY(-1px)}
        .ask-stock-name{font-size:13px;font-weight:600;color:var(--navy-mid);white-space:nowrap}
        .ask-stock-ticker{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);white-space:nowrap}
        .ask-stock-price{font-family:var(--font-mono);font-size:13px;font-weight:500;color:var(--navy);white-space:nowrap;margin-left:auto}
        .ask-stock-chg{font-family:var(--font-mono);font-size:11px;font-weight:500;white-space:nowrap}
        .ask-stock-chg.up{color:var(--green)}.ask-stock-chg.dn{color:#c0392b}
        .ask-stock-divider{width:1px;height:20px;background:var(--border);flex-shrink:0}

        /* Legacy/shared classes kept for dashboard compat */
        .source-badge{font-size:.64rem;padding:.18rem .55rem;border-radius:2px;color:#fff;font-weight:500;letter-spacing:.4px;white-space:nowrap}
        .badge-daily{background:var(--green)}.badge-weekly{background:var(--blue)}.badge-company{background:var(--orange)}.badge-strategy{background:var(--purple)}
        .download-btn{padding:.3rem .7rem;font-size:.75rem;color:var(--orange);border:1px solid var(--orange-border);background:none;border-radius:2px;cursor:pointer;font-family:var(--font-body);transition:all .15s;margin-left:.75rem}.download-btn:hover{background:var(--orange-light);border-color:var(--orange)}
        .searching-indicator{text-align:center;padding:2rem;color:var(--text-muted);font-size:.88rem}
        .answer-text{font-size:13.5px;line-height:1.7;color:var(--text-body);padding:1.75rem;background:#fff;border:1px solid var(--border);border-left:3.5px solid var(--orange);border-radius:3px}
        .answer-text p{margin-bottom:.85rem}.answer-text p:last-child{margin-bottom:0}
        .sources-dropdown{border:1px solid var(--border-light);border-radius:3px;background:#fff}
        .sources-toggle{padding:.7rem 1rem;font-size:.7rem;text-transform:uppercase;letter-spacing:1.8px;color:var(--text-muted);cursor:pointer;font-weight:500;list-style:none;display:flex;align-items:center;gap:.5rem}
        .sources-toggle::-webkit-details-marker{display:none}
        .sources-toggle::before{content:'';display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--text-muted);transition:transform .2s}
        details[open] .sources-toggle::before{transform:rotate(180deg)}
        details[open] .sources-toggle{border-bottom:1px solid var(--border-light)}
        .sources-dropdown>div{padding:0 .6rem .6rem}
        .source-item{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;background:#fff;border:1px solid var(--border-light);border-radius:3px;margin-bottom:.35rem;transition:border-color .15s}
        .source-item:hover{border-color:var(--border)}.source-info{flex:1;margin-left:.6rem}.source-name{font-size:.88rem;color:var(--text-dark);font-weight:500}.source-meta{font-size:.75rem;color:var(--text-muted);margin-top:.15rem}

        /* ===== SECTION TITLES (shared) ===== */
        .section-title{font-family:var(--font-body);font-size:1.85rem;font-weight:700;color:var(--navy);margin-bottom:.75rem;letter-spacing:.3px;border-bottom:2px solid var(--orange);padding-bottom:.45rem;display:inline-block}
        .section-subtitle{font-size:.82rem;color:var(--text-muted);margin-top:0;margin-bottom:1.25rem}
        .em-header{margin-bottom:1.25rem}
        .em-title{font-family:var(--font-body);font-size:1.85rem;font-weight:700;color:var(--navy);letter-spacing:.3px;border-bottom:2px solid var(--orange);padding-bottom:.45rem;display:inline-block;margin-bottom:.3rem}
        .em-subtitle{font-size:.82rem;color:var(--text-muted);margin:0}
        /* ===== DASHBOARD ===== */
        .company-search-input{width:100%;padding:.85rem 1.1rem;background:#fff;border:1.5px solid var(--border);border-radius:4px;color:var(--text-dark);font-family:var(--font-body);font-size:.95rem;box-shadow:0 1px 4px rgba(0,0,0,.03)}.company-search-input:focus{outline:none;border-color:var(--orange)}
        .company-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--border);border-top:none;border-radius:0 0 4px 4px;max-height:400px;overflow-y:auto;z-index:50;display:none;box-shadow:0 4px 12px rgba(0,0,0,.08)}
        .company-option{padding:.55rem 1.1rem;font-size:.88rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:var(--text-dark);gap:.5rem}.company-option:hover{background:var(--orange-light)}.company-option .co-ticker{color:var(--orange);font-size:.8rem;white-space:nowrap}
        .dd-group-label{padding:.4rem 1.1rem .25rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:600;background:var(--cream);border-top:1px solid var(--border);position:sticky;top:0;z-index:1}
        .dd-group-label:first-child{border-top:none}
        .co-badges{display:flex;gap:.3rem;align-items:center;flex-shrink:0}
        .co-level{font-size:.62rem;padding:.1rem .35rem;border-radius:2px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
        .co-level-p{background:#e3f2e8;color:#2d8a56}.co-level-s{background:#e8edf5;color:#2e6da4}.co-level-t{background:#f0ecf5;color:#7c5cbf}
        .co-fl{font-size:.62rem;padding:.1rem .35rem;border-radius:2px;font-weight:600;background:#fef3dd;color:#b8860b}
        .dashboard-header{display:flex;align-items:baseline;gap:.85rem;margin-bottom:1.25rem;flex-wrap:wrap}
        .dashboard-header h3{font-family:var(--font-body);font-size:1.8rem;font-weight:600;color:var(--navy)}
        .dashboard-ticker{font-size:.9rem;color:var(--orange);font-weight:500}.dashboard-analyst{font-size:.82rem;color:var(--text-muted);font-style:italic}
        .metric-cards{display:flex;gap:.85rem;margin-bottom:1.75rem}
        .metric-card{flex:1;padding:1.1rem 1.25rem;background:#fff;border:1px solid var(--border-light);border-radius:4px;border-top:3px solid var(--orange)}
        .metric-label{font-size:.65rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:.35rem}
        .metric-value{font-family:var(--font-body);font-size:1.8rem;font-weight:600;color:var(--navy)}
        .metric-sub{font-size:.72rem;color:var(--text-muted);margin-top:.15rem}

        /* ===== COVERAGE TAB ===== */
        /* Hub header */
        .covhub-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
        .covhub-title{font-family:var(--font-body);font-size:1.75rem;color:var(--navy);font-weight:700;letter-spacing:-.02em;line-height:1.15}
        .covhub-stats{display:flex;gap:1.5rem;margin-top:4px}
        .covhub-stat{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted)}
        .covhub-stat b{color:var(--navy);font-weight:700}
        .covhub-search{background:#fff;border:1px solid var(--border);border-radius:8px;padding:8px 14px;font-size:13px;font-family:var(--font-body);width:240px;outline:none;color:var(--text-body);margin-top:2px}
        .covhub-search:focus{border-color:var(--orange)}
        .covhub-search::placeholder{color:var(--text-light)}
        /* Theme cards */
        .covhub-themes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:1.75rem}
        @media(max-width:1200px){.covhub-themes{grid-template-columns:repeat(2,1fr)}}
        @media(max-width:600px){.covhub-themes{grid-template-columns:1fr}}
        .theme-card{border-radius:10px;padding:24px 26px;cursor:pointer;transition:all .2s;border:1px solid transparent;border-left:3px solid currentColor;position:relative;min-height:90px}
        .theme-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(10,22,40,.12)}
        .theme-card-name{font-family:var(--font-body);font-size:16px;font-weight:700;margin-bottom:4px;letter-spacing:-.01em}
        .theme-card-tagline{font-size:12px;font-family:var(--font-body);opacity:.7;line-height:1.4;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
        .theme-card-tagline-edit{display:flex;align-items:center;gap:4px;margin-bottom:8px}
        .theme-card-tagline-edit input{font-size:11px;font-family:var(--font-body);border:1px solid currentColor;border-radius:4px;padding:3px 6px;background:rgba(255,255,255,.6);color:inherit;width:100%;outline:none}
        .theme-card-tagline-edit button{font-size:10px;font-weight:600;padding:3px 8px;border:none;border-radius:4px;cursor:pointer;white-space:nowrap}
        .theme-card-edit-btn{position:absolute;right:16px;top:44px;background:rgba(255,255,255,.5);border:none;cursor:pointer;font-size:12px;opacity:.4;transition:opacity .15s;padding:2px 5px;border-radius:4px;z-index:2}
        .theme-card:hover .theme-card-edit-btn{opacity:.7}
        .theme-card-edit-btn:hover{opacity:1!important}
        .theme-card-stock-btn{position:absolute;right:16px;top:62px;background:rgba(255,255,255,.5);border:none;cursor:pointer;font-size:14px;opacity:.4;transition:opacity .15s;padding:1px 5px;border-radius:4px;z-index:2;font-weight:700;line-height:1}
        .theme-card:hover .theme-card-stock-btn{opacity:.7}
        .theme-card-stock-btn:hover{opacity:1!important}
        .ts-stock-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:6px;margin-bottom:2px;background:var(--page-bg)}
        .ts-stock-row:hover{background:#eee}
        .ts-remove-btn{background:none;border:none;color:#a02020;cursor:pointer;font-size:16px;font-weight:700;padding:0 4px;line-height:1}
        .ts-remove-btn:hover{color:#c00}
        .ts-add-btn{background:var(--orange);color:#fff;border:none;cursor:pointer;font-size:.72rem;font-weight:600;padding:4px 12px;border-radius:4px;white-space:nowrap}
        .ts-add-btn:hover{opacity:.85}
        .ts-search-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;font-size:.82rem;cursor:default;border-bottom:1px solid var(--page-bg)}
        .ts-search-row:hover{background:rgba(232,119,26,.05)}
        .theme-card-meta{font-size:11px;opacity:.7;margin-bottom:8px;font-family:var(--font-mono);font-weight:500}
        .theme-card-stocks{display:flex;flex-wrap:wrap;gap:4px}
        .theme-pill{font-size:10px;font-weight:600;padding:3px 9px;border-radius:10px;background:rgba(255,255,255,.4);font-family:var(--font-mono);letter-spacing:.02em}
        .theme-card-perf{position:absolute;right:18px;top:24px;font-family:var(--font-mono);font-size:.72rem;font-weight:600}
        .theme-card-perf.up{color:#1a6b3e}.theme-card-perf.dn{color:#a02020}
        .theme-card-arrow{position:absolute;right:18px;bottom:18px;font-size:14px;opacity:.3;transition:opacity .15s}
        .theme-card:hover .theme-card-arrow{opacity:.7}
        .covhub-theme-link{font-size:13px;font-weight:600;color:var(--orange);margin-bottom:1.75rem;cursor:pointer;transition:opacity .15s;font-family:var(--font-body);display:inline-block;padding:6px 0;border-bottom:1px solid rgba(232,119,26,.3)}
        .covhub-theme-link:hover{opacity:.75}
        /* Sector pills (compact row) */
        .covhub-sector-row{display:flex;align-items:center;gap:12px;margin-bottom:1.75rem;flex-wrap:wrap}
        .covhub-sector-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--navy);white-space:nowrap;padding-left:10px;border-left:3px solid var(--orange)}
        .covhub-sector-pills{display:flex;flex-wrap:wrap;gap:8px}
        .covhub-sector-pill{font-size:12px;font-weight:500;padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--navy-mid,#2a3f5f);cursor:pointer;transition:all .15s;font-family:var(--font-body);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
        .covhub-sector-pill:hover{box-shadow:0 2px 8px rgba(10,22,40,.1);border-color:var(--orange)}
        .covhub-sector-pill .sp-n{font-size:9px;font-weight:700;color:var(--text-muted);background:rgba(10,22,40,.05);padding:1px 5px;border-radius:4px}
        .covhub-sector-pill .sp-chg{font-family:var(--font-mono);font-size:10px;font-weight:600}
        .covhub-sector-pill .sp-chg.up{color:var(--green)}.covhub-sector-pill .sp-chg.dn{color:#c0392b}
        .covhub-all-btn{font-family:var(--font-body);font-size:.78rem;font-weight:600;color:var(--orange);background:none;border:1px solid var(--orange);border-radius:6px;padding:6px 14px;cursor:pointer;transition:all .15s;white-space:nowrap;margin-top:4px}
        .covhub-all-btn:hover{background:var(--orange);color:#fff}
        /* Day Chg column */
        .cov-chg{font-family:var(--font-mono);font-size:12px;font-weight:500}
        .cov-chg.up{color:var(--green)}.cov-chg.dn{color:#c0392b}
        /* All Stocks table section (contained scrollable) */
        .covhub-table-section{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:2rem;background:#fff;box-shadow:0 1px 3px rgba(10,22,40,.06)}
        .covhub-table-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--cream);border-bottom:1px solid var(--border);flex-wrap:wrap}
        .covhub-table-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--navy);margin-right:8px;white-space:nowrap}
        .covhub-table-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
        .covhub-filter-group{display:flex;align-items:center;gap:4px}
        .covhub-filter-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);white-space:nowrap;margin-right:2px}
        .covhub-filter-pills{display:flex;align-items:center;gap:3px}
        .covhub-filter-sep{width:1px;height:18px;background:var(--border);margin:0 4px;flex-shrink:0}
        .covhub-table-scroll{max-height:520px;overflow-y:auto}
        .covhub-table-scroll::-webkit-scrollbar{width:6px}
        .covhub-table-scroll::-webkit-scrollbar-track{background:transparent}
        .covhub-table-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
        tr.focus-row td:first-child{border-left:3px solid var(--orange)}
        tr.focus-row{background:rgba(232,119,26,.06)}
        tr.focus-row:hover{background:rgba(232,119,26,.1)!important}
        /* Theme detail view */
        .theme-hero{padding:28px 32px 24px;border-radius:12px;margin-bottom:2.5rem;position:relative}
        .theme-hero-title{font-family:var(--font-body);font-size:1.75rem;font-weight:700;letter-spacing:-.02em;line-height:1.15}
        .theme-hero-meta{display:flex;align-items:center;gap:14px;margin-top:6px;font-size:12px;flex-wrap:wrap}
        .theme-hero-meta .sep{width:1px;height:12px;opacity:.35}
        .theme-hero-perf{font-family:var(--font-mono);font-size:13px;font-weight:600}
        .theme-editorial{position:relative;padding-left:20px;margin-bottom:3rem}
        .theme-editorial::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:2px;background:var(--theme-accent, var(--border))}
        .theme-editorial-age{font-size:11px;color:var(--text-muted);margin-bottom:12px;font-family:var(--font-mono)}
        .theme-editorial-body{font-size:13.5px;line-height:1.7;color:var(--text-body)}
        .theme-editorial-body p{margin:0 0 1em}
        .theme-editorial-body strong{color:var(--navy)}
        .theme-stocks-section{margin-top:1rem}
        /* Legacy datebar compat (sector detail uses this) */
        .cov-datebar{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:2rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
        .cov-datebar-title{font-family:var(--font-body);font-size:1.05rem;color:var(--navy);font-weight:600}
        .cov-datebar-stats{display:flex;gap:1.5rem}
        .cov-datebar-stat{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted)}
        .cov-datebar-stat b{color:var(--navy);font-weight:700}
        /* Sector cards grid */
        .cov-sg{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:2.25rem 0}
        .cov-sc{background:#fff;border-radius:12px;border:1px solid var(--border);border-top:3px solid transparent;padding:24px;cursor:pointer;transition:all .2s;box-shadow:0 1px 3px rgba(10,22,40,.06),0 1px 2px rgba(10,22,40,.04);position:relative}
        .cov-sc::after{content:'\203A';position:absolute;right:16px;top:24px;font-size:16px;color:var(--border);transition:color .15s;font-weight:300}
        .cov-sc:hover::after{color:var(--orange)}
        .cov-sc:hover{border-color:var(--orange);box-shadow:0 4px 12px rgba(10,22,40,.1);transform:translateY(-2px)}
        .cov-sc.active{border-color:var(--orange);box-shadow:0 4px 12px rgba(232,119,26,.12)}
        .cov-sc.has-fl{border-top-color:var(--orange)}
        .cov-sc.other-card{background:var(--cream)}
        .cov-sc-name{font-family:var(--font-body);font-size:15px;font-weight:600;color:#0f2440;margin-bottom:4px}
        .cov-sc-meta{font-size:12px;color:var(--text-muted);margin-bottom:10px}
        .cov-sc-perf{position:absolute;right:16px;top:26px;font-family:var(--font-mono);font-size:.75rem;font-weight:600}
        .cov-sc-perf.up{color:var(--green)}.cov-sc-perf.dn{color:#c0392b}
        .cov-sc-stats{display:flex;gap:12px}
        .cov-sc-stat{text-align:center;flex:1}
        .cov-sc-sl{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}
        .cov-sc-sv{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--navy)}
        /* Filter bar */
        .cov-fb{display:flex;align-items:center;gap:16px;margin-bottom:2rem;flex-wrap:wrap;background:var(--cream);border:1px solid var(--border-light,#ebe7e0);border-radius:10px;padding:1.25rem}
        .cov-fg{display:flex;align-items:center;gap:6px;background:transparent;border-radius:8px;padding:4px 0}
        .cov-fl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--navy-mid)}
        .cov-fc{font-size:11px;font-weight:500;padding:4px 10px;border-radius:14px;border:1px solid var(--border);background:#fff;color:var(--text-body);cursor:pointer;transition:all .15s;white-space:nowrap;font-family:var(--font-body)}
        .cov-fc:hover{border-color:var(--orange);color:var(--orange)}
        .cov-fc.on{background:var(--orange);color:#fff;border-color:var(--orange)}
        .cov-fc.focus-pill.on{background:var(--green);color:#fff;border-color:var(--green)}
        .cov-fc .n{font-size:9px;font-weight:700;background:rgba(0,0,0,.08);color:inherit;padding:1px 5px;border-radius:8px;margin-left:6px;display:inline-block;line-height:1.3}
        .cov-fc.on .n{background:rgba(255,255,255,.25);color:#fff}
        .cov-fd{display:none}
        .cov-search-wrap{position:relative;display:flex;align-items:center}
        .cov-search-icon{position:absolute;left:10px;color:var(--text-muted);pointer-events:none}
        .cov-fi{background:#fff;border:1px solid var(--border);border-radius:8px;padding:7px 10px 7px 30px;font-size:12px;font-family:var(--font-body);width:220px;outline:none;color:var(--text-body);transition:border-color .15s,width .2s}
        .cov-fi:focus{border-color:var(--orange);width:280px}
        .cov-fi::placeholder{color:var(--text-light)}
        .cov-result-text{font-size:11px;color:var(--text-muted);white-space:nowrap;margin-left:auto}
        /* Section labels (shared Coverage + Earnings) */
        .section-lbl{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--navy);padding-left:10px;border-left:3px solid var(--orange);margin:20px 0 12px}
        /* Table sector group headers */
        .cov-group-hdr td{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--navy-mid);background:var(--cream);padding:10px 12px;border-bottom:2px solid var(--border)}
        /* Table */
        .cov-tw{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;overflow-x:auto;box-shadow:0 1px 3px rgba(10,22,40,.06),0 1px 2px rgba(10,22,40,.04);margin-bottom:2rem}
        .cov-ct{width:100%;border-collapse:collapse}
        .cov-ct thead th{font-family:var(--font-body);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);padding:12px 16px;text-align:left;border-bottom:2px solid var(--border);cursor:pointer;white-space:nowrap;user-select:none;background:var(--cream)}
        .cov-ct thead th.r{text-align:right}
        .cov-ct thead th:hover{color:var(--orange)}
        .cov-ct thead th.sorted{color:var(--orange)}
        .cov-ct tbody td{padding:12px 16px;border-bottom:1px solid rgba(222,218,211,.4);font-size:13px;vertical-align:middle}
        .cov-ct tbody td.r{text-align:right}
        .cov-ct tbody tr.cov-data-row{cursor:pointer;transition:background .1s}
        .cov-ct tbody tr.cov-data-row:hover{background:rgba(232,119,26,.03)}
        .cov-ct tbody tr.cov-data-row.focus-row{background:rgba(45,138,86,.04)}
        .cov-ct tbody tr.cov-data-row.focus-row:hover{background:rgba(232,119,26,.03)}
        .cov-sn{font-size:14px;font-weight:600;color:var(--navy-mid)}
        .cov-st{font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}
        .cov-analyst-cell{font-size:12px;color:#5a6070}
        .cov-lp{font-size:10px;font-weight:600;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.4px;display:inline-block}
        .cov-lp-p{background:#2d8a56;color:#fff}
        .cov-lp-s{background:#2e6da4;color:#fff}
        .cov-lp-t{background:#6b6b6b;color:#fff}
        .cov-lp-f{background:rgba(45,138,86,.08);color:var(--green);margin-left:4px}
        .cov-pc{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--navy)}
        .cov-mc{font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}
        @media(max-width:1200px){.cov-sg{grid-template-columns:repeat(3,1fr)}}
        @media(max-width:900px){.cov-sg{grid-template-columns:repeat(2,1fr)}}
        @media(max-width:600px){.cov-sg{grid-template-columns:1fr}}

        /* ===== COVERAGE SUB-VIEW NAVIGATION ===== */
        .cov-view{display:none}
        .cov-view.active{display:block}
        .cov-back-row{display:flex;align-items:center;gap:12px;padding:0 0 16px}
        .cov-back-btn{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-body);font-size:13px;color:var(--text-muted);background:none;border:1px solid var(--border);border-radius:6px;padding:5px 12px 5px 8px;cursor:pointer;transition:all .15s;letter-spacing:.2px}
        .cov-back-btn:hover{color:var(--navy);border-color:var(--navy);background:rgba(10,22,40,.03)}
        .cov-back-btn svg{width:14px;height:14px;flex-shrink:0}
        .cov-bc{padding:0;font-size:12px;color:var(--text-muted)}
        .cov-bc a{color:var(--text-muted);text-decoration:none;cursor:pointer}
        .cov-bc a:hover{color:var(--orange)}
        .cov-bc .cov-bc-sep{margin:0 6px;opacity:.5}
        .cov-bc .cov-bc-cur{color:var(--navy-mid);font-weight:600}

        /* ===== SECTOR DETAIL VIEW ===== */
        .sector-hero{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}
        .sector-name{font-family:var(--font-body);font-size:1.75rem;font-weight:700;color:var(--navy);letter-spacing:-.02em;line-height:1.15}
        .sector-meta{display:flex;align-items:center;gap:14px;margin-top:6px;font-size:12px;color:var(--text-muted);flex-wrap:wrap}
        .sector-meta .sep{width:1px;height:12px;background:var(--border)}
        .sector-kpi,.co-kpi{background:var(--navy-deep,#0a1628);gap:2px;border-radius:12px;overflow:hidden;margin-bottom:2rem;box-shadow:0 1px 3px rgba(10,22,40,.06),0 1px 2px rgba(10,22,40,.04)}
        .sector-kpi{display:grid;grid-template-columns:repeat(5,1fr)}
        .sk{background:#fff;padding:16px;text-align:center}
        .sector-kpi .sk,.co-kpi .sk{background:var(--navy-deep,#0a1628);padding:18px 16px}
        .sk-l{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.7px;color:var(--text-muted);margin-bottom:3px}
        .sector-kpi .sk-l,.co-kpi .sk-l{color:rgba(255,255,255,.5)}
        .sk-v{font-family:var(--font-mono);font-size:20px;font-weight:500;color:var(--navy)}
        .sector-kpi .sk-v,.co-kpi .sk-v{color:#fff}
        .sk-usd{font-size:13px;font-weight:400;color:rgba(255,255,255,.5)}
        .sk-s{font-size:10px;margin-top:2px}
        .sector-kpi .sk-s,.co-kpi .sk-s{color:rgba(255,255,255,.6)}
        .sk-s.up{color:var(--green)}.sk-s.dn{color:#c0392b}
        .sector-kpi .sk-s.up,.co-kpi .sk-s.up{color:#6fcf97}
        .sector-kpi .sk-s.dn,.co-kpi .sk-s.dn{color:#ff6b6b}
        .sector-grid{display:grid;grid-template-columns:7fr 5fr;gap:2rem}
        .sector-right{align-self:start}
        /* Widget card (reused by sector + company) */
        .wg{background:#fff;border-radius:12px;border:1px solid var(--border);box-shadow:0 1px 3px rgba(10,22,40,.06),0 1px 2px rgba(10,22,40,.04);overflow:hidden;margin-bottom:1.5rem}
        .wg--primary{border-left:3px solid var(--orange)}
        .wg-h{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--cream)}
        .wg-t{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--navy-mid)}
        .wg-b{padding:18px}
        .wg-bdg{font-size:10px;font-weight:600;padding:2px 8px;border-radius:4px}
        .wg-bdg-g{background:rgba(45,138,86,.08);color:var(--green)}
        .wg-bdg-n{background:rgba(107,107,107,.08);color:var(--text-muted)}
        .wg-bdg-o{background:rgba(232,119,26,.12);color:var(--orange)}
        /* Sector commentary */
        .sc-text{font-size:13.5px;line-height:1.7;color:var(--text-body);margin-bottom:12px}
        .sc-text strong{color:var(--navy-mid)}
        .sc-src{font-size:11px;color:var(--text-muted);font-style:italic}
        .sc-divider{border:none;border-top:1px solid var(--border);margin:14px 0}
        /* Sector commentary v2 */
        .sc-stance{display:inline-flex;align-items:center;gap:7px;margin-bottom:14px;padding:5px 14px 5px 10px;border-radius:20px;background:#f0f1f3;border:1px solid #e0ddd8;font-family:var(--font-body);font-size:12.5px;font-weight:600;color:#4a4a4a;line-height:1.2}
        .sc-stance-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--orange)}
        .sc-stance--pos{background:#eef7f0;border-color:#c3dfc9}.sc-stance--pos .sc-stance-dot{background:#1a7a32}
        .sc-stance--neg{background:#fdf0ee;border-color:#e8c8c4}.sc-stance--neg .sc-stance-dot{background:#c0392b}
        .sc-stance--neu{background:#fdf8ec;border-color:#e5dbb8}.sc-stance--neu .sc-stance-dot{background:#d4a017}
        .sc-num{font-family:var(--font-mono);font-size:12.5px;font-weight:500;color:var(--navy)}
        .sc-num-up{color:#1a7a32}.sc-num-dn{color:#b52828}
        .sc-cmt p{font-size:13.5px;line-height:1.7;color:var(--text-body);margin-bottom:14px}
        .sc-cmt p:last-child{margin-bottom:0}
        .sc-cmt strong{color:var(--navy);font-weight:600}
        .sc-cmt .citation{color:#9a9a9a;font-size:11.5px;font-style:italic;border-bottom:none}
        .sc-cmt .citation:hover{color:var(--orange);border-bottom:none}
        .sc-risk{border-left:3px solid var(--orange);background:#fdf9f5;padding:12px 14px;margin-top:16px;border-radius:0 4px 4px 0}
        .sc-risk-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--orange);font-weight:600;margin-bottom:4px}
        .sc-risk p{font-size:13.5px;line-height:1.7;color:var(--text-body);margin-bottom:0}
        .sc-risk .citation{color:#9a9a9a;font-size:11.5px;font-style:italic;border-bottom:none}
        .sc-sources{margin-top:16px;padding-top:12px;border-top:1px solid #edeae6}
        .sc-sources-toggle{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#aaa;cursor:pointer;background:none;border:none;padding:0;display:flex;align-items:center;gap:5px}
        .sc-sources-toggle:hover{color:var(--navy)}
        .sc-sources-arrow{transition:transform .2s;font-size:9px;display:inline-block}
        .sc-sources-toggle.open .sc-sources-arrow{transform:rotate(90deg)}
        .sc-sources-list{display:none;margin-top:8px;list-style:none;padding:0}
        .sc-sources-list.visible{display:block}
        .sc-sources-list li{font-size:11px;color:#aaa;padding:2px 0}
        .sc-sources-list li a{color:#999;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}
        .sc-sources-list li a:hover{color:var(--orange)}
        /* Strategy cards grid */
        .strat-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin:0 0 1.75rem;align-items:start}
        @media(max-width:768px){.strat-grid{grid-template-columns:1fr}}
        .strat-card{background:#fff;border:1px solid var(--border);border-radius:12px;border-left:3px solid var(--orange);cursor:pointer;transition:box-shadow .2s,transform .15s;overflow:hidden}
        .strat-card:hover{box-shadow:0 4px 16px rgba(10,22,40,.1);transform:translateY(-1px)}
        .strat-card-h{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:linear-gradient(135deg,#0f2440 0%,#162d4a 100%);border-bottom:1px solid rgba(255,255,255,.06)}
        .strat-card-t{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.9px;color:#fff}
        .strat-card-age{font-size:9px;font-weight:600;padding:2px 7px;border-radius:3px;background:rgba(232,119,26,.2);color:#f5a560}
        .strat-card-body{padding:12px 16px 10px;font-size:13.5px;line-height:1.7;color:var(--text-body)}
        .strat-card-foot{display:flex;align-items:center;justify-content:space-between;padding:4px 14px 8px;border-top:1px solid var(--border)}
        .strat-card-src{font-size:9px;color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.02em}
        .strat-card-arrow{font-size:14px;color:var(--orange);font-weight:700;transition:transform .2s}
        .strat-card:hover .strat-card-arrow{transform:translateX(3px)}
        .strat-card--smallcap{border-left-color:#5a4a2f}
        .strat-card--smallcap .strat-card-h{background:linear-gradient(135deg,#3d3020 0%,#5a4a2f 100%)}
        /* Strategy detail view */
        .strat-hero{margin-bottom:24px}
        .strat-hero-title{font-family:var(--font-body);font-size:2rem;font-weight:700;color:var(--navy)}
        .strat-hero-sub{font-size:12px;color:var(--text-muted);margin-top:4px}
        .strat-evolution{margin-top:24px}
        /* Unified sector/theme detail layout: PSA view full-width on top, then
           coverage-stocks + (optional) recent-research side by side as matched-height
           scroll boxes with a sticky header — matches the homepage All-Stocks card so
           lists don't draw endlessly down. Commentary/PSA-view prose is left free. */
        /* Clickable theme tag on sector stock rows — jumps to the theme page
           (lateral cross-link; stopPropagation keeps the row's company nav intact) */
        .sec-theme-chip{display:inline-block;font-size:9px;font-weight:600;padding:2px 7px;border-radius:8px;margin-left:6px;cursor:pointer;transition:filter .12s,box-shadow .12s}
        .sec-theme-chip:hover{filter:brightness(.94);box-shadow:0 0 0 1.5px rgba(10,22,40,.18)}
        .sector-cols{display:grid;grid-template-columns:1.5fr 1fr;gap:2rem;align-items:start}
        @media(max-width:1100px){.sector-cols{grid-template-columns:1fr}}
        .sec-stocks-wg .wg-b,.sec-research-wg .wg-b,.theme-stocks-section .wg-b{max-height:560px;overflow-y:auto}
        .sec-stocks-wg .sec-stocks-table thead th,.theme-stocks-section .sec-stocks-table thead th{position:sticky;top:0;z-index:2;background:#fff}
        .sec-stocks-wg .wg-b::-webkit-scrollbar,.sec-research-wg .wg-b::-webkit-scrollbar,.theme-stocks-section .wg-b::-webkit-scrollbar{width:6px}
        .sec-stocks-wg .wg-b::-webkit-scrollbar-track,.sec-research-wg .wg-b::-webkit-scrollbar-track,.theme-stocks-section .wg-b::-webkit-scrollbar-track{background:transparent}
        .sec-stocks-wg .wg-b::-webkit-scrollbar-thumb,.sec-research-wg .wg-b::-webkit-scrollbar-thumb,.theme-stocks-section .wg-b::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
        /* Evolution timeline — vertical editorial */
        .evo-tl-span{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--text-muted);letter-spacing:.04em;margin-bottom:14px}
        .evo-tl{position:relative;padding:0}
        .evo-tl-entry{display:grid;grid-template-columns:20px 1fr;gap:0 12px;position:relative;padding:12px 0}
        .evo-tl-open{padding-bottom:16px}
        .evo-tl-marker{align-self:stretch;display:flex;flex-direction:column;align-items:center;position:relative}
        .evo-tl-marker::after{content:'';position:absolute;top:20px;bottom:-12px;width:1px;background:var(--border)}
        .evo-tl-entry:last-child .evo-tl-marker::after{display:none}
        .evo-tl-node{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px;position:relative;z-index:1}
        .evo-tl-current .evo-tl-node{width:10px;height:10px;margin-top:4px;box-shadow:0 0 0 3px rgba(26,122,58,.12)}
        .evo-tl-content{min-width:0}
        .evo-tl-head{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:0;transition:opacity .15s}
        .evo-tl-head:hover{opacity:.65}
        .evo-tl-meta{display:flex;align-items:center;gap:8px}
        .evo-tl-date{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--navy);letter-spacing:.02em}
        .evo-tl-stance{font-family:var(--font-body);font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
        .evo-tl-current-label{font-family:var(--font-body);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--navy);opacity:.5}
        .evo-tl-arrow{width:12px;height:12px;flex-shrink:0;color:var(--text-muted);transition:transform .2s ease}
        .evo-tl-open .evo-tl-arrow{transform:rotate(180deg)}
        .evo-tl-body{max-height:0;overflow:hidden;transition:max-height .3s ease,opacity .2s ease;opacity:0}
        .evo-tl-open .evo-tl-body{max-height:800px;opacity:1}
        .evo-tl-text{font-family:var(--font-body);font-size:13.5px;line-height:1.7;color:var(--text-body);padding-top:10px}
        .evo-tl-text p{margin:0 0 8px}.evo-tl-text p:last-child{margin-bottom:0}
        .evo-tl-text strong{color:var(--navy-mid)}
        .evo-tl-shift{display:grid;grid-template-columns:20px 1fr;gap:0 12px;padding:4px 0}
        .evo-tl-shift-line{align-self:stretch;display:flex;justify-content:center;position:relative}
        .evo-tl-shift-line::after{content:'';position:absolute;top:0;bottom:0;width:1px;background:var(--border)}
        .evo-tl-shift-label{font-family:var(--font-body);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:4px 0;align-self:center}
        .strat-docs-btn{background:var(--orange);color:#fff;border:none;padding:8px 20px;border-radius:6px;font-size:12px;font-weight:600;letter-spacing:.4px;cursor:pointer;transition:opacity .2s}
        .strat-docs-btn:hover{opacity:.85}
        .mkt-cards{display:flex;gap:12px;margin-bottom:20px}
        @media(max-width:700px){.mkt-cards{flex-wrap:wrap}}
        .mkt-card{flex:1;background:#fff;border:1px solid var(--border);border-radius:8px;padding:12px 16px;min-width:0}
        .mkt-card-name{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-family:var(--font-mono);margin-bottom:4px}
        .mkt-card-price{font-size:20px;font-weight:700;color:var(--navy);font-family:var(--font-mono);letter-spacing:-.02em}
        .mkt-card-chg{font-size:11px;font-weight:600;font-family:var(--font-mono);margin-top:2px}
        .mkt-up{color:#2d8a56}
        .mkt-dn{color:#c0392b}
        /* Recent research items */
        .ri{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(222,218,211,.4);cursor:pointer;transition:background .15s}
        .ri:hover{background:rgba(232,119,26,.04)}
        .ri:last-child{border-bottom:none}
        .rb{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;padding:3px 7px;border-radius:4px;min-width:44px;text-align:center;flex-shrink:0}
        .rb-d{background:rgba(45,138,86,.08);color:var(--green)}
        .rb-w{background:rgba(46,109,164,.08);color:#2e6da4}
        .rb-r{background:rgba(232,119,26,.12);color:var(--orange)}
        .rb-s{background:rgba(124,92,191,.08);color:#7c5cbf}
        .ri-i{flex:1;min-width:0}
        .ri-t{font-size:12px;font-weight:600;color:var(--navy-mid);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
        .ri-m{font-size:11px;color:var(--text-muted);margin-top:1px}
        .ri-dt{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);flex-shrink:0}
        .ri-dl{flex-shrink:0;color:var(--text-muted);font-size:13px;opacity:.5;transition:opacity .15s}
        .ri:hover .ri-dl{opacity:1;color:var(--orange)}
        .elink{font-size:11px;color:var(--orange);font-weight:600;cursor:pointer;margin-top:10px;display:block;padding:4px 0}
        .elink:hover{text-decoration:underline}
        /* Sector stocks table (inside sector view) */
        .sec-stocks-table{width:100%;border-collapse:collapse}
        .sec-stocks-table thead th{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);padding:10px 12px;text-align:left;border-bottom:2px solid var(--border);white-space:nowrap}
        .sec-stocks-table thead th.r{text-align:right}
        .sec-stocks-table tbody td{padding:10px 12px;border-bottom:1px solid rgba(222,218,211,.4);font-size:13px;vertical-align:middle}
        .sec-stocks-table tbody td.r{text-align:right}
        .sec-stocks-table tbody tr{cursor:pointer;transition:background .1s}
        .sec-stocks-table tbody tr:hover{background:rgba(232,119,26,.03)}
        .sec-stocks-table tbody tr.focus-row{background:rgba(45,138,86,.05)}
        .sec-stocks-table tbody tr.focus-row:hover{background:rgba(45,138,86,.08)}

        /* ===== COPILOT WIDGET ===== */
        .cop{background:var(--navy);border-radius:10px;padding:16px;border:1px solid var(--navy-mid);margin-bottom:20px}
        .cop-l{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,.5);margin-bottom:10px;display:flex;align-items:center;gap:8px}
        .cop-dot{width:6px;height:6px;border-radius:50%;background:var(--orange);box-shadow:0 0 6px rgba(232,119,26,.4);animation:cop-pulse 2s ease-in-out infinite}
        @keyframes cop-pulse{0%,100%{opacity:1}50%{opacity:.5}}
        .cop-s{font-size:12px;color:rgba(255,255,255,.5);padding:7px 10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:6px;cursor:pointer;transition:all .2s;margin-bottom:5px}
        .cop-s:hover{background:rgba(232,119,26,.1);border-color:rgba(232,119,26,.3);color:rgba(255,255,255,.8)}
        .cop-row{display:flex;gap:8px;margin-top:10px}
        .cop-input{flex:1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:8px 12px;color:#fff;font-size:12px;font-family:var(--font-body);outline:none}
        .cop-input::placeholder{color:rgba(255,255,255,.3)}
        .cop-input:focus{border-color:rgba(232,119,26,.5)}
        .cop-send{background:var(--orange);border:none;border-radius:6px;padding:8px 14px;color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s}
        .cop-send:hover{background:#d66c14}
        .cop-answer{margin-top:12px;font-size:12px;line-height:1.7;color:rgba(255,255,255,.85);max-height:300px;overflow-y:auto}
        .cop-answer strong{color:var(--orange)}

        /* ===== COMPANY DETAIL VIEW — single-column editorial ===== */
        .co-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}
        .co-hero-l{flex:1}
        .co-nm{font-family:var(--font-body);font-size:1.9rem;font-weight:700;color:var(--navy);letter-spacing:-.02em;line-height:1.12}
        .co-mt{display:flex;align-items:center;gap:9px;margin-top:9px;font-size:12.5px;color:var(--text-muted);flex-wrap:wrap}
        .co-mt .sep{width:1px;height:12px;background:var(--border)}
        .co-tk{font-family:var(--font-mono);font-size:13px;color:var(--navy-mid);font-weight:600}
        .co-mt-badges{display:inline-flex;align-items:center;gap:6px;margin-left:6px}
        .co-fl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--green);background:rgba(45,138,86,.08);padding:3px 8px;border-radius:4px}
        .co-lv{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:#2e6da4;background:rgba(46,109,164,.08);padding:3px 8px;border-radius:4px}
        .co-hero-r{text-align:right;min-width:200px;flex-shrink:0}
        .co-pr-label{font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.7px;color:var(--text-muted);margin-bottom:2px}
        .co-pr{font-family:var(--font-mono);font-size:32px;font-weight:500;color:var(--navy);line-height:1.15}
        .co-pr .cu{font-size:16px;color:var(--text-muted);font-weight:400}
        .co-ch{font-family:var(--font-mono);font-size:14px;font-weight:500;margin-top:4px}
        .co-ch.up{color:var(--green)}.co-ch.dn{color:#c0392b}
        .co-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
        .co-hero--themed{border-top:3px solid var(--theme-accent, var(--border))}
        /* PSA stance pill — qualitative view + conviction under the company name (no price target) */
        .co-stance-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}
        .co-stance-row .co-req-btn{margin-top:0}
        .co-stance{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:5px 13px;border-radius:14px;letter-spacing:.2px}
        .co-stance--pos{background:rgba(45,138,86,.1);color:#2d8a56}
        .co-stance--neg{background:rgba(192,57,43,.1);color:#c0392b}

        /* Sections — unified vertical flow */
        .co-section{margin-bottom:2.5rem}
        .co-section-label{font-family:var(--font-body);font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--navy);margin-bottom:14px;display:flex;align-items:center;gap:10px}
        .co-section-age{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--text-muted);text-transform:none;letter-spacing:0}
        .co-section-badge{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--text-muted);text-transform:none;letter-spacing:0;background:rgba(107,107,107,.08);padding:2px 8px;border-radius:4px}

        /* 2. Editorial — PSA Latest View (elevated card — it's the hero product) */
        .co-editorial{background:#fff;border:1px solid var(--border);border-left:4px solid var(--orange);border-radius:0 10px 10px 0;padding:20px 26px;box-shadow:0 1px 3px rgba(10,22,40,.05)}
        .co-editorial-body{}
        /* First line of the briefing is the bold stance sentence — render it as a thesis lead */
        .co-editorial-body p:first-child{font-size:16px;line-height:1.5;color:var(--navy);margin-bottom:16px}
        .co-editorial-body p{font-family:var(--font-body);font-size:13.5px;color:var(--text-body);line-height:1.7;margin:0 0 14px}
        .co-editorial-body p:last-child{margin-bottom:0}
        .co-editorial-body .citation{color:var(--text-muted);font-size:12px;border-bottom:1px dotted var(--border);cursor:pointer;transition:all .15s}
        .co-editorial-body .citation:hover{color:var(--orange);border-bottom-color:var(--orange)}
        .co-editorial-body .dash-num{font-family:var(--font-mono);font-weight:500}

        /* 3. Company Profile — compact strip */
        .co-profile-strip{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px 22px;box-shadow:0 1px 3px rgba(10,22,40,.04)}
        .co-profile-strip .co-section-label{margin-bottom:10px}
        .co-profile-summary{font-size:13.5px;line-height:1.7;color:var(--text-body);margin-bottom:10px}
        .co-segment-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
        .co-segment-pill{font-size:11px;font-weight:600;color:var(--navy-mid);background:#fff;border:1px solid var(--border);border-radius:6px;padding:5px 12px;cursor:pointer;transition:all .15s;position:relative}
        .co-segment-pill:hover{border-color:var(--orange);box-shadow:0 1px 4px rgba(10,22,40,.08)}
        .co-seg-desc{display:none;font-weight:400;color:var(--text-muted);font-size:11px;line-height:1.5;margin-top:6px;max-width:640px}
        .co-segment-pill.open{display:block;width:100%;border-color:var(--orange)}
        .co-segment-pill.open .co-seg-desc{display:block}
        .co-profile-meta{font-size:10px;color:var(--text-muted);font-family:var(--font-mono)}

        /* 4. Side-by-side panels — Earnings + Research */
        .co-panels{display:grid;grid-template-columns:2fr 3fr;gap:1.5rem;align-items:start}
        .co-panels--single{grid-template-columns:1fr}
        .co-panels--single .co-panel{max-width:720px}
        .co-panel{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px;box-shadow:0 1px 3px rgba(10,22,40,.04)}
        .co-panel-label{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--navy);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border);display:flex;align-items:baseline;justify-content:space-between}
        .co-panel-action{font-family:var(--font-body);font-size:11px;font-weight:600;color:var(--orange);cursor:pointer;text-transform:none;letter-spacing:0}
        .co-panel-action:hover{text-decoration:underline}
        .co-panel-count{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--text-muted);background:rgba(107,107,107,.08);padding:1px 6px;border-radius:3px;text-transform:none;letter-spacing:0}
        .co-research-empty{font-size:12px;color:var(--text-muted);font-style:italic;padding:4px 0 2px;line-height:1.5}
        .co-docs-btn{display:block;width:100%;margin-top:12px;padding:11px 14px;border:1px solid var(--orange);border-radius:8px;background:var(--orange);color:#fff;font-family:var(--font-body);font-size:12.5px;font-weight:600;cursor:pointer;text-align:center;transition:background .15s,border-color .15s}
        .co-docs-btn:hover{background:#c4610f;border-color:#c4610f}
        /* Request an update / model — hero button + modal (feeds escalations) */
        .co-req-btn{margin-top:14px;padding:8px 16px;border:1px solid var(--orange);border-radius:8px;background:var(--orange);color:#fff;font-family:var(--font-body);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}
        .co-req-btn:hover{background:#c4610f;border-color:#c4610f}
        .co-noearn{font-size:12.5px;color:var(--text-muted);font-style:italic;margin-bottom:10px;line-height:1.5}
        .co-req-overlay{position:fixed;inset:0;background:rgba(10,22,40,.45);display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}
        .co-req-modal{background:#fff;border-radius:12px;padding:22px 24px;width:min(440px,94vw);box-shadow:0 24px 64px rgba(10,22,40,.28)}
        .co-req-h{font-family:var(--font-body);font-size:18px;font-weight:700;color:var(--navy);margin-bottom:4px}
        .co-req-sub{font-size:12px;color:var(--text-muted);margin-bottom:14px}
        .co-req-note{width:100%;box-sizing:border-box;min-height:84px;font-family:var(--font-body);font-size:13px;line-height:1.5;color:var(--text-body);padding:10px 12px;border:1px solid var(--border);border-radius:8px;resize:vertical}
        .co-req-note:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(232,119,26,.12)}
        .co-req-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
        .co-req-cancel{padding:8px 16px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--navy-mid);font-family:var(--font-body);font-weight:600;font-size:12.5px;cursor:pointer}
        .co-req-cancel:hover{border-color:var(--navy-mid)}
        .co-req-send{padding:8px 18px;border:1px solid var(--orange);border-radius:8px;background:var(--orange);color:#fff;font-family:var(--font-body);font-weight:600;font-size:12.5px;cursor:pointer}
        .co-req-send:hover{background:#c4610f;border-color:#c4610f}
        .co-req-send:disabled{opacity:.6;cursor:default}
        .co-req-done{font-size:14px;color:#2d8a56;font-weight:600;text-align:center;padding:22px 6px;line-height:1.5}
        .co-req-err{font-size:12px;color:#c0392b;margin:8px 0 0;text-align:right}

        /* 5. View Evolution — shown directly */
        .co-evo-panel{padding:20px}
        .co-evo-body{padding-left:0}

        /* Evolution timeline — pill strip + vertical editorial timeline */
        .evo-strip{display:flex;gap:6px;overflow-x:auto;padding:4px 0 14px;margin-bottom:8px;scrollbar-width:thin}
        .evo-strip::-webkit-scrollbar{height:4px}
        .evo-strip::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
        .evo-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border:1px solid var(--border);border-radius:20px;cursor:pointer;white-space:nowrap;transition:all .15s;background:#fff;flex-shrink:0}
        .evo-pill:hover{border-color:var(--orange);box-shadow:0 1px 4px rgba(10,22,40,.06)}
        .evo-pill-active{border-color:var(--orange);background:rgba(232,119,26,.05);box-shadow:0 1px 4px rgba(232,119,26,.1)}
        .evo-pill-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
        .evo-pill-year{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--navy);letter-spacing:.02em}
        .evo-entries{position:relative;padding-left:20px}
        .evo-entries::before{content:'';position:absolute;left:9px;top:4px;bottom:4px;width:2px;background:var(--border)}
        .evo-entry{position:relative;padding-bottom:2px}
        .evo-entry-header{display:grid;grid-template-columns:auto 1fr;gap:0 12px;cursor:pointer;padding:12px 0;position:relative}
        .evo-entry-header:hover .evo-entry-date{color:var(--orange)}
        .evo-entry-marker{display:flex;align-items:flex-start;padding-top:3px;position:relative;margin-left:-20px;width:20px;justify-content:center}
        .evo-entry-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;position:relative;z-index:1;box-shadow:0 0 0 3px #fff}
        .evo-entry-expanded .evo-entry-dot{width:11px;height:11px;box-shadow:0 0 0 3px #fff}
        .evo-entry-content{min-width:0}
        .evo-entry-meta{display:flex;align-items:center;gap:9px;margin-bottom:3px}
        .evo-entry-date{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--navy);letter-spacing:.02em;flex-shrink:0;transition:color .15s}
        .evo-entry-stance{font-family:var(--font-body);font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}
        .evo-entry-chevron{font-size:10px;color:var(--text-muted);transition:transform .2s ease;flex-shrink:0;margin-left:4px;opacity:.6}
        .evo-entry-expanded .evo-entry-chevron{transform:rotate(180deg);opacity:1;color:var(--orange)}
        .evo-entry-preview{font-family:var(--font-body);font-size:13px;color:#3a3f4a;line-height:1.55;max-width:880px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
        .evo-entry-expanded .evo-entry-preview{display:none}
        .evo-entry-body{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .28s ease,opacity .2s ease}
        .evo-entry-body>*{overflow:hidden;min-height:0}
        .evo-entry-expanded .evo-entry-body{grid-template-rows:1fr;opacity:1}
        .evo-entry-text{font-family:var(--font-body);font-size:13.5px;line-height:1.7;color:var(--text-body);padding:0 0 12px;max-width:880px}
        .evo-entry-text p{margin:0 0 8px}.evo-entry-text p:last-child{margin-bottom:0}
        .evo-entry-text strong{color:var(--navy-mid)}

        /* 6. Related Coverage — pill row */
        .co-related-pills{display:flex;flex-wrap:wrap;gap:8px}
        .co-rel-pill{font-size:12px;font-weight:500;color:var(--navy-mid);background:#fff;border:1px solid var(--border);border-radius:8px;padding:6px 14px;cursor:pointer;transition:all .15s;font-family:var(--font-body);display:inline-flex;align-items:center;gap:6px}
        .co-rel-pill:hover{border-color:var(--orange);box-shadow:0 2px 6px rgba(10,22,40,.08)}
        .co-rel-tk{font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}
        .co-rel-fl{font-size:8px;font-weight:700;text-transform:uppercase;color:var(--green);background:rgba(45,138,86,.08);padding:1px 4px;border-radius:3px;letter-spacing:.5px}
        .co-rel-chg{font-family:var(--font-mono);font-size:10px;font-weight:600}
        .co-rel-chg.up{color:var(--green)}.co-rel-chg.dn{color:#c0392b}

        /* Compact earnings table */
        .et{width:100%;border-collapse:collapse;font-size:12px}
        .et thead th{font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;padding:9px 10px;text-align:right;color:rgba(255,255,255,.85);background:var(--navy);white-space:nowrap}
        .et thead th:first-child{text-align:left;border-radius:6px 0 0 0}
        .et thead th:last-child{border-radius:0 6px 0 0}
        .et thead th.est{background:var(--navy-mid);border-left:2px solid var(--orange)}
        .et tbody td{padding:9px 10px;text-align:right;font-family:var(--font-mono);font-size:12px;border-bottom:1px solid rgba(222,218,211,.4)}
        .et tbody tr:last-child td{border-bottom:none}
        .et tbody tr:hover td{background:rgba(10,22,40,.025)}
        .et tbody td:first-child{text-align:left;font-family:var(--font-body);font-weight:500;color:var(--navy-mid)}
        .et tbody td.ev{background:rgba(232,119,26,.06);border-left:2px solid rgba(232,119,26,.15)}
        .et tbody tr:hover td.ev{background:rgba(232,119,26,.1)}
        .et .bld td{font-weight:600}
        .et .mg td{font-style:italic;color:var(--text-muted)}
        .et-yoy{font-size:9px;font-weight:600;margin-left:3px;white-space:nowrap}
        .et-yoy.up{color:#1a6b3e}
        .et-yoy.dn{color:#a02020}
        /* Skeleton loading */
        .skel{background:linear-gradient(90deg,#f0ece6 25%,#e8e4de 50%,#f0ece6 75%);background-size:200% 100%;animation:skel-shine 1.5s ease-in-out infinite;border-radius:6px}
        @keyframes skel-shine{0%{background-position:200% 0}100%{background-position:-200% 0}}
        .skel-text{height:14px;margin-bottom:8px;width:100%}
        .skel-title{height:20px;margin-bottom:12px;width:60%}
        .skel-block{height:120px;margin-bottom:16px}
        /* Full earnings expand area */
        .co-earnings-full{margin-top:24px;display:none}
        .co-earnings-full.open{display:block}
        @media(max-width:1200px){.sector-grid{grid-template-columns:1fr}.sector-kpi{grid-template-columns:repeat(3,1fr)}.co-kpi{grid-template-columns:repeat(3,1fr)}.co-panels{grid-template-columns:1fr}.cov-datebar{flex-direction:column;gap:.5rem}}
        @media(max-width:768px){.co-hero{flex-direction:column}.co-hero-r{text-align:left;min-width:auto}.sector-kpi,.co-kpi{grid-template-columns:repeat(2,1fr)}}

        /* ===== EARNINGS MODEL REDESIGN ===== */
        .earn-sel{background:#fff;border:1px solid #e0e0e8;border-radius:10px;padding:14px 18px;margin-bottom:20px}
        .earn-sel-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
        .earn-sel-title{font-family:var(--font-body);font-size:1.05rem;font-weight:700;color:var(--navy);white-space:nowrap}
        .earn-sel-search{position:relative;flex:1;min-width:220px;max-width:360px}
        .earn-sel-search input{width:100%;padding:8px 12px 8px 32px;border:1.5px solid #e0e0e8;border-radius:8px;font-size:.82rem;font-family:var(--font-body);color:var(--navy);outline:none;transition:border-color .2s}
        .earn-sel-search input:focus{border-color:var(--orange)}
        .earn-sel-search .es-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#b0b0b8;font-size:12px;pointer-events:none}
        .earn-sel-chips{display:flex;flex-wrap:wrap;gap:6px}
        .earn-sel-chip{padding:4px 10px;border-radius:14px;font-size:.7rem;font-weight:600;border:1px solid #e0e0e8;background:#fff;color:#6b6b6b;cursor:pointer;font-family:var(--font-body);transition:all .15s}
        .earn-sel-chip:hover{border-color:var(--orange);color:var(--orange)}
        .earn-sel-chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}
        .earn-sel-grid{display:none;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:12px;max-height:280px;overflow-y:auto;padding-top:4px}
        .earn-sel-grid.visible{display:grid}
        .earn-sel-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #f0ede8;border-radius:6px;cursor:pointer;transition:all .15s}
        .earn-sel-item:hover{border-color:var(--orange);background:rgba(232,119,26,.03)}
        .earn-sel-item .esi-ticker{font-family:var(--font-mono);font-size:.7rem;font-weight:700;color:var(--orange);min-width:38px}
        .earn-sel-item .esi-name{font-size:.78rem;font-weight:500;color:var(--navy);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
        .earn-sel-item .esi-analyst{font-size:.65rem;color:#8c8c9c}
        .earn-sel-item.no-model{opacity:.55}
        .earn-hdr{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#fff;border:1px solid #e0e0e8;border-radius:12px;margin-bottom:20px;flex-wrap:wrap;gap:12px}
        .earn-hdr-left{display:flex;align-items:center;gap:16px}
        .earn-hdr-name{font-family:var(--font-body);font-size:1.15rem;font-weight:700;color:var(--navy)}
        .earn-hdr-tags{display:flex;gap:8px;flex-wrap:wrap}
        .earn-hdr-tag{padding:3px 10px;border-radius:12px;font-size:.7rem;font-weight:600;background:var(--bg-cream);border:1px solid var(--border);color:#5a6070}
        .earn-hdr-tag.ticker{background:rgba(232,119,26,.08);border-color:rgba(232,119,26,.25);color:var(--orange);font-family:var(--font-mono)}
        .earn-back-btn{background:none;border:1px solid #e0e0e8;border-radius:8px;padding:6px 12px;font-size:1.1rem;cursor:pointer;color:var(--navy);transition:all .15s;line-height:1;flex-shrink:0}
        .earn-back-btn:hover{border-color:var(--orange);color:var(--orange)}
        .earn-hdr-right{display:flex;align-items:center;gap:8px}
        .earn-hdr-btns{display:none}
        .earn-toolbar{display:none;align-items:center;justify-content:space-between;padding:8px 14px;background:#fff;border:1px solid #e0e0e8;border-radius:10px;margin-bottom:16px;gap:10px;flex-wrap:wrap}
        .earn-toolbar.visible{display:flex}
        .earn-toolbar-left{display:flex;align-items:center;gap:8px}
        .earn-toolbar-right{display:flex;align-items:center;gap:8px}
        .earn-toolbar .earn-tg{margin:0}
        .earn-toolbar .earn-legend{gap:10px}
        .earn-toolbar-sep{width:1px;height:22px;background:#e0e0e8;margin:0 4px}
        .earn-overflow-wrap{position:relative}
        .earn-overflow-btn{background:none;border:1px solid #e0e0e8;border-radius:6px;padding:4px 10px;font-size:14px;cursor:pointer;color:#6b6b6b;line-height:1;transition:border-color .15s}
        .earn-overflow-btn:hover{border-color:var(--orange);color:var(--orange)}
        .earn-overflow-menu{display:none;position:absolute;right:0;top:calc(100% + 4px);background:#fff;border:1px solid #e0e0e8;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);min-width:180px;z-index:20;overflow:hidden}
        .earn-overflow-menu.open{display:block}
        .earn-overflow-item{display:flex;align-items:center;gap:8px;padding:10px 14px;font-size:.78rem;color:var(--navy);cursor:pointer;border:none;background:none;width:100%;text-align:left;font-family:var(--font-body);transition:background .12s}
        .earn-overflow-item:hover{background:var(--bg-cream)}
        .earn-overflow-item.danger{color:#c0392b}
        .earn-overflow-item.danger:hover{background:rgba(192,57,43,.06)}
        .earn-import-drawer{display:none;background:#fff;border:1px solid #e0e0e8;border-radius:10px;margin-bottom:16px;overflow:hidden}
        .earn-import-drawer.open{display:block}
        .earn-import-drawer-tabs{display:flex;border-bottom:1px solid #e0e0e8}
        .earn-import-drawer-tab{flex:1;padding:10px 16px;font-size:.78rem;font-weight:600;text-align:center;cursor:pointer;background:#fafaf8;color:#6b6b6b;border:none;font-family:var(--font-body);transition:all .15s}
        .earn-import-drawer-tab.active{background:#fff;color:var(--navy);box-shadow:inset 0 -2px 0 var(--orange)}
        .earn-cr-rm{position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:14px;color:#c0392b;cursor:pointer;opacity:0;transition:opacity .15s;line-height:1}
        tr:hover .earn-cr-rm{opacity:.7}
        .earn-cr-rm:hover{opacity:1!important}
        .earn-kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:20px}
        .earn-kpi-card{background:#fff;border:1px solid #e0e0e8;border-radius:10px;padding:14px 16px}
        .earn-kpi-l{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:#8c8c9c;margin-bottom:4px}
        .earn-kpi-v{font-size:20px;font-weight:700;color:var(--navy);font-family:var(--font-mono)}
        .earn-kpi-s{font-size:11px;color:#8c8c9c;margin-top:2px}
        .earn-kpi-c{font-size:11px;font-weight:600;margin-top:2px}
        .earn-kpi-c.pos{color:#2d8a4e}
        .earn-kpi-c.neg{color:#c0392b}
        .earn-chart-row{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:auto auto;gap:14px;margin-bottom:24px;max-width:100%;overflow:hidden}
        .earn-chart-row .earn-chart-card:nth-child(1){grid-column:1/2}
        .earn-chart-row .earn-chart-card:nth-child(2){grid-column:2/3}
        .earn-chart-row .earn-chart-card:nth-child(3){grid-column:1/-1;max-width:800px}
        .earn-chart-card{background:#fff;border:1px solid #e0e0e8;border-radius:10px;padding:16px 18px 12px;min-width:0;overflow:hidden}
        .earn-chart-title{font-size:12px;font-weight:700;color:var(--navy);margin-bottom:8px}
        .earn-chart-title span{font-weight:400;color:#8c8c9c;font-size:10px;margin-left:4px}
        .earn-chart-container{position:relative;height:260px;width:100%}
        .earn-chart-card:nth-child(3) .earn-chart-container{height:180px}
        @media(max-width:1100px){.earn-chart-row{grid-template-columns:1fr}.earn-chart-row .earn-chart-card:nth-child(1),.earn-chart-row .earn-chart-card:nth-child(2),.earn-chart-row .earn-chart-card:nth-child(3){grid-column:1/-1;max-width:none}}
        .earn-meta-bar{display:flex;align-items:center;gap:24px;margin-bottom:16px;padding:10px 16px;background:#fff;border:1px solid #e0e0e8;border-radius:10px;font-size:12px;color:#5a6070;flex-wrap:wrap}
        .earn-meta-bar .ml{color:#8c8c9c;font-weight:500}
        .earn-meta-bar .mv{font-weight:600;color:var(--navy);margin-left:4px}
        .earn-meta-bar .mbr{margin-left:auto;display:flex;gap:8px}
        .earn-cbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:12px}
        .earn-legend{display:flex;gap:16px}
        .earn-li{display:flex;align-items:center;gap:5px;font-size:11px;color:#8c8c9c}
        .earn-ls{width:14px;height:10px;border-radius:2px;border:1px solid rgba(0,0,0,.08)}
        .earn-ls-e{background:rgba(76,175,80,.12);border-color:rgba(76,175,80,.35)}
        .earn-ls-c{background:#eaeaf0}
        .earn-ls-s{background:#f4f4f9}
        .earn-ls-a{background:#fff}
        .earn-tg{display:flex;border:1px solid #e0e0e8;border-radius:6px;overflow:hidden}
        .earn-tb{padding:6px 16px;font-size:11px;font-weight:600;background:#fff;color:#8c8c9c;border:0;cursor:pointer;font-family:var(--font-body);transition:all .15s}
        .earn-tb.active{background:var(--navy);color:#fff}
        .earn-tw{background:#fff;border:1px solid #e0e0e8;border-radius:12px;overflow-x:auto;margin-bottom:1.25rem}
        .earn-mt{width:100%;border-collapse:collapse;table-layout:fixed}
        .earn-mt thead th{padding:8px 12px;font-size:10px;text-transform:uppercase;letter-spacing:1px;text-align:right;background:var(--navy);border-bottom:2px solid var(--navy-mid);font-weight:600;position:sticky;top:0;z-index:3;color:rgba(255,255,255,.7);white-space:nowrap;overflow:hidden}
        .earn-mt thead th:first-child{text-align:left;position:sticky;left:0;z-index:5;width:200px;color:#fff}
        .earn-mt thead th.eh{color:var(--orange)}
        .earn-mt thead th .ts{display:block;font-size:8px;letter-spacing:.5px;color:rgba(255,255,255,.4);font-weight:400;margin-top:1px}
        .earn-mt thead th.earn-units-th{text-align:right;color:rgba(255,255,255,.4);font-size:9px;letter-spacing:0;text-transform:none;font-weight:400;font-style:italic}
        .earn-mt tbody td{padding:6px 12px;font-size:12px;text-align:right;font-family:var(--font-mono);font-weight:400;border-bottom:1px solid #f0ede8;white-space:nowrap;color:var(--text-body);position:relative}
        .earn-mt tbody td:first-child{text-align:left;font-family:var(--font-body);position:sticky;left:0;z-index:1;background:#fff;font-weight:400;color:#5a6070;overflow:hidden;text-overflow:ellipsis}
        .earn-mt tr.sr td{font-weight:700;background:#f4f4f9}
        .earn-mt tr.sr td:first-child{color:var(--navy);background:#f4f4f9}
        .earn-mt tr.xr td{background:#333E48;font-family:var(--font-body);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#fff;padding:10px 12px;border-bottom:1px solid #4a5568}
        .earn-mt tr.xr td:not(:first-child){color:transparent}
        .earn-mt td.i1{padding-left:24px}
        .earn-mt td.i2{padding-left:40px}
        .earn-mt td.ec{background:rgba(232,116,12,.04)}
        .earn-mt td.ec.ed{background:rgba(76,175,80,.12);border-left:1px solid rgba(76,175,80,.35);border-right:1px solid rgba(76,175,80,.35);cursor:text}
        .earn-mt td.ed-actual{background:rgba(41,98,180,.08);border-left:1px solid rgba(41,98,180,.25);border-right:1px solid rgba(41,98,180,.25);cursor:text}
        .earn-mt tbody tr:hover td.ed-actual{background:rgba(41,98,180,.14)}
        .earn-mt td.qc{background:#faf8f5}
        .earn-mt td.qe{background:#f5f0e8}
        .earn-mt td.qe.ed{background:rgba(76,175,80,.12);border-left:1px solid rgba(76,175,80,.35);border-right:1px solid rgba(76,175,80,.35);cursor:text}
        .earn-mt tr.sr td.ec{background:#f4f4f9}
        .earn-mt tr.sr td.qc,.earn-mt tr.sr td.qe{background:#f4f4f9}
        .earn-mt td.ef{border-left:2px solid var(--orange)}
        .earn-mt thead th.ef{border-left:2px solid var(--orange)}
        .earn-mt tbody tr:hover td{background:#f0f0f6}
        .earn-mt tbody tr:hover td.ec{background:rgba(232,116,12,.07)}
        .earn-mt tbody tr:hover td.ec.ed{background:rgba(76,175,80,.18)}
        .earn-mt tbody tr:hover td.qc{background:#f3efe9}
        .earn-mt tbody tr:hover td.qe{background:#ede7dc}
        .earn-mt tbody tr:hover td.qe.ed{background:rgba(76,175,80,.18)}
        .earn-mt tbody tr.sr:hover td{background:#eaeaf2}
        .earn-mt tbody tr.xr:hover td{background:#333E48}
        .earn-mt .nv{color:#c0392b}
        .earn-tip{display:none;position:absolute;bottom:calc(100% + 6px);right:0;background:var(--navy);color:#fff;padding:8px 12px;border-radius:6px;font-size:11px;font-family:var(--font-body);white-space:nowrap;z-index:20;pointer-events:none;box-shadow:0 4px 12px rgba(0,0,0,.15);line-height:1.5}
        .earn-tip::after{content:'';position:absolute;top:100%;right:16px;border:5px solid transparent;border-top-color:var(--navy)}
        td:hover .earn-tip{display:block}
        .earn-tip .tip-l{color:rgba(255,255,255,.6);font-size:10px;text-transform:uppercase;letter-spacing:.5px}
        .earn-tip .tip-v{font-weight:600}
        .earn-tip .tip-c{color:var(--orange);font-size:10px;margin-top:2px}
        .earn-mt td input{width:100%;box-sizing:border-box;text-align:right;border:1px solid rgba(76,175,80,.35);border-radius:3px;padding:2px 6px;font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;background:rgba(76,175,80,.12);color:#1a6b35;font-weight:700}
        .earn-mt td input:focus{outline:none;border-color:#2d8a4e;box-shadow:0 0 0 2px rgba(45,138,78,.15)}
        @media(max-width:1100px){.earn-kpi-row{grid-template-columns:repeat(3,1fr)}.earn-chart-row{grid-template-columns:1fr}}
        @media(max-width:700px){.earn-kpi-row{grid-template-columns:repeat(2,1fr)}}

        /* ===== EARNINGS SUB-TABS + SHOWCASE ===== */
        .earn-subtab-bar{display:flex;gap:0;margin-bottom:20px;border-bottom:2px solid var(--border)}
        .earn-subtab{padding:10px 24px;font-size:.85rem;font-weight:600;font-family:var(--font-body);color:var(--text-muted);background:none;border:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}
        .earn-subtab.active{color:var(--orange);border-bottom-color:var(--orange);background:var(--cream);border-radius:6px 6px 0 0}
        .earn-subtab:hover{color:var(--navy)}
        .earn-subpanel{display:none}
        .earn-subpanel.active{display:block}
        /* Showcase grid */
        .sc-search{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
        .sc-search input{flex:1;min-width:200px;padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:.85rem;font-family:var(--font-body);background:#fff}
        .sc-search input:focus{outline:none;border-color:var(--orange)}
        .sc-count{font-size:.78rem;color:var(--text-muted);white-space:nowrap}
        .sc-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
        .sc-chip{padding:5px 14px;font-size:.78rem;font-family:var(--font-body);border:1px solid var(--border);border-radius:20px;background:#fff;cursor:pointer;color:var(--text-muted);transition:all .15s}
        .sc-chip.active{background:var(--orange);color:#fff;border-color:var(--orange)}
        .sc-chip:hover{border-color:var(--orange);color:var(--orange)}
        .sc-chip.active:hover{color:#fff}
        .sc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
        .sc-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px 20px;cursor:pointer;transition:all .2s;position:relative}
        .sc-card:hover{border-color:var(--orange);box-shadow:0 4px 16px rgba(10,22,40,.08);transform:translateY(-1px)}
        .sc-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}
        .sc-card-ticker{font-family:var(--font-mono);font-size:.82rem;font-weight:700;color:var(--orange);background:var(--orange-light);padding:2px 8px;border-radius:4px}
        .sc-card-updated{font-size:.72rem;color:var(--text-muted);font-family:var(--font-mono)}
        .sc-card-name{font-size:.95rem;font-weight:600;color:var(--navy);margin-bottom:4px;line-height:1.3}
        .sc-card-analyst{font-size:.78rem;color:var(--text-muted);margin-bottom:12px}
        .sc-card-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}
        .sc-metric{background:var(--cream);border-radius:6px;padding:8px 10px;border-left:2px solid var(--border)}
        .sc-metric:nth-child(1){border-left-color:var(--navy)}
        .sc-metric:nth-child(2){border-left-color:var(--orange)}
        .sc-metric:nth-child(3){border-left-color:var(--green)}
        .sc-metric:nth-child(4){border-left-color:var(--blue)}
        .sc-metric-l{font-size:.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}
        .sc-metric-v{font-size:.88rem;font-weight:700;font-family:var(--font-mono);color:var(--navy)}
        .sc-card-badge{position:absolute;top:12px;right:12px;font-size:.65rem;background:var(--navy);color:#fff;padding:2px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:.5px}
        /* Showcase detail */
        .sc-detail-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}
        .sc-detail-hdr-left{display:flex;align-items:center;gap:12px}
        .sc-back-btn{padding:8px 16px;font-size:.82rem;font-family:var(--font-body);border:1px solid var(--border);border-radius:6px;background:#fff;cursor:pointer;color:var(--text-muted);transition:all .15s;font-weight:500}
        .sc-back-btn:hover{border-color:var(--orange);color:var(--orange)}
        .sc-detail-title{font-size:1.05rem;font-weight:700;color:var(--navy);font-family:var(--font-body)}
        .sc-detail-tags{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
        .sc-detail-tag{font-size:.75rem;padding:3px 10px;border-radius:4px;background:var(--cream);color:var(--text-muted);font-family:var(--font-body)}
        .sc-pdf-btn{padding:8px 18px;font-size:.82rem;font-family:var(--font-body);border:none;border-radius:6px;background:var(--orange);color:#fff;cursor:pointer;font-weight:600;transition:all .15s}
        .sc-pdf-btn:hover{background:#cf6a15}
        .sc-view-toggle{display:flex;gap:0;margin-bottom:16px}
        .sc-view-btn{padding:7px 18px;font-size:.78rem;font-family:var(--font-body);border:1px solid var(--border);background:#fff;color:var(--text-muted);cursor:pointer;transition:all .15s}
        .sc-view-btn:first-child{border-radius:6px 0 0 6px}
        .sc-view-btn:last-child{border-radius:0 6px 6px 0}
        .sc-view-btn.active{background:var(--navy);color:#fff;border-color:var(--navy)}
        /* Custom section cards */
        .cs-card{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:16px}
        .cs-card-hdr{background:var(--navy);color:#fff;padding:10px 16px;font-size:.82rem;font-weight:600}
        .cs-card-body{padding:0;overflow-x:auto}
        .cs-table{width:100%;border-collapse:collapse}
        .cs-table th{padding:8px 12px;font-size:10px;text-transform:uppercase;letter-spacing:1px;text-align:right;background:var(--navy);color:rgba(255,255,255,.7);font-weight:600;white-space:nowrap}
        .cs-table th:first-child{text-align:left;color:#fff}
        .cs-table td{padding:6px 12px;font-size:12px;text-align:right;font-family:var(--font-mono);border-bottom:1px solid #f0ede8;white-space:nowrap}
        .cs-table td:first-child{text-align:left;font-family:var(--font-body);color:#5a6070}
        .cs-table tr._section td{background:#333E48;color:#fff;font-family:var(--font-body);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:1px}
        .cs-table tr.bold td{font-weight:700}
        .cs-table td.est{background:rgba(232,116,12,.04)}

        /* ===== DOCUMENTS ===== */
        .docs-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}
        .docs-search{flex:1;min-width:200px;padding:.5rem .85rem;border:1px solid var(--border);border-radius:4px;font-family:var(--font-body);font-size:.85rem;color:var(--text-dark);background:#fff;transition:border-color .15s}
        .docs-search:focus{outline:none;border-color:var(--orange)}
        .docs-search::placeholder{color:var(--text-muted)}
        .docs-filters-row{display:flex;gap:.4rem;flex-wrap:wrap}
        .filter-btn{padding:.4rem .85rem;font-size:.76rem;color:var(--text-muted);border:1px solid var(--border);background:#fff;border-radius:20px;cursor:pointer;font-family:var(--font-body);transition:all .15s;font-weight:500}
        .filter-btn.active{color:#fff;border-color:var(--orange);background:var(--orange)}.filter-btn:hover{border-color:var(--orange);color:var(--orange)}
        .filter-btn.active:hover{color:#fff}
        .doc-table{width:100%;border-collapse:collapse;background:#fff;border-radius:6px;overflow:hidden;border:1px solid var(--border-light)}
        .doc-table th{text-align:left;font-size:.65rem;text-transform:uppercase;letter-spacing:1.1px;color:var(--text-muted);padding:.65rem 1rem;border-bottom:2px solid var(--border-light);background:var(--cream)}
        .doc-table td{padding:1rem 1rem;font-size:.88rem;border-bottom:1px solid var(--border-light);color:var(--text-body);vertical-align:top}
        .doc-table tr:hover td{background:rgba(232,119,26,.04)}
        .doc-teaser{color:var(--text-dark);font-weight:500;font-size:.9rem;line-height:1.5;margin-bottom:.25rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
        .doc-more{color:var(--text-muted);font-weight:400;font-size:.78rem}
        .doc-row.doc-type-daily td:first-child{border-left:3px solid var(--green);padding-left:calc(1rem - 3px)}
        .doc-filename{font-size:.7rem;color:#b0a89e;font-weight:400;letter-spacing:.2px}
        .doc-row{cursor:pointer}
        .doc-row.expanded td{border-bottom:none;background:rgba(232,119,26,.04)}
        .doc-expand-icon{display:inline-block;width:16px;font-size:.65rem;color:#c5bdb3;transition:all .2s;margin-right:.5rem}
        .doc-row:hover .doc-expand-icon{color:var(--orange)}
        .doc-row.expanded .doc-expand-icon{transform:rotate(90deg);color:var(--orange)}
        .doc-detail-row td{padding:0 !important;border-bottom:1px solid var(--border-light)}
        .doc-detail{overflow:hidden;max-height:0;transition:max-height .3s ease;background:var(--cream);border-top:1px solid var(--border-light)}
        .doc-detail.open{max-height:800px}
        .doc-detail-inner{padding:.75rem 1rem .85rem}
        .doc-detail-card{background:#fff;border:1px solid var(--border-light);border-bottom:none;border-radius:10px 10px 0 0;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:1.15rem 1.35rem .75rem;overflow:hidden}
        .doc-detail-badge{display:inline-block;font-size:.64rem;padding:.18rem .55rem;border-radius:2px;color:#fff;font-weight:500;letter-spacing:.4px;margin-bottom:.65rem}
        .doc-detail-badge.badge-daily{background:var(--green)}.doc-detail-badge.badge-weekly{background:var(--blue)}.doc-detail-badge.badge-company{background:var(--orange)}.doc-detail-badge.badge-strategy{background:var(--purple)}
        .doc-detail-title{font-family:var(--font-body);font-size:1.05rem;font-weight:600;color:var(--text-dark);margin-bottom:.4rem;line-height:1.35}
        .doc-detail-meta{display:flex;gap:.75rem;align-items:center;margin-bottom:.75rem;flex-wrap:wrap;font-size:.78rem;color:var(--text-muted)}
        .doc-detail-meta .analyst-name{font-weight:500;color:var(--text-body)}
        .doc-detail-stance{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:.15rem .45rem;border-radius:2px}
        .doc-detail-stance.bullish{color:#1a7a3a;background:rgba(26,122,58,.08)}.doc-detail-stance.bearish{color:#b33e2a;background:rgba(179,62,42,.08)}.doc-detail-stance.neutral{color:#8a7a2a;background:rgba(138,122,42,.08)}
        .doc-detail-summary{font-size:13.5px;line-height:1.7;color:var(--text-body);margin-bottom:.65rem}
        .doc-detail-points{list-style:none;margin:0 0 .65rem;padding:0;font-size:13.5px;line-height:1.7;color:var(--text-body)}
        .doc-detail-points li{margin-bottom:.35rem;padding-left:1rem;position:relative}
        .doc-detail-points li::before{content:'';position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--orange)}
        .doc-detail-themes{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.65rem}
        .doc-detail-theme{font-size:.72rem;color:var(--text-muted);background:var(--cream);border:1px solid var(--border);border-radius:2px;padding:.2rem .5rem}
        .doc-daily-lead{margin-bottom:.75rem}
        .doc-daily-lead .section-headline{font-weight:600;font-size:.88rem;color:var(--text-dark);margin-bottom:.35rem}
        .doc-daily-lead .lead-summary{font-size:13.5px;line-height:1.7;color:var(--text-body)}
        .doc-daily-grid{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin-bottom:.25rem}
        .doc-daily-chip{display:flex;align-items:baseline;gap:.4rem;padding:.45rem .65rem;background:var(--cream);border:1px solid var(--border-light);border-radius:6px;font-size:.78rem;line-height:1.4}
        .doc-daily-chip .chip-title{font-weight:500;color:var(--text-dark);flex:1}
        .doc-daily-chip .chip-count{font-size:.7rem;color:var(--text-muted);white-space:nowrap}
        @media(max-width:600px){.doc-daily-grid{grid-template-columns:1fr}}
        .doc-detail-sections{font-size:13.5px;color:var(--text-body);line-height:1.7}
        .doc-detail-sections .section-headline{font-weight:500;margin-bottom:.2rem}
        .doc-detail-sections .section-cos{font-size:.76rem;color:var(--text-muted);margin-bottom:.4rem}
        .doc-detail-footer{margin-top:0;padding:.7rem 1.35rem;border:1px solid var(--border-light);border-radius:0 0 10px 10px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.06);display:flex;justify-content:flex-end;align-items:center}
        .doc-detail-footer .download-btn{background:var(--orange);color:#fff;border:none;padding:.4rem 1rem;border-radius:4px;font-size:.78rem;font-weight:500;cursor:pointer;transition:background .15s}
        .doc-detail-footer .download-btn:hover{background:#d06a15}
        .doc-detail-loading{text-align:center;padding:1rem;font-size:.82rem;color:var(--text-muted)}
        .doc-companies{font-size:.76rem;color:var(--text-muted);margin-top:.35rem;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;transition:color .15s}
        .doc-companies:hover{color:var(--orange)}
        .doc-companies-list{font-size:.76rem;color:var(--text-muted);margin-top:.3rem;line-height:1.5;display:none}
        .doc-companies-list.open{display:block}
        .pagination{display:flex;gap:.5rem;margin-top:1rem;justify-content:center;align-items:center}
        .page-btn{padding:.35rem .75rem;font-size:.78rem;border:1px solid var(--border);background:#fff;border-radius:3px;cursor:pointer;font-family:var(--font-body);color:var(--text-muted)}.page-btn:hover{border-color:var(--orange);color:var(--orange)}.page-btn.active{background:var(--orange);color:#fff;border-color:var(--orange)}
        .page-info{font-size:.78rem;color:var(--text-muted)}

        /* ===== ANALYTICS ===== */
        .analytics-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px}
        .analytics-subtitle{font-size:.82rem;color:var(--text-muted);margin-top:4px}
        .sub-tabs{display:flex;gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff}
        .sub-tab{padding:8px 18px;font-size:13px;font-weight:500;font-family:var(--font-body);border:none;background:#fff;color:var(--text-muted);cursor:pointer;transition:all .15s;border-right:1px solid var(--border)}
        .sub-tab:last-child{border-right:none}
        .sub-tab:hover{color:var(--text-body);background:var(--cream)}
        .sub-tab.active{color:#fff;background:var(--navy-mid)}
        .analytics-tab{display:none}.analytics-tab.active{display:block}
        .an-stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
        .an-stat-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px 20px}
        .an-stat-card .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);margin-bottom:6px}
        .an-stat-card .value{font-family:var(--font-mono);font-size:28px;font-weight:500;color:var(--navy);line-height:1.2}
        .an-panel{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}
        .an-panel-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
        .an-panel-title{font-size:13px;font-weight:700;color:var(--navy)}
        .an-panel-body{padding:14px 18px;max-height:360px;overflow-y:auto}
        .an-panel-body-compact{padding:0}
        .an-panel-full{margin-bottom:14px}
        .period-pills{display:flex;gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff}
        .period-pill{padding:7px 18px;font-size:12px;font-weight:600;font-family:var(--font-body);border:none;background:#fff;color:var(--text-muted);cursor:pointer;transition:all .15s;border-right:1px solid var(--border)}
        .period-pill:last-child{border-right:none}
        .period-pill:hover{color:var(--text-body);background:var(--cream)}
        .period-pill.active{color:#fff;background:var(--orange)}
        .role-pills{display:flex;gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff}
        .role-pill{padding:7px 16px;font-size:12px;font-weight:600;font-family:var(--font-body);border:none;background:#fff;color:var(--text-muted);cursor:pointer;transition:all .15s;border-right:1px solid var(--border)}
        .role-pill:last-child{border-right:none}
        .role-pill:hover{color:var(--text-body);background:var(--cream)}
        .role-pill.active{color:#fff;background:var(--navy-mid)}
        .chart-panel{background:#fff;border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:14px}
        .chart-panel-title{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:14px}
        .chart-wrap{position:relative;width:100%}
        /* Activity Feed */
        .feed-layout{display:grid;grid-template-columns:1fr 320px;gap:20px}
        .feed-item{display:flex;align-items:flex-start;gap:12px;padding:12px 18px;border-bottom:1px solid #f0ede8;transition:background .1s}
        .feed-item:hover{background:#faf8f4}
        .feed-time{font-family:var(--font-mono);font-size:10px;color:var(--text-light);min-width:56px;padding-top:2px}
        .feed-icon{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;flex-shrink:0;letter-spacing:.3px}
        .feed-body{flex:1;font-size:12px;line-height:1.5;min-width:0}
        .feed-user{font-weight:600;color:var(--navy)}
        .feed-action{color:var(--text-muted)}
        .feed-detail{color:var(--text-body);font-weight:500}
        .feed-role-badge{font-size:9px;font-weight:700;padding:1px 5px;border-radius:3px;text-transform:uppercase;vertical-align:middle;margin:0 2px}
        .feed-role-badge.role-admin{background:var(--orange-light);color:var(--orange)}
        .feed-role-badge.role-user{background:rgba(46,109,164,.08);color:var(--blue)}
        .feed-role-badge.role-client{background:rgba(45,138,86,.08);color:var(--green)}
        .feed-empty{padding:2rem;text-align:center;color:var(--text-muted);font-size:.88rem}
        /* Trending Stocks */
        .trending-stock-item{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid #f0ede8}
        .trending-stock-item:last-child{border-bottom:none}
        .trending-stock-rank{font-family:var(--font-mono);font-size:11px;color:var(--text-light);min-width:20px}
        .trending-stock-info{flex:1;min-width:0}
        .trending-stock-name{font-size:12px;font-weight:600;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .trending-stock-ticker{font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}
        .trending-stock-stats{text-align:right}
        .trending-stock-total{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--navy);display:block;line-height:1.2}
        .trending-stock-users{font-size:10px;color:var(--text-light)}
        /* User Engagement Rows */
        .ue-row{display:flex;align-items:center;gap:12px;padding:10px 18px;border-bottom:1px solid #f0ede8;cursor:pointer;transition:background .1s}
        .ue-row:hover{background:#faf8f4}
        .ue-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;letter-spacing:.3px;flex-shrink:0}
        .ue-info{flex:1;min-width:0}
        .ue-name{font-weight:600;color:var(--navy);font-size:13px;display:flex;align-items:baseline;gap:8px}
        .ue-last{font-size:10px;color:var(--text-light);font-family:var(--font-mono);font-weight:400}
        .ue-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
        .ue-badge{font-size:10px;font-family:var(--font-mono);font-weight:600;padding:1px 7px;border-radius:3px;display:inline-flex;align-items:center;gap:3px}
        .ue-badge span{font-family:var(--font-body);font-weight:500;font-size:10px}
        .ue-badge--navy{background:rgba(10,22,40,.06);color:var(--navy)}
        .ue-badge--green{background:rgba(45,138,86,.06);color:var(--green)}
        .ue-badge--orange{background:rgba(232,119,26,.06);color:var(--orange)}
        .ue-badge--blue{background:rgba(46,109,164,.06);color:var(--blue)}
        .ue-arrow{font-size:11px;color:var(--text-light);flex-shrink:0}
        .ue-detail{border-bottom:1px solid var(--border);background:var(--cream);padding:8px 18px 8px 64px}
        .ue-act-row{display:grid;grid-template-columns:8px 110px 1fr 60px;gap:8px;padding:4px 0;font-size:11px;align-items:center}
        .ue-act-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
        .ue-act-label{color:var(--text-muted);white-space:nowrap}
        .ue-act-detail{color:var(--text-body);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .ue-act-time{font-family:var(--font-mono);font-size:10px;color:var(--text-light);text-align:right}
        /* Action filter pills */
        .action-pills{display:flex;gap:3px}
        .action-pill{font-size:10px;font-family:var(--font-body);font-weight:600;padding:2px 8px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s}
        .action-pill:hover{border-color:var(--orange);color:var(--orange)}
        .action-pill.active{background:var(--navy);color:#fff;border-color:var(--navy)}
        /* Most Read */
        .mr-item{display:grid;grid-template-columns:20px 42px 1fr 30px;gap:6px;padding:7px 16px;border-bottom:1px solid #f0ede8;font-size:11px;align-items:center}
        .mr-item:last-child{border-bottom:none}
        .mr-rank{font-family:var(--font-mono);font-size:10px;color:var(--text-light)}
        .mr-badge{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#fff;padding:2px 5px;border-radius:3px;text-align:center;white-space:nowrap}
        .mr-name{color:var(--navy);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .mr-views{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--navy);text-align:right}
        /* Institution Groups */
        .inst-header{display:flex;align-items:center;gap:8px;padding:12px 18px;cursor:pointer;border-bottom:1px solid var(--border);background:#fff;transition:background .1s;font-size:13px}
        .inst-header:hover{background:#faf8f4}
        .inst-arrow{font-size:11px;color:var(--text-light);width:14px}
        .inst-name{font-weight:700;color:var(--navy)}
        .inst-count{font-size:11px;color:var(--text-muted);margin-left:auto}
        .inst-stats{font-family:var(--font-mono);font-size:11px;color:var(--text-light);margin-left:12px}
        .inst-body{border-bottom:1px solid var(--border)}
        /* User Management */
        .user-row{display:grid;grid-template-columns:2fr 1fr .5fr .7fr .7fr 1fr;padding:10px 18px;border-bottom:1px solid #f0ede8;font-size:12px;align-items:center}
        .user-row:hover{background:#faf8f4}
        .user-row-header{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);background:var(--cream);border-bottom:1px solid var(--border)}
        .user-row-header:hover{background:var(--cream)}
        .user-name-cell{font-weight:500;color:var(--navy)}
        .user-role-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:3px;text-transform:uppercase}
        .role-admin{background:var(--orange-light);color:var(--orange)}
        .role-user{background:rgba(46,109,164,.08);color:var(--blue)}
        .role-client{background:rgba(45,138,86,.08);color:var(--green)}
        .user-action-btn{font-size:10px;font-family:var(--font-body);padding:4px 8px;border-radius:4px;border:1px solid var(--border);background:#fff;color:var(--text-muted);cursor:pointer;transition:all .15s}
        .user-action-btn:hover{border-color:var(--orange);color:var(--orange)}
        .admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
        .upload-zone{border:2px dashed var(--border);border-radius:8px;padding:32px;text-align:center;color:var(--text-muted);font-size:13px;cursor:pointer;transition:all .15s}
        .upload-zone:hover{border-color:var(--orange);color:var(--orange)}
        .sys-stats{display:flex;gap:24px;padding:12px 18px;font-size:11px;color:var(--text-muted);background:var(--cream);border-top:1px solid var(--border)}
        .sys-stat-label{font-weight:600;color:var(--text-muted)}
        .sys-stat-value{font-family:var(--font-mono);color:var(--text-body);margin-left:4px}
        /* Chart filter pills */
        .chart-filter-pills{display:flex;gap:4px}
        .chart-filter-pill{font-size:10px;font-family:var(--font-body);font-weight:600;padding:3px 10px;border-radius:12px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s}
        .chart-filter-pill:hover{border-color:var(--orange);color:var(--orange)}
        .chart-filter-pill.active{background:var(--navy);color:#fff;border-color:var(--navy)}
        /* Recent Searches */
        .search-row{display:grid;grid-template-columns:70px 1fr 120px 60px;padding:8px 18px;border-bottom:1px solid #f0ede8;font-size:12px;align-items:center;gap:8px}
        .search-row:hover{background:#faf8f4}
        .search-row-header{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);background:var(--cream);border-bottom:1px solid var(--border)}
        .search-row-header:hover{background:var(--cream)}
        .search-time{font-family:var(--font-mono);font-size:10px;color:var(--text-light)}
        .search-query{color:var(--text-body);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .search-user{font-size:11px;color:var(--text-muted)}
        .search-sources{font-family:var(--font-mono);font-size:11px;text-align:center;color:var(--text-muted)}
        .search-score{font-family:var(--font-mono);font-size:11px;font-weight:700;text-align:center}
        .outcome-good{color:var(--green)}.outcome-ok{color:var(--orange)}.outcome-poor{color:#c0392b}.outcome-pending{color:var(--text-light)}
        /* Institution Engagement Cards */
        .an-inst-header{display:flex;align-items:center;gap:10px;padding:12px 18px;cursor:pointer;border-bottom:1px solid var(--border);background:#fff;transition:background .1s;font-size:13px}
        .an-inst-header:hover{background:#faf8f4}
        .an-inst-arrow{font-size:11px;color:var(--text-light);width:14px;flex-shrink:0}
        .an-inst-name{font-weight:700;color:var(--navy);white-space:nowrap}
        .an-inst-meta{font-size:11px;color:var(--text-muted);margin-left:auto;white-space:nowrap}
        .an-inst-stat{font-family:var(--font-mono);font-size:11px;color:var(--text-light);white-space:nowrap}
        .an-inst-last{font-family:var(--font-mono);font-size:10px;color:var(--text-light);white-space:nowrap}
        .an-inst-expand{font-size:11px;color:var(--text-light);margin-left:8px}
        .an-inst-body{border-bottom:1px solid var(--border)}
        .an-show-internal{font-size:12px;color:var(--text-muted);cursor:pointer;transition:color .15s;font-family:var(--font-body);background:none;border:none;padding:0}
        .an-show-internal:hover{color:var(--orange)}
        /* Feature Usage Bars */
        .an-feature-row{display:flex;align-items:center;gap:10px;padding:7px 16px;border-bottom:1px solid #f0ede8}
        .an-feature-row:last-child{border-bottom:none}
        .an-feature-name{font-size:12px;font-weight:500;color:var(--navy);min-width:110px;white-space:nowrap}
        .an-feature-bar-wrap{flex:1;height:8px;background:var(--cream);border-radius:4px;overflow:hidden}
        .an-feature-bar{height:100%;background:var(--orange);border-radius:4px;transition:width .3s}
        .an-feature-count{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--navy);min-width:30px;text-align:right}
        /* Research + Feature two-col */
        .an-research-grid{display:grid;grid-template-columns:1fr 340px;gap:14px;margin-top:14px}
        @media(max-width:1200px){.an-stat-row{grid-template-columns:repeat(3,1fr)!important}}
        @media(max-width:1000px){.an-stat-row{grid-template-columns:repeat(2,1fr)!important}.feed-layout{grid-template-columns:1fr}.admin-grid{grid-template-columns:1fr}.search-row{grid-template-columns:60px 1fr 80px 50px}.an-research-grid{grid-template-columns:1fr}}

        /* Client sort pills */
        .client-sort-pill{padding:6px 14px;font-size:11px;font-weight:600;font-family:var(--font-body);border:none;background:#fff;color:var(--text-muted);cursor:pointer;transition:all .15s;border-right:1px solid var(--border)}
        .client-sort-pill:last-child{border-right:none}
        .client-sort-pill:hover{color:var(--text-body);background:var(--cream)}
        .client-sort-pill.active{color:#fff;background:var(--navy)}
        /* People sort pills — same visual, scoped class so state doesn't bleed */
        .people-sort-pill,.people-view-pill{padding:6px 14px;font-size:11px;font-weight:600;font-family:var(--font-body);border:none;background:#fff;color:var(--text-muted);cursor:pointer;transition:all .15s;border-right:1px solid var(--border)}
        .people-sort-pill:last-child,.people-view-pill:last-child{border-right:none}
        .people-sort-pill:hover,.people-view-pill:hover{color:var(--text-body);background:var(--cream)}
        .people-sort-pill.active{color:#fff;background:var(--navy)}
        .people-view-pill.active{color:#fff;background:var(--orange)}
        /* Firm-group rows inside People */
        .ppl-firm-row{display:grid;grid-template-columns:20px 1fr 120px 90px;gap:10px;padding:10px 16px;background:var(--cream);border-bottom:1px solid var(--border);cursor:pointer;align-items:center;transition:background .1s}
        .ppl-firm-row:hover{background:#f2efe9}
        .ppl-firm-arrow{color:var(--text-muted);font-size:10px}
        .ppl-firm-name{font-weight:700;color:var(--navy);font-size:13px;display:flex;align-items:center;gap:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
        .ppl-firm-health{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}
        .ppl-firm-meta{font-size:11px;color:var(--text-muted);text-align:right;font-family:var(--font-mono)}
        .ppl-firm-last{font-size:11px;color:var(--text-muted);text-align:right}
        .ppl-firm-body{background:#fff}
        .ppl-firm-body .ppl-row{grid-template-columns:20px 1.3fr 1.4fr 70px 70px 70px 60px 80px 90px;padding-left:28px}
        /* Page Activity tiles */
        .pa-tile-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}
        .pa-tile{background:#fff;border:1px solid var(--border);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column}
        .pa-tile-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}
        .pa-tile-label{font-size:12px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.5px}
        .pa-tile-total{font-family:var(--font-mono);font-size:20px;font-weight:700;color:var(--orange)}
        .pa-tile-section{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:8px 0 6px}
        .pa-tile-item{display:flex;justify-content:space-between;font-size:12px;padding:3px 0;color:var(--text-body);border-top:1px dotted #eee;gap:8px}
        .pa-tile-item:first-of-type{border-top:none}
        .pa-tile-item-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
        .pa-tile-item-count{font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0}
        .pa-tile-user{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;padding:4px 0;cursor:pointer;gap:8px;border-top:1px dotted #eee}
        .pa-tile-user:first-of-type{border-top:none}
        .pa-tile-user:hover .pa-tile-user-name{color:var(--orange)}
        .pa-tile-user-name{color:var(--text-body);font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:color .1s}
        .pa-tile-user-inst{font-size:10px;color:var(--text-muted);display:block;font-weight:400}
        .pa-tile-user-count{font-family:var(--font-mono);font-weight:700;color:var(--navy);flex-shrink:0}
        .pa-tile-empty{font-size:11px;color:var(--text-light);font-style:italic;padding:2px 0}
        @media(max-width:900px){.pa-tile-row{grid-template-columns:1fr}}
        /* People table */
        .ppl-header,.ppl-row{display:grid;grid-template-columns:1.3fr 1.4fr 70px 70px 70px 60px 80px 90px;gap:10px;padding:10px 16px;font-size:12px;align-items:center;border-bottom:1px solid #f0ede8}
        .ppl-header{background:var(--cream);color:var(--text-muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--border)}
        .ppl-row{cursor:pointer;transition:background .1s}
        .ppl-row:hover{background:#faf8f4}
        .ppl-name{font-weight:600;color:var(--navy);display:flex;align-items:center;gap:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
        .ppl-inst{color:var(--text-muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
        .ppl-num{font-family:var(--font-mono);font-size:12px;text-align:right;color:var(--navy);font-weight:600}
        .ppl-num.zero{color:#c7c3bd;font-weight:400}
        .ppl-last{font-size:11px;color:var(--text-muted)}
        .ppl-internal-tag{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:2px 6px;border-radius:3px;background:rgba(15,36,64,.08);color:var(--navy)}
        /* Person slide-out panel */
        .pp-backdrop{position:fixed;inset:0;background:rgba(10,22,40,.35);z-index:300;backdrop-filter:blur(1px)}
        .pp-panel{position:fixed;top:0;right:0;height:100vh;width:520px;max-width:96vw;background:#fff;box-shadow:-8px 0 28px rgba(0,0,0,.18);z-index:301;transform:translateX(100%);transition:transform .2s ease-out;display:flex;flex-direction:column;overflow:hidden}
        .pp-panel.open{transform:translateX(0)}
        .pp-head{background:var(--navy);color:#fff;padding:18px 20px 16px 20px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-shrink:0}
        .pp-head-inner{min-width:0;flex:1}
        .pp-name{font-size:17px;font-weight:700;font-family:var(--font-body);letter-spacing:-.1px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
        .pp-meta{font-size:11px;color:rgba(255,255,255,.7);margin-top:3px;font-family:var(--font-mono);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
        .pp-close{background:none;border:none;color:rgba(255,255,255,.7);font-size:26px;line-height:1;cursor:pointer;padding:0 4px;transition:color .1s}
        .pp-close:hover{color:#fff}
        .pp-body{flex:1;overflow-y:auto;padding:0}
        .pp-period-row{display:flex;gap:0;padding:10px 20px;border-bottom:1px solid var(--border);background:var(--cream);align-items:center;gap:10px}
        .pp-period-row .period-pills{margin-left:auto}
        .pp-stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--border)}
        .pp-stat{padding:12px 14px;text-align:center;border-right:1px solid var(--border)}
        .pp-stat:last-child{border-right:none}
        .pp-stat-val{font-family:var(--font-mono);font-size:18px;font-weight:700;color:var(--navy)}
        .pp-stat-val.zero{color:#c7c3bd;font-weight:400}
        .pp-stat-lbl{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}
        .pp-section{padding:16px 20px;border-bottom:1px solid var(--border)}
        .pp-section-title{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}
        .pp-section-title .pp-total{color:var(--navy);font-family:var(--font-mono);font-size:12px}
        .pp-pb-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
        .pp-pb-card{border:1px solid var(--border);border-radius:6px;padding:12px;background:#fff}
        .pp-pb-card.empty{opacity:.5}
        .pp-pb-card-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
        .pp-pb-label{font-size:11px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.5px}
        .pp-pb-total{font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--orange)}
        .pp-pb-item{display:flex;justify-content:space-between;font-size:11px;padding:3px 0;color:var(--text-body);border-top:1px dotted #eee}
        .pp-pb-item:first-of-type{border-top:none}
        .pp-pb-item-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-right:8px}
        .pp-pb-item-count{font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0}
        .pp-pb-empty{font-size:11px;color:var(--text-light);font-style:italic;padding:2px 0}
        .pp-session{border-bottom:1px solid #f0ede8;padding:0}
        .pp-session:last-child{border-bottom:none}
        .pp-session-head{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;cursor:pointer;font-size:12px;transition:background .1s}
        .pp-session-head:hover{background:#faf8f4}
        .pp-session-time{font-family:var(--font-mono);color:var(--text-body);font-weight:600}
        .pp-session-count{font-size:11px;color:var(--text-muted)}
        .pp-session-events{padding:0 20px 10px 34px;display:none;background:#fafaf7}
        .pp-session-events.open{display:block}
        .pp-evt{display:grid;grid-template-columns:60px 80px 1fr;gap:10px;font-size:11px;padding:4px 0;color:var(--text-body);align-items:baseline}
        .pp-evt-time{font-family:var(--font-mono);color:var(--text-muted);font-size:10px}
        .pp-evt-action{font-weight:600;color:var(--navy);text-transform:capitalize;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
        .pp-evt-detail{color:var(--text-muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
        @media(max-width:1100px){.ppl-header,.ppl-row{grid-template-columns:1.2fr 60px 60px 60px 60px 70px 80px}.ppl-header>div:nth-child(2),.ppl-row>div:nth-child(2){display:none}}
        @media(max-width:700px){.pp-panel{width:100vw}.pp-pb-grid{grid-template-columns:1fr}}
        /* Client card header */
        .an-client-header{display:flex;align-items:center;gap:10px;padding:12px 18px;cursor:pointer;border-bottom:1px solid var(--border);background:#fff;transition:background .1s;font-size:13px}
        .an-client-header:hover{background:#faf8f4}
        .an-client-health{width:8px;height:8px;border-radius:50%;flex-shrink:0}
        .an-client-tier{font-size:10px;font-weight:600;text-transform:uppercase;padding:2px 8px;border-radius:3px;background:rgba(232,119,26,.08);color:var(--orange);letter-spacing:.5px}
        .an-client-body{border-bottom:1px solid var(--border)}
        .an-client-stocks{padding:10px 18px;background:var(--cream);border-bottom:1px solid #f0ede8}
        .an-client-stocks-title{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
        .an-client-stock-pill{display:inline-block;font-size:11px;font-family:var(--font-body);padding:3px 10px;border-radius:4px;background:#fff;border:1px solid var(--border);margin:2px 4px 2px 0;color:var(--navy)}
        .an-client-stock-pill em{font-style:normal;font-family:var(--font-mono);font-size:10px;color:var(--text-muted);margin-left:4px}

        /* ===== SCORECARDS ===== */
        .sc-filter-pill{padding:4px 12px;border:1px solid var(--border);border-radius:14px;background:#fff;font-size:11px;font-family:var(--font-body);cursor:pointer;color:var(--text-muted);transition:all .15s}
        .sc-filter-pill.active,.sc-filter-pill:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
        .sc-table{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;overflow-x:auto}
        .sc-header{display:grid;grid-template-columns:70px 1fr 90px 80px 50px 160px 60px;padding:8px 14px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--cream);border-bottom:1px solid var(--border)}
        .sc-row{display:grid;grid-template-columns:70px 1fr 90px 80px 50px 160px 60px;padding:8px 14px;border-bottom:1px solid #f0ede8;font-size:12px;align-items:center;gap:4px;cursor:pointer}
        .sc-row:hover{background:#faf8f4}
        .sc-time{font-family:var(--font-mono);font-size:10px;color:var(--text-light)}
        .sc-query{color:var(--text-body);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .sc-intent{font-size:10px;color:var(--text-muted);font-family:var(--font-mono)}
        .sc-tickers{font-size:10px;color:var(--navy);font-family:var(--font-mono)}
        .sc-sources{font-size:11px;color:var(--text-muted);text-align:center;font-family:var(--font-mono)}
        .sc-flags{display:flex;gap:4px;flex-wrap:wrap}
        .sc-flag{font-size:9px;padding:2px 6px;border-radius:8px;font-weight:600;white-space:nowrap}
        .sc-flag--stale{background:#fef3cd;color:#856404}
        .sc-flag--mismatch{background:#f8d7da;color:#721c24}
        .sc-flag--low{background:#d1ecf1;color:#0c5460}
        .sc-flag--single{background:#e2e3e5;color:#383d41}
        .sc-detail{background:#faf8f4;border-bottom:1px solid var(--border)}
        .sc-detail-inner{padding:12px 18px;font-size:12px;color:var(--text-body);line-height:1.6}
        .sc-source{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);padding:2px 0}
        .sc-grade-btn button{font-size:10px;padding:3px 8px}

        /* ===== HOMEPAGE ===== */
        .hp-datebar{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:2rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
        .hp-date{font-family:var(--font-body);font-size:1rem;color:var(--navy);font-weight:600;letter-spacing:.2px}
        .hp-stats{display:flex;gap:1.5rem}
        .hp-stat{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted)}
        .hp-stat b{color:var(--navy);font-weight:700}
        .hp-section-title{font-family:var(--font-body);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--navy);margin-bottom:.85rem;display:flex;align-items:center;gap:.75rem;border-bottom:none;padding-bottom:0;padding-left:10px;border-left:3px solid var(--orange)}
        .hp-section-link{font-family:var(--font-body);font-size:.72rem;font-weight:500;color:var(--orange);cursor:pointer;letter-spacing:.2px;margin-left:auto}
        .hp-section-link:hover{text-decoration:underline}
        /* Digest strip — sliding carousel */
        .hp-digest-wrap{position:relative;margin-bottom:2.25rem}
        .hp-digest{display:flex;gap:0;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none;padding:0 32px 0 0;align-items:stretch}
        .hp-digest::-webkit-scrollbar{display:none}
        .hp-digest-story{flex:0 0 200px;padding:0 16px;border-right:1px solid var(--border);cursor:pointer;scroll-snap-align:start}
        .hp-digest-story:last-child{border-right:none}
        .hp-digest-story:hover .hp-digest-title{color:var(--orange)}
        .hp-digest-title{font-size:.75rem;font-weight:600;color:var(--navy);line-height:1.3;transition:color .12s;margin-bottom:3px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
        .hp-digest-ticker{font-family:var(--font-mono);font-size:.6rem;color:var(--orange);font-weight:500}
        .hp-digest-scroll{position:absolute;top:0;bottom:0;width:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;color:var(--orange);font-size:1.2rem;opacity:0;pointer-events:none;transition:opacity .2s;z-index:2}
        .hp-digest-scroll.visible{opacity:1;pointer-events:auto}
        .hp-digest-scroll:hover{color:var(--navy)}
        .hp-digest-scroll--left{left:0;background:linear-gradient(270deg,transparent,var(--cream) 60%)}
        .hp-digest-scroll--right{right:0;background:linear-gradient(90deg,transparent,var(--cream) 60%)}
        /* ── Earnings flash card slider (Session 2) ── */
        .ef-slider-wrap{position:relative;margin-bottom:2.25rem}
        .ef-slider{display:flex;gap:14px;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none;padding:4px 0}
        .ef-slider::-webkit-scrollbar{display:none}
        .ef-slider-arrow{position:absolute;top:0;bottom:0;width:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;color:var(--orange);font-size:1.2rem;z-index:2;opacity:0;pointer-events:none;transition:opacity .2s}
        .ef-slider-arrow.visible{opacity:1;pointer-events:auto}
        .ef-slider-arrow:hover{color:var(--navy)}
        .ef-slider-arrow--left{left:0;background:linear-gradient(270deg,transparent,var(--cream) 60%)}
        .ef-slider-arrow--right{right:0;background:linear-gradient(90deg,transparent,var(--cream) 60%)}
        .ef-card{flex:0 0 260px;scroll-snap-align:start;background:#fff;border:1px solid var(--border);border-radius:8px;padding:16px 18px;display:flex;flex-direction:column;cursor:pointer;transition:border-color .15s,box-shadow .15s;position:relative;overflow:hidden}
        .ef-card:hover{border-color:var(--navy);box-shadow:0 3px 14px rgba(10,22,40,.08)}
        .ef-card--today::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--orange)}
        .ef-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;gap:10px}
        .ef-card-ticker{font-family:var(--font-mono);font-size:.78rem;font-weight:600;color:var(--orange);letter-spacing:.04em}
        .ef-card-company{font-family:var(--font-body);font-size:.95rem;font-weight:600;color:var(--navy);line-height:1.25;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
        .ef-card-state{width:8px;height:8px;border-radius:50%;flex-shrink:0}
        .ef-card-state--pending{background:var(--orange)}
        .ef-card-state--reviewed{background:#2e7d32}
        .ef-card-meta{font-size:.65rem;color:var(--text-muted);margin-bottom:12px;font-family:var(--font-body);letter-spacing:.2px}
        .ef-card-meta b{color:var(--navy);font-weight:500}
        .ef-card-grid{display:flex;gap:12px;border-top:1px solid var(--border);padding-top:8px;flex-wrap:wrap}
        .ef-card-metric{display:flex;align-items:baseline;gap:4px}
        .ef-card-metric-label{font-size:.55rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;font-family:var(--font-body)}
        .ef-card-metric-value{font-family:var(--font-mono);font-size:.78rem;font-weight:500;color:var(--navy)}
        .ef-card-metric-value--muted{color:var(--text-muted)}
        /* Upcoming Earnings date-strip */
        .eu-strip{margin-bottom:1.25rem;font-family:var(--font-body)}
        .eu-strip-header{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:8px}
        .eu-strip-row{display:flex;align-items:center;gap:14px;padding:7px 0;border-bottom:1px solid #f0ede8}
        .eu-strip-row:last-child{border-bottom:none}
        .eu-strip-date{flex:0 0 80px;font-family:var(--font-mono);font-size:.72rem;font-weight:600;color:var(--navy);white-space:nowrap}
        .eu-strip-date--est{color:var(--text-muted)}
        .eu-strip-date--soon{color:var(--orange);font-weight:700}
        .eu-strip-stocks{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:0}
        .eu-strip-stock{cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:color .12s}
        .eu-strip-stock:hover{color:var(--orange)}
        .eu-strip-ticker{font-family:var(--font-mono);font-size:.7rem;font-weight:600;color:var(--orange)}
        .eu-strip-name{font-size:.75rem;font-weight:500;color:var(--navy)}
        .eu-strip-analyst{font-size:.65rem;color:var(--text-muted);font-weight:400}
        .eu-strip-fl{font-size:.45rem;font-weight:700;background:rgba(232,119,26,.12);color:var(--orange);padding:1px 4px;border-radius:2px;vertical-align:middle;margin-left:1px}
        .eu-strip-est{font-size:.55rem;color:var(--text-muted);font-style:italic;margin-left:1px}
        .eu-strip-row--today{background:rgba(232,119,26,.04);border-radius:4px;margin:0 -8px;padding:7px 8px}
        .eu-strip-more{font-size:.7rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:color .12s}
        .eu-strip-more:hover{color:var(--orange)}
        .eu-strip-divider{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin:12px 0 8px}
        /* Reports grid */
        .hp-reports{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:2.25rem}
        .hp-report-featured{grid-row:span 3;background:#fff;border:1px solid var(--border);border-radius:12px;padding:24px;display:flex;flex-direction:column;cursor:pointer}
        .hp-report-featured:hover{border-color:var(--orange);box-shadow:0 4px 16px rgba(232,119,26,.06)}
        .hp-report-badge{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;padding:3px 8px;border-radius:3px;display:inline-block;margin-bottom:10px}
        .hp-report-badge--company{background:rgba(232,119,26,.08);color:var(--orange)}
        .hp-report-badge--initiation{background:rgba(128,90,213,.08);color:#805ad5}
        .hp-report-ticker{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);margin-bottom:6px}
        .hp-report-title{font-family:var(--font-body);font-size:1rem;font-weight:600;color:var(--navy);line-height:1.4;margin-bottom:10px;cursor:pointer}
        .hp-report-title:hover{color:var(--orange)}
        .hp-report-summary{font-size:13.5px;color:var(--text-body);line-height:1.7;flex:1}
        .hp-report-meta{font-size:.72rem;color:var(--text-muted);margin-top:12px;padding-top:10px;border-top:1px solid var(--border-light)}
        .hp-report-small{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px 18px;cursor:pointer;transition:all .15s}
        .hp-report-small:hover{border-color:var(--orange);box-shadow:0 3px 10px rgba(232,119,26,.06)}
        .hp-report-small .hp-report-title{font-family:var(--font-body);font-size:.88rem;font-weight:600;margin-bottom:4px}
        .hp-report-small .hp-report-summary{font-size:.8rem;color:var(--text-muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
        /* Weekly card */
        .hp-weekly{background:var(--navy-deep);border-radius:12px;padding:28px 32px;margin-bottom:2.25rem;border-left:4px solid var(--orange);cursor:pointer;transition:box-shadow .15s}
        .hp-weekly:hover{box-shadow:0 6px 24px rgba(10,22,40,.25)}
        .hp-weekly-label{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--orange);margin-bottom:8px}
        .hp-weekly-title{font-family:var(--font-body);font-size:1.05rem;font-weight:600;color:#fff;line-height:1.4;margin-bottom:8px}
        .hp-weekly-date{font-size:.75rem;color:rgba(255,255,255,.4);margin-bottom:14px}
        .hp-weekly-cta{font-size:.82rem;font-weight:600;color:var(--orange);letter-spacing:.2px}
        .hp-weekly-cta:hover{text-decoration:underline}
        /* Bottom 2-col: FL + Sectors */
        .hp-bottom{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:1.5rem}
        .hp-fl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
        .hp-fl-item{display:flex;align-items:baseline;gap:8px;padding:8px 12px;background:var(--cream);border:1px solid var(--border-light);border-radius:6px;cursor:pointer;transition:all .15s}
        .hp-fl-item:hover{border-color:var(--orange);background:rgba(232,119,26,.04)}
        .hp-fl-ticker{font-family:var(--font-mono);font-size:.7rem;font-weight:700;color:var(--orange);min-width:36px}
        .hp-fl-name{font-size:.8rem;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .hp-sector-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--border-light);cursor:pointer;transition:color .15s}
        .hp-sector-row:hover{color:var(--orange)}
        .hp-sector-name{font-size:.85rem;font-weight:500;color:var(--navy)}
        .hp-sector-meta{font-size:.72rem;color:var(--text-muted);text-align:right}
        .hp-sector-meta b{font-family:var(--font-mono);color:var(--navy);font-weight:600}
        /* FL + Sectors box styling */
        .hp-bottom > div{background:var(--cream);border:1px solid var(--border-light);border-radius:10px;padding:1.25rem}
        .hp-fl-item{background:#fff}
        .hp-section-subtitle{font-size:.82rem;color:var(--text-muted);margin-top:-.5rem;margin-bottom:1rem}
        /* Presentations */
        .hp-pres-grid{display:flex;gap:16px;flex-wrap:wrap}
        .hp-pres-card{width:240px;background:#fff;border:1px solid var(--border-light);border-radius:12px;padding:20px;display:flex;flex-direction:column;position:relative;transition:all .2s}
        .hp-pres-card:hover{border-color:var(--orange);box-shadow:0 4px 16px rgba(10,22,40,.08)}
        .hp-pres-title{font-family:var(--font-body);font-size:.95rem;font-weight:600;color:var(--navy);line-height:1.4;margin-bottom:6px}
        .hp-pres-analyst{font-size:.75rem;color:var(--text-muted);margin-bottom:8px}
        .hp-pres-desc{font-size:.8rem;color:var(--text-body);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:auto;padding-bottom:14px}
        .hp-pres-cta{display:inline-block;margin-top:auto;padding:8px 18px;background:var(--orange);color:#fff;border:none;border-radius:6px;font-family:var(--font-body);font-size:.78rem;font-weight:600;cursor:pointer;text-align:center;transition:background .15s}
        .hp-pres-cta:hover{background:#d16a15}
        .hp-pres-upload{width:240px;border:2px dashed var(--border-light);border-radius:12px;padding:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;min-height:180px}
        .hp-pres-upload:hover,.hp-pres-upload.drag-over{border-color:var(--orange);background:rgba(232,119,26,.03)}
        .hp-pres-upload-icon{font-size:2rem;color:var(--border-light);margin-bottom:8px;transition:color .2s}
        .hp-pres-upload:hover .hp-pres-upload-icon{color:var(--orange)}
        .hp-pres-upload-label{font-size:.82rem;color:var(--text-muted);font-weight:500}
        .hp-pres-admin-bar{position:absolute;top:8px;right:8px;display:none;gap:4px}
        .hp-pres-card:hover .hp-pres-admin-bar{display:flex}
        .hp-pres-admin-btn{background:none;border:none;cursor:pointer;padding:4px;color:var(--text-muted);font-size:.8rem;transition:color .15s}
        .hp-pres-admin-btn:hover{color:var(--orange)}
        .hp-pres-edit-form{display:flex;flex-direction:column;gap:8px}
        .hp-pres-edit-input{font-family:var(--font-body);padding:6px 10px;border:1px solid var(--border-light);border-radius:5px;font-size:.82rem}
        .hp-pres-edit-input:focus{outline:none;border-color:var(--orange)}
        .hp-pres-edit-textarea{font-family:var(--font-body);padding:6px 10px;border:1px solid var(--border-light);border-radius:5px;font-size:.8rem;resize:vertical;min-height:60px}
        .hp-pres-edit-textarea:focus{outline:none;border-color:var(--orange)}
        .hp-pres-edit-actions{display:flex;gap:6px;margin-top:2px}
        .hp-pres-edit-save{padding:6px 14px;background:var(--orange);color:#fff;border:none;border-radius:5px;font-size:.75rem;font-weight:600;cursor:pointer;font-family:var(--font-body)}
        .hp-pres-edit-cancel{padding:6px 14px;background:#eee;color:var(--text-body);border:none;border-radius:5px;font-size:.75rem;cursor:pointer;font-family:var(--font-body)}
        /* ── Homepage redesign (21 May 2026) — PSA Today grid + uniform report cards ── */
        /* Digest as 3-col grid (overrides the horizontal-scroll layout above when --grid is set) */
        /* Adaptive grid — auto-fit fills available width with as many ~300px cols as fit.
           gap:1px + container background = clean dividers regardless of column count.
           No nth-child rules needed; 2/3/4/5/6 stories all render cleanly.
           UPDATE 22 May 2026: container background switched to transparent so
           when the auto-fit grid creates more columns than items (e.g. 5
           stories on a 6-col wide screen), the empty slot doesn't render as
           a grey ghost. Dividers now come from cell-level inset box-shadows. */
        .hp-digest.hp-digest--grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0;overflow:hidden;padding:0;background:transparent;border:1px solid var(--border);border-radius:8px}
        .hp-digest--grid .hp-digest-story{flex:none;padding:14px 16px;background:#fff;scroll-snap-align:none;min-height:78px;display:flex;flex-direction:column;gap:6px;border:none;box-shadow:inset -1px 0 0 var(--border),inset 0 -1px 0 var(--border)}
        .hp-digest--grid .hp-digest-story:hover{background:var(--cream)}
        .hp-digest--grid .hp-digest-row{display:flex;align-items:center;gap:8px}
        .hp-digest-pill{font-family:var(--font-mono);font-size:.62rem;font-weight:700;color:var(--orange);background:rgba(232,119,26,.08);padding:2px 7px;border-radius:3px;letter-spacing:.2px;flex-shrink:0;text-transform:uppercase}
        .hp-digest-pill--strategy{background:rgba(124,92,191,.1);color:var(--purple)}
        .hp-digest-pill--market{background:rgba(46,109,164,.12);color:var(--blue);font-weight:700}
        .hp-digest-co{font-size:.7rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
        .hp-digest--grid .hp-digest-title{font-size:.82rem;font-weight:600;color:var(--navy);line-height:1.4;-webkit-line-clamp:3;margin-bottom:0}
        .hp-digest--grid .hp-digest-ticker{display:none}  /* old scroller artefact */
        .hp-digest-wrap:has(.hp-digest--grid) .hp-digest-scroll{display:none}  /* hide scroller arrows when grid mode */

        /* Reports — 4 uniform cards (overrides the 1-featured + 3-small layout when --uniform is set) */
        .hp-reports.hp-reports--uniform{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:2.25rem}
        .hp-report-card{background:#fff;border:1px solid var(--border);border-left:3px solid var(--orange);border-radius:8px;padding:14px 16px 14px;cursor:pointer;transition:all .15s;display:flex;flex-direction:column;min-height:200px}
        .hp-report-card:hover{border-color:var(--orange);box-shadow:0 4px 16px rgba(10,22,40,.07);transform:translateY(-1px)}
        /* Same-line header: badge + ticker on one row */
        .hp-report-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:nowrap;min-width:0}
        .hp-report-ticker-inline{font-family:var(--font-mono);font-size:.68rem;color:var(--text-muted);letter-spacing:.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
        .hp-report-ticker-inline b{color:var(--navy);font-weight:700}
        /* Legacy class kept for any callers (Internal Platform shared CSS, defensive) */
        .hp-report-badges{display:flex;align-items:center;gap:6px;margin-bottom:10px}
        .hp-report-card .hp-report-badge{font-family:var(--font-mono);font-size:.56rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;padding:2px 7px;border-radius:3px;display:inline-block;margin-bottom:0;flex-shrink:0}
        .hp-report-badge--strategy{background:rgba(124,92,191,.1);color:var(--purple)}
        .hp-report-badge--daily{background:rgba(45,138,86,.1);color:var(--green)}
        .hp-report-badge--weekly{background:rgba(46,109,164,.1);color:var(--blue)}
        .hp-report-badge--earnings{background:rgba(201,168,76,.16);color:#8a6f1c}
        .hp-report-badge--update{background:rgba(46,109,164,.1);color:var(--blue)}
        .hp-report-badge--sector{background:rgba(124,92,191,.1);color:var(--purple)}
        .hp-report-badge--note{background:var(--cream);color:var(--text-muted);border:1px solid var(--border-light)}
        .hp-report-ticker-line{font-family:var(--font-mono);font-size:.68rem;color:var(--text-muted);margin-bottom:6px;letter-spacing:.2px}
        .hp-report-ticker-line b{color:var(--navy);font-weight:700}
        .hp-report-card .hp-report-title{font-family:var(--font-body);font-size:.88rem;font-weight:600;color:var(--navy);line-height:1.35;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
        .hp-report-excerpt{font-size:.74rem;color:var(--text-muted);line-height:1.55;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
        .hp-report-excerpt--empty{flex:1}
        .hp-report-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--border-light);display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.62rem;color:var(--text-muted);letter-spacing:.2px}
        .hp-report-date{color:var(--navy);font-weight:600}
        .hp-report-analyst{margin-left:auto}

        /* Responsive */
        @media(max-width:1200px){
            .hp-reports.hp-reports--uniform{grid-template-columns:repeat(2,1fr)}
            /* Auto-fit already handles responsive narrowing — nothing to override */
        }
        @media(max-width:900px){
            .hp-reports{grid-template-columns:1fr}
            .hp-report-featured{grid-row:auto}
            .hp-reports.hp-reports--uniform{grid-template-columns:1fr}
            .hp-digest.hp-digest--grid{grid-template-columns:1fr}
            .hp-digest--grid .hp-digest-story{border-right:none}
            .hp-bottom{grid-template-columns:1fr}
            .hp-digest-story{flex:0 0 160px;padding:0 12px}
            .hp-digest-title{-webkit-line-clamp:2;font-size:.7rem}
        }
        @media(max-width:600px){
            .hp-datebar{flex-direction:column;gap:.5rem}
            .hp-stats{flex-wrap:wrap;gap:.75rem}
            .hp-market-bar{grid-template-columns:1fr;gap:6px}
            .hp-market-price{font-size:1.25rem}
            .hp-fl-grid{grid-template-columns:1fr 1fr}
            .header-top{padding:6px .5rem 0}
            .header-nav{justify-content:center;padding:0;overflow:hidden}
            .quote-popup{width:calc(100vw - 16px);right:auto;left:50%;transform:translateX(-50%)}
            .nav-tab{padding:0 .45rem;font-size:.68rem}
            .hp-pres-card,.hp-pres-upload{width:100%}
        }

        /* Content modal */
        .hp-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(10,22,40,.55);display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;pointer-events:none;transition:opacity .2s}
        .hp-modal-overlay.active{opacity:1;pointer-events:auto}
        .hp-modal{background:#fff;border-radius:14px;width:680px;max-width:92vw;max-height:82vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(10,22,40,.25);transform:translateY(12px);transition:transform .25s}
        .hp-modal-overlay.active .hp-modal{transform:translateY(0)}
        .hp-modal-header{padding:24px 28px 16px;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
        .hp-modal-badge{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;padding:3px 8px;border-radius:3px;display:inline-block;margin-bottom:8px}
        .hp-modal-badge--daily{background:rgba(72,187,120,.1);color:#2f855a}
        .hp-modal-badge--weekly{background:rgba(66,153,225,.1);color:#2b6cb0}
        .hp-modal-badge--company{background:rgba(232,119,26,.08);color:var(--orange)}
        .hp-modal-badge--strategy{background:rgba(128,90,213,.08);color:#805ad5}
        .hp-modal-title{font-family:var(--font-body);font-size:1.1rem;font-weight:600;color:var(--navy);line-height:1.4}
        .hp-modal-meta{font-size:.75rem;color:var(--text-muted);margin-top:6px}
        .hp-modal-close{background:none;border:none;font-size:1.5rem;color:var(--text-muted);cursor:pointer;padding:0 4px;line-height:1;flex-shrink:0}
        .hp-modal-close:hover{color:var(--navy)}
        .hp-modal-body{padding:20px 28px;overflow-y:auto;flex:1;font-size:13.5px;color:var(--text-body);line-height:1.7}
        .hp-modal-body p{margin-bottom:12px}
        .hp-modal-body .hp-modal-section{margin-bottom:20px}
        .hp-modal-body .hp-modal-section-title{font-family:var(--font-body);font-size:.92rem;font-weight:600;color:var(--navy);margin-bottom:8px}
        .hp-modal-body .hp-modal-companies{font-size:.78rem;color:var(--text-muted);margin-bottom:6px}
        .hp-modal-body .hp-modal-kp{list-style:none;padding:0;margin:0 0 12px}
        .hp-modal-body .hp-modal-kp li{padding:8px 0 8px 16px;border-bottom:1px solid var(--border-light);position:relative;font-size:.85rem}
        .hp-modal-body .hp-modal-kp li::before{content:'';position:absolute;left:0;top:14px;width:6px;height:6px;border-radius:50%;background:var(--orange)}
        .hp-modal-body .hp-modal-tag{display:inline-block;font-size:.7rem;font-weight:500;padding:3px 10px;border-radius:12px;background:rgba(66,153,225,.08);color:#2b6cb0;margin:3px 4px 3px 0}
        .hp-modal-body .hp-modal-theme{display:inline-block;font-size:.72rem;font-weight:500;padding:4px 12px;border-radius:14px;background:rgba(66,153,225,.08);color:#2b6cb0;margin:3px 4px 3px 0}
        .hp-modal-footer{padding:14px 28px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end}
        .hp-modal-dl{background:var(--orange);color:#fff;border:none;padding:9px 22px;border-radius:6px;font-size:.82rem;font-weight:600;cursor:pointer;font-family:var(--font-body);transition:background .15s}
        .hp-modal-dl:hover{background:#d16a15}
        .hp-modal-loading{text-align:center;padding:40px 0;color:var(--text-muted);font-size:.85rem}
        @media(max-width:600px){
            .hp-modal{max-width:98vw;max-height:90vh}
            .hp-modal-header,.hp-modal-body,.hp-modal-footer{padding-left:18px;padding-right:18px}
        }

        .footer{text-align:center;padding:2rem;border-top:1px solid var(--border-light);margin-top:2.5rem}.footer-text{font-size:.72rem;color:var(--text-light)}.footer-stats{font-size:.68rem;color:var(--text-light);margin-top:.25rem}
        .hidden{display:none!important}
        @media(max-width:768px){
            .header-top{display:grid;grid-template-columns:1fr auto;padding:8px .75rem 6px;height:auto}
            .header-left{display:none}
            .header-center{display:contents}
            .header-brand{grid-column:1;grid-row:1;font-size:1.2rem;align-self:center}
            .header-tagline{display:none}
            .header-right{grid-column:2;grid-row:1;display:grid;grid-template-columns:auto auto auto;grid-template-rows:auto auto;align-items:center;justify-items:end;gap:2px 0}
            .lang-toggle{grid-row:1;grid-column:1;transform:scale(.85);transform-origin:right center;margin-right:-6px}
            .header-avatar{grid-row:1;grid-column:3;width:26px;height:26px;font-size:.6rem}
            .esc-badge-wrap{grid-row:1;grid-column:2}
            .logout-btn{display:none}
            .header-user{display:none}
            .quote-wrap{grid-row:2;grid-column:1/4;justify-self:end}
            .quote-btn{font-size:.62rem;padding:.2rem .5rem;border-color:rgba(232,119,26,.45);background:rgba(232,119,26,.1);color:rgba(255,255,255,.8)}
            .quote-btn .quote-yen{font-size:.68rem}
            .quote-popup{width:calc(100vw - 24px);left:0}
            .esc-badge-wrap svg{width:14px;height:14px}
            .header-nav{display:flex;justify-content:center;padding:0;height:36px;overflow:hidden}
            .header-nav::-webkit-scrollbar{display:none}
            .nav-tab{padding:0 .6rem;font-size:.72rem;height:36px;white-space:nowrap;flex-shrink:0}
            .content{padding:1.5rem .75rem;overflow-x:hidden;max-width:100vw}
            .metric-cards,.fl-stats{flex-direction:column}
            .login-card,.cp-card{width:92%;padding:2rem}
            .sc-header,.sc-row{grid-template-columns:50px 1fr 70px 50px;font-size:11px;padding:6px 10px}
            .sc-header>div:nth-child(5),.sc-header>div:nth-child(6),.sc-header>div:nth-child(7),
            .sc-row>div:nth-child(5),.sc-row>div:nth-child(6),.sc-row>div:nth-child(7){display:none}
            .search-row{grid-template-columns:50px 1fr 50px;padding:6px 10px}
            .search-row>div:nth-child(4){display:none}
            .cov-fi{width:100%;max-width:100%}
            .cov-fb{flex-wrap:wrap;padding:1rem}
            .cov-sc{padding:16px}
            .cov-ct thead th,.cov-ct tbody td{padding:8px 10px;font-size:12px}
            .earn-sel-search{min-width:0;max-width:100%}
            .earn-sel-grid{grid-template-columns:1fr}
            .earn-sel-top{gap:10px}
            .earn-sel-title{font-size:1rem}
            .sc-search input{min-width:0;width:100%}
            .mkt-cards{gap:8px}
            .mkt-card{padding:8px 10px;font-size:12px}
            .mkt-card-name{font-size:10px}
            .strat-hero-sub{font-size:11px}
            .strat-hero{padding:16px}
            .co-hero{padding:16px}
            .co-nm{font-size:24px}
            .co-pr{font-size:24px}
            .co-kpi{grid-template-columns:repeat(2,1fr)}
            .an-stat-row{grid-template-columns:repeat(2,1fr)!important}
            .doc-table th,.doc-table td{padding:.5rem .6rem;font-size:.8rem}
            .hp-pres-card{width:100%}
            .hp-pres-grid{flex-direction:column}
            .wg{margin-bottom:1rem}
            .wg-b{padding:14px}
            .cov-sc-perf{font-size:.65rem}
        }
        @media(max-width:480px){
            .content{padding:1rem .5rem}
            .cov-sc-stats{gap:6px}
            .cov-sc-sv{font-size:12px}
            .cov-sc-name{font-size:13px}
            .hp-fl-grid{grid-template-columns:1fr}
            .co-nm{font-size:20px}
            .co-pr{font-size:20px}
            .co-kpi{grid-template-columns:1fr 1fr}
            .an-stat-row{grid-template-columns:1fr 1fr!important}
            .earn-kpi-row{grid-template-columns:1fr 1fr}
            .strat-card-t{font-size:10px}
        }



        /* ===== COVERAGE MANAGEMENT TAB ===== */
        .cm-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:1.5rem}
        .cm-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:1rem}
        .cm-search{font-family:var(--font-body);padding:7px 14px;border:1px solid var(--border-light);border-radius:6px;font-size:13px;flex:1;max-width:400px;background:#fff}
        .cm-search:focus{outline:none;border-color:var(--orange)}
        .cm-add-btn{font-family:var(--font-body);padding:8px 18px;border:none;border-radius:6px;font-size:13px;font-weight:600;background:var(--orange);color:#fff;cursor:pointer;white-space:nowrap;transition:opacity .2s}
        .cm-add-btn:hover{opacity:.85}
        .cm-table-wrap{background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(10,22,40,.06);overflow:hidden;overflow-x:auto}
        .cm-table{width:100%;border-collapse:collapse}
        .cm-table thead th{background:var(--cream);color:var(--navy);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:9px 12px;text-align:left;cursor:pointer;user-select:none;white-space:nowrap;position:sticky;top:0;z-index:2;border-bottom:2px solid var(--border-light)}
        .cm-table thead th:hover{background:#f0ece6}
        .cm-table thead th .cm-sort{display:inline-block;margin-left:3px;opacity:.4;font-size:9px}
        .cm-table thead th.sorted .cm-sort{opacity:1}
        .cm-table tbody tr{border-bottom:1px solid var(--border-light);transition:background .15s}
        .cm-table tbody tr:hover{background:rgba(10,22,40,.02)}
        .cm-table tbody tr.cm-editing{background:rgba(232,119,26,.04)}
        .cm-table tbody td{padding:7px 12px;font-size:13px}
        .cm-inline-input{font-family:var(--font-body);font-size:13px;padding:3px 6px;border:none;border-bottom:1.5px solid var(--border-light);background:transparent;width:100%;box-sizing:border-box}
        .cm-inline-input:focus{outline:none;border-bottom-color:var(--orange)}
        .cm-inline-select{font-family:var(--font-body);font-size:13px;padding:3px 4px;border:1px solid var(--border-light);border-radius:4px;background:#fff;cursor:pointer}
        .cm-inline-select:focus{outline:none;border-color:var(--orange)}
        .cm-actions{display:flex;gap:4px;white-space:nowrap}
        .cm-btn{font-family:var(--font-body);font-size:12px;padding:6px 16px;border-radius:6px;cursor:pointer;font-weight:600;border:1px solid;transition:opacity .2s}
        .cm-btn:hover{opacity:.85}
        .cm-btn-edit{background:var(--navy);color:#fff;border-color:var(--navy)}
        .cm-btn-save{background:#2e7d32;color:#fff;border-color:#2e7d32}
        .cm-btn-cancel{background:#fff;color:var(--text-muted);border-color:var(--border-light)}
        .cm-btn-delete{background:#fff;color:#c62828;border-color:#c62828}
        .cm-fl-check{width:16px;height:16px;accent-color:var(--orange);cursor:pointer}
        .cm-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:1000;display:flex;align-items:center;justify-content:center}
        .cm-modal{background:#fff;border-radius:10px;padding:28px 32px;width:480px;max-width:95vw;max-height:85vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.2)}
        .cm-modal h3{font-family:var(--font-body);font-size:18px;font-weight:700;color:var(--navy);margin:0 0 18px 0}
        .cm-modal-field{margin-bottom:12px}
        .cm-modal-field label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:4px}
        .cm-modal-field input,.cm-modal-field select{font-family:var(--font-body);width:100%;padding:8px 10px;border:1px solid var(--border-light);border-radius:6px;font-size:13px;box-sizing:border-box}
        .cm-modal-field input:focus,.cm-modal-field select:focus{outline:none;border-color:var(--orange)}
        .cm-modal-field .cm-required{color:#c62828}
        .cm-modal-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
        .cm-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border-light)}
        .cm-toast{position:fixed;bottom:24px;right:24px;padding:10px 20px;border-radius:8px;font-family:var(--font-body);font-size:13px;font-weight:600;color:#fff;z-index:1100;opacity:0;transition:opacity .3s;pointer-events:none}
        .cm-toast.show{opacity:1}
        .cm-toast-success{background:#2e7d32}
        .cm-toast-error{background:#c62828}
        .cm-analyst-section{margin-bottom:1.5rem}
        .cm-analyst-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
        .cm-analyst-header h3{font-family:var(--font-body);font-size:16px;font-weight:700;color:var(--navy);margin:0}
        .cm-analyst-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
        .cm-analyst-card{background:#fff;border-radius:8px;padding:12px 16px;box-shadow:0 2px 8px rgba(10,22,40,.06);border-left:3px solid var(--navy);cursor:pointer;transition:box-shadow .2s,border-color .2s;position:relative}
        .cm-analyst-card:hover{box-shadow:0 4px 14px rgba(10,22,40,.1)}
        .cm-analyst-card.cm-active{border-left-color:var(--orange);background:rgba(232,119,26,.03)}
        .cm-analyst-name{font-family:var(--font-body);font-size:14px;font-weight:700;color:var(--navy);margin-bottom:4px}
        .cm-analyst-counts{font-size:12px;color:var(--text-muted);display:flex;gap:8px}
        .cm-analyst-counts span{display:inline-flex;align-items:center;gap:3px}
        .cm-analyst-actions{position:absolute;top:8px;right:8px;display:flex;gap:3px;opacity:0;transition:opacity .2s}
        .cm-analyst-card:hover .cm-analyst-actions{opacity:1}
        .cm-analyst-actions button{font-family:var(--font-body);font-size:10px;padding:2px 8px;border-radius:3px;cursor:pointer;border:1px solid var(--border-light);background:#fff;color:var(--text-muted);transition:all .15s}
        .cm-analyst-actions button:hover{border-color:var(--navy);color:var(--navy)}
        .cm-analyst-actions .cm-analyst-del:hover{border-color:#c62828;color:#c62828}
        @media(max-width:700px){.cm-stats-row{grid-template-columns:repeat(2,1fr)}.cm-toolbar{flex-direction:column;align-items:stretch}.cm-search{max-width:none}.cm-analyst-grid{grid-template-columns:1fr}}

        /* ===== ASK PSA CHAT DRAWER ===== */
        @keyframes fab-glow{0%,100%{box-shadow:0 0 12px rgba(232,119,26,.3),0 4px 16px rgba(10,22,40,.25)}50%{box-shadow:0 0 22px rgba(232,119,26,.5),0 4px 20px rgba(10,22,40,.3)}}
        @keyframes fab-shimmer{0%{background-position:200% center}100%{background-position:-200% center}}
        @keyframes fab-border-spin{0%{--fab-angle:0deg}100%{--fab-angle:360deg}}
        @property --fab-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
        .ask-fab{position:fixed;bottom:20px;right:20px;z-index:900;color:#fff;border:none;padding:12px 26px;border-radius:26px;font-family:var(--font-body);font-size:.9rem;font-weight:700;cursor:pointer;letter-spacing:.4px;transition:all .25s cubic-bezier(.4,0,.2,1);background:linear-gradient(135deg,var(--navy) 0%,#1a3a5c 40%,var(--orange) 100%);background-size:200% 200%;background-position:0% 50%;animation:fab-glow 3s ease-in-out infinite,fab-border-spin 4s linear infinite;box-shadow:0 0 12px rgba(232,119,26,.3),0 4px 16px rgba(10,22,40,.25);outline:2px solid transparent;outline-offset:2px}
        .ask-fab::before{content:'';position:absolute;inset:-3px;border-radius:29px;padding:2px;background:conic-gradient(from var(--fab-angle),var(--orange),var(--navy),var(--orange));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.7}
        .ask-fab::after{content:'';position:absolute;inset:0;border-radius:26px;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.15) 50%,transparent 70%);background-size:200% 100%;animation:fab-shimmer 3s ease-in-out infinite;pointer-events:none}
        .ask-fab:hover{background-position:100% 50%;transform:translateY(-2px) scale(1.04);box-shadow:0 0 30px rgba(232,119,26,.5),0 8px 32px rgba(10,22,40,.35)}
        .ask-fab:active{transform:translateY(0) scale(.97)}
        .ask-fab.hidden{display:none}
        @keyframes ask-header-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
        @keyframes ask-pulse-ring{0%{box-shadow:0 0 0 0 rgba(232,119,26,.15)}70%{box-shadow:0 0 0 6px rgba(232,119,26,0)}100%{box-shadow:0 0 0 0 rgba(232,119,26,0)}}
        @keyframes ask-slide-up{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
        @keyframes askDot{0%,80%,100%{transform:scale(.4);opacity:.3}40%{transform:scale(1);opacity:1}}
        @keyframes askFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
        @keyframes askDotPulse{0%,100%{background:var(--orange)}50%{background:var(--navy)}}
        .ask-drawer-overlay{position:fixed;inset:0;background:rgba(10,22,40,.5);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:1000;opacity:0;pointer-events:none;transition:opacity .3s}
        .ask-drawer-overlay.open{opacity:1;pointer-events:auto}
        .ask-drawer{position:fixed;top:0;right:0;bottom:0;width:480px;max-width:100vw;z-index:1001;background:var(--bg);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .35s cubic-bezier(.16,1,.3,1);box-shadow:-8px 0 40px rgba(10,22,40,.18)}
        .ask-drawer.open{transform:translateX(0)}
        .ask-drawer-header{background:linear-gradient(135deg,var(--navy) 0%,#132d4a 50%,#1a3a5c 100%);color:#fff;padding:18px 22px;display:flex;align-items:center;gap:12px;flex-shrink:0;position:relative;overflow:hidden}
        .ask-drawer-header::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(232,119,26,.08) 50%,transparent 100%);background-size:200% 100%;animation:ask-header-shimmer 6s ease-in-out infinite;pointer-events:none}
        .ask-drawer-header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--orange),transparent 50%,var(--orange));opacity:.5}
        .ask-drawer-header-title{font-family:var(--font-body);font-size:1.2rem;font-weight:700;flex:1;letter-spacing:.3px;position:relative}
        .ask-drawer-header-btn{background:rgba(255,255,255,.08);color:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.12);padding:5px 14px;border-radius:6px;font-family:var(--font-body);font-size:.75rem;font-weight:600;cursor:pointer;letter-spacing:.3px;transition:all .2s;backdrop-filter:blur(4px)}
        .ask-drawer-header-btn:hover{background:rgba(232,119,26,.2);border-color:rgba(232,119,26,.4);color:#fff}
        .ask-drawer-close{background:none;border:none;color:rgba(255,255,255,.5);font-size:1.5rem;cursor:pointer;padding:0 4px;line-height:1;transition:all .2s}
        .ask-drawer-close:hover{color:#fff;transform:rotate(90deg)}
        .ask-drawer-body{flex:1;overflow-y:auto;padding:22px;display:flex;flex-direction:column;gap:16px;background:linear-gradient(180deg,#faf8f5 0%,var(--bg) 100%)}
        .ask-drawer-input-wrap{flex-shrink:0;padding:14px 22px 18px;border-top:1px solid var(--border);display:flex;gap:10px;align-items:flex-end;background:var(--bg);position:relative}
        .ask-drawer-input-wrap::before{content:'';position:absolute;top:-12px;left:22px;right:22px;height:12px;background:linear-gradient(to top,var(--bg),transparent);pointer-events:none}
        .ask-drawer-input{flex:1;padding:11px 16px;border:1.5px solid var(--border);border-radius:12px;font-family:var(--font-body);font-size:.88rem;background:#fff;color:var(--text-dark);resize:none;max-height:100px;line-height:1.4;outline:none;transition:all .25s}
        .ask-drawer-input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(232,119,26,.1)}
        .ask-drawer-input:disabled{opacity:.5;cursor:not-allowed}
        .ask-drawer-send{background:linear-gradient(135deg,var(--navy),#1a3a5c);color:#fff;border:none;width:40px;height:40px;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;position:relative;overflow:hidden}
        .ask-drawer-send::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent,rgba(232,119,26,.3));opacity:0;transition:opacity .2s}
        .ask-drawer-send:hover{transform:scale(1.06);box-shadow:0 4px 14px rgba(10,22,40,.25)}
        .ask-drawer-send:hover::after{opacity:1}
        .ask-drawer-send:disabled{opacity:.35;cursor:not-allowed;transform:none;box-shadow:none}
        .ask-drawer-send svg{width:18px;height:18px;fill:currentColor;position:relative;z-index:1}
        .ask-drawer-turns{font-size:.7rem;color:var(--text-light);padding:0 4px;flex-shrink:0;align-self:center;font-family:var(--font-mono)}
        .ask-drawer-suggestions{display:flex;flex-wrap:wrap;gap:10px;padding:8px 0 4px;animation:ask-slide-up .4s ease}
        .ask-drawer-chip{background:rgba(255,255,255,.7);color:var(--text-muted);border:1px solid var(--border);border-radius:20px;padding:9px 16px;font-size:.8rem;cursor:pointer;transition:all .2s;line-height:1.3;backdrop-filter:blur(4px);position:relative}
        .ask-drawer-chip:hover{background:#fff;border-color:var(--orange);color:var(--navy);box-shadow:0 2px 12px rgba(232,119,26,.1);transform:translateY(-1px)}
        .ask-drawer-hint{width:100%;font-size:.72rem;color:var(--text-light);letter-spacing:.5px;text-transform:uppercase;margin-bottom:4px;font-weight:600}
        .ask-msg{max-width:92%;animation:askFadeIn .25s ease}
        .ask-msg-user{align-self:flex-end;background:linear-gradient(135deg,var(--navy),#1a3a5c);color:#fff;padding:10px 16px;border-radius:18px 18px 4px 18px;font-size:.88rem;line-height:1.5;box-shadow:0 2px 8px rgba(10,22,40,.12)}
        .ask-msg-assistant{align-self:flex-start;background:#fff;color:var(--text-body);padding:16px 20px;border-radius:4px 18px 18px 18px;font-size:13.5px;line-height:1.7;border:1px solid var(--border-light);box-shadow:0 2px 10px rgba(0,0,0,.04);position:relative}
        .ask-msg-assistant::before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:2px;border-radius:1px;background:linear-gradient(180deg,var(--orange),transparent)}
        .ask-msg-assistant strong{color:var(--navy-mid)}
        .ask-msg-assistant p{margin-bottom:12px}.ask-msg-assistant p:last-child{margin-bottom:0}
        .ask-msg-assistant h3,.ask-msg-assistant h4{font-size:14px;font-weight:700;color:var(--navy);margin:16px 0 6px}
        .ask-msg-assistant h3:first-child,.ask-msg-assistant h4:first-child{margin-top:0}
        .ask-msg-assistant ul,.ask-msg-assistant ol{margin:.5rem 0 .5rem 1.2rem;padding:0}
        .ask-msg-assistant li{margin-bottom:.35rem;font-size:13px;line-height:1.65}
        .ask-msg-assistant table{width:100%;border-collapse:collapse;margin:.8rem 0;font-size:12px}
        .ask-msg-assistant table th{text-align:left;padding:6px 8px;border-bottom:2px solid var(--orange);font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted)}
        .ask-msg-assistant table td{padding:5px 8px;border-bottom:1px solid var(--border);color:var(--text-body)}
        .ask-msg-assistant hr{border:none;border-top:1px solid var(--border);margin:1.2rem 0}
        .ask-msg-assistant blockquote,.ask-msg-assistant .hl{background:rgba(232,119,26,.06);border-left:3px solid var(--orange);padding:10px 14px;border-radius:0 6px 6px 0;margin:14px 0;font-size:13px;line-height:1.7}
        .ask-msg-assistant .citation{border-bottom:1px dotted var(--orange);cursor:pointer;color:var(--navy);transition:color .15s}
        .ask-msg-assistant .citation:hover{color:var(--orange)}
        .ask-thinking{display:flex;gap:5px;padding:14px 18px;align-self:flex-start;align-items:center;flex-wrap:wrap;background:rgba(255,255,255,.6);border-radius:14px;backdrop-filter:blur(4px)}
        .ask-thinking span{width:8px;height:8px;border-radius:50%;animation:askDot 1.4s infinite ease-in-out,askDotPulse 2.8s infinite ease-in-out}
        .ask-thinking span:nth-child(2){animation-delay:.2s,.2s}
        .ask-thinking span:nth-child(3){animation-delay:.4s,.4s}
        .ask-thinking-label{width:100%;font-size:.72rem;color:var(--text-light);margin-top:5px;letter-spacing:.3px}
        .ask-msg-stocks{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;animation:ask-slide-up .3s ease}
        .ask-msg-stock-chip{background:linear-gradient(135deg,rgba(10,22,40,.03),rgba(232,119,26,.04));border:1px solid var(--border);border-radius:14px;padding:5px 14px;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s;color:var(--navy)}
        .ask-msg-stock-chip:hover{border-color:var(--orange);background:rgba(232,119,26,.06);transform:translateY(-1px);box-shadow:0 3px 10px rgba(232,119,26,.1)}
        .ask-msg-followups{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;animation:ask-slide-up .3s ease}
        .ask-msg-followup{background:rgba(255,255,255,.7);color:var(--text-muted);border:1px solid var(--border);border-radius:16px;padding:6px 14px;font-size:.78rem;cursor:pointer;transition:all .2s;backdrop-filter:blur(4px)}
        .ask-msg-followup:hover{background:#fff;border-color:var(--orange);color:var(--navy);transform:translateY(-1px);box-shadow:0 2px 8px rgba(232,119,26,.08)}
        .ask-limit-msg{text-align:center;color:var(--text-muted);font-size:.82rem;padding:14px 0;font-style:italic}
        .ask-disambig{display:flex;flex-direction:column;gap:8px;align-self:flex-start;max-width:92%;animation:ask-slide-up .3s ease}
        .ask-disambig-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px 18px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
        .ask-disambig-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--orange);opacity:0;transition:opacity .2s}
        .ask-disambig-card:hover{border-color:var(--orange);box-shadow:0 3px 14px rgba(232,119,26,.1);transform:translateX(2px)}
        .ask-disambig-card:hover::before{opacity:1}
        .ask-disambig-title{font-weight:600;font-size:.88rem;color:var(--navy)}
        .ask-disambig-meta{font-size:.78rem;color:var(--text-muted);margin-top:2px}
        .ask-drawer.expanded{width:min(850px,100vw)}
        @media(max-width:600px){
            .ask-drawer{width:100vw;top:auto;bottom:0;right:0;height:55vh;border-radius:16px 16px 0 0;transform:translateY(100%)}
            .ask-drawer.open{transform:translateY(0)}
            .ask-drawer.expanded{width:100vw;height:100vh;border-radius:0}
            .ask-drawer-header{border-radius:16px 16px 0 0}
            .ask-drawer.expanded .ask-drawer-header{border-radius:0}
            .ask-drawer-input{font-size:.82rem;padding:10px 12px}
            .ask-drawer-input::placeholder{font-size:.78rem}
            .ask-drawer-input-wrap{padding:10px 14px 14px;gap:8px}
            .ask-drawer-send{width:36px;height:36px;border-radius:10px}
            .ask-drawer-body{padding:16px}
        }
    /* ===== Welcome Tour ===== */
    .tour-welcome-overlay{position:fixed;inset:0;background:rgba(10,22,40,.65);display:flex;align-items:center;justify-content:center;z-index:3000;opacity:0;pointer-events:none;transition:opacity .25s}
    .tour-welcome-overlay.active{opacity:1;pointer-events:auto}
    .tour-welcome-card{background:#fff;border-radius:14px;padding:48px 40px;text-align:center;max-width:420px;width:90vw;box-shadow:0 20px 60px rgba(10,22,40,.25)}
    .tour-welcome-card h2{font-family:var(--font-body);font-size:1.6rem;font-weight:700;color:var(--navy);margin-bottom:8px}
    .tour-welcome-card p{font-size:.92rem;color:var(--text-muted);margin-bottom:28px}
    .tour-welcome-start{padding:10px 28px;background:var(--orange);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:.9rem;cursor:pointer;font-family:var(--font-body);transition:background .2s}
    .tour-welcome-start:hover{background:#d4691a}
    .tour-welcome-skip{background:none;border:none;color:var(--text-muted);font-size:.82rem;cursor:pointer;margin-left:16px;text-decoration:underline}
    .tour-backdrop{position:fixed;inset:0;background:transparent;z-index:2500;display:none} /* click shield only — dimming comes from .tour-spotlight's box-shadow cutout */
    .tour-backdrop.active{display:block}
    .tour-spotlight{position:fixed;z-index:2550;pointer-events:none;border-radius:8px;box-shadow:0 0 0 4px var(--orange),0 0 24px rgba(232,119,26,.35),0 0 0 9999px rgba(10,22,40,.5);display:none}
    .tour-spotlight.active{display:block}
    .tour-tooltip{position:fixed;z-index:2700;background:#fff;border-radius:12px;padding:20px 24px;width:320px;max-width:90vw;box-shadow:0 12px 40px rgba(10,22,40,.2);display:none}
    .tour-tooltip.active{display:block}
    .tour-tooltip-content{font-size:.88rem;color:var(--text-body);line-height:1.6}
    .tour-tooltip-footer{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--border-light)}
    .tour-tooltip-counter{font-size:.75rem;color:var(--text-muted);font-family:var(--font-mono)}
    .tour-tooltip-actions{display:flex;gap:12px;align-items:center}
    .tour-tooltip-done{background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;text-decoration:underline}
    .tour-tooltip-next{padding:6px 18px;background:var(--navy);color:#fff;border:none;border-radius:6px;font-size:.82rem;font-weight:600;cursor:pointer;font-family:var(--font-body)}
    .tour-tooltip-next:hover{background:#0f2440}
    .tour-tooltip-arrow{position:absolute;width:12px;height:12px;background:#fff;transform:rotate(45deg);top:-6px;left:40px;box-shadow:-2px -2px 4px rgba(0,0,0,.05)}
    .nav-guide-btn{background:none;border:none;color:rgba(255,255,255,.35);cursor:pointer;padding:4px 8px;transition:color .2s;display:inline-flex;align-items:center}
    .nav-guide-btn:hover{color:rgba(255,255,255,.85)}
    .nav-guide-btn svg{width:16px;height:16px;fill:currentColor}
