:root{color-scheme:light;--bg: #eef5f7;--bg-2: #dfecef;--ink: #081b2a;--ink-2: #173142;--muted: #60798a;--quiet: #8aa0ad;--panel: rgba(255, 255, 255, .78);--panel-strong: rgba(255, 255, 255, .94);--line: rgba(8, 27, 42, .13);--line-strong: rgba(8, 27, 42, .22);--shadow: 0 18px 55px rgba(22, 54, 70, .13);--teal: #00a996;--teal-dark: #08796f;--cyan: #2f9fe8;--coral: #e35d6a;--amber: #d99b19;--green: #0aa66f}*{box-sizing:border-box}body{margin:0;min-width:320px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink);letter-spacing:0;background:linear-gradient(135deg,rgba(47,159,232,.14),transparent 32%),linear-gradient(315deg,rgba(0,169,150,.12),transparent 34%),var(--bg)}button,input{font:inherit}button,.iconLink{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);border-radius:7px;background:#ffffffb3;color:var(--ink);padding:0 12px;font-size:12px;font-weight:760;cursor:pointer;text-decoration:none;box-shadow:0 1px #ffffffb8 inset}button:hover,.iconLink:hover{border-color:#2f9fe86b}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--ink);border-color:var(--ink);color:#fff}.danger{background:#e35d6a1f;border-color:#e35d6a47;color:#9f2635}.good{color:var(--green)!important}.bad{color:var(--coral)!important}.login,.loading{min-height:100vh;display:grid;place-items:center;padding:18px}.loginBox{width:min(430px,100%);border:1px solid var(--line);background:var(--panel-strong);border-radius:8px;padding:28px;box-shadow:var(--shadow)}.brandMark{width:42px;height:42px;display:grid;place-items:center;border-radius:7px;background:var(--ink);color:#fff;font-weight:900}.loginBox h1{margin:16px 0 6px;font-size:26px}.loginBox p{margin:0 0 18px;color:var(--muted);line-height:1.45}.loginBox input{width:100%;min-height:42px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:0 12px;margin-bottom:10px}.formError{display:block;color:var(--coral);margin-bottom:10px;font-size:12px}.app{width:min(1580px,100%);margin:0 auto;padding:18px}.topbar{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:16px;align-items:center;min-height:72px;margin-bottom:10px}.titleBlock{display:flex;flex-direction:column;justify-content:center;min-height:58px;border-left:5px solid var(--teal);padding-left:14px}.topbar h1{margin:0;font-size:28px;line-height:1.05}.topbar p{margin:5px 0 0;color:var(--muted)}.topStatus{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;align-items:center}.tabbar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;padding:6px;border:1px solid var(--line);border-radius:8px;background:#ffffff75}.tabbar button{min-height:38px;background:transparent;box-shadow:none}.tabbar button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.statusDot{min-height:30px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:7px;padding:0 10px;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:840;background:#ffffff94}.statusDot i{width:7px;height:7px;border-radius:50%;background:var(--quiet)}.statusDot.good i{background:var(--teal);box-shadow:0 0 16px #00a99694}.statusDot.warn i{background:var(--amber)}.heroStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.metric,.panel,.control section{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:8px;box-shadow:0 1px #ffffffb3 inset}.metric{min-height:76px;padding:14px;position:relative;overflow:hidden}.metric:after{content:"";position:absolute;right:12px;bottom:12px;width:34px;height:3px;background:linear-gradient(90deg,var(--teal),var(--cyan));opacity:.72}.metric span,.laneDecision span,.rail span{display:block;color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:840}.metric b{display:block;margin-top:5px;font-size:24px;font-variant-numeric:tabular-nums}.operationsGrid{display:grid;grid-template-columns:minmax(380px,.9fr) minmax(420px,1.25fr) 350px;gap:12px;align-items:stretch;min-height:0}.panel{overflow:hidden;min-width:0}.panel header{display:flex;justify-content:space-between;gap:10px;align-items:center;min-height:46px;padding:0 14px;border-bottom:1px solid var(--line);background:#ffffff6b}.panel h2,.control h2{margin:0;font-size:15px}.panel header span{color:var(--muted);font-size:12px}.marketsPanel{display:flex;flex-direction:column;height:560px}.lanes{display:grid;gap:8px;padding:10px;overflow:auto;min-height:0}.lane{min-width:0;border:1px solid var(--line);background:#ffffffbd;border-radius:8px;padding:9px 10px;position:relative}.lane:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:4px;border-radius:0 4px 4px 0;background:var(--teal)}.lane.resolved:before{background:var(--green)}.lane.ended:before{background:var(--amber)}.lane.waiting:before{background:var(--quiet)}.laneTop{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:8px;align-items:start}.lane h2{margin:0;font-size:16px}.lane p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.roundMeta{display:grid;grid-template-columns:minmax(0,1fr) 58px 76px;gap:7px;margin:8px 0}.roundMeta span,.roundMeta b{min-height:25px;display:flex;align-items:center;border:1px solid rgba(8,27,42,.1);border-radius:7px;padding:0 8px;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:780;background:#eef5f7b8}.roundMeta b{justify-content:center;color:var(--ink);font-variant-numeric:tabular-nums}.rail{display:grid;grid-template-columns:82px minmax(0,1fr) 50px;gap:8px;align-items:center;margin:5px 0}.rail div{height:10px;background:#081b2a14;border-radius:99px;overflow:hidden}.rail i{display:block;height:100%;border-radius:99px}.rail i.green{background:linear-gradient(90deg,var(--teal-dark),var(--teal))}.rail i.red{background:linear-gradient(90deg,#b53a48,var(--coral))}.rail i.blue{background:linear-gradient(90deg,#1875b3,var(--cyan))}.rail b{text-align:right;font-size:12px;font-variant-numeric:tabular-nums}.laneDecision{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:8px}.laneDecision div{border:1px solid rgba(8,27,42,.09);border-radius:7px;padding:6px 7px;background:#eef5f7a8}.laneDecision b{display:block;margin-top:4px;font-size:13px}.modelLens{min-height:100%;height:560px;background:linear-gradient(180deg,#ffffffeb,#ffffffad),var(--panel)}.modelLens svg{display:block;width:100%;height:514px;padding:12px}.modelLens line{stroke:#081b2a29;stroke-width:1.2}.modelLens text{fill:var(--muted);font-size:12px;font-weight:720}.modelLens circle{stroke:#fff;stroke-width:1.4;filter:drop-shadow(0 3px 5px rgba(8,27,42,.18))}.modelLens .hit{fill:var(--teal)}.modelLens .miss{fill:var(--coral)}.modelLens .pending{fill:var(--amber)}.control{display:grid;grid-template-rows:auto auto 1fr;gap:12px;height:560px;overflow:auto}.control section{padding:13px;background:#ffffffd1}.sectionTitle{display:flex;align-items:center;justify-content:space-between;gap:10px}.control section>.statusDot{margin-top:11px}.metricGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.metricGrid .metric{min-height:64px;padding:10px;background:#eef5f7ad}.metricGrid .metric b{font-size:16px}.buttonRow{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.liveGate{display:flex;gap:8px;align-items:center;margin-top:12px;color:var(--muted);font-size:13px}.gateList{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.gateList span{border:1px solid var(--line);border-radius:7px;padding:6px 8px;color:var(--muted);background:#eef5f79e;font-size:11px}.tapeGrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.55fr) minmax(280px,.7fr);gap:12px;margin-top:12px;align-items:start}.rows,.positionRows,.logRows{max-height:360px;overflow:auto;padding:10px}.decisionRow{display:grid;grid-template-columns:44px 74px 70px 80px 62px 64px minmax(0,1fr);gap:8px;align-items:start;border:1px solid rgba(8,27,42,.09);border-radius:7px;background:#ffffffbd;padding:9px;font-size:12px}.decisionRow+.decisionRow,.position+.position,.logRows article+article{margin-top:8px}.decisionRow time,.decisionRow span,.decisionRow em{color:var(--muted);font-style:normal}.decisionRow p{margin:0;color:var(--muted);line-height:1.35;overflow-wrap:anywhere}.position{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;border:1px solid rgba(8,27,42,.09);border-radius:7px;padding:9px;background:#ffffffbd;font-size:12px}.position.open{color:var(--muted)}.position.win{border-left:4px solid var(--teal)}.position.loss{border-left:4px solid var(--coral)}.position span{color:var(--muted)}.empty{color:var(--muted);padding:12px}.logRows article{display:grid;grid-template-columns:44px 54px minmax(0,1fr);gap:8px;border:1px solid rgba(8,27,42,.09);border-radius:7px;padding:8px;background:#ffffffbd;font-size:12px}.logRows time,.logRows span{color:var(--muted)}.pageStack{display:grid;gap:12px}.pageIntro,.modelHero{border:1px solid var(--line);background:#ffffffb8;border-radius:8px;padding:16px}.pageIntro h2,.modelHero h2{margin:0;font-size:24px}.pageIntro p,.modelHero p{margin:6px 0 0;color:var(--muted);line-height:1.45;max-width:880px}.evaluationGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.evalLane{min-height:560px}.evalList{display:grid;gap:8px;max-height:510px;overflow:auto;padding:10px}.evalCard{display:grid;gap:8px;width:100%;min-height:118px;justify-content:stretch;text-align:left;border-radius:8px;padding:10px;background:#ffffffc2}.evalCard.trade{border-left:4px solid var(--teal)}.evalCard.watch{border-left:4px solid var(--cyan)}.evalCard.skip{border-left:4px solid var(--quiet)}.evalCard.idle{border-left:4px solid var(--amber)}.evalHead{display:flex;justify-content:space-between;gap:8px;align-items:center}.evalHead time{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.evalTags{display:flex;flex-wrap:wrap;gap:5px}.evalTags span,.evalTags b{min-height:23px;display:inline-flex;align-items:center;border:1px solid rgba(8,27,42,.1);border-radius:999px;padding:0 7px;color:var(--muted);background:#eef5f7c7;font-size:11px;font-style:normal}.evalCard p{margin:0;color:var(--muted);font-size:12px;line-height:1.35}.detailShade{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:18px;background:#081b2a5c}.detailPanel{width:min(840px,100%);max-height:min(760px,calc(100vh - 36px));overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel-strong);box-shadow:var(--shadow);padding:16px}.detailPanel header{display:flex;justify-content:space-between;gap:14px;align-items:start;padding-bottom:12px;border-bottom:1px solid var(--line)}.detailPanel h2{margin:0}.detailPanel header p{margin:5px 0 0;color:var(--muted);line-height:1.35}.detailGrid,.ledgerStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.explainBlock{margin-top:12px;border:1px solid var(--line);border-radius:8px;background:#eef5f79e;padding:12px}.explainBlock h3{margin:0 0 6px;font-size:13px;text-transform:uppercase;color:var(--muted)}.explainBlock p{margin:0;color:var(--ink-2);line-height:1.45}.detailActions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.simulatorLayout{display:grid;grid-template-columns:350px minmax(0,1fr) minmax(280px,.65fr);gap:12px;align-items:start}.simulatorLayout .control{height:auto}.simLedger{min-height:520px}.simLedger .positions{margin:12px}.modelPage{display:grid;gap:12px}.modelGrid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.85fr) minmax(320px,.8fr);gap:12px}.networkPanel{min-height:560px}.networkStage{position:relative;height:430px;margin:12px;overflow:hidden;border:1px solid rgba(8,27,42,.09);border-radius:8px;background:linear-gradient(125deg,rgba(47,159,232,.12),transparent 38%),linear-gradient(315deg,rgba(0,169,150,.14),transparent 42%),#ffffff9e;perspective:900px}.networkStage:before{content:"";position:absolute;top:12%;right:12%;bottom:12%;left:12%;border:1px solid rgba(8,27,42,.08);transform:rotateX(62deg) rotate(-22deg)}.networkStage svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.networkStage line{stroke:#2f9fe873;vector-effect:non-scaling-stroke;animation:edgeFlow 2.4s ease-in-out infinite}.networkNode{position:absolute;max-width:112px;min-height:30px;display:grid;place-items:center;transform:translate(-50%,-50%) rotateX(8deg);border:1px solid rgba(8,27,42,.13);border-radius:999px;background:#ffffffdb;color:var(--ink-2);padding:5px 9px;text-align:center;font-size:10px;font-weight:820;box-shadow:0 12px 24px #081b2a1f}.networkNode.model{min-width:150px;min-height:48px;border-radius:8px;background:var(--ink);color:#fff;animation:networkPulse 2.5s ease-in-out infinite}.networkNode.output{background:#00a99624;border-color:#00a9964d}.networkPanel>p{margin:0 12px 12px;color:var(--muted);line-height:1.45}.explainModel>div{display:grid;gap:10px;padding:14px}.explainModel p{margin:0;color:var(--ink-2);line-height:1.45;border:1px solid rgba(8,27,42,.09);border-radius:8px;background:#ffffffad;padding:11px}@media(max-width:1260px){.operationsGrid{grid-template-columns:minmax(0,1fr) minmax(360px,.85fr)}.modelLens{grid-column:1 / -1;grid-row:2}.control{grid-column:2;grid-row:1}.evaluationGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.simulatorLayout,.modelGrid{grid-template-columns:1fr}}@media(max-width:980px){.operationsGrid,.tapeGrid{grid-template-columns:1fr}.control,.modelLens{grid-column:auto;grid-row:auto}.heroStats,.detailGrid,.ledgerStats{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{grid-template-columns:1fr;align-items:start}.topStatus{justify-content:flex-start}.modelLens svg{height:360px}}@media(max-width:660px){.app{padding:12px}.heroStats,.laneDecision,.metricGrid,.evaluationGrid,.detailGrid,.ledgerStats,.roundMeta{grid-template-columns:1fr}.decisionRow,.logRows article{grid-template-columns:1fr}.topbar h1{font-size:24px}}@media(prefers-reduced-motion:no-preference){.statusDot.good i{animation:pulse 1.6s ease-in-out infinite}.modelLens .pending{animation:breathe 2.2s ease-in-out infinite}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.32)}}@keyframes breathe{0%,to{opacity:.55}50%{opacity:1}}@keyframes networkPulse{0%,to{box-shadow:0 12px 24px #081b2a1f,0 0 #00a99600}50%{box-shadow:0 18px 34px #081b2a29,0 0 28px #00a99642}}@keyframes edgeFlow{0%,to{opacity:.32}50%{opacity:.86}}
