*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
::-webkit-scrollbar{width:4px;height:4px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--bm);border-radius:4px;}
::-webkit-scrollbar-thumb:hover{background:var(--bs);}
::-webkit-scrollbar-corner{background:transparent;}
:root{
  --bg:#fff;--bg2:#f7f7f5;--bg3:#efefec;
  --tx:#1a1a1a;--tx2:#6b6b6b;--tx3:#9a9a9a;
  --bl:rgba(0,0,0,.08);--bm:rgba(0,0,0,.14);--bs:rgba(0,0,0,.22);
  --r:8px;--rl:12px;
  --pos:#2d7a4f;--neg:#b84040;--acc:#185fa5;
  --f:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
}
@media(prefers-color-scheme:dark){:root{
  --bg:#1c1c1e;--bg2:#2c2c2e;--bg3:#3a3a3c;
  --tx:#f2f2f7;--tx2:#aeaeb2;--tx3:#636366;
  --bl:rgba(255,255,255,.08);--bm:rgba(255,255,255,.14);--bs:rgba(255,255,255,.22);
  --pos:#4ade80;--neg:#f87171;--acc:#60a5fa;
}}
html,body{height:100%;}
body{font-family:var(--f);font-size:14px;color:var(--tx);background:var(--bg2);line-height:1.5;}
.app{max-width:1440px;margin:0 auto;background:var(--bg);min-height:100vh;border-left:.5px solid var(--bl);border-right:.5px solid var(--bl);}

/* TOPBAR */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:.5px solid var(--bl);flex-wrap:wrap;gap:10px;}
.topbar-left{display:flex;flex-direction:column;gap:2px;}
.topbar-title{font-size:18px;font-weight:600;letter-spacing:-.3px;}
.price-status{font-size:11px;color:var(--tx3);min-height:14px;}
.topbar-right{display:flex;align-items:center;gap:14px;}
.btn-settings{padding:6px 12px;font-size:12px;font-family:var(--f);background:none;border:.5px solid var(--bm);border-radius:var(--r);cursor:pointer;color:var(--tx2);}
.btn-settings:hover{background:var(--bg2);}
.nw-chip{display:flex;flex-direction:column;align-items:flex-end;}
.nw-chip .lbl{font-size:10px;color:var(--tx2);text-transform:uppercase;letter-spacing:.6px;font-weight:500;}
.nw-chip .val{font-size:24px;font-weight:600;}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:100;display:flex;align-items:center;justify-content:center;}
.modal-box{background:var(--bg);border-radius:var(--rl);padding:28px;width:440px;max-width:90vw;border:.5px solid var(--bm);}
.modal-title{font-size:17px;font-weight:600;margin-bottom:8px;}
.modal-desc{font-size:13px;color:var(--tx2);margin-bottom:16px;line-height:1.6;}
.modal-desc a{color:var(--acc);}
.modal-input{width:100%;padding:10px 14px;font-size:14px;font-family:var(--f);border:.5px solid var(--bm);border-radius:var(--r);background:var(--bg2);color:var(--tx);outline:none;margin-bottom:14px;}
.modal-input:focus{border-color:var(--bs);}
.modal-actions{display:flex;gap:10px;}
.api-key-status{margin-top:10px;font-size:13px;color:var(--pos);font-weight:500;min-height:18px;}
.hidden{display:none!important;}

/* TABS */
.tabs{display:flex;border-bottom:.5px solid var(--bl);padding:0 24px;position:sticky;top:0;z-index:10;background:var(--bg);overflow-x:auto;}
.tab{padding:11px 18px;font-size:13px;font-family:var(--f);cursor:pointer;border:none;border-bottom:2px solid transparent;color:var(--tx2);background:none;white-space:nowrap;}
.tab:hover{color:var(--tx);}
.tab.active{color:var(--tx);border-bottom-color:var(--tx);font-weight:600;}

/* PANES */
.pane{display:none;padding:24px;}
.pane.active{display:block;}
.pane-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-bottom:14px;flex-wrap:wrap;}

/* SUMMARY CARDS */
.sum-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:20px;}
.mc{background:var(--bg2);border-radius:var(--r);padding:14px 16px;}
.mc .ml{font-size:10px;color:var(--tx2);text-transform:uppercase;letter-spacing:.5px;font-weight:500;margin-bottom:4px;}
.mc .mv{font-size:20px;font-weight:600;}
.mc .mv.pos{color:var(--pos);}.mc .mv.neg{color:var(--neg);}

/* BUTTONS */
.addbtn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-family:var(--f);border:.5px solid var(--bm);border-radius:var(--r);background:none;cursor:pointer;color:var(--tx2);transition:all .15s;margin-top:8px;}
.addbtn:hover{background:var(--bg2);color:var(--tx);}
.plus{font-size:16px;line-height:1;}
.svbtn{padding:5px 14px;background:var(--tx);color:var(--bg);border:none;border-radius:4px;font-size:12px;font-weight:600;font-family:var(--f);cursor:pointer;}
.svbtn:hover{opacity:.8;}
.cxbtn{padding:5px 10px;background:none;border:.5px solid var(--bm);border-radius:4px;font-size:12px;font-family:var(--f);cursor:pointer;color:var(--tx2);margin-left:4px;}
.delbtn{background:none;border:none;cursor:pointer;color:var(--tx3);font-size:16px;padding:2px 6px;border-radius:3px;}
.delbtn:hover{background:#fcebeb;color:#a32d2d;}
.btn-secondary{padding:7px 14px;font-size:12px;font-family:var(--f);background:none;border:.5px solid var(--bm);border-radius:var(--r);cursor:pointer;color:var(--tx2);}
.btn-secondary:hover{background:var(--bg2);}
.btn-save-proj{display:inline-flex;align-items:center;padding:9px 18px;font-size:13px;font-weight:600;font-family:var(--f);background:var(--acc);color:#fff;border:none;border-radius:var(--r);cursor:pointer;}
.btn-save-proj:hover{opacity:.88;}
.btn-clear-proj{padding:8px 14px;font-size:13px;font-family:var(--f);background:none;border:.5px solid var(--bm);border-radius:var(--r);color:var(--tx2);cursor:pointer;}
.btn-clear-proj:hover{background:var(--bg2);}
.btn-fetch{padding:9px 16px;font-size:13px;font-family:var(--f);background:var(--bg2);border:.5px solid var(--bm);border-radius:var(--r);cursor:pointer;color:var(--tx);white-space:nowrap;}
.btn-fetch:hover{background:var(--bg3);}

/* PERIOD BUTTONS */
.period-btns{display:flex;gap:4px;flex-wrap:wrap;}
.pbtn{padding:4px 10px;font-size:11px;font-family:var(--f);background:none;border:.5px solid var(--bm);border-radius:20px;cursor:pointer;color:var(--tx2);}
.pbtn.active{background:var(--tx);color:var(--bg);border-color:var(--tx);}

/* SECTION LABELS */
.sec-lbl{font-size:10px;font-weight:600;color:var(--tx2);text-transform:uppercase;letter-spacing:.7px;margin-bottom:10px;margin-top:24px;}

/* TABLES */
.tbl-wrap{overflow-x:auto;border:.5px solid var(--bl);border-radius:var(--rl);margin-bottom:4px;}
table{width:100%;border-collapse:collapse;font-size:13px;}
thead th{padding:10px 14px;text-align:left;font-weight:600;font-size:10px;color:var(--tx2);white-space:nowrap;background:var(--bg2);text-transform:uppercase;letter-spacing:.4px;border-bottom:.5px solid var(--bl);}
tbody tr{border-bottom:.5px solid var(--bl);}
tbody tr:last-child{border-bottom:none;}
tbody tr:hover{background:var(--bg2);}
tbody td{padding:10px 14px;white-space:nowrap;}
.pos{color:var(--pos);}.neg{color:var(--neg);}

/* BADGES */
.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;}
.bg{background:#e6f1fb;color:#185fa5;}.bd{background:#eaf3de;color:#3b6d11;}
.bv{background:#faeeda;color:#854f0b;}.bc{background:var(--bg2);color:var(--tx2);}.be{background:#ede8fb;color:#4b2fa8;}
.bbuy{background:#eaf3de;color:#3b6d11;}.bsell{background:#fcebeb;color:#a32d2d;}
.btxbl{background:#faeeda;color:#854f0b;}.broth{background:#e6f1fb;color:#185fa5;}.bira{background:#eeedfe;color:#534ab7;}

/* INPUT ROW */
.ir{background:var(--bg2);}
.ir td input,.ir td select{width:100%;background:var(--bg);border:.5px solid var(--bm);border-radius:4px;padding:5px 8px;font-size:12px;color:var(--tx);font-family:var(--f);outline:none;}
.ir td input:focus,.ir td select:focus{border-color:var(--bs);}

/* NOTICE */
.notice{font-size:12px;color:var(--tx2);background:var(--bg2);padding:10px 14px;margin-bottom:16px;border-left:3px solid var(--acc);border-radius:0 var(--r) var(--r) 0;}

/* OTHER GRID */
.other-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px;}
.ocard{background:var(--bg);border:.5px solid var(--bl);border-radius:var(--rl);padding:16px;}
.ocardh{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.ocardt{font-weight:600;font-size:13px;}
.oitem{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:.5px solid var(--bl);font-size:13px;}
.oitem:last-of-type{border-bottom:none;}
.oitname{color:var(--tx2);}
.ototl{display:flex;justify-content:space-between;padding-top:10px;margin-top:6px;border-top:.5px solid var(--bm);font-weight:600;font-size:13px;}

/* HEATMAP */
.heatmap-panel{background:var(--bg2);border-radius:var(--rl);padding:16px;margin-bottom:20px;border:.5px solid var(--bl);}
.heatmap-controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:8px;}
.heatmap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;}
.hm-cell{border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:4px;min-height:80px;justify-content:space-between;}
.hm-sym{font-weight:700;font-size:14px;color:#fff;}
.hm-val{font-size:11px;color:rgba(255,255,255,.85);}
.hm-pct{font-size:16px;font-weight:700;color:#fff;}

/* CHARTS ROW */
.charts-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px;}
.chart-card{background:var(--bg);border:.5px solid var(--bl);border-radius:var(--rl);padding:14px;}
.chart-legend{display:flex;flex-direction:column;gap:5px;margin-top:10px;max-height:100px;overflow-y:auto;}
.legend-item{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--tx2);}
.legend-dot{width:9px;height:9px;border-radius:2px;flex-shrink:0;}

/* EQUITY / CARDS */
.equity-card{background:var(--bg);border:.5px solid var(--bl);border-radius:var(--rl);padding:16px;margin-bottom:16px;}

/* PROJECTIONS */
.proj-layout{display:grid;grid-template-columns:1fr 290px;gap:24px;align-items:start;}
.proj-main{min-width:0;}
.proj-meta-row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px;}
.pmi{display:flex;flex-direction:column;gap:5px;}
.pmi label{font-size:10px;color:var(--tx2);text-transform:uppercase;letter-spacing:.5px;font-weight:600;}
.ticker-inp{font-size:20px;font-weight:600;padding:8px 12px;border:.5px solid var(--bm);border-radius:var(--r);background:var(--bg);color:var(--tx);font-family:var(--f);width:130px;text-transform:uppercase;outline:none;}
.pmi input[type="number"]{font-size:14px;padding:8px 12px;border:.5px solid var(--bm);border-radius:var(--r);background:var(--bg);color:var(--tx);font-family:var(--f);width:170px;outline:none;}
.proj-guide{display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:var(--bg2);border-radius:var(--r);padding:8px 12px;margin-bottom:14px;font-size:12px;}
.guide-item{display:flex;align-items:center;gap:6px;font-weight:500;}
.guide-item::before{content:'';display:inline-block;width:12px;height:12px;border-radius:2px;flex-shrink:0;}
.guide-input::before{background:#fefce8;border:1px solid #ca8a04;}
.guide-computed::before{background:var(--bg);border:.5px solid var(--bm);}
.guide-detail{color:var(--tx2);font-size:11px;}

/* Case blocks */
.cblk{border:.5px solid var(--bl);border-radius:var(--rl);margin-bottom:14px;overflow:hidden;}
.chdr{padding:9px 16px;font-weight:600;font-size:13px;}
.cbull{background:#eaf3de;color:#3b6d11;}.cbase{background:#e6f1fb;color:#185fa5;}.cbear{background:#fcebeb;color:#a32d2d;}
.pgrid{display:grid;grid-template-columns:160px repeat(5,1fr);}
.pcell{padding:7px 10px;font-size:12px;border-bottom:.5px solid var(--bl);border-right:.5px solid var(--bl);}
.pcell:last-child{border-right:none;}
.pcell.ph{font-weight:600;font-size:10px;color:var(--tx2);background:var(--bg2);text-align:right;text-transform:uppercase;}
.pcell.ph.prl{text-align:left;}
.pcell.prl{color:var(--tx2);font-size:12px;background:var(--bg2);}
.pcell.yel{background:#fefce8;}
@media(prefers-color-scheme:dark){.pcell.yel{background:#2a2600;}}
.pcell input{width:100%;border:none;background:transparent;font-size:12px;color:var(--tx);font-family:var(--f);text-align:right;outline:none;}
.pcell input:focus{background:rgba(55,138,221,.07);border-radius:3px;}
.pcell.cmp{font-size:12px;text-align:right;color:var(--tx2);}
.fvrow{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border:.5px solid var(--bl);border-radius:var(--rl);margin-bottom:14px;}
.fvrow .fvl{color:var(--tx2);font-size:13px;}
.fvrow .fvv{font-size:22px;font-weight:600;}

/* Notes */
.notes-section{border:.5px solid var(--bl);border-radius:var(--rl);overflow:hidden;margin-bottom:14px;}
.notes-header{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--bg2);border-bottom:.5px solid var(--bl);}
.notes-title{font-weight:600;font-size:13px;}
.notes-sub{font-size:12px;color:var(--tx2);}
.notes-toolbar{display:flex;align-items:center;gap:2px;margin-left:auto;}
.ntb{padding:2px 7px;font-size:11px;font-family:var(--f);background:var(--bg);border:.5px solid var(--bm);border-radius:3px;color:var(--tx2);cursor:pointer;line-height:1.6;transition:background .12s;}
.ntb:hover{background:var(--bg3);color:var(--tx);}
.ntb-sep{width:1px;height:13px;background:var(--bm);margin:0 3px;flex-shrink:0;}
.notes-area{display:block;width:100%;min-height:110px;padding:12px 14px;border:none;background:var(--bg);color:var(--tx);font-family:var(--f);font-size:13px;outline:none;line-height:1.6;overflow-y:auto;resize:vertical;box-sizing:border-box;white-space:pre-wrap;word-break:break-word;transition:min-height .2s;}
.notes-area:empty::before{content:attr(data-placeholder);color:var(--tx3);pointer-events:none;}
.notes-section.notes-expanded .notes-area{min-height:400px;}
.notes-section.notes-collapsed .notes-area{display:none;}
.notes-section.notes-collapsed .notes-fmt-btns{display:none;}
.notes-section.notes-collapsed{border-bottom:none;}

.proj-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.save-confirm{font-size:12px;color:var(--pos);font-weight:500;opacity:0;transition:opacity .3s;}

/* Sidebar */
.proj-sidebar{position:sticky;top:60px;max-height:calc(100vh - 80px);display:flex;flex-direction:column;}
.sidebar-section{border:.5px solid var(--bl);border-radius:var(--rl);overflow:hidden;background:var(--bg2);}
.sidebar-header{display:flex;align-items:center;padding:12px 14px;background:var(--bg);border-bottom:.5px solid var(--bl);cursor:pointer;gap:8px;}
.sidebar-header:hover{background:var(--bg2);}
.sidebar-title{font-weight:600;font-size:13px;flex:1;}
.sidebar-count{font-size:11px;color:var(--tx2);background:var(--bg2);padding:2px 8px;border-radius:10px;border:.5px solid var(--bl);}
.sidebar-arrow{font-size:12px;color:var(--tx2);transition:transform .2s;}
.sidebar-arrow.collapsed{transform:rotate(-90deg);}
.proj-io-btn{background:none;border:.5px solid var(--bl);border-radius:4px;cursor:pointer;color:var(--tx2);font-size:10px;padding:2px 6px;font-family:var(--f);white-space:nowrap;}
.proj-io-btn:hover{background:var(--acc);color:#fff;border-color:var(--acc);}
.mg-toggle-btn{background:none;border:none;cursor:pointer;font-size:16px;color:var(--tx2);padding:1px 4px;border-radius:4px;line-height:1;font-family:var(--f);transition:transform .2s;}
.mg-toggle-btn:hover{color:var(--tx);}
.mg-toggle-btn.mg-collapsed{transform:rotate(180deg);}
.proj-sidebar.mg-collapsed .addbtn{display:none;}
.saved-proj-list{overflow-y:auto;max-height:calc(100vh - 200px);padding:6px;display:flex;flex-direction:column;gap:4px;}
.spi{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:var(--r);border:.5px solid var(--bl);background:var(--bg);cursor:pointer;gap:8px;}
.spi:hover{border-color:var(--bm);}
.spi-active{border-color:var(--acc)!important;background:#e6f1fb!important;}
@media(prefers-color-scheme:dark){.spi-active{background:#0c2a4a!important;}}
.spi-info{display:flex;flex-direction:column;gap:2px;min-width:0;}
.spi-ticker{font-weight:700;font-size:13px;}
.spi-meta{font-size:10px;color:var(--tx2);}
.saved-empty{padding:20px 12px;font-size:12px;color:var(--tx2);text-align:center;line-height:1.6;}

/* Dividends */
.div-calendar{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:8px;}
.div-month{background:var(--bg2);border:.5px solid var(--bl);border-radius:var(--r);padding:10px;}
.div-month.active-month{border-color:var(--acc);}
.div-month-name{font-size:10px;font-weight:600;color:var(--tx2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;}
.div-month-item{font-size:12px;padding:3px 0;border-bottom:.5px solid var(--bl);display:flex;justify-content:space-between;}
.div-month-item:last-child{border-bottom:none;}
.div-ticker{font-weight:600;color:var(--tx);}
.div-amt{color:var(--pos);}
.div-empty{font-size:11px;color:var(--tx3);font-style:italic;}

/* Stock Info */
.si-search-row{display:flex;gap:10px;margin-bottom:20px;}
.si-search-input{flex:1;padding:10px 16px;font-size:15px;font-family:var(--f);border:.5px solid var(--bm);border-radius:var(--r);background:var(--bg2);color:var(--tx);outline:none;}
.si-search-input:focus{border-color:var(--bs);background:var(--bg);}
.si-status{padding:16px;border-radius:var(--r);font-size:13px;margin-bottom:16px;}
.si-status.loading{background:var(--bg2);color:var(--tx2);}
.si-status.error{background:#fcebeb;color:#a32d2d;}

.si-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px;background:var(--bg);border:.5px solid var(--bl);border-radius:var(--rl);margin-bottom:14px;flex-wrap:wrap;}
.si-name{font-size:20px;font-weight:600;}
.si-meta{font-size:12px;color:var(--tx2);margin-top:4px;}
.si-price{font-size:30px;font-weight:600;text-align:right;}
.si-change{font-size:14px;font-weight:500;text-align:right;margin-top:2px;}
.si-analyst{font-size:12px;color:var(--tx2);text-align:right;margin-top:6px;}

.si-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;margin-bottom:14px;}
.si-card{background:var(--bg);border:.5px solid var(--bl);border-radius:var(--rl);padding:16px;}
.si-card-title{font-size:10px;font-weight:600;color:var(--tx2);text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px;}
.si-row{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;border-bottom:.5px solid var(--bl);font-size:13px;}
.si-row:last-child{border-bottom:none;}
.si-label{color:var(--tx2);}
.si-val{font-weight:500;}
.si-desc{background:var(--bg);border:.5px solid var(--bl);border-radius:var(--rl);padding:16px;font-size:13px;color:var(--tx2);line-height:1.7;}
.si-desc-title{font-size:10px;font-weight:600;color:var(--tx2);text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px;}

@media(max-width:900px){.proj-layout{grid-template-columns:1fr;}.proj-sidebar{position:static;max-height:none;}}
@media(max-width:720px){.charts-row{grid-template-columns:1fr;}.other-grid{grid-template-columns:1fr;}.div-calendar{grid-template-columns:repeat(3,1fr);}.topbar{flex-direction:column;align-items:flex-start;}}

/* v6 additions */
.btn-test{padding:9px 14px;font-size:13px;font-family:var(--f);background:var(--bg2);border:.5px solid var(--bm);border-radius:var(--r);color:var(--tx);cursor:pointer;}
.btn-test:hover{background:var(--bg3);}
.api-key-status{margin-top:10px;font-size:13px;font-weight:500;min-height:20px;line-height:1.5;white-space:pre-wrap;}
.api-key-status.ok{color:var(--pos);}
.api-key-status.err{color:var(--neg);}
.api-key-status.info{color:var(--tx2);}
/* COMPANY INFO */
.ci-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;}
.ci-card{background:var(--bg);border:.5px solid var(--bl);border-radius:var(--rl);padding:14px;}
.ci-card-title{font-size:10px;font-weight:700;color:var(--tx2);text-transform:uppercase;letter-spacing:.7px;margin-bottom:8px;padding-bottom:6px;border-bottom:.5px solid var(--bl);display:flex;align-items:center;justify-content:space-between;}
.ci-edit-btn{background:none;border:none;cursor:pointer;color:var(--tx3);font-size:13px;padding:0 2px;opacity:0;transition:opacity .15s;}
.ci-card:hover .ci-edit-btn{opacity:1;}
.ci-card-editing{border-color:var(--acc)!important;}
.ci-edit-actions{display:flex;gap:4px;}
.ci-row-edit{gap:6px!important;}
.ci-edit-inp{font-size:12px;font-family:var(--f);border:.5px solid var(--bm);border-radius:3px;background:var(--bg2);color:var(--tx);padding:3px 6px;outline:none;}
.ci-edit-inp:focus{border-color:var(--acc);}
.ci-edit-lbl{flex:1;color:var(--tx2);}
.ci-edit-val{width:90px;text-align:right;font-weight:600;}
.ci-row{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0;border-bottom:.5px solid var(--bl);font-size:12.5px;}
.ci-row:last-child{border-bottom:none;}
.ci-label{color:var(--tx2);}
.ci-val{font-weight:600;color:var(--tx);}
/* DIVIDENDS TAB */
.div-missing-note{background:var(--bg2);border:.5px solid var(--bm);border-radius:var(--r);padding:9px 14px;font-size:12px;color:var(--tx2);margin-bottom:18px;}
.div-summary-note{font-size:10px;font-weight:400;margin-left:6px;opacity:.8;}
.div-cmp-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;}
.div-cmp-row{display:flex;align-items:center;gap:14px;padding:10px 14px;background:var(--bg);border:.5px solid var(--bl);border-radius:var(--r);}
.div-cmp-ticker{font-weight:700;font-size:13px;width:54px;flex-shrink:0;}
.div-cmp-bars{flex:1;display:flex;flex-direction:column;gap:5px;}
.div-bar-row{display:flex;align-items:center;gap:8px;}
.div-bar-lbl{font-size:11px;color:var(--tx2);width:30px;flex-shrink:0;}
.div-bar-track{flex:1;height:7px;background:var(--bg2);border-radius:4px;overflow:hidden;}
.div-bar-fill{height:100%;border-radius:4px;transition:width .35s ease;}
.div-yld{background:#378ADD;}
.div-yoc{background:#1D9E75;}
.div-bar-val{font-size:12px;font-weight:600;min-width:88px;}
.div-bar-delta{font-size:10px;color:var(--pos);margin-left:4px;font-weight:400;}
.div-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;}
.div-card{background:var(--bg);border:.5px solid var(--bl);border-radius:var(--rl);padding:16px;display:flex;flex-direction:column;gap:11px;}
.div-card-header{display:flex;align-items:center;gap:8px;padding-bottom:10px;border-bottom:.5px solid var(--bl);}
.div-card-ticker{font-size:18px;font-weight:700;}
.div-card-shares{font-size:11px;color:var(--tx2);flex:1;}
.div-card-dps{font-size:11px;font-weight:700;color:var(--acc);background:var(--bg2);padding:2px 7px;border-radius:3px;}
.div-income-block{display:flex;flex-direction:column;gap:4px;}
.div-income-row{display:flex;justify-content:space-between;font-size:13px;}
.div-yields-row{display:flex;gap:7px;flex-wrap:wrap;}
.div-yield-box{flex:1;min-width:76px;background:var(--bg2);border-radius:var(--r);padding:8px 10px;text-align:center;}
.div-yield-winner{border:.5px solid var(--pos)!important;}
.div-yield-lbl{font-size:10px;color:var(--tx2);text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px;}
.div-yield-val{font-size:15px;font-weight:700;}
.div-yoc-note{font-size:11px;color:var(--pos);background:#e6f5ef;border-radius:4px;padding:5px 9px;}
@media(prefers-color-scheme:dark){.div-yoc-note{background:#0d2e1e;}}
.div-growth-block{border-top:.5px solid var(--bl);padding-top:10px;display:flex;flex-direction:column;gap:6px;}
.div-growth-title{font-size:10px;font-weight:700;color:var(--tx2);text-transform:uppercase;letter-spacing:.5px;}
.div-growth-badges{display:flex;gap:6px;flex-wrap:wrap;}
.div-gbadge{background:var(--bg2);border-radius:4px;padding:5px 9px;text-align:center;min-width:54px;}
.div-gpos{background:#e6f5ef;}
.div-gneg{background:#fdecea;}
@media(prefers-color-scheme:dark){.div-gpos{background:#0d2e1e;}.div-gneg{background:#2e0d0d;}}
.div-gbadge-lbl{font-size:9px;color:var(--tx2);text-transform:uppercase;margin-bottom:2px;}
.div-gbadge-val{font-size:12px;font-weight:700;}
.div-gpos .div-gbadge-val{color:var(--pos);}
.div-gneg .div-gbadge-val{color:var(--neg);}
.div-growth-note{font-size:11px;color:var(--tx2);font-style:italic;}
/* SORTABLE TABLE HEADERS */
.sh{cursor:pointer;user-select:none;}
.sh:hover{background:var(--bg3)!important;color:var(--tx);}
/* CHART SORT BUTTONS */
.chart-sort-group{display:flex;gap:3px;}
.csb{padding:3px 8px;font-size:10px;font-family:var(--f);background:none;border:.5px solid var(--bm);border-radius:3px;color:var(--tx3);cursor:pointer;}
.csb.active{background:var(--bg3);color:var(--tx);border-color:var(--tx3);}
/* CASH ROW */
.cash-row{background:rgba(45,122,79,0.10)!important;}
.cash-row td{color:var(--pos)!important;font-weight:600;}
/* CRYPTO BADGE */
.bcrp{background:#fff3e0;color:#e65100;}
@media(prefers-color-scheme:dark){.bcrp{background:#3d2200;color:#ffb74d;}}
/* BOTH BADGE */
.bboth{background:#ede9fe;color:#5b21b6;}
@media(prefers-color-scheme:dark){.bboth{background:#2e1a5e;color:#c4b5fd;}}
/* COLUMN TOGGLE BUTTONS */
.col-tog-btn{padding:3px 8px;font-size:10px;font-family:var(--f);background:var(--bg2);border:.5px solid var(--bm);border-radius:3px;color:var(--tx2);cursor:pointer;transition:opacity .15s,background .15s;}
.col-tog-btn:hover{background:var(--bg3);}
.col-tog-off{opacity:0.45;text-decoration:line-through;}
.col-tog-off:hover{opacity:0.75;}
.col-tog-reset{padding:3px 8px;font-size:10px;font-family:var(--f);background:transparent;border:.5px solid var(--accent,#4f8ef7);border-radius:3px;color:var(--accent,#4f8ef7);cursor:pointer;margin-left:4px;transition:background .15s,opacity .15s;}

/* ── PRIVACY MODE ── */
.privacy-btn{background:none;border:.5px solid var(--bm);border-radius:var(--r);padding:4px 9px;font-size:15px;cursor:pointer;transition:background .15s;line-height:1;}
.privacy-btn:hover{background:var(--bg2);}
.sens{transition:filter .2s;}
body.privacy .sens{filter:blur(7px);user-select:none;pointer-events:none;}

/* ── AUTH OVERLAY ── */
.auth-overlay{position:fixed;inset:0;z-index:9999;background:var(--bg2);display:flex;align-items:center;justify-content:center;}
.auth-overlay.hidden{display:none!important;}
.auth-card{background:var(--bg);border:.5px solid var(--bm);border-radius:var(--rl);padding:40px 36px;width:380px;max-width:90vw;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;box-shadow:0 8px 40px rgba(0,0,0,.12);}
.auth-logo{font-size:44px;line-height:1;}
.auth-title{font-size:20px;font-weight:700;letter-spacing:-.3px;}
.auth-sub{font-size:13px;color:var(--tx2);line-height:1.6;}
.auth-google-btn{display:flex;align-items:center;gap:10px;padding:11px 24px;font-size:14px;font-weight:600;font-family:var(--f);background:var(--bg);color:var(--tx);border:.5px solid var(--bm);border-radius:var(--r);cursor:pointer;transition:background .15s,box-shadow .15s;margin-top:8px;}
.auth-google-btn:hover{background:var(--bg2);box-shadow:0 2px 8px rgba(0,0,0,.12);}
.auth-google-btn:disabled{opacity:.6;cursor:default;}
.auth-error{font-size:12px;color:var(--neg);min-height:16px;}
.auth-privacy{font-size:11px;color:var(--tx3);}
.dev-login-btn{margin-top:4px;background:none;border:none;font-size:10px;color:var(--tx3);opacity:0.3;cursor:pointer;padding:2px 6px;border-radius:4px;}
.dev-login-btn:hover{opacity:0.7;}

/* ── USER CHIP ── */
.user-chip{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--tx2);}
.user-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;border:.5px solid var(--bm);}
.user-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.btn-signout{padding:4px 10px;font-size:11px;font-family:var(--f);background:none;border:.5px solid var(--bm);border-radius:var(--r);cursor:pointer;color:var(--tx3);transition:color .15s,border-color .15s;}
.btn-signout:hover{color:var(--neg);border-color:var(--neg);}

/* ── SYNC STATUS ── */
.sync-status{font-size:10px;color:var(--tx3);white-space:nowrap;}
.sync-status.syncing{color:var(--acc);}
.sync-status.synced{color:var(--pos);}
.sync-status.error{color:var(--neg);}
.col-tog-reset:hover{background:color-mix(in srgb,var(--accent,#4f8ef7) 12%,transparent);}

/* ── WATCHLIST PANEL ── */
.wl-panel{position:fixed;top:0;right:0;width:440px;max-width:95vw;height:100vh;background:var(--bg);border-left:.5px solid var(--bm);z-index:200;transform:translateX(100%);transition:transform .25s ease;overflow-y:auto;}
.wl-resize-handle{position:absolute;left:0;top:0;width:6px;height:100%;cursor:ew-resize;z-index:10;transition:background .15s;}
.wl-resize-handle:hover{background:rgba(128,128,128,.18);}
.wl-resize-handle:active{background:rgba(128,128,128,.3);}
.wl-panel:not(.hidden){transform:translateX(0);}
.wl-panel.hidden{transform:translateX(100%);}
.wl-bg-overlay{position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:199;}
.wl-bg-overlay.hidden{display:none;}
.wl-panel-inner{padding:24px;display:flex;flex-direction:column;gap:14px;}
.wl-panel-header{display:flex;justify-content:space-between;align-items:center;}
.wl-panel-title{font-size:22px;font-weight:700;}
.wl-panel-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--tx3);line-height:1;padding:0 4px;}
.wl-panel-close:hover{color:var(--tx);}
.wl-section-lbl{font-size:10px;font-weight:600;color:var(--tx2);text-transform:uppercase;letter-spacing:.7px;border-top:.5px solid var(--bl);padding-top:12px;margin-top:2px;}
.wl-buy-bar-track{height:8px;background:var(--bg3);border-radius:4px;overflow:hidden;margin:6px 0 2px;}
.wl-buy-bar-fill{height:100%;border-radius:4px;transition:width .3s;}
.wl-textarea{width:100%;min-height:80px;resize:vertical;padding:10px 12px;font-size:13px;font-family:var(--f);border:.5px solid var(--bm);border-radius:var(--r);background:var(--bg2);color:var(--tx);outline:none;line-height:1.5;}
.wl-textarea:focus{border-color:var(--bs);}
.wl-row{cursor:pointer;}
.wl-row:hover td{background:var(--bg2);}

/* Watchlist interest level colours */
.wl-interest-high{color:var(--pos);font-weight:700;}
.wl-interest-mid{color:#EF9F27;font-weight:600;}
.wl-interest-low{color:var(--neg);font-weight:500;}

/* Watchlist modal field label */
.modal-field-lbl{font-size:11px;color:var(--tx2);font-weight:500;display:block;margin-bottom:3px;}

/* ── GYM TRACKER ── */
#gym-tracker.hidden{display:none!important;}
.gym-header{padding:14px 24px 0;border-bottom:none;}
.gym-header-title{font-size:18px;font-weight:600;letter-spacing:-.3px;margin-bottom:12px;}
#gym-tracker .tabs{border-top:.5px solid var(--bl);}
#gym-tracker .proj-layout{grid-template-columns:290px 1fr;}
@media(max-width:900px){#gym-tracker .proj-layout{grid-template-columns:1fr;}}
#gym-tracker .pane{display:none;}
#gym-tracker .pane.active{display:block;}
#fishing-tracker .tabs{border-top:.5px solid var(--bl);}
#fishing-tracker .proj-layout{grid-template-columns:200px 1fr;}
@media(max-width:900px){#fishing-tracker .proj-layout{grid-template-columns:1fr;}}
#fishing-tracker .pane{display:none;}
#fishing-tracker .pane.active{display:block;}
.gym-last-sets{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.gym-set-pill{font-size:12px;padding:4px 12px;background:var(--bg2);border:.5px solid var(--bm);border-radius:20px;white-space:nowrap;}
.gym-set-header{display:grid;grid-template-columns:28px 1fr 1fr 1fr auto 28px;gap:6px;align-items:center;padding:0 2px;margin-bottom:4px;}
.gym-set-header span{font-size:10px;font-weight:600;color:var(--tx2);text-transform:uppercase;letter-spacing:.5px;}
.gym-set-row{display:grid;grid-template-columns:28px 1fr 1fr 1fr auto 28px;gap:6px;align-items:center;margin-bottom:6px;}
.gym-set-row span{font-size:12px;color:var(--tx3);text-align:center;}
.gym-set-row .modal-input{margin:0;padding:7px 10px;font-size:13px;}
.gym-quality-btns{display:flex;gap:3px;}
.gym-qbtn{padding:3px 7px;font-size:10px;font-family:var(--f);border:.5px solid var(--bm);border-radius:10px;cursor:pointer;background:none;color:var(--tx3);transition:all .15s;white-space:nowrap;}
.gym-qbtn:hover{background:var(--bg3);}
.gym-qbtn.gq-easy{background:rgba(45,122,79,.15);color:var(--pos);border-color:var(--pos);}
.gym-qbtn.gq-hard{background:rgba(239,159,39,.15);color:#EF9F27;border-color:#EF9F27;}
.gym-qbtn.gq-fail{background:rgba(184,64,64,.15);color:var(--neg);border-color:var(--neg);}
.gym-q-badge{font-size:10px;padding:1px 7px;border-radius:10px;border:.5px solid;margin-left:4px;white-space:nowrap;}
.gym-q-badge.gq-easy{color:var(--pos);border-color:var(--pos);background:rgba(45,122,79,.12);}
.gym-q-badge.gq-hard{color:#EF9F27;border-color:#EF9F27;background:rgba(239,159,39,.12);}
.gym-q-badge.gq-fail{color:var(--neg);border-color:var(--neg);background:rgba(184,64,64,.12);}
.gym-coming-soon{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 24px;text-align:center;}
.gym-coming-soon .coming-soon-icon{font-size:64px;margin-bottom:20px;}
.gym-coming-soon .coming-soon-title{font-size:24px;font-weight:600;}

/* ── HUB OVERLAY ── */
.hub-overlay{position:fixed;inset:0;z-index:9998;background:var(--bg2);display:flex;align-items:center;justify-content:center;}
.hub-overlay.hidden{display:none!important;}
.hub-content{text-align:center;padding:40px 24px;max-width:860px;width:100%;}
.hub-greeting{font-size:13px;color:var(--tx3);text-transform:uppercase;letter-spacing:.8px;font-weight:500;margin-bottom:10px;}
.hub-title{font-size:36px;font-weight:700;letter-spacing:-.5px;margin-bottom:8px;}
.hub-sub{font-size:15px;color:var(--tx2);margin-bottom:52px;}
.hub-cards{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;}
.hub-card{background:var(--bg);border:.5px solid var(--bm);border-radius:var(--rl);padding:40px 32px;cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s;width:230px;text-align:center;}
.hub-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.1);border-color:var(--bs);}
.hub-card-icon{font-size:52px;margin-bottom:18px;line-height:1;}
.hub-card-name{font-size:17px;font-weight:600;margin-bottom:8px;}
.hub-card-desc{font-size:13px;color:var(--tx2);line-height:1.5;}

/* ── HUB BACK BUTTON ── */
.hub-back-btn{padding:5px 12px;font-size:12px;font-family:var(--f);background:none;border:.5px solid var(--bm);border-radius:var(--r);cursor:pointer;color:var(--tx2);transition:background .15s,color .15s;}
.hub-back-btn:hover{background:var(--bg2);color:var(--tx);}

/* ── COMING SOON PANE ── */
.coming-soon-pane{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 24px;text-align:center;}
.coming-soon-pane.hidden{display:none!important;}
.coming-soon-icon{font-size:72px;margin-bottom:24px;line-height:1;}
.coming-soon-title{font-size:26px;font-weight:600;color:var(--tx);}
