/*
Theme Name: IPO Bulletin
Theme URI: https://example.com
Author: Your Name
Author URI: https://example.com
Description: A lightweight, SEO-friendly theme for auto-posting IPO GMP, subscription, listing and financial-result updates, with a live feed home page and an email-subscribe sidebar.
Version: 3.7.5
Requires at least: 6.0
Requires PHP: 7.4
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ipo-bulletin
*/

:root{
  /* Light mode — same accent family as the dark "Midnight Capital
     Intelligence" system (cobalt primary, emerald gain, saffron alert),
     just on a light canvas so the theme toggle stays coherent. */
  --navy:#1849C6;
  --navy-soft:#0F3AA8;
  --gold:#B87A00;
  --green:#16A34A;
  --red:#DC2626;
  --accent:#7C3AED;
  --paper:#F7F8FB;
  --ink:#111A2E;
  --slate:#5B6472;
  --line:#DCE1EC;
  --card:#FFFFFF;
  --badge-mainboard:#0284C7;
  --badge-sme:#7C3AED;
  --radius-s: 4px;
  --radius-m: 8px;
}

[data-theme="dark"]{
  /* "Midnight Capital Intelligence" — from the Stitch design system.
     Deep midnight/carbon-blue canvas, cobalt primary, emerald gains,
     saffron alerts, tight 4-8px radii, no soft blurred shadows. */
  --navy:#1849C6;
  --navy-soft:#255BE3;
  --gold:#E8A020;
  --green:#16A34A;
  --red:#DC2626;
  --accent:#E8A020;
  --paper:#0B1220;
  --ink:#F7F6F1;
  --slate:#8A99AD;
  --line:#1E2D4A;
  --card:#111A2E;
  --card-hover:#17233B;
  --badge-mainboard:#0284C7;
  --badge-sme:#7C3AED;
}
[data-theme="dark"] body{background:var(--paper);color:var(--ink);}
[data-theme="dark"] .card,[data-theme="dark"] .widget,[data-theme="dark"] .watch-table-wrap,
[data-theme="dark"] .price-card,[data-theme="dark"] .pulse-item{background:var(--card);border-color:var(--line);}
[data-theme="dark"] .watch-table thead{background:var(--navy-soft);color:#fff;}
[data-theme="dark"] .movers-tab-btn{background:var(--card);color:var(--slate);border-color:var(--line);}
[data-theme="dark"] input,[data-theme="dark"] select,[data-theme="dark"] textarea{background:var(--card);color:var(--ink);border-color:var(--line);}

.theme-toggle{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;
  width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-size:16px;flex-shrink:0;transition:background .15s;}
.theme-toggle:hover{background:rgba(255,255,255,.16);}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;
  letter-spacing:-0.015em;
  margin:0;
}
a{color:inherit;text-decoration:none;}
img{max-width:100% !important;height:auto;display:block;}
.ipob-post-article > img, .ipob-post-article .wp-post-image{max-width:100% !important;width:100%;height:auto;}
svg{max-width:100%;height:auto;}
.entry-content table,.entry-content iframe,.entry-content pre{max-width:100%;}
.entry-content table{display:block;overflow-x:auto;border-collapse:collapse;white-space:normal;}
.entry-content table td,.entry-content table th{word-wrap:break-word;overflow-wrap:break-word;}
.entry-content blockquote{max-width:100%;overflow-wrap:break-word;}
.entry-content{overflow-wrap:break-word;word-wrap:break-word;}

/* Embedded third-party widgets (e.g. a "LIVE MARKET DATA" / TradingView-style
   card) that the post-generation automation inserts sometimes ship with
   their own hardcoded pixel width or resize themselves via their own JS
   after the page loads — which can override a normal max-width rule. This
   is the confirmed cause of posts rendering at half-width with the header
   nav appearing to vanish (the whole page was being stretched wide by one
   embedded element). !important on every descendant is deliberately
   aggressive: nothing inside a post's content — however it got there —
   can force the page wider than the viewport. */
.entry-content, .entry-content *{
  max-width:100% !important;
  box-sizing:border-box !important;
}
.entry-content iframe{width:100% !important;height:auto !important;min-height:400px;}
.entry-content div[style*="width"]{width:100% !important;}
html,body{overflow-x:hidden;max-width:100vw;}
.num{font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1,'cv05' 1;}
.screen-reader-text{position:absolute;left:-9999px;}
.skip-link{position:absolute;top:-40px;left:0;background:var(--navy);color:#fff;padding:10px 16px;z-index:999;}
.skip-link:focus{top:0;}

/* ---------- Topbar ---------- */
.topbar{position:sticky;top:0;z-index:50;background:var(--navy);color:#EDEBE3;border-bottom:1px solid rgba(255,255,255,.08);}
.topbar-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;gap:20px;}
.logo{font-family:'Plus Jakarta Sans',sans-serif;font-size:21px;font-weight:600;color:#fff;display:flex;align-items:center;gap:9px;flex-shrink:0;}
.logo span{color:var(--gold);}
.logo-icon{border-radius:8px;object-fit:cover;flex-shrink:0;}
nav.main-nav ul{list-style:none;display:flex;gap:26px;margin:0;padding:0;font-size:14.5px;}
nav.main-nav a{color:#C8CCD4;transition:color .15s;}
nav.main-nav a:hover, nav.main-nav .current-menu-item > a{color:#fff;}
.subscribe-btn{background:var(--gold);color:var(--navy);padding:9px 18px;border-radius:var(--radius-s);font-size:14px;font-weight:600;border:none;cursor:pointer;flex-shrink:0;}
.mobile-toggle{display:none;background:none;border:none;color:#fff;font-size:22px;cursor:pointer;}

/* ---------- Search ---------- */
.site-search{display:flex;align-items:center;flex:0 1 220px;min-width:160px;position:relative;}
.site-search input{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);color:#fff;padding:8px 12px 8px 34px;border-radius:var(--radius-s);font-size:13.5px;}
.site-search input::placeholder{color:#8B93A1;}
.site-search::before{content:"🔍";position:absolute;left:11px;top:50%;transform:translateY(-50%);font-size:12px;opacity:.7;pointer-events:none;}

/* ---------- Hero ---------- */
.hero{background:radial-gradient(ellipse 1200px 500px at 20% 0%,rgba(24,73,198,.25) 0%,transparent 60%),linear-gradient(180deg,#0B1220 0%,#111A2E 100%);color:#F7F6F1;padding:56px 24px 0;position:relative;overflow:hidden;}
.hero::after{content:'';position:absolute;top:-120px;right:-100px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(245,166,35,.25) 0%,rgba(245,166,35,0) 70%);pointer-events:none;}
.hero-inner{max-width:1180px;margin:0 auto;}
.hero h1{font-size:40px;line-height:1.15;max-width:640px;color:#fff;margin:0 0 14px;}
.hero p{max-width:520px;color:#B8BEC9;font-size:16px;line-height:1.6;margin:0 0 28px;}
.hero-cta{display:flex;gap:12px;margin-bottom:36px;flex-wrap:wrap;}
.hero-cta input{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);color:#fff;padding:12px 14px;border-radius:var(--radius-s);width:260px;font-size:14px;}
.hero-cta button{background:var(--gold);color:var(--navy);border:none;font-weight:600;padding:12px 20px;border-radius:var(--radius-s);font-size:14px;cursor:pointer;}

/* filter tabs */
.filter-bar{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:24px;}
.filter-btn{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);color:#C8CCD4;font-size:13px;padding:7px 14px;border-radius:20px;cursor:pointer;}
.filter-btn.active,.filter-btn:hover{background:var(--gold);color:var(--navy);border-color:var(--gold);}

/* ticker — a green "Latest GMP" badge + one continuous flashing-news-style
   strip, open-IPO GMP entries and recently-listed performance running
   together one after another (see ipob_get_ticker_feed_items()). */
.ticker-wrap{border-top:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0;white-space:nowrap;overflow:hidden;background:#0B1220;}
.ticker-head{flex:0 0 auto;display:flex;align-items:center;gap:6px;color:#E8A020;font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:11px 16px;border-right:1px solid rgba(255,255,255,.08);}
.ticker-flame{font-size:13px;}
.ticker-track{flex:1 1 auto;overflow:hidden;padding:13px 0;}
.ticker{display:inline-block;animation:scroll 32s linear infinite;}
.ticker:hover{animation-play-state:paused;}
.ticker-item{display:inline-flex;align-items:center;gap:8px;margin-right:40px;font-size:13.5px;color:#C8CCD4;}
.ticker-name{color:#F7F6F1;font-weight:500;}
.ticker-board{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#8A99AD;border:1px solid rgba(255,255,255,.18);border-radius:4px;padding:1px 6px;}
.ticker .up{background:rgba(22,163,74,.2);color:#4ADE80;padding:2px 8px;border-radius:4px;font-weight:600;font-feature-settings:'tnum' 1;}
.ticker .down{background:rgba(220,38,38,.18);color:#F87171;padding:2px 8px;border-radius:4px;font-weight:600;font-feature-settings:'tnum' 1;}
.ticker-empty{padding:13px 16px;font-size:13px;color:#C8CCD4;white-space:normal;}
.ticker-empty a{color:#4ADE80;text-decoration:underline;}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- Layout ---------- */
.layout{max-width:1180px;margin:0 auto;padding:44px 24px 80px;display:grid;grid-template-columns:1fr 320px;gap:40px;}
.breadcrumb{font-size:13px;color:var(--slate);margin-bottom:18px;}
.breadcrumb a:hover{color:var(--navy);}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px;border-bottom:1px solid var(--line);padding-bottom:12px;}
.section-head h1,.section-head h2{font-size:22px;}
.section-head .meta{font-size:13px;color:var(--slate);}
.archive-intro{color:var(--slate);font-size:14.5px;line-height:1.6;margin-bottom:24px;max-width:640px;}

/* ---------- Feed / post cards ---------- */
.feed{display:flex;flex-direction:column;gap:18px;}
.post-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden;}
.post-card.has-thumb{display:flex;align-items:stretch;}
.post-card-thumb{display:block;flex:0 0 220px;overflow:hidden;background:var(--paper);}
.post-card-thumb img{width:100%;height:100%;object-fit:cover;border-radius:0;margin:0;transition:transform .2s ease;}
.post-card-thumb:hover img{transform:scale(1.03);}
.post-card-body{padding:22px 24px;flex:1;min-width:0;}
@media (max-width:640px){
  .post-card.has-thumb{flex-direction:column;}
  .post-card-thumb{flex:none;width:100%;aspect-ratio:16/9;}
}
.post-top{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.tag{font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:20px;}
.tag.cat-gmp-update,.tag.cat-gmp{background:#FBF3DE;color:#946B10;}
.tag.cat-subscription-update,.tag.cat-subscription{background:#E9F5EE;color:var(--green);}
.tag.cat-listing-update,.tag.cat-listing{background:#EAF0FB;color:#2C5AA8;}
.tag.cat-financial-results,.tag.cat-financial{background:#F3EAF7;color:#7A3E9D;}
.tag.cat-general{background:#EFEFEF;color:#555;}
.post-time{font-size:12.5px;color:var(--slate);margin-left:auto;}
.post-card h2,.post-card h3{font-size:18px;margin:0 0 6px;font-weight:500;}
.post-card h2 a,.post-card h3 a{color:var(--ink);}
.post-card p{font-size:14.5px;color:#3C4452;line-height:1.6;margin:0 0 14px;}
.post-stats{display:flex;gap:28px;border-top:1px solid var(--line);padding-top:12px;flex-wrap:wrap;}
.stat{font-size:13px;color:var(--slate);}
.stat b{display:block;font-size:16px;color:var(--ink);font-weight:600;margin-top:2px;}
.stat b.up{color:var(--green);}
.stat b.down{color:var(--red);}
.read-more{font-size:13.5px;font-weight:600;color:var(--navy);border-bottom:1px solid var(--gold);}

/* pagination */
.pagination{display:flex;gap:8px;margin-top:28px;justify-content:center;}
.pagination a,.pagination span{padding:8px 13px;border:1px solid var(--line);border-radius:var(--radius-s);font-size:13.5px;background:var(--card);}
.pagination .current{background:var(--navy);color:#fff;border-color:var(--navy);}

/* ---------- Single post — rebuilt as its own dedicated, hardened layout ----------
   Uses a brand-new class name (never used anywhere else in this theme) with
   !important on the properties that actually control width and column
   layout. This is deliberately more defensive than the shared .layout class
   used elsewhere, specifically because this exact page type was reported as
   rendering at half-width repeatedly — !important here means no other rule,
   old or new, cached or fresh, can partially override just one property and
   leave this broken again. */
.ipob-post-page{
  max-width:1180px !important;
  margin:0 auto !important;
  padding:44px 24px 80px !important;
  display:grid !important;
  grid-template-columns:1fr 320px !important;
  gap:40px !important;
  width:auto !important;
}
.ipob-post-main{max-width:760px !important;width:100% !important;}
.ipob-post-main .post-top{margin-bottom:14px;}
.ipob-post-main h1{font-size:32px;line-height:1.2;margin-bottom:14px;}
.ipob-post-main .lede{font-size:16.5px;color:var(--slate);margin-bottom:22px;}
.ipob-post-main .entry-content{font-size:16px;line-height:1.75;}
.ipob-post-main .entry-content p{margin:0 0 18px;}
.ipob-post-main .entry-content img{border-radius:var(--radius-m);margin:20px 0;}
.ipob-post-sidebar{width:100% !important;}
@media (min-width:1500px){
  .ipob-post-page{max-width:1400px !important;grid-template-columns:1fr 360px !important;}
}
@media (max-width:900px){
  .ipob-post-page{grid-template-columns:1fr !important;}
}

/* ---------- Sidebar ---------- */
.sidebar{display:flex;flex-direction:column;gap:22px;}
.widget{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);padding:22px;}
.widget h2,.widget .widget-title{font-size:15px;margin:0 0 14px;font-weight:600;color:var(--slate);}
.widget ul{list-style:none;margin:0;padding:0;}
.widget li{padding:8px 0;border-bottom:1px solid var(--line);font-size:14px;display:flex;justify-content:space-between;}
.widget li:last-child{border-bottom:none;}
.subscribe-panel{background:var(--navy);color:#fff;border:none;position:sticky;top:90px;}
.subscribe-panel h2{color:#fff;font-size:18px;margin:0 0 8px;}
.subscribe-panel p{color:#B8BEC9;font-size:13.5px;line-height:1.55;margin:0 0 16px;}
.subscribe-panel form{display:flex;flex-direction:column;gap:10px;}
.subscribe-panel input{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.2);color:#fff;padding:11px 12px;border-radius:var(--radius-s);font-size:14px;}
.subscribe-panel button{background:var(--gold);color:var(--navy);border:none;font-weight:600;padding:11px;border-radius:var(--radius-s);cursor:pointer;font-size:14px;}
.subscribe-note{font-size:11.5px;color:#8B93A1;margin-top:8px;}

/* ---------- Footer ---------- */
footer.site-footer{background:var(--navy);color:#B8BEC9;padding:48px 24px 30px;}
.footer-inner{max-width:1180px;margin:0 auto;}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr;gap:28px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.1);}
.footer-grid h2{color:#fff;font-size:13.5px;margin:0 0 14px;font-weight:600;}
.footer-grid ul{list-style:none;margin:0;padding:0;}
.footer-grid a{display:block;font-size:13.5px;color:#9BA3B0;margin-bottom:9px;}
.footer-grid p{font-size:13.5px;line-height:1.6;color:#9BA3B0;max-width:280px;}
.disclaimer{font-size:12px;color:#6E7686;line-height:1.6;padding-top:22px;max-width:760px;}

/* back to top */
#back-to-top{position:fixed;bottom:24px;right:24px;background:var(--navy);color:#fff;border:none;width:42px;height:42px;border-radius:50%;font-size:18px;cursor:pointer;display:none;z-index:60;}

/* ---------- Full-width home page modules (IPO Watch, Recently Listed, Spotlight, Market Pulse) ---------- */
.full-width-modules{max-width:1180px;margin:0 auto;padding:44px 24px 0;display:flex;flex-direction:column;gap:44px;}
.full-width-modules > section{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);padding:26px 28px;}

/* IPO Watch table */
.watch-table-wrap{overflow-x:auto;}
.watch-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.watch-table th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--slate);padding:0 14px 10px;border-bottom:1px solid var(--line);white-space:nowrap;}
.watch-table td{padding:13px 14px;border-bottom:1px solid var(--line);white-space:nowrap;}
.watch-table tr:last-child td{border-bottom:none;}
.watch-table .watch-name{font-weight:600;color:var(--ink);white-space:normal;min-width:160px;}
.watch-table td.num{font-variant-numeric:tabular-nums;}
.num.up{color:var(--green);}
.num.down{color:var(--red);}
.watch-status{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:9999px;background:#EAF0FB;color:#2C5AA8;border:1px solid transparent;}
.watch-status.status-open{background:rgba(22,163,74,.12);color:var(--green);border-color:rgba(22,163,74,.35);}
.watch-status.status-upcoming{background:rgba(232,160,32,.12);color:var(--gold);border-color:rgba(232,160,32,.35);}
.watch-status.status-listed{background:rgba(2,132,199,.15);color:#0284C7;border-color:rgba(2,132,199,.4);}
.watch-status.status-awaiting-listing{background:rgba(232,160,32,.12);color:var(--gold);border-color:rgba(232,160,32,.35);}
.watch-status.status-mainboard{background:rgba(2,132,199,.15);color:#38BDF8;border-color:rgba(2,132,199,.4);}
.watch-status.status-sme{background:rgba(124,58,237,.15);color:#C084FC;border-color:rgba(124,58,237,.4);}
[data-theme="dark"] .watch-status.status-mainboard{color:#38BDF8;}
[data-theme="dark"] .watch-status.status-sme{color:#C084FC;}
.watch-empty{padding:24px 0;color:var(--slate);font-size:14px;}

/* Recently listed price grid */
.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.price-card{display:flex;flex-direction:column;gap:4px;background:var(--bg,#F7F6F2);border:1px solid var(--line);border-radius:var(--radius-s);padding:16px 18px;}
.price-name{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.price-symbol{font-size:11px;color:var(--slate);letter-spacing:.03em;}
.price-value{font-size:19px;font-weight:600;color:var(--ink);margin-top:4px;font-variant-numeric:tabular-nums;}
.price-change{font-size:12.5px;font-weight:600;}
.price-change.up{color:var(--green);}
.price-change.down{color:var(--red);}

/* Spotlight video */
.spotlight-embed{position:relative;width:100%;padding-top:56.25%;border-radius:var(--radius-s);overflow:hidden;background:#000;}
.spotlight-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;}

/* Market Pulse headline grid */
.pulse-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.pulse-item{display:flex;flex-direction:column;gap:4px;padding:13px 15px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--bg,#F7F6F2);}
.pulse-source{font-size:11px;font-weight:600;color:var(--gold);text-transform:uppercase;letter-spacing:.04em;}
.pulse-title{font-size:13.5px;color:var(--ink);line-height:1.45;}
.pulse-note{font-size:12px;color:var(--slate);margin-top:14px;}

/* Market status bar — top terminal strip: NSE/BSE/MCX live dots + Nifty/Sensex/VIX */
.market-status-bar{background:#070E1C;border-bottom:1px solid var(--line);}
[data-theme="dark"] .market-status-bar{background:#070E1C;}
:root:not([data-theme="dark"]) .market-status-bar{background:var(--navy);}
.market-status-inner{max-width:1280px;margin:0 auto;padding:7px 20px;display:flex;align-items:center;gap:14px;flex-wrap:nowrap;overflow-x:auto;font-size:12px;scrollbar-width:none;-ms-overflow-style:none;}
.market-status-inner::-webkit-scrollbar{display:none;height:0;}

/* On large monitors, the 1180px content column leaves a wide empty margin
   that looks unbalanced — widen it proportionally instead of leaving that
   dead space, while still keeping a sensible reading-width cap. */
@media (min-width:1500px){
  .topbar-inner,.hero-inner,.layout,.footer-inner,.full-width-modules{max-width:1400px;}
  .market-status-inner{max-width:1500px;}
  .layout{grid-template-columns:1fr 360px;}
}
.status-pill{display:flex;align-items:center;gap:6px;font-size:12px;color:#8A99AD;flex-shrink:0;white-space:nowrap;}
.status-pill b{font-weight:700;color:var(--green);}
.status-dot{width:6px;height:6px;border-radius:50%;display:inline-block;}
.status-dot.dot-open{background:var(--green);box-shadow:0 0 6px rgba(22,163,74,.7);animation:ipob-pulse 2s infinite;}
.status-dot.dot-closed{background:var(--red);box-shadow:0 0 6px rgba(220,38,38,.6);animation:ipob-flash-red 1.4s infinite;}
@keyframes ipob-flash-red{0%,100%{opacity:1;}50%{opacity:.4;}}
.status-sep{color:#434654;flex-shrink:0;}
.status-sep-lg{display:none;}
.status-time{color:#C8CCD4;flex-shrink:0;white-space:nowrap;}
.status-indices{display:flex;align-items:center;gap:16px;flex-shrink:0;white-space:nowrap;}
.status-indices span{color:#8A99AD;display:flex;align-items:center;gap:5px;}
.status-indices b{color:#F7F6F1;font-weight:600;}
.status-indices b.up{color:var(--green);}
.status-indices b.down{color:var(--red);}
.status-note{font-size:10.5px;color:#55657E;margin-left:auto;flex-shrink:0;white-space:nowrap;}
@media (min-width:900px){
  .status-sep-lg{display:inline;}
}
@media (max-width:760px){
  .status-note{display:none;}
}

/* Market movers tabs */
.movers-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
.movers-tab-btn{background:var(--paper,#F7F5F0);color:var(--slate);border:1px solid var(--line);}
.movers-tab-btn.active{background:var(--navy);color:#fff;border-color:var(--navy);}
.exchange-toggle{display:inline-flex;gap:4px;background:var(--paper,#F7F5F0);border:1px solid var(--line);border-radius:8px;padding:3px;margin-bottom:18px;}
.exchange-toggle-btn{border:none;background:transparent;color:var(--slate);font-weight:700;font-size:12.5px;letter-spacing:.02em;padding:6px 16px;border-radius:6px;cursor:pointer;transition:background .15s ease,color .15s ease;}
.exchange-toggle-btn.active{background:var(--navy);color:#fff;}
[data-theme="dark"] .exchange-toggle{background:var(--card);border-color:var(--line);}
[data-theme="dark"] .exchange-toggle-btn.active{background:#fff;color:var(--navy);}

/* Indian Indices page + global indices sidebar widget */
.indices-layout .stat-up{color:var(--green);font-weight:600;}
.indices-layout .stat-down{color:var(--red);font-weight:600;}

@media (max-width:880px){
  .full-width-modules{padding:32px 20px 0;gap:28px;}
  .full-width-modules > section{padding:20px;}
  .price-grid{grid-template-columns:1fr 1fr;}
  .pulse-grid{grid-template-columns:1fr;}
  nav.main-nav,.site-search{display:none;}
  .mobile-toggle{display:block;}
  .layout{grid-template-columns:1fr;}
  .hero h1{font-size:30px;}
  .hero-cta{flex-direction:column;}
  .hero-cta input{width:100%;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .price-grid{grid-template-columns:1fr 1fr !important;}
  .watch-table-wrap{overflow-x:auto;}
  .subscribe-panel{position:static;}

  /* Revealed mobile nav + search: stack as a full-width dropdown below the
     header instead of trying to fit a 9-item row on a phone screen. */
  .topbar-inner{flex-wrap:wrap;position:relative;}
  nav.main-nav{
    width:100%;order:10;
    background:var(--navy);border-top:1px solid rgba(255,255,255,.1);
    padding:12px 0 4px;
  }
  nav.main-nav ul{flex-direction:column;gap:2px;width:100%;}
  nav.main-nav a{display:block;padding:10px 4px;}
  .site-search{width:100%;order:11;flex:1 1 100%;margin:8px 0 12px;max-width:none;}
}

/* ---------- IPO core: upcoming strip ---------- */
.upcoming-strip{display:flex;gap:14px;overflow-x:auto;padding-bottom:6px;}
.upcoming-chip{flex:0 0 auto;min-width:190px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);padding:14px 16px;display:flex;flex-direction:column;gap:6px;}
.upcoming-chip b{font-family:'Plus Jakarta Sans',sans-serif;font-size:15.5px;}
.upcoming-chip span{font-size:12.5px;color:var(--slate);}

/* ---------- Upcoming IPOs: Mainboard / SME side-by-side panels ---------- */
.upcoming-board-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media (max-width:760px){.upcoming-board-grid{grid-template-columns:1fr;}}
.upcoming-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);padding:18px 20px 16px;display:flex;flex-direction:column;}
.upcoming-panel-head{margin-bottom:10px;}
.upcoming-panel-eyebrow{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:3px;}
.upcoming-panel-head h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:18px;margin:0;}
.upcoming-table th, .upcoming-table td{white-space:nowrap;}
.upcoming-table td.watch-name{white-space:normal;}

/* ---------- GMP hover/tap tooltip ---------- */
.gmp-value{position:relative;cursor:help;border-bottom:1px dashed var(--slate);}
.gmp-info{font-size:11px;opacity:.7;}
.gmp-value::after{
  content:attr(data-tooltip);
  position:absolute;bottom:125%;left:50%;transform:translateX(-50%);
  background:var(--navy);color:#fff;padding:8px 10px;border-radius:6px;
  font-size:11.5px;font-weight:400;white-space:normal;width:220px;line-height:1.4;
  opacity:0;visibility:hidden;transition:opacity .15s;z-index:20;text-align:left;
}
.gmp-value:hover::after,.gmp-value:focus::after,.gmp-value.show-tip::after{opacity:1;visibility:visible;}

/* ---------- Listed IPO performance cards ---------- */
.listed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;}
.ipo-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);padding:18px;display:flex;flex-direction:column;gap:12px;}
.ipo-card-head{display:flex;flex-direction:column;gap:2px;}
.ipo-card-head b{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;}
.ipo-card-price{display:flex;flex-direction:column;gap:4px;}
.ipo-card-price .ltp{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;}
.ipo-card-meta{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--slate);}
.ipo-card-meta b{color:var(--ink);}
.ipo-range-toggle{display:flex;gap:6px;}
.range-btn{flex:1;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:6px 0;font-size:12.5px;cursor:pointer;color:var(--slate);}
.range-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);}
.ipo-range-result{text-align:center;}
.range-percent{font-size:17px;font-weight:700;}

.view-more-link{display:inline-block;margin-top:10px;font-size:13px;font-weight:600;color:var(--navy);}
[data-theme="dark"] .view-more-link{color:var(--gold);}

/* ---------- Tap-for-news popover ---------- */
.ipob-newsable{cursor:pointer;}
.news-dot{font-size:11px;opacity:.55;}
.ipob-news-popover{
  position:absolute;z-index:200;width:290px;max-width:90vw;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);
  box-shadow:0 12px 32px rgba(0,0,0,.18);padding:10px;
}
.ipob-news-head{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:600;padding:4px 6px 8px;border-bottom:1px solid var(--line);margin-bottom:6px;}
.ipob-news-loading,.ipob-news-empty{font-size:12.5px;color:var(--slate);padding:6px;}
.ipob-news-item{display:flex;flex-direction:column;gap:2px;padding:7px 6px;border-radius:6px;}
.ipob-news-item:hover{background:var(--paper);}
.ipob-news-source{font-size:10.5px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.03em;}
.ipob-news-title{font-size:12.5px;line-height:1.4;color:var(--ink);}

/* ---------- Global indices / crypto quote grid ---------- */
.quote-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;}
.quote-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);padding:16px;display:flex;flex-direction:column;gap:6px;cursor:default;}
.quote-label{font-size:12.5px;color:var(--slate);font-weight:600;text-transform:uppercase;letter-spacing:.02em;}
.quote-value{font-family:'Plus Jakarta Sans',sans-serif;font-size:19px;font-weight:600;color:var(--ink);}

/* ---------- Stock Action board (Moneycontrol-style multi-panel) ---------- */
.stock-action-section .sa-head{margin-bottom:16px;}
.sa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px;}
@media (max-width:900px){
  .sa-grid{grid-template-columns:1fr;}
}
.sa-grid-row2{grid-template-columns:repeat(4,1fr);}
.sa-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);padding:16px;min-width:0;}
.sa-panel-tabs{display:flex;gap:18px;border-bottom:1px solid var(--line);margin-bottom:12px;}
.sa-tab-btn{background:none;border:none;padding:0 0 10px;font-size:13.5px;font-weight:600;color:var(--slate);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;}
.sa-tab-btn.active{color:var(--ink);border-bottom-color:var(--accent);}
.sa-tab-btn.sa-tab-locked{color:var(--slate);opacity:.75;}
.sa-table{width:100%;border-collapse:collapse;font-size:13px;}
.sa-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--slate);padding:0 8px 8px 0;border-bottom:1px solid var(--line);white-space:nowrap;}
.sa-table th:not(:first-child),.sa-table td:not(:first-child){text-align:right;}
.sa-table td{padding:9px 8px 9px 0;border-bottom:1px solid var(--line);white-space:nowrap;}
.sa-table tr:last-child td{border-bottom:none;}
.sa-table .watch-name{font-weight:600;color:var(--ink);}
.sa-table .num{font-variant-numeric:tabular-nums;}
.sa-no-record{color:var(--slate);font-size:13px;padding:16px 0;text-align:center;white-space:normal;}
.sa-unavailable{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:26px 10px;color:var(--slate);}
.sa-unavailable-icon{font-size:20px;opacity:.6;}
.sa-unavailable p{font-size:12.5px;line-height:1.5;margin:0;max-width:220px;}
@media (max-width:900px){
  .sa-grid,.sa-grid-row2{grid-template-columns:1fr 1fr;}
}
@media (max-width:600px){
  .sa-grid,.sa-grid-row2{grid-template-columns:1fr;}
}

/* ============================================================
   IPO tabs section (Upcoming / Open / GMP updates / Listed)
   ============================================================ */
.ipo-tabs-section{margin-bottom:36px;}

.ipo-tab-bar{
  display:flex;
  gap:6px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  border-bottom:1px solid var(--line);
  margin-bottom:22px;
  padding-bottom:0;
}
.ipo-tab-bar::-webkit-scrollbar{height:4px;}
.ipo-tab-bar::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}

.ipo-tab-btn{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  background:transparent;
  border:none;
  border-bottom:3px solid transparent;
  padding:12px 18px;
  font-family:inherit;
  font-size:14.5px;
  font-weight:600;
  color:var(--slate);
  cursor:pointer;
  white-space:nowrap;
  transition:color .15s ease, border-color .15s ease, background .15s ease;
  border-radius:8px 8px 0 0;
}
.ipo-tab-btn:hover{color:var(--ink);background:rgba(0,0,0,.03);}
.ipo-tab-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
.ipo-tab-btn.is-active{color:var(--navy);border-bottom-color:var(--accent);}
[data-theme="dark"] .ipo-tab-btn{color:#B9C2D6;}
[data-theme="dark"] .ipo-tab-btn:hover{background:rgba(255,255,255,.05);color:#fff;}
[data-theme="dark"] .ipo-tab-btn.is-active{color:#fff;}

.ipo-tab-icon{font-size:16px;line-height:1;}
.ipo-tab-label-short{display:none;}

/* Panels: content-only (no outer heading) since the tab button already
   names the section — a redundant h2 here would just add visual noise. */
.ipo-tab-panel{animation:ipob-fade-in .15s ease;}
.ipo-tab-panel[hidden]{display:none;}
@keyframes ipob-fade-in{from{opacity:0;}to{opacity:1;}}

@media (max-width:640px){
  .ipo-tab-btn{padding:10px 14px;font-size:13.5px;}
  .ipo-tab-label-full{display:none;}
  .ipo-tab-label-short{display:inline;}
}

/* ============================================================
   Table spacing overhaul — more breathing room between columns,
   a real horizontal-scroll fallback on narrow screens instead of
   squeezing columns, and GMP value/percentage no longer collide.
   ============================================================ */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-m);}

.watch-table-wrap, .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.watch-table, .upcoming-table{
  width:100%;
  min-width:480px; /* forces horizontal scroll rather than column-squeezing below this width */
  border-collapse:separate;
  border-spacing:0;
  font-size:14px;
}
.watch-table--wide{min-width:820px;} /* Open IPOs table: 8 columns incl. Opens/Closes/Listing date */
.watch-table th, .upcoming-table th{
  text-align:left;
  font-size:10.5px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#F7F6F1;
  padding:10px 18px 10px 12px;
  white-space:nowrap;
  background:var(--navy);
}
.watch-table thead tr, .upcoming-table thead tr{border-radius:var(--radius-s);}
.watch-table thead th:first-child, .upcoming-table thead th:first-child{border-top-left-radius:var(--radius-s);border-bottom-left-radius:var(--radius-s);}
.watch-table thead th:last-child, .upcoming-table thead th:last-child{border-top-right-radius:var(--radius-s);border-bottom-right-radius:var(--radius-s);}
.watch-table td, .upcoming-table td{
  padding:11px 18px 11px 4px;
  border-bottom:1px solid var(--line);
  white-space:nowrap;
  line-height:1.4;
  font-size:13.5px;
}
.watch-table th:first-child, .upcoming-table th:first-child,
.watch-table td:first-child, .upcoming-table td:first-child{padding-left:16px;}
.watch-table th:last-child, .upcoming-table th:last-child,
.watch-table td:last-child{padding-right:16px;}
.watch-table tr:last-child td, .upcoming-table tr:last-child td{border-bottom:none;}
.watch-table tr:hover td, .upcoming-table tr:hover td{background:rgba(0,0,0,.015);}
[data-theme="dark"] .watch-table tr:hover td,[data-theme="dark"] .upcoming-table tr:hover td{background:rgba(255,255,255,.03);}

.watch-table .watch-name, .upcoming-table .watch-name{
  font-weight:600;
  color:var(--ink);
  white-space:normal;
  min-width:170px;
}
.allotment-link{display:block;margin-top:3px;font-size:11.5px;font-weight:600;color:var(--accent,#B5895B);text-decoration:none;}
.allotment-link:hover{text-decoration:underline;}

/* GMP value + percentage: stacked, not run together on one line, so they
   never visually collide even at the theme's larger table font size. */
.gmp-cell{display:flex;flex-direction:column;gap:2px;align-items:flex-end;}
.gmp-cell .gmp-amount{font-weight:600;}
.gmp-cell .gmp-pct{font-size:12px;color:var(--slate);}
.gmp-cell .gmp-pct.up{color:var(--green);}
.gmp-cell .gmp-pct.down{color:var(--red);}

@media (max-width:640px){
  .watch-table th, .upcoming-table th{padding:8px 14px 8px 10px;font-size:10px;}
  .watch-table td, .upcoming-table td{padding:12px 14px 12px 4px;font-size:13px;}
}

/* ============================================================
   Hero KPI stat row — inspired by the Stitch "Midnight Capital
   Intelligence" design system's live vitals cards.
   ============================================================ */
.hero-kpi-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:10px;
  margin:20px 0 4px;
}
@media (min-width:760px){
  .hero-kpi-grid{grid-template-columns:repeat(4,1fr);}
}
.hero-kpi{
  background:rgba(255,255,255,.04);border:1px solid var(--line);
  border-radius:var(--radius-s);padding:14px 16px;
}
[data-theme="dark"] .hero-kpi{background:rgba(255,255,255,.03);}
.hero-kpi-label{
  font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:#8A99AD;display:flex;align-items:center;justify-content:space-between;gap:6px;
}
.hero-kpi-dot{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0;animation:ipob-pulse 2s infinite;}
@keyframes ipob-pulse{0%,100%{opacity:1;}50%{opacity:.35;}}
.hero-kpi-value{
  font-family:'Inter',sans-serif;font-size:22px;font-weight:700;color:#F7F6F1;
  margin-top:4px;font-feature-settings:'tnum' 1;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;
}
.hero-kpi-value.up{color:var(--green);}
.hero-kpi-value.down{color:var(--red);}
.hero-kpi-sub{font-size:11.5px;color:#8A99AD;font-weight:500;max-width:180px;}
.hero-kpi-sub.up{color:var(--green);}
.hero-kpi-sub.down{color:var(--red);}
.hero-kpi-sub.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ============================================================
   Quick-nav card row — below the hero, matching the Stitch
   mockup's mega-menu-style quick links row.
   ============================================================ */
.quick-nav-row{
  display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:18px;
}
@media (min-width:700px){
  .quick-nav-row{grid-template-columns:repeat(6,1fr);}
}
.quick-nav-card{
  display:flex;flex-direction:column;gap:2px;padding:12px 14px;
  background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:var(--radius-s);
  transition:background .15s ease,border-color .15s ease;
}
.quick-nav-card:hover{background:rgba(255,255,255,.07);border-color:var(--navy-soft);}
.quick-nav-label{font-size:9.5px;font-weight:700;letter-spacing:.06em;color:#8A99AD;text-transform:uppercase;}
.quick-nav-title{font-size:13px;font-weight:600;color:#F7F6F1;margin-top:2px;}
.quick-nav-sub{font-size:11px;color:#8A99AD;}
.quick-nav-sub.up{color:var(--green);}

/* ============================================================
   IPO Allotment Status section
   ============================================================ */
.allotment-sub-head{font-size:14px;font-weight:600;color:var(--slate);margin:26px 0 14px;}
.allotment-box{
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);padding:20px 24px;
}
.allotment-box p{margin:0;color:var(--slate);font-size:14px;max-width:560px;}
.allotment-btn{
  flex-shrink:0;background:var(--navy);color:#fff;font-weight:600;font-size:14px;
  padding:11px 20px;border-radius:var(--radius-s);white-space:nowrap;transition:background .15s ease;
}
.allotment-btn:hover{background:var(--navy-soft);}

/* ============================================================
   Table search input — reused across every full-list page
   ============================================================ */
.table-controls{display:flex;gap:10px;}
.ipob-search-input{
  flex:1;max-width:340px;padding:10px 14px;border-radius:var(--radius-s);
  border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:14px;
}
.ipob-search-input:focus{outline:none;border-color:var(--navy);}

/* ============================================================
   Subscription Status hero (new homepage top section)
   ============================================================ */
.sub-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:16px;}
.sub-hero-eyebrow{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--gold);text-transform:uppercase;margin-bottom:8px;}
.sub-hero-countdown{
  flex-shrink:0;background:rgba(232,160,32,.1);border:1px solid rgba(232,160,32,.35);
  border-radius:var(--radius-s);padding:10px 16px;text-align:center;
}
.sub-hero-countdown-label{display:block;font-size:9.5px;font-weight:700;letter-spacing:.05em;color:var(--gold);text-transform:uppercase;}
.sub-hero-countdown-value{display:block;font-size:20px;font-weight:700;color:var(--ink);font-feature-settings:'tnum' 1;margin-top:2px;}

.sub-matrix-section, .sub-quota-info, .sub-faq-section{margin-bottom:36px;}

.quota-rule-grid{display:grid;grid-template-columns:1fr;gap:12px;}
@media (min-width:760px){.quota-rule-grid{grid-template-columns:repeat(3,1fr);}}
.quota-rule-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);padding:18px;}
.quota-rule-card b{display:block;font-size:14px;margin-bottom:6px;color:var(--ink);}
.quota-rule-card p{margin:0;font-size:13px;color:var(--slate);line-height:1.55;}

.faq-grid{display:grid;grid-template-columns:1fr;gap:10px;}
@media (min-width:760px){.faq-grid{grid-template-columns:repeat(2,1fr);}}
.faq-item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);padding:16px 18px;}
.faq-item summary{cursor:pointer;font-weight:600;font-size:14.5px;color:var(--ink);list-style:none;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+';float:right;color:var(--slate);font-weight:400;}
.faq-item[open] summary::after{content:'−';}
.faq-item p{margin:10px 0 0;font-size:13.5px;color:var(--slate);line-height:1.6;}

/* ============================================================
   Post-Listing Returns Heatmap + Registrar Directory (real data)
   ============================================================ */
.heatmap-row{padding:12px 0;border-bottom:1px solid var(--line);}
.heatmap-row:last-of-type{border-bottom:none;}
.heatmap-name{font-size:14px;font-weight:600;color:var(--ink);}
.heatmap-gain{font-size:15px;font-weight:700;margin-top:2px;}
.heatmap-meta{display:flex;gap:14px;font-size:12px;color:var(--slate);margin-top:4px;flex-wrap:wrap;}

.registrar-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
@media (min-width:760px){.registrar-grid{grid-template-columns:repeat(4,1fr);}}
.registrar-card{
  display:flex;flex-direction:column;gap:8px;padding:14px;text-align:center;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius-s);
  transition:border-color .15s ease;
}
.registrar-card:hover{border-color:var(--navy);}
.registrar-card span:first-child{font-size:13px;font-weight:600;color:var(--ink);}
.registrar-link{font-size:11.5px;color:var(--navy-soft);}

/* ============================================================
   Native contact form
   ============================================================ */
.ipob-contact-form{max-width:480px;}
.ipob-contact-card{
  max-width:520px;background:var(--panel,#fff);border:1px solid var(--line,#E5E7EB);
  border-radius:14px;padding:28px 28px 24px;box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.ipob-contact-alert{
  margin-top:14px;padding:11px 14px;border-radius:8px;font-size:13.5px;font-weight:500;
}
.ipob-contact-alert.is-success{background:rgba(22,163,74,.1);color:#16A34A;border:1px solid rgba(22,163,74,.25);}
.ipob-contact-alert.is-error{background:rgba(220,38,38,.08);color:#DC2626;border:1px solid rgba(220,38,38,.25);}
@media (prefers-color-scheme: dark){
  .ipob-contact-card{background:#141B2E;border-color:#232B42;}
}
.ipob-form-row{margin-bottom:16px;}
.ipob-form-row label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:6px;}
.ipob-form-row input,.ipob-form-row textarea{
  width:100%;padding:10px 14px;border-radius:var(--radius-s);
  border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:14px;
  font-family:inherit;box-sizing:border-box;
}
.ipob-form-row input:focus,.ipob-form-row textarea:focus{outline:none;border-color:var(--navy);}

/* ============================================================
   Sidebar Market Movers mini-widget
   ============================================================ */
.widget-movers{display:flex;flex-direction:column;gap:12px;}
.mover-mini-col{display:flex;flex-direction:column;gap:2px;}
.mover-mini-label{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-bottom:4px;}
.mover-mini-label.up{color:var(--green);}
.mover-mini-label.down{color:var(--red);}
.mover-mini-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid var(--line);font-size:12.5px;}
.mover-mini-row:last-child{border-bottom:none;}

/* ============================================================
   Web Stories sidebar widget (renders once the official Google
   Web Stories plugin is installed and stories exist)
   ============================================================ */
.story-mini-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.story-mini-card{
  display:flex;flex-direction:column;aspect-ratio:3/5;border-radius:var(--radius-s);
  overflow:hidden;position:relative;background:var(--paper);
}
.story-mini-card img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;margin:0;}
.story-mini-card span{
  position:relative;margin-top:auto;padding:10px 8px;font-size:11.5px;font-weight:600;color:#fff;
  background:linear-gradient(0deg,rgba(0,0,0,.75) 0%,transparent 100%);line-height:1.3;
}

/* ============================================================
   Ad slots (AdSense or any other network — populate via
   Appearance > Widgets > "Below Header (Ad)" / "In-Article (Ad)")
   ============================================================ */
.ad-slot-wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
@media (min-width:1500px){.ad-slot-wrap{max-width:1400px;}}
.ad-slot{margin:20px 0;text-align:center;overflow:hidden;}
.ad-slot:empty{display:none;}

/* ============================================================
   GIFT Nifty Native Live Data Pill
   Native HTML element dynamically updated without heavy iframes.
   ============================================================ */
#ipob-gift-nifty-live{
  display:inline-flex;
  align-items:center;
  gap:5px;
  flex-shrink:0;
  white-space:nowrap;
}

