/* ═══════════════════════════════════════════════════════════════
   HK IPO Allotment — Index Page Styles
   Shared styles are in base.css (loaded first).
   ═══════════════════════════════════════════════════════════════ */

/* ── Header ────────────────────────────────────────────────── */
.hdr{
box-shadow:0 1px 20px rgba(148,137,202,0.08);
padding:0 0 10px;transition:background .3s}
.hdr h1{font-size:28px;font-weight:700;color:#9489ca;letter-spacing:1px;padding:0}
body.light .hdr h1{color:#111110}
.hdr h1 span{color:#9489ca;font-weight:700}
body.light .hdr h1 span{color:#37a0ff}
.hdr .sub{font-size:11px;color:#9489ca;letter-spacing:1px;line-height:1.5;margin-top:3px}
body.light .hdr .sub{color:rgba(17,17,16,0.55)}
.hdr .sub b{color:#9489ca;font-weight:600}
body.light .hdr .sub b{color:rgba(17,17,16,0.75)}

/* ── Stats ─────────────────────────────────────────────────── */
.stats{font-size:11px;color:#9489ca;padding:14px 40px 0;
max-width:1400px;margin:0 auto;letter-spacing:1px;
font-family:var(--font-mono)}
.stats::before{content:'> ';color:rgba(148,137,202,0.5)}
body.light .stats{color:rgba(17,17,16,0.5)}
body.light .stats::before{color:rgba(55,160,255,0.5)}

/* ── Search ────────────────────────────────────────────────── */
.search-box{margin:10px 40px 0;max-width:1400px;
margin-left:auto;margin-right:auto;position:relative}
.search-box .s-icon{position:absolute;left:12px;top:50%;
transform:translateY(-50%);font-size:12px;
color:#9489ca;pointer-events:none;z-index:1}
body.light .search-box .s-icon{color:rgba(17,17,16,0.45)}
.search-box input{width:100%;padding:10px 14px 10px 30px;
background:rgba(148,137,202,0.3);color:#FFFFFF;font-size:14px;
font-family:inherit;outline:none;transition:all .25s;
border-top:1px solid transparent;border-bottom:1px solid transparent;
border-left:1px solid #9489ca;border-right:1px solid #9489ca;
caret-color:#9489ca;border-radius:0}
.search-box input:focus{background:rgba(148,137,202,0.45);border-left-color:rgba(148,137,202,0.6);border-right-color:rgba(148,137,202,0.6);
box-shadow:0 0 16px rgba(148,137,202,0.08)}
.search-box input::placeholder{color:rgba(148,137,202,0.5)}
body.light .search-box input{background:#FFFFFF;color:#111110;
border-left-color:rgba(148,137,202,0.3);border-right-color:rgba(148,137,202,0.3);caret-color:#9489ca}
body.light .search-box input:focus{background:#FFFFFF;border-left-color:rgba(83,74,128,0.5);border-right-color:rgba(83,74,128,0.5);
box-shadow:0 0 16px rgba(148,137,202,0.08)}
body.light .search-box input::placeholder{color:rgba(17,17,16,0.45)}

/* ── Filter Bar ───────────────────────────────────────────────── */
.filter-bar{display:flex;gap:8px;flex-wrap:wrap;padding:10px 40px 0;max-width:1400px;margin:0 auto}
.filter-select{background:rgba(148,137,202,0.08);border:1px solid rgba(148,137,202,0.25);
  color:rgba(148,137,202,0.7);padding:6px 10px;font-size:11px;font-family:inherit;
  border-radius:3px;cursor:pointer;transition:all .25s;min-width:100px}
.filter-select:hover{border-color:#9489ca;background:rgba(148,137,202,0.12)}
.filter-select:focus{outline:none;border-color:#9489ca;box-shadow:0 0 8px rgba(148,137,202,0.1)}
body.light .filter-select{background:rgba(242,244,248,0.8);border-color:rgba(17,17,16,0.2);color:rgba(17,17,16,0.55)}
body.light .filter-select:hover{background:rgba(242,244,248,0.95);border-color:rgba(17,17,16,0.35);color:rgba(17,17,16,0.8)}
body.light .filter-select:focus{border-color:rgba(83,74,128,0.5);box-shadow:0 0 8px rgba(83,74,128,0.1)}

/* ── Grid ──────────────────────────────────────────────────── */
.grid{display:grid;
grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
gap:8px;padding:18px 40px 20px;
max-width:1400px;margin:0 auto}

/* ── Pagination ──────────────────────────────────────────────── */
.pagination{display:flex;justify-content:center;align-items:center;gap:4px;padding:0 0 18px;flex-wrap:wrap}
.page-btn{display:inline-flex;align-items:center;justify-content:center;
  min-width:28px;height:26px;padding:0 6px;
  border:1px solid rgba(148,137,202,0.15);border-radius:3px;
  background:transparent;color:rgba(148,137,202,0.5);
  font-size:11px;font-family:var(--font-mono);cursor:pointer;
  transition:all .2s;user-select:none}
.page-btn:hover{border-color:rgba(148,137,202,0.4);color:#9489ca;background:rgba(148,137,202,0.06)}
.page-btn.active{border-color:#9489ca;color:#9489ca;background:rgba(148,137,202,0.1)}
.page-btn.disabled{opacity:0.25;cursor:default;pointer-events:none}
.page-ellipsis{color:rgba(148,137,202,0.3);font-size:11px;padding:0 2px}
body.light .page-btn{border-color:rgba(83,74,128,0.15);color:rgba(83,74,128,0.5)}
body.light .page-btn:hover{border-color:rgba(83,74,128,0.35);color:#534A80;background:rgba(83,74,128,0.05)}
body.light .page-btn.active{border-color:#534A80;color:#534A80;background:rgba(83,74,128,0.08)}
body.light .page-btn.disabled{opacity:0.2}
body.light .page-ellipsis{color:rgba(83,74,128,0.25)}

/* ── Cards ─────────────────────────────────────────────────── */
.card{background:rgba(15,15,14,0.6);border:1px solid rgba(148,137,202,0.12);
padding:16px 18px;position:relative;
transition:all .3s ease;border-radius:3px}
.card:hover{border-color:rgba(148,137,202,0.55);
background:rgba(15,15,14,0.65);
box-shadow:0 0 18px rgba(148,137,202,0.08)}
.card:active{transform:scale(0.99)}
body.light .card{background:rgba(245,247,250,0.6);border:1px solid rgba(83,74,128,0.12)}
body.light .card:hover{background:rgba(245,247,250,0.7);
border-color:rgba(83,74,128,0.25);
box-shadow:0 0 18px rgba(83,74,128,0.08)}
/* left accent strip */
.card::before{content:'';position:absolute;left:-1px;top:10%;height:80%;width:2px;
background:linear-gradient(to bottom,transparent,rgba(148,137,202,0.25),transparent);
transition:all .3s}
.card:hover::before{top:5%;height:90%;
background:linear-gradient(to bottom,transparent,#9489ca,transparent)}
body.light .card::before{background:linear-gradient(to bottom,transparent,rgba(83,74,128,0.15),transparent)}
body.light .card:hover::before{background:linear-gradient(to bottom,transparent,#534A80,transparent)}
.mech-badge{font-size:10px;font-weight:500;color:rgba(148,137,202,0.8);background:rgba(148,137,202,0.08);padding:1px 6px;border-radius:3px;border:1px solid rgba(148,137,202,0.2);white-space:nowrap}
body.light .mech-badge{color:rgba(83,74,128,0.8);background:rgba(83,74,128,0.08);border-color:rgba(83,74,128,0.2)}
.dual-badge{font-size:10px;font-weight:600;color:#ccb400;background:rgba(204,180,0,0.08);padding:1px 6px;border-radius:3px;border:1px solid rgba(204,180,0,0.25);white-space:nowrap}
body.light .dual-badge{color:#8a7a00;background:rgba(138,122,0,0.06);border-color:rgba(138,122,0,0.2)}

/* ── Full-width panel (index page) ─────────────────────── */
.full-panel{width:100%;max-width:1400px;margin:0 auto;padding:0 40px 20px}
.full-panel .stats{padding:14px 0 0}
.full-panel .search-box{margin:10px 0 0}
.full-panel .grid{padding:18px 0 20px;max-width:none;gap:12px}

/* ── Market overview charts ─────────────────────────────── */
.market-overview-charts{max-width:1200px;margin:0 auto;padding:12px 40px 20px}
.market-overview-charts h2{font-size:14px;margin-bottom:10px;padding-bottom:6px}
.market-overview-charts .chart-box{padding:8px 10px;margin-bottom:6px}
.market-overview-charts .chart-box h3{font-size:11px;margin-bottom:4px}
.market-overview-charts .chart-box .cb{height:380px}
.market-overview-charts #cx4.cb{height:360px}
.market-overview-charts .cbf.cb{height:520px}

/* ── Split Layout (legacy, used by analysis pages) ──────── */
.layout-wrapper{display:flex;max-width:1400px;margin:0 auto;align-items:flex-start}
.left-panel{width:75%;min-width:480px;padding:0 14px 20px 40px;flex-shrink:0}
.right-panel{width:25%;padding:0 40px 20px 14px;min-width:0}
.right-panel .stats{padding:14px 0 0}
.right-panel .search-box{margin:10px 0 0}
.right-panel{overflow-x:hidden}.right-panel .grid{padding:18px 0 20px;max-width:none;gap:0}
.right-panel .card{border-bottom:1px solid #9489ca}
body.light .right-panel .card{border-bottom-color:#534A80}
.left-panel .chart-section{margin:12px 0 0}
.left-panel .chart-section h2{font-size:14px;margin-bottom:10px;padding-bottom:6px}
.left-panel .chart-box{padding:8px 10px;margin-bottom:6px}
.left-panel .chart-box h3{font-size:11px;margin-bottom:4px}
.left-panel .chart-box .cb{height:380px}
.left-panel #cx4.cb{height:360px}
.left-panel .cbf.cb{height:520px}
.chart-note summary{font-size:9px;color:#9489ca;cursor:pointer;opacity:0.5;user-select:none;margin-top:2px;transition:opacity .2s;font-family:var(--font-mono);letter-spacing:.5px}
.chart-note summary:hover{opacity:1}
.chart-note .note{font-size:10px;line-height:1.5;margin-top:4px;padding:2px 0}
body.light .chart-note summary{color:rgba(17,17,16,0.45)}
.left-panel .chart-note .note{font-size:8px;line-height:1.4}
.footer-inner{max-width:1400px;margin:0 auto;padding:0 40px}

/* ── Recent Stocks ────────────────────────────────────────── */
.recent-section{max-width:1400px;margin:0 auto;padding:18px 40px 8px}
.recent-header{font-size:15px;color:#9489ca;font-weight:600;letter-spacing:1px;margin-bottom:10px}
.recent-header .recent-sub{font-size:10px;color:#9489ca;font-weight:400;letter-spacing:.5px}
body.light .recent-header{color:#111110}
body.light .recent-header .recent-sub{color:rgba(17,17,16,0.45)}
.recent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.recent-card{background:rgba(15,15,14,0.6);border:1px solid #9489ca;padding:12px 14px;position:relative;transition:all .3s;border-radius:3px}
.recent-card:hover{border-color:#9489ca;background:rgba(15,15,14,0.65);box-shadow:0 0 18px rgba(148,137,202,0.08)}
body.light .recent-card{background:rgba(245,247,250,0.6);border:1px solid #534A80}
body.light .recent-card:hover{background:rgba(245,247,250,0.7);border-color:#534A80}
.recent-card::before{content:'';position:absolute;left:-1px;top:10%;height:80%;width:2px;background:linear-gradient(to bottom,transparent,rgba(55,160,255,0.35),transparent);transition:all .3s}
.recent-card:hover::before{top:5%;height:90%;background:linear-gradient(to bottom,transparent,#37a0ff,transparent)}
body.light .recent-card::before{background:linear-gradient(to bottom,transparent,rgba(55,160,255,0.15),transparent)}
body.light .recent-card:hover::before{background:linear-gradient(to bottom,transparent,#37a0ff,transparent)}
.rc-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.rc-header .card-logo{width:32px;height:32px;border-radius:4px;object-fit:contain}
.rc-code{font-size:10px;color:#7a71a5;letter-spacing:1px}
body.light .rc-code{color:rgba(17,17,16,0.45)}
.rc-badge{font-size:9px;background:rgba(148,137,202,0.1);color:#9489ca;padding:1px 6px;border-radius:2px;font-weight:600;letter-spacing:.5px;line-height:1.4}
body.light .rc-badge{background:rgba(83,74,128,0.08);color:#534A80}
.rc-badge.status-subscribing{background:rgba(51,177,255,0.12);color:#33B1FF}
.rc-badge.status-pending{background:rgba(204,180,0,0.12);color:#ccb400}
.rc-badge.status-upcoming{background:rgba(255,153,0,0.12);color:#ff9900}
.rc-badge.status-realloc{background:rgba(220,65,114,0.12);color:#dc4172}
.rc-badge.status-cancelled{background:rgba(224,82,82,0.16);color:#e05252}
.board-badge{font-size:10px;font-weight:500;color:rgba(0,180,160,0.8);background:rgba(0,180,160,0.08);padding:1px 6px;border-radius:3px;border:1px solid rgba(0,180,160,0.2);white-space:nowrap}
body.light .board-badge{color:rgba(0,150,130,0.8);background:rgba(0,150,130,0.06);border-color:rgba(0,150,130,0.18)}
.ai-badge{font-size:10px;font-weight:600;color:#dc4172;background:rgba(220,65,114,0.08);padding:1px 6px;border-radius:3px;border:1px solid rgba(220,65,114,0.2);text-decoration:none;white-space:nowrap;transition:all .2s}
.ai-badge:hover{background:rgba(220,65,114,0.15);color:#dc4172}
body.light .ai-badge{background:rgba(200,50,90,0.05);border-color:rgba(200,50,90,0.12);color:rgba(200,50,90,0.8)}
body.light .ai-badge:hover{background:rgba(200,50,90,0.1)}
.rc-name-row{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}
.rc-name{font-size:14px;font-weight:600;color:#9489ca}
body.light .rc-name{color:#111110}
.rc-meta{font-size:10px;color:#9489ca;margin-bottom:8px;letter-spacing:.3px}
body.light .rc-meta{color:rgba(17,17,16,0.45)}
.stock-link{text-decoration:none;color:inherit}
.fd-badge{font-size:10px}
.countdown{display:block;font-size:10px;color:#33B1FF;margin-bottom:6px;letter-spacing:.3px}
.recent-card .btn{font-size:10px;padding:3px 10px}

/* ── Cross-stock charts ────────────────────────────────────── */
.chart-section{margin:24px 40px 0;max-width:1400px;margin-left:auto;margin-right:auto}
.chart-section h2{font-size:18px;color:#9489ca;margin-bottom:16px;padding:0 0 8px;border-bottom:1px solid #9489ca;font-weight:600;letter-spacing:1px}
body.light .chart-section h2{color:#111110;border-bottom-color:#534A80}
.chart-box{background:transparent;border-left:1px solid rgba(148,137,202,0.14);
    border-right:1px solid rgba(148,137,202,0.14);border-bottom:1px solid #9489ca;
    border-top:1px solid rgba(148,137,202,0.14);padding:16px;margin-bottom:12px;border-radius:3px}
body.light .chart-box{background:transparent;border-left:1px solid rgba(83,74,128,0.12);
    border-right:1px solid rgba(83,74,128,0.12);border-bottom:1px solid #534A80;
    border-top:1px solid rgba(83,74,128,0.12)}
.chart-box h3{font-size:13px;color:#9489ca;margin-bottom:8px;font-weight:500}
.chart-legend-inline{font-size:11px;margin-left:6px;vertical-align:middle}
body.light .chart-box h3{color:#111110}
.chart-box .cb{width:100%;height:720px}
@media(max-width:768px){.chart-box .cb{height:560px}}
.chart-box .note{font-size:10px;color:#9489ca;margin-top:8px;line-height:1.5}
body.light .chart-box .note{color:rgba(17,17,16,0.45)}

/* ── Tablet Responsive ──────────────────────────────────────── */
@media(max-width:1024px){
.recent-section{padding:14px 20px 6px}
.recent-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.layout-wrapper{flex-direction:column}
.left-panel{width:100%;min-width:0;padding:0 20px 0;height:auto;overflow:visible}
.right-panel{width:100%;padding:0 20px 16px}
.full-panel{padding:0 20px 16px}
.market-overview-charts{padding:12px 20px 16px}
.market-overview-charts .chart-box .cb{height:560px}
.market-overview-charts #cx4.cb{height:800px}
.market-overview-charts .cbf.cb{height:680px}
.right-panel .stats{padding:10px 0 0}
.left-panel .chart-section{margin:16px 0 0}
.left-panel .chart-section h2{font-size:16px}
.left-panel .chart-box .cb{height:560px}
.left-panel #cx4.cb{height:800px}
.left-panel .cbf.cb{height:680px}
.left-panel .chart-note .note{font-size:10px;line-height:1.5}
.left-panel .chart-note summary{font-size:10px}
.right-panel .search-box{margin:6px 0 0}
.right-panel .grid{padding:14px 0 16px}
.footer-inner{padding:0 20px}
.freeze-timeline-section{padding:14px 20px 6px}
.freeze-module-toggle{font-size:14px}
}

/* ── Mobile Responsive ─────────────────────────────────────── */
@media(max-width:768px){
.hdr h1{font-size:22px}
.filter-bar{padding:8px 16px 0;gap:6px}
.filter-select{font-size:10px;padding:5px 8px;min-width:0;flex:1}
.recent-section{padding:12px 16px 4px}
.recent-grid{grid-template-columns:1fr;gap:6px}
.recent-card{padding:10px 12px}
.left-panel{padding:0 16px 0}
.right-panel{padding:0 16px 12px}
.full-panel{padding:0 16px 12px}
.market-overview-charts{padding:8px 16px 12px}
.market-overview-charts .chart-box .cb{height:320px}
.market-overview-charts .cbf.cb{height:400px}
.left-panel .stats{padding:10px 0 0}
.left-panel .chart-box .cb{height:320px}
.left-panel #cx4.cb{height:360px}
.left-panel .cbf.cb{height:400px}
.right-panel .grid{grid-template-columns:1fr;padding:12px 0 14px;gap:0}.card{padding:12px;gap:12px}
.full-panel .grid{grid-template-columns:1fr;gap:6px;padding:12px 0 14px}
.right-panel .search-box{margin:4px 0 0}
.footer-inner{padding:0 16px}
.freeze-timeline-section{padding:12px 16px 6px}
.freeze-module-toggle{font-size:14px}
}

.load-error{color:#dc4172;padding:2rem}
body.light .load-error{color:#c0392b}

/* ── Watchlist Toggle ──────────────────────────────────────── */
.watchlist-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);
  z-index:2;background:none;border:none;font-size:18px;cursor:pointer;
  color:rgba(148,137,202,0.25);padding:2px 6px;line-height:1;transition:color .2s}
.watchlist-toggle:hover{color:rgba(148,137,202,0.6)}
.watchlist-toggle.active{color:#ffaf25;text-shadow:0 0 6px rgba(255,175,37,0.3)}
body.light .watchlist-toggle{color:rgba(83,74,128,0.2)}
body.light .watchlist-toggle:hover{color:rgba(83,74,128,0.5)}
body.light .watchlist-toggle.active{color:#ff9500;text-shadow:0 0 6px rgba(255,149,0,0.2)}

/* ── Recently Viewed Bar ────────────────────────────────────── */
.recently-viewed-bar{max-width:1400px;margin:4px 0 0;display:flex;align-items:center;gap:8px;
  padding:6px 0;overflow:hidden}
.rv-label{font-size:10px;color:rgba(148,137,202,0.35);font-weight:600;letter-spacing:1px;
  flex-shrink:0;text-transform:uppercase}
body.light .rv-label{color:rgba(17,17,16,0.3)}
.rv-scroll{display:flex;gap:6px;overflow-x:auto;flex:1;padding-bottom:4px;
  -ms-overflow-style:none;scrollbar-width:none}
.rv-scroll::-webkit-scrollbar{display:none}
.rv-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;
  background:rgba(148,137,202,0.06);border:1px solid rgba(148,137,202,0.12);
  border-radius:12px;font-size:11px;color:rgba(148,137,202,0.6);cursor:pointer;
  white-space:nowrap;flex-shrink:0;transition:all .2s;text-decoration:none}
.rv-chip:hover{background:rgba(148,137,202,0.12);border-color:rgba(148,137,202,0.3);color:#9489ca}
.rv-chip .rv-star{font-size:10px;color:#ffaf25}
body.light .rv-chip{background:rgba(83,74,128,0.04);border-color:rgba(83,74,128,0.1);color:rgba(17,17,16,0.45)}
body.light .rv-chip:hover{background:rgba(83,74,128,0.1);border-color:rgba(83,74,128,0.22);color:#534A80}


/* ── Auth Modal ──────────────────────────────────────────────── */
.auth-modal-overlay{display:none;position:fixed;inset:0;z-index:99999;
  background:rgba(0,0,0,0.7);align-items:center;justify-content:center;
  backdrop-filter:blur(4px)}
.auth-modal-box{background:#141413;border:1px solid rgba(148,137,202,0.25);
  border-radius:6px;padding:28px 24px 20px;width:100%;max-width:380px;
  position:relative;box-shadow:0 8px 40px rgba(0,0,0,0.5)}
body.light .auth-modal-box{background:#fff;border-color:rgba(83,74,128,0.2);
  box-shadow:0 8px 40px rgba(0,0,0,0.12)}
.auth-modal-close{position:absolute;top:8px;right:12px;
  background:none;border:none;font-size:22px;color:rgba(148,137,202,0.4);
  cursor:pointer;line-height:1;padding:0}
.auth-modal-close:hover{color:#9489ca}
body.light .auth-modal-close{color:rgba(83,74,128,0.3)}
body.light .auth-modal-close:hover{color:#534A80}
.auth-tabs{display:flex;gap:0;margin-bottom:18px;
  border-bottom:1px solid rgba(148,137,202,0.15)}
.auth-tab{flex:1;padding:8px 0;background:none;border:none;
  color:rgba(148,137,202,0.4);font-size:14px;cursor:pointer;
  font-family:inherit;transition:all .2s;border-bottom:2px solid transparent}
.auth-tab:hover{color:rgba(148,137,202,0.7)}
.auth-tab.active{color:#9489ca;border-bottom-color:#9489ca}
body.light .auth-tab{color:rgba(83,74,128,0.35)}
body.light .auth-tab:hover{color:rgba(83,74,128,0.6)}
body.light .auth-tab.active{color:#534A80;border-bottom-color:#534A80}
.auth-form input{width:100%;padding:10px 12px;margin-bottom:10px;
  background:rgba(148,137,202,0.06);border:1px solid rgba(148,137,202,0.15);
  color:#9489ca;font-size:13px;font-family:inherit;outline:none;
  border-radius:3px;transition:border-color .25s}
.auth-form input:focus{border-color:rgba(148,137,202,0.4)}
.auth-form input::placeholder{color:rgba(148,137,202,0.3)}
body.light .auth-form input{background:rgba(242,244,248,0.6);
  border-color:rgba(83,74,128,0.15);color:#111110}
body.light .auth-form input:focus{border-color:rgba(83,74,128,0.4)}
body.light .auth-form input::placeholder{color:rgba(83,74,128,0.25)}
.auth-submit-btn{width:100%;padding:10px 0;margin-top:4px;
  background:rgba(148,137,202,0.12);border:1px solid rgba(148,137,202,0.3);
  color:#9489ca;font-size:13px;font-family:inherit;cursor:pointer;
  border-radius:3px;transition:all .25s;font-weight:500;letter-spacing:.5px}
.auth-submit-btn:hover{background:rgba(148,137,202,0.2);border-color:#9489ca;
  box-shadow:0 0 12px rgba(148,137,202,0.1)}
.auth-submit-btn:disabled{opacity:0.4;cursor:default}
body.light .auth-submit-btn{background:rgba(83,74,128,0.08);
  border-color:rgba(83,74,128,0.25);color:#534A80}
body.light .auth-submit-btn:hover{background:rgba(83,74,128,0.15);border-color:#534A80}
.auth-error{color:#f07070;font-size:11px;margin-bottom:10px;text-align:center}
body.light .auth-error{color:#e85959}
.auth-verify-msg{font-size:12px;color:rgba(148,137,202,0.6);
  margin-bottom:12px;text-align:center;line-height:1.5}
body.light .auth-verify-msg{color:rgba(83,74,128,0.55)}

/* ── Freeze Timeline Module ── */
.freeze-timeline-section{margin:0 auto;max-width:1400px;padding:18px 40px 8px}

/* Module toggle — styled as section header */
.freeze-module-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:0;margin-bottom:12px;border:none;background:transparent;font-size:15px;font-weight:600;color:#9489ca;letter-spacing:1px;font-family:inherit;cursor:pointer;transition:color .25s}
.freeze-module-toggle:hover{color:rgba(148,137,202,0.7)}
body.light .freeze-module-toggle{color:#111110;border-bottom-color:#534A80}
body.light .freeze-module-toggle:hover{color:rgba(17,17,16,0.7)}
.freeze-module-arrow{display:inline-block;transition:transform .25s;font-size:12px;line-height:1}
.freeze-module-toggle.collapsed .freeze-module-arrow{transform:rotate(-90deg)}

/* Chart wrapper — brand purple solid border */
.freeze-chart-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #9489ca;border-radius:3px;background:rgba(148,137,202,0.04)}
body.light .freeze-chart-wrapper{background:rgba(83,74,128,0.02);border-color:#534A80}
.freeze-chart{min-width:100%}
.freeze-chart-header{display:flex;border-bottom:1px solid rgba(148,137,202,0.15);position:sticky;top:0;background:rgba(15,15,14,0.97)}
body.light .freeze-chart-header{background:rgba(255,255,255,0.97);border-color:rgba(83,74,128,0.1)}
.freeze-chart-label-col{min-width:130px;max-width:130px;flex-shrink:0}
@media(min-width:480px){.freeze-chart-label-col{min-width:150px;max-width:150px}}
.freeze-chart-date{flex:1;min-width:26px;text-align:center;font-size:10px;padding:6px 0;color:rgba(148,137,202,0.75);border-left:1px solid rgba(148,137,202,0.08)}
body.light .freeze-chart-date{color:rgba(17,17,16,0.6);border-color:rgba(83,74,128,0.06)}
.freeze-chart-date.holiday{background:rgba(148,137,202,0.04);color:rgba(148,137,202,0.45)}
body.light .freeze-chart-date.holiday{background:rgba(83,74,128,0.03);color:rgba(17,17,16,0.4)}
.freeze-chart-date.today{background:rgba(55,200,130,0.12);color:#37c882;font-weight:700}
body.light .freeze-chart-date.today{background:rgba(55,200,130,0.08)}
.freeze-chart-row{display:flex;border-bottom:1px solid rgba(148,137,202,0.06)}
body.light .freeze-chart-row{border-color:rgba(83,74,128,0.04)}
.freeze-chart-label{min-width:130px;max-width:130px;flex-shrink:0;display:flex;align-items:center;padding:8px 8px;font-size:12px;line-height:1.3;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.freeze-chart-label a{color:rgba(255,255,255,0.85);text-decoration:none;overflow:hidden;text-overflow:ellipsis}
.freeze-chart-label a:hover{color:#9489ca}
body.light .freeze-chart-label a{color:rgba(0,0,0,0.75)}
body.light .freeze-chart-label a:hover{color:#534A80}
@media(min-width:480px){.freeze-chart-label{min-width:150px;max-width:150px}}
.freeze-chart-bars{display:flex;flex:1}
.freeze-chart-cell{flex:1;min-width:26px;height:36px;border-left:1px solid rgba(148,137,202,0.06)}
body.light .freeze-chart-cell{border-color:rgba(83,74,128,0.04)}
.freeze-chart-cell.holiday{background:rgba(148,137,202,0.04)}
body.light .freeze-chart-cell.holiday{background:rgba(83,74,128,0.03)}
.freeze-chart-cell.today{background:rgba(55,200,130,0.05)}
body.light .freeze-chart-cell.today{background:rgba(55,200,130,0.04)}
/* Bar — brand purple only */
.freeze-chart-cell.bar{position:relative}
.freeze-chart-cell.bar::after{content:'';position:absolute;top:6px;left:3px;right:3px;bottom:6px;border-radius:3px;background:#9489ca;opacity:0.85}
body.light .freeze-chart-cell.bar::after{background:#534A80;opacity:0.75}

/* ── Freeze Notes ─────────────────────────────────────────── */
.freeze-notes{margin-top:14px}
.freeze-notes-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:7px 10px;border:1px solid rgba(148,137,202,0.18);border-left:2px solid #9489ca;border-radius:3px;background:rgba(148,137,202,0.03);font-size:12px;font-weight:600;font-family:inherit;color:rgba(148,137,202,0.65);cursor:pointer;transition:all .25s}
.freeze-notes-toggle:hover{background:rgba(148,137,202,0.08);color:#9489ca;border-color:rgba(148,137,202,0.3)}
body.light .freeze-notes-toggle{background:rgba(83,74,128,0.02);border-color:rgba(83,74,128,0.1);color:#534A80}
body.light .freeze-notes-toggle:hover{background:rgba(83,74,128,0.06);color:#534A80;border-color:rgba(83,74,128,0.22)}
.freeze-notes-arrow{display:inline-block;transition:transform .25s;font-size:9px;line-height:1}
.freeze-notes-toggle.collapsed .freeze-notes-arrow{transform:rotate(-90deg)}

.freeze-notes-body{margin-top:12px;font-size:12px;line-height:1.75;color:rgba(148,137,202,0.55)}
body.light .freeze-notes-body{color:rgba(17,17,16,0.55)}
.freeze-notes-body p,
.freeze-notes-body li{margin-bottom:6px}
.freeze-notes-formula{padding:7px 10px;background:rgba(148,137,202,0.06);border-radius:3px}
body.light .freeze-notes-formula{background:rgba(83,74,128,0.04)}
.freeze-notes-list{margin:0;padding-left:16px;list-style:disc}
.freeze-notes-disclaimer{padding-top:10px;margin-top:10px;border-top:1px solid rgba(148,137,202,0.1);font-size:11px}
body.light .freeze-notes-disclaimer{border-color:rgba(83,74,128,0.08)}
