*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
--void:#030308;--deep:#06060f;--surface:#0a0a16;--layer:#0f0f1e;--edge:#181830;--border:#1e1e3a;
--cyan:#00e5ff;--cyan-dim:rgba(0,229,255,0.04);--cyan-lo:rgba(0,229,255,0.08);--cyan-mid:rgba(0,229,255,0.18);--cyan-hi:rgba(0,229,255,0.4);
--amber:#ffb347;--amber-dim:rgba(255,179,71,0.06);
--rose:#ff4d6a;--rose-dim:rgba(255,77,106,0.06);
--emerald:#00e89c;--emerald-dim:rgba(0,232,156,0.06);
--lavender:#a78bfa;--teal:#2dd4bf;--pink:#f472b6;
--smoke:#5a5a80;--ash:#3a3a5e;--silver:#9898b8;--frost:#c8c8e0;--white:#eeeef6;
}
body.light-theme{
--void:#f0f0f5;--deep:#e8e8f0;--surface:#ffffff;--layer:#f5f5fa;--edge:#d8d8e8;--border:#c8c8d8;
--cyan:#0088bb;--cyan-dim:rgba(0,136,187,0.06);--cyan-lo:rgba(0,136,187,0.10);--cyan-mid:rgba(0,136,187,0.20);--cyan-hi:rgba(0,136,187,0.4);
--amber:#cc8800;--amber-dim:rgba(204,136,0,0.08);
--rose:#d9304a;--rose-dim:rgba(217,48,74,0.08);
--emerald:#00b878;--emerald-dim:rgba(0,184,120,0.08);
--lavender:#7c5cbf;--teal:#1aab9a;--pink:#d44f8a;
--smoke:#8888a8;--ash:#a0a0b8;--silver:#5a5a78;--frost:#333348;--white:#1a1a2e;
}
body.light-theme ::-webkit-scrollbar-track{background:#e0e0e8}
body.light-theme ::-webkit-scrollbar-thumb{background:#c0c0d0}
body.light-theme ::-webkit-scrollbar-thumb:hover{background:#a8a8b8}
html,body{width:100%;height:100%;overflow:hidden;background:var(--void);color:var(--frost);font-family:'Manrope',sans-serif}
body{zoom:1.5625}
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:var(--deep)}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--ash)}
.label{font-family:'Fira Code',monospace;font-size:.44rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ash)}
.label::before{content:'\25C6  '}

/* ========== LANDING ========== */
#landing{position:fixed;inset:0;z-index:1000;background:var(--void);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .5s,transform .5s;overflow-y:auto;padding:3.5rem 1rem 2rem}
#landing::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 50% at 50% 40%,rgba(0,229,255,.02) 0%,transparent 60%),radial-gradient(ellipse 40% 30% at 30% 70%,rgba(0,232,156,.015) 0%,transparent 50%);pointer-events:none}
#landing.hide{opacity:0;pointer-events:none;transform:scale(1.02)}
.land-topnav{position:fixed;top:0;left:0;right:0;z-index:1001;display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 1.4rem;background:rgba(3,3,8,.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.land-topnav-left{display:flex;align-items:center;gap:.8rem}
.land-topnav-right{display:flex;align-items:center;gap:.6rem}
.land-topnav .land-logo{font-size:1.2rem}
.land-topnav .land-home-btn{font-size:.55rem;padding:.2rem .5rem}
.land-logo{font-family:'Libre Caslon Display',serif;font-size:clamp(2.4rem,5vw,3.6rem);background:linear-gradient(135deg,var(--white),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em;cursor:pointer}
.land-home-btn{background:none;border:1px solid var(--cyan-hi);color:var(--cyan);font-family:'Fira Code',monospace;font-size:.7rem;padding:.35rem .8rem;border-radius:4px;cursor:pointer;white-space:nowrap;transition:background .2s,color .2s}
.land-home-btn:hover{background:var(--cyan);color:var(--deep)}
.land-info-group{display:flex;flex-direction:column;align-items:center;gap:.3rem;margin-bottom:1.2rem}
.land-sub{font-family:'Fira Code',monospace;font-size:.52rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ash)}
.land-sub::before{content:'\25C6  '}
.land-tag{font-family:'Manrope',sans-serif;font-size:1rem;color:var(--silver);font-weight:300}
.land-pitch{font-family:'Fira Code',monospace;font-size:.62rem;color:var(--smoke);letter-spacing:.04em}
.land-search{position:relative;width:min(440px,90vw);margin-bottom:.6rem}
.land-search input{width:100%;height:50px;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:0 1rem 0 2.6rem;font-family:'Fira Code',monospace;font-size:.82rem;color:var(--white);outline:none;transition:border-color .2s,box-shadow .2s}
.land-search input:focus{border-color:var(--cyan-hi);box-shadow:0 0 0 3px rgba(0,229,255,.08)}
.land-search input::placeholder{color:var(--ash)}
.land-search .ico{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--smoke);font-size:.9rem;pointer-events:none}
.land-free{font-family:'Fira Code',monospace;font-size:.5rem;color:var(--smoke);letter-spacing:.06em;margin-bottom:2.8rem}
.land-tiers{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}
.tier{width:200px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.4rem 1.2rem;text-align:center;transition:border-color .2s,transform .2s}
.tier:hover{transform:translateY(-2px)}
.tier.featured{border-color:var(--cyan-mid);box-shadow:0 0 20px rgba(0,229,255,.06)}
.tier h3{font-family:'Libre Caslon Display',serif;font-size:1rem;color:var(--white);margin-bottom:.15rem}
.tier .price{font-family:'Fira Code',monospace;font-size:1.3rem;color:var(--cyan);margin-bottom:.6rem}
.tier .price span{font-size:.55rem;color:var(--smoke)}
.tier ul{list-style:none;text-align:left;font-size:.68rem;color:var(--silver);line-height:1.9}
.tier ul li::before{content:'\25C6  ';color:var(--ash);font-size:.5rem}
.autocomplete{position:absolute;top:100%;left:0;right:0;background:var(--deep);border:1px solid var(--border);border-top:none;border-radius:0 0 6px 6px;max-height:240px;overflow-y:auto;z-index:10;display:none}
.autocomplete.open{display:block}
.ac-item{padding:.55rem .9rem;cursor:pointer;display:flex;align-items:center;gap:.6rem;transition:background .12s;font-family:'Fira Code',monospace;font-size:.7rem}
.ac-item:hover,.ac-item.active{background:var(--layer)}
.ac-sym{color:var(--cyan);font-weight:500;min-width:48px}
.ac-name{color:var(--silver);font-family:'Manrope',sans-serif;font-size:.68rem;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-price{color:var(--frost);font-size:.62rem}
.ac-chg{font-size:.58rem;margin-left:.3rem}
.bull{color:var(--emerald)}.bear{color:var(--rose)}.neu{color:var(--amber)}

/* ========== APP ========== */
#app{position:fixed;inset:0;display:none;flex-direction:column}
#app.show{display:flex}

/* ========== TOPBAR ========== */
#topbar{position:absolute;top:0;left:0;right:0;height:48px;background:var(--deep);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 .8rem;gap:.6rem;z-index:200;backdrop-filter:blur(12px);flex-shrink:0}
.tb-logo{font-family:'Libre Caslon Display',serif;font-size:.92rem;background:linear-gradient(135deg,var(--white),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;cursor:pointer;white-space:nowrap}
.tb-home{background:none;border:1px solid var(--cyan-hi);color:var(--cyan);font-family:'Fira Code',monospace;font-size:.65rem;padding:.25rem .6rem;border-radius:4px;cursor:pointer;white-space:nowrap;transition:background .2s,color .2s;flex-shrink:0}
.tb-home:hover{background:var(--cyan);color:var(--deep)}
.tb-sep{width:1px;height:24px;background:var(--border);flex-shrink:0}
.tb-search{position:relative;width:280px;flex-shrink:0}
.tb-search input{width:100%;height:32px;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:0 .7rem;font-family:'Fira Code',monospace;font-size:.7rem;color:var(--white);outline:none;transition:border-color .2s}
.tb-search input:focus{border-color:var(--cyan-hi)}
.tb-search input::placeholder{color:var(--ash)}
.tb-views{display:flex;gap:2px;margin-left:auto;flex-shrink:0}
.tb-vbtn{font-family:'Fira Code',monospace;font-size:.52rem;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .7rem;background:transparent;border:1px solid var(--border);color:var(--smoke);cursor:pointer;transition:all .15s;border-radius:3px}
.tb-vbtn.active{color:var(--cyan);background:var(--cyan-dim);border-color:var(--cyan-mid)}
.tb-vbtn:hover:not(.active){background:var(--layer);color:var(--silver)}
.tb-right{display:none}
.tb-status{display:flex;align-items:center;gap:.5rem;flex-shrink:0;margin-left:auto}
.tb-tools-wrap{position:relative;flex-shrink:0;z-index:500;margin-left:auto}
.tb-tools-btn{font-family:'Fira Code',monospace;font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;padding:.3rem .7rem;background:var(--surface);border:1px solid var(--cyan-mid);color:var(--cyan);cursor:pointer;border-radius:4px;white-space:nowrap;transition:all .15s;display:inline-flex;align-items:center;gap:.3rem;height:30px;box-sizing:border-box}
.tb-tools-btn:hover{background:var(--cyan-dim);border-color:var(--cyan)}
.tb-tools-dropdown{display:none;position:absolute;top:100%;right:0;margin-top:6px;background:var(--deep);border:1px solid var(--border);border-radius:6px;padding:.4rem;z-index:600;min-width:180px;max-height:70vh;overflow-y:auto;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.tb-tools-dropdown.open{display:flex;flex-direction:column;gap:.2rem}
.tb-tool-item{width:100%;text-align:left;justify-content:flex-start}
.tb-wl{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--silver);background:var(--surface);border:1px solid var(--border);padding:.25rem .6rem;border-radius:3px;cursor:pointer;transition:border-color .15s;white-space:nowrap;display:inline-flex;align-items:center;gap:.3rem;height:26px;box-sizing:border-box;flex-shrink:0}
.tb-wl:hover{border-color:var(--cyan-mid)}
.tb-wl span{color:var(--cyan)}
.tb-live{display:flex;align-items:center;gap:.35rem;font-family:'Fira Code',monospace;font-size:.48rem;color:var(--smoke);letter-spacing:.06em;text-transform:uppercase}
.live-dot{width:5px;height:5px;border-radius:50%;background:var(--emerald);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(0,232,156,.4)}50%{opacity:.7;box-shadow:0 0 0 4px rgba(0,232,156,0)}}
.tb-clock{font-family:'Fira Code',monospace;font-size:.56rem;color:var(--smoke);min-width:72px;text-align:right}
.tb-tier{font-family:'Fira Code',monospace;font-size:.42rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);border:1px solid var(--cyan-mid);padding:.15rem .45rem;border-radius:2px}

/* ========== LEFT PANEL ========== */
#leftpanel{position:absolute;left:0;top:48px;bottom:36px;width:270px;min-width:270px;background:var(--deep);border-right:1px solid var(--border);z-index:50;overflow-y:auto;display:flex;flex-direction:column;padding:.8rem .6rem;transition:transform .35s cubic-bezier(.4,0,.2,1)}
#leftpanel.collapsed{transform:translateX(-100%)}
.lp-toggle{position:absolute;top:48px;left:270px;z-index:55;width:20px;height:40px;background:var(--deep);border:1px solid var(--border);border-left:none;border-radius:0 4px 4px 0;color:var(--cyan);font-size:.55rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:left .35s cubic-bezier(.4,0,.2,1),background .2s;padding:0}
.lp-toggle:hover{background:var(--surface)}
.lp-toggle.collapsed{left:0}
.lp-resize{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;z-index:55;background:transparent}
.lp-resize:hover,.lp-resize.active{background:var(--cyan-mid)}
.lp-title{margin-bottom:.6rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
#leftpanel .label{color:#fff}
#leftpanel{color:var(--frost)}
.lp-wl-count{font-family:'Fira Code',monospace;font-size:.5rem;color:var(--cyan)}
.lp-title-btns{display:flex;gap:3px;margin-left:auto}
.lp-action-btn{font-family:'Fira Code',monospace;font-size:.38rem;letter-spacing:.06em;text-transform:uppercase;padding:.2rem .4rem;background:var(--surface);border:1px solid #fff;color:var(--cyan);border-radius:3px;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}
.lp-action-btn:hover{background:rgba(0,229,255,.1);border-color:var(--cyan);color:#fff}
.lp-action-btn-danger{border-color:var(--rose)!important;color:var(--rose)!important}
.lp-action-btn-danger:hover{background:rgba(255,77,106,.1)!important;border-color:var(--rose)!important;color:#fff!important}
.wl-list{flex:none;max-height:180px;overflow-y:auto;margin-bottom:.8rem}
.wl-empty{font-family:'Manrope',sans-serif;font-size:.62rem;color:var(--frost);line-height:1.6;padding:.4rem 0}
.wl-item{display:flex;align-items:center;gap:.35rem;padding:.4rem .3rem;border-radius:3px;cursor:pointer;transition:background .12s;border-bottom:1px solid var(--edge)}
.wl-item:hover{background:var(--layer)}
.wl-ticker{font-family:'Fira Code',monospace;font-size:.65rem;color:var(--cyan);font-weight:500;min-width:40px}
.wl-price{font-family:'Fira Code',monospace;font-size:.56rem;color:#fff;flex:1}
.wl-chg{font-family:'Fira Code',monospace;font-size:.52rem;min-width:44px;text-align:right}
.wl-rm{font-size:.42rem;color:var(--frost);cursor:pointer;padding:.15rem .4rem;transition:color .15s,border-color .15s;background:none;border:1px solid var(--smoke);border-radius:3px;font-family:'Fira Code',monospace;white-space:nowrap;flex-shrink:0;letter-spacing:.03em;text-transform:uppercase}
.wl-rm:hover{color:var(--rose);border-color:var(--rose)}
.lp-tabs{display:flex;gap:3px;margin-bottom:.5rem;padding-bottom:.35rem}
.lp-tab{font-family:'Fira Code',monospace;font-size:.42rem;letter-spacing:.05em;text-transform:uppercase;padding:.3rem .45rem;background:var(--surface);border:1px solid var(--smoke);color:#fff;cursor:pointer;border-radius:3px;transition:color .15s,border-color .15s,background .15s;white-space:nowrap}
.lp-tab:hover{color:#fff;border-color:var(--cyan-mid);background:rgba(0,229,255,.08)}
.lp-tab.active{color:#fff;border-color:var(--cyan);background:rgba(0,229,255,.12)}
.lp-tab-content{flex:1;min-height:0;overflow-y:auto;margin-bottom:.5rem;display:flex;flex-direction:column}
.lp-tab-pane{display:none}
.lp-tab-pane.active{display:block;flex:1;min-height:0}
#lpJournal.active{display:flex;flex-direction:column}
.lp-tab-pane .econ-sb-item{padding:.3rem 0;border-bottom:1px solid var(--edge);font-size:.48rem}
.lp-tab-pane .econ-sb-date{font-family:'Fira Code',monospace;font-size:.38rem;color:var(--smoke);margin-bottom:.15rem}
.lp-tab-pane .econ-sb-event{color:#fff;font-size:.46rem;line-height:1.3}
.lp-tab-pane .econ-sb-impact{font-family:'Fira Code',monospace;font-size:.36rem;padding:.1rem .25rem;border-radius:2px;display:inline-block;margin-top:.1rem}
.lp-tab-pane .econ-sb-impact.high{color:var(--rose);border:1px solid var(--rose)}
.lp-tab-pane .econ-sb-impact.medium{color:var(--amber);border:1px solid var(--amber)}
.lp-tab-pane .econ-sb-impact.low{color:var(--smoke);border:1px solid var(--edge)}
#lpCommunity.active{display:flex;flex-direction:column}
.comm-room-bar{display:flex;align-items:baseline;gap:.3rem;padding:.25rem 0;border-bottom:1px solid var(--edge);flex-shrink:0}
.comm-room-label{font-family:'Fira Code',monospace;font-size:.48rem;color:#fff;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;font-weight:600;padding:.22rem 0;border:1px solid transparent}
.comm-room-combo{flex:1;position:relative}
.comm-room-input{width:100%;box-sizing:border-box;background:rgba(10,10,22,.9);border:1px solid var(--cyan);color:#fff;font-family:'Fira Code',monospace;font-size:.48rem;padding:.22rem .3rem;border-radius:3px;outline:none;cursor:text;font-weight:500}
.comm-room-input:focus{border-color:var(--cyan);box-shadow:0 0 6px rgba(0,229,255,.25)}
.comm-room-list{display:none;position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:#0a0a16;border:1px solid var(--cyan);border-top:none;border-radius:0 0 3px 3px;z-index:200;scrollbar-width:thin;scrollbar-color:var(--cyan) transparent}
.comm-room-list.open{display:block}
.comm-room-item{padding:.22rem .35rem;font-family:'Fira Code',monospace;font-size:.44rem;color:#fff;cursor:pointer;display:flex;align-items:center;gap:.35rem;border-bottom:1px solid rgba(255,255,255,.08)}
.comm-room-item:hover,.comm-room-item.active{background:rgba(0,229,255,.12);color:var(--cyan)}
.comm-room-item .comm-room-sym{color:var(--cyan);font-weight:600;min-width:3.5em;font-size:.46rem}
.comm-room-item .comm-room-name{color:rgba(255,255,255,.6);font-size:.4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-messages{flex:1;overflow-y:auto;padding:.25rem 0;min-height:0}
.chat-msg{padding:.25rem 0;border-bottom:1px solid rgba(255,255,255,.15)}
.chat-msg-header{display:flex;align-items:center;gap:.25rem;flex-wrap:nowrap}
.chat-msg-user{font-family:'Fira Code',monospace;font-size:.5rem;color:var(--cyan);font-weight:600;white-space:nowrap;flex-shrink:0}
.chat-msg-meta{font-family:'Fira Code',monospace;font-size:.38rem;color:#fff;white-space:nowrap;margin-left:auto;flex-shrink:0}
.chat-msg-text{font-size:.52rem;color:var(--frost);margin-top:.12rem;word-break:break-word;line-height:1.45}
.chat-input-row{display:flex;gap:.2rem;padding-top:.25rem;border-top:1px solid var(--edge);flex-shrink:0}
.chat-input-row input{flex:1;background:rgba(10,10,22,.8);border:1px solid var(--border);color:#fff;font-family:'Fira Code',monospace;font-size:.5rem;padding:.22rem .3rem;border-radius:3px;outline:none}
.chat-input-row input:focus{border-color:var(--cyan)}
.chat-send-btn{background:none;border:1px solid var(--cyan);color:var(--cyan);font-family:'Fira Code',monospace;font-size:.46rem;padding:.2rem .4rem;border-radius:3px;cursor:pointer;white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;transition:background .15s,color .15s}
.chat-send-btn:hover{background:var(--cyan);color:var(--deep)}
.chat-empty{font-size:.44rem;color:var(--smoke);text-align:center;padding:1rem 0}
.chat-msg-room{font-family:'Fira Code',monospace;font-size:.36rem;color:#fff;background:rgba(255,255,255,.15);padding:.04rem .22rem;border-radius:2px;flex-shrink:0;font-weight:500}
.lp-tab-pane .comm-sb-item{padding:.35rem 0;border-bottom:1px solid var(--edge)}
.lp-tab-pane .comm-sb-author{font-family:'Fira Code',monospace;font-size:.4rem;color:var(--cyan)}
.lp-tab-pane .comm-sb-ticker{font-family:'Fira Code',monospace;font-size:.44rem;color:var(--frost);font-weight:500}
.lp-tab-pane .comm-sb-signal{font-size:.38rem;text-transform:uppercase;letter-spacing:.05em}
.lp-tab-pane .comm-sb-time{font-size:.36rem;color:var(--ash)}
.lp-tab-pane .jrn-sb-item{padding:.35rem 0;border-bottom:1px solid var(--edge)}
.lp-tab-pane .jrn-sb-ticker{font-family:'Fira Code',monospace;font-size:.46rem;color:var(--cyan);font-weight:500}
.lp-tab-pane .jrn-sb-side{font-size:.38rem;text-transform:uppercase;letter-spacing:.05em;font-family:'Fira Code',monospace}
.lp-tab-pane .jrn-sb-side.buy{color:var(--emerald)}
.lp-tab-pane .jrn-sb-side.sell{color:var(--rose)}
.lp-tab-pane .jrn-sb-pnl{font-family:'Fira Code',monospace;font-size:.4rem}
.lp-tab-pane .jrn-sb-date{font-size:.36rem;color:var(--ash)}
.jrn-notepad{width:100%;flex:1;min-height:100px;background:rgba(10,10,22,.8);border:1px solid var(--border);border-radius:4px;color:#fff;font-family:'Fira Code',monospace;font-size:.46rem;line-height:1.6;padding:.5rem;resize:none;outline:none;box-sizing:border-box}
.jrn-notepad:focus{border-color:var(--cyan)}
.jrn-notepad-bar{display:flex;align-items:center;gap:.3rem;margin-top:.3rem;flex-shrink:0;flex-wrap:wrap}
.jrn-save-status{font-family:'Fira Code',monospace;font-size:.38rem;color:var(--emerald)}
.lp-note-btn{font-size:.48rem!important;padding:.15rem .3rem!important}
.lp-watch-btn{font-size:.48rem!important;padding:.15rem .3rem!important}
#lpJournal{display:none;flex-direction:column;flex:1;min-height:0}
#lpJournal.active{display:flex}
.lp-tab-fs{margin-left:auto;background:none;border:1px solid var(--smoke);color:var(--frost);font-size:.5rem;padding:.15rem .35rem;border-radius:3px;cursor:pointer;transition:color .15s,border-color .15s;line-height:1}
.lp-tab-fs:hover{color:#fff;border-color:var(--cyan)}
.lp-fs-overlay{display:none;position:absolute;inset:48px 0 36px 0;z-index:150;background:var(--deep);flex-direction:column}
.lp-fs-overlay.open{display:flex}
.lp-fs-header{display:flex;align-items:center;padding:.6rem 1rem;border-bottom:1px solid var(--border);gap:.5rem}
.lp-fs-tabs{display:flex;gap:4px;flex:1}
.lp-fs-tabs .lp-tab{font-size:.5rem;padding:.35rem .7rem}
.lp-fs-close{background:none;border:1px solid var(--smoke);color:var(--frost);font-size:1rem;padding:.1rem .5rem;border-radius:3px;cursor:pointer;transition:color .15s,border-color .15s;line-height:1}
.lp-fs-close:hover{color:var(--rose);border-color:var(--rose)}
.lp-fs-body{flex:1;overflow-y:auto;padding:1rem;color:var(--frost);font-size:.56rem;line-height:1.6;min-height:0;display:flex;flex-direction:column}
.lp-fs-body .jrn-notepad{flex:1;min-height:0;font-size:.56rem}
.lp-fs-body .econ-sb-item{padding:.5rem 0;border-bottom:1px solid var(--edge);font-size:.56rem}
.lp-fs-body .econ-sb-date{font-size:.46rem;color:var(--smoke);margin-bottom:.2rem}
.lp-fs-body .econ-sb-event{color:#fff;font-size:.56rem}
.lp-fs-body .econ-sb-impact{font-size:.42rem}
.lp-fs-body .comm-sb-item{padding:.5rem 0;border-bottom:1px solid var(--edge)}
.lp-fs-body .comm-sb-author{font-size:.48rem}
.lp-fs-body .comm-sb-ticker{font-size:.56rem}
.lp-fs-body .jrn-sb-item{padding:.5rem 0;border-bottom:1px solid var(--edge)}
.lp-fs-body .jrn-sb-ticker{font-size:.56rem}
.lp-fs-body .news-item{padding:.5rem 0;border-bottom:1px solid var(--edge)}
.lp-fs-body .news-item a{color:#fff;text-decoration:none;font-size:.56rem}
.lp-fs-body .news-item a:hover{color:var(--cyan)}
.lp-fs-chat-input{display:flex;gap:.5rem;padding:.6rem 1rem;background:rgba(6,6,15,.92);border-top:1px solid var(--border);align-items:center;flex-shrink:0}
.lp-fs-chat-input input{flex:1;height:38px;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:0 .8rem;font-family:'Fira Code',monospace;font-size:.5rem;color:var(--white);outline:none;transition:border-color .2s}
.lp-fs-chat-input input:focus{border-color:var(--cyan-hi)}
.lp-fs-chat-input .chat-send-btn{height:38px;padding:0 1.2rem;font-size:.46rem}
/* Floating Live Alerts Panel */
.alerts-float{position:fixed;top:60px;right:0;width:280px;z-index:120;background:transparent;transition:transform .3s ease;pointer-events:auto}
.alerts-float.hidden{transform:translateX(100%)}
.alerts-float-header{display:flex;align-items:center;gap:.3rem;padding:.2rem .4rem;background:rgba(6,6,15,.7);backdrop-filter:blur(6px);border-bottom:1px solid rgba(255,255,255,.08);border-left:1px solid rgba(255,255,255,.05)}
.alerts-float-title{font-family:'Fira Code',monospace;font-size:.42rem;color:#fff;letter-spacing:.1em;text-transform:uppercase;font-weight:600;flex:1;display:flex;align-items:center;gap:.3rem}
.alerts-float-dot{width:6px;height:6px;border-radius:50%;background:var(--emerald,#00e89c);box-shadow:0 0 6px var(--emerald,#00e89c);animation:alertPulse 2s infinite}
@keyframes alertPulse{0%,100%{opacity:1}50%{opacity:.4}}
.alerts-float-btn{background:none;border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.6);font-size:.4rem;width:20px;height:20px;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0}
.alerts-float-btn:hover{border-color:var(--cyan);color:var(--cyan)}
.alerts-float-body{padding:.25rem .4rem;background:transparent;max-height:none;overflow:visible}
.alerts-float-body .alert-item{padding:.25rem .3rem;border-left:2px solid var(--cyan);margin-bottom:.25rem;margin-left:0;background:rgba(6,6,15,.5);backdrop-filter:blur(4px);border-radius:0 3px 3px 0}
.alerts-float-body .alert-item.high{border-left-color:var(--rose)}.alerts-float-body .alert-item.med{border-left-color:var(--amber)}.alerts-float-body .alert-item.low{border-left-color:var(--cyan)}
.alert-ticker{font-family:'Fira Code',monospace;font-size:.44rem;color:var(--cyan);font-weight:500}
.alert-time{font-family:'Fira Code',monospace;font-size:.36rem;color:rgba(255,255,255,.5);margin-left:.3rem}
.alert-msg{font-family:'Manrope',sans-serif;font-size:.44rem;color:rgba(255,255,255,.7);margin-top:.1rem;line-height:1.35}
/* Show toggle button (visible when alerts hidden) */
.alerts-show-btn{position:fixed;top:60px;right:0;z-index:121;background:rgba(6,6,15,.7);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.1);border-right:none;color:rgba(255,255,255,.6);font-size:.42rem;padding:.25rem .15rem;border-radius:3px 0 0 3px;cursor:pointer;transition:all .2s;display:none}
.alerts-show-btn:hover{color:var(--cyan);border-color:var(--cyan)}
.alerts-show-btn.visible{display:block}
/* Fullscreen alerts overlay */
.alerts-fs-overlay{position:fixed;inset:0;z-index:500;background:rgba(6,6,15,.95);backdrop-filter:blur(10px);display:none;flex-direction:column}
.alerts-fs-overlay.open{display:flex}
.alerts-fs-header{display:flex;align-items:center;padding:.5rem .8rem;border-bottom:1px solid var(--border)}
.alerts-fs-header .alerts-float-title{font-size:.55rem}
.alerts-fs-close{background:none;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:.5rem;width:28px;height:28px;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-left:auto}
.alerts-fs-close:hover{border-color:var(--cyan);color:var(--cyan)}
.alerts-fs-body{flex:1;overflow-y:auto;padding:.6rem .8rem}

/* ========== MAP ========== */
#map{position:absolute;left:270px;top:48px;right:0;bottom:36px;overflow:hidden;background:
radial-gradient(ellipse 60% 50% at 50% 50%,rgba(0,229,255,.012) 0%,transparent 70%);transition:left .35s cubic-bezier(.4,0,.2,1)}
#map.expanded{left:0}
#map::before{content:'';position:absolute;inset:0;background:
repeating-linear-gradient(0deg,transparent,transparent 59px,rgba(30,30,58,.18) 59px,rgba(30,30,58,.18) 60px),
repeating-linear-gradient(90deg,transparent,transparent 59px,rgba(30,30,58,.18) 59px,rgba(30,30,58,.18) 60px);
pointer-events:none;z-index:1;opacity:.5}
#map::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 40%,rgba(3,3,8,.5) 100%);pointer-events:none;z-index:2}
#map[data-v="intel"] .n-af,#map[data-v="intel"] .conn-label-af{opacity:.06!important;pointer-events:none!important;filter:blur(1px)}
#map[data-v="network"] .n-eng,#map[data-v="network"] .n-util,#map[data-v="network"] .conn-label-eng{opacity:.06!important;pointer-events:none!important;filter:blur(1px)}
#mapcanvas{position:absolute;inset:0;z-index:0}
#mapZoomCtrl{position:absolute;top:170px;right:10px;display:flex;flex-direction:column;gap:4px;z-index:25}
#mapZoomCtrl button{width:30px;height:30px;background:rgba(10,10,20,.8);border:1px solid var(--border);color:var(--cyan);font-size:1rem;font-family:'Fira Code',monospace;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;line-height:1}
#mapZoomCtrl button:hover{background:var(--cyan);color:var(--deep)}
body.map-fs-active #leftpanel,body.map-fs-active .lp-toggle,body.map-fs-active .alerts-float,body.map-fs-active #bottombar,body.map-fs-active #topbar,body.map-fs-active .alerts-show-btn,body.map-fs-active .lp-fs-overlay{display:none!important}
body.map-fs-active #legend{left:10px!important;bottom:10px!important}
body.map-fs-active #maptoolbar{left:10px!important;bottom:100px!important}
body.map-fs-active #map{left:0!important;top:0!important;right:0!important;bottom:0!important;z-index:900}
body.map-fs-active #detail{z-index:950;top:0;bottom:0}
.wl-compare-btn{width:auto!important;height:auto!important;padding:.15rem .35rem!important;font-size:.36rem!important;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border-color:var(--cyan)!important;flex-shrink:0}
.wl-cb{width:12px;height:12px;accent-color:var(--cyan);cursor:pointer;flex-shrink:0;margin-right:4px}
.compare-overlay{position:absolute;inset:0;z-index:30;background:rgba(5,5,15,.92);backdrop-filter:blur(8px);display:flex;flex-direction:column;overflow:hidden}
.compare-header{display:flex;align-items:center;justify-content:center;padding:.6rem 1rem;border-bottom:1px solid var(--border);position:relative}
.compare-title{font-family:'Fira Code',monospace;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan)}
.compare-header-btns{position:absolute;right:1rem;display:flex;align-items:center;gap:.5rem}
.compare-note-btn{background:none;border:1px solid var(--smoke);color:var(--frost);font-size:.55rem;cursor:pointer;border-radius:3px;padding:.15rem .4rem;transition:color .15s,border-color .15s}
.compare-note-btn:hover{color:var(--cyan);border-color:var(--cyan)}
.compare-close{background:none;border:1px solid var(--smoke);color:var(--frost);font-size:.6rem;cursor:pointer;border-radius:3px;padding:.15rem .4rem;transition:color .15s,border-color .15s}
.compare-close:hover{color:var(--rose);border-color:var(--rose)}
.compare-body{flex:1;overflow:auto;padding:.6rem 1rem}
.compare-table{width:100%;border-collapse:collapse;font-family:'Fira Code',monospace;font-size:.46rem}
.compare-table th{color:var(--cyan);text-align:center;padding:.35rem .5rem;border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0;background:rgba(5,5,15,.95)}
.compare-table th:first-child{text-align:left}
.compare-table td{padding:.3rem .5rem;border-bottom:1px solid var(--edge);color:#fff;text-align:center;white-space:nowrap}
.compare-table td:first-child{text-align:left;color:var(--smoke);font-size:.42rem;text-transform:uppercase;letter-spacing:.04em}
.compare-table tr:hover td{background:rgba(0,229,255,.03)}
.compare-table td.pos{color:var(--emerald)}
.compare-table td.neg{color:var(--rose)}
.map-loader{display:none;position:absolute;inset:0;z-index:20;background:rgba(5,5,15,.85);backdrop-filter:blur(6px);flex-direction:column;align-items:center;justify-content:center;gap:.8rem}
.map-loader.active{display:flex}
.map-loader-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--cyan);border-radius:50%;animation:mapSpin 1s linear infinite}
@keyframes mapSpin{to{transform:rotate(360deg)}}
.map-loader-text{font-family:'Fira Code',monospace;font-size:.55rem;color:var(--smoke);letter-spacing:.05em}
.map-loader-dots::after{content:'';animation:mapDots 1.5s steps(4,end) infinite}
@keyframes mapDots{0%{content:''}25%{content:'.'}50%{content:'..'}75%{content:'...'}}
.node{position:absolute;transform:translate(-50%,-50%) scale(0);z-index:20;cursor:grab;transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .3s,opacity .4s,filter .3s;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;backdrop-filter:blur(4px)}
.node.shown{transform:translate(-50%,-50%) scale(var(--node-scale,1))}
.node:hover{transform:translate(-50%,-50%) scale(calc(var(--node-scale,1)*1.08));z-index:25}
.node.dragging{transition:none!important;cursor:grabbing!important;z-index:30!important;transform:translate(-50%,-50%) scale(calc(var(--node-scale,1)*1.05))!important;box-shadow:0 0 24px rgba(0,229,255,.15)!important}
.node.link-target{box-shadow:0 0 20px rgba(0,229,255,.3)!important;border-color:var(--cyan)!important}

/* ========== MAP TOOLBAR ========== */
#maptoolbar{position:absolute;left:278px;bottom:150px;z-index:60;display:flex;gap:3px;background:rgba(6,6,15,.92);border:1px solid var(--border);border-radius:4px;padding:3px;backdrop-filter:blur(8px);transition:left .35s cubic-bezier(.4,0,.2,1)}
.mt-btn{font-family:'Fira Code',monospace;font-size:.42rem;letter-spacing:.06em;text-transform:uppercase;padding:.3rem .55rem;background:transparent;border:1px solid transparent;color:var(--smoke);cursor:pointer;border-radius:2px;transition:all .15s;white-space:nowrap}
.mt-btn.active{color:var(--cyan);background:var(--cyan-dim);border-color:var(--cyan-mid)}
.mt-btn:hover:not(.active){color:var(--silver);background:var(--layer)}

/* ========== PRICE CHART ========== */
.chart-summary{display:flex;flex-wrap:wrap;gap:.2rem .6rem;padding:.35rem .5rem;margin-bottom:.3rem;background:var(--surface);border:1px solid var(--border);border-radius:4px;font-family:'Fira Code',monospace;font-size:.42rem}
.chart-sum-item{display:flex;gap:.3rem;align-items:center}
.chart-sum-label{color:var(--smoke);text-transform:uppercase;letter-spacing:.05em;font-size:.38rem}
.chart-sum-val{color:var(--frost)}
.chart-wrap{position:relative;width:100%;height:180px;margin-bottom:1rem;border:1px solid var(--border);border-radius:4px;overflow:hidden;background:var(--surface)}
.chart-wrap canvas{width:100%;height:100%}
.chart-tooltip{position:absolute;top:4px;right:6px;font-family:'Fira Code',monospace;font-size:.42rem;color:var(--frost);pointer-events:none;text-align:right;z-index:2;background:rgba(6,6,15,0.85);border:1px solid var(--border);border-radius:3px;padding:.25rem .4rem;min-width:120px;backdrop-filter:blur(4px)}
.chart-tooltip:empty{border:none;padding:0;background:none}
.ct-row{display:flex;justify-content:space-between;gap:.6rem;padding:.05rem 0}
.ct-label{color:var(--smoke);text-transform:uppercase;font-size:.36rem;letter-spacing:.03em}
.ct-val{color:var(--frost);text-align:right}

/* ========== TABS ========== */
.dt-tabs{display:flex;gap:2px;margin-bottom:1rem;border-bottom:1px solid var(--border);padding-bottom:0}
.dt-tab{font-family:'Fira Code',monospace;font-size:.44rem;letter-spacing:.08em;text-transform:uppercase;padding:.4rem .65rem;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--smoke);cursor:pointer;transition:all .15s}
.dt-tab.active{color:var(--cyan);border-bottom-color:var(--cyan)}
.dt-tab:hover:not(.active){color:var(--silver)}
.dt-tab-content{display:none}.dt-tab-content.active{display:block}

/* ========== FIN TABLE ========== */
.fin-table{width:100%;border-collapse:collapse;margin-bottom:.8rem}
.fin-table th{font-family:'Fira Code',monospace;font-size:.38rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ash);text-align:left;padding:.35rem .4rem;border-bottom:1px solid var(--border)}
.fin-table td{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--frost);padding:.3rem .4rem;border-bottom:1px solid var(--edge)}
.fin-table td:not(:first-child){text-align:right}

/* ========== NOTES ========== */
.dt-notes{width:100%;min-height:80px;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:.5rem .6rem;font-family:'Manrope',sans-serif;font-size:.65rem;color:var(--frost);resize:vertical;outline:none;line-height:1.6;transition:border-color .2s}
.dt-notes:focus{border-color:var(--cyan-mid)}
.dt-notes::placeholder{color:var(--ash)}

/* ========== POSITION CALC ========== */
.calc-row{display:flex;gap:.5rem;margin-bottom:.5rem;align-items:center}
.calc-label{font-family:'Fira Code',monospace;font-size:.42rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ash);min-width:70px}
.calc-input{flex:1;height:28px;background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:0 .5rem;font-family:'Fira Code',monospace;font-size:.6rem;color:var(--cyan);outline:none;transition:border-color .2s}
.calc-input:focus{border-color:var(--cyan-mid)}
.calc-result{font-family:'Fira Code',monospace;font-size:.56rem;color:var(--frost);padding:.35rem .5rem;background:var(--surface);border-radius:3px;margin-bottom:.3rem}
.calc-result span{float:right;font-weight:500}

/* ========== SHORTCUTS OVERLAY ========== */
#shortcuts{position:fixed;inset:0;z-index:3000;background:rgba(3,3,8,.92);display:none;align-items:center;justify-content:center;backdrop-filter:blur(6px)}
#shortcuts.show{display:flex}
.sc-box{background:var(--deep);border:1px solid var(--border);border-radius:8px;padding:1.5rem 2rem;max-width:380px;width:90%}
.sc-title{font-family:'Libre Caslon Display',serif;font-size:1rem;color:var(--white);margin-bottom:1rem}
.sc-row{display:flex;align-items:center;margin-bottom:.45rem}
.sc-key{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--cyan);background:var(--surface);border:1px solid var(--border);padding:.15rem .45rem;border-radius:3px;min-width:32px;text-align:center;margin-right:.6rem}
.sc-desc{font-family:'Manrope',sans-serif;font-size:.62rem;color:var(--silver)}

.n-center{width:200px;height:200px;background:radial-gradient(circle at 40% 35%,rgba(15,15,30,.95),rgba(10,10,22,.98));border:1.5px solid var(--emerald);gap:.02rem}
.n-center .nd-ticker{font-family:'Libre Caslon Display',serif;font-size:1.85rem;color:#fff;line-height:1}
.n-center .nd-price{font-family:'Fira Code',monospace;font-size:.92rem;color:#fff;margin-top:.08rem}
.n-center .nd-change{font-family:'Fira Code',monospace;font-size:.68rem;font-weight:500}
.n-center .nd-signal{font-family:'Fira Code',monospace;font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;margin-top:.18rem;padding:.14rem .55rem;border-radius:2px;border:1px solid;background:rgba(0,0,0,.3)}
.n-center .nd-conviction{font-family:'Fira Code',monospace;font-size:.84rem;margin-top:.12rem;font-weight:500}
.n-center .nd-book{font-family:'Fira Code',monospace;font-size:.44rem;letter-spacing:.12em;text-transform:uppercase;color:#fff}

.n-eng{width:100px;height:100px;background:rgba(10,10,22,.92);border:1px solid var(--border);gap:.08rem}
.n-eng:hover{box-shadow:0 0 16px rgba(0,229,255,.1)}
.n-eng .eng-name{font-family:'Fira Code',monospace;font-size:.48rem;letter-spacing:.05em;line-height:1.15;padding:0 .35rem;color:#fff}
.n-eng .eng-signal{font-family:'Libre Caslon Display',serif;font-size:.66rem;color:#fff;line-height:1.05;padding:0 .3rem}
.n-eng .eng-conv{font-family:'Fira Code',monospace;font-size:.66rem;font-weight:500}

.n-af{width:94px;height:94px;background:rgba(10,10,22,.92);border:1px solid var(--border);gap:.05rem}
.n-af:hover{box-shadow:0 0 14px rgba(0,229,255,.08)}
.n-af .af-ticker{font-family:'Fira Code',monospace;font-size:.72rem;font-weight:500;line-height:1;color:#fff}
.n-af .af-type{font-family:'Fira Code',monospace;font-size:.42rem;letter-spacing:.06em;text-transform:uppercase;color:#ccc}
.n-af .af-chg{font-family:'Fira Code',monospace;font-size:.54rem}
.n-af .af-sector{font-family:'Fira Code',monospace;font-size:.34rem;letter-spacing:.04em;color:#bbb;line-height:1;margin-top:.02rem}

.n-util{width:80px;height:80px;background:rgba(10,10,22,.92);border:1px solid;gap:.08rem}
.n-util:hover{box-shadow:0 0 12px rgba(0,229,255,.08)}
.n-util .ut-name{font-family:'Fira Code',monospace;font-size:.48rem;letter-spacing:.06em;text-transform:uppercase;color:#fff}
.n-util .ut-val{font-family:'Fira Code',monospace;font-size:.72rem;font-weight:500}

.conn-label{position:absolute;transform:translate(-50%,-50%) scale(var(--node-scale,1));z-index:10;font-family:'Fira Code',monospace;font-size:.46rem;color:#ddd;background:rgba(3,3,8,.88);padding:.12rem .4rem;border-radius:2px;pointer-events:none;white-space:nowrap;transition:opacity .4s;border:1px solid rgba(30,30,58,.3)}

/* ========== DETAIL PANEL ========== */
#detail{position:absolute;top:48px;right:0;bottom:36px;width:410px;background:var(--deep);border-left:1px solid var(--border);z-index:500;transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);overflow-y:auto;padding:1.4rem 1.3rem}
#detail.open{transform:translateX(0)}
#detail::before{content:'';position:absolute;top:0;left:0;right:0;height:120px;background:linear-gradient(180deg,rgba(0,229,255,.02) 0%,transparent 100%);pointer-events:none}
.dt-close{position:absolute;top:.7rem;right:.7rem;background:none;border:1px solid var(--border);color:var(--smoke);width:26px;height:26px;border-radius:3px;cursor:pointer;font-family:'Fira Code',monospace;font-size:.7rem;display:flex;align-items:center;justify-content:center;transition:all .15s;z-index:2}
.dt-close:hover{color:var(--white);border-color:var(--rose);background:var(--rose-dim)}
.dt-tag{font-family:'Fira Code',monospace;font-size:.44rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ash);margin-bottom:.5rem}
.dt-tag::before{content:'\25C6  '}
.dt-tag .conflict{color:var(--amber);margin-left:.4rem}
.dt-title{font-family:'Libre Caslon Display',serif;font-size:1.2rem;color:var(--white);margin-bottom:.8rem;line-height:1.3}
.dt-thesis{font-family:'Manrope',sans-serif;font-size:.74rem;color:var(--silver);line-height:1.7;margin-bottom:1.2rem}
.dt-section{margin-bottom:1rem}
.dt-section-title{font-family:'Fira Code',monospace;font-size:.42rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ash);margin-bottom:.5rem}
.dt-section-title::before{content:'\25C6  '}
.consensus-bar{display:flex;height:22px;border-radius:3px;overflow:hidden;margin-bottom:.3rem;border:1px solid var(--border)}
.consensus-bar .seg{display:flex;align-items:center;justify-content:center;font-family:'Fira Code',monospace;font-size:.42rem;color:var(--void);font-weight:500;transition:width .4s}
.consensus-legend{display:flex;gap:.8rem;font-family:'Fira Code',monospace;font-size:.42rem;color:var(--smoke);margin-bottom:1rem}
.consensus-legend span::before{content:'';display:inline-block;width:7px;height:7px;border-radius:1px;margin-right:.3rem;vertical-align:middle}
.consensus-legend .cl-bull::before{background:var(--emerald)}
.consensus-legend .cl-neu::before{background:var(--amber)}
.consensus-legend .cl-bear::before{background:var(--rose)}
.conv-track{height:6px;background:var(--edge);border-radius:3px;overflow:hidden;margin-bottom:.2rem}
.conv-fill{height:100%;border-radius:3px;transition:width .5s}
.conv-val{font-family:'Fira Code',monospace;font-size:.56rem;font-weight:500;margin-bottom:1rem}
.dt-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border-radius:4px;overflow:hidden;margin-bottom:1rem}
.dt-grid-cell{background:var(--surface);padding:.55rem .6rem}
.dt-grid-cell .gc-label{font-family:'Fira Code',monospace;font-size:.38rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ash);margin-bottom:.2rem}
.dt-grid-cell .gc-val{font-family:'Fira Code',monospace;font-size:.72rem;color:var(--frost);font-weight:500}
.dt-btn{width:100%;height:36px;background:var(--cyan-dim);border:1px solid var(--cyan-mid);border-radius:4px;color:var(--cyan);font-family:'Fira Code',monospace;font-size:.58rem;letter-spacing:.08em;cursor:pointer;transition:all .15s}
.dt-btn:hover{background:var(--cyan-lo);border-color:var(--cyan)}
.dt-btn.added{background:var(--emerald-dim);border-color:rgba(0,232,156,.3);color:var(--emerald)}
.dt-pills{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem}
.dt-pill{font-family:'Fira Code',monospace;font-size:.44rem;padding:.2rem .5rem;border-radius:2px;border:1px solid var(--border);color:var(--frost);background:var(--surface)}
.dt-pill .pill-label{color:var(--ash);margin-right:.3rem}
.filing-card{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:.6rem .7rem;margin-bottom:.45rem;transition:border-color .15s}
.filing-card:hover{border-color:var(--cyan-mid)}
.filing-type{font-family:'Fira Code',monospace;font-size:.48rem;color:var(--cyan);font-weight:500;margin-bottom:.15rem}
.filing-date{font-family:'Fira Code',monospace;font-size:.4rem;color:var(--ash);margin-bottom:.25rem}
.filing-desc{font-family:'Manrope',sans-serif;font-size:.62rem;color:var(--silver);line-height:1.5;margin-bottom:.3rem}
.filing-link{font-family:'Fira Code',monospace;font-size:.42rem;color:var(--cyan);text-decoration:none;transition:opacity .15s}
.filing-link:hover{opacity:.75}
.strength-bar{height:5px;background:var(--edge);border-radius:3px;overflow:hidden;margin-bottom:.15rem}
.strength-fill{height:100%;border-radius:3px;transition:width .5s}
.dt-rel-badge{display:inline-block;font-family:'Fira Code',monospace;font-size:.42rem;letter-spacing:.08em;text-transform:uppercase;padding:.15rem .45rem;border-radius:2px;margin-bottom:.8rem}
.dt-map-btn{width:100%;height:32px;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--frost);font-family:'Fira Code',monospace;font-size:.52rem;cursor:pointer;transition:all .15s;margin-top:.6rem}
.dt-map-btn:hover{border-color:var(--cyan-mid);color:var(--cyan);background:var(--cyan-dim)}
.risk-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:.35rem;vertical-align:middle}
.risk-item{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--silver);margin-bottom:.35rem;display:flex;align-items:center}

/* ========== BOTTOM BAR ========== */
#bottombar{position:absolute;left:0;right:0;bottom:0;height:36px;background:var(--deep);border-top:1px solid var(--border);display:flex;align-items:center;padding:0 .8rem 0 232px;gap:1.4rem;z-index:150;flex-shrink:0}
.bb-stat{font-family:'Fira Code',monospace;font-size:.48rem;color:var(--smoke)}
.bb-stat span{margin-left:.3rem;font-weight:500}
.bb-disc{margin-left:auto;font-family:'Fira Code',monospace;font-size:.36rem;color:var(--ash);letter-spacing:.04em;text-align:right}

/* ========== LEGEND ========== */
#legend{position:absolute;left:278px;bottom:44px;z-index:60;background:rgba(6,6,15,.92);border:1px solid var(--border);border-radius:4px;padding:.5rem .65rem;backdrop-filter:blur(8px);transition:left .35s cubic-bezier(.4,0,.2,1)}
.leg-title{font-family:'Fira Code',monospace;font-size:.36rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ash);margin-bottom:.35rem}
.leg-title::before{content:'\25C6  '}
.leg-row{display:flex;align-items:center;gap:.4rem;margin-bottom:.2rem}
.leg-line{width:22px;height:0;border-top:1.5px solid}
.leg-line.dashed{border-top-style:dashed}
.leg-label{font-family:'Fira Code',monospace;font-size:.38rem;color:var(--smoke)}

/* ========== LOADING ========== */
#loading{position:fixed;inset:0;z-index:2000;background:rgba(3,3,8,.97);display:none;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;padding:2rem;backdrop-filter:blur(8px)}
#loading.show{display:flex}
#loading::after{content:'';position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(0,229,255,.03) 0%,transparent 70%);animation:ldpulse 3s ease-in-out infinite;pointer-events:none}
@keyframes ldpulse{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.2);opacity:1}}
.ld-title{font-family:'Libre Caslon Display',serif;font-size:1.1rem;color:var(--white);margin-bottom:1.4rem;z-index:1}
.ld-row{display:flex;align-items:center;gap:.7rem;width:min(360px,85vw);margin-bottom:.35rem;z-index:1;position:relative}
.ld-name{font-family:'Fira Code',monospace;font-size:.56rem;color:var(--smoke);min-width:110px;text-align:right;transition:color .3s}
.ld-name.active{color:var(--cyan)}
.ld-name.done{color:var(--emerald)}
.ld-bar{flex:1;height:3px;background:var(--edge);border-radius:2px;overflow:hidden}
.ld-fill{height:100%;width:0;background:var(--cyan);border-radius:2px;transition:width .35s cubic-bezier(.4,0,.2,1)}
.ld-name.done~.ld-bar .ld-fill{background:var(--emerald)}
.ld-status{font-family:'Fira Code',monospace;font-size:.46rem;color:var(--ash);min-width:60px;transition:color .3s}
.ld-status.scanning{color:var(--cyan)}
.ld-status.done{color:var(--emerald)}

/* ========== REPORT BUTTONS & OVERLAY ========== */
.tb-reports{display:none;align-items:center;gap:2px;margin-left:.4rem;flex-shrink:0}
.tb-reports.visible{display:flex}
.tb-rbtn{font-family:'Fira Code',monospace;font-size:.44rem;letter-spacing:.06em;text-transform:uppercase;padding:.25rem .5rem;background:transparent;border:1px solid var(--border);color:var(--smoke);cursor:pointer;border-radius:2px;transition:all .15s;white-space:nowrap}
.tb-rbtn:hover{color:var(--cyan);background:var(--cyan-dim);border-color:var(--cyan-mid)}
.tb-rbtn.active{color:var(--cyan);background:var(--cyan-dim);border-color:var(--cyan-mid)}
#reportOverlay{position:fixed;inset:0;z-index:2500;background:rgba(3,3,8,.95);display:none;justify-content:center;backdrop-filter:blur(8px);overflow-y:auto;padding:56px 1rem 2rem}
#reportOverlay.show{display:flex}
.rpt-doc{background:var(--deep);border:1px solid var(--border);border-radius:8px;width:100%;max-width:900px;padding:2.5rem 3rem;margin:1rem auto;position:relative;align-self:flex-start}
.rpt-doc::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--cyan),var(--emerald),var(--amber));border-radius:8px 8px 0 0}
.rpt-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.8rem;padding-bottom:1.2rem;border-bottom:1px solid var(--border)}
.rpt-logo{width:48px;height:48px;border-radius:6px;border:1px solid var(--border);object-fit:contain;background:var(--surface)}
.rpt-header-info{flex:1}
.rpt-title{font-family:'Libre Caslon Display',serif;font-size:1.4rem;color:var(--white);line-height:1.2}
.rpt-subtitle{font-family:'Fira Code',monospace;font-size:.46rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ash);margin-top:.3rem}
.rpt-subtitle::before{content:'\25C6  '}
.rpt-close{position:absolute;top:1rem;right:1rem;background:none;border:1px solid var(--border);color:var(--smoke);width:30px;height:30px;border-radius:4px;cursor:pointer;font-family:'Fira Code',monospace;font-size:.8rem;display:flex;align-items:center;justify-content:center;transition:all .15s;z-index:2}
.rpt-close:hover{color:var(--white);border-color:var(--rose);background:var(--rose-dim)}
.rpt-section{margin-bottom:1.8rem}
.rpt-section-title{font-family:'Libre Caslon Display',serif;font-size:.95rem;color:var(--white);margin-bottom:.8rem;padding-bottom:.4rem;border-bottom:1px solid var(--edge)}
.rpt-label{font-family:'Fira Code',monospace;font-size:.42rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ash);margin-bottom:.3rem}
.rpt-label::before{content:'\25C6  '}
.rpt-value{font-family:'Fira Code',monospace;font-size:.7rem;color:var(--frost);font-weight:500}
.rpt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1px;background:var(--border);border-radius:4px;overflow:hidden;margin-bottom:1rem}
.rpt-grid-cell{background:var(--surface);padding:.65rem .8rem}
.rpt-desc{font-family:'Manrope',sans-serif;font-size:.72rem;color:var(--silver);line-height:1.65;margin-bottom:1rem}
.rpt-stamp{font-family:'Fira Code',monospace;font-size:.38rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ash);margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border);text-align:center}
.rpt-stat-row{display:flex;justify-content:space-between;padding:.4rem 0;border-bottom:1px solid var(--edge);font-family:'Fira Code',monospace;font-size:.6rem}
.rpt-stat-row .stat-label{color:var(--smoke)}
.rpt-stat-row .stat-val{color:var(--frost);font-weight:500}
.rpt-qtr-nav{display:flex;gap:3px;margin-bottom:1rem}
.rpt-qtr-btn{font-family:'Fira Code',monospace;font-size:.44rem;letter-spacing:.08em;padding:.3rem .6rem;background:transparent;border:1px solid var(--border);color:var(--smoke);cursor:pointer;border-radius:3px;transition:all .15s}
.rpt-qtr-btn.active{color:var(--cyan);background:var(--cyan-dim);border-color:var(--cyan-mid)}
.rpt-qtr-btn:hover:not(.active){background:var(--layer);color:var(--silver)}
.rpt-chart-wrap{position:relative;width:100%;height:220px;border:1px solid var(--border);border-radius:4px;overflow:hidden;background:var(--surface);margin-bottom:1rem}
.rpt-chart-wrap canvas{width:100%;height:100%}

/* ========== CHAT PANEL ========== */
#chatPanel{position:fixed;bottom:0;right:0;width:400px;height:520px;background:var(--deep);border:1px solid var(--border);border-radius:12px 12px 0 0;z-index:2000;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);box-shadow:0 -4px 40px rgba(0,0,0,.5)}
#chatPanel.open{transform:translateY(0)}
.chat-header{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--surface);border-radius:12px 12px 0 0}
.chat-header-left{display:flex;align-items:center;gap:.6rem}
.chat-logo{font-family:'Libre Caslon Display',serif;font-size:.85rem;background:linear-gradient(135deg,var(--white),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.chat-sub{font-family:'Fira Code',monospace;font-size:.36rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ash)}
.chat-close{background:none;border:1px solid var(--border);color:var(--smoke);width:24px;height:24px;border-radius:3px;cursor:pointer;font-size:.7rem;display:flex;align-items:center;justify-content:center;transition:all .15s}
.chat-close:hover{color:var(--white);border-color:var(--rose);background:var(--rose-dim)}
.chat-messages{flex:1;overflow-y:auto;padding:.8rem .9rem;display:flex;flex-direction:column;gap:.6rem}
.chat-welcome{text-align:center;padding:1.5rem .5rem}
.chat-welcome-title{font-family:'Libre Caslon Display',serif;font-size:1rem;color:var(--white);margin-bottom:.5rem}
.chat-welcome-sub{font-family:'Manrope',sans-serif;font-size:.62rem;color:var(--smoke);line-height:1.7;margin-bottom:1.2rem}
.chat-suggestions{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}
.chat-suggest{font-family:'Fira Code',monospace;font-size:.44rem;letter-spacing:.04em;padding:.35rem .7rem;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--silver);cursor:pointer;transition:all .15s}
.chat-suggest:hover{color:var(--cyan);border-color:var(--cyan-mid);background:var(--cyan-dim)}
.chat-msg{max-width:88%;padding:.55rem .75rem;border-radius:8px;font-family:'Manrope',sans-serif;font-size:.68rem;line-height:1.65;word-wrap:break-word;white-space:pre-wrap}
.chat-msg.user{align-self:flex-end;background:var(--cyan-mid);color:var(--white);border-bottom-right-radius:2px}
.chat-msg.assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--border);color:var(--frost);border-bottom-left-radius:2px}
.chat-msg.assistant strong{color:var(--cyan);font-weight:600}
.chat-msg.assistant code{font-family:'Fira Code',monospace;font-size:.6rem;background:var(--layer);padding:.1rem .3rem;border-radius:2px;color:var(--amber)}
.chat-msg.typing{color:var(--smoke);font-style:italic}
.chat-msg .msg-agent{font-family:'Fira Code',monospace;font-size:.36rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ash);margin-bottom:.25rem}
.chat-input-area{display:flex;gap:.4rem;padding:.6rem .8rem;border-top:1px solid var(--border);background:var(--surface);flex-shrink:0}
#chatInput{flex:1;height:36px;background:var(--deep);border:1px solid var(--border);border-radius:4px;padding:0 .7rem;font-family:'Fira Code',monospace;font-size:.68rem;color:var(--white);outline:none;transition:border-color .2s}
#chatInput:focus{border-color:var(--cyan-hi);box-shadow:0 0 0 2px rgba(0,229,255,.06)}
#chatInput::placeholder{color:var(--ash)}
.chat-send-btn{width:36px;height:36px;background:var(--cyan-mid);border:1px solid var(--cyan-hi);border-radius:4px;color:var(--white);font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}
.chat-send-btn:hover{background:var(--cyan-hi)}
.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}
.chat-toggle-btn{position:fixed;bottom:48px;right:16px;z-index:1500;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,rgba(0,229,255,.15),rgba(0,232,156,.1));border:1px solid var(--cyan-mid);color:var(--cyan);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transition:all .25s;box-shadow:0 4px 20px rgba(0,0,0,.4)}
.chat-toggle-btn:hover{transform:scale(1.08);box-shadow:0 4px 28px rgba(0,229,255,.15);border-color:var(--cyan)}
.chat-toggle-btn.hidden{display:none}
.chat-toggle-icon{font-size:1rem;line-height:1}
.chat-toggle-label{font-family:'Fira Code',monospace;font-size:.32rem;letter-spacing:.1em;text-transform:uppercase}

/* ========== LANDING SIGN IN / USER BAR ========== */
.land-user-bar{display:flex;align-items:center;gap:.8rem}
.land-terminal-btn{font-family:'Fira Code',monospace;font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;padding:.45rem 1.4rem;background:var(--cyan-dim);border:1px solid var(--cyan-mid);color:var(--cyan);border-radius:4px;cursor:pointer;transition:all .2s}
.land-terminal-btn:hover{background:var(--cyan);color:var(--deep);border-color:var(--cyan)}
.land-signin{font-family:'Fira Code',monospace;font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;padding:.45rem 1.4rem;background:transparent;border:1px solid var(--cyan-mid);color:var(--cyan);border-radius:4px;cursor:pointer;transition:all .2s}
.land-signin:hover{background:var(--cyan-dim);border-color:var(--cyan)}
.land-user-card{display:flex;align-items:center;gap:.4rem;padding:.45rem 1rem;background:var(--surface);border:1px solid var(--cyan-mid);border-radius:4px;cursor:pointer;transition:all .25s}
.land-user-card:hover{background:var(--cyan-dim);border-color:var(--cyan)}
.land-user-avatar{font-size:.7rem;color:var(--cyan)}
.land-user-name{font-family:'Fira Code',monospace;font-size:.5rem;color:var(--white);letter-spacing:.04em}
.land-user-tier{font-family:'Fira Code',monospace;font-size:.34rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);border:1px solid var(--cyan-mid);padding:.08rem .3rem;border-radius:2px}

/* ========== AUTH MODAL ========== */
#checkoutSuccessOverlay{position:fixed;inset:0;z-index:6000;background:rgba(3,3,8,.92);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px);opacity:0;transition:opacity .3s ease}
#checkoutSuccessOverlay.visible{opacity:1}
.checkout-success-box{background:var(--deep);border:1px solid var(--emerald);border-radius:12px;padding:2.5rem 2.5rem 2rem;text-align:center;max-width:380px;width:92vw;box-shadow:0 0 60px rgba(0,229,160,.12)}
.checkout-success-icon{font-size:3rem;color:var(--emerald);margin-bottom:.8rem;line-height:1}
.checkout-success-title{font-family:'Libre Caslon Display',serif;font-size:1.3rem;color:var(--white);margin-bottom:.5rem}
.checkout-success-msg{font-size:.7rem;color:var(--smoke);margin-bottom:1.5rem;line-height:1.5}
.checkout-success-btn{font-family:'Fira Code',monospace;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;padding:.5rem 1.8rem;background:var(--emerald);color:var(--deep);border:none;border-radius:4px;cursor:pointer;transition:all .2s}
.checkout-success-btn:hover{background:var(--cyan);box-shadow:0 0 16px rgba(0,229,160,.3)}
#authModal{position:fixed;inset:0;z-index:5000;background:rgba(3,3,8,.94);display:none;align-items:center;justify-content:center;backdrop-filter:blur(8px)}
#authModal.show{display:flex}
.auth-box{background:var(--deep);border:1px solid var(--border);border-radius:10px;padding:2rem 2rem 1.6rem;width:min(380px,92vw);position:relative}
.auth-box::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--cyan),var(--emerald));border-radius:10px 10px 0 0}
.auth-close{position:absolute;top:.7rem;right:.7rem;background:none;border:1px solid var(--border);color:var(--smoke);width:26px;height:26px;border-radius:3px;cursor:pointer;font-family:'Fira Code',monospace;font-size:.7rem;display:flex;align-items:center;justify-content:center;transition:all .15s}
.auth-close:hover{color:var(--white);border-color:var(--rose);background:var(--rose-dim)}
.auth-logo{font-family:'Libre Caslon Display',serif;font-size:1.3rem;background:linear-gradient(135deg,var(--white),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center;margin-bottom:1.2rem}
.auth-tabs{display:flex;gap:2px;margin-bottom:1rem;border-bottom:1px solid var(--border)}
.auth-tab{flex:1;font-family:'Fira Code',monospace;font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;padding:.5rem 0;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--smoke);cursor:pointer;transition:all .15s;text-align:center}
.auth-tab.active{color:var(--cyan);border-bottom-color:var(--cyan)}
.auth-tab:hover:not(.active){color:var(--silver)}
.auth-error{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--rose);margin-bottom:.6rem;display:none;padding:.4rem .6rem;background:var(--rose-dim);border:1px solid rgba(255,77,106,.15);border-radius:3px}
.auth-error.show{display:block}
.auth-form{display:none;flex-direction:column;gap:.6rem}
.auth-form.active{display:flex}
.auth-form input{height:40px;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:0 .8rem;font-family:'Fira Code',monospace;font-size:.68rem;color:var(--white);outline:none;transition:border-color .2s}
.auth-form input:focus{border-color:var(--cyan-hi);box-shadow:0 0 0 2px rgba(0,229,255,.06)}
.auth-form input::placeholder{color:var(--ash)}
.auth-submit{height:40px;background:var(--cyan-mid);border:1px solid var(--cyan-hi);border-radius:4px;color:var(--white);font-family:'Fira Code',monospace;font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .15s;margin-top:.2rem}
.auth-submit:hover{background:var(--cyan-hi)}
.auth-submit:disabled{opacity:.5;cursor:not-allowed}

/* ========== PROFILE PANEL ========== */
#profilePanel{position:fixed;top:0;right:0;bottom:0;width:380px;background:var(--deep);border-left:1px solid var(--border);z-index:1200;transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);overflow-y:auto;padding:1.4rem 1.3rem}
#app.show ~ #profilePanel{top:48px;bottom:36px}
#profilePanel.open{transform:translateX(0)}
#profilePanel::before{content:'';position:absolute;top:0;left:0;right:0;height:100px;background:linear-gradient(180deg,rgba(0,229,255,.02) 0%,transparent 100%);pointer-events:none}
.prof-close{position:absolute;top:.7rem;right:.7rem;background:none;border:1px solid var(--border);color:var(--smoke);width:26px;height:26px;border-radius:3px;cursor:pointer;font-family:'Fira Code',monospace;font-size:.7rem;display:flex;align-items:center;justify-content:center;transition:all .15s;z-index:2}
.prof-close:hover{color:var(--white);border-color:var(--rose);background:var(--rose-dim)}
.prof-header{text-align:center;margin-bottom:1.5rem;position:relative}
.prof-avatar{font-size:2rem;color:var(--cyan);margin-bottom:.4rem}
.prof-name{font-family:'Libre Caslon Display',serif;font-size:1.1rem;color:var(--white);margin-bottom:.15rem}
.prof-email{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--smoke);margin-bottom:.5rem}
.prof-tier-badge{display:inline-block;font-family:'Fira Code',monospace;font-size:.42rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);border:1px solid var(--cyan-mid);padding:.15rem .55rem;border-radius:2px;margin-bottom:.3rem}
.prof-since{font-family:'Fira Code',monospace;font-size:.4rem;color:var(--ash);letter-spacing:.06em}
.prof-section{margin-bottom:1.2rem;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:6px}
.prof-section-title{font-family:'Fira Code',monospace;font-size:.42rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ash);margin-bottom:.6rem}
.prof-section-title::before{content:'\25C6  '}
.prof-input{width:100%;height:34px;background:var(--deep);border:1px solid var(--border);border-radius:4px;padding:0 .65rem;font-family:'Fira Code',monospace;font-size:.58rem;color:var(--white);outline:none;transition:border-color .2s;margin-bottom:.5rem}
.prof-input:focus{border-color:var(--cyan-hi)}
.prof-input::placeholder{color:var(--ash)}
.prof-row{display:flex;align-items:center;justify-content:space-between}
.reg-toggles{display:flex;flex-direction:column;gap:.5rem;padding:.3rem 0}
.prof-toggle{display:flex;align-items:center;gap:.4rem;font-family:'Fira Code',monospace;font-size:.5rem;color:var(--silver);cursor:pointer}
.prof-toggle input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:32px;height:16px;background:var(--edge);border-radius:8px;position:relative;cursor:pointer;transition:background .2s}
.prof-toggle input[type="checkbox"]::after{content:'';position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--smoke);transition:all .2s}
.prof-toggle input[type="checkbox"]:checked{background:var(--cyan-mid)}
.prof-toggle input[type="checkbox"]:checked::after{left:18px;background:var(--cyan)}
.prof-btn-sm{font-family:'Fira Code',monospace;font-size:.44rem;letter-spacing:.06em;text-transform:uppercase;padding:.3rem .7rem;background:var(--cyan-dim);border:1px solid var(--cyan-mid);color:var(--cyan);border-radius:3px;cursor:pointer;transition:all .15s}
.prof-btn-sm:hover{background:var(--cyan-lo);border-color:var(--cyan)}
.prof-btn{width:100%;height:36px;background:var(--cyan-dim);border:1px solid var(--cyan-mid);border-radius:4px;color:var(--cyan);font-family:'Fira Code',monospace;font-size:.52rem;letter-spacing:.08em;cursor:pointer;transition:all .15s;margin-bottom:.6rem}
.prof-btn:hover{background:var(--cyan-lo);border-color:var(--cyan)}
.prof-logout{background:var(--rose-dim);border-color:rgba(255,77,106,.2);color:var(--rose)}
.prof-logout:hover{background:rgba(255,77,106,.12);border-color:rgba(255,77,106,.4)}
.prof-msg{font-family:'Fira Code',monospace;font-size:.48rem;color:var(--emerald);text-align:center;margin-bottom:.6rem;min-height:1rem}
.fo-export-btn{font-family:'Fira Code',monospace;font-size:.42rem;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;background:transparent;border:1px solid var(--emerald-dim);color:var(--emerald);border-radius:3px;cursor:pointer;transition:all .15s;margin-left:auto}
.fo-export-btn:hover{background:var(--emerald-dim);border-color:var(--emerald);color:var(--emerald)}
.theme-toggle-row{display:flex;align-items:center;gap:10px;margin:8px 0 12px}
.theme-toggle-row span{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--smoke);text-transform:uppercase;letter-spacing:.06em}
.theme-toggle-row span.active{color:var(--cyan)}
.theme-switch{position:relative;width:36px;height:20px;flex-shrink:0}
.theme-switch input{opacity:0;width:0;height:0}
.theme-switch .slider{position:absolute;inset:0;background:var(--edge);border-radius:10px;cursor:pointer;transition:background .2s}
.theme-switch .slider::before{content:'';position:absolute;width:14px;height:14px;left:3px;bottom:3px;background:var(--cyan);border-radius:50%;transition:transform .2s}
.theme-switch input:checked+.slider{background:var(--cyan-mid)}
.theme-switch input:checked+.slider::before{transform:translateX(16px)}
.prof-footer{border-top:1px solid var(--border);padding-top:1rem;margin-top:.5rem}

/* ========== SUBSCRIPTION / BILLING ========== */
.prof-plan-card{background:var(--deep);border:1px solid var(--border);border-radius:6px;padding:.8rem;margin-bottom:.6rem}
.prof-plan-name{font-family:'Libre Caslon Display',serif;font-size:.75rem;color:var(--cyan);margin-bottom:.2rem}
.prof-plan-price{font-family:'Fira Code',monospace;font-size:.6rem;color:var(--frost);margin-bottom:.4rem}
.prof-plan-features{list-style:none;padding:0;margin:0}
.prof-plan-features li{font-family:'Fira Code',monospace;font-size:.44rem;color:var(--mist);padding:.12rem 0;padding-left:.6rem;position:relative}
.prof-plan-features li::before{content:'✓';position:absolute;left:0;color:var(--emerald);font-size:.4rem}

.prof-billing-info{background:var(--deep);border:1px solid var(--border);border-radius:6px;padding:.6rem;margin-bottom:.6rem}
.prof-billing-row{display:flex;justify-content:space-between;align-items:center;padding:.15rem 0}
.prof-billing-label{font-family:'Fira Code',monospace;font-size:.44rem;color:var(--mist);text-transform:uppercase;letter-spacing:.04rem}
.prof-billing-value{font-family:'Fira Code',monospace;font-size:.44rem;color:var(--frost)}

.prof-upgrade{display:block;width:100%;padding:.5rem;margin-bottom:.4rem;border:none;border-radius:6px;font-family:'Manrope',sans-serif;font-size:.5rem;font-weight:600;cursor:pointer;transition:all .2s;background:linear-gradient(135deg,var(--cyan),var(--teal));color:var(--void);text-align:center}
.prof-upgrade:hover{filter:brightness(1.15);transform:translateY(-1px)}
.prof-upgrade-alt{background:linear-gradient(135deg,var(--amber),#e6a817);color:var(--void)}

.prof-authkey-row{display:flex;gap:.3rem;align-items:stretch;margin-bottom:.6rem}
.prof-authkey{flex:1;font-family:'Fira Code',monospace;font-size:.46rem;letter-spacing:.06em;color:var(--cyan);background:var(--deep);border:1px solid var(--border);cursor:default;user-select:all;margin-bottom:0;height:34px}
.prof-copy-btn{width:34px;height:34px;flex-shrink:0;background:var(--cyan-dim);border:1px solid var(--cyan-mid);border-radius:4px;color:var(--cyan);font-size:.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.prof-copy-btn:hover{background:var(--cyan-lo);border-color:var(--cyan)}
.prof-discord-btn{background:linear-gradient(135deg,#5865F2,#7289DA)!important;border-color:#5865F2!important;color:#fff!important}
.prof-discord-btn:hover{filter:brightness(1.15);transform:translateY(-1px)}

.land-discord{display:inline-block;margin-top:.5rem;font-family:'Fira Code',monospace;font-size:.4rem;color:#5865F2;text-decoration:none;letter-spacing:.06em;transition:color .2s}
.land-discord:hover{color:#7289DA;text-decoration:underline}

.hero-nav-discord{color:#5865F2!important}
.hero-nav-discord:hover{color:#7289DA!important}

.prof-field-label{font-family:'Fira Code',monospace;font-size:.42rem;color:var(--mist);text-transform:uppercase;letter-spacing:.04rem;display:block;margin-bottom:.2rem;margin-top:.5rem}
.prof-field-label:first-of-type{margin-top:0}

/* ========== TIER CTA BUTTONS ========== */
.tier-btn{display:block;width:100%;margin-top:.8rem;padding:.5rem 1rem;border:1px solid var(--border);border-radius:6px;background:var(--deep);color:var(--frost);font-family:'Manrope',sans-serif;font-size:.5rem;font-weight:600;cursor:pointer;transition:all .2s;text-align:center}
.tier-btn:hover:not(:disabled){background:var(--surface);border-color:var(--cyan);color:var(--cyan)}
.tier-btn:disabled{opacity:.4;cursor:default}
.tier-btn-primary{background:linear-gradient(135deg,var(--cyan),var(--teal));color:var(--void);border-color:transparent}
.tier-btn-primary:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-1px);border-color:transparent}

/* ============ ONBOARDING ============ */
#onboardModal{position:fixed;inset:0;z-index:2500;background:rgba(3,3,8,.85);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px)}
.ob-modal-box{background:var(--deep);border:1px solid var(--border);border-radius:12px;padding:2.5rem 2rem;max-width:520px;width:90vw;text-align:center}
.ob-modal-title{font-family:'Libre Caslon Display',serif;font-size:1.6rem;color:var(--white);margin-bottom:.3rem}
.ob-modal-sub{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--smoke);letter-spacing:.15em;text-transform:uppercase;margin-bottom:1.8rem}
.ob-features{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:2rem}
.ob-feat{background:var(--surface);border:1px solid var(--edge);border-radius:8px;padding:.8rem .5rem;display:flex;flex-direction:column;align-items:center;gap:4px}
.ob-feat-icon{font-size:1.4rem}
.ob-feat-name{font-family:'Fira Code',monospace;font-size:.55rem;color:var(--cyan);font-weight:600}
.ob-feat-desc{font-size:.48rem;color:var(--smoke)}
.ob-modal-actions{display:flex;gap:12px;justify-content:center}
.ob-btn-tour{font-family:'Fira Code',monospace;font-size:.6rem;padding:.55rem 1.4rem;background:var(--cyan);color:var(--void);border:none;border-radius:5px;cursor:pointer;font-weight:700;letter-spacing:.04em}
.ob-btn-tour:hover{opacity:.9}
.ob-btn-skip{font-family:'Fira Code',monospace;font-size:.6rem;padding:.55rem 1.4rem;background:transparent;border:1px solid var(--border);color:var(--silver);border-radius:5px;cursor:pointer}
.ob-btn-skip:hover{border-color:var(--smoke);color:var(--frost)}
.ob-overlay{position:fixed;inset:0;z-index:2400;background:rgba(3,3,8,.6);pointer-events:none}
.ob-highlight{position:relative;z-index:2450!important;box-shadow:0 0 0 4px var(--cyan-mid),0 0 20px rgba(0,229,255,.15)!important;border-radius:4px;pointer-events:auto}
.ob-tooltip{position:fixed;z-index:2500;background:var(--deep);border:1px solid var(--cyan-mid);border-radius:8px;padding:1rem 1.2rem;width:280px;box-shadow:0 8px 32px rgba(0,0,0,.4)}
.ob-tip-step{font-family:'Fira Code',monospace;font-size:.42rem;color:var(--smoke);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.1em}
.ob-tip-title{font-family:'Libre Caslon Display',serif;font-size:.95rem;color:var(--cyan);margin-bottom:.3rem}
.ob-tip-desc{font-size:.6rem;color:var(--silver);line-height:1.5;margin-bottom:.8rem}
.ob-tip-actions{display:flex;gap:8px;justify-content:flex-end}
.ob-tip-skip{font-family:'Fira Code',monospace;font-size:.48rem;background:none;border:1px solid var(--border);color:var(--smoke);padding:.3rem .7rem;border-radius:3px;cursor:pointer}
.ob-tip-next{font-family:'Fira Code',monospace;font-size:.48rem;background:var(--cyan);color:var(--void);border:none;padding:.3rem .7rem;border-radius:3px;cursor:pointer;font-weight:600}

/* ========== RESPONSIVE ========== */
/* Hamburger (hidden on desktop) */
.tb-hamburger{display:none;background:none;border:1px solid var(--border);color:var(--frost);font-size:1.1rem;padding:2px 8px;border-radius:4px;cursor:pointer;flex-shrink:0}
.tb-hamburger:hover{border-color:var(--cyan-mid);color:var(--cyan)}
/* Mobile backdrop */
.mobile-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:199;backdrop-filter:blur(2px)}
.mobile-backdrop.show{display:block}

/* ========== HERO LANDING PAGE (Atmospheric v2) ========== */
#hero{position:fixed;inset:0;z-index:1100;background:var(--void);overflow-y:auto;overflow-x:hidden;transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1)}
#hero.hide{opacity:0;pointer-events:none;transform:translateY(-20px)}
#hero.gone{display:none}

/* Canvas + Scanline */
#heroCanvas{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.55}
.hero-scanline{position:fixed;inset:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,229,255,.012) 2px,rgba(0,229,255,.012) 4px);opacity:.5}

/* Nav — floating, no background */
.hero-nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:1rem 2.5rem;mix-blend-mode:difference}
.hero-nav-logo{font-family:'Fira Code',monospace;font-size:.72rem;letter-spacing:.35em;text-transform:uppercase;color:var(--white);display:flex;align-items:center;gap:.6rem}
.hero-nav-dot{width:6px;height:6px;border-radius:50%;background:var(--emerald);display:inline-block;animation:heartbeat 2s infinite}
.hero-nav-links{display:flex;align-items:center;gap:1.8rem}
.hero-nav-link{font-family:'Fira Code',monospace;font-size:.48rem;letter-spacing:.12em;text-transform:uppercase;color:var(--smoke);text-decoration:none;transition:color .2s}
.hero-nav-link:hover{color:var(--white)}
.hero-nav-live{font-family:'Fira Code',monospace;font-size:.44rem;letter-spacing:.1em;color:var(--emerald);display:flex;align-items:center;gap:.4rem;padding:.25rem .6rem;border:1px solid rgba(0,232,156,.25);border-radius:3px}
.hero-live-dot{width:5px;height:5px;border-radius:50%;background:var(--emerald);display:inline-block;animation:heartbeat 2s infinite}
.hero-nav-user{display:flex;align-items:center;gap:.5rem;padding:.25rem .7rem;border:1px solid var(--cyan-mid);border-radius:3px;cursor:pointer;transition:all .2s}
.hero-nav-user:hover{background:var(--cyan-dim);border-color:var(--cyan)}
.hero-user-name{font-family:'Fira Code',monospace;font-size:.46rem;letter-spacing:.06em;color:var(--white)}
.hero-user-tier{font-family:'Fira Code',monospace;font-size:.36rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);border:1px solid var(--cyan-mid);padding:.08rem .35rem;border-radius:2px}
.hero-nav-auth{display:flex;align-items:center;gap:.5rem}
.hero-nav-terminal{font-family:'Fira Code',monospace;font-size:.46rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .7rem;background:var(--cyan-dim);border:1px solid var(--cyan-mid);color:var(--cyan);border-radius:3px;cursor:pointer;transition:all .2s}
.hero-nav-terminal:hover{background:var(--cyan);color:var(--deep);border-color:var(--cyan)}
.hero-nav-signin{font-family:'Fira Code',monospace;font-size:.46rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .7rem;background:transparent;border:1px solid var(--cyan-mid);color:var(--cyan);border-radius:3px;cursor:pointer;transition:all .2s}
.hero-nav-signin:hover{background:var(--cyan-dim);border-color:var(--cyan)}

/* Common Section */
.hero-section{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6rem 2.5rem;position:relative;z-index:2}
.hero-section-inner{max-width:1000px;width:100%}
.hero-center{text-align:center;display:flex;flex-direction:column;align-items:center}
.hero-num{font-family:'Fira Code',monospace;font-size:.44rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ash);margin-bottom:1.5rem}
.hero-h2{font-family:'Instrument Serif','Libre Caslon Display',serif;font-size:clamp(1.6rem,3.5vw,2.4rem);color:var(--white);margin-bottom:1rem;line-height:1.3}
.hero-h2 em{color:var(--cyan);font-style:italic}
.hero-body{font-family:'Manrope',sans-serif;font-size:.82rem;color:var(--silver);line-height:1.8;max-width:640px;margin-bottom:2rem}

/* Divider */
.hero-divider{width:100%;text-align:center;padding:2rem 0;position:relative;z-index:2}
.hero-divider::before{content:'';position:absolute;top:50%;left:10%;right:10%;height:1px;background:var(--edge)}
.hero-divider span{position:relative;background:var(--void);padding:0 1.2rem;color:var(--ash);font-size:.6rem}

/* ---- Section 1: Hero Split ---- */
.hero-main{min-height:100vh;padding-top:2rem}
.hero-split{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;max-width:1200px;width:100%;margin:0 auto}
.hero-left{max-width:560px}
.hero-tag{font-family:'Fira Code',monospace;font-size:.48rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ash);margin-bottom:1.5rem;animation:typeIn 1.2s cubic-bezier(.16,1,.3,1) forwards}
.hero-h1{font-family:'Instrument Serif','Libre Caslon Display',serif;font-size:clamp(3rem,6vw,5.5rem);color:var(--white);line-height:1.05;margin-bottom:1.5rem;letter-spacing:-.02em;animation:fadeUp .8s .2s both}
.hero-h1 em{color:var(--cyan);font-style:italic;position:relative}
.hero-h1 em::after{content:'';position:absolute;bottom:2px;left:0;width:100%;height:2px;background:var(--cyan);opacity:.4}
.hero-h1-line2{color:var(--smoke)}
.hero-desc{font-family:'Manrope',sans-serif;font-size:clamp(.8rem,1.3vw,.95rem);color:var(--silver);line-height:1.8;margin-bottom:2rem;max-width:500px;font-weight:300;animation:fadeUp .8s .4s both}

/* CTA */
.hero-cta-row{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;animation:fadeUp .8s .6s both}
.hero-cta-primary{font-family:'Fira Code',monospace;font-size:.62rem;letter-spacing:.14em;padding:.75rem 2rem;background:var(--cyan);color:var(--void);border:none;cursor:pointer;transition:all .25s;font-weight:600;position:relative;overflow:hidden}
.hero-cta-primary::after{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transition:left .5s}
.hero-cta-primary:hover::after{left:100%}
.hero-cta-primary:hover{box-shadow:0 0 30px rgba(0,229,255,.3);transform:translateY(-1px)}
.hero-cta-lg{font-size:.7rem;padding:.85rem 2.6rem}
.hero-cta-ghost{font-family:'Fira Code',monospace;font-size:.56rem;letter-spacing:.06em;color:var(--smoke);background:none;border:none;cursor:pointer;transition:color .2s;padding:0}
.hero-cta-ghost:hover{color:var(--cyan)}

/* Signal Feed */
.hero-right{animation:slideIn .8s .4s both}
.signal-feed{border:1px solid var(--edge);background:rgba(6,6,15,.7);backdrop-filter:blur(8px);padding:0;border-radius:0}
.signal-header{font-family:'Fira Code',monospace;font-size:.42rem;letter-spacing:.15em;text-transform:uppercase;color:var(--smoke);padding:.8rem 1rem;border-bottom:1px solid var(--edge);display:flex;align-items:center;gap:.5rem}
.signal-cards{display:flex;flex-direction:column}
.signal-card{padding:.8rem 1rem;border-bottom:1px solid var(--edge);border-left:2px solid transparent;transition:all .4s ease;animation:slideIn .5s both}
.signal-card:nth-child(1){animation-delay:.15s}
.signal-card:nth-child(2){animation-delay:.3s}
.signal-card:nth-child(3){animation-delay:.45s}
.signal-card:nth-child(4){animation-delay:.6s}
.signal-card:nth-child(5){animation-delay:.75s;border-bottom:none}
.signal-card.sig-bull{border-left-color:var(--emerald)}
.signal-card.sig-bear{border-left-color:var(--rose)}
.signal-card.sig-neu{border-left-color:var(--amber)}
.signal-card.signal-fade-out{opacity:0;transform:translateX(10px)}
.sig-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}
.sig-ticker{font-family:'Fira Code',monospace;font-size:.7rem;color:var(--white);font-weight:600;letter-spacing:.04em}
.sig-badge{font-family:'Fira Code',monospace;font-size:.38rem;letter-spacing:.1em;padding:.15rem .5rem;border:1px solid transparent;border-radius:2px}
.sig-badge.sig-bull{color:var(--emerald);border-color:rgba(0,232,156,.3);background:rgba(0,232,156,.06)}
.sig-badge.sig-bear{color:var(--rose);border-color:rgba(255,77,106,.3);background:rgba(255,77,106,.06)}
.sig-badge.sig-neu{color:var(--amber);border-color:rgba(255,179,71,.3);background:rgba(255,179,71,.06)}
.sig-engines{font-family:'Fira Code',monospace;font-size:.44rem;color:var(--smoke);margin-bottom:.4rem;letter-spacing:.02em}
.sig-conf-row{display:flex;align-items:center;gap:.6rem}
.sig-conf-bar{flex:1;height:2px;background:var(--edge);border-radius:1px;overflow:hidden}
.sig-conf-fill{height:100%;border-radius:1px;transition:width .5s}
.sig-conf-fill.sig-bull{background:var(--emerald)}
.sig-conf-fill.sig-bear{background:var(--rose)}
.sig-conf-fill.sig-neu{background:var(--amber)}
.sig-conf-pct{font-family:'Fira Code',monospace;font-size:.44rem;color:var(--frost);min-width:28px;text-align:right}
.signal-footer{font-family:'Fira Code',monospace;font-size:.38rem;letter-spacing:.08em;color:var(--ash);padding:.6rem 1rem;border-top:1px solid var(--edge)}

/* ---- Section 3: Architecture Pipeline ---- */
.arch-flow{display:flex;align-items:flex-start;gap:0;margin-top:1rem}
.arch-node{flex:1;padding:1.5rem;border:1px solid var(--edge);border-right:none;background:var(--surface);transition:background .3s,border-color .3s}
.arch-node:last-of-type{border-right:1px solid var(--edge)}
.arch-node:hover{background:var(--layer);border-color:var(--cyan-mid)}
.arch-step{font-family:'Fira Code',monospace;font-size:.42rem;letter-spacing:.15em;color:var(--cyan);margin-bottom:.5rem}
.arch-title{font-family:'Fira Code',monospace;font-size:.7rem;letter-spacing:.12em;color:var(--white);margin-bottom:.25rem}
.arch-sub{font-family:'Fira Code',monospace;font-size:.44rem;color:var(--smoke);margin-bottom:.6rem}
.arch-desc{font-family:'Manrope',sans-serif;font-size:.58rem;color:var(--smoke);line-height:1.6}
.arch-arrow{display:flex;align-items:center;font-size:1.2rem;color:var(--cyan);padding:0 .3rem;margin-top:2.5rem;opacity:.5}

/* ---- Section 4: Metrics Table ---- */
.hero-metrics-table{width:100%;border-collapse:collapse;margin-top:1rem}
.hero-metrics-table tr{border-bottom:1px solid var(--edge)}
.hero-metrics-table td{padding:1rem .5rem;vertical-align:middle}
.metric-name{font-family:'Instrument Serif','Libre Caslon Display',serif;font-size:1.1rem;color:var(--frost);width:40%}
.metric-value{font-family:'Fira Code',monospace;font-size:1.6rem;font-weight:600;width:30%;letter-spacing:.02em}
.val-cyan{color:var(--cyan)}
.val-emerald{color:var(--emerald)}
.val-amber{color:var(--amber)}
.metric-ctx{font-family:'Fira Code',monospace;font-size:.48rem;letter-spacing:.06em;color:var(--smoke);text-transform:uppercase}

/* ---- Section 5: The Edge ---- */
.hero-edge-section{background:var(--deep);border-top:1px solid var(--edge);border-bottom:1px solid var(--edge)}
.hero-edge-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.hero-edge-left{position:sticky;top:8rem}
.hero-edge-right{display:flex;flex-direction:column;gap:0}
.edge-item{padding:1.2rem 1.2rem;border-left:2px solid transparent;transition:border-color .3s,background .3s}
.edge-item:hover{border-left-color:var(--cyan);background:rgba(0,229,255,.02)}
.edge-title{font-family:'Fira Code',monospace;font-size:.64rem;letter-spacing:.06em;color:var(--white);margin-bottom:.35rem}
.edge-desc{font-family:'Manrope',sans-serif;font-size:.62rem;color:var(--smoke);line-height:1.7}

/* ---- Section 6: Manifesto ---- */
.hero-manifesto{position:relative}
.hero-manifesto::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 50%,rgba(0,229,255,.02) 0%,transparent 70%);pointer-events:none}
.manifesto-text{font-family:'Instrument Serif','Libre Caslon Display',serif;font-size:clamp(1.3rem,2.8vw,2.2rem);color:var(--smoke);line-height:1.5;max-width:800px;text-align:center;margin-bottom:2.5rem}
.manifesto-text em{color:var(--cyan);font-style:italic}

/* ---- Section 7: Final CTA ---- */
.hero-final{min-height:auto;padding:5rem 2.5rem}

/* Footer */
.hero-footer{position:relative;z-index:2;border-top:1px solid var(--edge);padding:1.5rem 2.5rem}
.hero-footer-inner{max-width:1000px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;font-family:'Fira Code',monospace;font-size:.42rem;letter-spacing:.06em;color:var(--ash)}
.hero-footer-links{display:flex;gap:1.5rem}
.hero-footer-links a{color:var(--smoke);text-decoration:none;transition:color .2s}
.hero-footer-links a:hover{color:var(--cyan)}

/* Scroll Reveal */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.reveal.visible{opacity:1;transform:translateY(0)}

/* Animations */
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes typeIn{from{opacity:0;letter-spacing:.8em}to{opacity:1;letter-spacing:.3em}}
@keyframes slideIn{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}
@keyframes heartbeat{0%,100%{transform:scale(1)}30%{transform:scale(1.4);opacity:.8}60%{transform:scale(.9)}}

/* Light Theme Hero Overrides */
body.light-theme #heroCanvas{opacity:.2}
body.light-theme .hero-scanline{display:none}
body.light-theme .hero-nav{mix-blend-mode:normal;background:rgba(240,240,245,.8);backdrop-filter:blur(12px);border-bottom:1px solid var(--edge)}
body.light-theme .hero-divider span{background:var(--void)}
body.light-theme .signal-feed{background:rgba(255,255,255,.85);border-color:var(--edge)}
body.light-theme .signal-card{border-bottom-color:var(--edge)}
body.light-theme .hero-edge-section{background:var(--layer)}
body.light-theme .arch-node{background:var(--layer)}
body.light-theme .arch-node:hover{background:var(--surface)}

/* Hero Responsive */
@media(max-width:1024px){
.hero-split{grid-template-columns:1fr;gap:2rem}
.hero-left{max-width:100%}
.hero-right{max-width:520px}
.hero-h1{font-size:clamp(2.4rem,5vw,4rem)}
.arch-flow{flex-direction:column}
.arch-node{border-right:1px solid var(--edge);border-bottom:none}
.arch-node:last-of-type{border-bottom:1px solid var(--edge)}
.arch-arrow{transform:rotate(90deg);margin:0 auto;padding:.3rem 0}
.hero-edge-grid{grid-template-columns:1fr}
.hero-edge-left{position:static;margin-bottom:1.5rem}
}
@media(max-width:768px){
.hero-nav-links .hero-nav-link{display:none}
.hero-nav{padding:.8rem 1.2rem}
.hero-section{padding:4rem 1.2rem}
.hero-metrics-table td{padding:.7rem .3rem}
.metric-name{font-size:.85rem}
.metric-value{font-size:1.2rem}
.metric-ctx{font-size:.4rem}
}
@media(max-width:480px){
.hero-h1{font-size:clamp(2rem,8vw,3rem)}
.hero-cta-row{flex-direction:column;align-items:flex-start}
.hero-cta-primary{width:100%;text-align:center;justify-content:center}
.hero-nav{padding:.6rem 1rem}
.hero-split{gap:1.5rem}
.signal-feed{margin:0 -.5rem}
.hero-metrics-table .metric-ctx{display:none}
}

@media(max-width:900px){
#leftpanel{width:180px}
#map{left:180px}
#bottombar{padding-left:192px}
#legend{left:188px}
#maptoolbar{left:188px}
.n-center{width:160px;height:160px}
.n-center .nd-ticker{font-size:1.4rem}
.n-eng{width:80px;height:80px}
.n-eng .eng-name{font-size:.42rem}
.n-eng .eng-signal{font-size:.54rem}
.n-af{width:74px;height:74px}
.n-af .af-ticker{font-size:.56rem}
.n-af .af-sector{display:none}
#detail{width:100%;max-width:410px}
.rpt-doc{padding:1.5rem 1.2rem}
.rpt-grid{grid-template-columns:1fr 1fr}
.tb-reports{gap:1px}
.tb-rbtn{font-size:.38rem;padding:.2rem .35rem}
}

@media(max-width:768px){
.tb-hamburger{display:block}
.tb-views,.tb-reports,.tb-clock{display:none!important}
.tb-search{width:0;min-width:120px;flex:1}
.tb-right{gap:.35rem;overflow:hidden}
.tb-status{gap:.35rem}
#topbar{gap:.4rem;padding:0 .5rem;flex-wrap:nowrap;overflow:hidden}
#leftpanel{position:fixed;left:-260px;top:48px;bottom:0;width:260px;z-index:200;transition:left .25s ease;background:var(--deep);border-right:1px solid var(--border);overflow-y:auto}
#leftpanel.mobile-open{left:0}
#map{left:0!important}
#bottombar{padding-left:.8rem}
#legend{left:8px}
#maptoolbar{left:8px}
#chatPanel{width:100%;right:0;border-radius:8px 8px 0 0}
.chat-toggle-btn{bottom:44px;right:8px;width:42px;height:42px}
#profilePanel{width:100%!important;max-width:100%}
#detail{width:100%;max-width:100%}
.feature-overlay,.feature-overlay[style]{width:100%!important;max-width:100%!important;height:90vh!important;border-radius:8px 8px 0 0!important}
.fo-body{overflow-x:auto}
#screenerOverlay{width:100%!important}
.scr-filters{flex-direction:column}
#heatmapOverlay{width:100%!important}
#communityOverlay{width:100%!important}
#priceAlertModal{width:100%!important;max-width:100%!important}
.pa-box{width:95%!important;max-width:95%!important}
.land-tiers{flex-direction:column;align-items:center}
.tier{width:min(280px,85vw)}
.rpt-grid{grid-template-columns:1fr}
}

@media(max-width:480px){
#tbInsider,#tbInstitutional,#tbEconomic,#tbComm{display:none}
.tb-right{gap:.25rem}
.tb-wl{font-size:.44rem;padding:.2rem .4rem}
.tb-logo{font-size:.7rem}
.dt-metrics{grid-template-columns:1fr 1fr}
.cry-metrics-grid{grid-template-columns:1fr 1fr}
.jrn-stats-grid{grid-template-columns:1fr 1fr}
.scr-filters{padding:8px}
.ec-day-cards{flex-direction:column}
.pa-form{flex-direction:column}
.pa-form>*{width:100%}
.chat-suggestions{flex-direction:column}
.chat-suggest{font-size:.5rem}
.ob-features{grid-template-columns:1fr 1fr}
.ob-modal-box{padding:1.5rem 1rem}
.ob-modal-title{font-size:1.2rem}
}

/* ========== ADVANCED CHART ========== */
.chart-controls{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;flex-wrap:wrap}
.chart-tf-group,.chart-ind-group{display:flex;gap:2px}
.chart-tf,.chart-ind{font-family:'Fira Code',monospace;font-size:.52rem;padding:.22rem .4rem;background:var(--surface);border:1px solid var(--border);color:var(--smoke);cursor:pointer;border-radius:3px;transition:all .15s}
.chart-tf:hover,.chart-ind:hover{border-color:var(--cyan-mid);color:var(--frost)}
.chart-tf.active{background:var(--cyan-mid);color:var(--white);border-color:var(--cyan)}
.chart-ind.active{background:rgba(167,139,250,.15);color:var(--lavender);border-color:var(--lavender)}
.chart-container{border:1px solid var(--border);border-radius:4px;overflow:hidden}

/* ========== PORTFOLIO ========== */
.portfolio-section{padding:.5rem 0;border-top:1px solid var(--border);margin-top:.5rem}
.pf-item{display:flex;align-items:center;justify-content:space-between;padding:.35rem .5rem;cursor:pointer;border-radius:3px;transition:background .12s;font-family:'Fira Code',monospace;font-size:.6rem;color:var(--frost)}
.pf-item:hover,.pf-item.active{background:var(--layer)}
.pf-item.active{border-left:2px solid var(--cyan)}
.pf-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-del{background:none;border:none;color:var(--smoke);cursor:pointer;font-size:.7rem;padding:0 .2rem}
.pf-del:hover{color:var(--rose)}
.pf-create-btn{width:100%;padding:.3rem;background:var(--surface);border:1px dashed var(--border);color:var(--smoke);cursor:pointer;font-family:'Fira Code',monospace;font-size:.52rem;border-radius:3px;margin-top:.3rem;transition:all .15s}
.pf-create-btn:hover{border-color:var(--cyan-mid);color:var(--cyan)}
.pf-header{margin-bottom:.5rem}
.pf-title{font-family:'Libre Caslon Display',serif;font-size:.72rem;color:var(--white);margin-bottom:.2rem}
.pf-summary{font-family:'Fira Code',monospace;font-size:.55rem;display:flex;gap:.5rem;align-items:center}
.pf-val{color:var(--frost)}
.pf-pnl{font-size:.5rem}
.pf-pos{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:.35rem .45rem;margin-bottom:.3rem}
.pf-pos-top{display:flex;align-items:center;gap:.4rem;margin-bottom:.2rem}
.pf-pos-ticker{font-family:'Fira Code',monospace;font-size:.58rem;color:var(--cyan);font-weight:500;min-width:36px}
.pf-pos-shares{font-size:.48rem;color:var(--smoke);flex:1}
.pf-pos-val{font-family:'Fira Code',monospace;font-size:.55rem;color:var(--frost)}
.pf-pos-bottom{display:flex;align-items:center;gap:.4rem;font-family:'Fira Code',monospace;font-size:.46rem;color:var(--smoke)}
.pf-pos-pnl{margin-left:auto}
.pf-pos-close{background:none;border:1px solid var(--rose);color:var(--rose);font-family:'Fira Code',monospace;font-size:.42rem;padding:.1rem .3rem;border-radius:2px;cursor:pointer;transition:all .15s}
.pf-pos-close:hover{background:var(--rose);color:var(--void)}
.pf-add-btn{width:100%;padding:.3rem;background:var(--surface);border:1px dashed var(--border);color:var(--smoke);cursor:pointer;font-family:'Fira Code',monospace;font-size:.52rem;border-radius:3px;margin-top:.3rem;transition:all .15s}
.pf-add-btn:hover{border-color:var(--emerald);color:var(--emerald)}

/* ========== COMMUNITY / SOCIAL ========== */
#communityOverlay{position:fixed;inset:0;z-index:900;background:rgba(3,3,8,.92);display:none;flex-direction:column;padding:0;overflow:hidden}
#communityOverlay.open{display:flex}
.comm-header{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1.2rem;border-bottom:1px solid var(--border);background:var(--deep);flex-shrink:0}
.comm-title{font-family:'Libre Caslon Display',serif;font-size:1rem;color:var(--white)}
.comm-actions{display:flex;gap:.5rem;align-items:center}
.comm-share-btn{font-family:'Fira Code',monospace;font-size:.52rem;padding:.3rem .6rem;background:var(--cyan-mid);border:1px solid var(--cyan);color:var(--white);cursor:pointer;border-radius:3px;transition:all .15s}
.comm-share-btn:hover{background:var(--cyan)}
.comm-close{background:none;border:none;color:var(--smoke);font-size:1.2rem;cursor:pointer}
.comm-close:hover{color:var(--white)}
.comm-feed{flex:1;overflow-y:auto;padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.6rem;max-width:680px;margin:0 auto;width:100%}
.comm-more{align-self:center;font-family:'Fira Code',monospace;font-size:.52rem;padding:.3rem .8rem;background:var(--surface);border:1px solid var(--border);color:var(--smoke);cursor:pointer;border-radius:3px;margin:.5rem auto;transition:all .15s}
.comm-more:hover{border-color:var(--cyan-mid);color:var(--cyan)}
.feed-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.7rem .8rem;transition:border-color .15s}
.feed-card:hover{border-color:var(--edge)}
.feed-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}
.feed-author{display:flex;align-items:center;gap:.4rem}
.feed-avatar{width:24px;height:24px;border-radius:50%;background:var(--layer);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:'Fira Code',monospace;font-size:.5rem;color:var(--cyan);flex-shrink:0}
.feed-name{font-family:'Fira Code',monospace;font-size:.55rem;color:var(--cyan);cursor:pointer}
.feed-name:hover{text-decoration:underline}
.feed-time{font-family:'Fira Code',monospace;font-size:.44rem;color:var(--smoke);margin-left:.4rem}
.feed-ticker{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--amber);cursor:pointer;padding:.1rem .3rem;background:var(--amber-dim);border-radius:2px}
.feed-ticker:hover{background:rgba(255,179,71,.15)}
.feed-title{font-family:'Manrope',sans-serif;font-size:.72rem;color:var(--white);font-weight:500;margin-bottom:.3rem}
.feed-body{font-size:.58rem;color:var(--silver);line-height:1.5;margin-bottom:.3rem}
.feed-verdict{font-family:'Fira Code',monospace;font-size:.5rem;padding:.15rem .4rem;border-radius:2px;display:inline-block;margin-bottom:.3rem}
.feed-verdict.bull{background:var(--emerald-dim);color:var(--emerald)}
.feed-verdict.bear{background:var(--rose-dim);color:var(--rose)}
.feed-verdict.neu{background:var(--amber-dim);color:var(--amber)}
.feed-actions{display:flex;gap:.5rem;align-items:center}
.feed-upvote,.feed-comment-btn{font-family:'Fira Code',monospace;font-size:.5rem;padding:.15rem .4rem;background:none;border:1px solid var(--border);color:var(--smoke);cursor:pointer;border-radius:3px;transition:all .15s}
.feed-upvote:hover{border-color:var(--emerald);color:var(--emerald)}
.feed-upvote.active{border-color:var(--emerald);color:var(--emerald);background:var(--emerald-dim)}
.feed-comment-btn:hover{border-color:var(--cyan-mid);color:var(--cyan)}
.feed-comments{margin-top:.4rem;padding-top:.3rem;border-top:1px solid var(--border)}
.feed-cmt{font-size:.52rem;color:var(--silver);padding:.2rem 0;line-height:1.4}
.feed-cmt-author{color:var(--cyan);font-family:'Fira Code',monospace;font-size:.5rem}
.feed-cmt-time{color:var(--smoke);font-size:.42rem;margin-left:.3rem}
.feed-cmt-input{display:flex;gap:.3rem;margin-top:.3rem}
.feed-cmt-box{flex:1;background:var(--layer);border:1px solid var(--border);color:var(--frost);font-family:'Fira Code',monospace;font-size:.52rem;padding:.25rem .4rem;border-radius:3px;outline:none}
.feed-cmt-box:focus{border-color:var(--cyan-mid)}
.feed-cmt-send{font-family:'Fira Code',monospace;font-size:.48rem;padding:.2rem .4rem;background:var(--cyan-mid);border:none;color:var(--white);cursor:pointer;border-radius:3px}

/* ========== NEWS ========== */
.news-sidebar-section{padding:.5rem 0;border-top:1px solid var(--border);margin-top:.5rem}
.news-sb-item{display:block;padding:.35rem .5rem;text-decoration:none;border-radius:3px;transition:background .12s;border-bottom:1px solid var(--border)}
.news-sb-item:hover{background:var(--layer)}
.news-sb-title{font-size:.54rem;color:var(--frost);line-height:1.4;margin-bottom:.15rem}
.news-sb-meta{font-family:'Fira Code',monospace;font-size:.4rem;color:var(--smoke);display:flex;justify-content:space-between}
#newsOverlay{position:fixed;inset:0;z-index:900;background:var(--void);display:none;flex-direction:column;overflow:hidden}
#newsOverlay.open{display:flex}
.news-ol-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;border-bottom:1px solid var(--border);background:var(--deep)}
.news-ol-title{font-family:'Libre Caslon Display',serif;font-size:.9rem;color:var(--white)}
.news-ol-close{background:none;border:none;color:var(--smoke);font-size:1.2rem;cursor:pointer}
.news-ol-close:hover{color:var(--white)}
.news-ol-list{flex:1;overflow-y:auto;padding:1rem}
.news-full-card{display:flex;gap:.8rem;padding:.7rem;margin-bottom:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:6px;text-decoration:none;transition:border-color .2s,transform .1s}
.news-full-card:hover{border-color:var(--cyan-mid);transform:translateY(-1px)}
.news-full-img{width:100px;height:72px;border-radius:4px;background-size:cover;background-position:center;background-color:var(--layer);flex-shrink:0}
.news-no-img{display:flex;align-items:center;justify-content:center;color:var(--ash);font-size:1.6rem}
.news-full-body{flex:1;min-width:0}
.news-full-title{font-size:.68rem;color:var(--white);font-weight:500;line-height:1.4;margin-bottom:.3rem}
.news-full-snippet{font-size:.52rem;color:var(--silver);line-height:1.5}
.news-meta{display:flex;gap:.5rem;align-items:center;margin-bottom:.25rem;flex-wrap:wrap}
.news-source{font-family:'Fira Code',monospace;font-size:.42rem;color:var(--cyan);letter-spacing:.04em}
.news-time{font-family:'Fira Code',monospace;font-size:.4rem;color:var(--smoke)}
.news-ticker-tag{font-family:'Fira Code',monospace;font-size:.4rem;color:var(--amber);background:var(--amber-dim);padding:.05rem .3rem;border-radius:2px}
.news-sent{font-family:'Fira Code',monospace;font-size:.38rem;padding:.05rem .25rem;border-radius:2px;text-transform:uppercase;letter-spacing:.06em}
.news-sent-bullish{color:var(--emerald);background:var(--emerald-dim)}
.news-sent-bearish{color:var(--rose);background:var(--rose-dim)}
.news-sent-neutral{color:var(--smoke);background:rgba(90,90,128,.12)}
.news-list{display:flex;flex-direction:column;gap:.4rem}
.news-card{display:flex;gap:.5rem;padding:.5rem;background:var(--layer);border:1px solid var(--border);border-radius:4px;text-decoration:none;transition:border-color .2s}
.news-card:hover{border-color:var(--cyan-mid)}
.news-img{width:70px;height:50px;border-radius:3px;background-size:cover;background-position:center;background-color:var(--surface);flex-shrink:0}
.news-body{flex:1;min-width:0}
.news-title{font-size:.58rem;color:var(--white);line-height:1.4;margin-bottom:.2rem}
.news-snippet{font-size:.48rem;color:var(--smoke);line-height:1.4}

/* ========== SCREENER ========== */
#screenerOverlay{position:fixed;inset:0;z-index:900;background:var(--void);display:none;flex-direction:column;overflow:hidden}
#screenerOverlay.open{display:flex}
.scr-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;border-bottom:1px solid var(--border);background:var(--deep)}
.scr-title{font-family:'Libre Caslon Display',serif;font-size:.9rem;color:var(--white)}
.scr-close{background:none;border:none;color:var(--smoke);font-size:1.2rem;cursor:pointer}
.scr-close:hover{color:var(--white)}
.scr-filters{padding:.8rem 1rem;border-bottom:1px solid var(--border);background:var(--deep)}
.scr-row{display:flex;gap:.6rem;margin-bottom:.5rem;flex-wrap:wrap}
.scr-field{flex:1;min-width:120px}
.scr-label{font-family:'Fira Code',monospace;font-size:.4rem;color:var(--smoke);letter-spacing:.08em;text-transform:uppercase;display:block;margin-bottom:.2rem}
.scr-select,.scr-input{width:100%;background:var(--surface);border:1px solid var(--border);color:var(--frost);font-family:'Fira Code',monospace;font-size:.56rem;padding:.3rem .4rem;border-radius:3px;outline:none}
.scr-select:focus,.scr-input:focus{border-color:var(--cyan-mid)}
.scr-select option{background:var(--deep);color:var(--frost)}
.scr-actions{display:flex;align-items:center;gap:.5rem;margin-top:.3rem}
.scr-btn{font-family:'Fira Code',monospace;font-size:.52rem;padding:.3rem .8rem;border:1px solid var(--border);background:var(--surface);color:var(--frost);cursor:pointer;border-radius:3px;transition:border-color .2s}
.scr-btn:hover{border-color:var(--cyan-mid)}
.scr-btn-primary{background:var(--cyan-mid);border-color:var(--cyan-hi);color:var(--white)}
.scr-btn-primary:hover{background:var(--cyan-hi)}
.scr-count{font-family:'Fira Code',monospace;font-size:.46rem;color:var(--smoke)}
.scr-results{flex:1;overflow-y:auto;padding:0 1rem 1rem}
.scr-table{width:100%;border-collapse:collapse;font-family:'Fira Code',monospace;font-size:.54rem}
.scr-table thead th{position:sticky;top:0;background:var(--deep);color:var(--smoke);font-size:.42rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;text-align:left;padding:.4rem .5rem;border-bottom:1px solid var(--border)}
.scr-table tbody td{padding:.35rem .5rem;border-bottom:1px solid var(--border);color:var(--frost)}
.scr-row-click{cursor:pointer;transition:background .12s}
.scr-row-click:hover{background:var(--layer)}
.scr-sym{color:var(--cyan);font-weight:500}
.scr-name{color:var(--silver);font-family:'Manrope',sans-serif;font-size:.52rem;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scr-sector{color:var(--smoke);font-size:.46rem}

/* ========== HEATMAP ========== */
#heatmapOverlay{position:fixed;inset:0;z-index:900;background:var(--void);display:none;flex-direction:column;overflow:hidden}
#heatmapOverlay.open{display:flex}
.hm-header{display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;border-bottom:1px solid var(--border);background:var(--deep)}
.hm-title{font-family:'Libre Caslon Display',serif;font-size:.9rem;color:var(--white)}
.hm-tabs{display:flex;gap:.3rem;margin-left:auto}
.hm-tab{font-family:'Fira Code',monospace;font-size:.5rem;padding:.25rem .6rem;background:none;border:1px solid var(--border);color:var(--smoke);cursor:pointer;border-radius:3px;transition:all .15s}
.hm-tab:hover{color:var(--frost);border-color:var(--ash)}
.hm-tab.active{color:var(--cyan);border-color:var(--cyan-mid);background:var(--cyan-dim)}
.hm-close{background:none;border:none;color:var(--smoke);font-size:1.2rem;cursor:pointer;margin-left:.5rem}
.hm-close:hover{color:var(--white)}
.hm-content{flex:1;overflow-y:auto;padding:1rem}
.hm-treemap{display:flex;flex-wrap:wrap;gap:.4rem}
.hm-sector{min-width:140px;min-height:90px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid;border-radius:6px;padding:.8rem .6rem;cursor:default;transition:transform .12s}
.hm-sector:hover{transform:scale(1.02)}
.hm-sector-name{font-family:'Manrope',sans-serif;font-size:.6rem;color:var(--white);font-weight:500;margin-bottom:.3rem;text-align:center}
.hm-sector-pct{font-family:'Fira Code',monospace;font-size:1rem;font-weight:600}
.hm-mover-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.4rem}
.hm-mover{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;border:1px solid var(--border);border-radius:4px;cursor:pointer;transition:border-color .2s,transform .1s}
.hm-mover:hover{border-color:var(--cyan-mid);transform:translateY(-1px)}
.hm-mover-rank{font-family:'Fira Code',monospace;font-size:.42rem;color:var(--smoke);min-width:22px}
.hm-mover-sym{font-family:'Fira Code',monospace;font-size:.58rem;color:var(--cyan);font-weight:500;min-width:48px}
.hm-mover-name{font-size:.48rem;color:var(--silver);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-mover-price{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--frost)}
.hm-mover-chg{font-family:'Fira Code',monospace;font-size:.52rem;font-weight:500;min-width:55px;text-align:right}

/* ========== NOTIFICATIONS ========== */
.tb-notif{position:relative;cursor:pointer;display:flex;align-items:center;padding:0 .4rem}
.notif-icon{font-size:.82rem;color:var(--smoke);transition:color .15s}
.tb-notif:hover .notif-icon{color:var(--cyan)}
.notif-badge{position:absolute;top:-2px;right:0;font-family:'Fira Code',monospace;font-size:.36rem;background:var(--rose);color:var(--white);border-radius:50%;min-width:14px;height:14px;display:flex;align-items:center;justify-content:center;padding:0 3px;font-weight:600}
.notif-dropdown{position:fixed;top:38px;right:110px;width:320px;max-height:400px;background:var(--deep);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 32px rgba(0,0,0,.5);z-index:800;display:none;flex-direction:column}
.notif-dropdown.open{display:flex}
.notif-dd-header{display:flex;align-items:center;justify-content:space-between;padding:.45rem .6rem;border-bottom:1px solid var(--border)}
.notif-dd-title{font-family:'Fira Code',monospace;font-size:.5rem;color:var(--frost);letter-spacing:.06em;text-transform:uppercase}
.notif-dd-mark{font-family:'Fira Code',monospace;font-size:.42rem;color:var(--cyan);background:none;border:none;cursor:pointer}
.notif-dd-mark:hover{text-decoration:underline}
.notif-dd-body{flex:1;overflow-y:auto;max-height:280px}
.notif-item{padding:.45rem .6rem;border-bottom:1px solid var(--border);position:relative;transition:background .12s}
.notif-item:hover{background:var(--layer)}
.notif-item-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.15rem}
.notif-ticker{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--cyan);font-weight:500}
.notif-item-body{font-size:.5rem;color:var(--silver);line-height:1.4}
.notif-item-time{font-family:'Fira Code',monospace;font-size:.38rem;color:var(--smoke);margin-top:.15rem}
.notif-del{position:absolute;top:.35rem;right:.4rem;background:none;border:none;color:var(--smoke);font-size:.7rem;cursor:pointer;line-height:1}
.notif-del:hover{color:var(--rose)}
.notif-dd-footer{padding:.4rem .6rem;border-top:1px solid var(--border)}
.notif-dd-alerts{width:100%;font-family:'Fira Code',monospace;font-size:.46rem;padding:.3rem;background:var(--surface);border:1px solid var(--border);color:var(--frost);cursor:pointer;border-radius:3px;text-align:center;transition:border-color .15s}
.notif-dd-alerts:hover{border-color:var(--cyan-mid);color:var(--cyan)}

/* Price Alerts Modal */
#priceAlertModal{position:fixed;inset:0;z-index:950;background:rgba(3,3,8,.85);display:flex;align-items:center;justify-content:center}
.pa-box{width:min(420px,90vw);background:var(--deep);border:1px solid var(--border);border-radius:8px;padding:1.2rem}
.pa-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}
.pa-title{font-family:'Libre Caslon Display',serif;font-size:.82rem;color:var(--white)}
.pa-close{background:none;border:none;color:var(--smoke);font-size:1rem;cursor:pointer}
.pa-close:hover{color:var(--white)}
.pa-form{display:flex;gap:.4rem;margin-bottom:.8rem;flex-wrap:wrap}
.pa-input,.pa-select{flex:1;min-width:80px;background:var(--surface);border:1px solid var(--border);color:var(--frost);font-family:'Fira Code',monospace;font-size:.56rem;padding:.35rem .5rem;border-radius:4px;outline:none}
.pa-input:focus,.pa-select:focus{border-color:var(--cyan-mid)}
.pa-select option{background:var(--deep);color:var(--frost)}
.pa-btn{font-family:'Fira Code',monospace;font-size:.52rem;padding:.35rem .7rem;background:var(--cyan-mid);border:1px solid var(--cyan-hi);color:var(--white);cursor:pointer;border-radius:4px;white-space:nowrap}
.pa-btn:hover{background:var(--cyan-hi)}
.pa-list{max-height:220px;overflow-y:auto}
.pa-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .4rem;border-bottom:1px solid var(--border);font-family:'Fira Code',monospace;font-size:.52rem}
.pa-item-ticker{color:var(--cyan);font-weight:500;min-width:48px}
.pa-item-cond{color:var(--frost);flex:1}
.pa-item-status{font-size:.44rem;color:var(--amber)}
.pa-item-del{background:none;border:none;color:var(--smoke);font-size:.7rem;cursor:pointer}
.pa-item-del:hover{color:var(--rose)}

/* ========== FEATURE OVERLAYS (shared base) ========== */
.feature-overlay{position:fixed;inset:0;z-index:700;background:var(--void);display:flex;flex-direction:column;overflow:hidden}
.fo-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.2rem;border-bottom:1px solid var(--border);min-height:38px;gap:.8rem}
.fo-title{font-family:'Libre Caslon Display',serif;font-size:.72rem;color:var(--white);white-space:nowrap}
.fo-tabs{display:flex;gap:.3rem}
.fo-close{background:none;border:none;color:var(--smoke);font-size:1rem;cursor:pointer;margin-left:auto}
.fo-close:hover{color:var(--white)}
.fo-body{flex:1;overflow-y:auto;padding:1rem 1.2rem}

/* ========== EARNINGS CALENDAR ========== */
.ec-tab{font-family:'Fira Code',monospace;font-size:.46rem;padding:.25rem .6rem;background:var(--surface);border:1px solid var(--border);color:var(--smoke);cursor:pointer;border-radius:3px;transition:all .15s}
.ec-tab.active{background:var(--cyan-mid);border-color:var(--cyan-hi);color:var(--white)}
.ec-day{margin-bottom:1rem}
.ec-today{border-left:3px solid var(--cyan);padding-left:.5rem}
.ec-day-header{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.5rem}
.ec-day-label{font-family:'Fira Code',monospace;font-size:.56rem;color:var(--frost);font-weight:600}
.ec-day-dow{font-family:'Fira Code',monospace;font-size:.44rem;color:var(--smoke)}
.ec-day-count{font-family:'Fira Code',monospace;font-size:.38rem;color:var(--smoke);margin-left:auto}
.ec-day-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.4rem}
.ec-card{background:var(--deep);border:1px solid var(--border);border-radius:4px;padding:.45rem .5rem;cursor:pointer;transition:border-color .15s}
.ec-card:hover{border-color:var(--cyan-mid)}
.ec-card.ec-beat{border-left:3px solid var(--emerald)}
.ec-card.ec-miss{border-left:3px solid var(--rose)}
.ec-sym{font-family:'Fira Code',monospace;font-size:.56rem;color:var(--cyan);font-weight:600;margin-bottom:.2rem}
.ec-est-row{display:flex;justify-content:space-between;font-family:'Fira Code',monospace;font-size:.42rem;color:var(--silver);margin-top:.1rem}
.ec-label{color:var(--smoke)}
.ec-val{color:var(--frost)}
.ec-green{color:var(--emerald)}
.ec-red{color:var(--rose)}

/* ========== ANALYST CONSENSUS ========== */
.an-section{margin-bottom:1.2rem}
.an-section-title{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--frost);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem;border-bottom:1px solid var(--border);padding-bottom:.25rem}
.an-pt-bar{margin-bottom:.5rem}
.an-pt-range{display:flex;align-items:center;gap:.6rem}
.an-pt-low{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--rose);min-width:50px}
.an-pt-high{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--emerald);min-width:50px;text-align:right}
.an-pt-track{flex:1;height:6px;background:var(--surface);border-radius:3px;position:relative}
.an-pt-current{position:absolute;top:-12px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center}
.an-pt-current span{font-family:'Fira Code',monospace;font-size:.32rem;color:var(--smoke);white-space:nowrap;margin-top:10px}
.an-pt-dot{width:10px;height:10px;border-radius:50%}
.an-pt-dot.current{background:var(--white);border:2px solid var(--frost)}
.an-pt-dot.median{background:var(--amber)}
.an-pt-dot.consensus{background:var(--cyan)}
.an-pt-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;margin-top:.5rem}
.an-pt-cell{background:var(--deep);border:1px solid var(--border);border-radius:4px;padding:.4rem;text-align:center}
.an-pt-label{font-family:'Fira Code',monospace;font-size:.38rem;color:var(--smoke);text-transform:uppercase;letter-spacing:.05em}
.an-pt-val{font-family:'Fira Code',monospace;font-size:.56rem;color:var(--frost);font-weight:500}
.an-green{color:var(--emerald)}
.an-red{color:var(--rose)}
.an-cov-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}
.an-cov-cell{background:var(--deep);border:1px solid var(--border);border-radius:4px;padding:.5rem;text-align:center}
.an-cov-num{font-family:'Fira Code',monospace;font-size:.82rem;color:var(--cyan);font-weight:600}
.an-cov-label{font-family:'Fira Code',monospace;font-size:.38rem;color:var(--smoke);text-transform:uppercase;margin-top:.15rem}
.an-cov-avg{font-family:'Fira Code',monospace;font-size:.42rem;color:var(--silver);margin-top:.2rem}
.an-table{width:100%;border-collapse:collapse;font-family:'Fira Code',monospace;font-size:.46rem}
.an-table th{padding:.35rem .4rem;text-align:left;color:var(--smoke);font-size:.38rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);font-weight:500}
.an-table td{padding:.3rem .4rem;color:var(--silver);border-bottom:1px solid var(--border)}
.an-table .an-period{color:var(--cyan);font-weight:500}
.an-table .an-bold{color:var(--frost);font-weight:600}

/* ========== INSIDER / EXECUTIVES ========== */
.ins-section{margin-bottom:1.2rem}
.ins-section-title{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--frost);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem;border-bottom:1px solid var(--border);padding-bottom:.25rem}
.ins-exec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.4rem}
.ins-exec-card{background:var(--deep);border:1px solid var(--border);border-radius:4px;padding:.5rem .6rem}
.ins-exec-name{font-family:'Manrope',sans-serif;font-size:.56rem;color:var(--white);font-weight:600}
.ins-exec-title{font-family:'Fira Code',monospace;font-size:.42rem;color:var(--cyan);margin-top:.1rem;line-height:1.3}
.ins-exec-meta{display:flex;gap:.6rem;margin-top:.25rem;font-family:'Fira Code',monospace;font-size:.38rem;color:var(--smoke)}
.ins-exec-pay{color:var(--emerald)}
.ins-overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}
.ins-ov-cell{background:var(--deep);border:1px solid var(--border);border-radius:4px;padding:.4rem .5rem}
.ins-ov-label{font-family:'Fira Code',monospace;font-size:.36rem;color:var(--smoke);text-transform:uppercase;display:block}
.ins-ov-val{font-family:'Fira Code',monospace;font-size:.48rem;color:var(--frost);display:block;margin-top:.1rem}
.ins-peers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.4rem}
.ins-peer-card{background:var(--deep);border:1px solid var(--border);border-radius:4px;padding:.4rem .5rem;cursor:pointer;transition:border-color .15s}
.ins-peer-card:hover{border-color:var(--cyan-mid)}
.ins-peer-sym{font-family:'Fira Code',monospace;font-size:.56rem;color:var(--cyan);font-weight:600}
.ins-peer-name{font-family:'Fira Code',monospace;font-size:.38rem;color:var(--silver);margin-top:.1rem}
.ins-peer-meta{display:flex;gap:.5rem;margin-top:.2rem;font-family:'Fira Code',monospace;font-size:.42rem;color:var(--frost)}
.ins-note{display:flex;gap:.5rem;align-items:flex-start;padding:.6rem;background:var(--deep);border:1px solid var(--border);border-radius:4px;font-family:'Fira Code',monospace;font-size:.42rem;color:var(--smoke);margin-top:1rem}
.ins-note-icon{color:var(--amber);font-size:.6rem}

/* ========== INSTITUTIONAL ========== */
.inst-section{margin-bottom:1.2rem}
.inst-section-title{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--frost);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem;border-bottom:1px solid var(--border);padding-bottom:.25rem}
.inst-own-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}
.inst-own-cell{background:var(--deep);border:1px solid var(--border);border-radius:4px;padding:.5rem;text-align:center}
.inst-own-val{font-family:'Fira Code',monospace;font-size:.72rem;color:var(--cyan);font-weight:600}
.inst-own-label{font-family:'Fira Code',monospace;font-size:.38rem;color:var(--smoke);text-transform:uppercase;margin-top:.15rem}
.inst-cons-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.inst-cons-card{background:var(--deep);border:1px solid var(--border);border-radius:6px;padding:.8rem;text-align:center}
.inst-cons-bull{border-color:var(--emerald)}
.inst-cons-bear{border-color:var(--rose)}
.inst-cons-base{border-color:var(--cyan)}
.inst-cons-icon{font-size:1rem;margin-bottom:.2rem}
.inst-cons-bull .inst-cons-icon{color:var(--emerald)}
.inst-cons-bear .inst-cons-icon{color:var(--rose)}
.inst-cons-base .inst-cons-icon{color:var(--cyan)}
.inst-cons-num{font-family:'Fira Code',monospace;font-size:.82rem;color:var(--white);font-weight:700}
.inst-cons-label{font-family:'Fira Code',monospace;font-size:.38rem;color:var(--smoke);text-transform:uppercase;margin-top:.2rem}
.inst-table{width:100%;border-collapse:collapse;font-family:'Fira Code',monospace;font-size:.46rem}
.inst-table th{padding:.35rem .4rem;text-align:left;color:var(--smoke);font-size:.38rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border)}
.inst-table td{padding:.3rem .4rem;color:var(--silver);border-bottom:1px solid var(--border)}
.inst-row{cursor:pointer;transition:background .12s}
.inst-row:hover{background:var(--layer)}
.inst-sym{color:var(--cyan);font-weight:500}
.inst-rev-bars{display:flex;flex-direction:column;gap:.4rem}
.inst-rev-row{display:flex;align-items:center;gap:.5rem}
.inst-rev-yr{font-family:'Fira Code',monospace;font-size:.46rem;color:var(--smoke);min-width:35px}
.inst-rev-track{flex:1;height:14px;background:var(--surface);border-radius:3px;overflow:hidden}
.inst-rev-fill{height:100%;background:linear-gradient(90deg,var(--cyan-mid),var(--cyan));border-radius:3px;transition:width .5s ease}
.inst-rev-val{font-family:'Fira Code',monospace;font-size:.46rem;color:var(--frost);min-width:50px;text-align:right}

/* ========== ECONOMIC CALENDAR ========== */
.econ-tab{font-family:'Fira Code',monospace;font-size:.46rem;padding:.25rem .6rem;background:var(--surface);border:1px solid var(--border);color:var(--smoke);cursor:pointer;border-radius:3px;transition:all .15s}
.econ-tab.active{background:var(--cyan-mid);border-color:var(--cyan-hi);color:var(--white)}
.econ-day{margin-bottom:1rem}
.econ-today{border-left:3px solid var(--cyan);padding-left:.5rem}
.econ-past{opacity:.6}
.econ-day-header{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.4rem}
.econ-day-label{font-family:'Fira Code',monospace;font-size:.52rem;color:var(--frost);font-weight:600}
.econ-day-dow{font-family:'Fira Code',monospace;font-size:.42rem;color:var(--smoke)}
.econ-events{display:flex;flex-direction:column;gap:.25rem}
.econ-event{display:flex;gap:.5rem;align-items:flex-start;padding:.35rem .5rem;background:var(--deep);border:1px solid var(--border);border-radius:4px}
.econ-impact{font-size:.6rem;min-width:14px}
.econ-high{color:var(--rose)}
.econ-med{color:var(--amber)}
.econ-low{color:var(--smoke)}
.econ-event-info{flex:1}
.econ-event-top{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.econ-country{font-family:'Fira Code',monospace;font-size:.42rem;color:var(--cyan);font-weight:600;background:var(--surface);padding:0 .25rem;border-radius:2px}
.econ-event-name{font-family:'Fira Code',monospace;font-size:.46rem;color:var(--frost);flex:1}
.econ-time{font-family:'Fira Code',monospace;font-size:.38rem;color:var(--smoke)}
.econ-event-vals{display:flex;gap:.6rem;margin-top:.2rem}
.econ-val-group{display:flex;gap:.2rem;align-items:center}
.econ-val-label{font-family:'Fira Code',monospace;font-size:.36rem;color:var(--smoke);text-transform:uppercase}
.econ-val{font-family:'Fira Code',monospace;font-size:.44rem;color:var(--silver)}
.econ-beat{color:var(--emerald);font-weight:600}
.econ-miss{color:var(--rose);font-weight:600}

/* ============ BACKTEST RESULTS ============ */
.bt-header-info{display:flex;align-items:center;gap:12px;font-family:'Fira Code',monospace;font-size:.65rem}
.bt-sym{color:var(--cyan);font-weight:700;font-size:.8rem}
.bt-strat{color:var(--amber);text-transform:capitalize}
.bt-range{color:var(--silver)}
.bt-pts{color:var(--smoke);font-size:.55rem}
.bt-tab{background:transparent;border:1px solid var(--border);color:var(--smoke);padding:4px 14px;border-radius:3px;cursor:pointer;font-family:'Fira Code',monospace;font-size:.6rem;transition:all .2s}
.bt-tab.active,.bt-tab:hover{background:var(--cyan-mid);color:var(--white);border-color:var(--cyan)}
.bt-metrics-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;padding:16px}
.bt-metric-card{background:var(--layer);border:1px solid var(--edge);border-radius:4px;padding:10px 8px;text-align:center}
.bt-metric-label{font-family:'Fira Code',monospace;font-size:.5rem;color:var(--smoke);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}
.bt-metric-value{font-family:'Fira Code',monospace;font-size:.9rem;font-weight:600;color:var(--frost)}
.bt-metric-value.positive{color:var(--emerald)}
.bt-metric-value.negative{color:var(--rose)}
.bt-chart-container{height:280px;padding:0 16px;margin-bottom:8px}
.bt-dd-chart{height:120px}
.bt-trade-count{font-family:'Fira Code',monospace;font-size:.6rem;color:var(--smoke);padding:12px 16px 4px}
.bt-trade-table{width:100%;border-collapse:collapse;font-family:'Fira Code',monospace;font-size:.6rem}
.bt-trade-table th{background:var(--surface);color:var(--smoke);padding:7px 8px;text-align:left;position:sticky;top:0;font-size:.5rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border)}
.bt-trade-table td{padding:5px 8px;border-bottom:1px solid var(--edge);color:var(--frost)}
.bt-trade-row.win td:nth-child(7),.bt-trade-row.win td:nth-child(8){color:var(--emerald)}
.bt-trade-row.loss td:nth-child(7),.bt-trade-row.loss td:nth-child(8){color:var(--rose)}
.bt-trade-row.win{background:rgba(0,232,156,0.03)}
.bt-trade-row.loss{background:rgba(255,77,106,0.03)}
.bt-returns-grid{display:grid;grid-template-columns:60px repeat(12,1fr) 70px;gap:2px;padding:16px;font-family:'Fira Code',monospace;font-size:.55rem}
.bt-returns-cell{padding:5px 3px;text-align:center;border-radius:2px;color:var(--frost)}
.bt-rh-label{padding:5px 6px;color:var(--silver);font-weight:600;display:flex;align-items:center}
.bt-rh-header{padding:4px;text-align:center;color:var(--smoke);font-size:.5rem;text-transform:uppercase}
.bt-rh-empty{color:var(--ash)}
.bt-rh-year{font-weight:700}
.bt-empty{color:var(--smoke);text-align:center;padding:40px;font-family:'Fira Code',monospace}
.coming-soon-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;gap:.75rem;min-height:200px}
.coming-soon-icon{font-size:3rem;line-height:1;opacity:.85}
.coming-soon-title{font-family:'Libre Caslon Display',serif;color:var(--cyan);font-size:1.2rem;letter-spacing:.5px}
.coming-soon-text{font-family:'Manrope',sans-serif;color:var(--amber);font-size:1.5rem;font-weight:700;letter-spacing:1px}
.coming-soon-sub{font-family:'Fira Code',monospace;color:var(--silver);font-size:.65rem;max-width:300px;text-align:center;line-height:1.5}
.chat-bt-view-btn{background:var(--cyan-dim);border:1px solid var(--cyan-mid);color:var(--cyan);padding:6px 14px;border-radius:4px;cursor:pointer;margin-top:8px;font-family:'Fira Code',monospace;font-size:.65rem;display:inline-block;transition:all .2s}
.chat-bt-view-btn:hover{background:var(--cyan-mid);color:var(--white)}

/* ============ COMPARE TOOL ============ */
.cmp-input-row{display:flex;gap:6px;align-items:center}
.cmp-ticker-input{background:var(--surface);border:1px solid var(--border);color:var(--cyan);padding:4px 10px;border-radius:3px;font-family:'Fira Code',monospace;font-size:.65rem;width:100px;text-transform:uppercase}
.cmp-add-btn{background:var(--cyan-dim);border:1px solid var(--cyan-mid);color:var(--cyan);padding:4px 10px;border-radius:3px;cursor:pointer;font-family:'Fira Code',monospace;font-size:.6rem}
.cmp-tickers{display:flex;gap:8px;padding:12px 16px;flex-wrap:wrap}
.cmp-chip{background:var(--layer);border:1px solid var(--edge);color:var(--frost);padding:4px 10px;border-radius:12px;font-family:'Fira Code',monospace;font-size:.6rem;display:flex;align-items:center;gap:6px}
.cmp-chip-x{color:var(--rose);cursor:pointer;font-size:.8rem}
.cmp-chart-container{height:350px;padding:0 16px;margin:8px 0}
.cmp-table{width:100%;border-collapse:collapse;font-family:'Fira Code',monospace;font-size:.6rem;margin:8px 16px}
.cmp-table th{background:var(--surface);color:var(--smoke);padding:7px 10px;text-align:left;border-bottom:1px solid var(--border);position:sticky;top:0}
.cmp-table td{padding:6px 10px;border-bottom:1px solid var(--edge);color:var(--frost)}

/* ============ TRADE JOURNAL ============ */
.jrn-tab{background:transparent;border:1px solid var(--border);color:var(--smoke);padding:4px 14px;border-radius:3px;cursor:pointer;font-family:'Fira Code',monospace;font-size:.6rem;transition:all .2s}
.jrn-tab.active,.jrn-tab:hover{background:var(--cyan-mid);color:var(--white);border-color:var(--cyan)}
.jrn-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;max-width:700px}
.jrn-form label{font-family:'Fira Code',monospace;font-size:.55rem;color:var(--smoke);text-transform:uppercase;display:block;margin-bottom:3px}
.jrn-form input,.jrn-form select,.jrn-form textarea{background:var(--surface);border:1px solid var(--border);color:var(--frost);padding:6px 10px;border-radius:3px;font-family:'Fira Code',monospace;font-size:.65rem;width:100%}
.jrn-form textarea{grid-column:1/-1;height:60px;resize:vertical}
.jrn-submit{grid-column:1/-1;background:var(--cyan-dim);border:1px solid var(--cyan-mid);color:var(--cyan);padding:8px;border-radius:3px;cursor:pointer;font-family:'Fira Code',monospace;font-size:.65rem}
.jrn-table{width:100%;border-collapse:collapse;font-family:'Fira Code',monospace;font-size:.6rem}
.jrn-table th{background:var(--surface);color:var(--smoke);padding:7px 8px;text-align:left;position:sticky;top:0;font-size:.5rem;text-transform:uppercase;border-bottom:1px solid var(--border)}
.jrn-table td{padding:5px 8px;border-bottom:1px solid var(--edge);color:var(--frost)}
.jrn-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px}

/* ============ DIVIDEND CALENDAR ============ */
.div-card{background:var(--layer);border:1px solid var(--edge);border-radius:4px;padding:8px 10px;display:inline-flex;flex-direction:column;gap:2px;min-width:160px}
.div-sym{color:var(--cyan);font-weight:700;font-size:.7rem}
.div-amount{color:var(--emerald);font-family:'Fira Code',monospace;font-size:.65rem}
.div-yield{color:var(--amber);font-size:.55rem}
.div-date{color:var(--smoke);font-size:.5rem}

/* ============ IPO CALENDAR ============ */
.ipo-card{background:var(--layer);border:1px solid var(--edge);border-radius:4px;padding:10px;min-width:200px}
.ipo-name{color:var(--frost);font-weight:600;font-size:.7rem}
.ipo-sym{color:var(--cyan);font-family:'Fira Code',monospace;font-size:.65rem}
.ipo-price{color:var(--emerald);font-family:'Fira Code',monospace;font-size:.65rem}
.ipo-exchange{color:var(--smoke);font-size:.5rem;text-transform:uppercase}

/* ============ FOREX & COMMODITIES ============ */
.fx-tab{background:transparent;border:1px solid var(--border);color:var(--smoke);padding:4px 14px;border-radius:3px;cursor:pointer;font-family:'Fira Code',monospace;font-size:.6rem;transition:all .2s}
.fx-tab.active,.fx-tab:hover{background:var(--cyan-mid);color:var(--white);border-color:var(--cyan)}
.fx-table{width:100%;border-collapse:collapse;font-family:'Fira Code',monospace;font-size:.65rem}
.fx-table th{background:var(--surface);color:var(--smoke);padding:8px 10px;text-align:left;position:sticky;top:0;border-bottom:1px solid var(--border)}
.fx-table td{padding:6px 10px;border-bottom:1px solid var(--edge);color:var(--frost)}
.fx-pair{color:var(--cyan);font-weight:600}

/* ============ CRYPTO MARKETS ============ */
.cry-tab{background:transparent;border:1px solid var(--border);color:var(--smoke);padding:4px 14px;border-radius:3px;cursor:pointer;font-family:'Fira Code',monospace;font-size:.6rem;transition:all .2s}
.cry-tab.active,.cry-tab:hover{background:var(--amber-dim);color:var(--amber);border-color:var(--amber)}
.cry-global-bar{display:flex;gap:20px;padding:12px 16px;background:var(--layer);border-bottom:1px solid var(--border);font-family:'Fira Code',monospace;font-size:.6rem;color:var(--silver);flex-wrap:wrap}
.cry-global-item{display:flex;gap:6px;align-items:center}
.cry-global-label{color:var(--smoke)}
.cry-global-value{color:var(--frost);font-weight:600}
.cry-table{width:100%;border-collapse:collapse;font-family:'Fira Code',monospace;font-size:.6rem}
.cry-table th{background:var(--surface);color:var(--smoke);padding:8px 10px;text-align:left;position:sticky;top:0;border-bottom:1px solid var(--border);font-size:.5rem;text-transform:uppercase}
.cry-table td{padding:6px 10px;border-bottom:1px solid var(--edge);color:var(--frost)}
.cry-coin-name{display:flex;align-items:center;gap:8px}
.cry-coin-logo{width:20px;height:20px;border-radius:50%}
.cry-coin-img{width:24px;height:24px;border-radius:50%;vertical-align:middle}
.cry-coin-cell{display:flex;align-items:center;gap:8px}
.cry-coin-sym{color:var(--smoke);font-size:.5rem;text-transform:uppercase}
.cry-price{font-weight:600;color:var(--frost)}
.cry-row:hover{background:var(--layer)}
.cry-sparkline{width:100px;height:30px}
.cry-up{color:var(--emerald)}
.cry-down{color:var(--rose)}
.cry-stat{display:flex;flex-direction:column;gap:2px}
.cry-stat-label{color:var(--smoke);font-size:.5rem}
.cry-stat-value{color:var(--frost);font-weight:600}
.cry-heatmap{display:flex;flex-wrap:wrap;gap:4px;padding:16px;justify-content:center;align-items:center}
.cry-hm-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:4px;transition:transform .15s}
.cry-hm-cell:hover{transform:scale(1.08);z-index:1}
.cry-hm-sym{color:#fff;font-weight:700;font-size:.65rem;font-family:'Fira Code',monospace}
.cry-hm-pct{color:rgba(255,255,255,.8);font-size:.5rem;font-family:'Fira Code',monospace}
.cry-trending-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;padding:16px}
.cry-trending-card{background:var(--layer);border:1px solid var(--border);border-radius:6px;padding:14px;display:flex;flex-direction:column;gap:6px;transition:border-color .2s}
.cry-trending-card:hover{border-color:var(--amber)}
.cry-trending-rank{color:var(--amber);font-weight:700;font-size:.7rem;font-family:'Fira Code',monospace}
.cry-trending-info{display:flex;align-items:center;gap:8px}
.cry-trending-score{color:var(--smoke);font-size:.5rem}
.cry-trending-price{color:var(--frost);font-weight:600;font-size:.7rem}
.cry-trending-mcap{color:var(--smoke);font-size:.5rem}
.cry-detail-header{display:flex;align-items:center;gap:16px;padding:12px 0}
.cry-back-btn{background:transparent;border:1px solid var(--border);color:var(--smoke);padding:4px 12px;border-radius:3px;cursor:pointer;font-family:'Fira Code',monospace;font-size:.6rem;transition:all .2s}
.cry-back-btn:hover{color:var(--frost);border-color:var(--frost)}
.cry-detail-title{display:flex;align-items:center;gap:10px}
.cry-detail-img{width:32px;height:32px;border-radius:50%}
.cry-detail-name{font-family:'Libre Caslon Display',serif;font-size:1rem;color:var(--frost)}
.cry-detail-rank{background:var(--surface);color:var(--smoke);padding:2px 8px;border-radius:3px;font-size:.5rem}
.cry-detail-price{padding:8px 0}
.cry-detail-current{font-family:'Fira Code',monospace;font-size:1.4rem;font-weight:700;color:var(--frost);margin-right:12px}
.cry-detail-chart{width:100%;height:300px;margin:12px 0}
.cry-detail-timeframes{display:flex;gap:8px;padding:8px 0}
.cry-tf-btn{background:transparent;border:1px solid var(--border);color:var(--smoke);padding:4px 12px;border-radius:3px;cursor:pointer;font-family:'Fira Code',monospace;font-size:.55rem;transition:all .2s}
.cry-tf-btn.active,.cry-tf-btn:hover{background:var(--cyan-dim);color:var(--cyan);border-color:var(--cyan)}
.cry-metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;padding:16px 0}
.cry-metric{background:var(--layer);border:1px solid var(--border);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:4px}
.cry-metric-label{color:var(--smoke);font-size:.5rem;text-transform:uppercase}
.cry-metric-value{color:var(--frost);font-weight:600;font-family:'Fira Code',monospace;font-size:.7rem}
.cry-description{padding:16px 0;color:var(--silver);font-size:.65rem;line-height:1.6}
.cry-description h4{color:var(--frost);margin-bottom:8px;font-family:'Libre Caslon Display',serif}

/* ========== ADMIN BUTTON ========== */
.hero-nav-admin{background:var(--amber)!important;color:var(--void)!important;border-color:var(--amber)!important;font-weight:700}
.hero-nav-admin:hover{background:#ffc966!important}
.land-admin-btn{background:var(--amber)!important;color:var(--void)!important;border-color:var(--amber)!important;font-weight:700}
.land-admin-btn:hover{background:#ffc966!important}

/* ========== ADMIN DASHBOARD ========== */
.admin-dash{position:fixed;inset:0;z-index:9999;background:var(--void);display:flex;flex-direction:column;overflow:hidden}
.admin-topbar{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1.2rem;border-bottom:1px solid var(--border);background:var(--deep);min-height:42px}
.admin-topbar-left{display:flex;align-items:center;gap:1rem}
.admin-title{font-family:'Fira Code',monospace;font-size:.55rem;color:var(--amber);text-transform:uppercase;letter-spacing:.12em}
.admin-topbar-right{display:flex;align-items:center;gap:.5rem}
.admin-back-btn{background:none;border:1px solid var(--smoke);color:var(--frost);font-family:'Fira Code',monospace;font-size:.48rem;padding:.25rem .7rem;border-radius:4px;cursor:pointer;transition:all .15s}
.admin-back-btn:hover{border-color:var(--cyan);color:var(--cyan)}
.admin-content{display:flex;flex:1;overflow:hidden}
.admin-sidebar{width:180px;border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;padding:.5rem 0}
.admin-nav{background:none;border:none;color:var(--silver);font-family:'Fira Code',monospace;font-size:.5rem;padding:.55rem 1rem;text-align:left;cursor:pointer;border-left:2px solid transparent;transition:all .15s}
.admin-nav:hover{color:var(--frost);background:var(--cyan-dim)}
.admin-nav.active{color:var(--amber);border-left-color:var(--amber);background:var(--cyan-dim)}
.admin-main{flex:1;overflow-y:auto;padding:1.5rem 2rem}
.admin-section{display:none}
.admin-section.active{display:block}
.admin-section-title{font-family:'Libre Caslon Display',serif;font-size:.9rem;color:var(--white);margin-bottom:1.2rem}
.admin-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}
.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1rem;text-align:center}
.admin-card-label{font-family:'Fira Code',monospace;font-size:.42rem;color:var(--smoke);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem}
.admin-card-val{font-family:'Fira Code',monospace;font-size:1.4rem;color:var(--cyan);font-weight:700}
.admin-card-free{color:var(--smoke)}
.admin-card-pro{color:var(--cyan)}
.admin-card-premium{color:var(--amber)}
.admin-card-expired{color:var(--rose)}
.admin-card-banned{color:var(--rose)}
.admin-card-inactive{color:var(--smoke)}
.admin-section-subtitle{font-family:'Libre Caslon Display',serif;font-size:.65rem;color:var(--silver);margin-bottom:.8rem;margin-top:.2rem}
.admin-toolbar{margin-bottom:1rem}
.admin-search{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:.4rem .7rem;color:var(--frost);font-family:'Fira Code',monospace;font-size:.5rem;outline:none}
.admin-search:focus{border-color:var(--cyan)}
.admin-table-wrap{overflow-x:auto}
.admin-table{width:100%;border-collapse:collapse;font-family:'Fira Code',monospace;font-size:.46rem}
.admin-table th{color:var(--smoke);text-transform:uppercase;letter-spacing:.06em;font-size:.4rem;padding:.5rem .6rem;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}
.admin-table td{color:var(--frost);padding:.45rem .6rem;border-bottom:1px solid var(--edge);white-space:nowrap}
.admin-table tr:hover td{background:var(--cyan-dim)}
.admin-tier-badge{display:inline-block;padding:.1rem .4rem;border-radius:3px;font-size:.38rem;font-weight:700;text-transform:uppercase}
.admin-tier-free{background:var(--ash);color:var(--frost)}
.admin-tier-pro{background:var(--cyan-mid);color:var(--cyan)}
.admin-tier-premium{background:var(--amber-dim);color:var(--amber)}
.admin-dev-badge{background:var(--rose-dim);color:var(--rose);display:inline-block;padding:.1rem .3rem;border-radius:3px;font-size:.36rem;font-weight:700;margin-left:.3rem}
.admin-placeholder{color:var(--smoke);font-family:'Fira Code',monospace;font-size:.55rem;padding:2rem;text-align:center;border:1px dashed var(--border);border-radius:6px}
.admin-comm-bar{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.admin-comm-room-wrap{display:flex;align-items:center;gap:.4rem}
.admin-comm-room-wrap .comm-room-combo{position:relative;top:-1px}
.admin-comm-room-label{font-family:'Fira Code',monospace;font-size:.48rem;color:#fff;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}
.admin-comm-info{font-family:'Fira Code',monospace;font-size:.42rem;color:#fff}
.admin-comm-search-wrap{display:flex;align-items:center;gap:.3rem;margin-left:auto}
.admin-comm-search-input{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:.22rem .5rem;color:var(--frost);font-family:'Fira Code',monospace;font-size:.44rem;outline:none;width:200px}
.admin-comm-search-input:focus{border-color:var(--cyan)}
.admin-comm-search-btn{background:none;border:1px solid var(--cyan);color:var(--cyan);font-family:'Fira Code',monospace;font-size:.42rem;padding:.22rem .5rem;border-radius:4px;cursor:pointer;white-space:nowrap;transition:all .15s}
.admin-comm-search-btn:hover{background:var(--cyan);color:var(--deep)}
.admin-comm-messages{border:1px solid var(--border);border-radius:6px;background:var(--surface);max-height:55vh;overflow-y:auto;padding:.4rem .6rem}
.admin-comm-pager{padding:.5rem 0;text-align:center}
.admin-btn-sm{background:none;border:1px solid var(--border);color:var(--frost);font-family:'Fira Code',monospace;font-size:.42rem;padding:.25rem .6rem;border-radius:4px;cursor:pointer;transition:all .15s}
.admin-btn-sm:hover{border-color:var(--cyan);color:var(--cyan)}
.admin-chat-msg{display:flex;align-items:flex-start;gap:.5rem;padding:.35rem .3rem;border-bottom:1px solid var(--edge);transition:background .15s}
.admin-chat-msg:hover{background:var(--cyan-dim)}
.admin-chat-msg-body{flex:1;min-width:0}
.admin-chat-msg-header{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.admin-chat-msg-user{font-family:'Fira Code',monospace;font-size:.48rem;color:var(--cyan);font-weight:600}
.admin-chat-msg-room{font-family:'Fira Code',monospace;font-size:.36rem;color:var(--frost);background:rgba(255,255,255,.1);padding:.04rem .2rem;border-radius:2px}
.admin-chat-msg-time{font-family:'Fira Code',monospace;font-size:.36rem;color:var(--smoke);margin-left:auto}
.admin-chat-msg-id{font-family:'Fira Code',monospace;font-size:.34rem;color:var(--ash)}
.admin-chat-msg-text{font-size:.5rem;color:var(--frost);margin-top:.15rem;word-break:break-word;line-height:1.45}
.admin-msg-menu-wrap{position:relative;flex-shrink:0;align-self:center}
.admin-msg-menu-btn{background:none;border:1px solid var(--border);color:var(--smoke);font-size:.55rem;width:1.2rem;height:1.2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;cursor:pointer;transition:all .15s;line-height:1;padding:0}
.admin-msg-menu-btn:hover{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-dim)}
.admin-msg-submenu{display:none;position:fixed;background:var(--deep);border:1px solid var(--border);border-radius:5px;overflow:hidden;z-index:9999;min-width:5.5rem;box-shadow:0 4px 16px rgba(0,0,0,.5)}
.admin-msg-submenu.open{display:flex;flex-direction:column}
.admin-msg-action{background:none;border:none;color:var(--frost);font-family:'Fira Code',monospace;font-size:.42rem;padding:.35rem .6rem;cursor:pointer;text-align:left;transition:all .12s;white-space:nowrap}
.admin-msg-action:hover{background:var(--cyan-dim);color:var(--cyan)}
.admin-msg-action[data-action="delete"]{color:var(--rose)}
.admin-msg-action[data-action="delete"]:hover{background:rgba(255,75,75,.15);color:var(--rose)}
.admin-msg-action[data-action="penalty"]{color:var(--amber)}
.admin-msg-action[data-action="penalty"]:hover{background:rgba(255,180,50,.1);color:var(--amber)}
.admin-edit-form{display:flex;align-items:center;gap:.3rem;margin-top:.2rem}
.admin-edit-input{flex:1;background:var(--deep);border:1px solid var(--cyan);border-radius:4px;padding:.22rem .5rem;color:var(--frost);font-family:'Fira Code',monospace;font-size:.44rem;outline:none}
.admin-edit-input:focus{border-color:var(--cyan);box-shadow:0 0 6px rgba(0,255,255,.15)}
.admin-edit-submit{background:var(--cyan);color:var(--deep);border:none;font-family:'Fira Code',monospace;font-size:.4rem;padding:.22rem .5rem;border-radius:4px;cursor:pointer;font-weight:600;white-space:nowrap;transition:opacity .15s}
.admin-edit-submit:hover{opacity:.85}
.admin-edit-cancel{background:none;border:1px solid var(--border);color:var(--smoke);font-family:'Fira Code',monospace;font-size:.4rem;padding:.22rem .5rem;border-radius:4px;cursor:pointer;white-space:nowrap;transition:all .15s}
.admin-edit-cancel:hover{border-color:var(--smoke);color:var(--frost)}
.admin-user-menu-cell{position:relative;text-align:center;width:2rem}
.admin-user-menu-wrap{position:relative;display:inline-block}
.admin-user-menu-btn{background:none;border:1px solid var(--border);color:var(--smoke);font-size:.55rem;width:1.2rem;height:1.2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;cursor:pointer;transition:all .15s;line-height:1;padding:0}
.admin-user-menu-btn:hover{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-dim)}
.admin-user-submenu{display:none;position:fixed;background:var(--deep);border:1px solid var(--border);border-radius:5px;overflow:hidden;z-index:9999;min-width:7rem;box-shadow:0 4px 16px rgba(0,0,0,.5)}
.admin-user-submenu.open{display:flex;flex-direction:column}
.admin-user-action{background:none;border:none;color:var(--frost);font-family:'Fira Code',monospace;font-size:.42rem;padding:.35rem .6rem;cursor:pointer;text-align:left;transition:all .12s;white-space:nowrap}
.admin-user-action:hover{background:var(--cyan-dim);color:var(--cyan)}
.admin-user-action[data-action="ban-user"]{color:var(--amber)}
.admin-user-action[data-action="ban-user"]:hover{background:rgba(255,180,50,.1);color:var(--amber)}
.admin-user-action[data-action="delete-user"]{color:var(--rose)}
.admin-user-action[data-action="delete-user"]:hover{background:rgba(255,75,75,.15);color:var(--rose)}
.admin-penalty-edit{display:flex;align-items:center;gap:.25rem}
.admin-penalty-input{width:2rem;background:var(--deep);border:1px solid var(--cyan);border-radius:3px;padding:.15rem .25rem;color:var(--frost);font-family:'Fira Code',monospace;font-size:.42rem;text-align:center;outline:none;-moz-appearance:textfield}
.admin-penalty-input::-webkit-inner-spin-button,.admin-penalty-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.admin-penalty-input:focus{border-color:var(--cyan);box-shadow:0 0 4px rgba(0,255,255,.2)}
.admin-penalty-update{background:var(--cyan);color:var(--deep);border:none;font-family:'Fira Code',monospace;font-size:.36rem;padding:.15rem .35rem;border-radius:3px;cursor:pointer;font-weight:600;white-space:nowrap;transition:opacity .15s}
.admin-penalty-update:hover{opacity:.85}
.admin-penalty-cancel{background:none;border:1px solid var(--border);color:var(--smoke);font-family:'Fira Code',monospace;font-size:.36rem;padding:.15rem .35rem;border-radius:3px;cursor:pointer;white-space:nowrap;transition:all .15s}
.admin-penalty-cancel:hover{border-color:var(--smoke);color:var(--frost)}
.admin-inline-edit{display:flex;align-items:center;gap:.25rem}
.admin-inline-input{width:8rem;background:var(--deep);border:1px solid var(--cyan);border-radius:3px;padding:.15rem .35rem;color:var(--frost);font-family:'Fira Code',monospace;font-size:.42rem;outline:none}
.admin-inline-input:focus{border-color:var(--cyan);box-shadow:0 0 4px rgba(0,255,255,.2)}
.admin-inline-update{background:var(--cyan);color:var(--deep);border:none;font-family:'Fira Code',monospace;font-size:.36rem;padding:.15rem .35rem;border-radius:3px;cursor:pointer;font-weight:600;white-space:nowrap;transition:opacity .15s}
.admin-inline-update:hover{opacity:.85}
.admin-inline-cancel{background:none;border:1px solid var(--border);color:var(--smoke);font-family:'Fira Code',monospace;font-size:.36rem;padding:.15rem .35rem;border-radius:3px;cursor:pointer;white-space:nowrap;transition:all .15s}
.admin-inline-cancel:hover{border-color:var(--smoke);color:var(--frost)}
.admin-tier-change{display:flex;align-items:center;gap:.25rem;flex-wrap:nowrap}
.admin-tier-select{background:var(--deep);border:1px solid var(--cyan);border-radius:3px;padding:.15rem .3rem;color:var(--frost);font-family:'Fira Code',monospace;font-size:.4rem;outline:none;cursor:pointer}
.admin-tier-select:focus{border-color:var(--cyan);box-shadow:0 0 4px rgba(0,255,255,.2)}
.admin-tier-hours-wrap{display:flex;align-items:center;gap:.2rem}
.admin-tier-hours-label{font-family:'Fira Code',monospace;font-size:.34rem;color:var(--smoke);white-space:nowrap}
.admin-tier-hours-input{width:2.5rem;background:var(--deep);border:1px solid var(--cyan);border-radius:3px;padding:.15rem .25rem;color:var(--frost);font-family:'Fira Code',monospace;font-size:.4rem;text-align:center;outline:none;-moz-appearance:textfield}
.admin-tier-hours-input::-webkit-inner-spin-button,.admin-tier-hours-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.admin-tier-hours-input:focus{border-color:var(--cyan);box-shadow:0 0 4px rgba(0,255,255,.2)}
.admin-keys-bar{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;flex-wrap:wrap}
.admin-keys-gen{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.admin-keys-label{font-family:'Fira Code',monospace;font-size:.42rem;color:var(--smoke);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.admin-keys-select{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:.3rem .5rem;color:var(--frost);font-family:'Fira Code',monospace;font-size:.44rem;outline:none;cursor:pointer}
.admin-keys-select:focus{border-color:var(--cyan)}
.admin-keys-duration,.admin-keys-qty{width:3rem;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:.3rem .4rem;color:var(--frost);font-family:'Fira Code',monospace;font-size:.44rem;outline:none;text-align:center;-moz-appearance:textfield}
.admin-keys-duration::-webkit-inner-spin-button,.admin-keys-duration::-webkit-outer-spin-button,.admin-keys-qty::-webkit-inner-spin-button,.admin-keys-qty::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.admin-keys-duration:focus,.admin-keys-qty:focus{border-color:var(--cyan)}
.admin-keys-gen-btn{background:var(--cyan);color:var(--deep);border:none;font-family:'Fira Code',monospace;font-size:.44rem;padding:.3rem .8rem;border-radius:4px;cursor:pointer;font-weight:600;white-space:nowrap;transition:opacity .15s}
.admin-keys-gen-btn:hover{opacity:.85}
.admin-keys-gen-btn:disabled{opacity:.5;cursor:not-allowed}
.admin-keys-user-combo{position:relative;display:inline-flex;vertical-align:middle}
.admin-keys-user-input{width:8rem;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:.3rem .5rem;color:var(--frost);font-family:'Fira Code',monospace;font-size:.44rem;outline:none}
.admin-keys-user-input:focus{border-color:var(--cyan)}
.admin-keys-user-list{display:none;position:absolute;top:100%;left:0;right:0;background:var(--deep);border:1px solid var(--border);border-radius:0 0 4px 4px;max-height:10rem;overflow-y:auto;z-index:999;box-shadow:0 4px 12px rgba(0,0,0,.5)}
.admin-keys-user-list.open{display:block}
.admin-keys-user-option{padding:.3rem .5rem;cursor:pointer;font-family:'Fira Code',monospace;font-size:.42rem;color:var(--frost);transition:background .1s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-keys-user-option:hover{background:var(--cyan-dim);color:var(--cyan)}
.admin-keys-expire-combo{position:relative;display:inline-flex;align-items:center;vertical-align:middle}
.admin-keys-expire-input{width:8rem;background:var(--surface);border:1px solid var(--border);border-radius:4px 0 0 4px;padding:.3rem .5rem;color:var(--frost);font-family:'Fira Code',monospace;font-size:.44rem;outline:none;cursor:default}
.admin-keys-expire-input:focus{border-color:var(--cyan)}
.admin-keys-cal-btn{background:var(--surface);border:1px solid var(--border);border-left:none;border-radius:0 4px 4px 0;padding:.3rem .4rem;color:var(--frost);font-size:.5rem;cursor:pointer;transition:all .15s;line-height:1;display:flex;align-items:center}
.admin-keys-cal-btn:hover{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-dim)}
.admin-keys-expire-picker{position:absolute;opacity:0;width:0;height:0;overflow:hidden;pointer-events:none}
.admin-keys-expire-clear{background:none;border:1px solid var(--border);color:var(--smoke);font-size:.4rem;width:1rem;height:1rem;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;cursor:pointer;transition:all .15s;padding:0;line-height:1;vertical-align:middle}
.admin-keys-expire-clear:hover{border-color:var(--rose);color:var(--rose)}
.admin-key-actions{display:flex;gap:.3rem;align-items:center}
.admin-key-copy-btn,.admin-key-del-btn{background:none;border:1px solid var(--border);color:var(--smoke);font-size:.48rem;width:1.2rem;height:1.2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;cursor:pointer;transition:all .15s;padding:0}
.admin-key-copy-btn:hover{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-dim)}
.admin-key-del-btn:hover{border-color:var(--rose);background:rgba(255,75,75,.15)}
.prof-redeem-key{background:none;border:1px solid var(--amber);color:var(--amber);font-family:'Fira Code',monospace;font-size:.5rem;padding:.45rem 1rem;border-radius:6px;cursor:pointer;transition:all .15s;width:100%;text-align:center;margin-top:.3rem}
.prof-redeem-key:hover{background:var(--amber);color:var(--deep)}
.prof-trial-info{font-family:'Fira Code',monospace;font-size:.48rem;padding:.4rem .6rem;border:1px solid var(--amber-dim);border-radius:5px;background:rgba(255,180,50,.08);text-align:center;margin-bottom:.4rem}
.chat-report-btn{background:none;border:none;color:var(--smoke);font-size:.52rem;cursor:pointer;opacity:.35;transition:all .15s;padding:0 .15rem;margin-left:auto;line-height:1}
.chat-report-btn:hover{opacity:1;color:var(--rose)}
.chat-report-btn.reported{opacity:.7;color:var(--amber);cursor:default}
.admin-chat-msg-reported{display:inline-block;background:rgba(255,75,75,.15);color:var(--rose);font-family:'Fira Code',monospace;font-size:.36rem;padding:.1rem .35rem;border-radius:3px;border:1px solid rgba(255,75,75,.3);margin-left:.4rem;letter-spacing:.04em;font-weight:600;vertical-align:middle}
.admin-chat-msg-flagged{border-left:3px solid var(--rose);background:rgba(255,75,75,.04)}
.admin-comm-reported-btn{background:none;border:1px solid var(--border);color:var(--smoke);font-family:'Fira Code',monospace;font-size:.42rem;padding:.25rem .6rem;border-radius:4px;cursor:pointer;transition:all .15s;white-space:nowrap;letter-spacing:.03em}
.admin-comm-reported-btn:hover{border-color:var(--rose);color:var(--rose);background:rgba(255,75,75,.08)}
.admin-comm-reported-btn.active{border-color:var(--rose);color:var(--deep);background:var(--rose);font-weight:600}
.admin-ipban-bar{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem;flex-wrap:wrap}
.admin-ipban-combo{position:relative;flex:1;min-width:220px;max-width:400px}
.admin-ipban-input{width:100%;background:var(--glass);border:1px solid var(--border);color:var(--frost);font-family:'Fira Code',monospace;font-size:.44rem;padding:.4rem .6rem;border-radius:4px;outline:none;box-sizing:border-box}
.admin-ipban-input:focus{border-color:var(--cyan)}
.admin-ipban-list{position:absolute;top:100%;left:0;right:0;background:var(--deep);border:1px solid var(--border);border-radius:0 0 4px 4px;max-height:200px;overflow-y:auto;display:none;z-index:100}
.admin-ipban-list.open{display:block}
.admin-ipban-option{padding:.35rem .6rem;cursor:pointer;font-family:'Fira Code',monospace;font-size:.42rem;transition:background .1s;border-bottom:1px solid rgba(255,255,255,.04)}
.admin-ipban-option:hover{background:rgba(0,255,255,.06)}
.admin-ipban-btn{background:var(--rose);color:var(--deep);border:none;font-family:'Fira Code',monospace;font-size:.44rem;font-weight:700;padding:.4rem 1rem;border-radius:4px;cursor:pointer;text-transform:uppercase;letter-spacing:.06em;transition:opacity .15s}
.admin-ipban-btn:hover{opacity:.85}
.admin-sys-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:1px solid var(--border)}
.admin-sys-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--smoke);font-family:'Fira Code',monospace;font-size:.46rem;padding:.45rem 1rem;cursor:pointer;transition:all .15s;letter-spacing:.04em}
.admin-sys-tab:hover{color:var(--frost)}
.admin-sys-tab.active{color:var(--cyan);border-bottom-color:var(--cyan);font-weight:600}
.admin-sys-content{display:none}
.admin-sys-content.active{display:block}
.admin-aff-bar{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem;flex-wrap:wrap}
.admin-aff-input{flex:1;min-width:220px;max-width:400px;background:var(--glass);border:1px solid var(--border);color:var(--frost);font-family:'Fira Code',monospace;font-size:.44rem;padding:.4rem .6rem;border-radius:4px;outline:none;box-sizing:border-box}
.admin-aff-input:focus{border-color:var(--cyan)}
.admin-aff-gen-btn{background:var(--cyan);color:var(--deep);border:none;font-family:'Fira Code',monospace;font-size:.44rem;font-weight:700;padding:.4rem 1rem;border-radius:4px;cursor:pointer;text-transform:uppercase;letter-spacing:.06em;transition:opacity .15s;white-space:nowrap}
.admin-aff-gen-btn:hover{opacity:.85}
.admin-map-wrap{background:var(--glass);border:1px solid var(--border);border-radius:8px;padding:1rem 1rem .6rem;margin-bottom:1rem;position:relative;overflow:hidden}
.admin-map-title{font-family:'Fira Code',monospace;font-size:.5rem;font-weight:700;color:var(--frost);margin-bottom:.6rem;letter-spacing:.06em}
.admin-world-map{width:100%;height:auto;max-height:420px;display:block;overflow:hidden}
.admin-world-map path{transition:opacity .15s,filter .15s;cursor:pointer}
.admin-world-map path:hover{opacity:.85;filter:brightness(1.3);stroke:var(--cyan);stroke-width:1.2}
.admin-map-legend{display:flex;align-items:center;gap:.5rem;justify-content:center;margin-top:.5rem}
.admin-map-legend-label{font-family:'Fira Code',monospace;font-size:.35rem;color:var(--smoke);letter-spacing:.04em}
.admin-map-legend-bar{width:160px;height:8px;border-radius:4px;background:linear-gradient(90deg,rgba(10,20,30,.8) 0%,rgb(0,140,180) 40%,rgb(0,220,255) 100%);border:1px solid var(--border)}
.admin-map-tooltip{position:absolute;background:var(--deep);border:1px solid var(--cyan);border-radius:4px;padding:.25rem .5rem;font-family:'Fira Code',monospace;font-size:.38rem;color:var(--frost);pointer-events:none;z-index:10;white-space:nowrap;display:none}
.admin-map-top5{position:absolute;bottom:2.2rem;left:.8rem;background:rgba(3,3,8,0.75);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:6px;padding:.45rem .6rem;z-index:5;min-width:120px}
.admin-map-top5-title{font-family:'Fira Code',monospace;font-size:.34rem;font-weight:700;color:var(--cyan);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.3rem}
.admin-map-top5-row{display:flex;align-items:center;gap:.3rem;padding:.12rem 0;font-family:'Fira Code',monospace;font-size:.36rem;color:var(--frost)}
.admin-map-top5-rank{color:var(--smoke);font-size:.32rem;min-width:12px;text-align:right}
.admin-map-top5-swatch{width:8px;height:8px;border-radius:2px;flex-shrink:0}
.admin-map-top5-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px}
.admin-map-top5-count{color:var(--cyan);font-weight:700;font-size:.36rem;margin-left:auto;padding-left:.4rem}
.admin-chart-wrap{background:var(--glass);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem;position:relative}
.admin-chart-title{font-family:'Fira Code',monospace;font-size:.5rem;font-weight:700;color:var(--frost);margin-bottom:.4rem;letter-spacing:.06em}
.admin-chart-legend{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:.5rem}
.admin-chart-legend-item{display:flex;align-items:center;gap:.3rem;font-family:'Fira Code',monospace;font-size:.36rem;color:var(--smoke);cursor:pointer;transition:opacity .15s}
.admin-chart-legend-item:hover{opacity:.8}
.admin-chart-legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
#adminChart{width:100%;height:auto;max-height:320px;display:block}
.admin-analytics-summary{margin-bottom:1rem}
.admin-analytics-summary .admin-cards{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;margin-bottom:.8rem}
.admin-analytics-summary .admin-card{padding:.5rem .4rem;border-radius:5px}
.admin-analytics-summary .admin-card-label{font-size:.32rem;margin-bottom:.15rem;letter-spacing:.06em}
.admin-analytics-summary .admin-card-val{font-size:.7rem}
.admin-analytics-bar{display:flex;align-items:center;gap:.8rem;margin-bottom:.8rem;flex-wrap:wrap}
.admin-analytics-filter{background:var(--glass);border:1px solid var(--border);color:var(--frost);font-family:'Fira Code',monospace;font-size:.42rem;padding:.3rem .5rem;border-radius:4px;outline:none;cursor:pointer}
.admin-analytics-filter:focus{border-color:var(--cyan)}
.admin-analytics-search{flex:1;min-width:180px;max-width:340px;background:var(--surface);border:1px solid var(--border);color:var(--frost);font-family:'Fira Code',monospace;font-size:.4rem;padding:.3rem .6rem;border-radius:4px;outline:none}
.admin-analytics-search::placeholder{color:var(--ash)}
.admin-analytics-search:focus{border-color:var(--cyan)}
.admin-analytics-dates{display:flex;align-items:center;gap:.3rem;flex-shrink:0}
.admin-analytics-date-label{font-family:'Fira Code',monospace;font-size:.34rem;color:var(--smoke);letter-spacing:.03em}
.admin-analytics-date{background:var(--surface);border:1px solid var(--border);color:var(--frost);font-family:'Fira Code',monospace;font-size:.38rem;padding:.25rem .4rem;border-radius:4px;outline:none;cursor:pointer}
.admin-analytics-date:focus{border-color:var(--cyan)}
.admin-analytics-date::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}
.admin-analytics-date-clear{background:none;border:1px solid var(--border);color:var(--smoke);font-size:.5rem;width:22px;height:22px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:color .15s,border-color .15s}
.admin-analytics-date-clear:hover{color:var(--rose);border-color:var(--rose)}
.admin-analytics-table th,.admin-analytics-table td{padding:.35rem .5rem;font-size:.4rem}
.admin-analytics-top{display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem;flex-wrap:wrap}
.admin-analytics-top-label{font-family:'Fira Code',monospace;font-size:.4rem;color:var(--smoke);min-width:90px;letter-spacing:.03em}
.admin-analytics-tag{font-family:'Fira Code',monospace;font-size:.38rem;color:var(--frost);padding:.15rem .45rem;border:1px solid var(--border);border-radius:3px;display:inline-flex;gap:.3rem;align-items:center}
.admin-analytics-tag b{color:var(--cyan);font-weight:700}
.redeem-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:9999;backdrop-filter:blur(4px)}
.redeem-modal{background:var(--deep);border:1px solid var(--border);border-radius:10px;padding:1.5rem;width:90%;max-width:400px;font-family:'Fira Code',monospace}
.redeem-modal-title{font-size:.65rem;font-weight:700;color:var(--text);margin-bottom:.5rem;letter-spacing:.04em}
.redeem-modal-desc{font-size:.42rem;color:var(--smoke);margin-bottom:.8rem;line-height:1.5}
.redeem-modal-input{width:100%;padding:.5rem .6rem;background:var(--panel);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:'Fira Code',monospace;font-size:.55rem;letter-spacing:.12em;text-align:center;outline:none;transition:border-color .15s;box-sizing:border-box}
.redeem-modal-input:focus{border-color:var(--amber)}
.redeem-modal-error{color:var(--rose);font-size:.38rem;min-height:1rem;margin-top:.35rem;text-align:center}
.redeem-modal-actions{display:flex;gap:.6rem;margin-top:.6rem}
.redeem-modal-cancel{flex:1;padding:.45rem;background:none;border:1px solid var(--border);color:var(--smoke);border-radius:6px;cursor:pointer;font-family:'Fira Code',monospace;font-size:.42rem;transition:all .15s}
.redeem-modal-cancel:hover{border-color:var(--smoke);color:var(--text)}
.redeem-modal-submit{flex:1;padding:.45rem;background:var(--amber);border:none;color:var(--deep);border-radius:6px;cursor:pointer;font-family:'Fira Code',monospace;font-size:.42rem;font-weight:700;transition:all .15s}
.redeem-modal-submit:hover{filter:brightness(1.1)}
.redeem-modal-submit:disabled{opacity:.5;cursor:not-allowed}
