:root{--bg: #f2f4f6;--panel: #ffffff;--sunk: #f7f8fa;--ink: #17202b;--muted: #5b6672;--line: #dbe0e6;--accent: #2c5bc9;--accent-soft: #e4ebfa;--accent-ink: #ffffff;--rail: #121821;--rail-ink: #c9d2dc;--rail-muted: #7d8996;--rail-active: #1f2a38;--rail-line: #222c39;--win: #1d8455;--win-soft: rgba(29,132,85,.1);--loss: #c43e2c;--loss-soft: rgba(196,62,44,.09);--be: #a8701a;--be-soft: rgba(168,112,26,.12);--candle-up: #ffffff;--candle-down: #3a4552;--wick: #3a4552;--grid: #e9edf1;--f-display: "IBM Plex Sans Condensed", "Arial Narrow", system-ui, sans-serif;--f-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0e1217;--panel: #151a21;--sunk: #11161c;--ink: #e4e9ef;--muted: #8b96a3;--line: #28303a;--accent: #7097f0;--accent-soft: #1d2840;--accent-ink: #0e1217;--rail: #0a0e13;--rail-ink: #c9d2dc;--rail-muted: #6f7b88;--rail-active: #18212d;--rail-line: #1a222c;--win: #3db47e;--win-soft: rgba(61,180,126,.13);--loss: #e86a55;--loss-soft: rgba(232,106,85,.12);--be: #e2a443;--be-soft: rgba(226,164,67,.14);--candle-up: #151a21;--candle-down: #9aa6b3;--wick: #9aa6b3;--grid: #1d232b;color-scheme:dark}}:root[data-theme=dark]{--bg: #0e1217;--panel: #151a21;--sunk: #11161c;--ink: #e4e9ef;--muted: #8b96a3;--line: #28303a;--accent: #7097f0;--accent-soft: #1d2840;--accent-ink: #0e1217;--rail: #0a0e13;--rail-ink: #c9d2dc;--rail-muted: #6f7b88;--rail-active: #18212d;--rail-line: #1a222c;--win: #3db47e;--win-soft: rgba(61,180,126,.13);--loss: #e86a55;--loss-soft: rgba(232,106,85,.12);--be: #e2a443;--be-soft: rgba(226,164,67,.14);--candle-up: #151a21;--candle-down: #9aa6b3;--wick: #9aa6b3;--grid: #1d232b;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--accent)}.mono,.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}h1,h2,h3,h4{font-family:var(--f-display);font-weight:600;margin:0;text-wrap:balance}.muted{color:var(--muted)}.small{font-size:.8rem}.pos{color:var(--win)}.neg{color:var(--loss)}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.gate{min-height:100%;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(1200px 500px at 15% -10%,var(--accent-soft),transparent 60%),var(--bg)}.gate-card{width:min(400px,100%);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:32px 28px 28px;display:grid;gap:18px;box-shadow:0 18px 50px #0f192814}.gate-mark{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.gate h1{font-size:2rem;letter-spacing:-.01em}.gate form{display:grid;gap:12px}.gate input{font-size:1.05rem;padding:10px 12px}.gate .who{display:flex;justify-content:space-between;align-items:center;font-size:.86rem;color:var(--muted)}.linkbtn{border:0;background:none;color:var(--accent);cursor:pointer;padding:0;font-size:.86rem}.shell{display:grid;grid-template-columns:232px minmax(0,1fr);height:100%}.rail{background:var(--rail);color:var(--rail-ink);display:flex;flex-direction:column;min-height:0}.rail-brand{padding:20px 20px 18px;display:grid;gap:2px;border-bottom:1px solid var(--rail-line)}.rail-brand b{font-family:var(--f-display);font-size:1.2rem;letter-spacing:.01em;color:#fff}.rail-brand span{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rail-muted)}.rail nav{display:grid;gap:2px;padding:12px 10px}.rail nav a{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:6px;color:var(--rail-ink);text-decoration:none;font-weight:500}.rail nav a:hover{background:var(--rail-active)}.rail nav a.active{background:var(--rail-active);color:#fff;box-shadow:inset 3px 0 0 var(--accent)}.rail nav svg{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.rail-foot{margin-top:auto;padding:14px 16px;border-top:1px solid var(--rail-line);display:grid;gap:8px;font-size:.84rem}.rail-foot .me{display:flex;align-items:center;gap:10px}.avatar{width:30px;height:30px;border-radius:50%;background:var(--rail-active);display:grid;place-items:center;font-weight:600;color:#fff;font-size:.8rem;flex:none}.rail-foot .me small{display:block;color:var(--rail-muted);font-size:.72rem}.rail-foot .links{display:flex;gap:14px}.rail-foot button{border:0;background:none;color:var(--rail-muted);cursor:pointer;padding:0;font-size:.8rem}.rail-foot button:hover{color:#fff}.menubtn{display:none}.main{overflow-y:auto;min-width:0}@media (max-width: 900px){.shell{grid-template-columns:minmax(0,1fr);height:auto}.rail{position:sticky;top:0;z-index:20}.rail-brand{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}.menubtn{display:inline-flex;border:1px solid var(--rail-line);background:none;color:var(--rail-ink);border-radius:6px;padding:4px 10px}.rail nav,.rail-foot{display:none}.rail.open nav{display:grid}.rail.open .rail-foot{display:grid}}.page{padding:24px 28px 48px;display:flex;flex-direction:column;gap:18px;max-width:1500px}@media (max-width: 600px){.page{padding:16px}}.pagehead{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}.pagehead h2{font-size:1.6rem}.eyebrow{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.meta{color:var(--muted);font-size:.82rem;margin-top:6px;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.btn{border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:6px 12px;cursor:pointer;font-size:.86rem;white-space:nowrap;text-decoration:none;color:var(--ink);display:inline-flex;align-items:center;gap:6px}.btn:hover{border-color:var(--muted)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.danger:hover{border-color:var(--loss);color:var(--loss)}.btn.small{padding:3px 9px;font-size:.78rem}.btn.block{width:100%;justify-content:center;padding:10px;font-size:.95rem}.btn[aria-pressed=true].ok{border-color:var(--win);color:var(--win);background:var(--win-soft)}.btn[aria-pressed=true].bad{border-color:var(--loss);color:var(--loss);background:var(--loss-soft)}.chip{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:2px 10px;font-size:.78rem;cursor:pointer;display:inline-flex;gap:6px;align-items:center}.chip[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--bg)}.chip .n{font-family:var(--f-mono);opacity:.75}.chips{display:flex;flex-wrap:wrap;gap:6px}input[type=text],input[type=password],input[type=number],input[type=time],select,textarea{border:1px solid var(--line);background:var(--sunk);border-radius:6px;padding:6px 9px;min-width:0}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}textarea{resize:vertical;min-height:64px}input[type=number]{font-family:var(--f-mono);font-variant-numeric:tabular-nums}label.check{display:inline-flex;gap:8px;align-items:center;cursor:pointer}.formgrid{display:grid;gap:12px}.formrow{display:grid;gap:4px}.formrow>span{font-size:.78rem;color:var(--muted)}.pill{display:inline-block;font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:1px 7px;border-radius:4px;white-space:nowrap}.pill.Win,.pill.done,.pill.good{color:var(--win);background:var(--win-soft)}.pill.Loss,.pill.error,.pill.bad{color:var(--loss);background:var(--loss-soft)}.pill.Breakeven,.pill.cancelled,.pill.warn{color:var(--be);background:var(--be-soft)}.pill.Open,.pill.queued,.pill.running,.pill.info{color:var(--accent);background:var(--accent-soft)}.pill.plain{color:var(--muted);background:var(--sunk);border:1px solid var(--line)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.dot.pass{background:var(--win)}.dot.warn{background:var(--be)}.dot.fail{background:var(--loss)}.error-box{border:1px solid var(--loss);background:var(--loss-soft);color:var(--loss);border-radius:8px;padding:10px 14px;font-size:.86rem}.ok-box{border:1px solid var(--win);background:var(--win-soft);color:var(--win);border-radius:8px;padding:10px 14px;font-size:.86rem}.empty{padding:40px 20px;text-align:center;color:var(--muted)}.progress{height:6px;background:var(--sunk);border-radius:3px;overflow:hidden;border:1px solid var(--line)}.progress i{display:block;height:100%;background:var(--accent);transition:width .3s}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:0}.card>h3,.card-h{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:12px 14px 8px;font-family:var(--f-display);font-weight:600}.card-h{display:flex;justify-content:space-between;align-items:center;gap:8px}.card-body{padding:0 14px 14px}.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px;display:grid;gap:2px;text-decoration:none;color:var(--ink)}a.stat:hover{border-color:var(--accent)}.stat .label{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-family:var(--f-display);font-weight:600}.stat .value{font-family:var(--f-mono);font-size:1.8rem;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.2}.stat .sub{font-size:.78rem;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden}.metric{padding:10px 14px;box-shadow:inset -1px -1px 0 var(--line)}.metric b{display:block;font-family:var(--f-mono);font-weight:500;font-size:1.1rem;font-variant-numeric:tabular-nums;white-space:nowrap}.metric span{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.cols{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:16px;align-items:start}.cols.even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cols.narrow-left{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}@media (max-width: 1100px){.cols,.cols.even,.cols.narrow-left{grid-template-columns:minmax(0,1fr)}}.stack{display:flex;flex-direction:column;gap:16px;min-width:0}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;align-items:center}.tabs button,.tabs a{border:0;background:none;padding:8px 14px;cursor:pointer;border-bottom:2px solid transparent;color:var(--muted);font-weight:500;white-space:nowrap;text-decoration:none}.tabs [aria-selected=true],.tabs a.active{color:var(--ink);border-bottom-color:var(--accent)}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.84rem}th{text-align:left;font-weight:500;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:8px 10px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);white-space:nowrap;z-index:1}td{padding:7px 10px;border-bottom:1px solid var(--line);white-space:nowrap}td.num,th.num{text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums}td.wrap{white-space:normal}tbody tr.click{cursor:pointer}tbody tr.click:hover{background:var(--sunk)}tbody tr[aria-selected=true]{background:var(--accent-soft)}tr.sec td{font-family:var(--f-display);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--muted);background:var(--sunk)}tr.diff td{background:var(--be-soft)}.split{display:grid;grid-template-columns:430px minmax(0,1fr);gap:16px;align-items:start}@media (max-width: 1200px){.split{grid-template-columns:minmax(0,1fr)}}.listcard{max-height:calc(100vh - 150px);display:flex;flex-direction:column;position:sticky;top:12px}@media (max-width: 1200px){.listcard{position:static;max-height:360px}}.listcard .tablewrap{flex:1}.filters{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);align-items:center}.tradehead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:12px 14px;border-bottom:1px solid var(--line)}.tradehead h3{font-size:1.15rem;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.chartbox{position:relative;height:520px;-webkit-user-select:none;user-select:none}.chartbox.short{height:420px}@media (max-width: 700px){.chartbox,.chartbox.short{height:380px}}.chartbox canvas{display:block;width:100%;height:100%;cursor:crosshair}.charttip{position:absolute;pointer-events:none;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:6px 8px;font-family:var(--f-mono);font-size:.72rem;line-height:1.5;white-space:nowrap;box-shadow:0 4px 14px #0000001f;z-index:2}.chartbar{display:flex;flex-wrap:wrap;gap:6px 16px;padding:8px 14px;border-top:1px solid var(--line);font-size:.74rem;color:var(--muted);align-items:center}.chartbar i{display:inline-block;width:16px;border-top:2px solid;vertical-align:middle;margin-right:6px}.chartbar .grow{flex:1}.kv{display:grid;grid-template-columns:auto 1fr auto;gap:0 12px;padding:0 14px 12px}.kv>div{padding:4px 0;border-bottom:1px dashed var(--line);font-size:.84rem}.kv .v,.kv .n{font-family:var(--f-mono);font-variant-numeric:tabular-nums;text-align:right}.kv .k,.kv .n{color:var(--muted)}.kv .n{font-size:.76rem}.checks{list-style:none;margin:0;padding:0 14px 12px}.checks li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:2px 10px;padding:7px 0;border-bottom:1px dashed var(--line)}.checks li:last-child{border-bottom:0}.mark{width:20px;height:20px;border-radius:4px;display:grid;place-items:center;font-weight:700;font-size:.75rem;grid-row:span 2}.mark.pass{color:var(--win);background:var(--win-soft)}.mark.fail{color:var(--loss);background:var(--loss-soft)}.mark.warn{color:var(--be);background:var(--be-soft)}.mark.info{color:var(--accent);background:var(--accent-soft)}.checks .cn{font-weight:500;font-size:.86rem}.checks .cd{color:var(--muted);font-size:.78rem;font-family:var(--f-mono);overflow-wrap:anywhere}.review{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:0 14px 12px}.review input{flex:1 1 200px}.others{padding:0 14px 14px;display:grid;gap:6px}.others div{font-size:.82rem}.groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0 28px}.group h4{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--line)}.field{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:2px 10px;align-items:center;padding:5px 0}.field label{font-size:.86rem}.field .help{grid-column:1 / 3;font-size:.72rem;color:var(--muted)}.field input[type=number],.field input[type=time]{width:100%}.field .boolwrap{display:flex;justify-content:flex-end}.field.changed label:after{content:" •";color:var(--accent);font-weight:700}.field .ro{font-family:var(--f-mono);text-align:right;font-size:.86rem}.dslist{display:flex;flex-direction:column;gap:6px}.pick{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 10px;align-items:start;padding:9px 11px;border:1px solid var(--line);border-radius:6px;cursor:pointer;background:var(--panel)}.pick:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.pick input{margin-top:3px}.pick .t{font-weight:500}.pick .d{font-size:.74rem;color:var(--muted);grid-column:2}.step{display:grid;gap:10px}.step-h{display:flex;align-items:baseline;gap:10px}.step-h b{font-family:var(--f-mono);color:var(--accent)}.step-h h3{font-size:1rem}.runbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px;border-top:1px solid var(--line);background:var(--sunk);border-radius:0 0 8px 8px}.doc{max-width:760px;display:grid;gap:18px}.doc h3{font-size:1.15rem;margin-bottom:6px}.doc p{margin:0 0 8px;line-height:1.6}.doc ul{margin:0;padding-left:20px;display:grid;gap:6px;line-height:1.55}.diagram{width:100%;max-width:640px;height:auto}
