/* ================================================================
   IPOGO.IN — Custom Styles  (Bootstrap 5.3 base)
================================================================ */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@600;700;800;900&family=Nunito+Sans:opsz,wght@6..12,400;6..12,500;6..12,600&display=swap');

/* ── Tokens ── */
:root {
  --brand:      #0052CC;
  --brand-d:    #0747A6;
  --brand-bg:   #E9F2FF;
  --green:      #006644;
  --green-bg:   #DCFCE7;
  --red:        #BF2600;
  --red-bg:     #FFEBE6;
  --orange:     #974F0C;
  --orange-bg:  #FFFAE6;
  --dark-navy:  #07101F;
  --fd: 'Outfit', sans-serif;
  --fb: 'Nunito Sans', sans-serif;
}
[data-bs-theme="dark"] {
  --green-bg:  rgba(0,135,90,.18);
  --red-bg:    rgba(191,38,0,.18);
  --orange-bg: rgba(151,79,12,.15);
  --brand-bg:  rgba(0,82,204,.18);
}

/* ── Base ── */
body                        { font-family: var(--fb); }
h1,h2,h3,h4,h5,h6,
.font-display               { font-family: var(--fd); }
html                        { scroll-behavior: smooth; }

/* ── Semantic colours ── */
.text-gmp-up    { color: var(--green)       !important; }
.text-gmp-down  { color: var(--red)         !important; }
.bg-gmp-up      { background: var(--green-bg) !important; }
.bg-gmp-down    { background: var(--red-bg)   !important; }
.bg-warn        { background: var(--orange-bg)!important; }
.text-warn      { color: var(--orange)      !important; }
.bg-brand       { background: var(--brand)  !important; }
.text-brand     { color: var(--brand)       !important; }
.bg-brand-soft  { background: var(--brand-bg)!important; }
.bg-dark-footer { background: var(--dark-navy) !important; }

/* ── Navbar glass ── */
.navbar-glass {
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  transition: box-shadow .25s;
}

/* ── Ticker ── */
.tk-list {
  display: inline-flex; gap: 40px;
  white-space: nowrap;
  animation: tkScroll 30s linear infinite;
}
.tk-list:hover { animation-play-state: paused; }
@keyframes tkScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ── Pulse dot ── */
.pulse-dot {
  width:8px; height:8px; border-radius:50%; background:#00875A;
  display:inline-block; flex-shrink:0; position:relative;
}
.pulse-dot::after {
  content:''; position:absolute; inset:-3px; border-radius:50%;
  border:2px solid #00875A; opacity:.5;
  animation:pRing 1.7s ease-out infinite;
}
@keyframes pRing { 0%{transform:scale(1);opacity:.5} 100%{transform:scale(2.4);opacity:0} }

/* ── Live dot ── */
.live-dot {
  width:7px; height:7px; border-radius:50%; background:#57D9A3;
  box-shadow:0 0 0 3px rgba(87,217,163,.28);
  animation:blink 1.5s ease-in-out infinite;
  display:inline-block; flex-shrink:0;
}
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.3} }

/* ── Title highlight ── */
.title-hl {
  color:var(--brand); position:relative; display:inline-block;
}
.title-hl::after {
  content:''; position:absolute; bottom:4px; left:0; right:0;
  height:4px; background:#00875A; border-radius:2px; opacity:.4;
}

/* ── Section eyebrow ── */
.sec-eye {
  display:flex; align-items:center; gap:8px;
  font-family:var(--fd); font-weight:700; font-size:.72rem;
  text-transform:uppercase; letter-spacing:1.4px;
  color:var(--brand); margin-bottom:.5rem;
}
.sec-eye::before {
  content:''; width:18px; height:3px; border-radius:2px;
  background:var(--brand); display:inline-block; flex-shrink:0;
}

/* ── IPO card (grid) ── */
.ipo-card {
  transition: transform .22s cubic-bezier(.25,.46,.45,.94), box-shadow .22s, border-color .22s;
  border-color: var(--bs-border-color) !important;
}
.col-sm-6:hover .ipo-card {
  transform: translateY(-5px);
  box-shadow: 0 14px 36px rgba(0,82,204,.12) !important;
  border-color: rgba(0,82,204,.28) !important;
}

/* ── GMP number dominant ── */
.gmp-num {
  font-family: var(--fd); font-weight: 900;
  font-size: 1.9rem; line-height: 1; letter-spacing: -1px;
}

/* ── GMP bar ── */
.gmp-bar-wrap {
  height:4px; background:var(--bs-border-color); border-radius:2px; overflow:hidden;
}
.gmp-bar-fill {
  height:100%; border-radius:2px; transition:width .7s ease;
}

/* ── Date cell ── */
.date-cell {
  background:var(--bs-body-secondary);
  border:1px solid var(--bs-border-color);
  border-radius:10px; padding:6px 8px; text-align:center;
}
.date-label { font-size:.58rem; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--bs-secondary-color); }
.date-val   { font-family:var(--fd); font-weight:700; font-size:.82rem; color:var(--bs-body-color); margin-top:1px; }

/* ── Logo initials fallback ── */
.logo-initials {
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--fd); font-weight:800; font-size:.82rem;
  background:linear-gradient(135deg,var(--brand-bg),rgba(0,82,204,.1));
  color:var(--brand);
}

/* ── Smart tags ── */
.smart-tag {
  display:inline-flex; align-items:center; gap:3px;
  font-family:var(--fd); font-weight:700; font-size:.6rem;
  letter-spacing:.4px; text-transform:uppercase;
  padding:2px 7px; border-radius:20px; line-height:1.6;
}
.tag-trending { background:#FFF0D6; color:#92480A; }
.tag-closing  { background:#FFEBE6; color:#AE2A19; }
.tag-highret  { background:#DCFCE7; color:#006644; }
[data-bs-theme="dark"] .tag-trending { background:rgba(151,79,12,.22); color:#FFB84D; }
[data-bs-theme="dark"] .tag-closing  { background:rgba(191,38,0,.22);  color:#FF8F73; }
[data-bs-theme="dark"] .tag-highret  { background:rgba(0,135,90,.18);  color:#57D9A3; }

/* ── Bookmark button ── */
.btn-watchlist {
  width:28px; height:28px; border-radius:50%;
  border:1.5px solid var(--bs-border-color);
  background:var(--bs-body-bg);
  display:flex; align-items:center; justify-content:center;
  font-size:.8rem; color:var(--bs-secondary-color);
  cursor:pointer; transition:all .18s;
}
.btn-watchlist:hover,.btn-watchlist.active {
  background:var(--brand-bg); border-color:var(--brand); color:var(--brand);
}

/* ── Trust chips ── */
.trust-chip {
  display:inline-flex; align-items:center; gap:5px;
  font-family:var(--fd); font-weight:600; font-size:.75rem;
  color:var(--bs-secondary-color);
  background:var(--bs-body-secondary);
  border:1px solid var(--bs-border-color);
  border-radius:20px; padding:4px 10px;
}

/* ── Stat pill (hero) ── */
.stat-pill {
  background:var(--bs-body-secondary);
  border:1px solid var(--bs-border-color);
  border-radius:12px; padding:10px 16px; text-align:center;
  transition:border-color .2s;
}
.stat-pill:hover { border-color:rgba(0,82,204,.3); }

/* ── Closed row ── */
.closed-row {
  color:inherit;
  transition:background .15s;
}
.closed-row:hover { background:var(--bs-body-secondary); }
#closed-table-wrap .closed-row:last-child { border-bottom:none !important; }

/* ── About feature cards ── */
.afp-card { transition:transform .2s, border-color .2s, box-shadow .2s; }
.afp-card:hover {
  transform:translateX(5px);
  border-color:var(--brand) !important;
  box-shadow:0 4px 18px rgba(0,82,204,.1) !important;
}

/* ── Why cards ── */
.why-card { transition:transform .25s,box-shadow .25s; position:relative; overflow:hidden; }
.why-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  opacity:0; transition:opacity .25s;
}
.why-card:hover { transform:translateY(-5px); box-shadow:0 12px 32px rgba(9,30,66,.14) !important; }
.why-card:hover::before { opacity:1; }
.wc1::before { background:var(--brand); }
.wc2::before { background:#00875A; }
.wc3::before { background:#FF8B00; }
.wc4::before { background:#FF5630; }

/* ── Stats bar ── */
.sc-cell { position:relative; transition:background .18s; cursor:default; }
.sc-cell::after {
  content:''; position:absolute; bottom:0; left:50%; right:50%; height:2px;
  background:#57D9A3; transition:left .3s,right .3s;
}
.sc-cell:hover::after { left:15%; right:15%; }

/* ── Mini cards ── */
.mini-card { transition:transform .2s,box-shadow .2s,border-color .2s; }
.mini-card:hover {
  transform:translateY(-3px);
  box-shadow:0 6px 20px rgba(0,82,204,.12) !important;
  border-color:var(--brand) !important;
}

/* ── Featured card ── */
.featured-card-wrap { position:relative; }
.detail-hero-strip  { background:linear-gradient(135deg,#0747A6,#0052CC 60%,#0065FF); }

/* ── Detail page ── */
.detail-stat-card { transition:transform .18s,box-shadow .18s; }
.detail-stat-card:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,82,204,.12) !important; }
.timeline-item { position:relative; padding-left:1.5rem; }
.timeline-item::before { content:''; position:absolute; left:.35rem; top:.5rem; bottom:-1.2rem; width:2px; background:var(--bs-border-color); }
.timeline-item:last-child::before { display:none; }
.timeline-dot { position:absolute; left:0; top:.4rem; width:14px; height:14px; border-radius:50%; border:2px solid var(--brand); background:var(--bs-body-bg); }
.timeline-dot.done  { background:var(--brand); }
.timeline-dot.today { background:#00875A; border-color:#00875A; }

/* ── Scroll margin ── */
.scroll-mt { scroll-margin-top:84px; }

/* ── Fade-up ── */
.fade-up { opacity:0; transform:translateY(20px); transition:opacity .5s ease,transform .5s ease; }
.fade-up.visible { opacity:1; transform:translateY(0); }
.d1 { transition-delay:.08s; } .d2 { transition-delay:.16s; } .d3 { transition-delay:.24s; }

/* ── Loader ── */
.ipogo-loader { display:flex; align-items:center; justify-content:center; min-height:200px; }

/* ── Skeleton ── */
.skeleton {
  background:linear-gradient(90deg,var(--bs-border-color) 25%,var(--bs-body-secondary) 50%,var(--bs-border-color) 75%);
  background-size:200% 100%; animation:shimmer 1.4s infinite; border-radius:6px;
}
@keyframes shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
.sk-card { border-radius:16px; overflow:hidden; border:1px solid var(--bs-border-color); }
.sk-h { height:14px; margin-bottom:8px; }
.sk-h.wide{width:70%} .sk-h.med{width:45%} .sk-h.sm{width:30%}
.sk-box { height:52px; border-radius:10px; }

/* ── Compare bar ── */
#compare-bar {
  position:fixed; bottom:0; left:0; right:0; z-index:1050;
  background:var(--bs-body-bg); border-top:2px solid var(--brand);
  box-shadow:0 -4px 24px rgba(0,82,204,.14);
  transform:translateY(100%); transition:transform .3s cubic-bezier(.25,.46,.45,.94);
  padding:12px 20px;
}
#compare-bar.show { transform:translateY(0); }

/* ── Compare modal ── */
#compareModal .modal-dialog { max-width:760px; }
.cmp-col { border-right:1px solid var(--bs-border-color); }
.cmp-col:last-child { border-right:none; }
.cmp-row { padding:8px 0; border-bottom:1px solid var(--bs-border-color); font-size:.88rem; }
.cmp-row:last-child { border-bottom:none; }
.cmp-label { font-size:.68rem; text-transform:uppercase; letter-spacing:.5px; font-weight:700; color:var(--bs-secondary-color); }
.cmp-val   { font-family:var(--fd); font-weight:700; font-size:.95rem; margin-top:2px; }

/* ── Toast ── */
#ipogo-toast-wrap { position:fixed; bottom:80px; right:20px; z-index:2000; display:flex; flex-direction:column; gap:8px; pointer-events:none; }
.ipogo-toast {
  background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-left:4px solid var(--brand);
  border-radius:10px; padding:10px 16px; font-size:.84rem; font-family:var(--fd); font-weight:600;
  box-shadow:0 4px 20px rgba(0,0,0,.12); pointer-events:all;
  animation:toastIn .3s ease; min-width:220px;
}
@keyframes toastIn { from{opacity:0;transform:translateX(20px)} to{opacity:1;transform:none} }

/* ── Recently viewed chips ── */
.rv-chip {
  display:inline-flex; align-items:center; gap:5px; padding:4px 12px;
  border:1px solid var(--bs-border-color); border-radius:20px;
  font-size:.78rem; font-family:var(--fd); font-weight:600;
  color:var(--bs-body-color); text-decoration:none; transition:all .15s; white-space:nowrap;
}
.rv-chip:hover { border-color:var(--brand); color:var(--brand); background:var(--brand-bg); }

/* ── Top GMP rank cards ── */
#top-gmp-section .gmp-rank-card {
  border-radius:12px; border:1px solid var(--bs-border-color);
  padding:10px 12px; transition:transform .18s,box-shadow .18s,border-color .18s;
  cursor:pointer; text-decoration:none; display:block;
}
#top-gmp-section .gmp-rank-card:hover {
  transform:translateY(-3px); box-shadow:0 6px 18px rgba(0,82,204,.1);
  border-color:rgba(0,82,204,.3);
}
.gmp-rank-1 { border-left:3px solid #FFB84D !important; }
.gmp-rank-2 { border-left:3px solid #57D9A3 !important; }
.gmp-rank-3 { border-left:3px solid var(--brand) !important; }

/* ── Viewer pill ── */
.viewer-pill { display:inline-flex; align-items:center; gap:4px; font-size:.65rem; font-weight:600; font-family:var(--fd); color:var(--bs-secondary-color); background:var(--bs-body-secondary); border:1px solid var(--bs-border-color); border-radius:20px; padding:2px 8px; }
.viewer-dot  { width:5px; height:5px; border-radius:50%; background:#00875A; animation:blink 1.5s ease-in-out infinite; }

/* ── Hero market canvas ── */
.hero-market-bg { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0; }
.hero-market-bg canvas { position:absolute; inset:0; width:100%; height:100%; opacity:.15; }

/* ── Section separator ── */
.section-sep { height:1px; background:linear-gradient(90deg,transparent,var(--bs-border-color) 30%,var(--bs-border-color) 70%,transparent); }

/* ── Btn effects ── */
.btn-primary { position:relative; overflow:hidden; transition:transform .18s,box-shadow .18s !important; }
.btn-primary:hover { transform:translateY(-2px) scale(1.02); box-shadow:0 6px 24px rgba(0,82,204,.32) !important; }
.btn-outline-secondary:hover { transform:translateY(-2px); box-shadow:0 4px 14px rgba(0,0,0,.08) !important; }

/* ── Footer ── */
.bg-dark-footer { background:var(--dark-navy) !important; }

/* ── Responsive ── */
@media (max-width:767px) {
  .gmp-num { font-size:1.5rem !important; }
  #hero .py-3 { padding-top:1.5rem !important; padding-bottom:1.5rem !important; }
  .col-sm-6:hover .ipo-card { transform:none !important; }
}
@media (max-width:575px) {
  .detail-hero-strip .display-6 { font-size:1.4rem; }
}
/* ================================================================
   LEGAL PAGES (disclaimer, privacy, terms)
================================================================ */
.legal-section-num { width:44px; height:44px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }

/* ── FAQ Enhanced ── */
.faq-item { transition:box-shadow .2s; }
.faq-item:hover { box-shadow:0 4px 18px rgba(0,0,0,.07) !important; }
[data-bs-theme="dark"] .faq-item:hover { box-shadow:0 4px 18px rgba(0,0,0,.25) !important; }
.faq-cat-btn { transition:all .15s; }

/* ── Closed table row hover ── */
.closed-row { transition:background .15s; }
.closed-row:hover { background:var(--bs-body-secondary) !important; }
[data-bs-theme="dark"] .closed-row:hover { background:rgba(255,255,255,.04) !important; }

/* ── Navbar dropdown ── */
#topNav .dropdown-menu { font-size:.88rem; }
#topNav .dropdown-item { font-weight:500; font-family:var(--fd); border-radius:8px; margin:2px 4px; width:calc(100% - 8px); }
#topNav .dropdown-item:hover { background:var(--brand-bg); color:var(--brand); }
[data-bs-theme="dark"] #topNav .dropdown-item:hover { background:rgba(0,82,204,.2); color:#6fa8ff; }

/* ── Footer legal links ── */
.footer-link:hover { color:#fff !important; }

/* ── scroll-mt for legal pages ── */
.scroll-mt { scroll-margin-top:80px; }

/* ================================================================
   STOCK CHART WIDGET
================================================================ */
/* Range buttons */
.chart-range-btn {
  background : var(--bs-body-secondary);
  border     : 1px solid var(--bs-border-color);
  color      : var(--bs-secondary-color);
  font-family: var(--fd);
  font-weight: 700;
  font-size  : .72rem;
  padding    : 3px 11px;
  border-radius: 8px;
  transition : background .15s, color .15s, border-color .15s;
  line-height: 1.7;
}
.chart-range-btn:hover {
  background : var(--brand-bg);
  border-color: rgba(0,82,204,.3);
  color      : var(--brand);
}
.chart-range-btn.active {
  background : var(--brand);
  border-color: var(--brand);
  color      : #fff;
  box-shadow : 0 2px 8px rgba(0,82,204,.28);
}
[data-bs-theme="dark"] .chart-range-btn         { background: rgba(255,255,255,.06); }
[data-bs-theme="dark"] .chart-range-btn:hover   { background: rgba(0,82,204,.22); color:#6fa8ff; border-color:rgba(111,168,255,.35); }
[data-bs-theme="dark"] .chart-range-btn.active  { background: var(--brand); color:#fff; }

/* Chart card hover lift */
#stock-chart-card {
  transition: box-shadow .22s;
}
#stock-chart-card:hover {
  box-shadow: 0 8px 32px rgba(0,82,204,.1) !important;
}
/* ── IPO Search Box ── */
.ipo-search-wrap { position: relative; }
#ipoSearch { transition: width .25s ease, box-shadow .2s; }
@media (max-width: 480px) {
  #ipoSearch { width: 160px !important; font-size: .8rem; }
  #ipoSearch:focus { width: 220px !important; }
}