.ipofy-ipo-app{--bg:#f6f8fc;--card:#fff;--ink:#12233f;--muted:#6e7b90;--muted2:#8794a7;--line:#e6ebf3;--blue:#1769ff;--blue2:#2f7cf8;--blue-soft:#eaf2ff;--blue-soft-2:#f4f8ff;--green:#159b67;--green-soft:#eaf8f1;--shadow:0 14px 35px rgba(21,49,83,.08);display:block;width:100%;clear:both;color:var(--ink);font:15px Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}
.ipofy-ipo-app,.ipofy-ipo-app *{box-sizing:border-box}.ipofy-ipo-app button,.ipofy-ipo-app input,.ipofy-ipo-app select{font:inherit}.ipofy-ipo-app button{cursor:pointer}
.ipofy-ipo-app .ipofy-ipo-wrap{max-width:1240px;margin:0 auto;padding:18px 22px 118px}
.ipofy-ipo-app .ipofy-ipo-hero{padding:26px 4px 20px}.ipofy-ipo-app .ipofy-ipo-hero h1{margin:0;font-size:34px;line-height:1.1;letter-spacing:-1px;font-weight:500}.ipofy-ipo-app .ipofy-ipo-hero p{margin:7px 0 0;color:#56657a;font-size:15px;line-height:1.45;max-width:760px}
.ipofy-ipo-app .ipofy-ipo-tools{display:flex;align-items:center;gap:10px;margin:0 0 16px}.ipofy-ipo-app .ipofy-ipo-search{height:50px;flex:1;max-width:720px;border:1px solid #e2e8f2;background:#fff;border-radius:16px;display:flex;align-items:center;gap:11px;padding:0 15px;box-shadow:0 6px 18px rgba(24,50,84,.04)}.ipofy-ipo-app .ipofy-ipo-search svg{width:19px;height:19px;stroke:#6f7d90;fill:none;stroke-width:2;flex:none}.ipofy-ipo-app .ipofy-ipo-search input{border:0;outline:0;width:100%;background:transparent;color:var(--ink);font-size:15px;min-width:0}.ipofy-ipo-app .ipofy-ipo-search input::placeholder{color:#8792a3}
.ipofy-ipo-app .ipofy-ipo-tool-btn{height:50px;border:1px solid #dfe6f1;background:#fff;border-radius:15px;padding:0 15px;display:flex;align-items:center;gap:8px;color:#41536d;font-weight:800;box-shadow:0 6px 18px rgba(24,50,84,.04);position:relative}.ipofy-ipo-app .ipofy-ipo-tool-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}.ipofy-ipo-app .ipofy-ipo-tool-zone{position:relative}.ipofy-ipo-app .ipofy-ipo-filter-dot{display:none;position:absolute;right:7px;top:6px;width:17px;height:17px;border-radius:50%;background:var(--blue);color:#fff;font-size:10px;font-style:normal;line-height:17px;text-align:center;box-shadow:0 0 0 2px #fff}.ipofy-ipo-app .ipofy-ipo-tool-btn.has-filter .ipofy-ipo-filter-dot{display:block}
.ipofy-ipo-app .ipofy-ipo-view-toggle{display:flex;height:50px;background:#edf2f8;border-radius:15px;padding:4px;border:1px solid #e3e9f2}.ipofy-ipo-app .ipofy-ipo-view-toggle button{width:46px;height:40px;border:0;background:transparent;border-radius:11px;color:#7b8798;display:grid;place-items:center}.ipofy-ipo-app .ipofy-ipo-view-toggle button.active{background:#fff;color:var(--blue);box-shadow:0 5px 13px rgba(35,71,117,.08)}.ipofy-ipo-app .ipofy-ipo-view-toggle svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}
.ipofy-ipo-app .ipofy-ipo-tabs{display:flex;gap:7px;background:#edf2f8;padding:5px;border-radius:15px;margin:0 0 16px}.ipofy-ipo-app .ipofy-ipo-tab{flex:1;height:42px;border:0;border-radius:11px;background:transparent;color:#68788f;font-weight:850;cursor:pointer}.ipofy-ipo-app .ipofy-ipo-tab.active{background:#fff;color:var(--blue);box-shadow:0 5px 13px rgba(35,71,117,.08)}
.ipofy-ipo-app .ipofy-ipo-meta{display:flex;justify-content:space-between;align-items:center;margin:0 3px 13px;color:#718096;font-size:13px}.ipofy-ipo-app .ipofy-ipo-meta b{color:#33465f}
.ipofy-ipo-app .ipofy-ipo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.ipofy-ipo-app .ipofy-ipo-card{background:var(--card);border:1px solid #e4eaf2;border-radius:22px;padding:14px;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease;min-width:0}.ipofy-ipo-app .ipofy-ipo-card:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(21,49,83,.11)}
.ipofy-ipo-app .ipofy-ipo-cardtop{display:flex;gap:11px;align-items:center;min-width:0}.ipofy-ipo-app .ipofy-ipo-co{width:50px;height:50px;border-radius:16px;background:#eaf2ff;color:#205dc4;display:grid;place-items:center;font-weight:900;font-size:15px;flex:none;object-fit:cover}.ipofy-ipo-app .ipofy-ipo-co-img{display:block}.ipofy-ipo-app .ipofy-ipo-main{min-width:0}.ipofy-ipo-app .ipofy-ipo-name{font-weight:900;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.15px}.ipofy-ipo-app .ipofy-ipo-type{font-size:12px;color:#76849a;margin-top:4px}.ipofy-ipo-app .ipofy-ipo-status{margin-left:auto;white-space:nowrap;font-size:10px;font-weight:900;padding:7px 10px;border-radius:999px;letter-spacing:.2px}.ipofy-ipo-app .ipofy-ipo-status.upcoming{background:#eef4ff;color:#3565c0}.ipofy-ipo-app .ipofy-ipo-status.open{background:#e8f8f2;color:#087f59}.ipofy-ipo-app .ipofy-ipo-status.closed{background:#f1f1f2;color:#7a7474}
.ipofy-ipo-app .ipofy-ipo-score-row{display:flex;justify-content:flex-end;align-items:center;margin:8px 0 10px;width:100%}.ipofy-ipo-app .ipofy-ipo-score{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:29px;padding:5px 9px;border-radius:10px;background:var(--green-soft);color:#176e52;font-weight:800;font-size:10px;line-height:1;white-space:nowrap;margin-left:auto}.ipofy-ipo-app .ipofy-ipo-score strong{font-size:14px;color:#178453;letter-spacing:-.2px}
.ipofy-ipo-app .ipofy-ipo-info-table{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,72px);border:1px solid #e5edf7;border-radius:16px;overflow:hidden;background:#f7faff}.ipofy-ipo-app .ipofy-ipo-info-cell{min-width:0;height:72px;padding:8px 10px;display:flex;justify-content:center;align-items:center;text-align:center;gap:10px;flex-direction:row}.ipofy-ipo-app .ipofy-ipo-info-cell:nth-child(odd){border-right:1px solid #dce8f8}.ipofy-ipo-app .ipofy-ipo-info-cell:nth-child(-n+2){border-bottom:1px solid #dce8f8}.ipofy-ipo-app .ipofy-ipo-info-icon{width:30px;height:30px;border-radius:50%;background:#eaf2ff;color:#1769ff;display:grid;place-items:center;flex:none}.ipofy-ipo-app .ipofy-ipo-info-icon svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8}.ipofy-ipo-app .ipofy-ipo-info-content{min-width:0;display:flex;flex-direction:column;align-items:flex-start;text-align:left}.ipofy-ipo-app .ipofy-ipo-info-cell small{display:block;width:auto;color:#73829a;font-size:11px;line-height:1.15;text-align:center}.ipofy-ipo-app .ipofy-ipo-info-cell strong{display:block;width:auto;margin-top:4px;font-size:14px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.1px;text-align:center}.ipofy-ipo-app .ipofy-ipo-info-cell strong.blue{color:#195cce}
.ipofy-ipo-app .ipofy-ipo-card-actions{display:flex;align-items:center;gap:9px;margin-top:10px}.ipofy-ipo-app .ipofy-ipo-view{height:37px;flex:1;border:1px solid #cfe0fb;background:linear-gradient(180deg,#f7fbff 0%,#f1f6ff 100%);color:#2165d0;border-radius:12px;font-weight:850}.ipofy-ipo-app .ipofy-ipo-icon-actions{display:flex;gap:8px}.ipofy-ipo-app .ipofy-ipo-card-icon{width:38px;height:38px;border:1px solid #d9e5f5;background:#fff;border-radius:12px;color:#52647e;display:grid;place-items:center}.ipofy-ipo-app .ipofy-ipo-card-icon:hover{background:#f5f9ff;color:var(--blue)}.ipofy-ipo-app .ipofy-ipo-card-icon.saved{background:#fff0f3;color:#e84e6f;border-color:#f3c8d2}.ipofy-ipo-app .ipofy-ipo-card-icon.saved svg{fill:currentColor}.ipofy-ipo-app .ipofy-ipo-card-icon svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8}
.ipofy-ipo-app .ipofy-ipo-list-wrap{display:none;background:#fff;border:1px solid #e3e9f2;border-radius:20px;overflow:auto;box-shadow:var(--shadow)}.ipofy-ipo-app .ipofy-ipo-list-wrap.show{display:block}.ipofy-ipo-app .ipofy-ipo-list-wrap table{width:100%;border-collapse:collapse;min-width:930px}.ipofy-ipo-app .ipofy-ipo-list-wrap th{background:#f3f7fd;color:#718198;font-size:11px;text-transform:uppercase;letter-spacing:.55px;padding:14px 16px;text-align:left;white-space:nowrap}.ipofy-ipo-app .ipofy-ipo-list-wrap td{padding:15px 16px;border-top:1px solid #edf1f6;color:#33465f;vertical-align:middle;font-size:13px;white-space:nowrap}.ipofy-ipo-app .ipofy-ipo-table-name{font-weight:850;color:var(--ink)}.ipofy-ipo-app .ipofy-ipo-table-sub{font-size:11px;color:#8090a6;margin-top:3px}.ipofy-ipo-app .ipofy-ipo-score-mini{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border-radius:9px;background:var(--green-soft);color:#187651;font-weight:800}.ipofy-ipo-app .ipofy-ipo-table-status{display:inline-block;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:900}.ipofy-ipo-app .ipofy-ipo-table-status.upcoming{background:#eef4ff;color:#3565c0}.ipofy-ipo-app .ipofy-ipo-table-status.open{background:#e8f8f2;color:#087f59}.ipofy-ipo-app .ipofy-ipo-table-status.closed{background:#f1f1f2;color:#7a7474}
.ipofy-ipo-app .ipofy-ipo-filter-pop{position:absolute;right:0;top:58px;width:245px;background:#fff;border:1px solid #e0e7f0;border-radius:16px;padding:14px;box-shadow:0 18px 35px rgba(21,49,83,.16);display:block;z-index:50}.ipofy-ipo-app .ipofy-ipo-filter-pop[hidden]{display:none}.ipofy-ipo-app .ipofy-ipo-filter-head{display:flex;justify-content:space-between;align-items:center;font-weight:850;margin-bottom:10px}.ipofy-ipo-app .ipofy-ipo-filter-close{border:0;background:none;color:#8995a7;font-size:18px;line-height:1}.ipofy-ipo-app .ipofy-ipo-filter-group{margin-top:10px}.ipofy-ipo-app .ipofy-ipo-filter-group label{display:block;font-size:11px;color:#718198;margin-bottom:7px}.ipofy-ipo-app .ipofy-ipo-filter-group select{width:100%;height:38px;border:1px solid #dfe6f1;border-radius:10px;padding:0 10px;background:#fff;color:#33465f;outline:0}.ipofy-ipo-app .ipofy-ipo-filter-apply{width:100%;height:38px;margin-top:13px;border:0;border-radius:10px;background:var(--blue);color:#fff;font-weight:850}.ipofy-ipo-app .ipofy-ipo-filter-clear{width:100%;height:34px;margin-top:7px;border:0;background:transparent;color:#61728b;font-weight:750}
.ipofy-ipo-app .ipofy-ipo-empty{padding:30px 15px;text-align:center;color:#718198;border:1px dashed #d8e0ec;border-radius:18px;background:#fbfdff}.ipofy-ipo-app .ipofy-ipo-empty[hidden]{display:none}
.ipofy-ipo-app .ipofy-ipo-toast{position:fixed;left:50%;bottom:95px;transform:translateX(-50%) translateY(10px);opacity:0;pointer-events:none;background:#12233f;color:#fff;padding:10px 14px;border-radius:12px;font-size:13px;font-weight:750;z-index:2147483640;transition:opacity .2s,transform .2s}.ipofy-ipo-app .ipofy-ipo-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media(max-width:1080px){.ipofy-ipo-app .ipofy-ipo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .ipofy-ipo-app .ipofy-ipo-wrap{padding:11px 14px 118px}
  .ipofy-ipo-app .ipofy-ipo-hero{padding-top:24px;padding-bottom:17px}.ipofy-ipo-app .ipofy-ipo-hero h1{font-size:31px}.ipofy-ipo-app .ipofy-ipo-hero p{font-size:14px;color:#56657a}
  .ipofy-ipo-app .ipofy-ipo-tools{gap:8px}.ipofy-ipo-app .ipofy-ipo-search{height:48px;max-width:none;padding-left:13px}.ipofy-ipo-app .ipofy-ipo-search input{font-size:14px}.ipofy-ipo-app .ipofy-ipo-tool-btn{height:48px;width:48px;padding:0;justify-content:center}.ipofy-ipo-app .ipofy-ipo-tool-btn span{display:none}.ipofy-ipo-app .ipofy-ipo-view-toggle{height:48px}.ipofy-ipo-app .ipofy-ipo-view-toggle button{height:38px;width:43px}
  .ipofy-ipo-app .ipofy-ipo-tabs{margin-bottom:14px}.ipofy-ipo-app .ipofy-ipo-grid{grid-template-columns:1fr;gap:13px}.ipofy-ipo-app .ipofy-ipo-card{padding:14px;border-radius:21px}.ipofy-ipo-app .ipofy-ipo-name{font-size:17px}.ipofy-ipo-app .ipofy-ipo-cardtop{gap:9px}.ipofy-ipo-app .ipofy-ipo-status{font-size:9px;padding:7px 9px}.ipofy-ipo-app .ipofy-ipo-score-row{margin:4px 0 7px}.ipofy-ipo-app .ipofy-ipo-score{min-height:28px;padding:5px 9px;font-size:10px;border-radius:10px}.ipofy-ipo-app .ipofy-ipo-score strong{font-size:14px}.ipofy-ipo-app .ipofy-ipo-info-table{grid-template-rows:repeat(2,64px)}.ipofy-ipo-app .ipofy-ipo-info-cell{height:64px;padding:6px 8px;gap:7px}.ipofy-ipo-app .ipofy-ipo-info-icon{width:30px;height:30px}.ipofy-ipo-app .ipofy-ipo-info-icon svg{width:16px;height:16px}.ipofy-ipo-app .ipofy-ipo-info-content{align-items:flex-start}.ipofy-ipo-app .ipofy-ipo-info-cell small{font-size:10.5px}.ipofy-ipo-app .ipofy-ipo-info-cell strong{font-size:13.5px;margin-top:3px}.ipofy-ipo-app .ipofy-ipo-card-actions{gap:8px;margin-top:8px}.ipofy-ipo-app .ipofy-ipo-view{height:37px;border-radius:12px;font-size:15px}.ipofy-ipo-app .ipofy-ipo-icon-actions{gap:7px}.ipofy-ipo-app .ipofy-ipo-card-icon{width:37px;height:37px;border-radius:12px}.ipofy-ipo-app .ipofy-ipo-filter-pop{position:fixed;right:12px;top:74px;width:min(310px,calc(100vw - 24px))}
}
@media(max-width:430px){.ipofy-ipo-app .ipofy-ipo-wrap{padding-left:12px;padding-right:12px}.ipofy-ipo-app .ipofy-ipo-hero h1{font-size:29px}.ipofy-ipo-app .ipofy-ipo-info-table{grid-template-rows:repeat(2,68px)}.ipofy-ipo-app .ipofy-ipo-info-cell{height:68px;padding:7px 8px;gap:8px}.ipofy-ipo-app .ipofy-ipo-info-cell strong{font-size:13px}.ipofy-ipo-app .ipofy-ipo-view{height:38px}.ipofy-ipo-app .ipofy-ipo-card-icon{width:38px;height:38px}}

/* IPOfy App Shell dark-mode compatibility: total-black IPO UI */
.ipofy-app-shell.dark .ipofy-ipo-app,
.ipofy-ipo-app.ipofy-dark,
body.ipofy-dark .ipofy-ipo-app{
  --bg:#050607;
  --card:#080a0d;
  --ink:#f4f7fb;
  --muted:#a6afbb;
  --muted2:#8994a3;
  --line:#22272e;
  --blue:#4b96ff;
  --blue2:#2f7ff7;
  --blue-soft:#0f1c2e;
  --blue-soft-2:#0a1018;
  --green:#49c68e;
  --green-soft:#0d231b;
  --shadow:0 16px 36px rgba(0,0,0,.33);
  color:var(--ink);
  color-scheme:dark;
}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-meta b,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-meta b,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-meta b{color:#dfe5ec}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-filter-dot,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-filter-dot,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-filter-dot{box-shadow:0 0 0 2px #080a0d}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-hero p,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-type,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-meta,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-hero p,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-type,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-meta,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-hero p,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-type,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-meta{color:#a6afbb}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-hero h1,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-name,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-card,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-hero h1,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-name,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-card,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-hero h1,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-name,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-card{color:#f4f7fb}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-search,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-tool-btn,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-view-toggle,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-tabs,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-card,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-list-wrap,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-filter-pop,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-empty,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-search,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-tool-btn,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-view-toggle,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-tabs,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-card,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-list-wrap,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-filter-pop,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-empty,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-search,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-tool-btn,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-view-toggle,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-tabs,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-card,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-list-wrap,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-filter-pop,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-empty{
  background:#080a0d;
  border-color:#22272e;
  box-shadow:0 16px 36px rgba(0,0,0,.30);
}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-search svg,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-search input,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-tool-btn,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-search svg,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-search input,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-tool-btn,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-search svg,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-search input,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-tool-btn{color:#eef2f6;stroke:currentColor}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-search input::placeholder,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-search input::placeholder,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-search input::placeholder{color:#7d8998}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-view-toggle,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-tabs,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-view-toggle,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-tabs,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-view-toggle,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-tabs{background:#0d1015;border-color:#252b33}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-view-toggle button,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-tab,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-view-toggle button,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-tab,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-view-toggle button,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-tab{color:#aab4c0}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-view-toggle button.active,
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-tab.active,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-view-toggle button.active,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-tab.active,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-view-toggle button.active,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-tab.active{background:#0f2037;color:#4b96ff;box-shadow:0 5px 13px rgba(0,0,0,.24)}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-co,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-co,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-co{background:#0d2949;color:#54a4ff}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-status.upcoming,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-status.upcoming,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-status.upcoming{background:#0d2949;color:#54a4ff}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-status.open,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-status.open,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-status.open{background:#0e2c20;color:#4fd39b}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-status.closed,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-status.closed,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-status.closed{background:#17191c;color:#9aa3ae}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-score,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-score,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-score{background:#0d231b;color:#8be2bb}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-score strong,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-score strong,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-score strong{color:#49c68e}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-info-table,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-info-table,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-info-table{background:#0b0f14;border-color:#222a34}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-info-cell:nth-child(odd),
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-info-cell:nth-child(odd),
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-info-cell:nth-child(odd){border-right-color:#26303b}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-info-cell:nth-child(-n+2),
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-info-cell:nth-child(-n+2),
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-info-cell:nth-child(-n+2){border-bottom-color:#26303b}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-info-icon,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-info-icon,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-info-icon{background:#102541;color:#4b9cff}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-info-cell small,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-info-cell small,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-info-cell small{color:#8f9aa8}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-info-cell strong,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-info-cell strong,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-info-cell strong{color:#f4f7fb}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-info-cell strong.blue,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-info-cell strong.blue,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-info-cell strong.blue{color:#58a4ff}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-view,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-view,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-view{background:#176ff0;color:#fff;border-color:#2e82ff;box-shadow:none}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-card-icon,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-card-icon,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-card-icon{background:#0a0d11;color:#dbe3ec;border-color:#27303a}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-card-icon:hover,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-card-icon:hover,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-card-icon:hover{background:#0f1824;color:#58a4ff}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-card-icon.saved,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-card-icon.saved,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-card-icon.saved{background:#29151b;color:#ef6d89;border-color:#57313b}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-list-wrap th,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-list-wrap th,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-list-wrap th{background:#0d1117;color:#8995a3}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-list-wrap td,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-list-wrap td,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-list-wrap td{border-top-color:#20262e;color:#d9e0e7}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-table-name,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-table-name,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-table-name{color:#f4f7fb}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-table-sub,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-table-sub,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-table-sub{color:#7f8b9a}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-score-mini,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-score-mini,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-score-mini{background:#0d231b;color:#8be2bb}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-table-status.upcoming,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-table-status.upcoming,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-table-status.upcoming{background:#0d2949;color:#54a4ff}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-table-status.open,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-table-status.open,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-table-status.open{background:#0e2c20;color:#4fd39b}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-table-status.closed,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-table-status.closed,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-table-status.closed{background:#17191c;color:#9aa3ae}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-filter-pop,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-filter-pop,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-filter-pop{background:#080a0d;border-color:#272d35;box-shadow:0 18px 35px rgba(0,0,0,.48);color:#f4f7fb}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-filter-close,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-filter-close,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-filter-close{color:#87929f}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-filter-group label,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-filter-group label,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-filter-group label{color:#8d98a5}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-filter-group select,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-filter-group select,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-filter-group select{background:#0b0e12;border-color:#272d35;color:#eef2f6}
.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-filter-clear,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-filter-clear,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-filter-clear{color:#87929f}

.ipofy-app-shell.dark .ipofy-ipo-app .ipofy-ipo-empty,
.ipofy-ipo-app.ipofy-dark .ipofy-ipo-empty,
body.ipofy-dark .ipofy-ipo-app .ipofy-ipo-empty{background:#080a0d;color:#8d98a5;border-color:#28303a}

.ipofy-app-shell.dark .ipofy-ipo-toast,
.ipofy-ipo-app.ipofy-dark + .ipofy-ipo-toast,
body.ipofy-dark .ipofy-ipo-toast{background:#f4f7fb;color:#050607}


/* v1.3.2: final App Shell dark-mode override + cache-busted theme.
   Light mode is untouched. Dark mode uses true-black surfaces and explicit
   high-contrast text so no light-mode white cards leak into the dark UI. */
.ipofy-app-shell.dark main .ipofy-ipo-app,
.ipofy-app-shell.dark .ipofy-ipo-app{
  --bg:#050607 !important;
  --card:#080a0d !important;
  --ink:#f4f7fb !important;
  --muted:#b8c2cf !important;
  --muted2:#9aa6b5 !important;
  --line:#22272e !important;
  --blue:#4b96ff !important;
  --blue2:#2f7ff7 !important;
  --blue-soft:#0e1f34 !important;
  --blue-soft-2:#090f16 !important;
  --green:#49c68e !important;
  --green-soft:#0c241b !important;
  --shadow:0 16px 36px rgba(0,0,0,.38) !important;
  color:#f4f7fb !important;
  color-scheme:dark;
}

.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-search,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-tool-btn,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-view-toggle,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-tabs,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-card,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-info-table,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-list-wrap,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-filter-pop,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-empty{
  background:#080a0d !important;
  border-color:#222a34 !important;
  box-shadow:0 16px 36px rgba(0,0,0,.30) !important;
}

.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-hero h1,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-name,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-card,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-info-cell strong,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-info-cell strong.blue{
  color:#f4f7fb !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-hero p,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-type,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-meta,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-info-cell small{
  color:#aeb8c6 !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-meta b{
  color:#f0f4f8 !important;
}

.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-search svg,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-tool-btn{
  color:#eef3f8 !important;
  stroke:currentColor !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-search input{
  background:transparent !important;
  color:#f4f7fb !important;
  -webkit-text-fill-color:#f4f7fb !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-search input::placeholder{
  color:#aeb8c6 !important;
  opacity:1 !important;
}

.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-view-toggle,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-tabs{
  background:#0b0e13 !important;
  border-color:#232a33 !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-view-toggle button,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-tab{
  background:transparent !important;
  color:#b7c1ce !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-view-toggle button.active,
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-tab.active{
  background:#0e2745 !important;
  color:#4b96ff !important;
  box-shadow:0 5px 13px rgba(0,0,0,.24) !important;
}

.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-co{
  background:#0d2949 !important;
  color:#54a4ff !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-status.upcoming{
  background:#0d2949 !important;
  color:#62b0ff !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-status.open{
  background:#0e2c20 !important;
  color:#54d8a0 !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-status.closed{
  background:#171a1e !important;
  color:#b7c0ca !important;
}

.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-score{
  background:#0c241b !important;
  color:#a9ebcb !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-score strong{
  color:#49c68e !important;
}

.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-info-table{
  background:#090d12 !important;
  border-color:#27303a !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-info-cell:nth-child(odd){
  border-right-color:#27303a !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-info-cell:nth-child(-n+2){
  border-bottom-color:#27303a !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-info-icon{
  background:#102541 !important;
  color:#4b9cff !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-info-cell strong.blue{
  color:#60a7ff !important;
}

.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-view{
  background:#176ff0 !important;
  border-color:#2e82ff !important;
  color:#fff !important;
  box-shadow:none !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-card-icon{
  background:#0a0d11 !important;
  color:#dbe3ec !important;
  border-color:#27303a !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-card-icon:hover{
  background:#0f1824 !important;
  color:#58a4ff !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-card-icon.saved{
  background:#29151b !important;
  color:#ef6d89 !important;
  border-color:#57313b !important;
}

.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-list-wrap th{
  background:#0d1117 !important;
  color:#aeb8c6 !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-list-wrap td{
  border-top-color:#20262e !important;
  color:#e0e6ed !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-table-name{
  color:#f4f7fb !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-table-sub{
  color:#929eac !important;
}

.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-filter-pop{
  background:#080a0d !important;
  color:#f4f7fb !important;
  border-color:#272d35 !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-filter-group label{
  color:#aeb8c6 !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-filter-group select{
  background:#0b0e12 !important;
  color:#eef2f6 !important;
  border-color:#272d35 !important;
  color-scheme:dark;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-filter-clear{
  color:#aeb8c6 !important;
}
.ipofy-app-shell.dark main .ipofy-ipo-app .ipofy-ipo-empty{
  background:#080a0d !important;
  color:#aeb8c6 !important;
  border-color:#28303a !important;
}
