:root { color-scheme:dark; --bg:#07110f; --panel:#101d19; --line:#294139; --text:#eef8f3; --muted:#a8bbb3; --accent:#67e8b2; --danger:#ffb4a8; }
* { box-sizing:border-box; }
html { scroll-padding-top:6rem; }
body { margin:0; min-height:100vh; background:radial-gradient(circle at 85% 0,#15382c 0,transparent 32%),var(--bg); color:var(--text); font:16px/1.5 system-ui,sans-serif; }
a { color:inherit; } button,input,select,textarea { font:inherit; } button,a,select,input,textarea { touch-action:manipulation; }
.skip { position:absolute; left:-9999px; } .skip:focus { left:1rem; top:1rem; z-index:5; padding:.6rem; background:#fff; color:#000; }
.portal-header { position:sticky; top:0; z-index:3; display:flex; align-items:center; gap:1rem; padding:1rem max(3vw,1rem); border-bottom:1px solid var(--line); background:#07110fee; backdrop-filter:blur(12px); }
.locale-control { display:flex; align-items:center; gap:.4rem; color:var(--muted); font-size:.78rem; }
.locale-control select { width:auto; padding:.45rem; }
.brand { margin-right:auto; font-weight:900; letter-spacing:.16em; text-decoration:none; }
.portal-layout { display:grid; grid-template-columns:200px minmax(0,1fr); gap:1.25rem; width:min(1880px,96vw); margin:2rem auto; }
.portal-nav { position:sticky; top:5.5rem; align-self:start; display:grid; gap:.45rem; }
.portal-nav button,.secondary,.primary { padding:.7rem .9rem; border:1px solid var(--line); border-radius:10px; background:var(--panel); color:var(--text); cursor:pointer; text-align:left; }
.portal-nav button[aria-current="page"],.primary { border-color:var(--accent); background:var(--accent); color:#042017; font-weight:800; }
button:disabled { cursor:not-allowed; opacity:.5; } :focus-visible { outline:3px solid #fff; outline-offset:3px; }
button:hover,.primary:hover,.secondary:hover,a:hover { border-color:var(--accent); }
#subscriber-content { min-width:0; }
.panel { padding:1.25rem; border:1px solid var(--line); border-radius:16px; background:var(--panel); }
.panel h1 { margin-top:0; } h1,h2,h3 { text-wrap:balance; scroll-margin-top:6rem; } .muted,.notice { color:var(--muted); } .error { color:var(--danger); }
.toolbar { display:flex; flex-wrap:wrap; gap:.75rem; align-items:end; margin-bottom:1rem; }
.toolbar label,.field { display:grid; gap:.35rem; color:var(--muted); }
input,select,textarea { width:100%; padding:.7rem; border:1px solid var(--line); border-radius:9px; background:var(--bg); color:var(--text); }
textarea { min-height:8rem; resize:vertical; }
.table-scroll { width:100%; max-width:100%; overflow-x:auto; border:1px solid var(--line); border-radius:11px; -webkit-overflow-scrolling:touch; }
.signal-cards { display:none; gap:.75rem; }
.mobile-signal-card { padding:1rem; border:1px solid var(--line); border-radius:14px; background:var(--panel); }
.mobile-signal-card header { display:flex; align-items:center; gap:.65rem; margin-bottom:.85rem; }
.mobile-signal-card header strong { margin-right:auto; color:var(--accent); font-size:1.2rem; }
.mobile-signal-card dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; margin:0 0 .9rem; }
.mobile-signal-card dl div { min-width:0; padding:.65rem; border:1px solid var(--line); border-radius:9px; }
.signal-table { width:max-content; min-width:100%; border-collapse:collapse; background:var(--panel); font-size:12px; }
.signal-table th,.signal-table td { padding:7px 9px; border-bottom:1px solid var(--line); text-align:left; line-height:1.25; white-space:nowrap; vertical-align:middle; }
.signal-table th { position:sticky; top:0; z-index:1; color:var(--muted); background:#0b1714; font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.signal-table td { font-variant-numeric:tabular-nums; }
.signal-table tbody tr:last-child td { border-bottom:0; }
.signal-table tbody tr:hover td { background:#15251f; }
.signal-table .ticker { color:var(--accent); font-weight:900; }
.signal-table .reason { max-width:150px; overflow:hidden; text-overflow:ellipsis; }
.signal-table .locked-cell { color:#ffd48a; text-align:center; }
.level-cell,.price-cell,.metric-cell { min-width:76px; }
.level-value,.level-pct,.price-cell small,.metric-cell small { display:block; }
.level-pct,.price-cell small,.metric-cell small { margin-top:2px; color:var(--muted); font-size:10px; }
.metric-value { text-decoration:underline dotted; text-underline-offset:3px; cursor:help; }
.metric-cell small.low-sample { color:#ffd48a; }
.win { color:var(--accent); }
.loss { color:var(--danger); }
.flat { color:var(--muted); }
.table-pill { display:inline-flex; align-items:center; min-height:20px; padding:2px 7px; border-radius:999px; background:#1a2b25; color:var(--muted); font-size:11px; font-weight:800; }
.table-pill.long,.table-pill.win { background:#67e8b21f; color:var(--accent); }
.table-pill.short,.table-pill.loss { background:#ffb4a81f; color:var(--danger); }
.table-pill.open { background:#ffd48a1f; color:#ffd48a; }
.table-pill.risk { background:#ffb4a81f; color:var(--danger); }
.table-pill.watch { background:#ffd48a1f; color:#ffd48a; }
.table-pill.stable { background:#67e8b21f; color:var(--accent); }
.table-pill.unavailable { background:#a8bbb31a; color:var(--muted); }
.status-stack { display:flex; align-items:flex-start; gap:4px; flex-direction:column; }
.structure-note { display:block; max-width:52ch; margin-top:.45rem; color:var(--muted); font-weight:400; }
.compact { padding:.35rem .55rem; border-radius:7px; font-size:11px; white-space:nowrap; }
.eyebrow { color:var(--accent); font-size:.75rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.levels,.stats-grid,.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; margin:1rem 0; }
.levels div,.stats-grid div,.detail-grid div { min-width:0; padding:.8rem; border:1px solid var(--line); border-radius:10px; }
dt,.label { color:var(--muted); font-size:.82rem; } dd { margin:.25rem 0 0; font-weight:800; overflow-wrap:anywhere; }
.actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1rem; }
.onboarding { max-width:1100px; }
.onboarding-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; align-items:start; }
.onboarding-steps h2 { margin:.65rem 0; }
.onboarding-steps details { margin:.85rem 0; color:var(--muted); }
.onboarding-steps summary { color:var(--text); cursor:pointer; font-weight:700; }
.onboarding-steps small { display:block; margin-top:.65rem; color:var(--muted); }
.step-number,.step-state { display:inline-flex; min-width:2rem; min-height:2rem; align-items:center; justify-content:center; padding:.25rem .55rem; border:1px solid var(--accent); border-radius:999px; color:var(--accent); font-weight:900; }
.step-state.done { background:var(--accent); color:#042017; }
.risk-warning { padding:.8rem; border-left:3px solid #ffd48a; background:#291f0f; color:#ffe4ad; }
.risk-consent { margin:1rem 0; align-items:flex-start; }
.form { display:grid; gap:1rem; max-width:700px; }
.check { display:flex; gap:.6rem; align-items:center; color:var(--text); } .check input { width:auto; }
.badge { padding:.2rem .55rem; border:1px solid var(--accent); border-radius:999px; color:var(--accent); font-size:.75rem; white-space:nowrap; }
.locked { border-color:#6d5b37; } .locked .badge { border-color:#ffd48a; color:#ffd48a; }
footer { width:min(1200px,94vw); margin:2rem auto; padding:1.5rem 0 3rem; color:var(--muted); border-top:1px solid var(--line); }
@media (max-width:800px) { .portal-layout { grid-template-columns:1fr; } .portal-nav { position:static; display:flex; overflow-x:auto; padding-bottom:.5rem; } .portal-nav button { flex:0 0 auto; } .table-scroll { display:none; } .signal-cards { display:grid; } .onboarding-steps { grid-template-columns:1fr; } }
@media (max-width:520px) { .portal-header { flex-wrap:wrap; } .portal-header strong { order:3; width:100%; } .levels,.stats-grid,.detail-grid { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; } }
