:root {
  color-scheme: light;
  --ink: #172338;
  --muted: #78859a;
  --soft: #9aa5b5;
  --line: #e9edf3;
  --canvas: #f5f7fb;
  --white: #fff;
  --navy: #101a2d;
  --navy-soft: #1b2940;
  --blue: #3478f6;
  --blue-dark: #2464df;
  --teal: #24b7a4;
  --green: #159b72;
  --green-bg: #e6f7f0;
  --red: #df6470;
  --red-bg: #fff0f1;
  --amber: #d29a32;
  --shadow: 0 10px 28px rgba(28, 48, 82, .045);
  font-family: "Segoe UI", "Aptos", sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 360px; color: var(--ink); background: var(--canvas); font-size: 13px; }
button, input, select { font: inherit; }
button { cursor: pointer; }
.is-hidden { display: none !important; }

.auth-gate { min-height: 100vh; display: grid; place-items: center; padding: 32px 18px; position: relative; overflow: hidden; background: radial-gradient(ellipse at 82% 17%, rgba(52,120,246,.2), transparent 34%), radial-gradient(ellipse at 9% 92%, rgba(36,183,164,.13), transparent 30%), #0b1020; color: white; }
.auth-orbit { position: absolute; border: 1px solid rgba(166,191,233,.09); border-radius: 50%; pointer-events: none; }
.auth-orbit-one { width: 660px; height: 660px; right: -310px; top: -260px; }
.auth-orbit-two { width: 900px; height: 900px; right: -428px; top: -380px; }
.auth-card { position: relative; z-index: 1; width: min(100%, 440px); padding: 42px 44px 34px; border: 1px solid rgba(171,190,224,.13); border-radius: 18px; background: rgba(18,28,47,.88); box-shadow: 0 28px 90px rgba(0,0,0,.26); backdrop-filter: blur(20px); }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: #f7f9ff; font: 800 19px "Segoe UI", sans-serif; letter-spacing: -.8px; }
.brand-light { color: #86aefa; }
.brand-mark { width: 27px; height: 27px; display: grid; grid-template-columns: repeat(2, 1fr); align-items: end; gap: 3px; padding: 4px; border-radius: 8px; background: linear-gradient(145deg, #5ca0ff, #3676ef); }
.brand-mark span { display: block; border-radius: 2px 2px 1px 1px; background: white; opacity: .96; }
.brand-mark span:nth-child(1) { height: 8px; opacity: .66; }
.brand-mark span:nth-child(2) { height: 12px; }
.brand-mark span:nth-child(3) { height: 11px; opacity: .76; }
.brand-mark span:nth-child(4) { height: 16px; }
.brand-auth { margin-bottom: 42px; }
.auth-card .eyebrow { color: #7e9bc7; margin: 0 0 12px; }
.eyebrow { color: #8794a8; font-size: 9px; line-height: 1.4; font-weight: 700; letter-spacing: 1.25px; margin: 0 0 8px; }
.auth-card h1 { font: 700 29px/1.2 "Segoe UI", sans-serif; letter-spacing: -1.05px; margin: 0; color: #f7f9ff; }
.auth-copy { color: #a7b3c5; line-height: 1.7; margin: 12px 0 28px; }
.auth-card label, .modal label { display: block; margin: 15px 0 7px; color: #ced7e5; font-size: 11px; font-weight: 600; }
.auth-card input, .modal input, .modal select { width: 100%; height: 43px; padding: 0 12px; border: 1px solid rgba(173,191,222,.2); border-radius: 7px; outline: none; background: rgba(6,13,27,.42); color: white; }
.auth-card input:focus, .modal input:focus, .modal select:focus { border-color: #6094f4; box-shadow: 0 0 0 3px rgba(52,120,246,.14); }
.auth-card input:-webkit-autofill { -webkit-text-fill-color: white; transition: background-color 9999s ease-out; }
.auth-card input::placeholder { color: #74839b; }
.button { min-height: 39px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 0 15px; border: 1px solid transparent; border-radius: 7px; font-size: 11px; font-weight: 700; transition: .18s ease; }
.button-primary { background: var(--blue); color: white; box-shadow: 0 5px 13px rgba(52,120,246,.17); }
.button-primary:hover { background: var(--blue-dark); transform: translateY(-1px); }
.button-secondary { border-color: #dfe5ee; color: #53647b; background: #fff; }
.button-secondary:hover { border-color: #c4cfdf; background: #f8faff; }
.button-wide { width: 100%; height: 45px; margin-top: 21px; justify-content: space-between; padding: 0 15px; }
.button-spark { font-size: 15px; line-height: 0; }
.auth-footnote { display: flex; align-items: center; gap: 8px; color: #7e8da4; font-size: 10px; margin: 24px 0 0; }
.auth-caption { position: absolute; bottom: 24px; color: #69758b; font-size: 10px; letter-spacing: .3px; }
.form-error { min-height: 16px; margin: 8px 0 0; color: #ff9a9f; font-size: 11px; }

.app-shell { min-height: 100vh; }
.sidebar { position: fixed; z-index: 4; inset: 0 auto 0 0; display: flex; width: 224px; flex-direction: column; padding: 25px 14px 14px; color: #aab8cf; background: var(--navy); }
.sidebar .brand { padding: 0 11px; font-size: 17px; }
.sidebar .brand-mark { width: 25px; height: 25px; border-radius: 7px; }
.workspace-label { margin: 43px 11px 11px; color: #677790; font-size: 9px; font-weight: 700; letter-spacing: 1.3px; }
.main-nav { display: grid; gap: 5px; }
.nav-link { position: relative; display: flex; align-items: center; width: 100%; height: 42px; gap: 12px; padding: 0 11px; border: 0; border-radius: 7px; color: #99a8bf; background: transparent; text-align: left; font-size: 11px; font-weight: 500; transition: .15s ease; }
.nav-link:hover { color: #edf3fd; background: rgba(255,255,255,.05); }
.nav-link.is-active { color: #f5f8ff; background: #22324d; box-shadow: inset 2px 0 #4f8cf6; }
.nav-link.is-active .nav-icon { color: #7baaff; }
.nav-icon { width: 16px; text-align: center; color: #8494ad; font-size: 17px; line-height: 1; }
.sidebar-bottom { margin-top: auto; }
.side-status { padding: 12px 11px 14px; border: 1px solid rgba(183,199,225,.09); border-radius: 7px; background: rgba(255,255,255,.025); }
.side-status-top { display: flex; align-items: center; gap: 7px; color: #c7d1df; font-size: 10px; font-weight: 600; }
.side-status-note { display: block; margin: 6px 0 0 13px; color: #6f809a; font-size: 9px; }
.status-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #2ec79b; box-shadow: 0 0 0 3px rgba(46,199,155,.12); }
.status-dot.is-waiting { background: #e4a948; box-shadow: 0 0 0 3px rgba(228,169,72,.12); }
.status-dot.is-failed { background: #ed6b79; box-shadow: 0 0 0 3px rgba(237,107,121,.12); }
.profile-button { display: flex; width: 100%; align-items: center; gap: 10px; margin-top: 14px; padding: 10px 7px; border: 0; color: #d7dfeb; background: transparent; text-align: left; }
.avatar, .top-avatar { display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; color: #c8d8f6; background: #293d5d; font-size: 11px; font-weight: 700; }
.profile-copy { display: grid; gap: 3px; overflow: hidden; }
.profile-copy strong { overflow: hidden; color: #dce5f2; font-size: 10px; font-weight: 600; text-overflow: ellipsis; }
.profile-copy small { color: #7d8da5; font-size: 9px; text-transform: capitalize; }
.profile-menu { margin-left: auto; color: #7585a0; font-size: 12px; }
.main-content { min-height: 100vh; margin-left: 224px; }
.topbar { position: sticky; z-index: 3; top: 0; display: flex; height: 62px; align-items: center; justify-content: space-between; padding: 0 34px; border-bottom: 1px solid #e8ecf3; background: rgba(255,255,255,.94); backdrop-filter: blur(12px); }
.breadcrumb { display: flex; gap: 10px; color: #98a3b2; font-size: 10px; }
.breadcrumb strong { color: #48566c; font-weight: 600; }
.crumb-slash { color: #c5ccd6; }
.topbar-actions { display: flex; align-items: center; gap: 15px; }
.market-pill { display: flex; align-items: center; gap: 7px; color: #758398; font-size: 8px; font-weight: 700; letter-spacing: .65px; }
.market-pill .status-dot { width: 6px; height: 6px; }
.icon-button { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid #e8edf3; border-radius: 7px; color: #74839a; background: #fff; font-size: 16px; }
.icon-button:hover { border-color: #cbd6e5; color: #3478f6; }
.top-avatar { width: 27px; height: 27px; flex-basis: 27px; border: 0; color: #48607f; background: #e8effa; font-size: 10px; }
.mobile-brand { display: none; }
.page-wrap { max-width: 1510px; margin: 0 auto; padding: 30px 34px 22px; }
.view { display: none; animation: appear .24s ease; }
.view.is-active { display: block; }
@keyframes appear { from { opacity: .45; transform: translateY(3px); } to { opacity: 1; transform: none; } }
.page-heading { margin: 1px 0 23px; }
.page-heading h1 { margin: 0; color: #17253a; font: 700 25px/1.25 Manrope, sans-serif; letter-spacing: -.9px; }
.heading-period { color: var(--blue); }
.page-heading .eyebrow { margin-bottom: 7px; }
.subheading { margin: 7px 0 0; color: #8290a3; font-size: 11px; line-height: 1.55; }
.heading-row { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.heading-row .button { margin-top: 2px; }
.notice { position: relative; display: flex; align-items: center; gap: 10px; min-height: 43px; padding: 9px 13px; border: 1px solid #f1e7cc; border-radius: 7px; color: #80724f; font-size: 10px; line-height: 1.5; }
.notice strong { color: #615535; font-weight: 700; }
.notice-warm { background: #fffcf4; }
.notice-neutral { margin-top: 19px; border-color: #e3eaf3; color: #77869a; background: #f9fbfe; }
.notice-neutral strong { color: #52647e; }
.notice-icon { display: grid; width: 17px; height: 17px; flex: 0 0 17px; place-items: center; border: 1px solid #dfcf9e; border-radius: 50%; color: #aa914d; font-size: 10px; font-weight: 700; }
.notice-neutral .notice-icon { border-color: #cad7e8; color: #6b87ac; }
.notice-close { margin-left: auto; padding: 0 3px; border: 0; color: #b2a57f; background: none; font-size: 17px; line-height: 1; }
.training-banner { display: flex; align-items: center; gap: 12px; margin-top: 12px; padding: 11px 13px; border: 1px solid #dfe9fb; border-radius: 7px; background: #f7faff; }
.training-banner-icon { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: 7px; color: #4a82dc; background: #eaf2ff; }
.training-banner-copy { display: grid; flex: 1; gap: 3px; min-width: 0; }
.training-banner-copy strong { color: #4a5e7a; font-size: 9px; }
.training-banner-copy span { overflow: hidden; color: #8998ad; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.training-banner-progress { display: grid; width: 120px; flex: 0 0 120px; gap: 4px; color: #7084a1; font-size: 8px; text-align: right; }
.training-banner.is-failed { border-color: #f0d7dc; background: #fff9fa; }
.training-banner.is-failed .training-banner-icon { color: #c65967; background: #fff0f2; }
.progress-track { display: block; width: 100%; height: 5px; overflow: hidden; border: 0; border-radius: 9px; appearance: none; background: #edf1f7; }
.progress-track::-webkit-progress-bar { border-radius: 9px; background: #edf1f7; }
.progress-track::-webkit-progress-value { border-radius: 9px; background: linear-gradient(90deg, #6ea0f5, #3478f6); transition: width .35s ease; }
.progress-track::-moz-progress-bar { border-radius: 9px; background: #4782ed; }
.training-banner.is-failed .progress-track::-webkit-progress-value, .training-banner.is-failed .progress-track::-moz-progress-bar { background: #dc6875; }
.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin-top: 17px; }
.kpi-card, .panel { border: 1px solid #e9edf3; border-radius: 9px; background: var(--white); box-shadow: var(--shadow); }
.kpi-card { min-height: 111px; padding: 15px 16px 13px; }
.kpi-label { display: flex; align-items: center; justify-content: space-between; color: #8793a4; font-size: 8px; font-weight: 700; letter-spacing: .75px; }
.kpi-icon { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 6px; font-size: 13px; }
.icon-blue { color: #4a86ef; background: #edf4ff; }
.icon-green { color: #1caa7e; background: #e9f8f2; }
.icon-violet { color: #8375d8; background: #f1effd; }
.icon-amber { color: #d19b35; background: #fff8e9; }
.icon-rose { color: #d96f80; background: #fff0f2; }
.icon-teal { color: #199b97; background: #e8f8f6; }
.kpi-value { margin-top: 11px; color: #1c2a40; font: 700 25px/1 Manrope, sans-serif; letter-spacing: -.75px; }
.kpi-status { font-size: 18px; text-transform: capitalize; }
.kpi-foot { display: flex; align-items: center; gap: 6px; margin-top: 8px; color: #8d99a9; font-size: 9px; }
.kpi-muted { color: #8d99a9; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(260px, .9fr); gap: 13px; margin-top: 14px; }
.movers-section { margin-top: 14px; }
.movers-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.movers-heading h2 { margin: 0; color: #243248; font: 700 14px/1.35 Manrope, sans-serif; }
.movers-heading .eyebrow { margin-bottom: 4px; font-size: 8px; }
.movers-range-controls { margin-top: 0; }
.movers-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.movers-panel { padding: 16px 18px 12px; }
.mover-direction-icon { font-size: 17px; font-weight: 700; }
.mover-list { display: grid; margin-top: 8px; }
.mover-row { display: grid; grid-template-columns: 19px 30px minmax(0, 1fr) auto; align-items: center; gap: 9px; width: 100%; padding: 9px 2px; border: 0; border-top: 1px solid #29364b; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.mover-row:hover { background: #19263a; }
.mover-rank { color: #8c9bb0; font-size: 9px; font-weight: 700; text-align: center; }
.mover-logo { width: 29px; height: 29px; flex-basis: 29px; border-radius: 7px; font-size: 8px; }
.mover-company { display: grid; gap: 4px; min-width: 0; }
.mover-company strong { overflow: hidden; color: #dce5f2; font-size: 9px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.mover-company small { overflow: hidden; color: #8f9db1; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.mover-return { font-size: 10px; font-weight: 750; font-variant-numeric: tabular-nums; white-space: nowrap; }
.movers-note { margin: 8px 2px 0; color: #8f9db1; font-size: 8px; }
.panel { overflow: hidden; }
.chart-panel, .signal-panel, .table-panel, .activity-panel { padding: 17px 18px 14px; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.panel-heading h2 { margin: 0; color: #243248; font: 700 13px/1.35 Manrope, sans-serif; letter-spacing: -.2px; }
.panel-heading .eyebrow { margin-bottom: 4px; font-size: 8px; }
.chart-period { color: #9aa5b3; font-size: 8px; font-weight: 600; letter-spacing: .35px; }
.chart-period span { padding: 0 4px; color: #cbd3de; }
.chart-range-controls { display: flex; gap: 4px; overflow-x: auto; margin-top: 12px; padding: 2px 0 4px; scrollbar-width: thin; }
.chart-range-controls button { min-width: 34px; padding: 5px 7px; border: 1px solid transparent; border-radius: 5px; color: #8998ae; background: transparent; font-family: inherit; font-size: 8px; font-weight: 700; line-height: 1.2; cursor: pointer; white-space: nowrap; }
.chart-range-controls button:hover { color: var(--ink); background: #1d2a3e; }
.chart-range-controls button[aria-pressed="true"] { border-color: #31518a; color: #a9c5ff; background: #1b2c49; }
.chart-style-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-top: 2px; }
.chart-style-controls { gap: 3px; margin-top: 0; padding: 2px 0; }
.chart-style-controls button { min-width: 62px; }
.chart-style-controls button:disabled { color: #68768a; background: transparent; cursor: not-allowed; }
.chart-style-controls button:disabled:hover { color: #68768a; background: transparent; }
.chart-style-note { color: #8c99aa; font-size: 8px; }
.stock-chart-ranges { margin-top: 15px; }
.chart-summary { display: flex; align-items: baseline; gap: 9px; margin-top: 13px; }
.chart-summary strong { color: #27374e; font: 700 18px Manrope, sans-serif; letter-spacing: -.6px; }
.chart-summary span { color: #8a97a8; font-size: 9px; }
.chart-wrap { position: relative; height: 170px; margin-top: 8px; }
.chart-wrap canvas { display: block; width: 100%; height: 100%; }
.chart-wrap canvas, .ticker-detail-chart canvas { cursor: crosshair; touch-action: pan-y; }
.chart-hover-tooltip { position: absolute; z-index: 1; display: grid; gap: 4px; min-width: 116px; padding: 8px 10px; border: 1px solid #35435b; border-radius: 6px; color: #aab8cd; background: rgba(15, 23, 37, .96); box-shadow: 0 8px 22px rgba(0, 0, 0, .24); pointer-events: none; font-size: 9px; }
.chart-hover-tooltip[hidden] { display: none; }
.chart-hover-tooltip strong { color: #edf3fc; font-size: 11px; }
.chart-axis { display: flex; justify-content: space-between; margin-top: 4px; color: #a4afbd; font-size: 8px; }
.signal-summary { display: flex; align-items: center; justify-content: space-around; min-height: 185px; gap: 12px; }
.donut-wrap { display: grid; place-items: center; }
.donut { position: relative; display: grid; width: 133px; height: 133px; place-items: center; border-radius: 50%; }
.donut-chart { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.donut-track, .donut-up, .donut-down { fill: none; stroke-width: 4; }
.donut-track { stroke: #dce3ed; }
.donut-up { stroke: #22ad83; }
.donut-down { stroke: #e86975; }
.donut-center { position: relative; display: grid; width: 91px; height: 91px; align-content: center; justify-items: center; border-radius: 50%; background: white; }
.donut strong { color: #25344a; font: 700 22px Manrope, sans-serif; }
.donut-center small { margin-top: 2px; color: #97a2b0; font-size: 8px; }
.legend-list { display: grid; gap: 14px; min-width: 90px; }
.legend-list > div { display: grid; grid-template-columns: 9px 1fr auto; align-items: center; gap: 7px; color: #8591a2; font-size: 9px; }
.legend-list strong { color: #35445a; font-size: 10px; font-weight: 700; }
.legend-dot { width: 7px; height: 7px; border-radius: 50%; }
.legend-dot.green { background: #22ad83; }
.legend-dot.red { background: #e86975; }
.legend-dot.gray { background: #c7d0de; }
.signal-footnote { display: flex; align-items: center; gap: 8px; padding-top: 12px; border-top: 1px solid #eff2f6; color: #8995a5; font-size: 9px; }
.signal-footnote .status-dot { width: 6px; height: 6px; }
.lower-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(260px, .9fr); gap: 13px; margin-top: 14px; }
.text-button { padding: 5px 0; border: 0; color: #5584d9; background: none; font-size: 9px; font-weight: 700; white-space: nowrap; }
.text-button:hover { color: #1d5bc6; }
.text-button span { margin-left: 4px; }
.table-scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; text-align: left; }
th { padding: 13px 10px 10px; color: #a0aab8; font-size: 7px; font-weight: 700; letter-spacing: .7px; white-space: nowrap; }
td { padding: 10px; border-top: 1px solid #f0f2f6; color: #667489; font-size: 9px; white-space: nowrap; }
.table-panel table th:first-child, .table-panel table td:first-child { padding-left: 2px; }
.company-cell { display: flex; align-items: center; gap: 9px; min-width: 130px; }
.company-monogram { display: grid; width: 27px; height: 27px; flex: 0 0 27px; place-items: center; border: 1px solid #e7edf5; border-radius: 7px; color: #60728b; background: #f4f7fb; font-size: 8px; font-weight: 700; }
.company-logo-frame { position: relative; overflow: hidden; }
.company-logo-frame .company-logo-image { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.company-logo-frame .company-logo-fallback { position: absolute; inset: 0; display: grid; place-items: center; }
.ticker-title-row { display: flex; align-items: center; gap: 12px; }
.ticker-company-logo { width: 42px; height: 42px; flex-basis: 42px; border-radius: 9px; font-size: 11px; }
.company-copy { display: grid; gap: 3px; }
.company-copy strong { max-width: 190px; overflow: hidden; color: #314057; font-size: 9px; font-weight: 700; text-overflow: ellipsis; }
.company-copy small { color: #9ba6b5; font-size: 8px; }
.price-cell { color: #394960; font-weight: 600; font-variant-numeric: tabular-nums; }
.movement { display: inline-flex; align-items: center; gap: 4px; padding: 4px 7px; border-radius: 4px; font-size: 8px; font-weight: 700; }
.movement-up { color: #12805d; background: var(--green-bg); }
.movement-down { color: #c94f5d; background: var(--red-bg); }
.movement-flat { color: #66758c; background: #f0f3f7; }
.action-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; padding: 5px 10px; border: 1px solid transparent; border-radius: 999px; font-size: 8px; font-weight: 800; letter-spacing: .45px; line-height: 1.1; text-transform: uppercase; }
.action-buy { border-color: #1d5b48; color: #7de0b8; background: #15362f; }
.action-hold { border-color: #70552e; color: #ffd17a; background: #34291c; }
.action-sell { border-color: #713e4a; color: #ff9aa5; background: #38232d; }
.action-unavailable { border-color: #344258; color: #a0aec0; background: #202b3e; }
.kpi-status .action-badge { min-width: 64px; padding: 8px 13px; font-size: 11px; }
.signal-movement-cell { display: grid; justify-items: start; gap: 4px; }
.signal-estimated-move { font-size: 8px; font-weight: 700; font-variant-numeric: tabular-nums; }
.signal-estimated-move.unavailable { color: #8996a8; font-weight: 500; }
.confidence { display: inline-flex; align-items: center; gap: 6px; color: #617087; font-variant-numeric: tabular-nums; }
.confidence > span { display: grid; gap: 2px; font-size: 9px; font-weight: 700; }
.confidence small { color: #8d99a9; font-size: 7px; font-weight: 500; }
.confidence-track { width: 33px; height: 4px; overflow: hidden; border: 0; border-radius: 4px; appearance: none; background: #edf0f5; }
.confidence-track::-webkit-progress-bar { border-radius: 4px; background: #edf0f5; }
.confidence-track::-webkit-progress-value { border-radius: 4px; background: #6b98ef; }
.confidence-track::-moz-progress-bar { border-radius: 4px; background: #6b98ef; }
.positive { color: #159b72 !important; }
.negative { color: #d45d69 !important; }
.neutral { color: #728096 !important; }
.empty-cell { padding: 22px 10px; color: #95a0ae; font-size: 9px; text-align: center; }
.activity-list { display: grid; margin-top: 10px; }
.activity-item { display: grid; grid-template-columns: 24px 1fr; gap: 9px; padding: 10px 0; border-bottom: 1px solid #f0f2f6; }
.activity-item:last-child { border-bottom: 0; }
.activity-icon { display: grid; width: 23px; height: 23px; place-items: center; border-radius: 6px; color: #4c80d4; background: #edf4ff; font-size: 10px; }
.activity-copy { display: grid; gap: 4px; min-width: 0; }
.activity-copy strong { overflow: hidden; color: #4b5a70; font-size: 9px; font-weight: 600; text-overflow: ellipsis; }
.activity-copy small { color: #a0aab7; font-size: 8px; }
.page-footer { display: flex; justify-content: space-between; gap: 12px; padding: 18px 2px 2px; color: #a2adba; font-size: 8px; }
.page-footer span:first-child { font-size: 7px; font-weight: 700; letter-spacing: .8px; }

.signals-table-panel { padding: 0 17px 5px; }
.filter-row { display: flex; align-items: center; gap: 9px; padding: 15px 0; border-bottom: 1px solid #edf0f5; }
.search-field { display: flex; width: min(270px, 34%); height: 34px; align-items: center; gap: 8px; padding: 0 10px; border: 1px solid #e7ebf1; border-radius: 6px; color: #9da8b7; background: white; }
.search-field input { width: 100%; border: 0; outline: 0; color: #45566e; background: transparent; font-size: 9px; }
.search-field input::placeholder { color: #a5afbd; }
.filter-row select { height: 34px; min-width: 130px; padding: 0 25px 0 10px; border: 1px solid #e7ebf1; border-radius: 6px; outline: 0; color: #718096; background: #fff; font-size: 9px; }
.result-count { margin-left: auto; color: #96a1b0; font-size: 9px; }
.signals-table-panel td { padding-top: 11px; padding-bottom: 11px; }
.disclaimer { margin: 13px 0; color: #919dad; font-size: 9px; line-height: 1.65; }

.model-top-grid { display: grid; grid-template-columns: 1.35fr .85fr; gap: 13px; margin: 15px 0; }
.model-status-card, .score-card, .model-method-panel { padding: 18px 19px; }
.model-status-line { display: flex; align-items: center; gap: 10px; margin-top: 14px; }
.model-status-line h2 { margin: 0; color: #26364d; font: 700 16px Manrope, sans-serif; letter-spacing: -.35px; }
.status-large { width: 10px; height: 10px; border-radius: 50%; background: #25b78b; box-shadow: 0 0 0 5px #e8f8f2; }
.status-large.is-waiting { background: #dfa63e; box-shadow: 0 0 0 5px #fff7e8; }
.status-large.is-failed { background: #e36a77; box-shadow: 0 0 0 5px #fff0f2; }
.model-status-card > p:not(.eyebrow) { max-width: 520px; color: #8592a4; font-size: 10px; line-height: 1.65; }
.training-progress-panel { margin-top: 17px; padding-top: 14px; border-top: 1px solid #eff2f6; }
.progress-heading { display: flex; justify-content: space-between; margin-bottom: 7px; color: #8593a6; font-size: 8px; }
.progress-heading strong { color: #5377ab; font-size: 9px; font-variant-numeric: tabular-nums; }
.training-progress-panel > p { min-height: 27px; margin: 8px 0 11px; color: #75849a; font-size: 9px; line-height: 1.55; }
.training-details { border-top: 1px solid #f0f2f6; }
.training-details summary { display: flex; justify-content: space-between; padding: 10px 0 7px; color: #6684b1; cursor: pointer; font-size: 8px; font-weight: 700; list-style: none; }
.training-details summary::-webkit-details-marker { display: none; }
.training-details[open] .details-chevron { transform: rotate(180deg); }
.details-chevron { color: #99a6b8; transition: transform .18s ease; }
.training-log { display: grid; gap: 8px; max-height: 300px; overflow: auto; padding: 2px 2px 4px 0; }
.training-log-event { padding: 8px 9px; border: 1px solid #edf1f6; border-radius: 6px; background: #fbfcfe; }
.training-log-event header { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #99a5b4; font-size: 7px; }
.training-log-event header strong { color: #6682ab; font-size: 7px; letter-spacing: .45px; text-transform: uppercase; }
.training-log-event p { margin: 5px 0 0; color: #5e6f86; font-size: 8px; line-height: 1.5; }
.training-log-event pre { max-height: 120px; overflow: auto; margin: 6px 0 0; padding: 7px; border-radius: 4px; color: #708097; background: #f2f5f9; font: 7px/1.5 Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.model-meta { display: flex; gap: 42px; margin-top: 20px; padding-top: 13px; border-top: 1px solid #eff2f6; }
.model-meta div { display: grid; gap: 5px; }
.model-meta span, .score-line span { color: #98a3b0; font-size: 8px; }
.model-meta strong { color: #526179; font-size: 9px; font-weight: 600; }
.score-main { display: flex; align-items: baseline; gap: 7px; margin: 8px 0 10px; }
.score-main strong { color: #26374e; font: 700 27px Manrope, sans-serif; letter-spacing: -.8px; }
.score-main span { color: #99a4b2; font-size: 9px; }
.score-line { display: flex; justify-content: space-between; padding: 7px 0; border-top: 1px solid #f0f2f6; }
.score-line strong { color: #5b6b81; font-size: 9px; font-variant-numeric: tabular-nums; }
.studio-grid { display: grid; grid-template-columns: .9fr 1.3fr; gap: 13px; }
.studio-grid > .panel { padding: 18px 19px; }
.compact-table td { padding: 13px 9px; }
.compact-table th:first-child, .compact-table td:first-child { padding-left: 0; }
.method-list { display: grid; gap: 14px; margin-top: 17px; }
.method-list > div { display: grid; grid-template-columns: 25px 1fr; gap: 10px; }
.method-number { display: grid; width: 24px; height: 24px; place-items: center; border: 1px solid #e8edf5; border-radius: 6px; color: #7291c4; background: #f8faff; font-size: 8px; font-weight: 700; }
.method-list strong { color: #4a5b72; font-size: 9px; }
.method-list p { margin: 4px 0 0; color: #8b97a7; font-size: 9px; line-height: 1.55; }
.feature-transparency { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 13px; margin-top: 13px; }
.feature-transparency > .panel { padding: 18px 19px; }
.feature-count, .feature-group-heading span { padding: 4px 8px; border: 1px solid #e6ecf4; border-radius: 999px; color: #718198; background: #f7f9fc; font-size: 8px; font-weight: 700; white-space: nowrap; }
.feature-panel-intro { margin: 11px 0 0; color: #8996a8; font-size: 9px; line-height: 1.6; }
.feature-groups { display: grid; gap: 13px; margin-top: 14px; }
.feature-group { min-width: 0; }
.feature-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 7px; color: #53647d; font-size: 9px; }
.feature-group-heading span { padding: 2px 7px; }
.feature-chip-list { display: flex; flex-wrap: wrap; gap: 6px; }
.feature-chip { display: grid; gap: 3px; max-width: 100%; padding: 7px 8px; border: 1px solid #e8edf4; border-radius: 6px; background: #f9fbfe; }
.feature-chip strong { color: #526179; font-size: 8px; font-weight: 600; }
.feature-chip code { overflow-wrap: anywhere; color: #8a97a8; font: 7px Consolas, monospace; }
.feature-roadmap { display: grid; gap: 12px; margin-top: 15px; }
.feature-roadmap > div { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 9px; }
.feature-priority { display: grid; width: 23px; height: 23px; place-items: center; border: 1px solid #e1e9f4; border-radius: 6px; color: #7190bf; background: #f5f8fd; font-size: 8px; font-weight: 700; }
.feature-roadmap strong { color: #4a5b72; font-size: 9px; }
.feature-roadmap p { margin: 3px 0 0; color: #8996a8; font-size: 8px; line-height: 1.55; }

.data-overview { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 15px 0; }
.data-overview-copy { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid #e8edf3; border-radius: 8px; background: white; box-shadow: var(--shadow); }
.data-orb { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; color: #4c82d5; background: #edf4ff; font-size: 16px; }
.data-orb-teal { color: #219e99; background: #eaf8f6; }
.data-orb-purple { color: #8778db; background: #f1effd; }
.data-overview-copy div { display: grid; gap: 3px; }
.data-overview-copy strong { color: #34445a; font: 700 16px Manrope, sans-serif; }
.data-overview-copy span:last-child { color: #939eac; font-size: 8px; }
.data-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.data-card { position: relative; min-height: 184px; padding: 15px 16px 13px; }
.data-card-icon { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; font-size: 15px; }
.data-card-top { display: flex; align-items: center; justify-content: space-between; margin-top: 14px; }
.source-type { color: #9aa5b2; font-size: 7px; font-weight: 700; letter-spacing: .7px; }
.data-dot { width: 6px; height: 6px; border-radius: 50%; background: #2bb58a; box-shadow: 0 0 0 3px #eaf8f3; }
.data-card h2 { margin: 7px 0 6px; color: #34445a; font: 700 11px Manrope, sans-serif; }
.data-card p { margin: 0; color: #8693a4; font-size: 9px; line-height: 1.6; }
.data-card-foot { display: flex; justify-content: space-between; margin-top: 13px; padding-top: 10px; border-top: 1px solid #f0f2f6; color: #a0aab7; font-size: 8px; }
.data-browser, .history-panel { margin-top: 14px; padding: 17px 18px; }
.data-browser .panel-heading h2 { margin-bottom: 2px; }
.data-browser-controls, .history-filter-row { flex-wrap: wrap; }
.history-field { display: grid; min-width: 115px; gap: 5px; color: #8996a8; font-size: 8px; font-weight: 700; }
.history-field select, .history-field input { width: 100%; height: 34px; padding: 0 9px; border: 1px solid #e7ebf1; border-radius: 6px; outline: 0; color: #526179; background: #fff; font-size: 9px; }
.history-field select:focus, .history-field input:focus { border-color: #82a6ea; }
.history-filter-row .button { min-height: 34px; padding: 0 10px; font-size: 8px; }
.history-filter-row .button:disabled, .history-pagination .button:disabled { opacity: .48; cursor: not-allowed; }
.history-summary, .data-browser-meta { margin: 3px 0 10px; color: #8996a8; font-size: 9px; }
.data-browser-meta, .history-pagination { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.data-preview-scroll { max-height: 480px; overflow: auto; }
.data-preview-scroll table { min-width: 100%; }
.data-preview-scroll th, .data-preview-scroll td { white-space: nowrap; }
.history-pagination { padding-top: 10px; color: #99a5b4; font-size: 8px; }
.history-pagination .button { min-height: 30px; padding: 0 10px; font-size: 8px; }
.history-table-scroll { max-height: 600px; }
.ticker-link { width: fit-content; padding: 0; border: 0; color: #7e9ed0; background: transparent; font-size: 8px; font-weight: 700; text-align: left; }
.ticker-link:hover, .ticker-link:focus-visible { color: #3478f6; text-decoration: underline; }
.ticker-page-heading { align-items: flex-end; }
.ticker-page-actions { display: flex; align-items: flex-end; gap: 8px; flex-wrap: wrap; }
.ticker-page-actions .history-field { min-width: 220px; }
.ticker-page-actions .button { min-height: 34px; font-size: 9px; }
.ticker-page-actions .button:disabled { opacity: .48; cursor: not-allowed; }
.ticker-page-actions .logo-manager { white-space: nowrap; }
.ticker-fundamentals-note { margin: 0 0 13px; }
.ticker-kpi-grid { margin-top: 13px; }
.ticker-detail-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(270px, .85fr); gap: 13px; margin-top: 13px; }
.ticker-detail-chart-panel, .ticker-detail-metrics, .ticker-returns-panel, .ticker-fundamentals-panel { padding: 17px 18px 14px; }
.ticker-detail-chart { position: relative; height: 245px; margin-top: 8px; }
.ticker-detail-chart-panel > .chart-style-row { margin-top: 2px; }
.ticker-indicators-panel { margin-top: 13px; padding: 17px 18px 14px; }
.ticker-indicator-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.ticker-indicator-card { display: grid; align-content: space-between; gap: 12px; min-height: 61px; padding: 10px; border: 1px solid #29364b; border-radius: 7px; background: #111a29; }
.ticker-indicator-card span { color: #98a7bc; font-size: 8px; font-weight: 700; letter-spacing: .35px; }
.ticker-indicator-card strong { color: #e0e9f6; font-size: 10px; font-variant-numeric: tabular-nums; }
.ticker-detail-chart canvas { display: block; width: 100%; height: 100%; }
.ticker-detail-metrics .score-line:first-of-type { margin-top: 10px; }
.ticker-detail-metrics .score-line strong { max-width: 62%; text-align: right; }
.ticker-statistics-panel { margin-top: 13px; padding: 17px 18px 14px; }
.ticker-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 24px; margin-top: 8px; }
.ticker-stat-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 42px; border-bottom: 1px solid #e8edf4; }
.ticker-stat-label { color: #78859a; font-size: 9px; }
.ticker-stat-item strong { color: #26344a; font-size: 10px; text-align: right; }
.ticker-stat-note { margin: 11px 0 0; color: #8996a8; font-size: 8px; line-height: 1.5; }
.ticker-detail-lower { grid-template-columns: 1fr 1fr; }
.ticker-return-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 16px; }
.ticker-return-grid > div { display: grid; gap: 6px; min-height: 55px; padding: 9px; border: 1px solid #e8edf4; border-radius: 6px; background: #f9fbfe; }
.ticker-return-grid span { color: #8996a8; font-size: 8px; }
.ticker-return-grid strong { font-size: 10px; }
.fundamentals-empty { display: grid; justify-items: start; gap: 8px; margin-top: 18px; padding: 15px; border: 1px dashed #dce4ef; border-radius: 7px; color: #8391a4; background: #f9fbfe; }
.fundamentals-icon { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 8px; color: #8da7d0; background: #eaf1fb; font-size: 15px; }
.fundamentals-empty strong { color: #51627b; font-size: 10px; }
.fundamentals-empty p { margin: 0; color: #8996a8; font-size: 9px; line-height: 1.6; }
.fundamentals-empty .text-button { font-size: 9px; }

.governance-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(310px,.85fr); gap: 13px; }
.users-panel, .audit-panel { padding: 17px 18px; }
.users-panel .panel-heading .button { min-height: 32px; font-size: 9px; }
.users-panel table td { padding-top: 12px; padding-bottom: 12px; }
.role-badge { display: inline-flex; padding: 4px 7px; border-radius: 4px; color: #56749f; background: #edf3fb; font-size: 8px; font-weight: 700; text-transform: capitalize; }
.role-badge.admin { color: #6e5db7; background: #f0edfc; }
.role-badge.analyst { color: #277e77; background: #eaf7f4; }
.role-badge.viewer { color: #67768c; background: #f0f3f7; }
.active-status { display: inline-flex; align-items: center; gap: 6px; color: #258469; font-size: 8px; }
.active-status::before { width: 5px; height: 5px; border-radius: 50%; background: #31b789; content: ""; }
.active-status.inactive { color: #bd6570; }
.active-status.inactive::before { background: #db7380; }
.table-action { padding: 4px 6px; border: 1px solid #e6ebf2; border-radius: 4px; color: #75849a; background: white; font-size: 8px; }
.table-action:hover { border-color: #d1dbea; color: #3974d4; }
.role-key { display: grid; gap: 5px; margin-top: 13px; padding: 11px 12px; border-radius: 6px; color: #8a96a5; background: #f8f9fc; font-size: 8px; }
.role-key strong { color: #5f6e82; }
.audit-list { display: grid; max-height: 400px; overflow-y: auto; margin-top: 6px; }
.audit-event { display: grid; grid-template-columns: 26px 1fr; gap: 9px; padding: 11px 0; border-bottom: 1px solid #f0f2f6; }
.audit-event:last-child { border-bottom: 0; }
.audit-event-icon { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 7px; color: #6386be; background: #eff4fc; font-size: 10px; }
.audit-event-copy { display: grid; gap: 4px; min-width: 0; }
.audit-event-copy strong { color: #526178; font-size: 8px; font-weight: 700; letter-spacing: .25px; }
.audit-event-copy span { overflow: hidden; color: #8491a2; font-size: 8px; text-overflow: ellipsis; }
.audit-event-copy small { color: #a4aeba; font-size: 7px; }
.audit-foot { padding-top: 10px; border-top: 1px solid #eff2f6; color: #9ba6b4; font-size: 8px; }

.modal { width: min(430px, calc(100vw - 30px)); padding: 23px; border: 1px solid #e4e9f0; border-radius: 12px; color: var(--ink); background: #fff; box-shadow: 0 24px 80px rgba(14,27,48,.25); }
.modal-wide { width: min(700px, calc(100vw - 30px)); }

.modal-wide .modal-actions { margin-top: 8px; }
.modal-wide .disclaimer { margin-bottom: 0; }
.modal::backdrop { background: rgba(13,21,36,.48); backdrop-filter: blur(3px); }
.modal form { display: block; }
.modal-heading { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 16px; }
.modal-heading h2 { margin: 0; color: #26374e; font: 700 16px Manrope, sans-serif; }
.modal-heading .eyebrow { margin-bottom: 4px; }
.modal .icon-button { width: 26px; height: 26px; font-size: 17px; }
.modal label { margin: 12px 0 6px; color: #617087; }
.modal input, .modal select { height: 38px; border-color: #e2e8f0; color: #405168; background: #fff; font-size: 10px; }
.modal select { padding-right: 8px; }
.modal input:focus, .modal select:focus { border-color: #82a6ea; }
.modal .form-error { color: #cb5261; }
.modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }
.modal-actions .button { min-height: 35px; font-size: 9px; }
.toast-region { position: fixed; z-index: 20; right: 22px; bottom: 20px; display: grid; gap: 8px; }
.toast { max-width: min(390px, calc(100vw - 40px)); padding: 12px 15px; border: 1px solid #e3eaf3; border-radius: 8px; color: #43536b; background: white; box-shadow: 0 12px 35px rgba(22,39,66,.14); font-size: 10px; line-height: 1.5; animation: appear .2s ease; }
.toast.error { border-color: #f2d5d9; color: #a24753; background: #fffafa; }

@media (min-width: 1480px) {
  .page-wrap { padding-right: 44px; padding-left: 44px; }
  .chart-wrap { height: 190px; }
}
@media (max-width: 1100px) {
  .sidebar { width: 194px; }
  .main-content { margin-left: 194px; }
  .page-wrap { padding-right: 23px; padding-left: 23px; }
  .topbar { padding-right: 23px; padding-left: 23px; }
  .dashboard-grid, .lower-grid { grid-template-columns: minmax(0, 1.4fr) minmax(240px, .9fr); }
  .governance-grid { grid-template-columns: 1fr; }
  .data-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 780px) {
  .sidebar { width: 60px; padding-right: 7px; padding-left: 7px; }
  .sidebar .brand { justify-content: center; padding: 0; font-size: 0; }
  .sidebar .brand-mark { flex: 0 0 25px; }
  .workspace-label { margin: 35px 0 10px; overflow: hidden; font-size: 0; }
  .nav-link { justify-content: center; gap: 0; padding: 0; font-size: 0; }
  .nav-icon { font-size: 18px; }
  .side-status { padding: 10px 0; }
  .side-status-top { justify-content: center; font-size: 0; }
  .side-status-note { display: none; }
  .profile-button { justify-content: center; padding: 10px 0; }
  .profile-copy, .profile-menu { display: none; }
  .main-content { margin-left: 60px; }
  .topbar { height: 56px; padding: 0 18px; }
  .breadcrumb { display: none; }
  .mobile-brand { display: flex; align-items: center; gap: 8px; color: #23334b; font: 800 15px Manrope, sans-serif; letter-spacing: -.5px; }
  .mobile-brand .brand-mark { width: 23px; height: 23px; border-radius: 6px; }
  .mobile-brand .brand-light { color: #5187e7; }
  .page-wrap { padding: 23px 17px; }
  .page-heading h1 { font-size: 22px; }
  .dashboard-grid, .lower-grid, .model-top-grid, .studio-grid { grid-template-columns: 1fr; }
  .movers-grid { grid-template-columns: 1fr; }
  .movers-heading { align-items: flex-start; flex-direction: column; }
  .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpi-card { min-height: 103px; }
  .signal-summary { min-height: 160px; }
  .chart-wrap { height: 190px; }
  .activity-panel { min-height: 170px; }
  .data-overview { grid-template-columns: 1fr; gap: 8px; }
  .data-overview-copy { padding: 10px 13px; }
  .filter-row { flex-wrap: wrap; }
  .search-field { width: 100%; }
  .filter-row select { flex: 1; min-width: 0; }
  .result-count { width: 100%; text-align: right; }
  .heading-row { align-items: flex-start; }
  .heading-row .button { min-height: 35px; padding: 0 9px; font-size: 9px; white-space: nowrap; }
  .page-footer { flex-direction: column; }
  .training-banner { flex-wrap: wrap; }
  .training-banner-progress { margin-left: auto; }
  .history-field { flex: 1 1 120px; }
  .data-browser-controls .button, .history-filter-row .button { flex: 1 1 auto; }
}
@media (max-width: 480px) {
  .auth-card { padding: 34px 25px 28px; }
  .auth-card h1 { font-size: 26px; }
  .market-pill { display: none; }
  .page-wrap { padding-right: 12px; padding-left: 12px; }
  .kpi-grid { gap: 8px; }
  .kpi-card { padding: 12px; }
  .kpi-label { font-size: 7px; }
  .kpi-value { font-size: 22px; }
  .chart-panel, .signal-panel, .table-panel, .activity-panel, .users-panel, .audit-panel { padding-right: 12px; padding-left: 12px; }
  .signal-summary { justify-content: space-between; }
  .donut { width: 115px; height: 115px; }
  .donut > div { width: 79px; height: 79px; }
  .data-card-grid { grid-template-columns: 1fr; }
  .ticker-detail-grid, .ticker-detail-lower { grid-template-columns: 1fr; }
  .ticker-indicator-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ticker-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ticker-stat-item { grid-template-columns: 1fr; align-items: start; gap: 4px; padding: 8px 0; }
  .ticker-stat-item strong { text-align: left; overflow-wrap: anywhere; }
  .ticker-page-heading { align-items: flex-start; }
  .ticker-title-row { gap: 8px; }
  .ticker-company-logo { width: 36px; height: 36px; flex-basis: 36px; }
  .ticker-page-actions { width: 100%; }
  .ticker-page-actions .history-field { flex: 1 1 190px; }
  .ticker-detail-chart { height: 210px; }
  .ticker-return-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .notice { align-items: flex-start; }
  .notice-close { padding-top: 0; }
  .model-meta { gap: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

.coming-soon-page {
  --coming-ink: #edf5f5;
  --coming-muted: #9aaab4;
  --coming-accent: #65dec6;
  min-width: 320px;
  min-height: 100vh;
  overflow-x: hidden;
  color: var(--coming-ink);
  background:
    radial-gradient(ellipse at 75% 45%, rgba(35, 101, 100, .15), transparent 39%),
    radial-gradient(ellipse at 18% 82%, rgba(33, 75, 96, .14), transparent 36%),
    #080d18;
}
.coming-soon-page::before {
  position: fixed;
  inset: 0;
  z-index: 0;
  background-image: linear-gradient(rgba(141, 174, 193, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(141, 174, 193, .035) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .7), transparent 86%);
  pointer-events: none;
  content: "";
}
.coming-soon-shell { position: relative; z-index: 1; display: flex; width: min(100% - 88px, 1280px); min-height: 100vh; flex-direction: column; margin: 0 auto; }
.coming-soon-header { display: flex; min-height: 96px; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(180, 203, 218, .1); }
.coming-soon-brand { display: inline-flex; align-items: center; gap: 10px; color: #eef5f8; font: 800 17px/1 "Segoe UI", sans-serif; letter-spacing: -.7px; text-decoration: none; }
.coming-soon-brand-accent { color: #83b9ff; }
.coming-soon-mark { display: grid; width: 30px; height: 30px; grid-template-columns: repeat(2, 1fr); align-items: end; gap: 3px; padding: 5px; border: 1px solid rgba(161, 218, 227, .19); border-radius: 9px; background: linear-gradient(145deg, #193c4b, #14253a); box-shadow: 0 0 22px rgba(80, 207, 190, .12); }
.coming-soon-mark span { border-radius: 2px 2px 1px 1px; background: linear-gradient(180deg, #8af1d5, #48a9c1); }
.coming-soon-mark span:nth-child(1) { height: 36%; opacity: .63; }
.coming-soon-mark span:nth-child(2) { height: 57%; opacity: .78; }
.coming-soon-mark span:nth-child(3) { height: 72%; opacity: .88; }
.coming-soon-mark span:nth-child(4) { height: 100%; }
.coming-soon-status { display: inline-flex; align-items: center; gap: 9px; padding: 9px 12px; border: 1px solid rgba(139, 179, 185, .16); border-radius: 999px; color: #a7b8bf; background: rgba(15, 28, 39, .62); font-size: 8px; font-weight: 700; letter-spacing: 1.15px; }
.coming-soon-status > span, .coming-soon-footer-note > span { width: 6px; height: 6px; border-radius: 50%; background: var(--coming-accent); box-shadow: 0 0 12px rgba(101, 222, 198, .75); }
.coming-soon-main { display: grid; min-height: min(740px, calc(100vh - 156px)); flex: 1; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); align-items: center; gap: 2.5%; padding: 54px 0; }
.coming-soon-copy { position: relative; z-index: 2; padding: 18px 0; }
.coming-soon-kicker { display: flex; align-items: center; gap: 10px; margin: 0 0 26px; color: #7ddfc9; font-size: 9px; font-weight: 700; letter-spacing: 2.1px; }
.coming-soon-kicker > span { width: 24px; height: 1px; background: #64d9c2; box-shadow: 0 0 10px rgba(100, 217, 194, .55); }
.coming-soon-copy h1 { margin: 0; color: #edf4f6; font: 650 clamp(48px, 6.2vw, 82px)/1.01 "Segoe UI", "Aptos", sans-serif; letter-spacing: -5.3px; }
.coming-soon-copy h1 > span { color: #72dfc9; text-shadow: 0 0 45px rgba(82, 214, 190, .14); }
.coming-soon-description { max-width: 405px; margin: 25px 0 0; color: #a1b0bb; font-size: 14px; line-height: 1.85; }
.coming-soon-promise { display: flex; align-items: center; gap: 12px; margin-top: 37px; color: #94a5b1; font-size: 10px; line-height: 1.8; }
.coming-soon-promise strong { color: #d3dfe2; font-weight: 600; }
.coming-soon-promise-icon { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border: 1px solid rgba(106, 211, 191, .22); border-radius: 10px; color: #78e2ca; background: rgba(44, 113, 107, .14); font-size: 14px; }
.coming-soon-art { position: relative; display: grid; min-height: 480px; place-items: center; overflow: hidden; isolation: isolate; }
.coming-soon-art::before { position: absolute; z-index: -1; width: 80%; aspect-ratio: 1; border: 1px solid rgba(144, 187, 200, .065); border-radius: 50%; background: repeating-radial-gradient(circle, transparent 0, transparent 57px, rgba(137, 183, 197, .055) 58px, transparent 59px); content: ""; }
.coming-soon-orbit { position: absolute; left: 50%; top: 50%; border: 1px solid rgba(120, 177, 190, .12); border-radius: 50%; transform: translate(-50%, -50%) rotate(-18deg); animation: orbit-drift 32s linear infinite; }
.coming-soon-orbit-outer { width: 88%; height: 55%; }
.coming-soon-orbit-inner { width: 66%; height: 43%; border-color: rgba(111, 209, 195, .16); transform: translate(-50%, -50%) rotate(25deg); animation-direction: reverse; animation-duration: 24s; }
.coming-soon-halo { position: absolute; left: 51%; top: 45%; width: 280px; height: 280px; border-radius: 50%; background: rgba(49, 175, 153, .12); filter: blur(72px); transform: translate(-50%, -50%); animation: halo-breathe 7s ease-in-out infinite; }
.coming-soon-sun { position: absolute; left: 52%; top: 46%; width: 116px; height: 116px; border: 1px solid rgba(185, 255, 232, .62); border-radius: 50%; background: radial-gradient(circle at 38% 34%, #c3ffe9 0, #82e9d1 8%, #3caa9f 28%, #164451 68%, rgba(14, 33, 47, .15) 74%); box-shadow: 0 0 30px rgba(85, 223, 195, .38), 0 0 100px rgba(55, 190, 166, .2), inset -16px -18px 30px rgba(5, 16, 29, .45); transform: translate(-50%, -50%); animation: sun-float 6s ease-in-out infinite; }
.coming-soon-horizon { position: absolute; left: 9%; right: 7%; top: 66%; height: 1px; background: linear-gradient(90deg, transparent, rgba(105, 226, 200, .55), rgba(91, 159, 190, .32), transparent); background-size: 200% 100%; box-shadow: 0 0 18px rgba(78, 217, 191, .28); animation: horizon-glow 8s ease-in-out infinite; }
.coming-soon-chart { position: absolute; inset: auto 0 10%; width: 100%; height: 62%; overflow: visible; }
.coming-soon-chart path:first-of-type { animation: chart-fill-breathe 7s ease-in-out infinite; }
.coming-soon-chart path:nth-of-type(2) { stroke-dasharray: 620; stroke-dashoffset: 620; animation: chart-line-draw 2.8s .25s cubic-bezier(.45, 0, .2, 1) forwards, chart-line-glow 5s 3.05s ease-in-out infinite; }
.coming-soon-chart path:nth-of-type(3) { stroke-dasharray: 620; stroke-dashoffset: 620; animation: chart-line-draw 2.8s .25s cubic-bezier(.45, 0, .2, 1) forwards; }
.coming-soon-chart circle:first-of-type { transform-box: fill-box; transform-origin: center; animation: chart-endpoint-pulse 2.8s 3.05s ease-out infinite; }
.coming-soon-chart circle:last-of-type { transform-box: fill-box; transform-origin: center; animation: chart-endpoint-ring 2.8s 3.05s ease-out infinite; }
.coming-soon-art-label, .coming-soon-coordinate { animation: label-glimmer 6s ease-in-out infinite; }
.coming-soon-label-bottom { animation-delay: 1.4s; }
.coming-soon-coordinate { animation-delay: 2.8s; }
.coming-soon-art-label { position: absolute; color: #91a9b5; font-size: 8px; font-weight: 700; letter-spacing: 1.8px; }
.coming-soon-label-top { top: 13%; right: 13%; }
.coming-soon-label-bottom { bottom: 11%; left: 9%; color: #6fdac4; }
.coming-soon-coordinate { position: absolute; right: 9%; bottom: 10%; color: #6f8796; font: 8px/1.5 Consolas, monospace; letter-spacing: .6px; }
@keyframes orbit-drift { from { rotate: 0deg; } to { rotate: 360deg; } }
@keyframes halo-breathe { 0%, 100% { opacity: .7; scale: .92; } 50% { opacity: 1; scale: 1.1; } }
@keyframes sun-float { 0%, 100% { translate: 0 0; scale: 1; } 50% { translate: 0 -9px; scale: 1.035; } }
@keyframes horizon-glow { 0%, 100% { background-position: 0% 50%; opacity: .65; } 50% { background-position: 100% 50%; opacity: 1; } }
@keyframes chart-line-draw { to { stroke-dashoffset: 0; } }
@keyframes chart-line-glow { 0%, 100% { opacity: .4; } 50% { opacity: .8; } }
@keyframes chart-fill-breathe { 0%, 100% { opacity: .6; } 50% { opacity: 1; } }
@keyframes chart-endpoint-pulse { 0%, 100% { opacity: .8; scale: 1; } 50% { opacity: 1; scale: 1.4; } }
@keyframes chart-endpoint-ring { 0% { opacity: .5; scale: .65; } 75%, 100% { opacity: 0; scale: 1.8; } }
@keyframes label-glimmer { 0%, 100% { opacity: .72; } 50% { opacity: 1; } }
.coming-soon-footer { display: flex; min-height: 60px; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid rgba(180, 203, 218, .1); color: #71838f; font-size: 8px; font-weight: 700; letter-spacing: 1.15px; }
.coming-soon-footer > span:first-child > span { color: #8db4d9; }
.coming-soon-footer-note { display: inline-flex; align-items: center; gap: 8px; color: #8ea09e; }
.coming-soon-footer-note > span { width: 5px; height: 5px; }
.coming-soon-footer-year { color: #657985; font-weight: 500; }
@media (min-width: 1500px) {
  .coming-soon-main { min-height: min(850px, calc(100vh - 156px)); }
}
@media (max-width: 900px) {
  .coming-soon-shell { width: min(100% - 48px, 700px); }
  .coming-soon-main { min-height: auto; grid-template-columns: 1fr; gap: 0; padding: 70px 0 34px; }
  .coming-soon-copy { padding: 14px 0 0; }
  .coming-soon-copy h1 { font-size: clamp(54px, 10vw, 76px); }
  .coming-soon-art { min-height: 390px; margin-top: -1px; }
  .coming-soon-description { max-width: 460px; }
}
@media (max-width: 520px) {
  .coming-soon-shell { width: calc(100% - 36px); }
  .coming-soon-header { min-height: 74px; }
  .coming-soon-brand { font-size: 15px; }
  .coming-soon-mark { width: 27px; height: 27px; }
  .coming-soon-status { max-width: 185px; padding: 8px 9px; font-size: 7px; letter-spacing: .7px; }
  .coming-soon-main { padding-top: 62px; }
  .coming-soon-kicker { margin-bottom: 22px; font-size: 8px; letter-spacing: 1.55px; }
  .coming-soon-copy h1 { font-size: clamp(49px, 13vw, 65px); letter-spacing: -3.8px; }
  .coming-soon-description { margin-top: 20px; font-size: 12px; }
  .coming-soon-promise { margin-top: 27px; }
  .coming-soon-art { min-height: 300px; margin: 4px -15px 0; }
  .coming-soon-sun { width: 88px; height: 88px; }
  .coming-soon-art-label { font-size: 7px; letter-spacing: 1.1px; }
  .coming-soon-footer { min-height: 54px; font-size: 7px; letter-spacing: .7px; }
  .coming-soon-footer-note { gap: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  .coming-soon-page *, .coming-soon-page *::before, .coming-soon-page *::after { animation: none !important; scroll-behavior: auto !important; transition: none !important; }
}

:root {
  color-scheme: dark;
  --ink: #e4eaf4;
  --muted: #a0aec2;
  --soft: #8998ae;
  --line: #273247;
  --canvas: #0c1220;
  --white: #141d2d;
  --navy: #0a101d;
  --navy-soft: #17243a;
  --blue: #528df6;
  --blue-dark: #3d7de9;
  --teal: #35cbb0;
  --green: #42d4a0;
  --green-bg: #14352f;
  --red: #ff8290;
  --red-bg: #3a222d;
  --amber: #ffb84d;
  --shadow: 0 10px 28px rgba(0, 0, 0, .14);
}

body { color: var(--ink); background: var(--canvas); }
.topbar { border-bottom-color: #222c3f; background: rgba(15, 23, 37, .95); }
.breadcrumb { color: #8492a8; }
.breadcrumb strong { color: #d3deec; }
.crumb-slash { color: #526179; }
.market-pill { color: #a2b1c6; }
.icon-button { border-color: #2b374d; color: #afbdd0; background: #172134; }
.icon-button:hover { border-color: #47618a; color: #86adfb; }
.top-avatar { color: #c2d5fa; background: #263857; }
.mobile-brand { color: #e3eaf5; }
.mobile-brand .brand-light { color: #83aefa; }
.page-heading h1 { color: #e5ecf6; }
.subheading { color: #9aa8bb; }
.eyebrow { color: #95a5bb; }
.notice { border-color: #403821; color: #d5c292; background: #211d15; }
.notice strong { color: #f0dda8; }
.notice-icon { border-color: #79653b; color: #e0b75f; }
.notice-close { color: #c4ae77; }
.notice-neutral { border-color: #2a374c; color: #a4b2c5; background: #141e2e; }
.notice-neutral strong { color: #d3dfed; }
.notice-neutral .notice-icon { border-color: #465b7b; color: #91b6f0; }
.training-banner { border-color: #2a3d5d; background: #141e30; }
.training-banner-icon { color: #90b5fa; background: #213758; }
.training-banner-copy strong { color: #d5e0f0; }
.training-banner-copy span { color: #a0afc4; }
.training-banner-progress { color: #9eb0ca; }
.training-banner.is-failed { border-color: #59313b; background: #291a24; }
.training-banner.is-failed .training-banner-icon { color: #ff9aa5; background: #40212c; }
.kpi-card, .panel { border-color: #263247; background: #141d2d; box-shadow: var(--shadow); }
.kpi-label { color: #9cabc0; }
.kpi-value { color: #e4ebf6; }
.kpi-foot, .kpi-muted { color: #99a8bd; }
.icon-blue { color: #91b7ff; background: #1d2c46; }
.icon-green { color: #6eddb7; background: #18352f; }
.icon-violet { color: #b6a8ff; background: #292541; }
.icon-amber { color: #ffd17a; background: #352b1d; }
.icon-rose { color: #ff9fac; background: #38232d; }
.icon-teal { color: #75ddd2; background: #183431; }
.panel-heading h2 { color: #e1e9f4; }
.movers-heading h2 { color: #e1e9f4; }
.mover-row { border-top-color: #29364b; color: #dce5f2; }
.mover-row:hover { background: #19263a; }
.mover-rank, .mover-company small, .movers-note { color: #9eacc0; }
.mover-company strong { color: #dce5f2; }
.chart-period { color: #a1afc1; }
.chart-period span { color: #56647a; }
.chart-summary strong { color: #edf2fa; }
.chart-summary span { color: #a3b0c2; }
.chart-axis { color: #99a8bc; }
.chart-range-controls button { color: #9eacc0; }
.chart-range-controls button:hover { color: #eef4ff; background: #1d2a3e; }
.chart-range-controls button[aria-pressed="true"] { border-color: #35558f; color: #b6ceff; background: #1d304f; }
.history-field { color: #9eacc0; }
.history-field select, .history-field input { border-color: #303c51; color: #d5dfec; background: #111a29; }
.history-field select:focus, .history-field input:focus { border-color: #638fdf; }
.history-summary, .data-browser-meta, .history-pagination { color: #a0aec0; }
.ticker-link { color: #a8c3f5; }
.ticker-link:hover, .ticker-link:focus-visible { color: #d0e0ff; }
.ticker-return-grid > div, .fundamentals-empty { border-color: #2a374c; background: #111a29; }
.ticker-return-grid span, .fundamentals-empty p { color: #9eacc0; }
.ticker-stat-item { border-bottom-color: #29364b; }
.ticker-stat-label, .ticker-stat-note { color: #9eacc0; }
.ticker-stat-item strong { color: #dce5f1; }
.fundamentals-empty strong { color: #d1dceb; }
.fundamentals-icon { color: #b6ceff; background: #1d2c46; }
.ticker-detail-metrics .score-line { border-top-color: #29364b; }
.donut-track { stroke: #f0a83f; }
.donut-up { stroke: #39c996; }
.donut-down { stroke: #f27687; }
.donut-center { background: #141d2d; }
.donut strong { color: #e8eef8; }
.donut-center small { color: #9eacc0; }
.legend-list > div { color: #a6b3c5; }
.legend-list strong { color: #e0e8f3; }
.legend-dot.green { background: #39c996; }
.legend-dot.red { background: #f27687; }
.legend-dot.gray, .legend-dot.orange { background: #f0a83f; }
.signal-footnote { border-top-color: #273348; color: #a1afc2; }
.text-button { color: #8cb2fa; }
.text-button:hover { color: #c1d6ff; }
th { color: #a0aec0; }
td { border-top-color: #253146; color: #adbacb; }
.company-monogram { border-color: #30405a; color: #b5c5dc; background: #1c293c; }
.company-copy strong { color: #e0e8f3; }
.company-copy small { color: #a1afc1; }
.price-cell { color: #e1e9f4; }
.movement { width: 84px; min-width: 84px; height: 24px; flex: 0 0 84px; justify-content: center; gap: 5px; padding: 0 5px; border: 1px solid transparent; border-radius: 5px; font-size: 8px; line-height: 1; white-space: nowrap; }
.movement-up { border-color: #245441; color: #75e1b5; background: #17372e; }
.movement-down { border-color: #603541; color: #ff9aa5; background: #3a232d; }
.movement-flat { border-color: #67491f; color: #ffc46e; background: #3b2b18; }
.action-buy { border-color: #27604c; color: #77dfb5; background: #173a32; }
.action-hold { border-color: #745a30; color: #ffd17a; background: #362b1c; }
.action-sell { border-color: #75414c; color: #ff9ca7; background: #3b242f; }
.action-unavailable { border-color: #3b4960; color: #aab8ca; background: #202b3e; }
.ticker-indicator-card { border-color: #2a374c; background: #111a29; }
.ticker-indicator-card span { color: #a1afc1; }
.ticker-indicator-card strong { color: #e1e9f4; }
.confidence { color: #b4c0d0; }
.confidence small { color: #9eacc0; }
.confidence-track { background: #2a3549; }
.confidence-track::-webkit-progress-bar { background: #2a3549; }
.confidence-track::-webkit-progress-value { background: #6b9cf2; }
.confidence-track::-moz-progress-bar { background: #6b9cf2; }
.positive { color: #63d8aa !important; }
.negative { color: #ff8995 !important; }
.neutral { color: #a8b5c8 !important; }
.empty-cell { color: #a0aec0; }
.activity-item, .audit-event { border-bottom-color: #253146; }
.activity-icon, .audit-event-icon { color: #9dbcf1; background: #202e44; }
.activity-copy strong, .audit-event-copy strong { color: #d0dbea; }
.activity-copy small, .audit-event-copy span { color: #a3b0c1; }
.audit-event-copy small { color: #98a6ba; }
.page-footer { color: #98a7bb; }
.search-field, .filter-row select { border-color: #303c51; color: #d5dfec; background: #111a29; }
.search-field input { color: #dce5f1; }
.search-field input::placeholder { color: #8797ac; }
.result-count { color: #9eacc0; }
.disclaimer { color: #a0aec0; }
.model-status-line h2 { color: #e2eaf5; }
.model-status-card > p:not(.eyebrow) { color: #a2b0c3; }
.training-progress-panel { border-top-color: #29364b; }
.progress-heading { color: #a5b3c6; }
.progress-heading strong { color: #a5c4fb; }
.training-progress-panel > p { color: #b0bdcf; }
.training-details { border-top-color: #29364b; }
.training-details summary { color: #a2c2f7; }
.details-chevron { color: #a6b4c8; }
.training-log-event { border-color: #2a3549; background: #111a28; }
.training-log-event header { color: #9aaabe; }
.training-log-event header strong { color: #a9c5f3; }
.training-log-event p { color: #cfdae8; }
.training-log-event pre { color: #bbc8d8; background: #1c2738; }
.model-meta { border-top-color: #29364b; }
.model-meta span, .score-line span { color: #a0aec1; }
.model-meta strong, .score-line strong { color: #cbd6e5; }
.score-main strong { color: #edf2fa; }
.score-main span { color: #a2b0c2; }
.score-line { border-top-color: #29364b; }
.method-number { border-color: #303c52; color: #aac3ec; background: #1a2639; }
.method-list strong { color: #d5dfec; }
.method-list p { color: #a7b4c5; }
.feature-count, .feature-group-heading span { border-color: #303c51; color: #a5b3c6; background: #192437; }
.feature-panel-intro, .feature-roadmap p { color: #a0aec0; }
.feature-group-heading, .feature-roadmap strong { color: #d2ddeb; }
.feature-chip { border-color: #2a374c; background: #111a29; }
.feature-chip strong { color: #cbd6e5; }
.feature-chip code { color: #9eacc0; }
.feature-priority { border-color: #303c52; color: #aac3ec; background: #1a2639; }
.data-overview-copy { border-color: #29354a; background: #141d2d; }
.data-overview-copy strong { color: #e2eaf5; }
.data-overview-copy span:last-child, .data-card-foot { color: #a2afc0; }
.data-card h2 { color: #e0e8f3; }
.data-card p { color: #a8b5c6; }
.data-card-foot { border-top-color: #29354a; }
.source-type { color: #a4b1c2; }
.role-badge { color: #a9c6f4; background: #202f45; }
.role-badge.admin { color: #c0b5ff; background: #2b2742; }
.role-badge.analyst { color: #7ddcc6; background: #1a3634; }
.role-badge.viewer { color: #c0cada; background: #263145; }
.active-status { color: #75dcb7; }
.active-status.inactive { color: #ff9ca6; }
.table-action { border-color: #334058; color: #bfcbda; background: #1a2537; }
.table-action:hover { border-color: #5574a6; color: #b1ccfc; }
.role-key { color: #b1bdcd; background: #192437; }
.role-key strong { color: #e1e8f2; }
.audit-foot { border-top-color: #29364b; color: #a4b1c1; }
.modal { border-color: #2e3a50; color: #e2eaf5; background: #141d2d; box-shadow: 0 24px 80px rgba(0, 0, 0, .42); }
.modal-heading h2 { color: #e4ebf5; }
.modal label { color: #c3cfde; }
.modal input, .modal select { border-color: #35425a; color: #e2eaf5; background: #101827; }
.modal input:focus, .modal select:focus { border-color: #638fdf; }
.button-secondary { border-color: #35425a; color: #d0dae8; background: #1a2639; }
.button-secondary:hover { border-color: #52698c; background: #223149; }
.toast { border-color: #334057; color: #d1dce9; background: #182336; box-shadow: 0 12px 35px rgba(0, 0, 0, .28); }
.toast.error { border-color: #63404a; color: #ffadb5; background: #2c1c25; }

@media (max-width: 780px) {
  .feature-transparency { grid-template-columns: 1fr; }
  .mobile-brand { color: #e3eaf5; }
}
