:root{--ink: #080b10;--panel: #0f151d;--panel-2: #141c26;--raise: #1a2331;--line: rgba(150, 175, 205, .1);--line-strong: rgba(150, 175, 205, .2);--text: #e7eef6;--muted: #8d9bb0;--faint: #586677;--accent: #28e0c4;--accent-deep: #0fb6a0;--accent-glow: rgba(40, 224, 196, .22);--prog: #3ddc84;--nonprog: #f5c451;--immotile: #687385;--danger: #ff6b6b;--sans: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;--r-sm: 6px;--r-md: 10px;--r-lg: 14px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--sans);color:var(--text);background-color:var(--ink);background-image:radial-gradient(900px 500px at 78% -8%,rgba(40,224,196,.08),transparent 60%),linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:100% 100%,27px 27px,27px 27px;-webkit-font-smoothing:antialiased;line-height:1.45}.app{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 26px;border-bottom:1px solid var(--line);background:#080b10b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:baseline;gap:12px}.brand .mark{font-family:var(--mono);font-weight:600;font-size:19px;letter-spacing:-.5px;color:var(--text)}.brand .mark b{color:var(--accent)}.brand .tag{font-size:12px;color:var(--faint);letter-spacing:.04em;text-transform:uppercase}.badges{display:flex;gap:10px;align-items:center}.badge{font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--muted);border:1px solid var(--line-strong);border-radius:100px;padding:5px 11px;display:inline-flex;align-items:center;gap:7px}.badge .dot{width:7px;height:7px;border-radius:50%;background:var(--prog);box-shadow:0 0 9px var(--prog)}.badge.rnd{color:var(--nonprog);border-color:#f5c45159}.main{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 412px;gap:22px;padding:22px 26px 40px;max-width:1500px;width:100%;margin:0 auto}@media (max-width: 1080px){.main{grid-template-columns:1fr}}.panel{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.panel+.panel{margin-top:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--line)}.panel-head h2{font-size:12px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.panel-body{padding:16px}.stage-wrap{position:relative;background:radial-gradient(circle at 50% 40%,#0c1219,#05080c);border-radius:var(--r-lg);border:1px solid var(--line);aspect-ratio:16 / 10;display:flex;align-items:center;justify-content:center;overflow:hidden}.stage-media{position:relative;max-width:100%;max-height:100%;line-height:0}.stage-media video{display:block;max-width:100%;max-height:70vh}.stage-media canvas.overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.empty{text-align:center;padding:40px;color:var(--faint);max-width:440px;cursor:pointer}.empty .reticle,.empty h3{transition:all .18s ease}.empty:hover .reticle{border-color:var(--accent);box-shadow:0 0 24px -6px var(--accent-glow)}.empty:hover h3{color:var(--accent)}.empty .reticle{width:64px;height:64px;margin:0 auto 18px;border:1px solid var(--line-strong);border-radius:50%;position:relative}.empty .reticle:before,.empty .reticle:after{content:"";position:absolute;background:var(--accent);opacity:.5}.empty .reticle:before{left:50%;top:12px;bottom:12px;width:1px;transform:translate(-50%)}.empty .reticle:after{top:50%;left:12px;right:12px;height:1px;transform:translateY(-50%)}.empty h3{color:var(--text);font-size:15px;margin-bottom:6px}.empty p{font-size:13px;line-height:1.6}.stage-badge{position:absolute;top:12px;left:12px;font-family:var(--mono);font-size:11px;color:var(--text);background:#05080cb3;border:1px solid var(--line-strong);border-radius:100px;padding:5px 11px;display:flex;gap:8px;align-items:center}.stage-badge .rec{width:8px;height:8px;border-radius:50%;background:var(--danger);animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}.actionbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:16px}.btn{font-family:var(--sans);font-weight:600;font-size:13px;border-radius:var(--r-md);padding:11px 18px;border:1px solid var(--line-strong);background:var(--raise);color:var(--text);cursor:pointer;transition:transform .08s ease,border-color .15s ease,background .15s ease;display:inline-flex;align-items:center;gap:9px}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:linear-gradient(180deg,var(--accent),var(--accent-deep));color:#042b27;border-color:transparent;box-shadow:0 6px 20px -8px var(--accent-glow)}.btn.ghost{background:transparent}.file-label{position:relative;overflow:hidden}.file-label input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.hero-metric{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:26px 22px 24px;text-align:center}.hero-metric .k{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint)}.hero-metric .v{font-family:var(--mono);font-size:56px;font-weight:600;margin:10px 0 6px;color:var(--accent);font-variant-numeric:tabular-nums;line-height:1}.hero-metric .sub{font-size:11.5px;color:var(--muted);letter-spacing:.01em}.hero-metric.muted .v{color:var(--muted)}.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;position:relative}.tile .k{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.tile .v{font-family:var(--mono);font-size:27px;font-weight:600;margin-top:6px;color:var(--text);font-variant-numeric:tabular-nums;line-height:1}.tile .v .u{font-size:12px;color:var(--muted);font-weight:400;margin-left:4px}.tile.accent .v{color:var(--accent)}.mbar{height:12px;border-radius:100px;overflow:hidden;display:flex;background:var(--panel);border:1px solid var(--line);margin:4px 0 14px}.mbar i{height:100%;display:block;transition:width .4s ease}.mbar i.p{background:var(--prog)}.mbar i.n{background:var(--nonprog)}.mbar i.i{background:var(--immotile)}.legend{display:flex;flex-direction:column;gap:9px}.legend .row{display:flex;align-items:center;justify-content:space-between;font-size:13px}.legend .row .name{display:flex;align-items:center;gap:9px;color:var(--muted)}.legend .sw{width:11px;height:11px;border-radius:3px}.legend .sw.p{background:var(--prog)}.legend .sw.n{background:var(--nonprog)}.legend .sw.i{background:var(--immotile)}.legend .val{font-family:var(--mono);color:var(--text);font-variant-numeric:tabular-nums}.kin{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.kin .cell{text-align:center;border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 6px;background:var(--panel)}.kin .cell .label{font-size:10px;color:var(--faint);letter-spacing:.08em}.kin .cell .num{font-family:var(--mono);font-size:16px;margin-top:4px;font-variant-numeric:tabular-nums}.kin .cell .unit{font-size:9px;color:var(--faint)}.field{margin-bottom:14px}.field:last-child{margin-bottom:0}.field label{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:7px}.field label .num{font-family:var(--mono);color:var(--accent);font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--accent);height:4px}input[type=number],select{width:100%;background:var(--ink);border:1px solid var(--line-strong);color:var(--text);border-radius:var(--r-sm);padding:8px 10px;font-family:var(--mono);font-size:13px}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.seg{display:flex;border:1px solid var(--line-strong);border-radius:var(--r-md);overflow:hidden}.seg button{flex:1;background:transparent;border:none;color:var(--muted);font-family:var(--sans);font-size:12.5px;font-weight:500;padding:9px;cursor:pointer;transition:all .15s ease}.seg button.on{background:var(--raise);color:var(--accent)}.toggle-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted)}.switch{width:40px;height:22px;border-radius:100px;border:1px solid var(--line-strong);background:var(--ink);position:relative;cursor:pointer;transition:background .15s ease}.switch.on{background:var(--accent-deep);border-color:var(--accent)}.switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--text);transition:transform .15s ease}.switch.on:after{transform:translate(18px)}.note{font-size:11.5px;color:var(--faint);line-height:1.55;margin-top:10px;padding:10px;border-left:2px solid var(--line-strong);background:#0003;border-radius:0 var(--r-sm) var(--r-sm) 0}.note b{color:var(--muted)}.live-strip{display:flex;gap:18px;font-family:var(--mono);font-size:12px;color:var(--muted)}.live-strip .lv b{color:var(--accent);font-weight:600}.disclaimer{text-align:center;font-size:12px;color:var(--faint);padding:10px 26px 28px;letter-spacing:.02em}.disclaimer a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease}.disclaimer a:hover{border-color:var(--accent)}.mod-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 12px 7px 10px;font-family:var(--mono);font-size:11.5px;letter-spacing:.02em;border:1px solid var(--line-strong);border-radius:100px;background:var(--ink);color:var(--muted);cursor:pointer;transition:border-color .15s ease,color .15s ease}.mod-chip:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.mod-chip:disabled{opacity:.5;cursor:not-allowed}.mod-chip .mod-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.mod-chip.bright{border-color:#f5c45166;color:var(--nonprog)}.mod-chip.bright .mod-dot{background:var(--nonprog);box-shadow:0 0 8px #f5c45166}.mod-chip .mod-swap{opacity:.45;margin-left:2px;font-size:12px}.warn-banner{border:1px solid rgba(245,196,81,.35);background:#f5c4510f;color:var(--text);border-radius:var(--r-md);padding:12px 14px;font-size:12.5px;line-height:1.55;margin-bottom:16px}.warn-banner b{color:var(--nonprog);font-weight:600}.link-btn{background:none;border:none;padding:0;font:inherit;color:var(--accent);cursor:pointer;border-bottom:1px solid transparent;transition:border-color .15s ease}.link-btn:hover{border-color:var(--accent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#02060ab3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:26px;animation:fadein .18s ease}@keyframes fadein{0%{opacity:0}}.modal{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line-strong);border-radius:var(--r-lg);max-width:620px;width:100%;max-height:88vh;overflow:auto;box-shadow:0 30px 80px -20px #0009}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--text)}.modal-close{background:none;border:1px solid var(--line);color:var(--muted);width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease,color .15s ease}.modal-close:hover{border-color:var(--accent);color:var(--accent)}.modal-body{padding:18px 22px 22px;font-size:13.5px;line-height:1.6;color:var(--text)}.modal-body h3{font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:18px;margin-bottom:8px}.modal-body h3:first-of-type{margin-top:22px}.modal-body p{margin-bottom:10px;color:var(--text)}.modal-body ul{margin:0 0 4px 16px}.modal-body li{margin-bottom:6px}.modal-body b{color:var(--accent)}.modal-foot{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:11.5px;color:var(--faint)}
