*{box-sizing:border-box}:root{--bg:#070c13;--panel:#0d1622;--line:#26364b;--text:#e9eef7;--muted:#98abc1;--gold:#edbd63;--green:#43c9aa;--red:#ef6f7d;--blue:#72aef8;--tools:112px;--drawer:372px}html,body{height:100%;overflow:hidden}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea,.button{font:inherit;color:inherit}button,.button{border:1px solid var(--line);border-radius:6px;background:#142133;min-height:36px;padding:7px 11px;font-weight:650;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}button:hover,.button:hover{background:#20334b;border-color:#536a87}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:2px}input,select,textarea{width:100%;border:1px solid #3a4b63;border-radius:6px;background:#09121e;padding:8px;min-height:38px}textarea{resize:vertical}label{display:block;color:var(--muted);margin:10px 0 5px}h2,h3,p{margin:0}h2{font-size:1rem}h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--gold);margin:18px 0 6px}a{color:var(--muted)}[hidden]{display:none!important}.app-shell{height:100%;display:grid;grid-template-rows:58px 50px minmax(0,1fr)}
.topbar{display:flex;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid var(--line);background:#09111c;min-width:0}.brand{display:flex;align-items:center;gap:9px;letter-spacing:.12em;white-space:nowrap}.mark{display:grid;place-items:center;width:36px;height:36px;border:1px solid #765d30;border-radius:7px;color:var(--gold);font-size:1.3rem}.workspace-compact{display:flex;gap:6px;width:min(460px,35vw);min-width:220px}.workspace-compact select{min-width:0}.market-id{display:flex;gap:6px;min-width:0;align-items:baseline}.market-id span{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.top-actions{margin-left:auto;display:flex;gap:6px;align-items:center;white-space:nowrap}.top-actions label{margin:0}.autosave{font-size:.72rem;color:var(--muted)}
.commandbar{display:flex;align-items:center;gap:7px;padding:6px 12px;border-bottom:1px solid var(--line);background:#0a1420;min-width:0;overflow-x:auto}.tf-tabs{display:flex;gap:4px}.tf-tabs button{background:transparent;min-width:66px}.tf-tabs button[aria-pressed=true]{background:#322817;border-color:#84652e;color:var(--gold)}.tf-role{font-size:.68rem;color:var(--muted)}.layout-select{display:flex;align-items:center;gap:6px;margin:0 0 0 6px;font-size:.72rem}.layout-select select{width:116px;min-height:36px;padding:6px}.status-button{font-size:.75rem;font-weight:600;white-space:nowrap}.version{margin-left:auto;font-size:.68rem;letter-spacing:.07em;color:var(--muted);white-space:nowrap}
.desk{display:grid;grid-template-columns:var(--tools) minmax(0,1fr) var(--drawer);min-height:0}.desk.drawer-closed{grid-template-columns:var(--tools) minmax(0,1fr) 0}.desk.drawer-closed .study-drawer{display:none}.desk.tools-closed{--tools:48px}.toolrail{display:flex;flex-direction:column;gap:5px;padding:8px;background:#09111c;border-right:1px solid var(--line);overflow-y:auto}.toolrail button{width:100%;justify-content:flex-start;background:transparent;padding:7px 8px}.toolrail button b{display:inline-grid;place-items:center;width:22px;font-size:1rem}.toolrail button span{font-size:.75rem}.toolrail button.active{color:var(--gold);background:#322817;border-color:#80632e}.toolrail hr{width:100%;border:0;border-top:1px solid var(--line)}.tools-closed .toolrail{padding:7px 5px}.tools-closed .toolrail button{justify-content:center;padding:7px 3px}.tools-closed .toolrail button span{display:none}.tool-collapse{color:var(--muted)}
.chart-stage{min-width:0;min-height:0;display:grid;grid-template-rows:auto 34px minmax(0,1fr) 29px auto;background:#08111b}.next-action{display:flex;align-items:center;gap:14px;justify-content:space-between;padding:8px 12px;border-bottom:1px solid #5f4a24;background:#17170f}.next-action>div{min-width:0}.next-action span,.next-action strong,.next-action small{display:block}.next-action span{font-size:.65rem;letter-spacing:.08em;color:var(--gold)}.next-action strong{font-size:.95rem}.next-action small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.next-action button{white-space:nowrap}.chart-context{display:flex;align-items:center;gap:9px;padding:5px 10px;border-bottom:1px solid var(--line);color:var(--muted);font-size:.75rem}.context-help{margin-left:auto}.chip{padding:2px 6px;border:1px solid #735a29;border-radius:3px;color:var(--gold);font-size:.68rem;letter-spacing:.05em;white-space:nowrap}.charts{display:grid;min-height:0;gap:1px;background:var(--line)}.charts.layout-single{grid-template-columns:1fr}.charts.layout-split{grid-template-columns:1fr 1fr}.charts.layout-grid{grid-template-columns:1fr 1fr}.chart-cell{background:#0b1420;min-width:0;min-height:0;display:grid;grid-template-rows:40px minmax(0,1fr);position:relative}.chart-cell.layout-hidden{display:none!important}.chart-cell.selected{box-shadow:inset 0 2px 0 var(--gold)}.chart-title-row{display:flex;align-items:center;gap:8px;padding:3px 7px;border-bottom:1px solid #182538;min-width:0}.chart-title{background:transparent;border:0;padding:4px;min-height:30px;min-width:105px;justify-content:flex-start}.chart-title strong span{color:var(--muted);font-weight:500}.chart-readout{display:flex;gap:9px;align-items:center;min-width:0;overflow:hidden;font:11px ui-monospace,SFMono-Regular,Consolas,monospace;white-space:nowrap}.chart-readout .time{color:var(--muted)}.chart-readout .up{color:var(--green)}.chart-readout .down{color:var(--red)}.chart-badges{margin-left:auto;display:flex;gap:5px}.mini-badge{font-size:.65rem;padding:2px 5px;border:1px solid var(--line);border-radius:3px;color:var(--muted);white-space:nowrap}.mini-badge.gold{color:var(--gold);border-color:#705728}.vela-chart,.empty-chart{width:100%;height:100%;min-height:210px;position:relative}.empty-chart{display:grid;place-items:center;text-align:center;color:var(--muted);padding:25px}.level-label-layer{position:absolute;inset:0;pointer-events:none;z-index:12;overflow:hidden}.level-tag{position:absolute;right:1px;transform:translateY(-50%);padding:2px 7px;border-radius:3px 0 0 3px;background:#8b6728;color:#fff8e8;font:700 11px ui-monospace,monospace;box-shadow:0 0 0 1px #c79c48}.level-tag.swing{background:#285d92;box-shadow:0 0 0 1px #72aef8}.candle-marker{position:absolute;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);background:var(--blue);border:2px solid #dcecff;box-shadow:0 0 0 2px #0b1420}.candle-marker.measured{background:var(--gold);border-color:#fff2c9}.chart-legend{display:flex;align-items:center;gap:14px;padding:4px 10px;color:var(--muted);font-size:.68rem}.chart-legend a{margin-left:auto}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.selected-dot{background:var(--blue)}.measured-dot{background:var(--gold)}.legend-line{display:inline-block;width:18px;border-top:2px dashed;margin-right:4px;vertical-align:middle}.frozen-line{border-color:var(--gold)}
.replay-dock{display:flex;align-items:center;gap:18px;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--line);background:#09111c;min-width:0}.dock-clock{display:flex;flex-direction:column;white-space:nowrap}.dock-clock span{font-size:.62rem;letter-spacing:.08em;color:var(--muted)}.dock-clock strong{font:700 14px ui-monospace,monospace}.dock-clock small{font-size:.67rem;color:var(--muted)}.dock-controls{display:flex;align-items:center;gap:6px;min-width:0}.dock-controls label{display:flex;align-items:center;gap:5px;margin:0;font-size:.7rem}.dock-controls select{width:78px;min-height:36px;padding:6px}
.study-drawer{min-width:0;min-height:0;background:var(--panel);border-left:1px solid var(--line);display:grid;grid-template-rows:58px auto minmax(0,1fr) 54px}.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line)}.drawer-head>div{display:flex;flex-direction:column}.eyebrow{font-size:.62rem;color:var(--muted);letter-spacing:.09em}.drawer-head strong{font-size:1rem}.study-guide{padding:10px 13px;background:#111e2c;border-bottom:1px solid var(--line);font-size:.78rem;color:#c6d3e1}.study-guide strong{display:block;color:var(--gold);margin-bottom:2px}.drawer-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain}.study-panel{display:none;padding:15px}.study-panel.active{display:block}.drawer-footer{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px;border-top:1px solid var(--line);background:#0a1320}.small{font-size:.78rem;color:var(--muted);line-height:1.55}.readout-block{margin-top:12px;padding:10px 0;border-bottom:1px solid var(--line)}.readout-block>span,.readout-block>strong{display:block}.readout-block>span{font-size:.7rem;color:var(--muted)}.readout-block>strong{font:12px ui-monospace,monospace;margin:2px 0 6px}.ohlc{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.ohlc div{font:11px ui-monospace,monospace}.ohlc span{display:block;color:var(--muted);font:10px system-ui}.selection-card{margin:10px 0;padding:9px 10px;border:1px solid #294059;background:#111d2c;border-radius:5px}.selection-card p{font-size:.74rem;color:var(--muted);margin-top:3px}.direction{display:flex;gap:5px;margin:10px 0}.direction button{flex:1;background:transparent}.direction button[aria-pressed=true]{background:#14362d;color:var(--green);border-color:#337966}#short[aria-pressed=true]{background:#3a1d28;color:var(--red);border-color:#8a4857}.wide{width:100%;margin-top:7px}.subtle{background:transparent}.gold{background:var(--gold);border-color:var(--gold);color:#171208}.gold:hover{background:#f3cd87}.candidate-actions{display:grid;grid-template-columns:1fr auto;gap:5px;margin:10px 0}.result{font-size:.78rem;line-height:1.55;margin-top:8px;padding:9px;background:#142236;border-left:2px solid var(--gold);overflow-wrap:anywhere}.metric{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid #1d2c40;font-size:.78rem}.metric strong{font:600 .86rem ui-monospace,monospace;white-space:nowrap}.metric small{display:block;color:var(--muted);font-size:.68rem}.good{color:var(--green)!important}.bad{color:var(--red)!important}.pending{color:var(--gold)!important}.boundary{font-size:.74rem;color:var(--muted);margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.mini-status{font-size:.75rem;color:var(--muted);margin-top:10px}.scope-label{margin:10px 0;padding:7px;background:#101e2e;color:var(--muted)}.study-panel ul{padding-left:18px;margin:4px 0;color:#bdcada;font-size:.78rem}.study-panel li{margin:6px 0}.records{margin-top:10px}.record{font-size:.76rem;border-top:1px solid var(--line);padding:8px 0}.record span{display:block;color:var(--muted)}.empty-state{padding:18px;border:1px dashed var(--line);text-align:center;color:var(--muted);margin-top:12px}.drawing-heading{display:flex;justify-content:space-between;margin:12px 0}.drawing-heading span{font:10px ui-monospace,monospace;color:var(--muted);max-width:170px;overflow:hidden}.coordinate-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;border-top:1px solid var(--line);padding:8px 0}.coordinate-row>span{grid-column:1/-1;color:var(--gold);font-size:.75rem}.coordinate-row label{margin:0;font-size:.68rem}.drawing-actions{display:flex;gap:5px;margin-top:9px}.drawing-actions button{flex:1}.danger{color:#ff9aa6;border-color:#713846}
dialog{width:min(820px,calc(100vw - 28px));max-height:88vh;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#0d1622;color:var(--text);padding:18px}dialog::backdrop{background:#02050acc}.dialog-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:10px}.dialog-head button{min-width:38px}.dialog-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:15px}.import-meta,.workspace-form{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.file-inputs,.data-summary,.import-preview{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:12px}.file-inputs label,.data-summary>div,.import-preview>div{border:1px solid var(--line);border-radius:6px;padding:9px}.file-inputs label{margin:0}.file-inputs span,.data-summary strong,.import-preview strong{display:block;color:var(--gold)}.file-inputs small,.data-summary span,.import-preview span{display:block;color:var(--muted);font-size:.7rem;margin-top:3px}.custom-ladder{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}#importError{color:var(--red);margin-top:10px}#toast{position:fixed;left:50%;bottom:18px;transform:translate(-50%,20px);opacity:0;z-index:50;background:#17263a;border:1px solid #536a87;border-radius:7px;padding:10px 14px;transition:.2s;pointer-events:none;max-width:min(620px,90vw)}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1100px){:root{--drawer:335px}.market-id,.autosave{display:none}.workspace-compact{width:340px}.toolrail button span{font-size:.68rem}.replay-dock{align-items:flex-start}.dock-controls{flex-wrap:wrap;justify-content:flex-end}.next-action small{max-width:480px}}
@media(max-width:820px){html,body{overflow:auto}.app-shell{height:auto;min-height:100vh;grid-template-rows:auto auto auto}.topbar{flex-wrap:wrap}.workspace-compact{order:3;width:100%}.top-actions{margin-left:0}.commandbar{position:sticky;top:0;z-index:20}.desk,.desk.drawer-closed{grid-template-columns:48px minmax(0,1fr)}.desk .toolrail{grid-column:1}.desk .chart-stage{grid-column:2}.study-drawer{position:fixed;z-index:30;inset:58px 0 0 16%;box-shadow:-12px 0 30px #0008}.desk.drawer-closed .study-drawer{display:none}.toolrail button span{display:none}.toolrail{padding:6px 4px}.toolrail button{justify-content:center;padding:6px 2px}.next-action{align-items:flex-start}.next-action small{white-space:normal}.chart-stage{min-height:760px}.chart-context .context-help{display:none}.replay-dock{flex-direction:column}.dock-controls{justify-content:flex-start}.import-meta,.workspace-form,.file-inputs,.data-summary,.import-preview,.custom-ladder{grid-template-columns:1fr}.version{display:none}}
