:root{color-scheme:dark;--bg: #0f1115;--surface: #171a21;--surface-high: #1f232c;--text: #e8eaed;--text-secondary: #9aa0ac;--primary: #3b82f6;--positive: #22c55e;--negative: #ef4444;--warning: #f59e0b;--info: #60a5fa;--outline: #2a2f3a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.page{max-width:480px;margin:0 auto;padding:24px 16px}.page.wide{max-width:1200px}.card{background:var(--surface);border-radius:12px;padding:16px;margin-bottom:16px}input,select{width:100%;padding:10px;border-radius:8px;border:1px solid var(--surface-high);background:var(--surface-high);color:var(--text);margin-bottom:12px;font-size:16px}button{width:100%;padding:12px;border-radius:8px;border:none;background:var(--primary);color:#fff;font-size:15px;font-weight:600;cursor:pointer}button:disabled{opacity:.5;cursor:default}button.secondary{background:var(--surface-high);color:var(--text)}button.danger{background:var(--negative)}.row{display:flex;justify-content:space-between;padding:6px 0;font-size:14px}.row .label{color:var(--text-secondary)}.status-bar{display:flex;gap:8px;align-items:center;padding:8px 12px;border-radius:8px;font-size:13px;font-weight:600;margin-bottom:16px}.status-bar.READ_ONLY{background:#2a2d35;color:var(--text-secondary)}.status-bar.PAPER{background:#1e3a2e;color:var(--positive)}.status-bar.LIVE{background:#3a1e1e;color:var(--negative)}.error{color:var(--negative);font-size:13px;margin-bottom:12px}h1{font-size:20px}a{color:var(--primary)}.shell{max-width:1200px;margin:0 auto;padding:8px 16px 0}.shell-nav{display:flex;gap:4px;overflow-x:auto;padding-bottom:4px;border-bottom:1px solid var(--outline)}.shell-nav a{padding:8px 12px;border-radius:8px;font-size:14px;font-weight:500;color:var(--text-secondary);text-decoration:none;white-space:nowrap}.shell-nav a:hover{color:var(--text)}.shell-nav a.active{color:var(--text);background:var(--surface-high)}.shell-nav a:focus-visible,.ui-tab:focus-visible,.ui-chip:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.shell-strip{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 0 0;min-height:40px}.shell-strip .status-bar{margin-bottom:0;padding:3px 10px;border-radius:999px;font-size:11px;letter-spacing:.5px}.tone-neutral{color:var(--text)}.tone-positive{color:var(--positive)}.tone-negative{color:var(--negative)}.tone-warning{color:var(--warning)}.tone-info{color:var(--info)}.ui-card{background:var(--surface);border:1px solid var(--outline);border-radius:16px;padding:16px;margin-bottom:16px}.ui-card.hero{border-color:#3b82f659;background:linear-gradient(135deg,#1b2538,var(--surface) 60%)}.ui-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:24px;margin-bottom:10px}.ui-card-title{flex:1;min-width:0;margin:0;font-size:12px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--text-secondary);padding-left:8px;border-left:3px solid var(--primary);line-height:12px}.ui-card-trailing{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ui-metric{min-width:0}.ui-metric-label{font-size:12px;color:var(--text-secondary);line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-metric-value{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.ui-metric-value.big{font-size:20px}.ui-kv{display:flex;align-items:center;gap:8px;padding:3px 0}.ui-kv-label{flex:1;font-size:13px;color:var(--text-secondary)}.ui-kv-value{font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}.ui-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:11px;line-height:14px;letter-spacing:.5px;font-weight:600;white-space:nowrap;border:1px solid currentColor}.ui-pill-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.ui-pill.pill-neutral{color:var(--text-secondary)}.ui-pill.pill-positive{color:var(--positive);background:#22c55e1f}.ui-pill.pill-negative{color:var(--negative);background:#ef44441f}.ui-pill.pill-warning{color:var(--warning);background:#f59e0b1f}.ui-pill.pill-info{color:var(--info);background:#60a5fa1f}.ui-pill.filled{color:#0f1115}.ui-pill.filled.pill-neutral{background:var(--text-secondary);border-color:var(--text-secondary)}.ui-pill.filled.pill-positive{background:var(--positive);border-color:var(--positive)}.ui-pill.filled.pill-negative{background:var(--negative);border-color:var(--negative);color:#fff}.ui-pill.filled.pill-warning{background:var(--warning);border-color:var(--warning)}.ui-pill.filled.pill-info{background:var(--info);border-color:var(--info)}.ui-tabs{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:999px;background:#0f111599;border:1px solid var(--outline)}.ui-tab{width:auto;height:34px;padding:0 11px;border-radius:999px;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500}.ui-tab.on{background:var(--primary);color:#fff;font-weight:700}.ui-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.ui-chip{width:auto;flex:none;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:500;background:#1f232c99;color:var(--text-secondary);border:1px solid var(--outline)}.ui-chip.on{background:#3b82f629;color:var(--primary);border-color:#3b82f699}.ui-banner{padding:10px 12px;border-radius:12px;font-size:13px;margin-bottom:12px;color:var(--text);background:#ef444417;border:1px solid rgba(239,68,68,.3);border-left:4px solid var(--negative)}.ui-spinner{display:inline-block;width:18px;height:18px;border-radius:50%;border:2px solid var(--surface-high);border-top-color:var(--primary);animation:ui-spin .8s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.ui-spinner{animation-duration:3s}}.dash-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr);align-items:start}@media (min-width: 900px){.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-grid .span-2{grid-column:1 / -1}}.dash-grid .ui-card{margin-bottom:0}.metric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}.metric-row.two{grid-template-columns:repeat(2,minmax(0,1fr))}.price-line{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px}.price-big{font-size:34px;font-weight:700;letter-spacing:-.8px;font-variant-numeric:tabular-nums;line-height:1.15}.price-big.stale{opacity:.55}.change-chip{font-size:13px;font-weight:600;padding:2px 7px;margin-bottom:7px;border-radius:8px;background:#9aa0ac24;font-variant-numeric:tabular-nums}.change-chip.tone-positive{background:#22c55e24}.change-chip.tone-negative{background:#ef444424}.note{font-size:12px;color:var(--text-secondary);margin:6px 0 0}.note.warn{color:var(--warning)}a.btn-link{display:inline-block;padding:10px 16px;border-radius:8px;background:var(--primary);color:#fff;font-weight:600;font-size:14px;text-decoration:none}.pos-row{display:flex;gap:12px;font-size:12px;padding:3px 0;font-variant-numeric:tabular-nums}.pos-row .sym{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.btn-row button{width:auto;flex:1 1 120px}.ui-card-head a{font-size:12px}.candle-chart-hl{display:flex;justify-content:space-between;font-size:11px;color:var(--text-secondary);font-variant-numeric:tabular-nums;padding-bottom:4px}.candle-chart-plot{position:relative;width:100%}.candle-chart-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.candle-chart-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-secondary);background:var(--surface)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button.inline{width:auto;padding:8px 14px}.ui-source{flex:none;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:600;letter-spacing:.3px;border:1px solid currentColor}.ui-source.source-api{color:var(--info)}.ui-source.source-calc{color:var(--warning)}.options-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:12px 0 8px}.options-spot{display:flex;flex-direction:column;align-items:flex-end}.options-spot-price{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.options-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:8px}.options-controls input[type=search]{width:200px;margin:0;padding:7px 10px;font-size:14px}.chain-wrap{overflow-x:auto}table.chain{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}table.chain th,table.chain td{padding:5px 8px;text-align:right;border-bottom:1px solid var(--outline);white-space:nowrap}table.chain thead th{color:var(--text-secondary);font-weight:500;font-size:12px;background:var(--surface);position:sticky;top:0}table.chain th.calls{color:var(--positive);text-align:center}table.chain th.puts{color:var(--negative);text-align:center}table.chain td.bid{color:var(--positive)}table.chain td.ask{color:var(--negative)}table.chain td.itm{background:#60a5fa14}table.chain th.strike{text-align:center;background:var(--surface-high);font-weight:700}table.chain th.strike .strike-links{display:flex;justify-content:center;gap:10px;font-size:11px;font-weight:500}table.chain tr.atm th.strike{box-shadow:inset 3px 0 0 var(--warning)}table.chain tr.atm td{background:#f59e0b1a}.atm-tag,.cand-tag{margin-left:6px;padding:1px 5px;border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.4px}.atm-tag{color:#0f1115;background:var(--warning)}.cand-tag{color:var(--primary);border:1px solid var(--primary)}tr.spot-line td{text-align:center;color:var(--warning);font-size:11px;font-weight:700;background:#f59e0b14;padding:2px}.overview-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:8px}a.overview-card{display:block;padding:12px;border-radius:12px;background:var(--surface);border:1px solid var(--outline);color:var(--text);text-decoration:none}a.overview-card:hover,a.overview-card:focus-visible{border-color:var(--primary)}.overview-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.sym{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;font-size:13px}.mini-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:6px}.mini-label{font-size:10px;color:var(--text-secondary)}.mini-value{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.thr-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));margin-bottom:12px}.thr-grid label{display:block}.thr-grid input{margin:2px 0 0}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.detail-head h1.sym{font-size:18px;margin:0}.detail-grid{display:grid;gap:16px;grid-template-columns:1fr;align-items:start}@media (min-width: 900px){.detail-grid{grid-template-columns:repeat(3,1fr)}}.detail-grid .ui-card{margin-bottom:0}.trade-row{margin-top:16px;max-width:320px}.page-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.page-head h1{margin:0}.data-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}table.data th,table.data td{padding:6px 8px;text-align:right;border-bottom:1px solid var(--outline);white-space:nowrap}table.data thead th{color:var(--text-secondary);font-weight:500;font-size:12px;background:var(--surface)}table.data th[scope=row],table.data thead th:first-child,table.data td.left{text-align:left}.totals{margin-bottom:12px}.tab-gap{margin:12px 0 8px}.balance-chart{margin:0}.balance-chart-svg{display:block;width:100%;height:200px}.balance-chart-line{fill:none;stroke:var(--primary);stroke-width:2;stroke-linejoin:round}.balance-chart-area{fill:var(--primary);fill-opacity:.14;stroke:none}.balance-chart-axis{display:flex;justify-content:space-between;gap:8px;margin-top:4px;font-size:11px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.balance-chart-axis span:nth-child(2){text-align:center}.wallet-block+.wallet-block{margin-top:10px;padding-top:8px;border-top:1px solid var(--outline)}.wallet-asset{margin:0 0 4px;font-size:14px;font-weight:700}.ledger-chips{margin-bottom:8px}.show-more{margin-top:8px}.balance-chart-line-summary{margin-top:6px;font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}.settings-panel{margin-top:12px}.settings-field{margin-bottom:12px}.settings-field label{display:block;font-size:13px;font-weight:600;margin-bottom:4px}.settings-field input,.settings-field select{margin-bottom:0}.note.error{color:var(--negative)}.settings-result{margin:10px 0 0;font-size:14px}.settings-clamp{display:block}.event-log{list-style:none;margin:8px 0 0;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.event-log li{display:flex;flex-wrap:wrap;gap:4px 10px;padding:6px 0;border-bottom:1px solid var(--surface-high)}.event-time{color:var(--text-secondary);white-space:nowrap}.event-type{color:var(--info)}.event-msg{flex:1 1 100%;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}.ui-banner.warn{background:#f59e0b17;border-color:#f59e0b59;border-left-color:var(--warning)}.ui-switch-wrap{padding:4px 0}.ui-switch{display:flex;align-items:center;gap:12px;padding:6px 0;cursor:pointer}.ui-switch-text{flex:1;min-width:0;font-size:14px;overflow-wrap:anywhere}.ui-switch-hint{margin:0 0 2px;font-size:12px;color:var(--text-secondary);overflow-wrap:anywhere}.ui-switch input{-moz-appearance:none;appearance:none;-webkit-appearance:none;position:relative;flex:none;width:44px;height:26px;margin:0;padding:0;border-radius:13px;background:var(--surface-high);border:1px solid var(--outline);cursor:pointer;transition:background .15s}.ui-switch input:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--text-secondary);transition:transform .15s}.ui-switch input:checked{background:var(--primary);border-color:var(--primary)}.ui-switch input:checked:after{transform:translate(18px);background:#fff}.ui-switch input:disabled{opacity:.5;cursor:default}.ui-switch input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.eng-list{list-style:none;margin:0;padding:0}.eng-row{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--outline)}.eng-row:last-child{border-bottom:0}.eng-row-main{flex:1;min-width:0;width:auto;padding:10px 0;text-align:left;background:transparent;color:var(--text);font-weight:400;border-radius:0}.eng-row-main:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.eng-row-name{display:block;font-size:15px;font-weight:500;overflow-wrap:anywhere}.eng-row.selected .eng-row-name{color:var(--primary);font-weight:700}.eng-row-summary{display:block;margin-top:2px;font-size:12px;color:var(--text-secondary);overflow-wrap:anywhere}.eng-row .ui-switch{padding:0;flex:none}.eng-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.eng-form .settings-field input{min-width:0}.eng-form h3{margin:14px 0 2px;font-size:14px}.eng-form .ui-tabs{max-width:100%}.eng-field-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:4px 0}.eng-sizing{margin:4px 0 8px;overflow-wrap:anywhere}.eng-sizing .formula{font-size:12px;color:var(--text-secondary)}.eng-sizing .worked{font-size:13px;margin:2px 0 0}.eng-confirm{margin-top:10px;padding:12px;border-radius:12px;border:1px solid rgba(239,68,68,.4);background:#ef444412}.eng-confirm p{margin:0 0 10px;font-size:13px;overflow-wrap:anywhere}.eng-kv .ui-kv{align-items:flex-start}.eng-kv .ui-kv-label{flex:1 1 40%;min-width:0}.eng-kv .ui-kv-value{flex:0 1 60%;min-width:0;text-align:right;overflow-wrap:anywhere}.eng-stepup{margin:6px 0 10px}.eng-stepup .card{margin-bottom:0}.tr-list{list-style:none;margin:8px 0 0;padding:0}.tr-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px 8px;padding:8px 0;border-bottom:1px solid var(--outline)}.tr-row:last-child{border-bottom:0}.tr-main{flex:1;min-width:0}.tr-top{display:flex;align-items:baseline;gap:8px}.tr-engine{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--warning);overflow-wrap:anywhere}.tr-status{font-size:11px;color:var(--text-secondary)}.tr-line{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;margin-top:2px;font-size:12px}.tr-time{color:var(--text-secondary);font-variant-numeric:tabular-nums}.tr-action{font-size:13px;font-weight:600;overflow-wrap:anywhere}.tr-regime{font-size:12px}.tr-pnl{margin-top:2px;font-size:12px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}button.tr-del{width:32px;height:32px;flex:none;padding:0;background:transparent;color:var(--text-secondary);font-size:20px;line-height:1;font-weight:400}.tr-row .tr-confirm{flex:1 1 100%;margin-top:4px}.tr-empty{color:var(--text-secondary)}
