:root{--bg0:#080c14;--bg1:#0a0e17;--bg2:#111827;--bg3:#151c2c;--bg4:#1a2235;--bg5:#0f1520;--brd:#1e2a3a;--brd2:#2a3a4e;--t1:#e2e8f0;--t2:#94a3b8;--t3:#64748b;--cyan:#22d3ee;--amber:#f59e0b;--grn:#10b981;--red:#ef4444;--blue:#3b82f6;--purple:#8b5cf6;--pink:#ec4899}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Consolas','Monaco','Courier New',monospace;background:var(--bg1);color:var(--t1);font-size:13px}
.ticker-bar{background:var(--bg2);border-bottom:1px solid var(--brd);padding:6px 16px;overflow:hidden;white-space:nowrap;height:28px}
.ticker-content{display:inline-block;animation:ts 60s linear infinite}
.ticker-item{display:inline-block;margin-right:32px;font-size:12px}
@keyframes ts{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.top-nav{display:flex;align-items:center;justify-content:space-between;background:var(--bg2);border-bottom:1px solid var(--brd);padding:0 16px;height:44px}
.nav-brand{display:flex;align-items:center;gap:8px}
.nav-brand .logo{color:var(--cyan);font-weight:bold;font-size:16px;letter-spacing:2px}
.nav-brand .tag{color:var(--t3);font-size:11px}
.nav-links{display:flex;gap:4px}
.nav-links button{background:transparent;border:none;color:var(--t2);padding:8px 14px;cursor:pointer;font-family:inherit;font-size:12px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px;transition:all .15s}
.nav-links button:hover,.nav-links button.active{background:var(--bg3);color:var(--cyan)}
.nav-right{display:flex;align-items:center;gap:12px}
.sdot{width:7px;height:7px;background:var(--grn);border-radius:50%;display:inline-block;animation:p 2s infinite}
@keyframes p{0%,100%{opacity:1}50%{opacity:.4}}
.btn{padding:8px 16px;border-radius:4px;cursor:pointer;font-family:inherit;font-size:11px;font-weight:bold;text-transform:uppercase;letter-spacing:.5px;border:none;transition:opacity .15s}
.btn:hover{opacity:.85}
.broker-card{background:var(--bg3);border:1px solid var(--brd);border-radius:6px;padding:16px;cursor:pointer;transition:border-color .15s,background .15s}
.broker-card:hover{border-color:var(--cyan);background:var(--bg4)}
.broker-card-soon{opacity:.5;cursor:default}
.broker-card-soon:hover{border-color:var(--brd);background:var(--bg3)}
.broker-card-name{font-size:12px;font-weight:bold;color:var(--t1);margin-bottom:3px}
.broker-card-sub{font-size:10px;color:var(--t3);margin-bottom:6px}
.broker-card-badge{font-size:10px;font-weight:bold;letter-spacing:.3px}
.btn-cyan{background:var(--cyan);color:var(--bg0)}
.btn-red{background:var(--red);color:#fff}
.btn-outline{background:transparent;border:1px solid var(--brd);color:var(--t2)}
.btn-sm{padding:5px 10px;font-size:10px}
.view{display:none;height:calc(100vh - 148px);width:100%}
.view.active{display:flex}
.hero-band-hidden .view,.hero-band-hidden .static-view{height:calc(100vh - 96px) !important}
.static-view{display:none;height:calc(100vh - 148px);overflow-y:auto;background:var(--bg1)}
.static-view.active{display:block}
#portfolioView.active{flex-direction:column;overflow:hidden}
.hero-band{background:linear-gradient(135deg,#0a0e17 0%,#0d1825 40%,#081420 100%);border-bottom:1px solid var(--brd);padding:0;overflow:hidden;position:relative;height:52px;display:flex;align-items:center;transition:height .35s ease,opacity .35s ease,border .35s ease}
.hero-band.hidden{height:0;opacity:0;pointer-events:none;border-bottom:none}
.hero-band::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent,transparent 120px,rgba(34,211,238,.03) 120px,rgba(34,211,238,.03) 121px);pointer-events:none}
.hero-inner{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 20px;gap:16px}
.hero-left{display:flex;align-items:center;gap:16px}
.hero-tagline{font-size:12px;color:var(--t2);letter-spacing:.3px}
.hero-tagline strong{color:var(--cyan)}
.hero-pills{display:flex;gap:6px}
.hero-pill{display:inline-flex;align-items:center;gap:4px;background:rgba(34,211,238,.08);border:1px solid rgba(34,211,238,.2);border-radius:20px;padding:3px 10px;font-size:10px;color:var(--cyan);letter-spacing:.3px}
.hero-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.hero-cta{background:linear-gradient(135deg,var(--cyan),#0e9abf);color:var(--bg0);border:none;padding:6px 16px;border-radius:4px;font-family:inherit;font-size:11px;font-weight:bold;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:opacity .15s}
.hero-cta:hover{opacity:.85}
.hero-cta-secondary{background:transparent;border:1px solid rgba(34,211,238,.3);color:var(--cyan);padding:6px 14px;border-radius:4px;font-family:inherit;font-size:11px;cursor:pointer;transition:all .15s;letter-spacing:.3px}
.hero-cta-secondary:hover{border-color:var(--cyan);background:rgba(34,211,238,.05)}
/* STATIC PAGES */
.static-page{max-width:860px;margin:0 auto;padding:40px 24px 80px}
.static-page h1{font-size:26px;color:var(--cyan);letter-spacing:1px;margin-bottom:6px;text-transform:uppercase}
.static-page .page-sub{color:var(--t3);font-size:12px;margin-bottom:36px;padding-bottom:16px;border-bottom:1px solid var(--brd)}
.static-page h2{font-size:13px;color:var(--t1);text-transform:uppercase;letter-spacing:1px;margin:28px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--brd)}
.static-page p{color:var(--t2);font-size:12px;line-height:1.8;margin-bottom:12px}
.static-page ul{color:var(--t2);font-size:12px;line-height:1.8;padding-left:18px;margin-bottom:12px}
.static-page li{margin-bottom:4px}
.static-page a{color:var(--cyan);text-decoration:none}.static-page a:hover{text-decoration:underline}
/* PRICING */
.pricing-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin:24px 0}
.price-card{background:var(--bg3);border:1px solid var(--brd);border-radius:8px;padding:24px;position:relative;transition:border-color .2s}
.price-card:hover{border-color:var(--brd2)}
.price-card.featured{border-color:var(--cyan);background:linear-gradient(135deg,var(--bg3),rgba(34,211,238,.04))}
.price-card.featured::before{content:'MOST POPULAR';position:absolute;top:-1px;left:50%;transform:translateX(-50%);background:var(--cyan);color:var(--bg0);font-size:9px;font-weight:bold;letter-spacing:1px;padding:3px 12px;border-radius:0 0 6px 6px}
.price-tier{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}
.price-amount{font-size:32px;font-weight:bold;color:var(--t1);line-height:1;margin-bottom:4px}
.price-amount span{font-size:14px;color:var(--t3);font-weight:normal}
.price-period{font-size:10px;color:var(--t3);margin-bottom:20px}
.price-features{list-style:none;padding:0;margin:0 0 20px}
.price-features li{font-size:11px;color:var(--t2);padding:5px 0;border-bottom:1px solid rgba(30,42,58,.5);display:flex;align-items:center;gap:6px}
.price-features li:last-child{border-bottom:none}
.price-features li::before{content:'✓';color:var(--grn);font-size:10px;flex-shrink:0}
.price-features li.no::before{content:'✕';color:var(--t3)}
.price-features li.no{color:var(--t3)}
.price-btn{width:100%;padding:10px;border-radius:4px;font-family:inherit;font-size:11px;font-weight:bold;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:.15s;border:1px solid var(--brd);background:transparent;color:var(--t2)}
.price-btn:hover{border-color:var(--cyan);color:var(--cyan)}
.price-btn.featured-btn{background:var(--cyan);color:var(--bg0);border-color:var(--cyan)}
.price-btn.featured-btn:hover{opacity:.85}
@keyframes priceFlashPos{0%{background:rgba(16,185,129,.25)}100%{background:transparent}}
@keyframes priceFlashNeg{0%{background:rgba(239,68,68,.25)}100%{background:transparent}}
.flash-pos td{animation:priceFlashPos .6s ease-out}
.flash-neg td{animation:priceFlashNeg .6s ease-out}
/* ROADMAP KANBAN */
.roadmap-kanban-wrap{display:flex;flex-direction:column;height:100%;padding:16px 20px 0;overflow:hidden}
.roadmap-kanban-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-shrink:0}
.roadmap-kanban{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;flex:1;overflow:hidden;min-height:0}
.rk-col{display:flex;flex-direction:column;background:var(--bg2);border:1px solid var(--brd);border-radius:6px;overflow:hidden;min-height:0}
.rk-col-header{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--brd);flex-shrink:0}
.rk-col-icon{font-size:12px;font-weight:bold}
.rk-col-title{font-size:11px;font-weight:bold;text-transform:uppercase;letter-spacing:1px;flex:1}
.rk-col-count{font-size:10px;font-weight:bold;padding:2px 7px;border-radius:10px;background:var(--bg4);color:var(--t3)}
.rk-done .rk-col-icon,.rk-done .rk-col-title{color:var(--grn)}
.rk-done{border-bottom-color:rgba(16,185,129,.2)}
.rk-now .rk-col-icon,.rk-now .rk-col-title{color:var(--cyan)}
.rk-now{border-bottom-color:rgba(34,211,238,.2)}
.rk-planned .rk-col-icon,.rk-planned .rk-col-title{color:var(--purple)}
.rk-planned{border-bottom-color:rgba(139,92,246,.2)}
.rk-cards{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:var(--brd) transparent}
.rk-cards::-webkit-scrollbar{width:4px}
.rk-cards::-webkit-scrollbar-track{background:transparent}
.rk-cards::-webkit-scrollbar-thumb{background:var(--brd);border-radius:2px}
.rk-card{background:var(--bg3);border:1px solid var(--brd);border-radius:5px;padding:10px 12px;border-left-width:3px}
.rk-card-done{border-left-color:var(--grn)}
.rk-card-now{border-left-color:var(--cyan)}
.rk-card-planned{border-left-color:var(--purple)}
.rk-card-title{font-size:11px;font-weight:bold;color:var(--t1);margin-bottom:4px;line-height:1.3}
.rk-card-desc{font-size:10px;color:var(--t3);line-height:1.5;margin-bottom:6px}
.rk-card-footer{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.rk-ver{font-size:9px;color:var(--t3);margin-left:auto;letter-spacing:.3px}
/* ABOUT TEAM */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}
.about-stat{background:var(--bg3);border:1px solid var(--brd);border-radius:6px;padding:20px;text-align:center}
.about-stat-num{font-size:28px;font-weight:bold;color:var(--cyan)}
.about-stat-label{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}
/* IMAGE NEWS TICKER */
.news-ticker-wrap{background:var(--bg2);border-bottom:1px solid var(--brd);height:36px;overflow:hidden;position:relative}
.news-ticker-wrap::before{content:'NEWS';position:absolute;left:0;top:0;bottom:0;background:var(--cyan);color:var(--bg0);font-size:9px;font-weight:bold;letter-spacing:1px;width:52px;display:flex;align-items:center;justify-content:center;z-index:2}
.news-ticker-track{display:inline-flex;animation:nt 90s linear infinite;padding-left:60px}
.news-ticker-track:hover{animation-play-state:paused}
.news-ticker-item{display:inline-flex;align-items:center;gap:8px;padding:0 24px;white-space:nowrap;border-right:1px solid var(--brd);height:36px}
.news-ticker-img{width:24px;height:24px;border-radius:3px;object-fit:cover;background:var(--bg4);flex-shrink:0}
.news-ticker-source{font-size:9px;color:var(--cyan);text-transform:uppercase;letter-spacing:.5px}
.news-ticker-text{font-size:11px;color:var(--t2);max-width:320px;overflow:hidden;text-overflow:ellipsis}
.news-ticker-time{font-size:9px;color:var(--t3)}
@keyframes nt{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
/* IMAGE NEWS CARD GRID (replaces text-only news) */
.news-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.news-card{background:var(--bg4);border:1px solid var(--brd);border-radius:6px;overflow:hidden;cursor:pointer;transition:border-color .15s;text-decoration:none;display:block}
.news-card:hover{border-color:var(--brd2)}
.news-card-img{width:100%;height:100px;object-fit:cover;background:linear-gradient(135deg,var(--bg5),var(--bg3));display:flex;align-items:center;justify-content:center;color:var(--t3);font-size:10px;position:relative;overflow:hidden}
.news-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.news-card-img .img-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;background:linear-gradient(135deg,var(--bg5),#0d1825)}
.news-card-img .img-cat{position:absolute;top:6px;left:6px;background:rgba(0,0,0,.7);color:var(--cyan);font-size:8px;font-weight:bold;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:3px}
.news-card-body{padding:8px 10px}
.news-card-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.news-card-source{font-size:9px;color:var(--cyan);font-weight:bold;text-transform:uppercase;letter-spacing:.5px}
.news-card-time{font-size:9px;color:var(--t3)}
.news-card-title{font-size:11px;color:var(--t1);line-height:1.45;font-weight:500}
.news-card-title:hover{color:var(--cyan)}
/* DASHBOARD */
.dash-content{flex:1;padding:12px;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr 1fr;grid-auto-rows:min-content;gap:12px;align-content:start}
.sidebar{width:280px;background:var(--bg2);border-left:1px solid var(--brd);overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}
/* FEAR & GREED GAUGE */
.fg-gauge-wrap{padding:10px 8px 6px;text-align:center}
.fg-gauge-svg{display:block;margin:0 auto}
.fg-gauge-score{font-size:28px;font-weight:bold;line-height:1;margin-top:4px}
.fg-gauge-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-top:2px}
/* ENHANCED MOVERS */
.mover-item{display:flex;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid rgba(30,42,58,.3)}
.mover-item:last-child{border-bottom:none}
.mover-bar{height:4px;border-radius:2px;flex:1;max-width:60px;opacity:.7}
/* MARKET STATUS */
.market-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px 0}
.market-item{display:flex;align-items:center;gap:6px;padding:5px 6px;background:var(--bg4);border-radius:4px;font-size:11px}
.market-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.market-dot.open{background:var(--grn);box-shadow:0 0 6px rgba(16,185,129,.5);animation:p 2s infinite}
.market-dot.closed{background:var(--t3)}
.market-dot.pre{background:var(--amber)}
.market-name{color:var(--t2);font-size:10px}
.market-state{font-size:9px;font-weight:bold;text-transform:uppercase;letter-spacing:.3px}
/* CRYPTO DOMINANCE */
.dom-bar{height:8px;border-radius:4px;overflow:hidden;display:flex;margin:8px 0 4px;gap:1px}
.dom-seg{height:100%;transition:width .4s ease}
.dom-legend{display:flex;flex-wrap:wrap;gap:6px}
.dom-leg-item{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--t2)}
.dom-leg-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
/* PORTFOLIO MINI */
.port-mini{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.port-mini-stat{background:var(--bg4);border-radius:4px;padding:8px;text-align:center}
.port-mini-val{font-size:14px;font-weight:bold;color:var(--t1)}
.port-mini-lbl{font-size:9px;color:var(--t3);text-transform:uppercase;letter-spacing:.4px;margin-top:2px}
/* VISUAL CALENDAR */
.cal-item{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid rgba(30,42,58,.4);font-size:11px}
.cal-item:last-child{border-bottom:none}
.cal-impact{width:3px;height:32px;border-radius:2px;flex-shrink:0}
.cal-time{color:var(--amber);font-size:10px;width:36px;flex-shrink:0;font-weight:600}
.cal-country{width:24px;flex-shrink:0;font-size:9px;font-weight:bold;color:var(--cyan)}
.cal-event{flex:1;color:var(--t1);font-size:11px}
.cal-values{display:flex;gap:6px;flex-shrink:0;font-size:10px;text-align:right}
.cal-actual{font-weight:bold}
.cal-forecast{color:var(--t3)}
.cal-prev{color:var(--t3)}
@media(max-width:1100px){.dash-content{grid-template-columns:1fr 1fr}.sidebar{width:240px}.span-3{grid-column:span 2}.pg{grid-template-columns:1fr}.pg.tri,.pg.quad{grid-template-columns:1fr 1fr}}
@media(max-width:768px){.dash-content{grid-template-columns:1fr}.sidebar{display:none}.span-2,.span-3{grid-column:span 1}.pg.tri,.pg.quad{grid-template-columns:1fr}}
/* CARDS */
.card{background:var(--bg3);border:1px solid var(--brd);border-radius:6px;overflow:hidden}
.card-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg4);border-bottom:1px solid var(--brd)}
.card-header .title{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:bold;text-transform:uppercase;letter-spacing:1px;color:var(--t2)}
.card-header .title .dot{width:5px;height:5px;border-radius:50%}
.rbtn{background:none;border:none;color:var(--t3);cursor:pointer;font-size:14px;padding:2px}
.rbtn:hover{color:var(--cyan)}
.card-body{padding:8px 12px}
/* TABLES */
.dt{width:100%;border-collapse:collapse}
.dt th{text-align:left;color:var(--t3);font-size:10px;font-weight:normal;text-transform:uppercase;letter-spacing:.5px;padding:4px 6px;border-bottom:1px solid var(--brd);position:sticky;top:0;background:var(--bg3)}
.dt th:not(:first-child){text-align:right}
.dt td{padding:5px 6px;border-bottom:1px solid rgba(30,42,58,.5);font-size:12px}
.dt td:not(:first-child){text-align:right}
.dt tr:last-child td{border-bottom:none}
.dt tr:hover{background:rgba(34,211,238,.03)}
.sym{color:var(--t1);font-weight:600}
.pos{color:var(--grn)}.neg{color:var(--red)}
/* STAT */
.stat-box{padding:16px}
.stat-label{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.stat-value{font-size:24px;font-weight:bold}
.stat-sub{font-size:12px;margin-top:2px}
/* FORMS */
.fg{display:flex;flex-direction:column;gap:3px}
.fg label{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.5px}
.fg input,.fg select{background:var(--bg5);border:1px solid var(--brd);color:var(--t1);padding:8px 10px;border-radius:4px;font-family:inherit;font-size:12px;outline:none}
.fg input:focus,.fg select:focus{border-color:var(--cyan)}
.search-box{display:flex;gap:8px;margin-bottom:8px}
.search-box input{flex:1;background:var(--bg5);border:1px solid var(--brd);color:var(--t1);padding:8px 12px;border-radius:4px;font-family:inherit;font-size:13px;outline:none}
.search-box input:focus{border-color:var(--cyan)}
.search-box button{background:var(--cyan);color:var(--bg0);border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-family:inherit;font-weight:bold;font-size:12px}
/* TAGS */
.tag-badge{display:inline-block;padding:2px 6px;border-radius:3px;font-size:9px;font-weight:bold;text-transform:uppercase;letter-spacing:.5px}
.tag-stock{background:rgba(59,130,246,.2);color:var(--blue)}
.tag-etf{background:rgba(139,92,246,.2);color:var(--purple)}
.tag-crypto{background:rgba(245,158,11,.2);color:var(--amber)}
.tag-fund{background:rgba(16,185,129,.2);color:var(--grn)}
.tag-bond{background:rgba(148,163,184,.2);color:var(--t2)}
.tag-commodity{background:rgba(34,211,238,.2);color:var(--cyan)}
.tag-forex{background:rgba(236,72,153,.2);color:var(--pink)}
.tag-other{background:rgba(100,116,139,.2);color:var(--t3)}
/* PORTFOLIO */
.port-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--brd);background:var(--bg2);flex-shrink:0;flex-wrap:wrap;gap:8px}
.port-header h2{font-size:14px;color:var(--cyan);letter-spacing:1px;text-transform:uppercase;white-space:nowrap}
.port-body{flex:1;overflow-y:auto;padding:16px;width:100%}
.pg{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.pg.tri{grid-template-columns:1fr 1fr 1fr}
.pg.quad{grid-template-columns:1fr 1fr 1fr 1fr}
.tabs{display:flex;gap:2px;margin-bottom:12px;flex-wrap:wrap}
.tab-btn{background:var(--bg3);border:1px solid var(--brd);color:var(--t2);padding:6px 14px;cursor:pointer;font-family:inherit;font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-radius:4px}
.tab-btn.active{background:var(--cyan);color:var(--bg0);border-color:var(--cyan);font-weight:bold}
.tp{display:none}.tp.active{display:block}
.holding-actions{display:flex;gap:4px}
.holding-actions button{background:none;border:none;cursor:pointer;font-size:13px;padding:2px 4px}
.holding-actions .eb{color:var(--cyan)}.holding-actions .db{color:var(--red)}
.holding-actions button:hover{opacity:.7}
.chart-container{position:relative;height:200px;margin-top:8px}
.chart-container.tall{height:280px}
.chart-container.short{height:120px}
.span-2{grid-column:span 2}.span-3{grid-column:span 3}
/* SPARKLINE */
.spark-cell{width:80px}
.spark-canvas{width:80px;height:28px}
/* RANGE BAR */
.range-bar{display:flex;align-items:center;gap:4px;font-size:10px}
.range-track{flex:1;height:4px;background:var(--brd);border-radius:2px;position:relative}
.range-fill{position:absolute;height:100%;background:var(--cyan);border-radius:2px}
.range-marker{position:absolute;width:2px;height:10px;background:var(--amber);top:-3px;border-radius:1px}
/* LIVE BADGE */
.live-badge{display:inline-flex;align-items:center;gap:4px;font-size:9px;color:var(--grn);text-transform:uppercase;letter-spacing:.5px}
.live-badge .ldot{width:5px;height:5px;background:var(--grn);border-radius:50%;animation:p 1.5s infinite}
/* TICKER SEARCH */
.ticker-search-wrap{position:relative}
.ticker-results{position:absolute;top:100%;left:0;right:0;background:var(--bg2);border:1px solid var(--brd);border-radius:0 0 4px 4px;max-height:200px;overflow-y:auto;z-index:10;display:none}
.ticker-results.show{display:block}
.ticker-result{padding:8px 12px;cursor:pointer;font-size:12px;display:flex;justify-content:space-between;border-bottom:1px solid rgba(30,42,58,.3)}
.ticker-result:hover{background:var(--bg4)}
.ticker-result .tr-sym{font-weight:bold;color:var(--cyan)}
.ticker-result .tr-name{color:var(--t2);font-size:11px}
/* MODAL */
.mo{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:1000;align-items:center;justify-content:center}
.mo.visible{display:flex}
.modal{background:var(--bg3);border:1px solid var(--brd);border-radius:8px;padding:24px;width:460px;max-width:92vw;max-height:90vh;overflow-y:auto}
.modal h2{color:var(--cyan);font-size:16px;margin-bottom:14px;letter-spacing:1px}
.modal label{display:block;color:var(--t2);font-size:10px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px;margin-top:10px}
.modal input,.modal select{width:100%;background:var(--bg5);border:1px solid var(--brd);color:var(--t1);padding:9px 12px;border-radius:4px;font-family:inherit;font-size:13px;outline:none}
.modal input:focus,.modal select:focus{border-color:var(--cyan)}
.modal .btn-row{display:flex;gap:8px;margin-top:16px}
.modal .btn-row .btn{flex:1;padding:10px}
.err-msg{color:var(--red);font-size:11px;margin-top:6px;display:none}
.price-preview{background:var(--bg2);border:1px solid var(--brd);border-radius:4px;padding:10px 12px;margin-top:10px;display:none}
.price-preview.show{display:block}
.pp-price{font-size:20px;font-weight:bold;color:var(--cyan)}
.pp-change{font-size:12px;margin-top:2px}
.pp-info{font-size:10px;color:var(--t3);margin-top:4px}
.toggle-link{display:block;text-align:center;margin-top:12px;color:var(--cyan);font-size:11px;cursor:pointer;background:none;border:none;font-family:inherit}
.loading{color:var(--t3);font-size:11px;padding:12px 0;text-align:center}
.status-bar{display:flex;align-items:center;justify-content:space-between;padding:4px 16px;background:var(--bg2);border-top:1px solid var(--brd);font-size:10px;color:var(--t3);position:fixed;bottom:0;left:0;right:0;height:24px;z-index:100}
.status-bar .left,.status-bar .right{display:flex;gap:16px;align-items:center}
.quote-display{display:none}.quote-display.visible{display:block}
.quote-price{font-size:22px;font-weight:bold;margin:6px 0 4px}
.quote-details{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.quote-detail{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid rgba(30,42,58,.5)}
.quote-detail .label{color:var(--t3);font-size:11px}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg1)}::-webkit-scrollbar-thumb{background:var(--brd);border-radius:3px}
@media(max-width:1100px){.dash-content{grid-template-columns:1fr 1fr}.sidebar{width:240px}.span-3{grid-column:span 2}.pg{grid-template-columns:1fr}.pg.tri,.pg.quad{grid-template-columns:1fr 1fr}}
@media(max-width:768px){.dash-content{grid-template-columns:1fr}.sidebar{display:none}.span-2,.span-3{grid-column:span 1}.pg.tri,.pg.quad{grid-template-columns:1fr}}

/* CUSTOMISE DASHBOARD */
.customise-modal{width:640px;max-width:95vw}
.customise-modal h2{color:var(--cyan);font-size:16px;margin-bottom:4px;letter-spacing:1px}
.customise-modal .subtitle{color:var(--t3);font-size:11px;margin-bottom:16px}
.customise-section{margin-bottom:20px}
.customise-section h3{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--brd)}
.panel-list{display:flex;flex-direction:column;gap:4px}
.panel-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg4);border:1px solid var(--brd);border-radius:4px;cursor:grab;transition:border-color .15s,background .15s;user-select:none}
.panel-item:active{cursor:grabbing}
.panel-item.dragging{opacity:.4;border-color:var(--cyan)}
.panel-item.drag-over{border-color:var(--cyan);background:var(--bg2);border-style:dashed}
.panel-drag-handle{color:var(--t3);font-size:14px;cursor:grab;flex-shrink:0;letter-spacing:-2px}
.panel-toggle{position:relative;display:inline-block;width:32px;height:18px;flex-shrink:0}
.panel-toggle input{opacity:0;width:0;height:0}
.panel-toggle-slider{position:absolute;inset:0;background:var(--brd);border-radius:9px;transition:.2s;cursor:pointer}
.panel-toggle-slider:before{content:'';position:absolute;width:12px;height:12px;left:3px;bottom:3px;background:var(--t3);border-radius:50%;transition:.2s}
.panel-toggle input:checked+.panel-toggle-slider{background:var(--cyan)}
.panel-toggle input:checked+.panel-toggle-slider:before{transform:translateX(14px);background:var(--bg0)}
.panel-item-info{flex:1;min-width:0}
.panel-item-name{font-size:12px;font-weight:600;color:var(--t1)}
.panel-item-desc{font-size:10px;color:var(--t3);margin-top:1px}
.panel-item-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.panel-item.disabled .panel-item-name{color:var(--t3)}
.panel-sidebar-list{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.sidebar-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg4);border:1px solid var(--brd);border-radius:4px;cursor:pointer;transition:border-color .15s}
.sidebar-item:hover{border-color:var(--brd2)}
.sidebar-item.active{border-color:var(--cyan)}
.sidebar-item-check{width:14px;height:14px;border:1px solid var(--brd2);border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:9px;flex-shrink:0;transition:.15s}
.sidebar-item.active .sidebar-item-check{background:var(--cyan);border-color:var(--cyan);color:var(--bg0)}
.sidebar-item-name{font-size:11px;color:var(--t2)}
.customise-theme{display:flex;gap:8px;flex-wrap:wrap}
.theme-swatch{width:40px;height:40px;border-radius:6px;cursor:pointer;border:2px solid transparent;transition:.15s;position:relative}
.theme-swatch.active{border-color:var(--cyan)}
.theme-swatch:after{content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;opacity:0;transition:.15s}
.theme-swatch.active:after{opacity:1}
.customise-preset{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.preset-btn{background:var(--bg4);border:1px solid var(--brd);color:var(--t2);padding:5px 12px;border-radius:4px;cursor:pointer;font-family:inherit;font-size:11px;transition:.15s}
.preset-btn:hover{border-color:var(--cyan);color:var(--cyan)}
/* ECONOMIC CALENDAR */
.cal-item{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid rgba(30,42,58,.4);font-size:11px}
.cal-item:last-child{border-bottom:none}
.cal-impact{width:4px;height:28px;border-radius:2px;flex-shrink:0}
.cal-time{color:var(--amber);font-size:10px;width:36px;flex-shrink:0}
.cal-country{width:26px;flex-shrink:0;font-size:10px}
.cal-event{flex:1;color:var(--t1)}
.cal-values{display:flex;gap:8px;flex-shrink:0;font-size:10px;text-align:right}
.cal-actual{font-weight:bold}
.cal-forecast{color:var(--t3)}
.cal-prev{color:var(--t3)}
/* SECTOR HEATMAP */
.heatmap-wrap{display:grid;gap:3px;padding:4px 0}
.hm-sector{padding:8px;border-radius:4px;cursor:pointer;transition:opacity .15s;min-height:56px;display:flex;flex-direction:column;justify-content:center}
.hm-sector:hover{opacity:.85}
.hm-sector-name{font-size:10px;font-weight:bold;color:rgba(255,255,255,.9);text-transform:uppercase;letter-spacing:.3px}
.hm-sector-chg{font-size:14px;font-weight:bold;color:#fff;margin:2px 0}
.hm-sector-stocks{font-size:9px;color:rgba(255,255,255,.6)}
/* PRO GATE & UPGRADE */
.pro-badge{display:inline-flex;align-items:center;gap:3px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#000;font-size:9px;font-weight:bold;letter-spacing:.5px;padding:2px 7px;border-radius:10px;text-transform:uppercase;vertical-align:middle;margin-left:4px}
.upgrade-modal{width:480px}
.upgrade-modal h2{color:var(--amber);margin-bottom:6px}
.upgrade-tiers{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.upgrade-tier{background:var(--bg4);border:1px solid var(--brd);border-radius:6px;padding:16px;cursor:pointer;transition:.15s;text-align:center}
.upgrade-tier:hover,.upgrade-tier.selected{border-color:var(--amber);background:rgba(245,158,11,.08)}
.upgrade-tier-name{font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.upgrade-tier-price{font-size:26px;font-weight:bold;color:var(--t1)}
.upgrade-tier-price span{font-size:12px;color:var(--t3);font-weight:normal}
.upgrade-tier-note{font-size:10px;color:var(--grn);margin-top:4px}
.upgrade-features{list-style:none;padding:0;margin:0 0 16px;display:grid;grid-template-columns:1fr 1fr;gap:4px}
.upgrade-features li{font-size:11px;color:var(--t2);display:flex;align-items:center;gap:5px}
.upgrade-features li::before{content:'✓';color:var(--grn);font-size:10px;flex-shrink:0}
.limit-bar{background:var(--bg4);border:1px solid var(--brd);border-radius:6px;padding:12px 14px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.limit-bar-label{font-size:11px;color:var(--t2)}
.limit-bar-track{flex:1;height:5px;background:var(--brd);border-radius:3px;overflow:hidden}
.limit-bar-fill{height:100%;border-radius:3px;transition:width .4s ease;background:var(--grn)}
.limit-bar-fill.near{background:var(--amber)}
.limit-bar-fill.full{background:var(--red)}
.limit-bar-count{font-size:12px;font-weight:bold;flex-shrink:0}
/* ACCOUNT PAGE */
.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.account-card{background:var(--bg3);border:1px solid var(--brd);border-radius:6px;padding:20px}
.account-card h3{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:1px;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--brd)}
.account-field{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid rgba(30,42,58,.4);font-size:12px}
.account-field:last-child{border-bottom:none}
.account-field-label{color:var(--t3)}
.account-field-value{color:var(--t1);font-weight:500}
.account-field-value.pro{color:var(--amber);font-weight:bold}
.account-field-value.free{color:var(--t2)}
.sub-status{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:10px;font-size:10px;font-weight:bold;text-transform:uppercase;letter-spacing:.5px}
.sub-status.active{background:rgba(16,185,129,.15);color:var(--grn);border:1px solid rgba(16,185,129,.3)}
.sub-status.free{background:rgba(100,116,139,.15);color:var(--t3);border:1px solid var(--brd)}
.account-btn{background:var(--bg4);border:1px solid var(--brd);color:var(--t2);padding:7px 14px;border-radius:4px;cursor:pointer;font-family:inherit;font-size:11px;transition:.15s;width:100%;text-align:left;margin-top:6px}
.account-btn:hover{border-color:var(--cyan);color:var(--cyan)}
.account-btn.danger:hover{border-color:var(--red);color:var(--red)}
.account-btn.upgrade{background:linear-gradient(135deg,rgba(245,158,11,.15),rgba(217,119,6,.1));border-color:rgba(245,158,11,.4);color:var(--amber)}
.account-btn.upgrade:hover{background:linear-gradient(135deg,rgba(245,158,11,.25),rgba(217,119,6,.2))}

/* v5.9 — BULK DELETE BAR + MULTI-SELECT */
.bulk-delete-bar{display:flex;align-items:center;gap:10px;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.3);padding:8px 12px;border-radius:5px;margin-bottom:10px;font-size:12px;color:var(--t1)}
.bulk-delete-bar strong{color:var(--red);font-size:14px}
.holding-select{cursor:pointer;width:14px;height:14px;accent-color:var(--cyan)}

/* v5.9 — CALENDAR DATE STAMP */
.cal-date{flex-shrink:0}

/* v5.9 — SYMBOL DETAIL MODAL — quote-details inside modal */
#symbolDetailBody .quote-detail{background:var(--bg5);border:1px solid var(--brd);border-radius:4px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}
#symbolDetailBody .quote-detail .label{font-size:9px;color:var(--t3);text-transform:uppercase;letter-spacing:.5px}
#symbolDetailBody .quote-detail .value{font-size:13px;color:var(--t1);font-weight:600}

/* v5.9 — Make ticker text in tables look clickable */
td.sym span[onclick]:hover{text-decoration:underline;text-underline-offset:2px}

/* v5.10 — Clickable calendar event rows (carried forward in v5.11) */
.cal-item-link{text-decoration:none;color:inherit;display:block}
.cal-item-link:hover .cal-item{background:rgba(34,211,238,.06)}
.cal-item-link:hover .cal-event{color:var(--cyan)}
.cal-item-link{cursor:pointer}

/* v5.11 — Dividends tab styles */
.div-kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
@media (max-width: 900px){ .div-kpi-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width: 480px){ .div-kpi-grid{grid-template-columns:1fr} }

.freq-badge{display:inline-block;padding:2px 7px;border-radius:3px;font-size:9px;font-weight:bold;letter-spacing:.4px;text-transform:uppercase;border:1px solid transparent}
.freq-badge.freq-m{background:rgba(16,185,129,.14);color:var(--grn);border-color:rgba(16,185,129,.3)}
.freq-badge.freq-q{background:rgba(34,211,238,.14);color:var(--cyan);border-color:rgba(34,211,238,.3)}
.freq-badge.freq-sa{background:rgba(139,92,246,.14);color:var(--purple);border-color:rgba(139,92,246,.3)}
.freq-badge.freq-a{background:rgba(245,158,11,.14);color:var(--amber);border-color:rgba(245,158,11,.3)}
.freq-badge.freq-i{background:rgba(148,163,184,.14);color:var(--t2);border-color:rgba(148,163,184,.3)}

/* Compact table variant for upcoming payments — slightly tighter row padding */
table.dt.compact td, table.dt.compact th{padding:5px 8px}
