*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --ff:'Inter',system-ui,-apple-system,sans-serif;
  --mono:'JetBrains Mono','Courier New',monospace;
  /* Clean neutral palette — easier on the eyes */
  --bg:#f5f6fa;--bg2:#f9fafb;
  --surface:#ffffff;--surface2:#fafbfc;--surface3:#f3f4f8;
  --border:#e4e7ef;--border2:#d0d5e0;
  --text:#18181b;--text2:#52525b;--text3:#a1a1aa;
  /* Semantic accents — muted, professional */
  --green:#16a34a;--green-bg:rgba(22,163,74,.08);
  --red:#dc2626;--red-bg:rgba(220,38,38,.07);
  --gold:#b45309;--gold-bg:rgba(180,83,9,.08);
  --blue:#1d4ed8;--indigo:#4338ca;
  --purple:#6d28d9;--navy:#111827;--navy2:#1f2937;
  --sh:0 1px 2px rgba(0,0,0,.05),0 1px 8px rgba(0,0,0,.04);
  --sh-md:0 4px 16px rgba(0,0,0,.08);--sh-lg:0 12px 40px rgba(0,0,0,.12);
  --r:10px;--rs:7px;--r-sm:6px;--r-md:12px;--r-lg:16px;
  --g2:#22c55e;--r2:#f87171;--gold2:#f59e0b;
  /* Font scale — larger, more readable */
  --fs-xs:11px;--fs-sm:12px;--fs-base:13.5px;--fs-md:14.5px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:22px;
}
html{scroll-behavior:smooth;}
body{font-family:var(--ff);background:var(--bg);color:var(--text);font-size:var(--fs-base);line-height:1.55;-webkit-font-smoothing:antialiased;letter-spacing:-.01em;}
a{text-decoration:none;color:inherit;}button{cursor:pointer;font-family:inherit;border:none;background:none;}
input,select{font-family:inherit;}
::-webkit-scrollbar{width:4px;height:4px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:10px;}

/* LOADER */
#loader{position:fixed;inset:0;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;transition:opacity .5s .1s;}
#loader.out{opacity:0;pointer-events:none;}
.ld-brand{font-size:28px;font-weight:800;color:var(--navy);letter-spacing:-.5px;}
.ld-brand em{color:var(--purple);font-style:normal;}
.ld-track{width:160px;height:2px;background:var(--border);border-radius:9px;overflow:hidden;margin:14px auto 8px;}
.ld-fill{height:100%;width:0;background:linear-gradient(90deg,var(--purple),var(--blue));animation:ldf 1.6s cubic-bezier(.4,0,.2,1) forwards;}
@keyframes ldf{0%{width:0}60%{width:75%}100%{width:100%}}
.ld-sub{color:var(--text3);font-size:var(--fs-xs);}

/* TOAST */
#toast{position:fixed;bottom:68px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:8px 18px;border-radius:20px;font-size:var(--fs-sm);font-weight:600;z-index:9000;opacity:0;pointer-events:none;transition:opacity .25s;white-space:nowrap;}
#toast.show{opacity:1;}

/* SIDEBAR NAV */
.nav{
  position:fixed;top:0;left:0;bottom:0;width:220px;
  background:#fff;border-right:1px solid var(--border);
  box-shadow:1px 0 8px rgba(0,0,0,.04);
  display:flex;flex-direction:column;z-index:800;
  overflow-y:auto;overflow-x:hidden;
}
.nav-logo{
  font-family:var(--ff);font-size:17px;font-weight:800;color:var(--navy);
  display:flex;align-items:center;gap:9px;
  padding:18px 16px 14px;border-bottom:1px solid var(--border);flex-shrink:0;
}
.nav-logo-box{width:30px;height:30px;background:linear-gradient(135deg,#6d28d9,#4338ca);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;box-shadow:0 2px 6px rgba(109,40,217,.25);flex-shrink:0;}
.nav-logo span{color:var(--purple);}
.nav-links{display:flex;flex-direction:column;gap:1px;padding:10px 8px;flex:1;}
.nav-links a{
  color:var(--text2);font-size:var(--fs-sm);font-weight:500;
  padding:9px 12px;border-radius:8px;transition:.14s;
  display:flex;align-items:center;gap:8px;white-space:nowrap;
}
.nav-links a:hover{color:var(--purple);background:rgba(109,40,217,.06);}
.nav-links a.active{color:var(--purple);font-weight:700;background:rgba(109,40,217,.08);border-left:3px solid var(--purple);padding-left:9px;}
.nav-right{
  display:flex;flex-direction:column;gap:7px;
  padding:10px 12px 16px;border-top:1px solid var(--border);flex-shrink:0;
}
.live-dot{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0;}
.live-dot.blink{animation:blink 1.4s ease-in-out infinite;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
.badge-live{display:flex;align-items:center;gap:4px;background:rgba(22,163,74,.1);border:1px solid rgba(22,163,74,.2);padding:4px 10px;border-radius:20px;width:fit-content;}
.live-lbl{font-size:var(--fs-xs);font-weight:700;color:var(--green);}
#navGift{display:none;font-size:var(--fs-xs);font-weight:700;padding:3px 9px;border-radius:20px;border:1px solid rgba(180,83,9,.25);background:var(--gold-bg);color:var(--gold);font-family:var(--mono);}
.ist-clock{font-size:var(--fs-xs);color:var(--text3);font-family:var(--mono);}
.api-badge{font-size:10px;padding:3px 8px;border-radius:8px;background:var(--bg);font-weight:600;color:var(--text2);border:1px solid var(--border);width:fit-content;}
.btn-login{background:linear-gradient(135deg,#b45309,#d97706);color:#fff;padding:8px 14px;border-radius:8px;font-weight:700;font-size:var(--fs-sm);transition:.14s;border:none;cursor:pointer;box-shadow:0 2px 6px rgba(180,83,9,.25);width:100%;text-align:center;}
.btn-login:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(180,83,9,.3);}
.u-avatar{width:26px;height:26px;border-radius:50%;border:2px solid var(--gold);object-fit:cover;}

/* TICKER */
.ticker-wrap{background:var(--surface);border-bottom:1px solid var(--border);overflow:hidden;height:28px;display:flex;align-items:center;position:relative;}
.tg-l,.tg-r{position:absolute;top:0;bottom:0;width:30px;z-index:2;pointer-events:none;}
.tg-l{left:0;background:linear-gradient(to right,var(--surface),transparent);}
.tg-r{right:0;background:linear-gradient(to left,var(--surface),transparent);}
.ticker-inner{display:flex;white-space:nowrap;will-change:transform;}
.tk{display:flex;align-items:center;gap:5px;padding:0 14px;border-right:1px solid var(--border);font-size:11px;}
.tk-n{font-weight:600;color:var(--text);}
.tk-v{font-family:var(--mono);color:var(--text2);}
.tk-c{font-weight:700;font-size:10px;}
.up{color:var(--green);}.dn{color:var(--red);}

/* INDEX STRIP */
.idx-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:12px 12px 6px;}
@media(max-width:1100px){.idx-strip{grid-template-columns:repeat(3,1fr);}}
@media(max-width:580px){.idx-strip{grid-template-columns:repeat(2,1fr);}}
.idx-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:12px 12px 10px;position:relative;overflow:hidden;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:var(--sh);}
.idx-card:hover{transform:translateY(-2px);box-shadow:var(--sh-md);}
.idx-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;}
.idx-card.up::after{background:linear-gradient(90deg,var(--green),#4ade80);}
.idx-card.dn::after{background:linear-gradient(90deg,var(--red),#f87171);}
.ic-lbl{font-size:10px;font-weight:700;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:5px;justify-content:space-between;margin-bottom:3px;}
.ic-sym{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;letter-spacing:.3px;flex-shrink:0;}
.ic-name{font-size:var(--fs-xs);font-weight:500;color:var(--text2);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ic-tag{font-size:8px;font-weight:700;padding:1px 5px;border-radius:4px;flex-shrink:0;}
.ic-val{font-size:19px;font-weight:700;color:var(--navy);font-family:var(--mono);line-height:1.2;letter-spacing:-.3px;}
.ic-chg{font-size:var(--fs-xs);font-weight:700;margin-top:4px;}
.ic-hl{font-size:10px;color:var(--text3);margin-top:3px;font-family:var(--mono);}
@media(max-width:580px){.ic-val{font-size:15px;}}

/* MAIN LAYOUT */
.main{display:grid;grid-template-columns:300px 1fr;gap:8px;padding:4px 12px 10px;}
@media(max-width:1200px){.main{grid-template-columns:270px 1fr;}}
@media(max-width:960px){.main{grid-template-columns:1fr;}.col-left{display:none;}}
@media(max-width:700px){.main{grid-template-columns:1fr;gap:7px;padding:4px 8px 70px;}}
.page{display:none;}.page.on{display:block;}

/* CARD */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px;box-shadow:var(--sh);margin-bottom:8px;}
.card:last-child{margin-bottom:0;}
.ct{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text3);margin-bottom:10px;display:flex;align-items:center;gap:5px;}

/* ADVICE */
.col-left{display:flex;flex-direction:column;gap:7px;}
.advice-panel{background:#fff;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);}
.advice-header{background:#ffffff;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);position:relative;}
.advice-header::before{display:none;}
.advice-header-left{display:flex;align-items:center;gap:10px;position:relative;z-index:1;}
.advice-header-icon{width:34px;height:34px;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:9px;display:grid;place-items:center;font-size:16px;flex-shrink:0;box-shadow:0 2px 6px rgba(217,119,6,.25);}
.advice-header-title{font-size:14px;font-weight:700;color:#111827;letter-spacing:-.1px;}
.advice-header-sub{font-size:10px;color:#6b7280;margin-top:1px;font-weight:500;}
.advice-live-badge{display:flex;align-items:center;gap:4px;background:rgba(22,163,74,.1);border:1px solid rgba(22,163,74,.2);padding:3px 9px;border-radius:20px;position:relative;z-index:1;}
.advice-live-dot{width:5px;height:5px;border-radius:50%;background:var(--green);animation:blink 1.4s infinite;}
.advice-live-txt{font-size:10px;font-weight:700;color:var(--green);}
.advice-body{padding:10px;}
.aw2-card{border-radius:9px;padding:12px 14px;cursor:pointer;transition:all .14s;position:relative;overflow:hidden;margin-bottom:8px;border:1px solid var(--border);background:#ffffff;}
.aw2-card:last-child{margin-bottom:0;}
.aw2-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px 0 0 3px;}
.aw2-card.buy::before{background:#16a34a;}
.aw2-card.sell::before{background:#dc2626;}
.aw2-card.hold::before{background:#d97706;}
.aw2-card.watch::before{background:#2563eb;}
.aw2-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.08);border-color:var(--border2);}
.aw2-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;}
.aw2-sym{font-size:14px;font-weight:700;color:#111827;}
.aw2-card.buy  .aw2-sym{color:#111827;}
.aw2-card.sell .aw2-sym{color:#111827;}
.aw2-card.hold .aw2-sym{color:#111827;}
.aw2-card.watch .aw2-sym{color:#111827;}
.aw2-badge{font-size:9px;font-weight:700;padding:2px 8px;border-radius:20px;}
.aw2-badge.BUY{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0;}
.aw2-badge.SELL{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca;}
.aw2-badge.HOLD{background:#fef3c7;color:#92400e;border:1px solid #fde68a;}
.aw2-badge.WATCH{background:#dbeafe;color:#1e40af;border:1px solid #bfdbfe;}
.aw2-title{font-size:var(--fs-xs);color:var(--text2);margin-bottom:7px;line-height:1.45;}
.aw2-prices{display:flex;gap:7px;margin-bottom:5px;}
.aw2-p{text-align:center;flex:1;background:var(--bg);border-radius:6px;padding:5px 3px;}
.aw2-pl{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;margin-bottom:1px;}
.aw2-pv{font-size:var(--fs-sm);font-weight:700;font-family:var(--mono);}
.aw2-foot{display:flex;justify-content:space-between;font-size:10px;color:var(--text2);}
.advice-footer{padding:10px;border-top:1px solid var(--border);}
.advice-view-all{display:flex;align-items:center;justify-content:center;gap:6px;padding:9px;background:linear-gradient(135deg,#6d28d9,#4338ca);border-radius:8px;font-size:var(--fs-sm);font-weight:700;color:#fff;transition:all .14s;box-shadow:0 2px 8px rgba(109,40,217,.3);}
.advice-view-all:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(109,40,217,.35);}

/* STATUS BAR */
.status-bar{display:flex;align-items:center;gap:6px;padding:5px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);margin-bottom:6px;flex-wrap:wrap;box-shadow:var(--sh);}
.seg{display:flex;align-items:center;gap:3px;font-size:var(--fs-xs);font-weight:600;}
.seg+.seg{border-left:1px solid var(--border);padding-left:6px;}
.seg-dot{width:5px;height:5px;border-radius:50%;}
.s-clk{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--text3);}

/* ALERT */
.alert-strip{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid rgba(180,83,9,.2);border-radius:var(--rs);padding:7px 11px;display:flex;align-items:center;gap:7px;font-size:var(--fs-sm);margin-bottom:7px;}

/* CHART */
.chart-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px;margin-bottom:8px;box-shadow:var(--sh);}
.chart-wrap.maximized{position:fixed;inset:6px;z-index:1200;border-radius:14px;box-shadow:var(--sh-lg);overflow-y:auto;}
.chart-bd{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1199;backdrop-filter:blur(4px);}
.chart-bd.show{display:block;}
.chart-topbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:10px;}
.tabs{display:flex;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:2px;}
.tab{flex:1;padding:5px 10px;border-radius:6px;font-size:var(--fs-sm);font-weight:500;color:var(--text2);transition:all .13s;cursor:pointer;white-space:nowrap;}
.tab.on{background:linear-gradient(135deg,var(--purple),#4338ca);color:#fff;font-weight:700;box-shadow:0 2px 6px rgba(109,40,217,.3);}
.chart-pricebox{margin-left:auto;text-align:right;flex-shrink:0;}
.chart-price{font-size:var(--fs-2xl);font-weight:700;font-family:var(--mono);letter-spacing:-.3px;}
.chart-chg{font-size:var(--fs-sm);font-weight:600;}
.max-btn{width:28px;height:28px;background:var(--bg);border:1px solid var(--border);border-radius:6px;display:grid;place-items:center;font-size:14px;cursor:pointer;color:var(--text2);transition:all .13s;}
.max-btn:hover{background:var(--navy);color:#fff;}
.chart-wrap.maximized .max-btn{background:var(--red);color:#fff;border-color:var(--red);}
.ctrl-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px;margin-bottom:10px;}
.ctrls{display:flex;gap:1px;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:2px;}
.cb{padding:4px 10px;border-radius:5px;font-size:var(--fs-xs);font-weight:600;color:var(--text2);transition:all .12s;}
.cb.on{background:linear-gradient(135deg,var(--purple),#4338ca);color:#fff;box-shadow:0 2px 6px rgba(109,40,217,.25);font-weight:700;}
.ctrl-r{display:flex;align-items:center;gap:6px;}
.tgl-grp{display:flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--text2);}
.tgl{display:none;}
.tgl-track{width:26px;height:14px;background:var(--border);border-radius:20px;position:relative;cursor:pointer;transition:background .2s;}
.tgl-track::after{content:'';position:absolute;left:2px;top:2px;width:10px;height:10px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.15);}
.tgl:checked~.tgl-track{background:var(--purple);}
.tgl:checked~.tgl-track::after{left:14px;}
.csel{font-size:var(--fs-xs);border:1px solid var(--border);border-radius:5px;padding:2px 5px;background:var(--bg);color:var(--text);outline:none;}
.sig-row{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--bg);border:1px solid var(--border);border-radius:7px;margin-bottom:9px;flex-wrap:wrap;}
.sig-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:var(--fs-sm);font-weight:700;}
.sig-bull{background:var(--green-bg);color:var(--green);border:1px solid rgba(22,163,74,.2);}
.sig-bear{background:var(--red-bg);color:var(--red);border:1px solid rgba(220,38,38,.18);}
.sig-meta{display:flex;gap:10px;font-size:var(--fs-xs);color:var(--text2);}
.sig-meta strong{color:var(--text);font-family:var(--mono);}
#lastSig{margin-left:auto;font-size:10px;font-weight:700;}
.chart-cw{position:relative;}
.chart-cw canvas{display:block;width:100%!important;}
.chart-wrap:not(.maximized) .chart-cw{height:330px;}
.chart-wrap.maximized .chart-cw{height:calc(100vh - 240px);}
.chart-leg{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px;}
.li{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text2);}
.lsq{width:10px;height:10px;border-radius:2px;}
.lln{width:14px;border-top:2px solid;display:inline-block;}
@media(max-width:700px){.chart-wrap:not(.maximized) .chart-cw{height:240px;}.ctrl-r{display:none;}}

/* NEWS PANEL — REDESIGNED */
.news-panel{background:#fff;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);}
.news-header{background:linear-gradient(135deg,#1e3a5f 0%,#1d4ed8 100%);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(96,165,250,.2);}
.news-header-left{display:flex;align-items:center;gap:10px;}
.news-header-icon{width:34px;height:34px;background:rgba(255,255,255,.14);border-radius:9px;display:grid;place-items:center;font-size:16px;flex-shrink:0;}
.news-header-title{font-size:14px;font-weight:700;color:#fff;}
.news-header-sub{font-size:10px;color:rgba(186,230,253,.85);margin-top:1px;font-weight:500;}
.news-refresh-btn{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:7px;padding:5px 10px;font-size:10px;font-weight:600;color:#fff;cursor:pointer;transition:all .14s;display:flex;align-items:center;gap:4px;}
.news-refresh-btn:hover{background:rgba(255,255,255,.22);transform:translateY(-1px);}
.news-refresh-btn.spinning svg{animation:spin 1s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.news-source-tabs{display:flex;align-items:center;overflow-x:auto;background:#fafbff;border-bottom:1px solid var(--border);}
.news-source-tabs::-webkit-scrollbar{height:0;}
.news-stab{padding:8px 14px;font-size:11px;font-weight:600;color:var(--text2);cursor:pointer;border-bottom:2px solid transparent;transition:all .12s;white-space:nowrap;background:none;flex-shrink:0;}
.news-stab:hover{color:var(--blue);}.news-stab.on{color:var(--blue);border-bottom-color:var(--blue);font-weight:700;}
.news-body{display:flex;flex-direction:column;padding:0;}
.ni2{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-bottom:1px solid rgba(228,231,239,.5);cursor:pointer;transition:background .12s;background:#fff;}
.ni2:last-child{border-bottom:none;}.ni2:hover{background:#f8faff;}
.ni2-left{flex:1;min-width:0;}
.ni2-top{display:flex;align-items:center;gap:5px;margin-bottom:5px;flex-wrap:wrap;}
.ni2-cat{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600;padding:2px 8px;border-radius:20px;white-space:nowrap;}
.ni2-src{font-size:10px;font-weight:600;color:var(--text2);background:var(--bg);border:1px solid var(--border);padding:2px 7px;border-radius:20px;white-space:nowrap;}
.ni2-time{font-size:10px;color:var(--text3);margin-left:auto;white-space:nowrap;}
.ni2-t{font-size:13px;font-weight:600;line-height:1.5;color:#111827;transition:color .12s;}
.ni2:hover .ni2-t{color:var(--blue);}
.ni2-right{flex-shrink:0;width:34px;height:34px;border-radius:8px;background:var(--bg);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:17px;margin-top:2px;}
.news-timer{padding:8px 16px;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px;font-size:10px;color:var(--text3);background:var(--surface2);}
.news-timer-bar{flex:1;height:3px;background:rgba(29,78,216,.08);border-radius:9px;overflow:hidden;}
.news-timer-fill{height:100%;background:linear-gradient(90deg,#1d4ed8,#60a5fa);border-radius:9px;transition:width 1s linear;}
@media(max-width:580px){.ni2{padding:10px 12px;gap:8px;}.ni2-right{display:none;}}


.mover-row:last-child{border-bottom:none;}
.mr-sym{font-size:var(--fs-sm);font-weight:700;}
.mr-sec{font-size:9px;color:var(--text2);}
.mr-pct{font-size:var(--fs-sm);font-weight:700;font-family:var(--mono);}
.pill{display:inline-block;padding:1px 6px;border-radius:9px;font-size:9px;font-weight:700;}

/* NEWS list */
.ni{padding:7px 0;border-bottom:1px solid var(--border);cursor:pointer;}
.ni:last-child{border-bottom:none;}
.ni:hover .ni-t{color:var(--purple);}
.ni-t{font-size:var(--fs-sm);font-weight:600;line-height:1.45;transition:color .12s;}
.ni-m{font-size:10px;color:var(--text3);margin-top:2px;}
.ni-src{background:var(--bg);padding:1px 5px;border-radius:4px;font-weight:600;color:var(--text2);}

/* AI BOX */
.ai-box{border:1px solid rgba(109,40,217,.15);border-radius:var(--r);padding:12px;background:rgba(109,40,217,.03);}
.ai-hdr{display:flex;align-items:center;gap:7px;margin-bottom:7px;}
.ai-ico{width:28px;height:28px;background:linear-gradient(135deg,var(--purple),#4338ca);border-radius:7px;display:grid;place-items:center;font-size:14px;flex-shrink:0;}
.ai-ttl{font-size:var(--fs-sm);font-weight:700;}
.ai-sub{font-size:10px;color:var(--text2);}
.chip-row{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:6px;}
.chip{background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:3px 8px;font-size:10px;font-weight:500;cursor:pointer;color:var(--text2);transition:all .12s;}
.chip:hover{background:var(--purple);color:#fff;border-color:var(--purple);}
.ai-msgs{height:150px;overflow-y:auto;display:flex;flex-direction:column;gap:5px;margin-bottom:7px;}
.ai-m{padding:6px 10px;border-radius:8px;font-size:var(--fs-xs);line-height:1.55;max-width:93%;word-break:break-word;}
.bot-m{background:var(--bg);align-self:flex-start;border:1px solid var(--border);}
.usr-m{background:linear-gradient(135deg,var(--purple),#4338ca);color:#fff;align-self:flex-end;}
.ai-ir{display:flex;gap:4px;}
.ai-inp{flex:1;border:1px solid var(--border);border-radius:7px;padding:6px 9px;font-size:var(--fs-sm);background:var(--bg);outline:none;transition:border .12s;}
.ai-inp:focus{border-color:var(--purple);background:var(--surface);}
.ai-send{background:linear-gradient(135deg,var(--purple),#4338ca);color:#fff;border-radius:7px;padding:6px 10px;font-size:13px;transition:transform .12s;}
.ai-send:hover{transform:translateY(-1px);}

/* SIP */
.sip-g{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:8px;}
.sg{display:flex;flex-direction:column;gap:2px;}
.sg-l{font-size:10px;color:var(--text2);font-weight:600;}
.sgi{border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:var(--fs-sm);background:var(--bg);outline:none;width:100%;font-family:var(--mono);transition:border .12s;}
.sgi:focus{border-color:var(--purple);background:var(--surface);}
.sip-res{background:linear-gradient(135deg,#6d28d9,#4338ca,#1d4ed8);border-radius:8px;padding:10px;color:#fff;text-align:center;box-shadow:0 3px 12px rgba(109,40,217,.3);}
.sip-v{font-size:var(--fs-xl);font-weight:700;font-family:var(--mono);}
.sip-l{font-size:10px;opacity:.8;margin-top:2px;}

/* PORTFOLIO */
.port-lay{display:grid;grid-template-columns:1fr 290px;gap:10px;}
@media(max-width:800px){.port-lay{grid-template-columns:1fr;}}
.add-row{display:grid;grid-template-columns:1fr 70px 90px auto;gap:5px;margin-bottom:10px;}
@media(max-width:600px){.add-row{grid-template-columns:1fr 1fr;}}
.ai2{border:1px solid var(--border);border-radius:7px;padding:6px 9px;font-size:var(--fs-sm);background:var(--bg);outline:none;width:100%;transition:border .12s;}
.ai2:focus{border-color:var(--green);background:var(--surface);}
.btn-add{background:linear-gradient(135deg,var(--green),#15803d);color:#fff;border-radius:7px;padding:7px 12px;font-size:var(--fs-sm);font-weight:700;white-space:nowrap;}
.pt{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
.pt th{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--text3);padding:5px 6px;border-bottom:2px solid var(--border);text-align:left;white-space:nowrap;}
.pt td{padding:7px 6px;border-bottom:1px solid var(--border);}
.pt tbody tr:hover td{background:var(--bg);}
.ps-box{background:linear-gradient(135deg,#f5f3ff,#eff6ff);border:1px solid rgba(67,56,202,.15);border-radius:var(--r);padding:14px;color:var(--navy);}
.ps-ttl{font-size:10px;font-weight:700;color:#4338ca;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;}
.ps-g{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.ps-it{background:#fff;border:1px solid rgba(109,40,217,.1);border-radius:7px;padding:9px;}
.ps-lb{font-size:10px;color:var(--text2);font-weight:500;}
.ps-vl{font-size:var(--fs-md);font-weight:700;font-family:var(--mono);color:var(--navy);}

/* QUIZ */
.quiz-b{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid rgba(180,83,9,.18);border-radius:var(--r);padding:14px;}
.q-sc{display:flex;align-items:center;gap:7px;margin-bottom:10px;}
.q-pill{background:linear-gradient(135deg,var(--gold),#d97706);color:#fff;border-radius:20px;padding:3px 11px;font-size:var(--fs-sm);font-weight:700;}
.qq{font-size:var(--fs-base);font-weight:600;margin-bottom:9px;line-height:1.55;}
.qopts{display:flex;flex-direction:column;gap:4px;}
.qopt{border:1px solid var(--border);background:var(--surface);border-radius:7px;padding:8px 10px;font-size:var(--fs-sm);text-align:left;transition:all .12s;cursor:pointer;color:var(--text);}
.qopt:hover:not(:disabled){border-color:var(--gold);background:#fffbf0;}
.qopt.ok{background:rgba(22,163,74,.08);border-color:var(--green);color:#15803d;font-weight:600;}
.qopt.no{background:var(--red-bg);border-color:var(--red);color:var(--red);}
.btn-nxt{margin-top:9px;width:100%;padding:7px;background:linear-gradient(135deg,var(--gold),#d97706);color:#fff;border-radius:7px;font-weight:700;font-size:var(--fs-sm);display:none;}

/* LEARN */
.learn-g{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media(max-width:700px){.learn-g{grid-template-columns:1fr;}}
.cg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;}
.cn{background:var(--bg);border-radius:7px;padding:8px 4px;text-align:center;cursor:pointer;transition:all .12s;border:1px solid transparent;}
.cn:hover{border-color:var(--purple);background:rgba(109,40,217,.05);}
.cn-ico{font-size:20px;margin-bottom:2px;}
.cn-nm{font-size:10px;font-weight:700;}
.cn-typ{font-size:9px;color:var(--text2);}
.cn-box{display:none;margin-top:7px;padding:9px;background:rgba(109,40,217,.04);border-radius:7px;font-size:var(--fs-sm);line-height:1.6;border-left:3px solid var(--purple);}
.gs{width:100%;border:1px solid var(--border);border-radius:7px;padding:6px 10px;font-size:var(--fs-sm);outline:none;margin-bottom:6px;background:var(--bg);}
.gs:focus{border-color:var(--purple);background:var(--surface);}
.gl{max-height:200px;overflow-y:auto;}
.g-it{padding:7px 0;border-bottom:1px solid var(--border);}
.g-it:last-child{border-bottom:none;}
.g-t{font-weight:700;font-size:var(--fs-sm);color:var(--purple);}
.g-d{font-size:var(--fs-xs);color:var(--text2);margin-top:2px;line-height:1.5;}
.rm{display:flex;flex-direction:column;}
.rm-s{display:flex;gap:10px;padding:7px 0;}
.rm-ln{display:flex;flex-direction:column;align-items:center;flex-shrink:0;}
.rm-d{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:var(--fs-xs);}
.rm-b{flex:1;width:2px;background:var(--border);margin:2px 0;min-height:10px;}
.rm-tt{font-weight:700;font-size:var(--fs-sm);}
.rm-ds{font-size:var(--fs-xs);color:var(--text2);margin-top:1px;line-height:1.5;}
.ai-sum{background:var(--bg);border-radius:7px;padding:9px;font-size:var(--fs-sm);line-height:1.65;color:var(--text2);min-height:60px;}

/* MARKETS */
.mkt-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:9px;margin-bottom:10px;}
.sb-r{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border);}
.sb-r:last-child{border-bottom:none;}
.sb-l{font-size:var(--fs-xs);color:var(--text2);}
.sb-v{font-size:var(--fs-sm);font-weight:700;font-family:var(--mono);}
.hm-g{display:grid;grid-template-columns:1fr 1fr;gap:3px;}
.hm-c{padding:10px 6px;border-radius:7px;text-align:center;cursor:pointer;transition:transform .12s;}
.hm-c:hover{transform:scale(1.04);}
.hm-n{font-size:10px;font-weight:600;color:rgba(255,255,255,.95);}
.hm-v{font-size:var(--fs-base);font-weight:700;color:#fff;font-family:var(--mono);}

/* SCREENER */
.scr-f{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;margin-bottom:10px;}
.sf{display:flex;flex-direction:column;gap:2px;}
.sf-l{font-size:10px;color:var(--text2);font-weight:600;}
.sf-i,.sf-s{border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:var(--fs-sm);background:var(--bg);outline:none;width:100%;transition:border .12s;}
.sf-i:focus,.sf-s:focus{border-color:var(--blue);background:var(--surface);}
.sc-t{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
.sc-t th{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--text3);padding:6px 7px;border-bottom:2px solid var(--border);text-align:left;white-space:nowrap;}
.sc-t td{padding:7px 7px;border-bottom:1px solid var(--border);font-family:var(--mono);font-size:var(--fs-xs);}
.sc-t tbody tr:hover td{background:var(--bg);}
.tbl-s{overflow-x:auto;}

/* MOBILE NAV */
.mob-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);z-index:700;padding:4px 0 max(env(safe-area-inset-bottom),8px);box-shadow:0 -1px 12px rgba(0,0,0,.06);}
.mn{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px;min-height:44px;justify-content:center;}
.mn-i{font-size:18px;}
.mn-l{font-size:9px;font-weight:600;color:var(--text2);}
.mn.on .mn-l{color:var(--purple);}
.mn.on .mn-i{filter:drop-shadow(0 0 3px rgba(109,40,217,.4));}
@media(max-width:720px){.mob-nav{display:flex;}}

/* PAGE HEADER */
.ph{font-size:var(--fs-xl);font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:7px;}
.ph-dot{width:7px;height:7px;border-radius:50%;}

/* ADVICE CARDS */
.aw-card{border:1px solid var(--border);border-radius:var(--rs);padding:10px 12px;cursor:pointer;transition:all .14s;position:relative;overflow:hidden;margin-bottom:5px;background:var(--surface2);}
.aw-card:last-child{margin-bottom:0;}
.aw-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;}
.aw-card.buy::before{background:var(--green);}
.aw-card.sell::before{background:var(--red);}
.aw-card.hold::before{background:var(--gold);}
.aw-card.watch::before{background:var(--blue);}
.aw-card:hover{transform:translateY(-1px);box-shadow:var(--sh-md);background:var(--surface);}
.aw-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:3px;}
.aw-sym{font-size:var(--fs-base);font-weight:700;}
.aw-act{font-size:9px;font-weight:700;padding:2px 7px;border-radius:20px;}
.aw-act.BUY{background:var(--green-bg);color:var(--green);}
.aw-act.SELL{background:var(--red-bg);color:var(--red);}
.aw-act.HOLD{background:rgba(180,83,9,.1);color:var(--gold);}
.aw-act.WATCH{background:rgba(29,78,216,.08);color:var(--blue);}
.aw-title{font-size:var(--fs-xs);color:var(--text2);line-height:1.4;margin-bottom:4px;}
.aw-prices{display:flex;gap:7px;font-size:var(--fs-xs);margin-bottom:3px;}
.awp{display:flex;flex-direction:column;}
.awp-l{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;}
.awp-v{font-weight:700;font-family:var(--mono);}
.aw-foot{display:flex;justify-content:space-between;font-size:10px;color:var(--text2);}

/* MODAL */
.modal-ov{display:none;position:fixed;inset:0;background:rgba(17,24,39,.5);z-index:3000;align-items:center;justify-content:center;backdrop-filter:blur(6px);}
.modal-ov.show{display:flex;}
.modal{background:var(--surface);border-radius:18px;padding:28px;width:90%;max-width:370px;text-align:center;box-shadow:var(--sh-lg);border:1px solid var(--border);animation:modalIn .25s cubic-bezier(.34,1.56,.64,1);}
@keyframes modalIn{from{opacity:0;transform:scale(.93) translateY(10px)}to{opacity:1;transform:none}}
.modal h2{font-size:var(--fs-xl);margin-bottom:6px;}
.modal p{color:var(--text2);font-size:var(--fs-sm);margin-bottom:18px;line-height:1.55;}
.btn-gg{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:12px;border:1.5px solid var(--border);border-radius:10px;background:var(--surface);font-size:var(--fs-base);font-weight:600;transition:all .14s;cursor:pointer;margin-bottom:8px;}
.btn-gg:hover{border-color:var(--blue);background:#eff6ff;transform:translateY(-1px);}
.btn-guest{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:12px;border:1.5px solid var(--border);border-radius:10px;background:var(--bg);font-size:var(--fs-base);font-weight:600;transition:all .14s;cursor:pointer;}
.btn-guest:hover{background:var(--surface);transform:translateY(-1px);}
.modal-divider{display:flex;align-items:center;gap:9px;margin:4px 0 8px;color:var(--text3);font-size:var(--fs-xs);}
.modal-divider::before,.modal-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.modal-disclaimer{font-size:10px;color:var(--text3);margin-top:14px;line-height:1.5;}

/* APP BODY */
.app-body{margin-left:220px;min-height:100vh;}

/* MOBILE TOP HEADER */
.mob-header{
  display:none;position:sticky;top:0;z-index:700;
  background:#fff;border-bottom:1px solid var(--border);
  height:50px;align-items:center;justify-content:space-between;
  padding:0 14px;box-shadow:0 1px 6px rgba(0,0,0,.05);
}
.mob-header-logo{font-size:16px;font-weight:800;color:var(--navy);display:flex;align-items:center;gap:7px;}
.mob-header-logo-box{width:26px;height:26px;background:linear-gradient(135deg,#6d28d9,#4338ca);border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:13px;}
.mob-header-logo span{color:var(--purple);}
.mob-header-right{display:flex;align-items:center;gap:8px;}
.mob-header-right .btn-login{padding:5px 12px;font-size:var(--fs-xs);width:auto;}

/* MOBILE BREADCRUMB */
.mob-breadcrumb{
  display:none;align-items:center;gap:6px;
  padding:7px 14px;background:#fff;border-bottom:1px solid var(--border);
  font-size:var(--fs-xs);color:var(--text2);font-weight:500;
  position:sticky;top:50px;z-index:89;
}
.mob-breadcrumb a{color:var(--purple);font-weight:600;}
.mob-breadcrumb-cur{color:var(--text);font-weight:700;}

@media(max-width:720px){
  .nav{display:flex!important;position:fixed;top:0;left:0;bottom:0;width:220px;z-index:800;transform:translateX(-220px);box-shadow:4px 0 20px rgba(0,0,0,.15);}
  .app-body{margin-left:0;}
  .mob-header{display:flex;}
  .mob-breadcrumb{display:flex;}
  .ham-btn{display:flex;align-items:center;justify-content:center;}
}

.nav{transition:transform .25s cubic-bezier(.4,0,.2,1);}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:799;opacity:0;transition:opacity .25s;}
.sidebar-overlay.open{display:block;opacity:1;}
.nav.open{transform:translateX(0)!important;}
.ham-btn{display:none;background:none;border:none;cursor:pointer;padding:6px;border-radius:7px;color:var(--navy);font-size:20px;line-height:1;transition:.14s;}
.ham-btn:hover{background:rgba(109,40,217,.07);color:var(--purple);}

/* NEW LAYOUT */
.advice-section{padding:6px 12px 4px;}
.advice-section .advice-panel{width:100%;}
.advice-body-horiz{padding:10px;overflow-x:auto;}
.aw-horiz-inner{display:flex;flex-direction:row;gap:10px;min-width:0;}
.aw-horiz-inner .aw2-card{flex:0 0 220px;min-width:200px;max-width:240px;margin-bottom:0;}
.advice-body-horiz::-webkit-scrollbar{height:4px;}
.advice-body-horiz::-webkit-scrollbar-track{background:var(--bg);}
.advice-body-horiz::-webkit-scrollbar-thumb{background:var(--border2);border-radius:10px;}

.news-section{padding:4px 12px;}
.news-section .news-panel{width:100%;}
.news-section .news-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));border-top:1px solid var(--border);}
.ni2{background:#fff;}
.ni2:nth-child(6n+1){border-left:3px solid #6d28d9;}
.ni2:nth-child(6n+2){border-left:3px solid #16a34a;}
.ni2:nth-child(6n+3){border-left:3px solid #1d4ed8;}
.ni2:nth-child(6n+4){border-left:3px solid #b45309;}
.ni2:nth-child(6n+5){border-left:3px solid #dc2626;}
.ni2:nth-child(6n+6){border-left:3px solid #0e7490;}
.ni2-t{font-size:var(--fs-base)!important;font-weight:600;line-height:1.5;color:var(--text);margin-bottom:6px;}
.ni2-cat{font-size:10px!important;}
.ni2-m{font-size:var(--fs-xs)!important;}
.ni2-src{font-size:var(--fs-xs)!important;font-weight:600;}

.chart-section{padding:4px 12px 10px;}
.chart-section .chart-wrap{margin-bottom:0;}

@media(min-width:721px){
  .app-body{height:100vh;overflow-y:scroll;scrollbar-width:thin;scrollbar-color:var(--border2) transparent;}
  .app-body::-webkit-scrollbar{width:6px;}
  .app-body::-webkit-scrollbar-track{background:var(--bg);}
  .app-body::-webkit-scrollbar-thumb{background:var(--border2);border-radius:10px;}
  .app-body::-webkit-scrollbar-thumb:hover{background:#a1a1aa;}
}

#page-home .main{display:none!important;}

@media(max-width:960px){.aw-horiz-inner .aw2-card{flex:0 0 190px;min-width:180px;}}

@media(max-width:720px){
  .advice-body-horiz{padding:8px;overflow-x:hidden;}
  .aw-horiz-inner{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;}
  .aw-horiz-inner .aw2-card{flex:none;min-width:0;max-width:none;width:100%;margin-bottom:0;}
  .advice-section,.chart-section,.broker-section,.econ-section{padding-left:8px;padding-right:8px;}
}

/* LOCKED CARD */
.aw2-locked-body{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 6px;gap:4px;text-align:center;min-height:80px;}
.aw2-lock-icon{font-size:22px;line-height:1;}
.aw2-lock-msg{font-size:var(--fs-sm);font-weight:700;color:var(--purple);margin-top:2px;}
.aw2-lock-sub{font-size:10px;color:var(--text2);line-height:1.4;}
.aw2-lock-cta{margin-top:6px;font-size:10px;font-weight:700;background:linear-gradient(135deg,#6d28d9,#4338ca);color:#fff;padding:4px 12px;border-radius:20px;box-shadow:0 2px 6px rgba(109,40,217,.3);white-space:nowrap;}
.aw2-card.locked-promo{background:#fff;border:1px dashed var(--border2);}

/* PWA INSTALL BANNER */
#pwa-banner{display:none;position:fixed;bottom:max(calc(env(safe-area-inset-bottom,0px) + 72px),84px);left:50%;transform:translateX(-50%);background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--sh-lg);padding:14px 16px;width:min(340px,calc(100vw - 28px));z-index:8000;align-items:center;gap:12px;animation:pwaUp .3s cubic-bezier(.34,1.56,.64,1);}
@keyframes pwaUp{from{opacity:0;transform:translateX(-50%) translateY(24px);}to{opacity:1;transform:translateX(-50%) translateY(0);}}
.pwa-icon{width:40px;height:40px;background:linear-gradient(135deg,#6d28d9,#4338ca);border-radius:10px;display:grid;place-items:center;font-size:20px;flex-shrink:0;}
.pwa-text{flex:1;min-width:0;}
.pwa-text strong{display:block;font-size:var(--fs-sm);font-weight:700;color:var(--navy);}
.pwa-text span{font-size:var(--fs-xs);color:var(--text2);}
.pwa-btns{display:flex;flex-direction:column;gap:5px;flex-shrink:0;}
.pwa-install-btn{background:linear-gradient(135deg,#6d28d9,#4338ca);color:#fff;border:none;border-radius:7px;padding:7px 14px;font-size:var(--fs-xs);font-weight:700;cursor:pointer;white-space:nowrap;}
.pwa-dismiss-btn{background:none;border:1px solid var(--border);border-radius:7px;padding:5px 14px;font-size:var(--fs-xs);font-weight:600;color:var(--text2);cursor:pointer;white-space:nowrap;}

#ios-hint{display:none;position:fixed;left:50%;bottom:90px;transform:translateX(-50%);width:320px;max-width:calc(100vw - 24px);background:#ffffff;border-radius:18px;padding:18px;z-index:99999;box-shadow:0 10px 40px rgba(0,0,0,.15);border:1px solid var(--border);text-align:center;}
#ios-hint *{pointer-events:auto;}
#ios-hint button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
.ios-close{position:absolute;top:10px;right:10px;width:30px;height:30px;border:none;background:var(--bg);border-radius:50%;font-size:15px;color:var(--text2);}

/* ── BROKER / OPEN ACCOUNT SECTION ── */
.broker-section{padding:4px 12px 4px;}
.broker-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);}

/* Header */
.broker-header{
  background:linear-gradient(135deg,#0c0c1d 0%,#13112a 40%,#1a1040 100%);
  padding:18px 20px;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid rgba(139,92,246,.2);
  position:relative;overflow:hidden;
}
.broker-header::before{
  content:'';position:absolute;top:-30px;right:-30px;
  width:130px;height:130px;
  background:radial-gradient(circle,rgba(139,92,246,.18),transparent 70%);
  border-radius:50%;
}
.broker-header::after{
  content:'';position:absolute;bottom:-20px;left:60px;
  width:90px;height:90px;
  background:radial-gradient(circle,rgba(59,130,246,.12),transparent 70%);
  border-radius:50%;
}
.broker-header-left{display:flex;align-items:center;gap:12px;position:relative;z-index:1;}
.broker-header-icon{
  width:42px;height:42px;
  background:linear-gradient(135deg,#7c3aed,#4f46e5);
  border-radius:12px;display:grid;place-items:center;font-size:20px;
  flex-shrink:0;box-shadow:0 4px 14px rgba(124,58,237,.4);
}
.broker-header-title{font-size:17px;font-weight:800;color:#fff;letter-spacing:-.3px;line-height:1.2;}
.broker-header-sub{font-size:11px;color:rgba(196,181,253,.75);margin-top:3px;font-weight:500;}
.broker-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;position:relative;z-index:1;}
.broker-live-badge{
  display:flex;align-items:center;gap:5px;
  background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.25);
  padding:4px 11px;border-radius:20px;
}
.broker-live-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;animation:blink 1.4s infinite;}
.broker-live-txt{font-size:10px;font-weight:700;color:#22c55e;}
.broker-trust{font-size:10px;color:rgba(196,181,253,.65);font-weight:500;}

/* Stats strip */
.broker-stats{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-bottom:1px solid var(--border);
  background:linear-gradient(135deg,#fafbff,#f5f3ff);
}
@media(max-width:580px){.broker-stats{grid-template-columns:repeat(2,1fr);}}
.broker-stat{
  padding:10px 12px;border-right:1px solid var(--border);
  text-align:center;
}
.broker-stat:last-child{border-right:none;}
.broker-stat-val{font-size:17px;font-weight:800;color:var(--navy);font-family:var(--mono);line-height:1.1;}
.broker-stat-lbl{font-size:9.5px;color:var(--text2);font-weight:600;margin-top:2px;text-transform:uppercase;letter-spacing:.4px;}

/* Body */
.broker-body{padding:16px 16px 8px;}
.broker-intro{
  text-align:center;margin-bottom:16px;
}
.broker-intro-title{font-size:15px;font-weight:700;color:var(--navy);margin-bottom:4px;}
.broker-intro-sub{font-size:12px;color:var(--text2);line-height:1.5;}

/* Grid of broker cards */
.broker-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:12px;
  margin-bottom:14px;
}
@media(max-width:580px){.broker-grid{grid-template-columns:repeat(2,1fr);gap:8px;}}

/* Individual broker card */
.broker-card{
  border:1.5px solid var(--border);
  border-radius:12px;
  padding:0;
  overflow:hidden;
  cursor:pointer;
  transition:all .18s;
  background:#fff;
  position:relative;
  box-shadow:0 1px 4px rgba(0,0,0,.05);
  display:flex;flex-direction:column;
}
.broker-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 28px rgba(0,0,0,.1);
  border-color:var(--broker-accent,#6d28d9);
}
.broker-card-top{
  padding:14px 14px 10px;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--border);
  background:var(--broker-bg,rgba(109,40,217,.04));
}
.broker-logo-wrap{
  display:flex;align-items:center;gap:9px;
}
.broker-logo{
  width:38px;height:38px;border-radius:9px;
  object-fit:contain;background:#fff;
  border:1px solid var(--border);
  padding:4px;
  flex-shrink:0;
  /* Fallback background if image fails */
  display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:800;
}
.broker-logo img{width:100%;height:100%;object-fit:contain;border-radius:6px;}
.broker-name{font-size:13.5px;font-weight:800;color:var(--navy);}
.broker-tagline{font-size:10px;color:var(--text2);margin-top:1px;font-weight:500;}
.broker-rating{
  display:flex;flex-direction:column;align-items:flex-end;gap:2px;
}
.broker-stars{font-size:11px;color:#f59e0b;letter-spacing:.5px;}
.broker-rating-num{font-size:10px;font-weight:700;color:var(--text2);}

/* Card body */
.broker-card-body{padding:10px 14px 12px;flex:1;display:flex;flex-direction:column;gap:6px;}
.broker-features{display:flex;flex-direction:column;gap:4px;}
.broker-feat{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text2);}
.broker-feat::before{content:'✓';font-weight:700;color:var(--broker-accent,#16a34a);font-size:11px;flex-shrink:0;}
.broker-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;}
.broker-badge{
  font-size:9px;font-weight:700;padding:2px 7px;border-radius:20px;
  background:var(--broker-bg,rgba(109,40,217,.08));
  color:var(--broker-accent,#6d28d9);
  border:1px solid var(--broker-border,rgba(109,40,217,.15));
}
.broker-special{
  font-size:10.5px;font-weight:700;color:var(--broker-accent,#6d28d9);
  background:var(--broker-bg,rgba(109,40,217,.06));
  border-radius:6px;padding:4px 8px;margin-top:2px;
  border-left:3px solid var(--broker-accent,#6d28d9);
}
/* CTA button */
.broker-cta{
  display:flex;align-items:center;justify-content:center;gap:6px;
  width:100%;padding:9px;
  background:linear-gradient(135deg,var(--broker-accent,#6d28d9),var(--broker-accent2,#4338ca));
  color:#fff;border-radius:8px;
  font-size:12px;font-weight:700;
  transition:all .15s;
  text-decoration:none;
  box-shadow:0 2px 8px var(--broker-shadow,rgba(109,40,217,.25));
  margin:8px 14px 12px;
}
.broker-cta:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 16px var(--broker-shadow,rgba(109,40,217,.35));
  filter:brightness(1.05);
}
.broker-cta-arrow{font-size:13px;}

/* Compare table */
.broker-compare{
  background:var(--bg);border-radius:10px;
  padding:12px 14px;margin-bottom:10px;
  border:1px solid var(--border);
}
.broker-compare-title{
  font-size:11px;font-weight:700;color:var(--text2);
  text-transform:uppercase;letter-spacing:.5px;
  margin-bottom:10px;display:flex;align-items:center;gap:5px;
}
.broker-tbl{width:100%;border-collapse:collapse;font-size:11.5px;}
.broker-tbl th{
  font-size:9.5px;font-weight:700;text-transform:uppercase;
  color:var(--text3);padding:5px 8px;
  border-bottom:1px solid var(--border);
  text-align:left;white-space:nowrap;
}
.broker-tbl td{padding:7px 8px;border-bottom:1px solid rgba(228,231,239,.5);color:var(--text2);vertical-align:middle;}
.broker-tbl tbody tr:last-child td{border-bottom:none;}
.broker-tbl tbody tr:hover td{background:#fff;}
.broker-tbl td:first-child{font-weight:700;color:var(--navy);}
.broker-tbl .free{color:#16a34a;font-weight:700;}
.broker-tbl .paid{color:var(--text2);}
.tbl-open-btn{
  display:inline-flex;align-items:center;gap:3px;
  font-size:10px;font-weight:700;
  padding:3px 9px;border-radius:20px;
  color:#fff;text-decoration:none;transition:all .13s;
  white-space:nowrap;
}
.tbl-open-btn:hover{transform:translateY(-1px);filter:brightness(1.1);}

/* Disclaimer */
.broker-disclaimer{
  font-size:10px;color:var(--text3);
  text-align:center;padding:8px 14px 12px;
  line-height:1.55;border-top:1px solid var(--border);
  background:var(--surface2);
}
.broker-disclaimer a{color:var(--blue);font-weight:600;}

/* Mobile */
@media(max-width:720px){
  .broker-section{padding-left:8px;padding-right:8px;}
  .broker-header{padding:14px 14px;}
  .broker-header-title{font-size:15px;}
  .broker-body{padding:12px 12px 6px;}
  .broker-tbl{font-size:10.5px;}
  .broker-tbl th{font-size:9px;}
}
.chart-section{content-visibility:auto;contain-intrinsic-size:auto 700px;}
.ipo-section{content-visibility:auto;contain-intrinsic-size:auto 500px;}
.broker-section{content-visibility:auto;contain-intrinsic-size:auto 480px;}
.econ-section{content-visibility:auto;contain-intrinsic-size:auto 650px;}
/* NEW LAYOUT */
.advice-section{padding:6px 10px 4px;}
.advice-section .advice-panel{width:100%;}
.advice-body-horiz{padding:10px;overflow-x:auto;}
.aw-horiz-inner{
  display:flex;
  flex-direction:row;
  gap:10px;
  min-width:0;
}
.aw-horiz-inner .aw2-card{
  flex:0 0 220px;
  min-width:200px;
  max-width:240px;
  margin-bottom:0;
}
.advice-body-horiz::-webkit-scrollbar{height:5px;}
.advice-body-horiz::-webkit-scrollbar-track{background:var(--bg);}
.advice-body-horiz::-webkit-scrollbar-thumb{background:var(--border2);border-radius:10px;}

.news-section{padding:4px 10px 4px;}
.news-section .news-panel{width:100%;}

.news-section .news-body{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  border-top:1px solid var(--border);
}
.ni2{background:#fff;}
.ni2:nth-child(6n+1){border-left:3px solid #7c3aed;}
.ni2:nth-child(6n+2){border-left:3px solid #059669;}
.ni2:nth-child(6n+3){border-left:3px solid #2563eb;}
.ni2:nth-child(6n+4){border-left:3px solid #d97706;}
.ni2:nth-child(6n+5){border-left:3px solid #dc2626;}
.ni2:nth-child(6n+6){border-left:3px solid #0891b2;}
.ni2-t{
  font-size:14px !important;
  font-weight:600;
  line-height:1.55;
  color:var(--text);
  margin-bottom:7px;
}
.ni2-cat{font-size:9.5px !important;}
.ni2-m{font-size:11px !important;}
.ni2-src{font-size:11px !important;font-weight:700;}

.chart-section{padding:4px 10px 10px;}
.chart-section .chart-wrap{margin-bottom:0;}

@media(min-width:721px){
  .app-body{
    height:100vh;
    overflow-y:scroll;
    scrollbar-width:thin;
    scrollbar-color:var(--border2) transparent;
  }
  .app-body::-webkit-scrollbar{width:7px;}
  .app-body::-webkit-scrollbar-track{background:var(--bg);}
  .app-body::-webkit-scrollbar-thumb{background:var(--border2);border-radius:10px;}
  .app-body::-webkit-scrollbar-thumb:hover{background:#b0b8cc;}
}

#page-home .main{display:none!important;}

@media(max-width:960px){
  .aw-horiz-inner .aw2-card{flex:0 0 190px;min-width:180px;}
}

@media(max-width:720px){
  .advice-body-horiz{padding:8px;overflow-x:hidden;}
  .aw-horiz-inner{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    width:100%;
  }
  .aw-horiz-inner .aw2-card{
    flex:none;min-width:0;max-width:none;width:100%;margin-bottom:0;
  }
  .advice-section,.news-section,.chart-section,.ipo-section{padding-left:7px;padding-right:7px;}
}

/* LOCKED CARD */
.aw2-locked-body{
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;padding:10px 6px;gap:4px;
  text-align:center;min-height:80px;
}
.aw2-lock-icon{font-size:22px;line-height:1;}
.aw2-lock-msg{font-size:12px;font-weight:800;color:var(--purple);margin-top:2px;}
.aw2-lock-sub{font-size:10px;color:var(--text2);line-height:1.4;}
.aw2-lock-cta{
  margin-top:6px;font-size:10px;font-weight:700;
  background:linear-gradient(135deg,#7c3aed,#4f46e5);
  color:#fff;padding:4px 12px;border-radius:20px;
  box-shadow:0 2px 8px rgba(124,58,237,.3);white-space:nowrap;
}
.aw2-card.locked-promo{
  background:linear-gradient(150deg,rgba(124,58,237,.09) 0%,rgba(196,181,253,.12) 40%,#fff 72%);
  box-shadow:0 2px 12px rgba(124,58,237,.10);
}

/* PWA INSTALL BANNER */
#pwa-banner{
  display:none;position:fixed;
  bottom:max(calc(env(safe-area-inset-bottom,0px) + 72px),84px);
  left:50%;transform:translateX(-50%);
  background:#fff;border:1px solid #e2e6ef;border-radius:16px;
  box-shadow:0 8px 32px rgba(0,0,0,.14);
  padding:14px 16px;width:min(340px,calc(100vw - 28px));
  z-index:8000;align-items:center;gap:12px;
  animation:pwaUp .3s cubic-bezier(.34,1.56,.64,1);
}
@keyframes pwaUp{
  from{opacity:0;transform:translateX(-50%) translateY(24px);}
  to{opacity:1;transform:translateX(-50%) translateY(0);}
}
.pwa-icon{width:42px;height:42px;background:linear-gradient(135deg,#7c3aed,#4f46e5);border-radius:10px;display:grid;place-items:center;font-size:20px;flex-shrink:0;}
.pwa-text{flex:1;min-width:0;}
.pwa-text strong{display:block;font-size:13px;font-weight:800;color:#0f172a;}
.pwa-text span{font-size:11px;color:#5a6378;}
.pwa-btns{display:flex;flex-direction:column;gap:5px;flex-shrink:0;}
.pwa-install-btn{background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;border:none;border-radius:8px;padding:7px 14px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;}
.pwa-dismiss-btn{background:none;border:1px solid #e2e6ef;border-radius:8px;padding:5px 14px;font-size:11px;font-weight:600;color:#5a6378;cursor:pointer;white-space:nowrap;}

#ios-hint{
  display:none;
  position:fixed;
  left:50%;
  bottom:90px;
  transform:translateX(-50%);
  width:320px;
  max-width:calc(100vw - 24px);
  background:#ffffff;
  border-radius:18px;
  padding:18px;
  z-index:99999;
  box-shadow:0 10px 40px rgba(0,0,0,.18);
  border:1px solid #e5e7eb;
  text-align:center;
}
#ios-hint *{pointer-events:auto;}
#ios-hint button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
.ios-close{
  position:absolute;top:10px;right:10px;width:32px;height:32px;
  border:none;background:#f3f4f6;border-radius:50%;font-size:16px;color:#374151;
}

/* FIX P2: 'auto' keyword prevents CLS on scroll-back */
/* FIX P2: auto keyword prevents CLS on scroll-back */
.news-section{content-visibility:auto;contain-intrinsic-size:auto 600px;}
.chart-section{content-visibility:auto;contain-intrinsic-size:auto 700px;}
.ipo-section{content-visibility:auto;contain-intrinsic-size:auto 500px;}
.broker-section{content-visibility:auto;contain-intrinsic-size:auto 480px;}

/* ── IPO DASHBOARD ── */
.ipo-section{padding:4px 10px 4px;}
.ipo-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:0 4px 24px rgba(124,58,237,.08);}
.ipo-header{background:linear-gradient(135deg,#1e1b4b 0%,#312e81 100%);padding:14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(129,140,248,.25);position:relative;overflow:hidden;}
.ipo-header::before{content:'';position:absolute;top:-15px;right:-15px;width:80px;height:80px;background:radial-gradient(circle,rgba(129,140,248,.2),transparent 70%);border-radius:50%;}
.ipo-header-left{display:flex;align-items:center;gap:9px;position:relative;z-index:1;}
.ipo-header-icon{width:36px;height:36px;background:linear-gradient(135deg,#6366f1,#4f46e5);border-radius:10px;display:grid;place-items:center;font-size:17px;flex-shrink:0;box-shadow:0 4px 12px rgba(99,102,241,.4);}
.ipo-header-title{font-size:13.5px;font-weight:800;color:#fff;letter-spacing:-.2px;}
.ipo-header-sub{font-size:9.5px;color:rgba(199,210,254,.8);margin-top:1px;font-weight:600;}
.ipo-refresh-btn{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:7px;padding:5px 9px;font-size:10px;font-weight:700;color:#fff;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:4px;position:relative;z-index:1;}
.ipo-refresh-btn:hover{background:rgba(255,255,255,.2);transform:translateY(-1px);}
.ipo-refresh-btn.spinning svg{animation:spin 1s linear infinite;}
.ipo-tabs{display:flex;gap:0;background:var(--bg);border-bottom:1px solid var(--border);padding:8px 12px 0;overflow-x:auto;}
.ipo-tab{padding:7px 14px;font-size:11.5px;font-weight:600;color:var(--text2);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:all .13s;background:none;border-radius:0;}
.ipo-tab.on{color:var(--purple);border-bottom-color:var(--purple);font-weight:700;}
.ipo-tab:hover:not(.on){color:var(--text);border-bottom-color:var(--border2);}
.ipo-body{padding:0;}
.ipo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0;border-top:1px solid var(--border);}
.ipo-card{padding:14px 16px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff;transition:all .13s;cursor:default;}
.ipo-card:hover{background:linear-gradient(135deg,rgba(99,102,241,.03),rgba(124,58,237,.02));}
.ipo-card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px;gap:8px;}
.ipo-company{font-size:var(--fs-base);font-weight:700;color:var(--navy);line-height:1.3;}
.ipo-type-tag{font-size:9px;font-weight:700;padding:3px 8px;border-radius:8px;white-space:nowrap;flex-shrink:0;}
.ipo-type-main{background:rgba(99,102,241,.12);color:#4338ca;}
.ipo-type-sme{background:rgba(217,119,6,.12);color:#b45309;}
.ipo-type-listed{background:rgba(5,150,105,.12);color:#047857;}
.ipo-meta-row{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px;}
.ipo-meta-pill{display:flex;flex-direction:column;background:var(--bg);border-radius:6px;padding:4px 8px;min-width:60px;}
.ipo-meta-lbl{font-size:8px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:1px;}
.ipo-meta-val{font-size:11.5px;font-weight:700;color:var(--navy);font-family:var(--mono);}
.ipo-gmp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 9px;border-radius:7px;margin-bottom:8px;border:1px solid;}
.ipo-gmp-pos{background:rgba(5,150,105,.07);border-color:rgba(5,150,105,.2);}
.ipo-gmp-neg{background:rgba(220,38,38,.06);border-color:rgba(220,38,38,.15);}
.ipo-gmp-neu{background:rgba(100,116,139,.06);border-color:rgba(100,116,139,.15);}
.ipo-gmp-label{font-size:10px;font-weight:700;color:var(--text2);}
.ipo-gmp-val{font-size:13px;font-weight:800;font-family:var(--mono);}
.ipo-gmp-pct{font-size:10.5px;font-weight:700;font-family:var(--mono);}
.ipo-gmp-disclaimer{font-size:9px;color:var(--text3);font-style:italic;margin-bottom:6px;line-height:1.4;padding:0 1px;}
/* ── IPO DASHBOARD — REDESIGNED ── */
.ipo-section{padding:4px 12px 4px;}
.ipo-panel{background:#fff;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);}
.ipo-header{background:linear-gradient(135deg,#1e1b4b 0%,#312e81 100%);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;}
.ipo-header-left{display:flex;align-items:center;gap:10px;}
.ipo-header-icon{width:34px;height:34px;background:rgba(255,255,255,.14);border-radius:9px;display:grid;place-items:center;font-size:17px;flex-shrink:0;}
.ipo-header-title{font-size:14px;font-weight:700;color:#fff;}
.ipo-header-sub{font-size:10px;color:rgba(199,210,254,.8);margin-top:1px;font-weight:500;}
.ipo-refresh-btn{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:7px;padding:5px 10px;font-size:10px;font-weight:600;color:#fff;cursor:pointer;transition:all .14s;display:flex;align-items:center;gap:4px;}
.ipo-refresh-btn:hover{background:rgba(255,255,255,.22);transform:translateY(-1px);}
.ipo-refresh-btn.spinning svg{animation:spin 1s linear infinite;}
/* Stats row */
.ipo-stats-row{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--border);background:#fafbff;}
.ipo-stat{padding:10px 12px;border-right:1px solid var(--border);text-align:center;}
.ipo-stat:last-child{border-right:none;}
.ipo-stat-val{font-size:20px;font-weight:700;color:var(--navy);font-family:var(--mono);}
.ipo-stat-lbl{font-size:9.5px;color:var(--text2);font-weight:600;margin-top:2px;text-transform:uppercase;letter-spacing:.3px;}
/* Filter tabs */
.ipo-tabs{display:flex;overflow-x:auto;border-bottom:1px solid var(--border);background:#fafbff;}
.ipo-tabs::-webkit-scrollbar{height:0;}
.ipo-tab{padding:9px 16px;font-size:11.5px;font-weight:600;color:var(--text2);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:all .12s;background:none;flex-shrink:0;}
.ipo-tab.on{color:#4f46e5;border-bottom-color:#4f46e5;font-weight:700;}
.ipo-tab:hover:not(.on){color:var(--text);}
/* Grid */
.ipo-body{padding:0;}
.ipo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));}
/* Card redesign */
.ipo-card{
  padding:16px;
  border-right:1px solid var(--border);
  border-bottom:1px solid var(--border);
  background:#fff;
  transition:background .12s;
  cursor:default;
  display:flex;flex-direction:column;gap:10px;
  position:relative;
}
.ipo-card:hover{background:#f8f9ff;}
/* Left accent stripe by status */
.ipo-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;}
.ipo-card.status-open::before{background:#16a34a;}
.ipo-card.status-upcoming::before{background:#4f46e5;}
.ipo-card.status-closed::before{background:#64748b;}
.ipo-card.status-listed::before{background:#d97706;}
/* Card top */
.ipo-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.ipo-company{font-size:14px;font-weight:700;color:#111827;line-height:1.3;}
.ipo-type-tag{font-size:9.5px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap;flex-shrink:0;border:1px solid;}
.ipo-type-main{background:#ede9fe;color:#4338ca;border-color:#c4b5fd;}
.ipo-type-sme{background:#fef3c7;color:#b45309;border-color:#fde68a;}
.ipo-type-listed{background:#d1fae5;color:#065f46;border-color:#6ee7b7;}
/* Info grid */
.ipo-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.ipo-info-item{display:flex;flex-direction:column;gap:1px;background:var(--bg);border-radius:7px;padding:7px 9px;border:1px solid var(--border);}
.ipo-info-lbl{font-size:9.5px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.3px;}
.ipo-info-val{font-size:12.5px;font-weight:700;color:#111827;font-family:var(--mono);}
/* GMP box */
.ipo-gmp-box{border-radius:8px;padding:9px 12px;border:1px solid;display:flex;align-items:center;justify-content:space-between;}
.ipo-gmp-pos{background:#f0fdf4;border-color:#bbf7d0;}
.ipo-gmp-neg{background:#fff1f2;border-color:#fecdd3;}
.ipo-gmp-neu{background:#f8fafc;border-color:var(--border);}
.ipo-gmp-left{display:flex;flex-direction:column;gap:2px;}
.ipo-gmp-label{font-size:10px;font-weight:600;color:var(--text2);}
.ipo-gmp-val{font-size:14px;font-weight:700;font-family:var(--mono);}
.ipo-gmp-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;}
.ipo-gmp-est-lbl{font-size:9.5px;font-weight:600;color:var(--text2);}
.ipo-gmp-est-val{font-size:13px;font-weight:700;font-family:var(--mono);}
/* Subscription bar */
.ipo-sub-wrap{display:flex;flex-direction:column;gap:4px;}
.ipo-sub-header{display:flex;justify-content:space-between;align-items:center;}
.ipo-sub-label{font-size:11px;font-weight:600;color:var(--text2);}
.ipo-sub-val{font-size:12px;font-weight:700;font-family:var(--mono);}
.ipo-sub-track{height:6px;background:var(--bg);border-radius:20px;overflow:hidden;border:1px solid var(--border);}
.ipo-sub-fill{height:100%;border-radius:20px;transition:width .6s ease;}
/* Footer */
.ipo-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:4px;border-top:1px solid var(--border);}
.ipo-status-badge{font-size:10px;font-weight:700;padding:4px 11px;border-radius:20px;border:1px solid;}
.ipo-status-open{background:#d1fae5;color:#065f46;border-color:#6ee7b7;}
.ipo-status-upcoming{background:#ede9fe;color:#4338ca;border-color:#c4b5fd;}
.ipo-status-closed{background:#f1f5f9;color:#475569;border-color:#cbd5e1;}
.ipo-status-listed{background:#fef3c7;color:#92400e;border-color:#fde68a;}
.ipo-listing-gain{font-size:12px;font-weight:700;font-family:var(--mono);}
.ipo-gmp-disclaimer{font-size:9px;color:var(--text3);font-style:italic;line-height:1.4;}
.ipo-allotment-note{font-size:10px;color:var(--text2);display:flex;align-items:center;gap:4px;}
/* Empty/loading */
.ipo-empty{text-align:center;padding:32px 20px;color:var(--text3);font-size:12px;}
.ipo-loading{text-align:center;padding:28px 20px;color:var(--text3);font-size:12px;}
/* Disclaimer */
.ipo-disclaimer-bar{padding:10px 16px;background:#fffbeb;border-top:1px solid #fde68a;display:flex;align-items:flex-start;gap:7px;font-size:10.5px;color:#92400e;line-height:1.55;}
@media(max-width:720px){
  .ipo-stats-row{grid-template-columns:repeat(2,1fr);}
  .ipo-grid{grid-template-columns:1fr;}
  .ipo-section{padding-left:8px;padding-right:8px;}
  .ipo-info-grid{grid-template-columns:1fr 1fr;}
}


/* ── ECONOMIC CALENDAR ── */
.econ-section{padding:4px 10px 10px;content-visibility:auto;contain-intrinsic-size:auto 600px;}
.econ-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:0 4px 24px rgba(37,99,235,.08);}
.econ-header{background:linear-gradient(135deg,#052e16 0%,#14532d 50%,#166534 100%);padding:14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(74,222,128,.2);position:relative;overflow:hidden;}
.econ-header::before{content:'';position:absolute;top:-15px;right:-15px;width:80px;height:80px;background:radial-gradient(circle,rgba(52,211,153,.15),transparent 70%);border-radius:50%;}
.econ-header-left{display:flex;align-items:center;gap:9px;position:relative;z-index:1;}
.econ-header-icon{width:36px;height:36px;background:linear-gradient(135deg,#10b981,#059669);border-radius:10px;display:grid;place-items:center;font-size:17px;flex-shrink:0;box-shadow:0 4px 12px rgba(16,185,129,.4);}
.econ-header-title{font-size:13.5px;font-weight:800;color:#fff;letter-spacing:-.2px;}
.econ-header-sub{font-size:9.5px;color:rgba(167,243,208,.85);margin-top:1px;font-weight:600;}
.econ-ctrl-row{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface2);border-bottom:1px solid var(--border);flex-wrap:wrap;}
.econ-filter-tabs{display:flex;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:2px;overflow-x:auto;}
.econ-ftab{padding:4px 10px;border-radius:5px;font-size:11px;font-weight:600;color:var(--text2);cursor:pointer;transition:all .13s;white-space:nowrap;background:none;}
.econ-ftab.on{background:linear-gradient(135deg,#059669,#047857);color:#fff;font-weight:700;}
.econ-search{flex:1;min-width:100px;max-width:200px;border:1px solid var(--border);border-radius:6px;padding:5px 9px;font-size:11.5px;background:var(--bg);outline:none;font-family:var(--ff);}
.econ-search:focus{border-color:#059669;background:var(--surface);}
.econ-week-nav{display:flex;align-items:center;gap:5px;margin-left:auto;}
.econ-week-btn{width:26px;height:26px;background:var(--bg);border:1px solid var(--border);border-radius:6px;font-size:13px;cursor:pointer;display:grid;place-items:center;transition:all .13s;color:var(--text2);}
.econ-week-btn:hover{background:#059669;color:#fff;border-color:#059669;}
.econ-week-lbl{font-size:11px;font-weight:700;color:var(--text);white-space:nowrap;}
.econ-body{padding:0;}
.econ-stats{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--border);}
@media(max-width:720px){.econ-stats{grid-template-columns:repeat(3,1fr);}}
.econ-stat{padding:9px 10px;border-right:1px solid var(--border);text-align:center;}
.econ-stat:last-child{border-right:none;}
.econ-stat-val{font-size:18px;font-weight:800;color:var(--navy);font-family:var(--mono);}
.econ-stat-lbl{font-size:9px;color:var(--text2);font-weight:600;margin-top:1px;}
.econ-timeline{display:flex;flex-direction:column;gap:0;}
.econ-day-group{}
.econ-day-header{background:linear-gradient(135deg,rgba(5,150,105,.06),rgba(16,185,129,.03));border-bottom:1px solid var(--border);padding:7px 14px;display:flex;align-items:center;gap:8px;position:sticky;top:0;z-index:5;}
.econ-day-date{font-size:12px;font-weight:800;color:var(--navy);}
.econ-day-badge{font-size:9px;font-weight:700;padding:2px 7px;border-radius:9px;}
.econ-day-today{background:rgba(5,150,105,.12);color:#047857;border:1px solid rgba(5,150,105,.25);}
.econ-day-tomorrow{background:rgba(99,102,241,.1);color:#3730a3;border:1px solid rgba(99,102,241,.2);}
.econ-day-past{background:var(--bg);color:var(--text3);border:1px solid var(--border);}
.econ-event-row{display:grid;grid-template-columns:70px 1fr auto;gap:10px;padding:11px 14px;border-bottom:1px solid rgba(226,230,239,.6);align-items:start;transition:background .12s;}
.econ-event-row:hover{background:rgba(5,150,105,.03);}
.econ-event-row:last-child{border-bottom:none;}
.econ-time{font-size:10.5px;font-weight:700;color:var(--text2);font-family:var(--mono);padding-top:2px;}
.econ-event-main{display:flex;flex-direction:column;gap:3px;}
.econ-event-title{font-size:var(--fs-base);font-weight:600;color:var(--navy);line-height:1.35;}
.econ-event-meta{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:2px;}
.econ-country-flag{font-size:13px;}
.econ-country-lbl{font-size:10px;font-weight:600;color:var(--text2);}
.econ-cat-pill{font-size:9px;font-weight:700;padding:2px 7px;border-radius:9px;}
.econ-actual{font-size:11px;font-weight:700;font-family:var(--mono);}
.econ-forecast{font-size:10.5px;color:var(--text2);font-family:var(--mono);}
.econ-previous{font-size:10px;color:var(--text3);font-family:var(--mono);}
.econ-impact-col{display:flex;flex-direction:column;align-items:flex-end;gap:4px;padding-top:2px;}
.econ-impact{display:flex;gap:2px;}
.econ-imp-dot{width:6px;height:6px;border-radius:50%;}
.econ-imp-high .econ-imp-dot{background:#dc2626;}
.econ-imp-med .econ-imp-dot{background:#d97706;}
.econ-imp-low .econ-imp-dot{background:#9ca3af;}
.econ-upcoming-badge{font-size:9px;font-weight:700;padding:2px 7px;border-radius:9px;background:rgba(99,102,241,.1);color:#3730a3;border:1px solid rgba(99,102,241,.2);}
.econ-beat{color:#059669!important;}.econ-miss{color:#dc2626!important;}.econ-inline{color:var(--gold)!important;}
.econ-empty{text-align:center;padding:32px;color:var(--text3);font-size:12px;}
.econ-loading-msg{text-align:center;padding:28px;color:var(--text3);font-size:12px;}
.econ-source-bar{padding:7px 14px;border-top:1px solid var(--border);background:var(--surface2);font-size:9.5px;color:var(--text3);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px;}
.econ-refresh-btn{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:7px;padding:5px 9px;font-size:10px;font-weight:700;color:#fff;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:4px;position:relative;z-index:1;}
.econ-refresh-btn:hover{background:rgba(255,255,255,.2);transform:translateY(-1px);}
.econ-refresh-btn.spinning svg{animation:spin 1s linear infinite;}
@media(max-width:720px){
  .econ-event-row{grid-template-columns:55px 1fr auto;gap:7px;padding:9px 10px;}
  .econ-section{padding-left:7px;padding-right:7px;}
  .econ-search{max-width:120px;}
}
/* ═══════════════════════════════════════════════════════════
   WHITE GLASSY THEME OVERRIDES — StoxGod Premium Look
   Background: white/glass, Font: black, Minimal color palette
   ═══════════════════════════════════════════════════════════ */

/* Root palette reset to white-rich glass */
:root {
  --bg: #f0f2f7;
  --bg2: #f8f9fc;
  --surface: #ffffff;
  --surface2: #fafbfe;
  --surface3: #f3f5fb;
  --border: rgba(0,0,0,.07);
  --border2: rgba(0,0,0,.11);
  --text: #0a0a0f;
  --text2: #3d3d52;
  --text3: #8a8aaa;
  --navy: #0a0a0f;
  --navy2: #1a1a2e;
  --glass-bg: rgba(255,255,255,.72);
  --glass-bg2: rgba(255,255,255,.55);
  --glass-border: rgba(255,255,255,.6);
  --glass-shadow: 0 8px 32px rgba(0,0,0,.09), 0 1.5px 4px rgba(0,0,0,.05);
  --sh: 0 2px 8px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --sh-md: 0 8px 24px rgba(0,0,0,.1);
  --sh-lg: 0 20px 60px rgba(0,0,0,.14);
}

/* Global body */
body {
  background: linear-gradient(135deg, #eef1f8 0%, #f5f6fa 40%, #edf0f8 100%);
  background-attachment: fixed;
  color: var(--text);
}

/* ── GLASS UTILITY ── */
.glass {
  background: var(--glass-bg);
  backdrop-filter: blur(16px) saturate(1.4);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  border: 1px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
}

/* ── LOADER ── */
#loader { background: linear-gradient(135deg, #f0f2f8, #ffffff); }
.ld-brand { color: #0a0a0f; font-size: 30px; }
.ld-brand em { color: #6d28d9; }
.ld-fill { background: linear-gradient(90deg, #6d28d9, #2563eb); }

/* ── SIDEBAR NAV — Glass ── */
.nav {
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(20px) saturate(1.3);
  -webkit-backdrop-filter: blur(20px) saturate(1.3);
  border-right: 1px solid rgba(0,0,0,.07);
  box-shadow: 2px 0 20px rgba(0,0,0,.07);
}
.nav-logo { color: #0a0a0f; border-bottom-color: rgba(0,0,0,.06); }
.nav-links a { color: #3d3d52; }
.nav-links a:hover { color: #6d28d9; background: rgba(109,40,217,.07); }
.nav-links a.active { color: #6d28d9; background: rgba(109,40,217,.09); border-left-color: #6d28d9; }
.nav-right { border-top-color: rgba(0,0,0,.06); }

/* ── MOBILE HEADER — Glass ── */
.mob-header {
  background: rgba(255,255,255,.88) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(0,0,0,.07) !important;
}
.mob-breadcrumb {
  background: rgba(255,255,255,.80) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(0,0,0,.06) !important;
  color: var(--text2) !important;
}

/* ── INDEX CARDS — Glass panels ── */
.idx-card {
  background: rgba(255,255,255,.8) !important;
  backdrop-filter: blur(12px) saturate(1.2);
  -webkit-backdrop-filter: blur(12px) saturate(1.2);
  border: 1px solid rgba(255,255,255,.7) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,.07), 0 1px 3px rgba(0,0,0,.04);
  transition: transform .18s, box-shadow .18s;
}
.idx-card:hover {
  box-shadow: 0 10px 32px rgba(0,0,0,.12), 0 2px 6px rgba(0,0,0,.06);
  transform: translateY(-3px);
}
.ic-val { color: #0a0a0f !important; font-weight: 800; }
.ic-name { color: var(--text2); }
.ic-lbl { color: var(--text2); }

/* ── ADVICE PANEL — Glass ── */
.advice-panel {
  background: rgba(255,255,255,.82) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,.65) !important;
  box-shadow: 0 6px 24px rgba(0,0,0,.08) !important;
}
.advice-header {
  background: rgba(255,255,255,.7) !important;
  border-bottom: 1px solid rgba(0,0,0,.06) !important;
}
.advice-header-title { color: #0a0a0f !important; font-weight: 800; }
.advice-header-sub { color: var(--text2) !important; }
.aw2-card {
  background: rgba(255,255,255,.85) !important;
  border: 1px solid rgba(0,0,0,.07) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.aw2-card.buy { box-shadow: 0 2px 12px rgba(5,150,105,.08) !important; }
.aw2-card.sell { box-shadow: 0 2px 12px rgba(220,38,38,.07) !important; }
.aw2-sym { color: #0a0a0f !important; }

/* ── NEWS PANEL — Glass ── */
.news-panel {
  background: rgba(255,255,255,.82) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,.65) !important;
  box-shadow: 0 6px 24px rgba(0,0,0,.08) !important;
}
.ni2 {
  background: rgba(255,255,255,.75) !important;
  transition: background .15s, padding-left .15s;
}
.ni2:hover { background: rgba(255,255,255,.95) !important; }
.ni2-t { color: #0a0a0f !important; }

/* ── CHART CARD — Glass ── */
.chart-wrap {
  background: rgba(255,255,255,.85) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,.68) !important;
  box-shadow: 0 6px 24px rgba(0,0,0,.08) !important;
}
.chart-price { color: #0a0a0f !important; }

/* ── CARDS — Glass ── */
.card {
  background: rgba(255,255,255,.82) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.65) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,.07) !important;
}

/* ── STATUS BAR — Glass ── */
.status-bar {
  background: rgba(255,255,255,.75) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(0,0,0,.07) !important;
}

/* ── IPO PANEL — Glass ── */
.ipo-panel {
  background: rgba(255,255,255,.82) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,.65) !important;
  box-shadow: 0 6px 24px rgba(0,0,0,.08) !important;
}
.ipo-card {
  background: rgba(255,255,255,.8) !important;
  transition: background .14s;
}
.ipo-card:hover { background: rgba(255,255,255,.97) !important; }
.ipo-company { color: #0a0a0f !important; }
.ipo-stats-row { background: rgba(250,251,255,.9) !important; }

/* ── BROKER PANEL — Glass ── */
.broker-panel {
  background: rgba(255,255,255,.82) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,.65) !important;
  box-shadow: 0 6px 24px rgba(0,0,0,.08) !important;
}
.broker-card {
  background: rgba(255,255,255,.88) !important;
  border: 1.5px solid rgba(0,0,0,.07) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.broker-stats { background: rgba(250,251,255,.9) !important; }
.broker-name { color: #0a0a0f !important; }

/* ── ECON PANEL — Glass ── */
.econ-panel {
  background: rgba(255,255,255,.82) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,.65) !important;
  box-shadow: 0 6px 24px rgba(0,0,0,.08) !important;
}
.econ-event-title { color: #0a0a0f !important; }

/* ── MODAL — Glass ── */
.modal {
  background: rgba(255,255,255,.94) !important;
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255,255,255,.7) !important;
}
.modal h2 { color: #0a0a0f !important; }
.modal p { color: var(--text2) !important; }

/* ── PWA BANNER — Glass ── */
#pwa-banner {
  background: rgba(255,255,255,.92) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,.7) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,.12) !important;
}

/* ── MOBILE BOTTOM NAV — Glass ── */
.mob-nav {
  background: rgba(255,255,255,.88) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-top: 1px solid rgba(0,0,0,.07) !important;
}

/* ── TABS & CONTROLS ── */
.tabs { background: rgba(240,242,248,.9); }
.tab { color: var(--text2); }
.tab.on { background: linear-gradient(135deg, #6d28d9, #4338ca); color: #fff; }
.ctrls { background: rgba(240,242,248,.9); }
.cb.on { background: linear-gradient(135deg, #6d28d9, #4338ca); color: #fff; }

/* ── BADGE LIVE (clean) ── */
.badge-live { background: rgba(22,163,74,.09); border-color: rgba(22,163,74,.2); }
.live-lbl { color: var(--green); }

/* ── INPUTS — clean white ── */
.ai-inp, .sgi, .sf-i, .sf-s, .gs, .ai2, .csel {
  background: rgba(255,255,255,.9) !important;
  color: #0a0a0f !important;
  border: 1px solid rgba(0,0,0,.1) !important;
}
.ai-inp:focus, .sgi:focus, .sf-i:focus, .sf-s:focus, .gs:focus, .ai2:focus {
  border-color: #6d28d9 !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(109,40,217,.08);
}

/* ── AI BOX — Glass ── */
.ai-box {
  background: rgba(109,40,217,.04) !important;
  border: 1px solid rgba(109,40,217,.1) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.bot-m { background: rgba(240,242,248,.9) !important; color: #0a0a0f !important; }

/* ── SIP RESULT — keep gradient but soften ── */
.sip-res { box-shadow: 0 4px 20px rgba(109,40,217,.2); }

/* ── TABLE ROWS ── */
.pt tbody tr:hover td,
.sc-t tbody tr:hover td,
.broker-tbl tbody tr:hover td {
  background: rgba(109,40,217,.04) !important;
}

/* ── SCROLLBAR ── */
::-webkit-scrollbar-track { background: rgba(0,0,0,.03); }
::-webkit-scrollbar-thumb { background: rgba(0,0,0,.15); }
::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,.25); }

/* ── TOAST ── */
#toast {
  background: rgba(10,10,15,.92) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* ── PAGE TRANSITION ── */
.app-body { background: transparent; }

/* ══════════════════════════════════════════
   UI IMPROVEMENTS — cleaner, more intuitive
   ══════════════════════════════════════════ */

/* ── WHY-STRIP: upgraded to tappable feature pills ── */
.why-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  background: #fff;
  border-top: 2px solid #6d28d9;
  border-bottom: 1px solid #e4e7ef;
  margin: 0;
}
.why-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 12px 8px;
  text-align: center;
  border-right: 1px solid #e4e7ef;
  transition: background .15s;
  cursor: default;
}
.why-item:last-child { border-right: none; }
.why-item:active { background: #f5f3ff; }
.why-divider { display: none; } /* replaced by grid borders */
.why-ico { font-size: 20px; line-height: 1; }
.why-title { font-size: 11px; font-weight: 700; color: #1e293b; line-height: 1.2; }
.why-sub   { font-size: 9.5px; color: #64748b; font-weight: 500; }

@media (max-width: 480px) {
  .why-strip { grid-template-columns: repeat(2, 1fr); }
  .why-item:nth-child(2) { border-right: none; }
  .why-item:nth-child(3) { border-right: 1px solid #e4e7ef; border-top: 1px solid #e4e7ef; }
  .why-item:nth-child(4) { border-top: 1px solid #e4e7ef; border-right: none; }
  .why-item:nth-child(5) { border-top: 1px solid #e4e7ef; border-right: none; }
}

/* ── HERO TRUST BAR — tighter on mobile ── */
@media (max-width: 480px) {
  .hero-trust-bar { padding: 12px 14px 10px; }
  .hero-trust-inner { flex-direction: row; align-items: center; gap: 8px; }
  .hero-brand-name { font-size: 14px; }
  .hero-brand-sub  { font-size: 10px; }
  .hero-trust-pills { gap: 4px; }
  .trust-pill { font-size: 9.5px; padding: 3px 7px; }
}

/* ── INDEX STRIP: bolder price, clearer label ── */
.idx-card {
  border-radius: 10px;
  padding: 11px 10px 9px;
}
.ic-val { font-size: 18px; }
.ic-lbl { font-size: 9.5px; letter-spacing: .2px; }
@media (max-width: 580px) {
  .ic-val { font-size: 15px; }
  .idx-strip { grid-template-columns: repeat(2, 1fr); gap: 7px; padding: 8px 8px 4px; }
}

/* ── ADVICE SECTION: breathing room + card polish ── */
.advice-section { padding: 8px 12px 6px; }
.advice-header {
  padding: 12px 14px;
  border-bottom: 1px solid #e4e7ef;
}
.advice-header-icon {
  width: 32px; height: 32px;
  border-radius: 8px;
  font-size: 15px;
}
.advice-header-title { font-size: 13.5px; }
.aw2-card { border-radius: 10px; }
.aw2-sym { font-size: 13.5px; }

/* ── ADVICE VIEW-ALL button — more tap-friendly ── */
a.advice-view-all {
  border-radius: 8px;
  padding: 7px 14px !important;
  font-size: 11.5px !important;
  white-space: nowrap;
}

/* ── CHART SECTION: tighter header ── */
.chart-section { padding: 6px 12px 10px; }
.chart-topbar  { margin-bottom: 8px; }
.chart-price   { font-size: 20px; }

/* ── ECON SECTION spacing ── */
.econ-section { padding: 4px 12px 6px; }

/* ── BROKER SECTION: trim padding on mobile ── */
@media (max-width: 480px) {
  .broker-section { padding: 4px 8px; }
  .broker-body { padding: 12px 12px 6px; }
  .broker-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .broker-header { padding: 14px 14px; }
  .broker-header-title { font-size: 14px !important; }
  .broker-header-sub { font-size: 10px; }
  .broker-stat-val { font-size: 15px; }
}

/* ── MARKET RIBBON: cleaner spacing ── */
.market-ribbon { padding: 7px 14px; gap: 10px; }
.ribbon-item   { gap: 6px; }
.ribbon-lbl    { font-size: 11px; }

/* ── MOBILE NAV: active tab highlight ── */
.mob-nav { padding-bottom: max(env(safe-area-inset-bottom, 6px), 6px); }
.mn { border-radius: 0; }
.mn.on { background: rgba(109,40,217,.07); }
.mn.on .mn-i { transform: translateY(-1px); }

/* ── PAGE transitions: smooth fade-in ── */
.page.on {
  animation: fadeInPage .18s ease-out;
}
@keyframes fadeInPage {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: none; }
}

/* ── RIBBON CLOCK alignment ── */
.ribbon-clock { font-size: 10.5px; white-space: nowrap; }
