/* IIS Terminal — Ismail Iqbal Securities */
:root{
  --teal:#3DA5C1; --teal-2:#2B8BA6; --navy:#0E3A4F; --navy-2:#1F5F6E;
  --up:#16C784; --down:#EA3943; --flat:#8A9BB0;
  --font:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --radius:10px; --side:232px;
}
:root,[data-theme="dark"]{
  --bg:#07111D; --panel:#0C1A2A; --panel-2:#10223A; --hover:#13283F;
  --border:#1A2E45; --border-2:#24405E;
  --text:#E6EEF6; --muted:#8A9BB0; --faint:#5C7189;
  --teal-soft:rgba(61,165,193,.14); --shadow:0 1px 0 rgba(255,255,255,.02);
  --logo-bg:#ffffff;
}
[data-theme="light"]{
  --bg:#F2F6F9; --panel:#FFFFFF; --panel-2:#F6F9FB; --hover:#EEF4F8;
  --border:#E1E8EF; --border-2:#CBD7E2;
  --text:#0E2233; --muted:#5A6E82; --faint:#8A9BB0;
  --teal-soft:rgba(61,165,193,.12); --shadow:0 1px 2px rgba(14,34,51,.05);
  --up:#0F9D63; --down:#D92B36;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--text);font:13px/1.45 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
svg{fill:currentColor}
button{font:inherit;color:inherit}
.num,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.up{color:var(--up)} .down{color:var(--down)} .flat{color:var(--flat)}
.muted{color:var(--muted)} .faint{color:var(--faint)}

/* Layout */
.app{display:flex;min-height:100vh}
.sidebar{width:var(--side);flex:0 0 var(--side);background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:40}
.brand{display:block;margin:14px 14px 10px;padding:10px 12px 8px;background:var(--logo-bg);border-radius:8px;position:relative}
[data-theme="light"] .brand{border:1px solid var(--border)}
.brand img{width:100%;display:block}
.brand-tag{position:absolute;left:12px;bottom:6px;font:600 9px/1 var(--mono);letter-spacing:.18em;color:var(--teal)}
.nav{padding:6px 10px;flex:1;overflow:auto}
.nav-label{font:600 10px/1 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:16px 10px 8px}
.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:7px;color:var(--muted);font-weight:500;margin-bottom:2px}
.nav a svg{width:17px;height:17px;opacity:.85}
.nav a:hover{background:var(--hover);color:var(--text)}
.nav a.active{background:var(--teal-soft);color:var(--teal)}
.sidebar-foot{padding:14px 18px;border-top:1px solid var(--border)}
.contact{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--muted)}
.contact a:hover{color:var(--teal)}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{height:56px;display:flex;align-items:center;gap:14px;padding:0 20px;border-bottom:1px solid var(--border);background:var(--panel);position:sticky;top:0;z-index:30}
.search{position:relative;flex:1;max-width:520px}
.search>svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--faint)}
.search input{width:100%;height:36px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:0 12px 0 34px;font:inherit;outline:none}
.search input:focus{border-color:var(--teal)}
.search-results{position:absolute;top:42px;left:0;right:0;background:var(--panel);border:1px solid var(--border-2);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.35);display:none;max-height:380px;overflow:auto;z-index:50}
.search-results.open{display:block}
.sr-item{display:flex;align-items:center;gap:10px;padding:9px 12px;cursor:pointer;border-bottom:1px solid var(--border)}
.sr-item:last-child{border-bottom:0}
.sr-item:hover,.sr-item.sel{background:var(--hover)}
.sr-item b{font-family:var(--mono);min-width:74px;color:var(--teal)}
.sr-item span{flex:1;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-meta{display:flex;align-items:center;gap:10px;margin-left:auto}
.asof{font-size:11.5px;color:var(--muted)}
.clock{font:500 12px var(--mono);color:var(--text);padding:5px 9px;border:1px solid var(--border);border-radius:6px}
.icon-btn{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--border);background:transparent;border-radius:8px;cursor:pointer;color:var(--muted)}
.icon-btn:hover{color:var(--teal);border-color:var(--teal)}
.icon-btn svg{width:17px;height:17px}
.icon-btn.spin svg{animation:spin .8s linear infinite}
.menu-btn{display:none}

/* Ticker tape */
.tape{height:34px;overflow:hidden;border-bottom:1px solid var(--border);background:var(--bg);position:relative}
.tape-track{display:flex;gap:28px;white-space:nowrap;position:absolute;top:0;left:0;height:100%;align-items:center;animation:tape 80s linear infinite;padding-left:20px}
.tape:hover .tape-track{animation-play-state:paused}
.tape-item{display:flex;gap:7px;align-items:center;font-size:12px}
.tape-item b{color:var(--muted);font-weight:600}
.tape-item .num{color:var(--text)}
@keyframes tape{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes spin{to{transform:rotate(360deg)}}

.view{padding:20px;flex:1}
.footer{padding:16px 20px;border-top:1px solid var(--border);font-size:11.5px;color:var(--muted);display:flex;flex-direction:column;gap:4px}
.footer .disc{color:var(--faint)}

/* Page headers */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.page-head h1{font-size:20px;margin:0;font-weight:700;letter-spacing:-.01em}
.page-head p{margin:4px 0 0;color:var(--muted)}

/* Cards */
.grid{display:grid;gap:16px;grid-template-columns:repeat(12,1fr)}
.c3{grid-column:span 3}.c4{grid-column:span 4}.c5{grid-column:span 5}.c6{grid-column:span 6}.c7{grid-column:span 7}.c8{grid-column:span 8}.c12{grid-column:span 12}
.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;display:flex;flex-direction:column}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);min-height:46px}
.card-h h3{margin:0;font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px}
.card-h h3 .dot{width:6px;height:6px;border-radius:50%;background:var(--teal)}
.card-h a.more{font-size:12px;color:var(--teal)}
.card-b{padding:14px 16px;flex:1;min-width:0}
.card-b.flush{padding:0}

/* Tabs / chips */
.tabs{display:inline-flex;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:2px;gap:2px}
.tabs button{border:0;background:transparent;padding:5px 10px;border-radius:6px;cursor:pointer;color:var(--muted);font-size:12px;font-weight:500}
.tabs button.on{background:var(--teal);color:#fff}
.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:5px;font-size:10.5px;font-weight:600;letter-spacing:.02em;background:var(--teal-soft);color:var(--teal)}
.chip.s{background:rgba(22,199,132,.12);color:var(--up)}
.chip.grey{background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}
.badge-pct{display:inline-block;min-width:62px;text-align:right;padding:2px 6px;border-radius:5px;font:500 12px var(--mono)}
.badge-pct.up{background:rgba(22,199,132,.12)} .badge-pct.down{background:rgba(234,57,67,.12)} .badge-pct.flat{background:var(--panel-2)}

/* Hero */
.hero{display:grid;grid-template-columns:minmax(0,1fr) 260px}
.hero-main{padding:16px;border-right:1px solid var(--border);min-width:0}
.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.hero-label{font-size:12px;color:var(--muted);font-weight:500}
.hero-val{font:600 30px/1.1 var(--mono);letter-spacing:-.02em;margin-top:4px}
.hero-chg{font:500 14px var(--mono);margin-top:4px}
.chart{height:290px;margin-top:10px;position:relative}
.hero-side{padding:6px 0}
.stat-row{display:flex;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);gap:8px}
.stat-row:last-child{border-bottom:0}
.stat-row span:first-child{color:var(--muted)}
.stat-row span:last-child{font-family:var(--mono)}

/* Tables */
.tbl-wrap{overflow:auto;max-width:100%}
table.tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.tbl th{position:sticky;top:0;background:var(--panel);text-align:right;font-weight:500;color:var(--muted);font-size:11.5px;padding:9px 12px;border-bottom:1px solid var(--border);white-space:nowrap;cursor:default;user-select:none;z-index:1}
.tbl th.l,.tbl td.l{text-align:left}
.tbl th.sort{cursor:pointer}
.tbl th.sort:hover{color:var(--text)}
.tbl th.sorted{color:var(--teal)}
.tbl td{padding:9px 12px;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap;font-family:var(--mono);font-variant-numeric:tabular-nums}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr{cursor:pointer}
.tbl tbody tr:hover td{background:var(--hover)}
.tbl td.sym{font-family:var(--font)}
.sym-cell{display:flex;align-items:center;gap:10px;min-width:0}
.sym-ic{width:28px;height:28px;flex:0 0 28px;border-radius:7px;display:grid;place-items:center;font:700 10px var(--mono);color:#fff;background:linear-gradient(135deg,var(--teal),var(--navy))}
.sym-cell b{font-weight:600;font-family:var(--mono);font-size:12.5px}
.sym-cell small{display:block;color:var(--muted);font-size:11px;font-family:var(--font);max-width:200px;overflow:hidden;text-overflow:ellipsis}
.tbl.compact td,.tbl.compact th{padding:7px 12px}
.scroll-y{max-height:380px;overflow:auto}

.range{display:flex;align-items:center;gap:6px;min-width:130px}
.range-bar{flex:1;height:4px;border-radius:2px;background:var(--border-2);position:relative}
.range-bar i{position:absolute;top:-3px;width:10px;height:10px;border-radius:50%;background:var(--teal);margin-left:-5px;border:2px solid var(--panel)}

/* Bars */
.bars{display:flex;flex-direction:column;gap:7px}
.bar-row{display:grid;grid-template-columns:70px 1fr 64px;align-items:center;gap:10px;font-size:12px;cursor:pointer}
.bar-row b{font-family:var(--mono);font-weight:600}
.bar-track{height:16px;border-radius:4px;background:var(--panel-2);position:relative;overflow:hidden}
.bar-track i{position:absolute;top:0;bottom:0;border-radius:4px}
.bar-row .v{text-align:right;font-family:var(--mono)}
.diverge{display:grid;grid-template-columns:1fr 1fr;gap:20px}

.breadth{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--panel-2);margin:10px 0}
.breadth i{display:block;height:100%}
.breadth-legend{display:flex;justify-content:space-between;font-size:12px}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}
.kpi{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}
.kpi .k{color:var(--muted);font-size:12px}
.kpi .v{font:600 20px var(--mono);margin-top:6px}
.kpi .s{font:500 12px var(--mono);margin-top:2px}

/* Treemap */
.treemap{position:relative;width:100%;height:420px;border-radius:8px;overflow:hidden;background:var(--panel-2)}
.treemap.sm{height:300px}
.tm{position:absolute;box-shadow:inset 0 0 0 1px var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;cursor:pointer;padding:2px;transition:filter .12s}
.tm:hover{filter:brightness(1.18);z-index:2}
.tm b{font:600 12px var(--mono);line-height:1.1;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.tm span{font:500 11px var(--mono);opacity:.92}
.tm.big b{font-size:15px}.tm.big span{font-size:12.5px}
.tm.tiny b,.tm.tiny span,.tm.small span{display:none}.tm.small b{font-size:10px}
.legend-scale{display:flex;align-items:center;gap:2px;font:500 10.5px var(--mono);color:var(--muted)}
.legend-scale i{width:26px;height:10px;display:block;border-radius:2px}
.tooltip{position:fixed;pointer-events:none;background:var(--panel);border:1px solid var(--border-2);border-radius:8px;padding:9px 11px;font-size:12px;box-shadow:0 10px 24px rgba(0,0,0,.35);z-index:100;display:none;min-width:170px}
.tooltip .tt-h{font-weight:600;margin-bottom:4px}
.tooltip .tt-r{display:flex;justify-content:space-between;gap:14px;font-family:var(--mono);font-size:11.5px}

/* Feeds */
.feed{display:flex;flex-direction:column}
.feed-item{display:block;padding:12px 16px;border-bottom:1px solid var(--border)}
.feed-item:last-child{border-bottom:0}
.feed-item:hover{background:var(--hover)}
.feed-meta{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--muted);margin-bottom:4px}
.feed-title{font-weight:600;font-size:13px;line-height:1.4}
.feed-desc{color:var(--muted);font-size:12.5px;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.src{font-weight:600;color:var(--teal)}

/* Toolbar */
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--border)}
.field{height:32px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:7px;padding:0 10px;font:inherit;outline:none}
.field:focus{border-color:var(--teal)}
.check{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;cursor:pointer}
.count{margin-left:auto;color:var(--muted);font-size:12px}

/* Stock page */
.stock-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.stock-head .sym-ic{width:48px;height:48px;flex-basis:48px;border-radius:12px;font-size:14px}
.stock-head h1{margin:0;font-size:22px}
.stock-head .px{font:600 28px var(--mono);margin-left:auto;text-align:right}
.stock-head .px small{display:block;font-size:14px;font-weight:500}
.stats{display:grid;grid-template-columns:1fr}


.notice{display:block;background:var(--teal-soft);color:var(--teal);border-radius:7px;padding:7px 10px;font-size:11.5px;margin-top:10px}
.event-type{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}
.empty{padding:28px 16px;text-align:center;color:var(--muted)}
.loading{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--muted);padding:80px 0}
.spinner{width:20px;height:20px;border:2px solid var(--border-2);border-top-color:var(--teal);border-radius:50%;animation:spin .8s linear infinite}
.date-group{padding:8px 16px;background:var(--panel-2);font-size:11.5px;font-weight:600;color:var(--muted);border-bottom:1px solid var(--border);position:sticky;top:0}
.cal-item{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border)}
.cal-item .sym{font:600 12.5px var(--mono);min-width:76px;color:var(--teal);cursor:pointer}
.cal-item .t{flex:1;min-width:0}
.cal-item .t div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.overlay{display:none}

/* Responsive */
@media (max-width:1280px){.c3{grid-column:span 6}.c4{grid-column:span 6}.c5,.c7{grid-column:span 12}.c8{grid-column:span 12}}
@media (max-width:1000px){
  .hero{grid-template-columns:1fr}.hero-main{border-right:0;border-bottom:1px solid var(--border)}
  .c3,.c4,.c6{grid-column:span 12}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .sidebar{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .2s}
  .sidebar.open{transform:none}
  .overlay.open{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:35}
  .menu-btn{display:grid}
  .asof,.clock{display:none}
  .view{padding:14px}
  .diverge{grid-template-columns:1fr}
  .treemap{height:340px}
  .stats{grid-template-columns:1fr}.stats .stat-row:nth-child(odd){border-right:0}
}
@media (max-width:480px){.kpis{grid-template-columns:1fr}.hero-val{font-size:24px}.topbar{padding:0 12px;gap:8px}}

.c4 .sym-cell small,.c5 .sym-cell small{max-width:120px}

/* ===================== LIVE FEED ===================== */
/* company icons (data/ico) with text fallback underneath */
.sym-ic{position:relative;overflow:hidden}
.sym-ic.has-img{background:#fff;color:transparent}
.sym-ic img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:2px;background:#fff}
[data-theme="dark"] .sym-ic.has-img,[data-theme="dark"] .sym-ic img{background:#F4F7FA}

/* flash on tick */
@keyframes flU{0%{background:rgba(22,199,132,.42);color:#fff}100%{background:transparent}}
@keyframes flD{0%{background:rgba(234,57,67,.42);color:#fff}100%{background:transparent}}
@keyframes flN{0%{background:rgba(61,165,193,.32)}100%{background:transparent}}
.fl-u{animation:flU .9s ease-out}
.fl-d{animation:flD .9s ease-out}
.fl-n{animation:flN .9s ease-out}
.tbl tbody tr:hover td.fl-u,.tbl tbody tr:hover td.fl-d,.tbl tbody tr:hover td.fl-n{background:transparent}
span.fl-u,span.fl-d,span.fl-n,b.fl-u,b.fl-d,b.fl-n,div.fl-u,div.fl-d,div.fl-n{border-radius:4px}
.tape-live{display:inline-flex;gap:7px;align-items:center;padding:0 2px;border-radius:4px}

/* live badge in top bar */
.live-badge{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 10px;border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;font:600 11px var(--mono);letter-spacing:.06em}
.live-badge i{width:8px;height:8px;border-radius:50%;background:var(--flat)}
.live-badge small{font:500 11px var(--mono);letter-spacing:0;color:var(--muted)}
.live-badge small:empty{display:none}
.live-badge.live{color:var(--up);border-color:rgba(22,199,132,.45)}
.live-badge.live i{background:var(--up);box-shadow:0 0 0 0 rgba(22,199,132,.6);animation:livePulse 1.6s infinite}
.live-badge.idle{color:var(--teal)}
.live-badge.idle i{background:var(--teal)}
.live-badge.connecting,.live-badge.reconnecting,.live-badge.nofeed{color:#F5A524;border-color:rgba(245,165,36,.45)}
.live-badge.connecting i,.live-badge.reconnecting i,.live-badge.nofeed i{background:#F5A524}
.live-badge.down{color:var(--down);border-color:rgba(234,57,67,.45)}
.live-badge.down i{background:var(--down)}
.live-badge.phase{color:var(--teal);border-color:rgba(61,165,193,.45)}
.live-badge.phase i{background:var(--teal);animation:livePulse 1.6s infinite}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(22,199,132,.6)}70%{box-shadow:0 0 0 7px rgba(22,199,132,0)}100%{box-shadow:0 0 0 0 rgba(22,199,132,0)}}
.nav-live{width:6px;height:6px;border-radius:50%;background:var(--up);margin-left:auto;animation:livePulse 1.6s infinite}
.live-dot{background:var(--up)!important;animation:livePulse 1.6s infinite}

/* market watch */
.tbl.watch td,.tbl.watch th{padding:7px 10px}
.tbl.watch td.bidc{color:var(--up);font-weight:600}
.tbl.watch td.askc{color:var(--down);font-weight:600}
.tbl td.star{width:28px;text-align:center;color:var(--border-2);cursor:pointer;font-family:var(--font);font-size:14px}
.tbl td.star:hover{color:var(--teal)}
.tbl td.star.on{color:#F5A524}
td.bidc,td.askc{font-weight:600}
td.bidc{color:var(--up)} td.askc{color:var(--down)}

/* stock page: live quote */
.quote-ba{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 16px 4px}
.qb{border:1px solid var(--border);border-radius:9px;padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.qb span{font-size:11px;color:var(--muted)}
.qb b{font:600 20px var(--mono);font-variant-numeric:tabular-nums}
.qb small{font:500 11.5px var(--mono);color:var(--muted)}
.qb.bid{background:rgba(22,199,132,.07);border-color:rgba(22,199,132,.3)} .qb.bid b{color:var(--up)}
.qb.ask{background:rgba(234,57,67,.07);border-color:rgba(234,57,67,.3)} .qb.ask b{color:var(--down)}

/* depth + time & sales */
.depth-sum{display:flex;align-items:center;gap:10px;padding:10px 14px;font:600 11.5px var(--mono);border-bottom:1px solid var(--border)}
.depth-sum .imb{flex:1;height:6px;border-radius:3px;background:var(--down);overflow:hidden;opacity:.85}
.depth-sum .imb i{display:block;height:100%;background:var(--up)}
.tbl.depth td{position:relative;padding:6px 9px}
.tbl.depth th{padding:7px 9px}
.tbl.depth td.b{font-weight:600}
.tbl.depth td.bar-b{background:linear-gradient(to left,rgba(22,199,132,.18) var(--w),transparent var(--w))}
.tbl.depth td.bar-a{background:linear-gradient(to right,rgba(234,57,67,.18) var(--w),transparent var(--w))}
.tns-meta{display:flex;justify-content:space-between;gap:8px;padding:8px 14px;font:500 11.5px var(--mono);color:var(--muted);border-bottom:1px solid var(--border)}
.tbl.tns td,.tbl.tns th{padding:5px 12px}
@media (max-width:860px){.live-badge small{display:none}.quote-ba{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.live-badge{padding:0 7px}.live-badge b{font-size:10px}}

/* data source failure banner */

/* breadcrumb (stock page) */
.crumbs{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:10px}
.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--teal)}
.crumbs b{color:var(--text);font-weight:600}
.notfound{padding:90px 20px;text-align:center}
.notfound h1{font-size:56px;margin:0;color:var(--teal);font-family:var(--mono)}
.notfound p{color:var(--muted);margin:8px 0 22px}
.notfound .btn{display:inline-block;background:var(--teal);color:#fff;padding:9px 18px;border-radius:7px;font-weight:600}

/* TradingView chart card (stock page) */
.tv-card{display:flex;flex-direction:column}
.tv-wrap{height:560px;min-height:420px;border-top:1px solid var(--border);overflow:hidden;border-radius:0 0 var(--radius) var(--radius)}
@media (max-width:760px){.tv-wrap{height:460px}}

/* Technical Analysis widget (stock page) */
.ta-card{display:flex;flex-direction:column}
.ta-wrap{flex:1;position:relative;min-height:460px}
.ta-wrap .tradingview-widget-container{position:absolute;inset:0;padding:4px 6px}
.ta-wrap .tradingview-widget-container__widget,.ta-wrap iframe{display:block;width:100%;height:100%;border:0}
.ta-wrap .tradingview-widget-copyright{display:none}
.ta-wrap .loading{padding:0;height:100%}

/* Key Statistics stretched across a row when it is alone */
.ks-wide .stats{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
@media (max-width:860px){.ks-wide .stats{grid-template-columns:1fr}}

/* company fundamentals (stock page) */
.co-card[hidden]{display:none}
.co-desc{margin:0 0 6px;font-size:12.5px;line-height:1.6;color:var(--muted);display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.co-desc.open{-webkit-line-clamp:unset;display:block}
.linkbtn{background:none;border:0;padding:0;color:var(--teal);font:500 12px var(--font);cursor:pointer;margin-bottom:12px}
.co-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-top:8px}
.co-facts div{display:flex;flex-direction:column;gap:2px;min-width:0}
.co-facts span{font-size:11px;color:var(--faint)}
.co-facts b{font-weight:500;font-size:12.5px;overflow:hidden;text-overflow:ellipsis}
.co-facts a{color:var(--teal)}
.tbl.fin tr.grp td{background:var(--panel-2);color:var(--teal);font:600 11px var(--font);text-transform:uppercase;letter-spacing:.05em;cursor:default}
.tbl.fin th small{font-size:10px}

/* flows matrix + metrics */
.tbl.matrix td,.tbl.matrix th{white-space:nowrap}
.tbl.matrix td{font-size:11.5px}
.tbl.metrics{margin-bottom:6px}
.kpi .v.up{color:var(--up)}.kpi .v.down{color:var(--down)}

.toolbar[hidden]{display:none}

/* ---- security types (v0.5) ---- */
.sr-item .sr-type{font-style:normal;font-family:var(--mono);font-size:10px;padding:1px 5px;margin-left:6px;border-radius:4px;background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}
.chip.t{background:rgba(245,166,35,.13);color:#E9A23B}
.sym-cell small .ty{font-style:normal;font-family:var(--mono);font-size:9.5px;padding:0 4px;margin-right:5px;border-radius:3px;background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}

/* ---- WhatsApp + chatbot (v0.6) ---- */
.fab{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:12px;pointer-events:none}
.fab > *{pointer-events:auto}
.fab-btn{width:52px;height:52px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.28);transition:transform .15s ease,box-shadow .15s ease}
.fab-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.32)}
.fab-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.fab-btn svg{width:26px;height:26px;fill:currentColor}
.fab-btn.wa{background:#25D366}
.fab-btn.cb{background:#3DA5C1}
.fab-btn.cb .i-close{display:none}
.fab-btn.cb.on .i-open{display:none}
.fab-btn.cb.on .i-close{display:block}
.cb-panel{width:380px;height:min(600px,calc(100vh - 120px));background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden;display:none;flex-direction:column;box-shadow:0 18px 50px rgba(0,0,0,.35);order:-1}
.cb-panel.open{display:flex;animation:cbIn .16s ease-out}
@keyframes cbIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.cb-head{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 12px;background:#0E3A4F;color:#fff}
.cb-av{width:34px;height:34px;border-radius:50%;background:#3DA5C1;display:grid;place-items:center;flex:0 0 auto}
.cb-av svg{width:18px;height:18px;fill:#fff}
.cb-head div{flex:1;min-width:0;display:flex;flex-direction:column}
.cb-head b{font-size:13.5px}
.cb-head small{font-size:11px;opacity:.75}
.cb-ic{width:30px;height:30px;border-radius:8px;border:0;background:transparent;color:#fff;display:grid;place-items:center;cursor:pointer}
.cb-ic:hover{background:rgba(255,255,255,.12)}
.cb-ic svg{width:18px;height:18px;fill:currentColor}
.cb-body{flex:1;background:#fff}
.cb-body iframe{width:100%;height:100%;border:0;display:block}
@media (max-width:600px){
  .fab{right:14px;bottom:14px}
  .fab-btn{width:48px;height:48px}
  .cb-panel{position:fixed;left:8px;right:8px;bottom:76px;width:auto;height:calc(100vh - 100px)}
}
@media print{.fab{display:none}}

/* Commodities page (source: CNBC) */
.cm-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}
.cm-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-width:0}
.cm-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cm-top b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-px{font:600 22px var(--mono);border-radius:6px;align-self:flex-start;padding:0 2px}
.cm-px small{font-size:11px;font-weight:500}
.cm-chg{font:500 12.5px var(--mono)}
.cm-rng{display:flex;align-items:center;gap:8px;font-size:11px}
.cm-rng .range{flex:1;min-width:0}
.cm-t{font-size:11px}
.cm-tbl td.b{font-weight:600}
.cm-sym{display:block;font-family:var(--mono);font-size:10.5px;margin-top:1px}
.cm-src{color:var(--teal)}
.cm-src:hover{text-decoration:underline}
@media (max-width:1100px){.cm-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.cm-cards{grid-template-columns:1fr}}

/* ---------- signed-in user menu (topbar) — added by assets/js/core/account.js ---------- */
.uchip{position:relative}
.uchip-btn{display:flex;align-items:center;gap:8px;height:36px;padding:0 10px 0 4px;border:1px solid var(--border);border-radius:20px;background:transparent;cursor:pointer;color:var(--text);max-width:220px}
.uchip-btn:hover{border-color:var(--teal)}
.av{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font:700 11px var(--font);color:#fff;background:linear-gradient(135deg,#3DA5C1,#1F5F6E);flex:0 0 auto;letter-spacing:.02em}
.av.lg{width:44px;height:44px;font-size:15px}
.uchip-btn .nm{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uchip-btn .car{width:14px;height:14px;color:var(--faint);flex:0 0 auto}
.uchip-menu{position:absolute;right:0;top:44px;width:260px;background:var(--panel);border:1px solid var(--border-2);border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.35);padding:6px;display:none;z-index:80}
.uchip.open .uchip-menu{display:block}
.uchip-head{display:flex;gap:10px;align-items:center;padding:10px 10px 12px;border-bottom:1px solid var(--border);margin-bottom:6px}
.uchip-head div{min-width:0}
.uchip-head b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uchip-head small{display:block;color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uchip-menu a,.uchip-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:7px;border:0;background:none;color:var(--text);font:500 13px var(--font);cursor:pointer;text-align:left}
.uchip-menu a:hover,.uchip-menu button:hover{background:var(--hover)}
.uchip-menu svg{width:16px;height:16px;color:var(--muted)}
.uchip-menu .out{color:var(--down)}
.uchip-menu .out svg{color:var(--down)}
.role-tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;font:600 9.5px/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase;background:var(--teal-soft);color:var(--teal);vertical-align:1px}
.signin-btn{height:34px;padding:0 14px;border-radius:8px;background:var(--teal);color:#fff;font-weight:600;font-size:12.5px;display:inline-flex;align-items:center}

.nav a.nav-admin{color:var(--teal)}
@media (max-width:860px){.uchip-btn .nm,.uchip-btn .car{display:none}.uchip-btn{padding:0 3px}}

/* Market By Price (stock page): Order | Volume | Price || Price | Volume | Order  (v0.8.8.3) */
.mbp-head{padding:9px 12px 8px;border-bottom:1px solid var(--border);font:500 11.5px var(--mono);display:grid;gap:5px;background:var(--panel-2)}
.mbp-l1,.mbp-l2{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap}
.mbp-id{display:inline-flex;gap:4px}
.mbp-id i,.mbp-id b{font-style:normal;font-weight:700;padding:2px 7px;border:1px solid var(--border-2);border-radius:4px;background:var(--panel)}
.mbp-id b{color:var(--teal);min-width:58px}
.mbp-cb{display:inline-flex;flex-direction:column;line-height:1.25;font-size:11px}
.mbp-kv em{font-style:normal;color:var(--muted);margin-right:5px;font-size:10.5px;letter-spacing:.04em}
.mbp-kv b{font-weight:700}
.mbp-l2{color:var(--muted)}
.mbp-l2 .mbp-kv b{color:var(--text)}
.tbl.depth.mbp{table-layout:fixed;width:100%}
.tbl.depth.mbp th,.tbl.depth.mbp td{padding:5px 7px;text-align:right}
.tbl.depth.mbp th:nth-child(1),.tbl.depth.mbp th:nth-child(6){width:13%}
.tbl.depth.mbp th:nth-child(4),.tbl.depth.mbp td:nth-child(4),.tbl.depth.mbp th:nth-child(5),.tbl.depth.mbp td:nth-child(5),.tbl.depth.mbp th:nth-child(6),.tbl.depth.mbp td:nth-child(6){text-align:left}
.tbl.depth.mbp td.bs{background-color:rgba(61,165,193,.08)}
.tbl.depth.mbp td.as{background-color:rgba(234,57,67,.06)}
.tbl.depth.mbp td:nth-child(3){border-right:2px solid var(--border-2)}
.tbl.depth.mbp td.bar-b{background:linear-gradient(to left,rgba(22,199,132,.20) var(--w),rgba(61,165,193,.08) var(--w))}
.tbl.depth.mbp td.bar-a{background:linear-gradient(to right,rgba(234,57,67,.20) var(--w),rgba(234,57,67,.06) var(--w))}
.tbl.depth.mbp tr.mbp-top td{font-weight:700}
.tbl.depth.mbp tfoot td{border-top:1px solid var(--border-2);font:600 11px var(--mono);color:var(--muted)}
#bookTabs button{white-space:nowrap}
@media (max-width:520px){.tbl.depth.mbp th,.tbl.depth.mbp td{padding:5px 4px;font-size:11.5px}}
#depthBox .tbl.tns{table-layout:auto;width:100%}
#depthBox .tbl.tns td,#depthBox .tbl.tns th{padding:5px 7px}
/* Market Watch: windowed rows, fixed column widths (v0.8.8.5) */
.tbl.watch td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbl.watch .sym-cell small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbl.watch tr.wsp td{background:transparent}
.tbl.watch tr.wsp:hover td{background:transparent}
.tbl.watch tbody tr:not(.wsp) td{height:50px}
/* live heatmap tile tick (v0.8.8.8) */
@keyframes tmU{0%{box-shadow:inset 0 0 0 2px rgba(255,255,255,.85)}100%{box-shadow:inset 0 0 0 2px rgba(255,255,255,0)}}
.tm.tm-u,.tm.tm-d{animation:tmU .9s ease-out}
