:root {
  color-scheme: dark;
  --bg: #07121f;
  --panel: #112337;
  --panel-hi: #152b40;
  --line: #233a50;
  --text: #ecf5fa;
  --muted: #91a6b7;
  --subtle: #687f90;
  --mint: #60e0af;
  --cyan: #7ac7ef;
  --amber: #ffc97e;
  --red: #ff9a9a;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-synthesis: none;
  -webkit-tap-highlight-color: transparent;
}
* { box-sizing: border-box; }
html { background: var(--bg); overscroll-behavior-y: none; }
body { margin: 0; min-width: 320px; color: var(--text); background: radial-gradient(circle at 80% -10%,#17344c 0,transparent 30%),var(--bg); }
button, input { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, a:focus-visible { outline: 3px solid var(--cyan); outline-offset: 2px; }
button:disabled { opacity: .45; cursor: not-allowed; }
a { color: var(--cyan); text-decoration: none; }
.app { max-width: 780px; min-height: 100vh; margin: 0 auto; position: relative; }
.topbar {
  height: calc(66px + var(--safe-top)); padding: var(--safe-top) 20px 0;
  display: flex; align-items: center; justify-content: space-between;
  background: rgba(7,18,31,.94); border-bottom: 1px solid rgba(142,183,209,.08);
  position: sticky; top: 0; z-index: 30; backdrop-filter: blur(20px);
}
.brand { display: flex; align-items: center; gap: 11px; }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; background: linear-gradient(155deg,#2eb58f,#205a73); color: white; font-weight: 900; font-size: 24px; box-shadow: 0 0 20px rgba(59,196,165,.16); }
.brand-words { display: flex; flex-direction: column; gap: 3px; }
.brand-words strong { font-size: 15px; letter-spacing: .8px; }
.brand-words strong span { color: var(--mint); }
.brand-words small { color: #8098a9; font-size: 8px; font-weight: 800; letter-spacing: 1.6px; }
.icon-button { display:grid;place-items:center; width:39px;height:39px; border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text); }
.icon-button svg {width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.icon-button.loading svg{animation:spin .9s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.page { padding: 18px 18px calc(104px + var(--safe-bottom)); }
.status-ribbon { display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);margin:0 1px 15px;min-height:18px; }
.status-indicator{width:7px;height:7px;border-radius:99px;background:#d2a35d;box-shadow:0 0 0 3px rgba(210,163,93,.12);}
.status-indicator.good{background:var(--mint);box-shadow:0 0 0 3px rgba(96,224,175,.12);}
.status-indicator.bad{background:#f49292;box-shadow:0 0 0 3px rgba(244,146,146,.12);}
.status-clock{margin-left:auto;font-variant-numeric:tabular-nums;font-size:10px;color:var(--subtle);}
.hero{min-height:217px;padding:22px 21px 21px;border:1px solid #31566b;position:relative;overflow:hidden;border-radius:22px;background:radial-gradient(circle at 105% 0, rgba(77,179,170,.23),transparent 45%),linear-gradient(135deg,#173149,#0e2536 65%,#0e2634);box-shadow:0 10px 40px rgba(0,0,0,.12); }
.hero-kicker{position:relative;z-index:2;font-size:10px;font-weight:800;letter-spacing:1.4px;color:#9cdeca;display:flex;align-items:center;gap:7px;white-space:nowrap;}
.tiny-glow{background:var(--mint);width:6px;height:6px;border-radius:50%;box-shadow:0 0 10px var(--mint);}
.version{color:#729aa8;margin-left:auto;font-size:9px;letter-spacing:0;}
.hero h1{margin:18px 0 9px;font-size:clamp(27px,8vw,36px);font-weight:790;letter-spacing:-1.2px;line-height:1.13;position:relative;z-index:2;}
.hero h1 em{color:var(--mint);font-style:normal;}
.hero p{max-width:295px;font-size:12px;line-height:1.6;color:#b0c5d3;margin:0 0 16px;position:relative;z-index:2;}
.hero-tags{display:flex;gap:6px;flex-wrap:wrap;position:relative;z-index:2;}
.hero-tags span{font-size:8px;letter-spacing:.2px;font-weight:800;color:#bcd6da;background:rgba(11,34,44,.8);border:1px solid rgba(110,171,171,.26);border-radius:6px;padding:7px 8px;}
.hero-decoration{position:absolute;right:-11px;bottom:37px;opacity:.25;display:flex;align-items:flex-end;gap:8px;transform:rotate(-15deg);}
.hero-decoration i{width:10px;background:#5cd6b5;border-radius:4px;}
.hero-decoration i:nth-child(1){height:29px}.hero-decoration i:nth-child(2){height:43px}.hero-decoration i:nth-child(3){height:24px}.hero-decoration i:nth-child(4){height:74px}.hero-decoration i:nth-child(5){height:61px}.hero-decoration i:nth-child(6){height:103px}.hero-decoration i:nth-child(7){height:84px}
.info-message{margin:15px 0 24px;background:#16304a;border:1px solid #2a5471;color:#bcd9e8;border-radius:12px;padding:12px 14px;line-height:1.5;font-size:12px;}
.info-message.alert{background:#38292d;border-color:#6c4249;color:#ffb7b5;}
.info-message.ok{background:#13352e;border-color:#235c4d;color:#b7e8d4;}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:26px 0 13px;}
.section-heading h2{font-size:16px;letter-spacing:-.2px;margin:0;font-weight:750;}
.section-sub{letter-spacing:1px;font-size:9px;color:#6d9d9e;font-weight:800;white-space:nowrap;}
.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.metric{border:1px solid #234156;border-radius:16px;padding:15px 14px;min-height:127px;background:linear-gradient(146deg,#132c41,#112439);display:flex;flex-direction:column;align-items:flex-start;}
.metric-name{font-size:11px;color:#98b0c1;}
.metric-value{margin:9px 0 1px;font-size:35px;letter-spacing:-1.3px;font-weight:760;line-height:1.15;color:#efffff;font-variant-numeric:tabular-nums;}
.metric:nth-child(2) .metric-value{color:var(--mint);}
.metric:nth-child(3) .metric-value{color:var(--cyan);}
.metric-value.value-small{font-size:19px;letter-spacing:.4px;color:#ffba9e;margin:14px 0 12px;}
.metric-detail{font-size:10px;color:#738fa3;margin-top:auto;}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;}
.list-panel{overflow:hidden;}
.source-row{padding:14px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);}
.source-row:last-child{border-bottom:0;}
.source-icon{background:#19384c;width:35px;height:35px;border-radius:10px;display:grid;place-items:center;color:var(--cyan);font-weight:850;font-size:11px;flex-shrink:0;}
.source-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0;}
.source-info strong{font-size:12px;}
.source-info small{color:var(--muted);font-size:10px;}
.source-health{font-size:10px;font-weight:750;color:var(--mint);}
.source-health.warn{color:var(--amber);}
.empty-list{padding:23px 18px;font-size:12px;line-height:1.6;color:var(--muted);text-align:center;}
.teaser-panel{padding:17px;}
.teaser-head{display:flex;align-items:center;gap:11px;}
.round-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#1e4b52;color:var(--mint);font-size:20px;}
.teaser-head div{display:flex;flex-direction:column;gap:4px;}
.teaser-head strong{font-size:13px;}
.teaser-head small{font-size:10px;color:var(--muted);}
.teaser-panel p{font-size:12px;color:#b1c2d0;line-height:1.65;margin:14px 0 16px;}
.outline-button,.primary-button,.quiet-button{border-radius:11px;padding:11px 14px;font-size:12px;font-weight:750;}
.outline-button{width:100%;background:transparent;border:1px solid #3a6a7a;color:#b9dfda;}
.primary-button{width:100%;background:linear-gradient(90deg,#61d9ad,#8aedd0);color:#071c21;border:0;}
.quiet-button{background:transparent;border:none;color:#99bbc4;}
.text-button{border:0;background:transparent;color:var(--mint);font-size:11px;}
.context-line{color:#8faabd;font-size:12px;line-height:1.6;margin:8px 0 18px;}
.filter-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-bottom:17px;padding-bottom:4px;}
.filter-chip{border:1px solid #29465a;background:#13293b;padding:9px 13px;border-radius:30px;color:#a8c0ce;white-space:nowrap;font-size:11px;}
.filter-chip.selected{border-color:#3e9a86;background:#204c48;color:#b6f1df;}
.radar-list,.expert-list{display:flex;flex-direction:column;gap:11px;}
.radar-card{border:1px solid #284458;background:linear-gradient(142deg,#162f42,#112538);border-radius:16px;padding:16px;}
.card-row{display:flex;align-items:center;gap:8px;justify-content:space-between;margin-bottom:11px;}
.radar-type{background:#23443f;color:#92e2ca;font-size:10px;padding:5px 8px;border-radius:7px;font-weight:700;}
.radar-type.uncertain{background:#4b3c28;color:#ffdc9d;}
.radar-number{color:#7893a2;font-size:11px;font-variant-numeric:tabular-nums;}
.radar-card h3{margin:0 0 10px;font-size:14px;line-height:1.48;overflow-wrap:anywhere;font-weight:720;}
.radar-meta{font-size:11px;color:var(--muted);line-height:1.5;margin:0 0 12px;}
.radar-badges{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 13px;}
.radar-badges span{font-size:10px;color:#a4d4d0;border:1px solid #33585d;border-radius:7px;padding:5px 7px;}
.radar-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:11px;gap:12px;}
.radar-foot small{color:#ffc88d;font-size:10px;}
.radar-foot a{color:var(--mint);font-size:11px;font-weight:650;}
.small-banner{background:#163247;border:1px solid #28536a;padding:13px;border-radius:12px;color:#afd1df;font-size:12px;line-height:1.6;margin-bottom:14px;}
.expert-card{border:1px solid #2b465a;background:#12273a;border-radius:15px;overflow:hidden;}
.expert-toggle{width:100%;text-align:left;padding:16px;display:flex;align-items:center;gap:12px;border:0;background:transparent;color:var(--text);}
.expert-avatar{width:36px;height:36px;border-radius:11px;background:#1d4350;display:grid;place-items:center;color:var(--mint);font-size:17px;}
.expert-title{display:flex;flex-direction:column;gap:4px;flex:1;}
.expert-title strong{font-size:13px;}
.expert-title small{font-size:10px;color:var(--muted);}
.chevron{color:#83a0ae;font-size:18px;}
.expert-content{padding:2px 16px 16px;color:#c8d7e1;font-size:12px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;}
.state-panel{padding:2px 14px;}
.state-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 1px;border-bottom:1px solid var(--line);font-size:12px;}
.state-line:last-child{border-bottom:0;}
.state-line span{color:var(--muted);}
.state-line strong{text-align:right;font-size:11px;color:var(--mint);}
.tone-warning{color:var(--amber)!important;}
.tone-danger{color:var(--red)!important;}
.safety-card{margin-top:18px;background:linear-gradient(160deg,#2b2d36,#181f30);border:1px solid #50424d;border-radius:16px;padding:22px 19px;}
.safety-icon{font-size:29px;color:#f0bb96;}
.safety-card h3{font-size:15px;margin:12px 0 9px;}
.safety-card p,.account-panel p{font-size:12px;line-height:1.75;color:#c3bac0;}
.account-panel{padding:15px;}
.account-panel .quiet-button{width:100%;margin-top:9px;}
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:780px;height:calc(69px + var(--safe-bottom));padding:7px 9px var(--safe-bottom);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:rgba(7,18,31,.97);backdrop-filter:blur(24px);border-top:1px solid #1d3445;z-index:30;}
.nav-button{border:0;background:transparent;display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;color:#738da0;font-size:10px;font-weight:650;border-radius:12px;}
.nav-button.selected{color:var(--mint);background:#142f37;}
.nav-symbol{font-size:20px;height:24px;line-height:24px;font-weight:700;}
.view[hidden]{display:none;}
.login-dialog{border:1px solid #2d5862;border-radius:21px;background:#102638;color:var(--text);max-width:min(420px,calc(100% - 28px));width:100%;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.6);}
.login-dialog::backdrop{background:rgba(2,9,18,.85);backdrop-filter:blur(4px);}
.login-form{padding:26px;display:flex;flex-direction:column;gap:13px;}
.login-symbol{background:#206052;border-radius:12px;width:43px;height:43px;display:grid;place-items:center;font-size:24px;}
.login-form h2{margin:4px 0 0;font-size:21px;}
.login-form p{color:#a8becd;font-size:12px;line-height:1.65;margin:0 0 3px;}
.login-form label{font-size:12px;color:#d6e2eb;font-weight:700;}
.login-form input{border:1px solid #456374;background:#081825;padding:13px;border-radius:10px;width:100%;color:white;}
.login-form .login-error{color:#ffb9ac;min-height:0;}
.login-form .quiet-button{margin-top:0;}
@media(min-width:700px){.page{padding-left:40px;padding-right:40px;}.hero{min-height:237px;padding:28px;}.hero h1{font-size:37px;}.metric-grid{grid-template-columns:repeat(4,1fr);}.hero-tags span{font-size:10px;}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;}}


/* v0.6: research workbench + optional licensed delayed-market watchlist. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
.bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr));padding-left:5px;padding-right:5px;}
.nav-button{font-size:9px;min-width:0;}
.nav-symbol{font-size:20px;}
.radar-controls{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:8px;margin:-4px 0 14px;}
.radar-controls input,.radar-controls select,.watchlist-bar input{
  background:#11283b;border:1px solid #365468;color:#eaf8fa;border-radius:10px;
  padding:12px 10px;min-width:0;width:100%;font-size:12px;
}
.radar-controls input::placeholder,.watchlist-bar input::placeholder{color:#8da3b4;}
.radar-controls select{padding:12px 6px;}
.radar-list .radar-foot{flex-wrap:wrap;}
.radar-save{background:#243a4d;border:1px solid #466170;padding:5px 9px;border-radius:7px;color:#c8e5ec;font-size:10px;}
.radar-save.saved{background:#285245;color:#a7f9d7;border-color:#568e75;}
.radar-note{font-size:11px;line-height:1.55;color:#adbdc8;margin:11px 0 0;border-top:1px solid var(--line);padding-top:10px;}
.market-warning{padding:16px;background:linear-gradient(135deg,#183246,#14293a);border-color:#3b5366;}
.market-warning strong{font-size:13px;display:block;line-height:1.5;}
.market-warning p{color:#aec5d0;font-size:12px;line-height:1.6;margin:9px 0;}
.market-warning small{color:#7599ac;}
.watchlist-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:13px;}
.watchlist-bar form{display:flex;gap:6px;flex:1;min-width:190px;}
.watchlist-bar input{flex:1;}
.watchlist-bar .outline-button{width:auto;white-space:nowrap;}
.quote-list{display:grid;gap:9px;}
.quote-card{border:1px solid #2f4c5d;border-radius:14px;background:#11283b;padding:14px;display:flex;gap:10px;align-items:center;justify-content:space-between;}
.quote-left{min-width:0;flex:1;display:flex;flex-direction:column;gap:5px;}
.quote-left strong{font-size:15px;letter-spacing:.4px;}
.quote-left small{font-size:10px;color:#90a9b9;white-space:normal;}
.quote-right{display:flex;align-items:end;gap:5px;flex-direction:column;}
.quote-right strong{font-size:18px;font-variant-numeric:tabular-nums;}
.quote-right small{font-size:11px;color:#83e4b8;font-variant-numeric:tabular-nums;}
.quote-right small.negative{color:#ffa3a3;}
.quote-status{font-size:9px;color:#d5bb84;margin-top:5px;white-space:nowrap;}
.quote-remove{border:0;border-radius:8px;padding:7px;background:#26394a;color:#8db0b7;font-size:11px;flex-shrink:0;}
.quote-status.valid{color:#7ce0bb;}
.research-links{padding:4px 14px;}
.research-links a{display:block;font-size:12px;padding:14px 1px;border-bottom:1px solid var(--line);line-height:1.5;}
.research-links a:last-child{border-bottom:0;}
.section-heading{scroll-margin-top:95px;}


.risk-lab{padding:16px;}
.risk-lab p{font-size:12px;color:#acc3d0;line-height:1.6;margin:0 0 14px;}
.risk-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;}
.risk-form label{font-size:11px;color:#c7dce6;display:flex;flex-direction:column;gap:6px;}
.risk-form input{width:100%;border-radius:9px;border:1px solid #446073;padding:12px;background:#0b1d2c;color:white;min-width:0;font-size:13px;}
.risk-form button{grid-column:1/-1;}
.risk-result{padding:13px;background:#193b42;border:1px solid #386669;border-radius:11px;margin:14px 0 8px;font-size:12px;line-height:1.7;color:#c1f0e3;}
.risk-result.risk-high{background:#392b31;border-color:#795252;color:#ffcac1;}
.risk-lab .risk-caveat{font-size:10px;color:#91a7b7;line-height:1.6;margin:12px 0 0;}


.alert-center{padding:15px;background:linear-gradient(145deg,#152c3e,#142e3c);}
.alert-center #alertText{font-size:12px;line-height:1.6;color:#d1e9f1;}
.alert-center .alert-actions{display:flex;align-items:center;gap:16px;margin:13px 0 7px;justify-content:space-between;}
.alert-center small{display:block;color:#8faebc;font-size:10px;line-height:1.5;border-top:1px solid var(--line);padding-top:10px;}
