:root{--bg:#0a0a0f;--surface:#111118;--card:#16161f;--border:#2a2a3a;--accent:#00ff88;--accent3:#6b8cff;--text:#e8e8f0;--muted:#8b8ba0;--green:#00ff88;--red:#ff3d6b;--font-ui:'Syne',sans-serif;--hue-shift:0deg;--brightness:1;}
*{margin:0;padding:0;box-sizing:border-box;}
body{background:var(--bg);color:var(--text);font-family:var(--font-ui);min-height:100vh;overflow-x:hidden;filter:hue-rotate(var(--hue-shift)) brightness(var(--brightness));}
/* Prevent hue-rotate from affecting emoji characters */
.emoji-raw{filter:hue-rotate(calc(-1 * var(--hue-shift))) brightness(calc(1 / var(--brightness)));display:inline-block;}
body::before{content:'';position:fixed;inset:0;background:radial-gradient(ellipse 600px 400px at 80% 10%,rgba(0,255,136,.04) 0%,transparent 70%),radial-gradient(ellipse 400px 300px at 10% 80%,rgba(107,140,255,.04) 0%,transparent 70%);pointer-events:none;z-index:0;}
.container{max-width:1200px;margin:0 auto;padding:0 24px;position:relative;z-index:1;}
@media(max-width:480px){.container{padding:0 16px;}}
/* LOADING OVERLAY */
#loading-overlay{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.65);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;flex-direction:column;}
.loading-content{display:flex;flex-direction:column;align-items:center;gap:14px;width:min(300px,80vw);background:rgba(17,17,24,.92);border:1px solid var(--border);border-radius:16px;padding:28px 32px;box-shadow:0 24px 60px rgba(0,0,0,.6);}
.loading-bar-wrap{width:100%;height:5px;background:var(--border);border-radius:3px;overflow:hidden;}
.loading-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent3));width:0%;transition:width .35s ease;}
.loading-status{font-family:'Space Mono',monospace;font-size:.72rem;color:var(--muted);text-align:center;}
/* AUTH */
#auth-screen{position:fixed;inset:0;z-index:100;overflow:hidden;}
.auth-bg{position:absolute;inset:0;background:var(--bg);}
.auth-canvas{position:absolute;inset:0;opacity:.15;}
.auth-layout{position:relative;z-index:2;display:grid;grid-template-columns:1fr 460px;min-height:100vh;}
@media(max-width:860px){
  .auth-layout{grid-template-columns:1fr;min-height:100svh;}
  .auth-left{display:none;}
  .auth-right{border-left:none;padding:40px 28px;min-height:100svh;justify-content:flex-start;padding-top:60px;}
  #auth-screen{position:relative;min-height:100svh;overflow-y:auto;}
}
.auth-left{display:flex;flex-direction:column;justify-content:center;padding:60px;gap:22px;}
.auth-brand{font-family:'Space Mono',monospace;font-size:1rem;font-weight:700;color:var(--accent);}
.auth-brand span{color:var(--text);}
.auth-hero{font-size:3.4rem;font-weight:800;line-height:1.05;letter-spacing:-1px;}
.auth-hero span{color:var(--accent);}
.auth-sub{color:var(--muted);font-size:.95rem;line-height:1.7;max-width:420px;}
.auth-stats{display:flex;gap:32px;}
.auth-stat-val{font-family:'Space Mono',monospace;font-size:1.4rem;font-weight:700;color:var(--accent);}
.auth-stat-label{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-top:2px;}
.ticker-float{display:flex;flex-direction:column;gap:10px;}
.ticker-pill{display:inline-flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 16px;width:fit-content;animation:floatIn .5s ease both;}
.ticker-pill:nth-child(2){animation-delay:.08s;}.ticker-pill:nth-child(3){animation-delay:.16s;}.ticker-pill:nth-child(4){animation-delay:.24s;}
@keyframes floatIn{from{opacity:0;transform:translateX(-14px);}to{opacity:1;transform:none;}}
.pill-ticker{font-family:'Space Mono',monospace;font-size:.85rem;font-weight:700;color:var(--accent);min-width:46px;}
.pill-name{font-size:.78rem;color:var(--muted);}
.pill-price{font-family:'Space Mono',monospace;font-size:.82rem;margin-left:auto;padding-left:12px;}
.pill-change{font-family:'Space Mono',monospace;font-size:.72rem;}
.pill-change.up{color:var(--green);}.pill-change.down{color:var(--red);}
.pill-loading{color:var(--muted);animation:pillPulse 1.2s ease-in-out infinite;}
@keyframes pillPulse{0%,100%{opacity:.3;}50%{opacity:.8;}}
.auth-tip-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px 22px;max-width:480px;}
.auth-tip-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.auth-tip-label{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--accent);text-transform:uppercase;letter-spacing:1px;}
.auth-tip-title{font-family:'Space Mono',monospace;font-size:.85rem;font-weight:700;color:var(--text);margin-bottom:8px;}
.auth-tip-body{font-family:'Space Mono',monospace;font-size:.8rem;color:var(--muted);line-height:1.8;}
.tip-skip-btn{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:5px;padding:3px 10px;font-family:'Space Mono',monospace;font-size:.72rem;cursor:pointer;transition:border-color .2s,color .2s;}
.tip-skip-btn:hover{border-color:var(--accent);color:var(--accent);}
.tip-progress-wrap{height:3px;background:var(--border);border-radius:2px;overflow:hidden;margin-top:14px;}
.tip-progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent3));width:0%;transition:width .1s linear;}
.tip-counter{font-family:'Space Mono',monospace;font-size:.62rem;color:var(--muted);margin-top:6px;text-align:right;}
.auth-right{background:rgba(14,14,22,.97);backdrop-filter:blur(20px);border-left:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;padding:44px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.auth-logo{font-family:'Space Mono',monospace;font-size:1.1rem;font-weight:700;color:var(--accent);margin-bottom:28px;}
.auth-logo span{color:var(--text);}
.auth-tabs{display:flex;gap:4px;background:var(--surface);border-radius:8px;padding:4px;margin-bottom:20px;}
.auth-tab{flex:1;padding:9px;border:none;background:transparent;color:var(--muted);font-family:'Space Mono',monospace;font-size:.7rem;cursor:pointer;border-radius:6px;transition:background .2s,color .2s;text-transform:uppercase;}
.auth-tab.active{background:var(--card);color:var(--text);}
.auth-form{display:flex;flex-direction:column;gap:12px;}
.auth-field{display:flex;flex-direction:column;gap:6px;}
.auth-field label{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;}
.auth-field input{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px;color:var(--text);font-family:'Space Mono',monospace;font-size:.9rem;outline:none;transition:border-color .2s;}
.auth-field input:focus{border-color:var(--accent);}
.auth-field input::placeholder{color:var(--muted);}
.btn-auth{background:var(--accent);color:#000;border:none;border-radius:8px;padding:13px;font-family:'Space Mono',monospace;font-size:.85rem;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:1px;transition:opacity .2s;margin-top:2px;}
.btn-auth:hover{opacity:.85;}.btn-auth:disabled{opacity:.5;cursor:not-allowed;}
.btn-forgot{background:transparent;border:none;color:var(--muted);font-family:'Space Mono',monospace;font-size:.7rem;cursor:pointer;text-align:left;padding:4px 0;transition:color .2s;text-decoration:underline;}
.btn-forgot:hover{color:var(--text);}
#auth-msg{font-family:'Space Mono',monospace;font-size:.72rem;border-radius:7px;padding:0;line-height:1.5;display:none;margin-bottom:8px;}
#auth-msg.show-error{display:block;padding:10px 13px;background:rgba(255,61,107,.1);border:1px solid rgba(255,61,107,.3);color:var(--red);}
#auth-msg.show-success{display:block;padding:10px 13px;background:rgba(0,255,136,.1);border:1px solid rgba(0,255,136,.3);color:var(--green);}
.auth-divider{display:flex;align-items:center;gap:12px;margin:14px 0;color:var(--muted);font-family:'Space Mono',monospace;font-size:.65rem;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.btn-google{background:#fff;color:#111;border:none;border-radius:8px;padding:12px 16px;font-family:'Syne',sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .2s;display:flex;align-items:center;justify-content:center;width:100%;gap:8px;}
.btn-google:hover{opacity:.9;}
.btn-guest{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:12px;font-family:'Space Mono',monospace;font-size:.78rem;cursor:pointer;transition:border-color .2s,color .2s;text-transform:uppercase;width:100%;}
.btn-guest:hover{border-color:var(--text);color:var(--text);}
.auth-footer{font-family:'Space Mono',monospace;font-size:.67rem;color:var(--muted);line-height:1.7;margin-top:14px;padding-top:14px;border-top:1px solid var(--border);text-align:center;}
.auth-footer strong{color:var(--accent3);}
.auth-status{font-family:'Space Mono',monospace;font-size:.68rem;min-height:16px;display:flex;align-items:center;gap:7px;color:var(--muted);padding:2px 0;}
.auth-status .spinner{width:10px;height:10px;border:1.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0;}
@keyframes spin{to{transform:rotate(360deg);}}
.kofi-link-wrap{margin-top:12px;text-align:center;}
.kofi-link{display:inline-flex;align-items:center;font-family:'Space Mono',monospace;font-size:.68rem;color:var(--muted);text-decoration:none;padding:6px 12px;border:1px solid var(--border);border-radius:6px;transition:border-color .2s,color .2s;}
.kofi-link:hover{border-color:#FF5E5B;color:#FF5E5B;}
/* HEADER */
header{border-bottom:1px solid var(--border);padding:14px 0;position:sticky;top:0;background:rgba(10,10,15,.96);backdrop-filter:blur(12px);z-index:100;}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;}
.logo{font-family:'Space Mono',monospace;font-size:1.05rem;font-weight:700;color:var(--accent);cursor:pointer;}
.logo span{color:var(--text);}
.nav-links{display:flex;gap:2px;flex-wrap:wrap;}
.nav-btn{background:transparent;border:none;color:var(--muted);font-family:'Space Mono',monospace;font-size:.65rem;padding:6px 10px;border-radius:6px;cursor:pointer;transition:color .2s,background .2s;text-transform:uppercase;}
@media(max-width:700px){
  .nav-links{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;}
  .nav-links::-webkit-scrollbar{display:none;}
  .header-inner{flex-wrap:nowrap;gap:6px;}
  .header-right{gap:5px;flex-shrink:0;}
  .balance-pill{display:none;}
  .kofi-header-link{display:none;}
  .btn-signout{font-size:.6rem;padding:3px 7px;}
}
.nav-btn:hover,.nav-btn.active{color:var(--text);background:var(--card);}
.header-right{display:flex;align-items:center;gap:8px;}
.balance-pill{font-family:'Space Mono',monospace;font-size:.72rem;color:var(--muted);}
.balance-pill strong{color:var(--accent);}
.profile-btn{background:var(--card);border:1px solid var(--border);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-family:'Space Mono',monospace;font-size:.75rem;font-weight:700;color:var(--accent);transition:border-color .2s;}
.profile-btn:hover{border-color:var(--accent);}
.user-pill{font-family:'Space Mono',monospace;font-size:.68rem;color:var(--muted);background:var(--card);border:1px solid var(--border);border-radius:6px;padding:4px 10px;}
.btn-signout{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Space Mono',monospace;font-size:.65rem;padding:4px 10px;border-radius:6px;cursor:pointer;transition:border-color .2s,color .2s;text-transform:uppercase;}
.btn-signout:hover{border-color:var(--red);color:var(--red);}
.kofi-header-link{font-size:.85rem;text-decoration:none;padding:4px 6px;border-radius:6px;transition:opacity .2s;}
.kofi-header-link:hover{opacity:.7;}
/* PAGES */
.page{display:none;padding:28px 0 80px;}
.page.active{display:block;}
.page-header{margin-bottom:24px;}
.page-header h2{font-size:1.5rem;font-weight:800;margin-bottom:4px;}
.page-header p{color:var(--muted);font-size:.85rem;}
/* STATS */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:22px;}
@media(max-width:480px){.stats-grid{grid-template-columns:1fr 1fr;}}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 16px;transition:border-color .2s;}
.stat-card:hover{border-color:var(--accent3);}
.stat-label{font-family:'Space Mono',monospace;font-size:.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:5px;}
.stat-value{font-family:'Space Mono',monospace;font-size:1rem;font-weight:700;}
.stat-value.positive{color:var(--green);}.stat-value.negative{color:var(--red);}
/* TRADE LAYOUT */
.trade-layout{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start;}
@media(max-width:900px){.trade-layout{grid-template-columns:1fr;}}
@media(max-width:480px){.rh-price{font-size:1.6rem;}.auth-hero{font-size:2.8rem;}}
.panel{background:var(--card);border:1px solid var(--border);border-radius:16px;overflow:hidden;margin-bottom:20px;}
.panel-header{padding:15px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.panel-title{font-size:.7rem;font-family:'Space Mono',monospace;text-transform:uppercase;letter-spacing:2px;color:var(--muted);}
.panel-meta{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--muted);}
.panel-body{padding:20px;}
.live-indicator{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--muted);display:flex;align-items:center;gap:5px;}
.live-dot{width:6px;height:6px;background:var(--green);border-radius:50%;animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.3;}}
/* TRADE WIDGET */
.rh-search{display:flex;gap:8px;margin-bottom:14px;}
.rh-search-input{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:11px 14px;color:var(--text);font-family:'Space Mono',monospace;font-size:.85rem;outline:none;transition:border-color .2s;text-transform:uppercase;}
.rh-search-input:focus{border-color:var(--accent);}
.rh-search-input::placeholder{text-transform:none;color:var(--muted);}
.rh-search-btn{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:11px 16px;color:var(--text);font-family:'Space Mono',monospace;font-size:.75rem;cursor:pointer;transition:border-color .2s,color .2s;white-space:nowrap;}
.rh-search-btn:hover{border-color:var(--accent);color:var(--accent);}
.rh-quote{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px;margin-bottom:14px;animation:fadeIn .3s ease;}
.stock-fact-card{display:flex;align-items:flex-start;gap:10px;background:rgba(107,140,255,.08);border:1px solid rgba(107,140,255,.2);border-radius:8px;padding:10px 14px;margin:10px 0;font-family:'Space Mono',monospace;font-size:.72rem;color:var(--muted);line-height:1.7;}
.stock-fact-icon{font-size:.9rem;flex-shrink:0;margin-top:1px;}
.rh-quote-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px;}
.rh-ticker{font-family:'Space Mono',monospace;font-size:1.1rem;font-weight:700;color:var(--accent);}
.rh-name{font-size:.78rem;color:var(--muted);margin-top:2px;}
.rh-price{font-family:'Space Mono',monospace;font-size:2rem;font-weight:700;margin:6px 0 2px;}
.rh-change{font-family:'Space Mono',monospace;font-size:.78rem;}
.rh-change.up{color:var(--green);}.rh-change.down{color:var(--red);}.rh-change.neutral{color:var(--muted);}
.chart-wrap{height:200px;margin:6px 0;}
.rh-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding-top:12px;border-top:1px solid var(--border);}
.rh-meta-item{display:flex;flex-direction:column;gap:2px;}
.rh-meta-label{font-family:'Space Mono',monospace;font-size:.6rem;color:var(--muted);text-transform:uppercase;}
.rh-meta-item span:last-child{font-family:'Space Mono',monospace;font-size:.78rem;}
.market-badge{font-family:'Space Mono',monospace;font-size:.6rem;padding:2px 7px;border-radius:4px;}
.market-badge.open{background:rgba(0,255,136,.15);color:var(--green);}.market-badge.closed{background:rgba(107,140,255,.15);color:var(--accent3);}
.rh-order{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;animation:fadeIn .25s ease;}
.rh-order-tabs{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;}
.rh-order-tab{padding:11px;border:none;background:var(--card);color:var(--muted);font-family:'Space Mono',monospace;font-size:.7rem;font-weight:700;cursor:pointer;transition:background .2s,color .2s;text-transform:uppercase;border-bottom:2px solid transparent;}
.rh-order-tab.active.buy{color:var(--green);border-bottom-color:var(--green);background:rgba(0,255,136,.06);}
.rh-order-tab.active.sell{color:var(--red);border-bottom-color:var(--red);background:rgba(255,61,107,.06);}
.rh-order-tab.active.short{color:#ff9500;border-bottom-color:#ff9500;background:rgba(255,149,0,.06);}
.rh-order-tab.active.cover{color:var(--accent3);border-bottom-color:var(--accent3);background:rgba(107,140,255,.06);}
.order-type-row{display:flex;gap:0;background:var(--surface);border-bottom:1px solid var(--border);}
.order-type-btn{flex:1;padding:7px;border:none;background:transparent;color:var(--muted);font-family:'Space Mono',monospace;font-size:.62rem;cursor:pointer;text-transform:uppercase;letter-spacing:1px;transition:color .2s,background .2s;border-bottom:2px solid transparent;}
.order-type-btn.active{color:var(--accent3);border-bottom-color:var(--accent3);background:rgba(107,140,255,.06);}
.limit-price-row{display:flex;align-items:center;gap:10px;padding:8px 16px;background:rgba(107,140,255,.04);border-bottom:1px solid var(--border);}
.limit-price-label{font-family:'Space Mono',monospace;font-size:.62rem;color:var(--accent3);white-space:nowrap;min-width:80px;}
.pct-fill-row{display:flex;gap:6px;margin-bottom:8px;}
.pct-btn{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:5px;font-family:'Space Mono',monospace;font-size:.62rem;color:var(--muted);cursor:pointer;transition:border-color .2s,color .2s;}
.pct-btn:hover{border-color:var(--accent);color:var(--accent);}
.rh-order-body{padding:16px;}
.rh-order-label{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;}
.rh-amount-wrap{display:flex;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:0 14px;margin-bottom:8px;transition:border-color .2s;}
.rh-amount-wrap:focus-within{border-color:var(--accent);}
.rh-dollar{font-family:'Space Mono',monospace;font-size:1.1rem;color:var(--muted);}
.rh-amount-input{flex:1;background:transparent;border:none;padding:12px 8px;color:var(--text);font-family:'Space Mono',monospace;font-size:1.1rem;outline:none;}
.rh-amount-input::placeholder{color:var(--muted);}
.rh-cost-preview{font-family:'Space Mono',monospace;font-size:.7rem;color:var(--muted);min-height:18px;margin-bottom:8px;}
.short-warning{background:rgba(255,149,0,.08);border:1px solid rgba(255,149,0,.25);border-radius:7px;padding:10px 13px;font-family:'Space Mono',monospace;font-size:.68rem;color:#ff9500;line-height:1.6;margin-bottom:10px;}
.rh-submit-btn{width:100%;border:none;border-radius:8px;padding:13px;font-family:'Space Mono',monospace;font-size:.85rem;font-weight:700;cursor:pointer;transition:opacity .2s;text-transform:uppercase;letter-spacing:.5px;}
.rh-submit-btn.buy{background:var(--green);color:#000;}
.rh-submit-btn.sell{background:var(--red);color:#fff;}
.rh-submit-btn.short{background:#ff9500;color:#000;}
.rh-submit-btn.cover{background:var(--accent3);color:#fff;}
.rh-submit-btn:hover{opacity:.85;}
.rh-buying-power{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--muted);text-align:center;margin-top:8px;}
/* PORTFOLIO */
.tabs{display:flex;gap:4px;padding:4px;background:var(--surface);border-radius:8px;margin-bottom:14px;}
.tab{flex:1;padding:7px;border:none;background:transparent;color:var(--muted);font-family:'Space Mono',monospace;font-size:.65rem;cursor:pointer;border-radius:6px;transition:background .2s,color .2s;text-transform:uppercase;}
.tab.active{background:var(--card);color:var(--text);}
.tab-content{display:none;}.tab-content.active{display:block;}
.portfolio-list{display:flex;flex-direction:column;gap:8px;}
.holding-row{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:11px 13px;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;animation:fadeIn .3s ease;}
.holding-ticker{font-family:'Space Mono',monospace;font-size:.82rem;font-weight:700;color:var(--accent);min-width:50px;}
.holding-info{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--muted);line-height:1.6;}
.holding-pnl{font-family:'Space Mono',monospace;font-size:.72rem;font-weight:700;text-align:right;}
.holding-pnl.up{color:var(--green);}.holding-pnl.down{color:var(--red);}
.empty-state{text-align:center;padding:28px 16px;color:var(--muted);font-family:'Space Mono',monospace;font-size:.72rem;line-height:1.8;}
/* HISTORY */
.history-list{display:flex;flex-direction:column;gap:7px;max-height:260px;overflow-y:auto;}
.history-list::-webkit-scrollbar{width:3px;}
.history-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
.history-row{display:flex;justify-content:space-between;align-items:center;padding:8px 11px;background:var(--surface);border-radius:7px;font-family:'Space Mono',monospace;font-size:.66rem;gap:8px;animation:fadeIn .2s ease;}
.tag{padding:2px 7px;border-radius:4px;font-size:.6rem;font-weight:700;text-transform:uppercase;white-space:nowrap;}
.tag.buy{background:rgba(0,255,136,.15);color:var(--green);}
.tag.sell{background:rgba(255,61,107,.15);color:var(--red);}
.tag.short{background:rgba(255,149,0,.15);color:#ff9500;}
.tag.cover{background:rgba(107,140,255,.15);color:var(--accent3);}
/* ANALYTICS */
.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;}
@media(max-width:700px){.analytics-grid{grid-template-columns:1fr;}}
.summary-big{font-family:'Space Mono',monospace;font-size:2.2rem;font-weight:700;margin-bottom:4px;}
.summary-sub{font-family:'Space Mono',monospace;font-size:.85rem;color:var(--muted);margin-bottom:20px;}
.summary-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
.summary-stat-label{font-family:'Space Mono',monospace;font-size:.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;}
.summary-stat-val{font-family:'Space Mono',monospace;font-size:.9rem;font-weight:700;}
.alloc-chart-wrap{height:220px;display:flex;align-items:center;justify-content:center;}
/* MARKET */
.movers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:10px;}
.mover-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px;cursor:pointer;transition:border-color .2s,transform .15s;}
.mover-card:hover{border-color:var(--accent);transform:translateY(-2px);}
.mover-ticker{font-family:'Space Mono',monospace;font-size:.95rem;font-weight:700;color:var(--accent);}
.mover-name{font-size:.7rem;color:var(--muted);margin:2px 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mover-price{font-family:'Space Mono',monospace;font-size:1rem;font-weight:700;}
.mover-change{font-family:'Space Mono',monospace;font-size:.72rem;margin-top:3px;}
.mover-change.up{color:var(--green);}.mover-change.down{color:var(--red);}
.section-title{font-size:.68rem;font-family:'Space Mono',monospace;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin-bottom:12px;}
.section-gap{margin-bottom:28px;}
/* NEWS */
.news-search-row{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.news-note{font-family:'Space Mono',monospace;font-size:.7rem;color:var(--muted);margin-bottom:18px;padding:8px 12px;background:var(--card);border-radius:7px;border:1px solid var(--border);}
.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.news-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px;text-decoration:none;display:flex;flex-direction:column;gap:8px;transition:border-color .2s,transform .15s;animation:fadeIn .3s ease;}
.news-card:hover{border-color:var(--accent3);transform:translateY(-2px);}
.news-source{font-family:'Space Mono',monospace;font-size:.62rem;color:var(--accent);text-transform:uppercase;letter-spacing:1px;}
.news-headline{font-size:.88rem;font-weight:600;color:var(--text);line-height:1.4;}
.news-summary{font-size:.75rem;color:var(--muted);line-height:1.5;}
.news-time{font-family:'Space Mono',monospace;font-size:.62rem;color:var(--muted);margin-top:auto;}
/* DIRECTORY */
.dir-search{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:11px 14px;color:var(--text);font-family:'Space Mono',monospace;font-size:.88rem;outline:none;margin-bottom:16px;transition:border-color .2s;}
.dir-search:focus{border-color:var(--accent);}
.dir-search::placeholder{color:var(--muted);}
.dir-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:11px;}
.dir-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:15px;cursor:pointer;transition:border-color .2s;}
.dir-card:hover{border-color:var(--accent3);}
.dir-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;}
.dir-ticker{font-family:'Space Mono',monospace;font-size:.9rem;font-weight:700;color:var(--accent);}
.dir-sector{font-family:'Space Mono',monospace;font-size:.6rem;color:var(--muted);background:var(--surface);padding:2px 7px;border-radius:4px;}
.dir-name{font-size:.82rem;font-weight:600;margin-bottom:4px;}
.dir-desc{font-size:.73rem;color:var(--muted);line-height:1.5;}
/* GLOSSARY */
.glossary-grid{display:flex;flex-direction:column;gap:28px;}
.gloss-section{}
.gloss-section-header{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border);}
.gloss-section-title{font-family:'Space Mono',monospace;font-size:.88rem;font-weight:700;color:var(--text);margin-bottom:4px;}
.gloss-section-desc{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--muted);}
.gloss-section-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px;}
.gloss-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;cursor:pointer;transition:border-color .2s;}
.gloss-card:hover{border-color:var(--accent3);}
.gloss-card.expanded{border-color:var(--accent3);background:var(--surface);}
.gloss-term{font-family:'Space Mono',monospace;font-size:.88rem;font-weight:700;color:var(--accent);margin-bottom:5px;display:flex;justify-content:space-between;align-items:center;}
.gloss-expand-icon{font-size:.75rem;color:var(--muted);transition:transform .2s;}
.gloss-card.expanded .gloss-expand-icon{transform:rotate(180deg);}
.gloss-def{font-size:.8rem;color:var(--muted);line-height:1.6;}
.gloss-example{font-family:'Space Mono',monospace;font-size:.67rem;color:var(--accent3);margin-top:7px;padding-top:7px;border-top:1px solid var(--border);}
.gloss-extended{font-size:.78rem;color:var(--muted);line-height:1.7;margin-top:8px;padding-top:8px;border-top:1px solid var(--border);display:none;}
.gloss-card.expanded .gloss-extended{display:block;}
/* TUTORIAL */
.tut-step{display:flex;gap:18px;padding:22px 0;border-bottom:1px solid var(--border);}
.tut-step:last-child{border-bottom:none;}
.tut-num{font-family:'Space Mono',monospace;font-size:1.8rem;font-weight:700;color:var(--border);min-width:42px;line-height:1;}
.tut-content h3{font-size:.95rem;font-weight:700;margin-bottom:5px;}
.tut-content p{font-size:.8rem;color:var(--muted);line-height:1.7;}
.tut-tip{display:inline-block;margin-top:9px;background:rgba(107,140,255,.1);border:1px solid rgba(107,140,255,.25);border-radius:6px;padding:5px 11px;font-family:'Space Mono',monospace;font-size:.68rem;color:var(--accent3);}
/* PROFILE */
.profile-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media(max-width:700px){.profile-layout{grid-template-columns:1fr;}}
@media(max-width:480px){.theme-grid{grid-template-columns:1fr 1fr;}.summary-stats{grid-template-columns:1fr 1fr;}}
.profile-avatar-row{display:flex;align-items:center;gap:16px;margin-bottom:20px;}
.profile-avatar-big{width:56px;height:56px;background:var(--surface);border:2px solid var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Space Mono',monospace;font-size:1.2rem;font-weight:700;color:var(--accent);flex-shrink:0;}
.profile-name{font-size:1.1rem;font-weight:700;}
.profile-email{font-family:'Space Mono',monospace;font-size:.72rem;color:var(--muted);margin-top:2px;}
.profile-balance-display{text-align:center;padding:16px;background:var(--surface);border-radius:10px;border:1px solid var(--border);}
.profile-balance-val{font-family:'Space Mono',monospace;font-size:1.8rem;font-weight:700;color:var(--accent);}
.profile-balance-label{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-top:4px;}
.profile-trader-badge{font-family:'Space Mono',monospace;font-size:.64rem;color:var(--accent3);margin-top:4px;text-transform:uppercase;letter-spacing:.06em;}
/* Avatar picker */
.avatar-picker{display:flex;flex-wrap:wrap;gap:6px;}
.avatar-opt{font-size:1.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;border:2px solid var(--border);cursor:pointer;background:var(--surface);transition:border-color .15s,transform .15s;}
.avatar-opt:hover{transform:scale(1.15);}
.avatar-opt.selected{border-color:var(--accent3);}
/* Trading style */
.style-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.style-btn{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-family:'Space Mono',monospace;font-size:.72rem;font-weight:700;color:var(--muted);cursor:pointer;transition:border-color .2s,color .2s,background .2s;text-align:left;display:flex;flex-direction:column;gap:4px;}
.style-btn span{font-size:.6rem;font-weight:400;color:var(--muted);line-height:1.3;}
.style-btn:hover{border-color:var(--accent3);color:var(--text);}
.style-btn.active{border-color:var(--accent3);background:rgba(107,140,255,.1);color:var(--text);}
/* Sector */
.sector-grid{display:flex;flex-wrap:wrap;gap:7px;}
.sector-btn{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:6px 14px;font-family:'Space Mono',monospace;font-size:.68rem;color:var(--muted);cursor:pointer;transition:border-color .2s,color .2s,background .2s;}
.sector-btn:hover{border-color:var(--accent3);color:var(--text);}
.sector-btn.active{border-color:var(--accent);background:rgba(0,255,136,.08);color:var(--accent);}
/* Prefs */
.pref-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);}
.pref-row:last-child{border-bottom:none;}
.pref-label{font-family:'Space Mono',monospace;font-size:.72rem;color:var(--muted);}
.pref-control{display:flex;gap:6px;align-items:center;}
.pref-btn{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:5px 12px;font-family:'Space Mono',monospace;font-size:.68rem;color:var(--muted);cursor:pointer;transition:border-color .15s,color .15s;}
.pref-btn.active{border-color:var(--accent3);color:var(--accent3);}
/* Toggle switch */
.toggle-switch{position:relative;display:inline-block;width:38px;height:20px;}
.toggle-switch input{opacity:0;width:0;height:0;}
.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--border);border-radius:20px;transition:.25s;}
.toggle-slider::before{position:absolute;content:'';height:14px;width:14px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.25s;}
.toggle-switch input:checked + .toggle-slider{background:var(--accent3);}
.toggle-switch input:checked + .toggle-slider::before{transform:translateX(18px);}
/* Theme */
.theme-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.theme-btn{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 8px;font-family:'Space Mono',monospace;font-size:.7rem;color:var(--muted);cursor:pointer;transition:border-color .2s,color .2s;display:flex;align-items:center;gap:7px;}
.theme-btn:hover,.theme-btn.active{border-color:var(--accent);color:var(--text);}
.theme-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.btn-danger{background:rgba(255,61,107,.1);border:1px solid rgba(255,61,107,.3);color:var(--red);border-radius:8px;padding:10px 16px;font-family:'Space Mono',monospace;font-size:.78rem;cursor:pointer;transition:background .2s;width:100%;text-transform:uppercase;}
.btn-danger:hover{background:rgba(255,61,107,.2);}
.btn-secondary{background:rgba(107,140,255,.1);border:1px solid rgba(107,140,255,.3);color:var(--accent3);border-radius:8px;padding:10px 16px;font-family:'Space Mono',monospace;font-size:.78rem;cursor:pointer;transition:background .2s;text-transform:uppercase;}
.btn-secondary:hover{background:rgba(107,140,255,.2);}
.funds-row{display:flex;gap:10px;align-items:flex-end;}
.funds-btn{white-space:nowrap;width:auto;flex-shrink:0;}
/* MODAL */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:200;align-items:center;justify-content:center;}
.modal-overlay.show{display:flex;}
.modal-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:34px;max-width:440px;width:90%;position:relative;}
.modal-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent3));border-radius:16px 16px 0 0;}
.modal-card h2{font-size:1.2rem;font-weight:800;margin-bottom:7px;}
.modal-card p{color:var(--muted);font-size:.82rem;margin-bottom:18px;line-height:1.6;}
.modal-note{font-family:'Space Mono',monospace;font-size:.66rem;color:var(--muted);margin-bottom:14px;line-height:1.6;}
.modal-note a{color:var(--accent3);text-decoration:none;}
.review-details{background:var(--surface);border-radius:10px;padding:16px;font-family:'Space Mono',monospace;font-size:.78rem;line-height:2;}
.review-warning{background:rgba(255,149,0,.08);border:1px solid rgba(255,149,0,.25);border-radius:7px;padding:10px 13px;font-family:'Space Mono',monospace;font-size:.7rem;color:#ff9500;line-height:1.6;margin-top:12px;}
.field-group{margin-bottom:14px;}
.field-group label{display:block;font-family:'Space Mono',monospace;font-size:.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;}
.field-group input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:11px 13px;color:var(--text);font-family:'Space Mono',monospace;font-size:.9rem;outline:none;transition:border-color .2s;}
.field-group input:focus{border-color:var(--accent);}
.field-group input::placeholder{color:var(--muted);}
.btn-primary{width:100%;background:var(--accent);color:#000;border:none;border-radius:8px;padding:13px;font-family:'Space Mono',monospace;font-size:.85rem;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:1px;transition:opacity .2s;}
.btn-primary:hover{opacity:.85;}
.btn-ghost{background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:8px 13px;color:var(--text);font-family:'Space Mono',monospace;font-size:.75rem;cursor:pointer;transition:border-color .2s,color .2s;white-space:nowrap;}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
.btn-ghost.sm{font-size:.65rem;padding:5px 10px;}
.error-msg{background:rgba(255,61,107,.1);border:1px solid rgba(255,61,107,.3);border-radius:8px;padding:10px 13px;font-family:'Space Mono',monospace;font-size:.7rem;color:var(--red);margin-bottom:13px;display:none;}
#toast{position:fixed;bottom:24px;right:24px;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:11px 16px;font-family:'Space Mono',monospace;font-size:.76rem;z-index:9999;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s;max-width:300px;pointer-events:none;}
#toast.show{opacity:1;transform:translateY(0);}
#toast.success{border-color:var(--green);color:var(--green);}
#toast.error{border-color:var(--red);color:var(--red);}
@keyframes fadeIn{from{opacity:0;transform:translateY(5px);}to{opacity:1;transform:none;}}
/* THEMES */
body.theme-blue{--accent:#4da6ff;--green:#4da6ff;}
body.theme-purple{--accent:#b06bff;--green:#b06bff;}
body.theme-orange{--accent:#ff8c42;--green:#ff8c42;}
body.theme-red{--accent:#ff3d6b;--green:#ff3d6b;}
body.theme-light{--bg:#f0f0f5;--surface:#e4e4ec;--card:#ffffff;--border:#d0d0dc;--text:#1a1a2e;--muted:#6b6b80;}
body.theme-midnight{--bg:#0a0a14;--surface:#0f0f1e;--card:#141428;--border:#2a2a4a;--accent:#6c63ff;--accent3:#6c63ff;--green:#6c63ff;}
body.theme-forest{--accent:#2ecc71;--green:#2ecc71;--bg:#0c140d;--surface:#111a12;--card:#162018;--border:#1e3021;}
body.no-anim *{animation:none!important;transition:none!important;}
body.compact-nav .nav-btn{padding:6px 10px;font-size:.6rem;}
body.compact-nav header{padding:6px 0;}

/* MARKET LAYOUT */
.market-layout{display:grid;grid-template-columns:330px 1fr;min-height:calc(100vh - 65px);}
@media(max-width:900px){.market-layout{grid-template-columns:1fr;}.market-sidebar{display:none;}}
.market-sidebar{border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;position:sticky;top:65px;height:calc(100vh - 65px);}
.market-sidebar-header{padding:16px 16px 12px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:10px;}
.sidebar-search{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:9px 13px;color:var(--text);font-family:'Space Mono',monospace;font-size:.78rem;outline:none;width:100%;transition:border-color .2s;}
.sidebar-search:focus{border-color:var(--accent);}
.sidebar-search::placeholder{color:var(--muted);}
.sp500-list{overflow-y:auto;flex:1;padding:4px 0;}
.sp500-list::-webkit-scrollbar{width:4px;}
.sp500-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
.sp500-item{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;cursor:pointer;transition:background .15s;border-bottom:1px solid rgba(42,42,58,.4);}
.sp500-item:hover{background:var(--card);}
.sp500-item-ticker{font-family:'Space Mono',monospace;font-size:.85rem;font-weight:700;color:var(--accent);min-width:64px;}
.sp500-item-name{font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px;}
.market-main{overflow-y:auto;padding:28px 0 80px;}
/* MARKET SEARCH */
.market-search-wrap{position:relative;margin-bottom:24px;}
.market-search-input{width:100%;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 18px;color:var(--text);font-family:'Syne',sans-serif;font-size:1rem;outline:none;transition:border-color .2s,box-shadow .2s;}
.market-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,255,136,.08);}
.market-search-input::placeholder{color:var(--muted);}
.market-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--card);border:1px solid var(--border);border-radius:10px;z-index:50;max-height:300px;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.4);}
.market-search-results::-webkit-scrollbar{width:3px;}
.market-search-results::-webkit-scrollbar-thumb{background:var(--border);}
.search-result-item{display:flex;align-items:center;gap:12px;padding:11px 16px;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--border);}
.search-result-item:last-child{border-bottom:none;}
.search-result-item:hover{background:var(--surface);}
.search-result-ticker{font-family:'Space Mono',monospace;font-size:.82rem;font-weight:700;color:var(--accent);min-width:60px;}
.search-result-name{font-size:.8rem;color:var(--text);}
.search-result-sector{font-family:'Space Mono',monospace;font-size:.62rem;color:var(--muted);margin-left:auto;}
/* BUY MODE TOGGLE */
.rh-order-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.buy-mode-toggle{display:flex;gap:2px;background:var(--card);border-radius:6px;padding:2px;}
.mode-btn{background:transparent;border:none;color:var(--muted);font-family:'Space Mono',monospace;font-size:.65rem;padding:4px 10px;border-radius:5px;cursor:pointer;transition:background .2s,color .2s;text-transform:uppercase;}
.mode-btn.active{background:var(--surface);color:var(--text);}
/* OVERFLOW WARNING */
.rh-amount-wrap.over-budget{border-color:var(--red);}
.rh-amount-wrap.over-budget .rh-dollar{color:var(--red);}
.rh-amount-wrap.over-budget .rh-amount-input{color:var(--red);}
.over-budget-msg{font-family:'Space Mono',monospace;font-size:.68rem;color:var(--red);margin-bottom:8px;display:none;}
.rh-submit-btn.blocked{background:rgba(255,61,107,.15);color:var(--red);border:1px solid rgba(255,61,107,.3);cursor:not-allowed;}


/* RETURNING USER BANNER */
.returning-banner{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px;text-align:center;}
.returning-greeting{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;}
.returning-name{font-size:1.2rem;font-weight:800;color:var(--accent);margin-bottom:16px;}

/* CHART CONTROLS */
.chart-controls{margin-bottom:8px;}
.chart-type-row{display:flex;gap:4px;margin-bottom:6px;}
.chart-range-row{display:flex;gap:3px;flex-wrap:wrap;}
.chart-type-btn,.chart-range-btn{background:transparent;border:1px solid var(--border);border-radius:5px;padding:3px 9px;font-family:'Space Mono',monospace;font-size:.6rem;color:var(--muted);cursor:pointer;transition:all .15s;text-transform:uppercase;}
.chart-type-btn:hover,.chart-range-btn:hover{border-color:var(--accent3);color:var(--text);}
.chart-type-btn.active,.chart-range-btn.active{background:var(--accent);border-color:var(--accent);color:#000;font-weight:700;}


/* CANDLE TOOLTIP */
.candle-tooltip{position:fixed;background:rgba(22,22,31,.97);border:1px solid #2a2a3a;border-radius:8px;padding:10px 12px;font-family:'Space Mono',monospace;font-size:.72rem;z-index:9999;pointer-events:none;min-width:110px;display:none;}
.ct-label{color:#6b6b80;font-size:.62rem;margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px;}
.ct-row{display:flex;justify-content:space-between;gap:14px;line-height:1.7;}
.ct-row span:first-child{color:#6b6b80;}

/* HOMEPAGE OVERVIEW */
.homepage-overview{padding:20px 0 40px;}
/* HOME ALERTS / MARKET PULSE */
.home-alerts-section{margin-top:32px;}
.home-alerts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:8px;}
@media(max-width:700px){.home-alerts-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:400px){.home-alerts-grid{grid-template-columns:1fr;}}
.alert-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;transition:border-color .2s;}
.alert-card.up{border-color:rgba(0,255,136,.25);}
.alert-card.down{border-color:rgba(255,61,107,.25);}
.alert-card.neutral{border-color:var(--border);}
.alert-label{font-family:'Space Mono',monospace;font-size:.62rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;}
.alert-val{font-family:'Space Mono',monospace;font-size:1rem;font-weight:700;color:var(--text);margin-bottom:4px;}
.alert-change{font-family:'Space Mono',monospace;font-size:.75rem;}
.alert-change.up{color:var(--green);}
.alert-change.down{color:var(--red);}
.alert-change.neutral{color:var(--muted);}
.alert-market-open{color:var(--green);font-weight:700;}
.alert-market-closed{color:var(--red);}
/* HOME WATCHLIST */
#home-watchlist-alerts{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;}
#home-watchlist-alerts .empty-state{grid-column:1/-1;border:1px dashed var(--border);border-radius:10px;}
.home-hold-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px;cursor:pointer;transition:border-color .2s;}
.home-hold-card:hover{border-color:var(--accent3);}
.home-hold-ticker{font-family:'Space Mono',monospace;font-size:.82rem;font-weight:700;color:var(--accent);}
.home-hold-shares{font-family:'Space Mono',monospace;font-size:.62rem;color:var(--muted);margin:2px 0 8px;}
.home-hold-pnl{font-family:'Space Mono',monospace;font-size:.88rem;font-weight:700;}
.home-hold-pnl.up{color:var(--green);}
.home-hold-pnl.down{color:var(--red);}
.overview-hero{margin-bottom:32px;}
.overview-title{font-size:2.4rem;font-weight:800;line-height:1.1;margin-bottom:12px;letter-spacing:-1px;}
.overview-title span{color:var(--accent);}
.overview-sub{color:var(--muted);font-size:.9rem;line-height:1.7;max-width:600px;}
.overview-features{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:32px;}
.overview-feature{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px;transition:border-color .2s;}
.overview-feature:hover{border-color:var(--accent3);}
.overview-feat-icon{font-size:1.5rem;margin-bottom:8px;}
.overview-feat-title{font-size:.9rem;font-weight:700;margin-bottom:5px;}
.overview-feat-desc{font-size:.76rem;color:var(--muted);line-height:1.6;}
.overview-cta{text-align:center;padding:20px;background:var(--card);border:1px solid var(--border);border-radius:12px;}
.overview-cta-text{font-family:'Space Mono',monospace;font-size:.82rem;color:var(--muted);}
@media(max-width:480px){.overview-title{font-size:1.8rem;}.overview-features{grid-template-columns:1fr 1fr;}}
.chart-zoom-hint{font-family:'Space Mono',monospace;font-size:.6rem;color:var(--muted);text-align:center;padding:3px 0 6px;opacity:.6;}
.chart-wrap canvas{cursor:crosshair;}
.chart-wrap canvas:active{cursor:grabbing;}


/* CHALLENGES PAGE */
.challenges-layout{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start;}
@media(max-width:900px){.challenges-layout{grid-template-columns:1fr;}}
.challenges-sidebar{}
.challenges-main{}
.rank-display{text-align:center;padding:8px 0 20px;border-bottom:1px solid var(--border);margin-bottom:16px;}
.rank-badge{font-size:2.4rem;margin-bottom:8px;}
.rank-name{font-size:1.1rem;font-weight:800;color:var(--accent);margin-bottom:4px;}
.rank-pts-label{font-family:'Space Mono',monospace;font-size:.62rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;}
.rank-pts-val{font-family:'Space Mono',monospace;font-size:1.4rem;font-weight:700;color:var(--text);margin:4px 0 12px;}
.rank-progress-wrap{height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin:0 0 8px;}
.rank-progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent3));transition:width .5s ease;}
.rank-next-label{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--muted);}
.rank-tiers{margin-top:4px;}
.rank-tiers-title{font-family:'Space Mono',monospace;font-size:.62rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;}
.rank-tier-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border);font-family:'Space Mono',monospace;font-size:.68rem;}
.rank-tier-row:last-child{border-bottom:none;}
.rank-tier-name{color:var(--text);}
.rank-tier-pts{color:var(--muted);}
.rank-tier-row.current .rank-tier-name{color:var(--accent);font-weight:700;}
.rank-tier-row.current .rank-tier-pts{color:var(--accent);}
.challenges-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px;}
@media(max-width:600px){.challenges-stats{grid-template-columns:1fr 1fr;}}
.chal-stat{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;text-align:center;}
.chal-stat-val{font-size:1.6rem;font-weight:800;color:var(--accent);font-family:'Space Mono',monospace;}
.chal-stat-label{font-family:'Space Mono',monospace;font-size:.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-top:4px;}
.chal-category{margin-bottom:32px;}
.chal-cat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.chal-cat-title{font-size:1rem;font-weight:800;letter-spacing:.5px;}
.chal-cat-progress{font-family:'Space Mono',monospace;font-size:.68rem;color:var(--muted);background:var(--card);border:1px solid var(--border);border-radius:20px;padding:3px 10px;}
.chal-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;}
.chal-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;transition:border-color .2s,transform .15s;position:relative;overflow:hidden;}
.chal-card:hover{border-color:var(--accent3);transform:translateY(-1px);}
.chal-card.done{border-color:var(--accent);background:linear-gradient(135deg,var(--card),rgba(0,255,136,.04));}
.chal-card.done::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent);}
.chal-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.chal-icon{font-size:1.5rem;}
.chal-pts{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--accent);background:rgba(0,255,136,.08);border:1px solid rgba(0,255,136,.15);border-radius:20px;padding:2px 8px;}
.chal-title{font-size:.88rem;font-weight:700;margin-bottom:5px;}
.chal-desc{font-size:.73rem;color:var(--muted);line-height:1.5;}
.chal-done-badge{display:inline-block;margin-top:10px;font-family:'Space Mono',monospace;font-size:.62rem;color:var(--accent);background:rgba(0,255,136,.1);border:1px solid rgba(0,255,136,.2);border-radius:20px;padding:3px 8px;}
/* Tier colors */
.chal-card.done .chal-pts{color:#00ff88;}
.chal-category:nth-child(2) .chal-pts{color:#6b8cff;}
.chal-category:nth-child(2) .chal-card.done{border-color:#6b8cff;background:linear-gradient(135deg,var(--card),rgba(107,140,255,.04));}
.chal-category:nth-child(2) .chal-card.done::before{background:#6b8cff;}
.chal-category:nth-child(2) .chal-done-badge{color:#6b8cff;background:rgba(107,140,255,.1);border-color:rgba(107,140,255,.2);}
.chal-category:nth-child(3) .chal-pts{color:#ff9500;}
.chal-category:nth-child(3) .chal-card.done{border-color:#ff9500;background:linear-gradient(135deg,var(--card),rgba(255,149,0,.04));}
.chal-category:nth-child(3) .chal-card.done::before{background:#ff9500;}
.chal-category:nth-child(3) .chal-done-badge{color:#ff9500;background:rgba(255,149,0,.1);border-color:rgba(255,149,0,.2);}
.chal-category:nth-child(4) .chal-pts{color:#ff3d6b;}
.chal-category:nth-child(4) .chal-card.done{border-color:#ff3d6b;background:linear-gradient(135deg,var(--card),rgba(255,61,107,.04));}
.chal-category:nth-child(4) .chal-card.done::before{background:#ff3d6b;}
.chal-category:nth-child(4) .chal-done-badge{color:#ff3d6b;background:rgba(255,61,107,.1);border-color:rgba(255,61,107,.2);}
/* AUTH button disabled */
.btn-google:disabled,.btn-guest:disabled{opacity:.35 !important;cursor:not-allowed !important;pointer-events:none;}
/* WATCHLIST BUTTON */
.watchlist-btn{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:4px 10px;font-family:'Space Mono',monospace;font-size:.68rem;cursor:pointer;transition:border-color .2s,color .2s;white-space:nowrap;}
.watchlist-btn:hover{border-color:var(--accent3);color:var(--accent3);}
.watchlist-btn.active{border-color:var(--accent);color:var(--accent);}
.quote-back-btn{display:inline-flex;align-items:center;gap:4px;background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:4px 10px;font-size:.68rem;cursor:pointer;white-space:nowrap;transition:border-color .2s,color .2s;flex-shrink:0;}
.quote-back-btn:hover{border-color:var(--accent3);color:var(--accent3);}
/* HISTORY FILTER */
.history-filter{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:5px 10px;color:var(--text);font-family:'Space Mono',monospace;font-size:.68rem;cursor:pointer;outline:none;}
.history-filter:focus{border-color:var(--accent);}
/* MOBILE IMPROVEMENTS */
@media(max-width:700px){
  .analytics-grid{grid-template-columns:1fr;}
  .challenges-layout{grid-template-columns:1fr;}
  .rank-display,.rank-tiers{margin-bottom:0;}
  .nav-links{gap:4px;flex-wrap:wrap;}
  .nav-btn{font-size:.62rem;padding:6px 8px;}
  .header-inner{flex-wrap:wrap;gap:8px;}
  .stats-grid{grid-template-columns:repeat(3,1fr);}
  .profile-layout{grid-template-columns:1fr;}
  .summary-stats{grid-template-columns:1fr 1fr 1fr;}
}
/* TUTORIAL OVERLAY */
#tutorial-overlay{position:fixed;inset:0;z-index:5000;pointer-events:none;display:none;}
#tutorial-overlay.active{pointer-events:all;display:block;}
#tut-svg{pointer-events:none;}
.tut-card{
  position:fixed;z-index:5005;background:var(--card);
  border:1.5px solid var(--accent3);border-radius:16px;
  padding:0;max-width:380px;width:min(90vw,380px);
  box-shadow:0 0 0 1px rgba(107,140,255,.15),0 28px 70px rgba(0,0,0,.85);
  animation:tutCardIn .25s cubic-bezier(.34,1.56,.64,1);
  pointer-events:all;
}
@keyframes tutCardIn{from{opacity:0;transform:scale(.92) translateY(8px);}to{opacity:1;transform:scale(1) translateY(0);}}
.tut-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent3));border-radius:16px 16px 0 0;}
.tut-card-inner{padding:24px 24px 0;}
.tut-step-badge{font-family:'Space Mono',monospace;font-size:.6rem;color:var(--accent3);text-transform:uppercase;letter-spacing:2px;margin-bottom:10px;}
.tut-card-title{font-size:1.05rem;font-weight:800;margin-bottom:8px;line-height:1.3;}
.tut-card-body{font-family:'Space Mono',monospace;font-size:.74rem;color:var(--muted);line-height:1.9;margin-bottom:0;white-space:pre-line;}
.tut-card-actions{display:flex;align-items:center;gap:8px;padding:16px 20px;border-top:1px solid var(--border);margin-top:16px;}
.tut-dots{display:flex;gap:5px;flex:1;justify-content:center;}
.tut-dot{width:6px;height:6px;border-radius:50%;background:var(--border);transition:background .2s,transform .2s;}
.tut-dot.active{background:var(--accent3);transform:scale(1.3);}
.tut-next-btn{background:var(--accent3);color:#fff;border:none;border-radius:8px;padding:9px 20px;font-family:'Space Mono',monospace;font-size:.76rem;font-weight:700;cursor:pointer;transition:opacity .2s;white-space:nowrap;}
.tut-next-btn:hover{opacity:.85;}
.tut-next-btn.finish{background:var(--accent);color:#000;}
.tut-back-btn{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:9px 12px;font-family:'Space Mono',monospace;font-size:.73rem;cursor:pointer;transition:border-color .2s,color .2s;white-space:nowrap;}
.tut-back-btn:hover{border-color:var(--text);color:var(--text);}
.tut-skip-btn-overlay{position:fixed;top:14px;right:14px;background:rgba(15,15,20,.95);border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:7px 14px;font-family:'Space Mono',monospace;font-size:.67rem;cursor:pointer;z-index:5010;transition:border-color .2s,color .2s;pointer-events:all;}
.tut-skip-btn-overlay:hover{border-color:var(--red);color:var(--red);}
/* spotlight glow pulse */
@keyframes tutGlowPulse{0%,100%{box-shadow:0 0 0 4px var(--accent3),0 0 20px var(--accent3);}50%{box-shadow:0 0 0 6px var(--accent3),0 0 36px var(--accent3);}}
.repeat-tut-btn{background:var(--accent3);color:#fff;border:none;border-radius:6px;padding:5px 12px;font-family:'Space Mono',monospace;font-size:.68rem;font-weight:700;cursor:pointer;transition:opacity .2s;margin-left:auto;}
.repeat-tut-btn:hover{opacity:.8;}
.bid-ask-row{display:flex;gap:12px;margin:10px 0;font-family:'Space Mono',monospace;}
.bid-ask-box{flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;text-align:center;}
.bid-ask-label{font-size:.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;}
.bid-ask-val{font-size:1rem;font-weight:700;margin-top:2px;}
.bid-ask-val.bid{color:var(--red);}
.bid-ask-val.ask{color:var(--green);}
.spread-note{font-size:.65rem;color:var(--muted);text-align:center;margin-bottom:8px;}
.mkt-status-pill{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:3px 10px;font-size:.65rem;font-family:'Space Mono',monospace;font-weight:700;margin-left:8px;}
.mkt-status-pill.open{background:rgba(39,174,96,.15);color:var(--green);border:1px solid rgba(39,174,96,.3);}
.mkt-status-pill.closed{background:rgba(231,76,60,.12);color:var(--red);border:1px solid rgba(231,76,60,.25);}
.mkt-status-pill::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;}
@media(max-width:480px){
  .stats-grid{grid-template-columns:1fr 1fr;}
  .summary-stats{grid-template-columns:1fr 1fr;}
  .overview-features{grid-template-columns:1fr;}
  .challenges-stats{grid-template-columns:1fr 1fr;}
  .home-alerts-grid{grid-template-columns:1fr 1fr;}
  header{padding:8px 0;}
  .balance-pill{display:none;}
}

/* ── BUZZWORD TOOLTIPS ─────────────────────────────────────────────────────── */
.info-tip{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:rgba(107,140,255,.2);color:var(--accent3);font-size:.58rem;font-weight:700;cursor:pointer;font-family:'Space Mono',monospace;border:1px solid rgba(107,140,255,.35);vertical-align:middle;margin-left:3px;transition:background .15s;}
.info-tip:hover{background:rgba(107,140,255,.4);}
#buzz-tooltip{position:fixed;z-index:9999;background:var(--card);border:1px solid var(--accent3);border-radius:12px;padding:14px 16px;max-width:280px;box-shadow:0 12px 40px rgba(0,0,0,.7);display:none;font-family:'Space Mono',monospace;}
.buzz-tt-short{font-size:.75rem;color:var(--text);font-weight:600;line-height:1.5;margin-bottom:8px;}
.buzz-tt-long{font-size:.68rem;color:var(--muted);line-height:1.85;margin-bottom:10px;border-top:1px solid var(--border);padding-top:8px;}
.buzz-tt-more{background:none;border:none;color:var(--accent3);font-family:'Space Mono',monospace;font-size:.62rem;cursor:pointer;padding:0;text-align:left;}
.buzz-tt-more:hover{text-decoration:underline;}

/* ── BRACKET ORDER ─────────────────────────────────────────────────────────── */
.bracket-row{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:start;padding:12px 0;}
.bracket-half{display:flex;flex-direction:column;gap:4px;}
.bracket-divider{color:var(--muted);font-size:1.2rem;padding-top:24px;text-align:center;}
.bracket-note{font-family:'Space Mono',monospace;font-size:.6rem;color:var(--muted);line-height:1.4;}
.bracket-note.stop-note{color:var(--red);}
.bracket-note.tp-note{color:var(--green);}
.review-balance-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-top:1px solid var(--border);margin-top:12px;}

/* ── FULLSCREEN CHART ──────────────────────────────────────────────────────── */
#chart-fullscreen{position:fixed;inset:0;z-index:4000;background:var(--bg);display:none;flex-direction:column;}
#chart-fullscreen.open{display:flex;}
.cfs-header{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--surface);}
.cfs-ticker{font-family:'Space Mono',monospace;font-size:1rem;font-weight:700;color:var(--text);}
.cfs-price{font-family:'Space Mono',monospace;font-size:.9rem;color:var(--accent);}
.cfs-close-btn{margin-left:auto;background:none;border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:5px 12px;font-family:'Space Mono',monospace;font-size:.68rem;cursor:pointer;transition:border-color .15s;}
.cfs-close-btn:hover{border-color:var(--red);color:var(--red);}
.cfs-body{flex:1;display:flex;overflow:hidden;}
.cfs-sidebar{width:52px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0;}
.cfs-tool-btn{width:36px;height:36px;background:none;border:1px solid transparent;border-radius:6px;color:var(--muted);cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s;}
.cfs-tool-btn:hover,.cfs-tool-btn.active{border-color:var(--accent3);color:var(--accent3);}
.cfs-tool-sep{width:80%;height:1px;background:var(--border);margin:4px 0;}
.cfs-main{flex:1;display:flex;flex-direction:column;}
.cfs-canvas-wrap{flex:1;position:relative;overflow:hidden;}
#cfs-canvas{width:100%;height:100%;display:block;}
.cfs-toolbar{display:flex;align-items:center;gap:8px;padding:8px 16px;border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;}
.cfs-range-btn,.cfs-type-btn{background:var(--surface);border:1px solid var(--border);border-radius:5px;padding:4px 10px;font-family:'Space Mono',monospace;font-size:.65rem;color:var(--muted);cursor:pointer;transition:border-color .15s;}
.cfs-range-btn.active,.cfs-type-btn.active{border-color:var(--accent3);color:var(--accent3);}
.cfs-color-btn{width:22px;height:22px;border-radius:4px;border:2px solid var(--border);cursor:pointer;transition:border-color .15s;}
.cfs-color-btn:hover{border-color:var(--accent3);}
.cfs-divider{width:1px;height:20px;background:var(--border);}
.cfs-drawing-label{font-family:'Space Mono',monospace;font-size:.6rem;color:var(--muted);}

/* ── ANALYTICS PAGE ───────────────────────────────────────────────────────── */
.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.analytics-wide{grid-column:1/-1;}
.analytics-summary-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px;}
.a-stat{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;text-align:center;}
.a-stat-val{font-family:'Space Mono',monospace;font-size:1.1rem;font-weight:700;color:var(--accent);margin-bottom:4px;}
.a-stat-label{font-family:'Space Mono',monospace;font-size:.58rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
.a-pie-wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.a-pie-legend{flex:1;min-width:100px;}
.a-pie-legend-item{display:flex;align-items:center;gap:7px;margin-bottom:6px;font-family:'Space Mono',monospace;font-size:.68rem;color:var(--muted);}
.a-pie-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.a-period-tabs{display:flex;gap:6px;margin-bottom:12px;}
.a-period-tab{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:5px 12px;font-family:'Space Mono',monospace;font-size:.68rem;color:var(--muted);cursor:pointer;transition:border-color .15s;}
.a-period-tab.active{border-color:var(--accent3);color:var(--accent3);}
.a-table{width:100%;border-collapse:collapse;font-family:'Space Mono',monospace;font-size:.68rem;}
.a-table th{text-align:left;color:var(--muted);font-weight:400;padding:6px 8px;border-bottom:1px solid var(--border);}
.a-table td{padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--text);}
.a-table .up{color:var(--green);}
.a-table .down{color:var(--red);}
@media(max-width:700px){.analytics-grid{grid-template-columns:1fr;}.analytics-wide{grid-column:1;}}

/* ── MINIGAMES PAGE ────────────────────────────────────────────────────────── */
.streak-stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;}
.streak-stat{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;text-align:center;}
.streak-val{font-size:1.25rem;font-weight:700;color:var(--accent);margin-bottom:4px;}
.streak-label{font-size:.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
/* Tabs */
.mg-tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap;}
.mg-tab{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:9px 18px;font-size:.8rem;font-weight:600;color:var(--muted);cursor:pointer;transition:border-color .15s,color .15s;}
.mg-tab:hover{border-color:var(--accent3);color:var(--accent3);}
.mg-tab.active{border-color:var(--accent);color:var(--accent);background:rgba(0,255,136,.06);}
.mg-tab-content{display:none;}
.mg-tab-content.active{display:block;}
.mg-game-panel{min-height:340px;}
/* Game intro */
.mg-game-intro{display:flex;flex-direction:column;align-items:center;text-align:center;padding:16px 0;}
.mg-game-icon{font-size:2.8rem;margin-bottom:14px;}
.mg-game-desc{font-size:.82rem;color:var(--muted);max-width:480px;line-height:1.6;margin-bottom:18px;}
.mg-start-btn{min-width:140px;}
/* Difficulty */
.mg-difficulty-row{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap;justify-content:center;}
.mg-diff-btn{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:6px 14px;font-size:.72rem;color:var(--muted);cursor:pointer;transition:border-color .15s,color .15s;}
.mg-diff-btn.active{border-color:var(--accent3);color:var(--accent3);background:rgba(107,140,255,.08);}
/* Progress bar */
.trivia-progress-bar{width:100%;height:4px;background:var(--border);border-radius:4px;margin-bottom:16px;overflow:hidden;}
.trivia-progress-fill{height:100%;background:var(--accent);border-radius:4px;transition:width .3s;}
.trivia-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.trivia-diff-badge{font-size:.65rem;padding:2px 8px;border-radius:4px;background:rgba(255,255,255,.06);color:var(--muted);}
/* Question */
.trivia-q{font-size:.88rem;color:var(--text);margin-bottom:16px;line-height:1.6;font-weight:600;}
.trivia-opts{display:flex;flex-direction:column;gap:8px;}
.trivia-btn{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:11px 16px;font-size:.78rem;color:var(--text);cursor:pointer;text-align:left;transition:border-color .15s,background .15s;}
.trivia-btn:hover:not(:disabled){border-color:var(--accent3);background:rgba(255,255,255,.04);}
.trivia-btn:disabled{cursor:default;}
.trivia-btn.correct{border-color:var(--green)!important;background:rgba(0,255,136,.08);}
.trivia-btn.wrong{border-color:var(--red)!important;background:rgba(255,61,107,.08);}
/* Feedback */
.trivia-feedback{font-size:.78rem;min-height:24px;padding:6px 0;border-radius:4px;}
.trivia-feedback.correct{color:var(--green);}
.trivia-feedback.wrong{color:var(--red);}
/* Answer buttons for guess+bb */
.mg-answer-btn{flex:1;max-width:150px;padding:12px 20px;border-radius:10px;border:2px solid var(--border);background:var(--surface);font-size:.85rem;font-weight:700;cursor:pointer;transition:border-color .15s,background .15s;}
.mg-answer-btn.up{color:var(--green);}
.mg-answer-btn.up:hover:not(:disabled){border-color:var(--green);background:rgba(0,255,136,.08);}
.mg-answer-btn.down{color:var(--red);}
.mg-answer-btn.down:hover:not(:disabled){border-color:var(--red);background:rgba(255,61,107,.08);}
.mg-answer-btn.bull{color:var(--green);}
.mg-answer-btn.bull:hover:not(:disabled){border-color:var(--green);background:rgba(0,255,136,.08);}
.mg-answer-btn.bear{color:var(--red);}
.mg-answer-btn.bear:hover:not(:disabled){border-color:var(--red);background:rgba(255,61,107,.08);}
.mg-answer-btn.correct{border-color:var(--green)!important;background:rgba(0,255,136,.12)!important;}
.mg-answer-btn.wrong{border-color:var(--red)!important;background:rgba(255,61,107,.12)!important;}
.mg-answer-btn:disabled{cursor:default;}
/* Bull or Bear headline */
.bb-headline{font-size:.95rem;font-weight:600;color:var(--text);line-height:1.6;margin:16px 0;padding:18px 20px;background:var(--surface);border:1px solid var(--border);border-radius:10px;text-align:center;}
/* Result screen */
.mg-result-screen{display:flex;flex-direction:column;align-items:center;text-align:center;padding:20px 0;}
.mg-result-grade{font-size:4rem;font-weight:800;line-height:1;margin-bottom:10px;}
.grade-s{color:#ffd700;}.grade-a{color:var(--green);}.grade-b{color:#6b8cff;}.grade-c{color:#ff9500;}.grade-d{color:var(--red);}
.mg-result-score{font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:4px;}
.mg-result-pct{font-size:.9rem;color:var(--muted);margin-bottom:12px;}
.mg-result-msg{font-size:.82rem;color:var(--muted);max-width:360px;line-height:1.5;}
/* Daily challenges */
.daily-chal-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;}
.daily-chal-card{background:rgba(255,215,0,.04);border-color:rgba(255,215,0,.2);}
.daily-chal-card.done{background:rgba(255,215,0,.08);border-color:rgba(255,215,0,.4);}
.daily-pts{color:#ffd700!important;}
/* Market Cap Showdown */
.mcs-matchup{display:flex;gap:16px;align-items:stretch;margin:16px 0;}
.mcs-choice{flex:1;background:var(--surface);border:2px solid var(--border);border-radius:12px;padding:20px 16px;cursor:pointer;transition:border-color .15s,background .15s;text-align:center;}
.mcs-choice:hover:not(:disabled){border-color:var(--accent3);background:rgba(107,140,255,.06);}
.mcs-choice:disabled{cursor:default;}
.mcs-choice.correct{border-color:var(--green)!important;background:rgba(0,255,136,.1)!important;}
.mcs-choice.wrong{border-color:var(--red)!important;background:rgba(255,61,107,.1)!important;}
.mcs-co-ticker{font-size:1.3rem;font-weight:800;color:var(--accent);margin-bottom:6px;}
.mcs-co-name{font-size:.78rem;color:var(--text);}
.mcs-vs{font-size:1rem;font-weight:800;color:var(--muted);align-self:center;flex-shrink:0;}
/* Ticker Flash */
.tf-company-name{font-size:1.6rem;font-weight:800;color:var(--text);text-align:center;margin:20px 0 4px;letter-spacing:-.01em;}
@media(max-width:700px){.mg-tabs{flex-wrap:wrap;}.mg-tab{text-align:center;flex:1;min-width:120px;}.streak-stats-row{grid-template-columns:repeat(2,1fr);}.mcs-matchup{flex-direction:column;}.mcs-vs{display:none;}}

/* ── PORTFOLIO MILESTONES ────────────────────────────────────────────────────── */
.milestones-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;}
.milestone-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px;text-align:center;opacity:.5;transition:opacity .2s,border-color .2s;}
.milestone-card.done{opacity:1;border-color:var(--accent);background:rgba(0,255,136,.04);}
.milestone-icon{font-size:1.6rem;margin-bottom:6px;}
.milestone-title{font-size:.78rem;font-weight:700;color:var(--text);margin-bottom:4px;}
.milestone-desc{font-size:.65rem;color:var(--muted);line-height:1.4;}
.milestone-check{font-size:.85rem;color:var(--accent);margin-top:6px;font-weight:700;}
/* ── MARKET EVENT BANNER ────────────────────────────────────────────────────── */
.market-event-banner{display:flex;align-items:center;gap:12px;padding:10px 20px;font-size:.8rem;font-weight:600;position:fixed;top:0;left:0;right:0;z-index:9999;border-bottom:2px solid;backdrop-filter:blur(8px);}
/* ── WEEKLY RECAP MODAL ─────────────────────────────────────────────────────── */
.recap-modal-card{max-width:420px;width:100%;}
.recap-header{font-size:1.1rem;font-weight:800;margin-bottom:16px;text-align:center;}
.recap-pnl{font-size:2.2rem;font-weight:800;text-align:center;margin-bottom:4px;}
.recap-pnl.up{color:var(--green);}.recap-pnl.down{color:var(--red);}
.recap-sub{font-size:.75rem;color:var(--muted);text-align:center;margin-bottom:16px;}
.recap-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;}
.recap-stat{text-align:center;}
.recap-stat-val{font-size:1.1rem;font-weight:700;color:var(--accent);}
.recap-stat-label{font-size:.6rem;color:var(--muted);}
.recap-row{display:flex;justify-content:space-between;font-size:.78rem;margin-bottom:8px;padding:6px 0;border-bottom:1px solid var(--border);}
.recap-row-label{color:var(--muted);}
.recap-msg{font-size:.8rem;color:var(--text);text-align:center;margin-top:14px;padding:12px;background:var(--surface);border-radius:8px;}
/* ── CLASSROOM MODE ─────────────────────────────────────────────────────────── */
.classroom-role-select{text-align:center;padding:40px 20px;}
.cr-title{font-size:1.6rem;font-weight:800;margin-bottom:8px;}
.cr-subtitle{font-size:.85rem;color:var(--muted);margin-bottom:28px;}
.cr-role-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:560px;margin:0 auto;}
@media(max-width:560px){.cr-role-cards{grid-template-columns:1fr;}}
.cr-role-card{background:var(--card);border:2px solid var(--border);border-radius:16px;padding:28px 20px;cursor:pointer;transition:border-color .2s,transform .15s;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;}
.cr-role-card:hover{border-color:var(--accent);transform:translateY(-2px);}
.cr-role-icon{font-size:2.4rem;}
.cr-role-name{font-size:1.1rem;font-weight:700;}
.cr-role-desc{font-size:.78rem;color:var(--muted);line-height:1.5;}
/* classroom header card */
.classroom-header-card{background:linear-gradient(135deg,var(--card),var(--surface));border:1px solid var(--border);border-radius:14px;padding:20px 24px;}
.clh-name{font-size:1.3rem;font-weight:800;margin-bottom:4px;}
.clh-meta{font-size:.75rem;color:var(--muted);}
.clh-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;}
.join-code-display{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border);}
.join-code-badge{font-family:'Space Mono',monospace;font-size:1.4rem;font-weight:700;color:var(--accent);letter-spacing:4px;background:var(--surface);padding:6px 14px;border-radius:8px;border:1px solid var(--border);}
/* teacher toolbar */
.teacher-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
/* teacher class list cards */
.teacher-class-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px 20px;cursor:pointer;transition:border-color .2s;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;}
.teacher-class-card:hover{border-color:var(--accent);}
.tccard-left{}
.tccard-name{font-size:.95rem;font-weight:700;}
.tccard-meta{font-size:.72rem;color:var(--muted);margin-top:3px;}
.tccard-code{font-family:'Space Mono',monospace;font-size:.78rem;color:var(--accent);margin-top:4px;}
/* leaderboard */
.classroom-lb{width:100%;border-collapse:collapse;}
.classroom-lb th{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:8px 10px;text-align:left;border-bottom:1px solid var(--border);}
.classroom-lb td{padding:10px 10px;font-size:.82rem;border-bottom:1px solid var(--border);}
.classroom-lb tr:last-child td{border-bottom:none;}
.classroom-lb .lb-rank{font-weight:700;color:var(--muted);width:36px;}
.classroom-lb .lb-rank.gold{color:#f5c518;}
.classroom-lb .lb-rank.silver{color:#c0c0c0;}
.classroom-lb .lb-rank.bronze{color:#cd7f32;}
.classroom-lb .lb-name{font-weight:600;}
.classroom-lb .lb-value{font-family:'Space Mono',monospace;font-weight:700;}
.classroom-lb .lb-value.up{color:var(--green);}
.classroom-lb .lb-value.down{color:var(--red);}
.classroom-lb .lb-me{background:rgba(0,255,136,.04);}
/* assignment cards */
.asgn-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:10px;}
.asgn-card.active-asgn{border-color:var(--accent);}
.asgn-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
.asgn-title{font-size:.88rem;font-weight:700;}
.asgn-badge{font-size:.62rem;font-weight:700;text-transform:uppercase;padding:3px 8px;border-radius:12px;border:1px solid;}
.asgn-badge.active{color:var(--green);border-color:var(--green);background:rgba(0,255,136,.08);}
.asgn-badge.ended{color:var(--muted);border-color:var(--muted);background:rgba(139,139,160,.08);}
.asgn-badge.upcoming{color:var(--accent3);border-color:var(--accent3);background:rgba(107,140,255,.08);}
.asgn-desc{font-size:.75rem;color:var(--muted);margin-top:6px;line-height:1.5;}
.asgn-dates{font-size:.68rem;color:var(--muted);margin-top:8px;}
.asgn-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
/* student progress summary */
.student-progress-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;}
.sp-stat{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 12px;text-align:center;}
.sp-stat-val{font-family:'Space Mono',monospace;font-size:1.1rem;font-weight:700;color:var(--accent);}
.sp-stat-label{font-size:.62rem;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.05em;}
/* class analytics grid */
.cls-analytics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;}
.cls-stat{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 12px;text-align:center;}
.cls-stat-val{font-family:'Space Mono',monospace;font-size:1.2rem;font-weight:700;color:var(--accent3);}
.cls-stat-label{font-size:.62rem;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.05em;}
/* panel action button */
.panel-action-btn{font-size:.72rem;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 10px;color:var(--text);cursor:pointer;transition:border-color .2s;}
.panel-action-btn:hover{border-color:var(--accent);color:var(--accent);}
/* role badge in profile */
.role-badge{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border-radius:12px;border:1px solid;margin-top:6px;}
.role-badge.teacher{color:var(--accent3);border-color:var(--accent3);background:rgba(107,140,255,.1);}
.role-badge.student{color:var(--accent);border-color:var(--accent);background:rgba(0,255,136,.1);}
/* ── GUI STYLE PRESETS ──────────────────────────────────────────────────────── */
.gui-style-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;}
.gui-style-btn{background:var(--surface);border:2px solid var(--border);border-radius:12px;padding:0;cursor:pointer;transition:border-color .2s,transform .15s;text-align:center;overflow:hidden;}
.gui-style-btn:hover,.gui-style-btn.active{border-color:var(--accent);transform:translateY(-2px);}
.gui-style-preview{height:52px;padding:10px 12px;display:flex;flex-direction:column;justify-content:center;}
.gui-style-name{font-size:.78rem;font-weight:700;padding:6px 8px 2px;color:var(--text);}
.gui-style-desc{font-size:.62rem;color:var(--muted);padding:0 8px 8px;}
/* ── TERMINAL STYLE ──────────────────────────────────────────────────────────── */
body.gui-terminal{--bg:#000000;--surface:#0a0a0a;--card:#0f0f0f;--border:#00aa00;--accent:#00ff00;--accent3:#00cc00;--text:#00ff00;--muted:#008800;--font-ui:'Space Mono',monospace;}
body.gui-terminal .nav-links button{border-radius:0;text-transform:uppercase;font-size:.65rem;letter-spacing:.1em;}
body.gui-terminal .panel,.gui-terminal .stat-card,.gui-terminal .holding-row{border-radius:0;border:1px solid #00aa00;}
body.gui-terminal .btn-primary{border-radius:0;background:#00aa00;color:#000;}
body.gui-terminal .page-header h2{font-family:'Space Mono',monospace;text-transform:uppercase;letter-spacing:.08em;}
/* ── PRO STYLE ────────────────────────────────────────────────────────────────── */
body.gui-pro{--bg:#0d1117;--surface:#161b22;--card:#21262d;--border:#30363d;--accent:#58a6ff;--accent3:#bc8cff;--text:#e6edf3;--muted:#8b949e;--green:#3fb950;--red:#f85149;}
body.gui-pro .panel,.gui-pro .stat-card{border-radius:6px;}
body.gui-pro header{border-bottom:1px solid var(--border);}
body.gui-pro .nav-btn{font-size:.7rem;padding:6px 10px;border-radius:4px;}
body.gui-pro .stat-card .stat-value{font-size:1rem;}
/* ── BROKERAGE STYLE ──────────────────────────────────────────────────────────── */
body.gui-brokerage{--bg:#0e1621;--surface:#152030;--card:#1a2b3e;--border:#253648;--accent:#00b386;--accent3:#4da6ff;--text:#d4e5f5;--muted:#7a9ab5;--green:#00b386;--red:#e05555;}
body.gui-brokerage .nav-links{background:var(--surface);border-bottom:2px solid var(--accent);}
body.gui-brokerage .panel{border-radius:4px;}
body.gui-brokerage .btn-primary{background:var(--accent);border-radius:4px;}
/* ── CLEAN LIGHT STYLE ────────────────────────────────────────────────────────── */
body.gui-clean{--bg:#f5f7fa;--surface:#ffffff;--card:#ffffff;--border:#e1e4e8;--accent:#0066cc;--accent3:#6f42c1;--text:#24292f;--muted:#6e7781;--green:#1a7f37;--red:#cf222e;filter:none!important;}
body.gui-clean .panel,.gui-clean .stat-card{box-shadow:0 1px 3px rgba(0,0,0,.1);}
body.gui-clean .btn-primary{background:var(--accent);}
body.gui-clean header{background:#fff;border-bottom:1px solid var(--border);}
body.gui-clean .nav-btn{color:var(--muted);}
body.gui-clean .nav-btn.active,.gui-clean .nav-btn:hover{color:var(--accent);}
/* ── PERSONALIZATION EXTRAS ────────────────────────────────────────────────── */
.font-inter{font-family:'Inter',sans-serif!important;}
.font-mono{font-family:'Space Mono',monospace!important;}
.font-serif{font-family:'Georgia',serif!important;}

/* ══════════════════════════════════════════════════════════════════════════════
   VISUAL OVERHAUL v2 — Premium design refresh across all pages
   ══════════════════════════════════════════════════════════════════════════════ */

/* ── GLOBAL ─────────────────────────────────────────────────────────────────── */
::-webkit-scrollbar{width:4px;height:4px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
::-webkit-scrollbar-thumb:hover{background:var(--muted);}

/* Panels: subtle top shimmer + elevated shadow */
.panel{
  box-shadow:0 1px 3px rgba(0,0,0,.2),0 6px 24px rgba(0,0,0,.15);
  position:relative;
}
.panel::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent 0%,var(--accent) 40%,var(--accent3) 60%,transparent 100%);
  opacity:.25;border-radius:16px 16px 0 0;pointer-events:none;z-index:1;
}

/* Page headers: divider line + gradient title */
.page-header{padding-bottom:22px;border-bottom:1px solid var(--border);margin-bottom:32px;position:relative;}
.page-header::after{
  content:'';position:absolute;bottom:-1px;left:0;width:60px;height:2px;
  background:linear-gradient(90deg,var(--accent),var(--accent3));border-radius:2px;
}
.page-header h2{
  font-size:1.7rem;font-weight:800;letter-spacing:-.5px;
  background:linear-gradient(135deg,var(--text) 40%,var(--muted) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.page-header p{color:var(--muted);font-size:.82rem;margin-top:5px;}

/* Section titles: extend with a divider line */
.section-title{
  display:flex;align-items:center;gap:10px;white-space:nowrap;
  color:var(--muted);font-size:.65rem;letter-spacing:2px;text-transform:uppercase;
}
.section-title::after{content:'';flex:1;min-width:20px;height:1px;background:var(--border);}

/* ── HEADER & NAV ─────────────────────────────────────────────────────────── */
header{box-shadow:0 1px 0 var(--border),0 8px 32px rgba(0,0,0,.3);}
.nav-btn.active{
  color:var(--accent)!important;
  background:rgba(0,255,136,.07)!important;
  border-bottom:2px solid var(--accent);
  border-radius:6px 6px 0 0;
}
.balance-pill{
  background:rgba(0,255,136,.06);border:1px solid rgba(0,255,136,.15);
  border-radius:20px;padding:4px 13px;font-size:.7rem;
}
.balance-pill strong{color:var(--accent);}

/* ── STAT CARDS ──────────────────────────────────────────────────────────── */
.stat-card{
  position:relative;overflow:hidden;
  box-shadow:0 2px 10px rgba(0,0,0,.15);
}
.stat-card::after{
  content:'';position:absolute;top:0;left:0;width:3px;height:100%;
  background:linear-gradient(180deg,var(--accent),var(--accent3));opacity:.5;
  border-radius:12px 0 0 12px;
}
.stat-label{font-size:.57rem;letter-spacing:1.2px;}
.stat-value{font-size:1.05rem;letter-spacing:-.01em;}

/* ── BUTTONS ─────────────────────────────────────────────────────────────── */
.btn-primary,.btn-auth{
  background:linear-gradient(135deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 65%,var(--accent3)) 100%);
  box-shadow:0 2px 14px rgba(0,255,136,.2);
  letter-spacing:.5px;transition:opacity .2s,box-shadow .2s;
}
.btn-primary:hover,.btn-auth:hover{box-shadow:0 4px 24px rgba(0,255,136,.35);opacity:.92;}
.btn-ghost{transition:border-color .2s,color .2s,box-shadow .15s;}
.btn-ghost:hover{box-shadow:0 2px 10px rgba(0,0,0,.15);}

/* ── AUTH SCREEN ─────────────────────────────────────────────────────────── */
.auth-right{box-shadow:-12px 0 60px rgba(0,0,0,.35);}
.auth-hero{letter-spacing:-1.5px;text-shadow:0 0 80px rgba(0,255,136,.06);}
.auth-stat-val{font-size:1.5rem;letter-spacing:-.02em;text-shadow:0 0 20px rgba(0,255,136,.2);}
.ticker-pill{
  box-shadow:0 2px 12px rgba(0,0,0,.25);
  transition:transform .2s,box-shadow .2s;
}
.ticker-pill:hover{transform:translateX(4px);box-shadow:0 4px 20px rgba(0,0,0,.3);}
.auth-tip-card{box-shadow:0 4px 20px rgba(0,0,0,.2);}
.btn-auth{font-size:.88rem;}

/* ── TRADE / QUOTE PANEL ─────────────────────────────────────────────────── */
.rh-quote{
  border-color:rgba(107,140,255,.12);
  box-shadow:0 4px 20px rgba(0,0,0,.15);
}
.rh-price{letter-spacing:-.03em;}
.rh-order{box-shadow:0 4px 20px rgba(0,0,0,.15);}
.rh-order-tab{transition:background .2s,color .2s,border-color .2s;}

/* ── MOVER CARDS (Market) ────────────────────────────────────────────────── */
.mover-card{
  position:relative;overflow:hidden;
  box-shadow:0 2px 8px rgba(0,0,0,.15);
  transition:border-color .2s,transform .15s,box-shadow .2s;
}
.mover-card::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--accent),var(--accent3));
  opacity:0;transition:opacity .2s;
}
.mover-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.25);}
.mover-card:hover::after{opacity:.55;}
.mover-ticker{font-size:1rem;letter-spacing:.02em;}
.mover-price{font-size:1.05rem;letter-spacing:-.01em;}
.mover-name{font-size:.7rem;}

/* ── HOLDING & HISTORY ROWS ──────────────────────────────────────────────── */
.holding-row{
  transition:border-color .2s,transform .15s,box-shadow .15s;cursor:pointer;
}
.holding-row:hover{
  border-color:var(--accent3);transform:translateX(3px);
  box-shadow:0 2px 14px rgba(0,0,0,.2);
}
.history-row{transition:background .15s;}
.history-row:hover{background:var(--card);}
.holding-ticker{font-size:.85rem;}

/* ── HOME PAGE ───────────────────────────────────────────────────────────── */
.overview-title{font-size:2.6rem;letter-spacing:-1.5px;margin-bottom:14px;}
.overview-sub{font-size:.92rem;line-height:1.75;}
.overview-feature{
  box-shadow:0 2px 10px rgba(0,0,0,.1);
  transition:border-color .2s,transform .15s,box-shadow .2s;
}
.overview-feature:hover{
  border-color:var(--accent);transform:translateY(-3px);
  box-shadow:0 8px 32px rgba(0,0,0,.2);
}
.overview-feat-icon{font-size:1.8rem;margin-bottom:10px;}
.overview-feat-title{font-size:.95rem;font-weight:700;margin-bottom:6px;}
.overview-feat-desc{font-size:.78rem;color:var(--muted);line-height:1.7;}
.overview-cta{
  background:linear-gradient(135deg,var(--card),rgba(0,255,136,.04));
  border-color:rgba(0,255,136,.15);box-shadow:0 2px 12px rgba(0,0,0,.1);
}
.overview-cta-text{font-size:.85rem;color:var(--text);}

/* Market Pulse cards */
.alert-card{
  box-shadow:0 2px 10px rgba(0,0,0,.12);
  transition:border-color .2s,transform .15s;
}
.alert-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.2);}
.alert-val{font-size:1.08rem;letter-spacing:-.01em;}
.alert-label{font-size:.6rem;}

/* Home holdings cards */
.home-hold-card{
  box-shadow:0 2px 8px rgba(0,0,0,.1);
  transition:border-color .2s,transform .15s,box-shadow .15s;
}
.home-hold-card:hover{
  border-color:var(--accent);transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(0,0,0,.2);
}
.home-hold-ticker{font-size:.85rem;letter-spacing:.02em;}
.home-hold-pnl{font-size:.9rem;}

/* Returning user banner */
.returning-banner{
  background:linear-gradient(135deg,var(--surface),rgba(0,255,136,.04));
  border-color:rgba(0,255,136,.15);
}
.returning-name{font-size:1.4rem;letter-spacing:-.02em;}

/* ── PORTFOLIO PAGE ───────────────────────────────────────────────────────── */
.summary-big{letter-spacing:-.5px;font-size:2.4rem;}
.summary-stat-val{font-size:.95rem;letter-spacing:-.01em;}
.analytics-summary-row .a-stat{
  border-left:2px solid var(--border);transition:border-color .2s;
}
.analytics-summary-row .a-stat:hover{border-color:var(--accent);}
.a-stat-val{font-size:1.15rem;letter-spacing:-.01em;}
.milestone-card{box-shadow:0 1px 4px rgba(0,0,0,.1);}
.milestone-card.done{
  box-shadow:0 4px 16px rgba(0,255,136,.1);
}
.milestone-icon{font-size:1.8rem;}

/* ── CHALLENGES ──────────────────────────────────────────────────────────── */
.chal-stat{box-shadow:0 2px 8px rgba(0,0,0,.1);}
.chal-stat-val{font-size:1.75rem;text-shadow:0 0 20px rgba(0,255,136,.12);}
.chal-card{box-shadow:0 2px 8px rgba(0,0,0,.1);}
.chal-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.2);}
.rank-badge{filter:drop-shadow(0 0 10px rgba(255,215,0,.25));font-size:2.8rem;}
.rank-name{letter-spacing:-.01em;}
.rank-pts-val{letter-spacing:-.02em;}

/* ── MINIGAMES ───────────────────────────────────────────────────────────── */
.mg-game-icon{
  filter:drop-shadow(0 0 16px rgba(0,255,136,.2));
  font-size:3rem;margin-bottom:18px;
}
.mg-tab{transition:border-color .15s,color .15s,background .15s,box-shadow .15s;}
.mg-tab.active{font-weight:700;box-shadow:0 2px 10px rgba(0,0,0,.15);}
.streak-stat{box-shadow:0 1px 4px rgba(0,0,0,.1);}
.streak-val{font-size:1.3rem;letter-spacing:-.01em;}
.trivia-btn{
  transition:border-color .15s,background .15s,transform .1s;
  box-shadow:0 1px 4px rgba(0,0,0,.08);
}
.trivia-btn:hover:not(:disabled){transform:translateX(3px);}
.mcs-choice{box-shadow:0 2px 8px rgba(0,0,0,.1);}
.mcs-co-ticker{font-size:1.5rem;letter-spacing:.03em;}
.tf-company-name{font-size:1.7rem;letter-spacing:-.02em;}
.mg-result-grade{text-shadow:0 0 30px currentColor;}

/* ── NEWS ────────────────────────────────────────────────────────────────── */
.news-card{box-shadow:0 2px 8px rgba(0,0,0,.1);}
.news-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.2);}
.news-headline{font-size:.9rem;line-height:1.45;}

/* ── GLOSSARY ────────────────────────────────────────────────────────────── */
.gloss-card{box-shadow:0 1px 4px rgba(0,0,0,.1);}
.gloss-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.2);}
.gloss-term{font-size:.9rem;}

/* ── CLASSROOM ───────────────────────────────────────────────────────────── */
.teacher-class-card{box-shadow:0 2px 8px rgba(0,0,0,.1);}
.teacher-class-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.2);}
.join-code-badge{
  font-size:1.1rem;background:rgba(0,255,136,.06);
  border-color:rgba(0,255,136,.2);color:var(--accent);
}

/* ── PROFILE PAGE ────────────────────────────────────────────────────────── */
.profile-avatar-big{
  box-shadow:0 0 0 4px rgba(0,255,136,.15),0 0 24px rgba(0,255,136,.08);
}
.profile-balance-display{
  background:linear-gradient(135deg,var(--surface),rgba(0,255,136,.05));
  border-color:rgba(0,255,136,.15);
}
.profile-balance-val{letter-spacing:-.02em;}
.profile-name{font-size:1.15rem;font-weight:800;letter-spacing:-.02em;}

/* ── MARKET SP500 SIDEBAR ────────────────────────────────────────────────── */
.sp500-item{transition:background .15s,padding-left .15s;}
.sp500-item:hover{padding-left:20px;}
.sp500-item-ticker{font-size:.88rem;}

/* ── ANALYTICS ───────────────────────────────────────────────────────────── */
.a-table td{transition:background .15s;}
.a-table tr:hover td{background:rgba(255,255,255,.02);}

/* ── MODAL ───────────────────────────────────────────────────────────────── */
.modal-card{
  box-shadow:0 0 0 1px rgba(107,140,255,.1),0 28px 80px rgba(0,0,0,.7);
}

/* ── TOAST ───────────────────────────────────────────────────────────────── */
#toast{box-shadow:0 4px 20px rgba(0,0,0,.4);}
#toast.success{box-shadow:0 4px 20px rgba(0,255,136,.15);}
#toast.error{box-shadow:0 4px 20px rgba(255,61,107,.15);}

/* ── LOADING OVERLAY ─────────────────────────────────────────────────────── */
.loading-content{
  box-shadow:0 0 0 1px rgba(0,255,136,.1),0 40px 80px rgba(0,0,0,.8);
}

/* ── WATCHLIST ───────────────────────────────────────────────────────────── */
.watchlist-btn.active{background:rgba(0,255,136,.08);}

/* ── PANEL BODY / HEADER ─────────────────────────────────────────────────── */
.panel-header{background:rgba(255,255,255,.02);}
.panel-title{font-size:.67rem;letter-spacing:2.5px;}

/* ── DIR CARDS (Company Directory) ──────────────────────────────────────── */
.dir-card{box-shadow:0 2px 8px rgba(0,0,0,.1);}
.dir-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.2);}

/* ── TUTORIAL OVERLAY ────────────────────────────────────────────────────── */
.tut-card{box-shadow:0 0 0 1px rgba(107,140,255,.15),0 32px 80px rgba(0,0,0,.85);}

/* ── ASSIGNMENT CARDS ────────────────────────────────────────────────────── */
.asgn-card{transition:border-color .2s,box-shadow .2s;}
.asgn-card:hover{box-shadow:0 2px 12px rgba(0,0,0,.15);}

/* ── S&P SIDEBAR ─────────────────────────────────────────────────────────── */
.market-sidebar{box-shadow:1px 0 0 var(--border),4px 0 20px rgba(0,0,0,.1);}

/* ── PREF BUTTONS ────────────────────────────────────────────────────────── */
.pref-btn.active{border-color:var(--accent);color:var(--accent);}

/* ── STUDENT PROGRESS STATS ──────────────────────────────────────────────── */
.sp-stat,.cls-stat{box-shadow:0 1px 4px rgba(0,0,0,.1);}

/* ── THEME / STYLE BUTTONS ───────────────────────────────────────────────── */
.theme-btn:hover,.theme-btn.active{
  box-shadow:0 2px 10px rgba(0,0,0,.15);
}
.gui-style-btn:hover,.gui-style-btn.active{
  box-shadow:0 4px 16px rgba(0,0,0,.2);
}

/* ── OVERVIEW HERO STATS (Auth) ──────────────────────────────────────────── */
.auth-stats{gap:28px;padding:8px 0;}
.auth-stat-label{font-size:.62rem;letter-spacing:1.5px;}

/* ── PAGE SPACING ────────────────────────────────────────────────────────── */
.page{padding:32px 0 100px;}

/* ── MARKET SEARCH FOCUS ─────────────────────────────────────────────────── */
.market-search-input:focus{
  box-shadow:0 0 0 3px rgba(0,255,136,.1),0 4px 20px rgba(0,0,0,.2);
}

/* ── PANEL BODY BASE ─────────────────────────────────────────────────────── */
.panel-body{padding:22px;}

/* ── SECTION GAP ─────────────────────────────────────────────────────────── */
.section-gap{margin-bottom:36px;}

/* ── LINK COLORS ─────────────────────────────────────────────────────────── */
.modal-note a{color:var(--accent3);text-decoration:none;border-bottom:1px solid rgba(107,140,255,.3);}
.modal-note a:hover{border-color:var(--accent3);}

/* ── GAME PANEL MIN HEIGHT ───────────────────────────────────────────────── */
.mg-game-panel{min-height:360px;}

/* ── TRIVIA Q STYLING ────────────────────────────────────────────────────── */
.trivia-q{font-size:.9rem;line-height:1.65;font-weight:600;}
.trivia-opts{gap:10px;}
.trivia-btn{padding:12px 16px;font-size:.8rem;}

/* ── SCORE LABEL ─────────────────────────────────────────────────────────── */
.panel-meta{font-size:.68rem;letter-spacing:.5px;}

/* ── LEARN PAGE STEPS ────────────────────────────────────────────────────── */
.tut-step{padding:24px 0;}
.tut-num{font-size:2rem;color:rgba(107,140,255,.3);}
.tut-content h3{font-size:1rem;font-weight:700;margin-bottom:6px;}
.tut-content p{font-size:.82rem;line-height:1.8;}

/* ── ANALYTICS TABLE ─────────────────────────────────────────────────────── */
.a-table th{font-size:.67rem;letter-spacing:1px;}
.a-table td{font-size:.7rem;padding:8px 8px;}

/* ── EMPTY STATE ─────────────────────────────────────────────────────────── */
.empty-state{
  padding:36px 20px;font-size:.75rem;line-height:2;
  border:1px dashed rgba(255,255,255,.06);border-radius:10px;
}

/* ── CLASSROOM JOIN CODE ─────────────────────────────────────────────────── */
.join-code-display{padding:16px 0 0;}

/* ── SP500 ITEM NAME ELLIPSIS ────────────────────────────────────────────── */
.sp500-item-name{max-width:170px;}

/* ── MCS MATCHUP ─────────────────────────────────────────────────────────── */
.mcs-matchup{gap:20px;}
.mcs-co-name{font-size:.82rem;line-height:1.4;}

/* ── CHART CONTROLS ──────────────────────────────────────────────────────── */
.chart-type-btn.active,.chart-range-btn.active{
  box-shadow:0 2px 8px rgba(0,255,136,.2);
}

/* ── GUI STYLE PREVIEW ENHANCEMENT ──────────────────────────────────────── */
.gui-style-preview{border-radius:6px 6px 0 0;height:56px;}
.gui-style-btn.active .gui-style-name{color:var(--accent);}

/* ── AVATAR PICKER ───────────────────────────────────────────────────────── */
.avatar-opt{transition:border-color .15s,transform .15s,box-shadow .15s;}
.avatar-opt:hover{box-shadow:0 4px 12px rgba(0,0,0,.2);}
.avatar-opt.selected{box-shadow:0 0 0 2px rgba(107,140,255,.3);}

/* End VISUAL OVERHAUL v2 */
