:root{--bg: #0b1220;--panel: #111a2b;--panel-2: #152137;--line: #22304a;--text: #dbe4f0;--muted: #8a9bb4;--accent: #22d3ee;--ok: #10b981;--warn: #f59e0b;--bad: #ef4444;--info: #38bdf8;--violet: #a78bfa;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:13px;color:var(--text);background:var(--bg)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg)}button,select,input{font:inherit;color:var(--text)}button{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:5px 10px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.4;cursor:default}button.primary{background:#0e7490;border-color:#0e7490;font-weight:600}button.on{background:#0e3a4a;border-color:var(--accent);color:#e0faff}button.link{background:none;border:none;color:var(--accent);padding:0 4px 0 0}select{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:5px 6px;max-width:360px}code,.mono{font-family:JetBrains Mono,Consolas,monospace;font-size:11.5px}.muted{color:var(--muted)}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.controlbar{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;padding:8px 14px;background:#0d1626;border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center}.brand .logo{width:34px;height:34px;display:grid;place-items:center;background:#0e3a4a;color:var(--accent);font-weight:800;border-radius:8px;font-size:16px}.brand small,.clock small{display:block;color:var(--muted);font-size:11px}.ctl-group{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.ctl-group.clock{margin-left:auto;gap:14px}.speed{display:flex;gap:4px;align-items:center;color:var(--muted)}.chip{padding:3px 8px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted);font-size:11.5px}.chip.ok{color:var(--ok);border-color:#065f46}.chip.bad{color:var(--bad);border-color:#7f1d1d}.progress{position:relative;width:140px;height:20px;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;overflow:hidden}.progress div{position:absolute;inset:0 auto 0 0;background:#0e7490}.progress span{position:relative;display:block;text-align:center;line-height:18px;font-size:11px}.seg{display:flex}.seg button{border-radius:0}.seg button:first-child{border-radius:6px 0 0 6px}.seg button:last-child{border-radius:0 6px 6px 0}.validation-errors{margin:10px 14px;padding:10px 14px;background:#2a1215;border:1px solid #7f1d1d;border-radius:8px;max-height:40vh;overflow:auto}.validation-errors li{margin:3px 0}.layout{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 440px;min-height:0}.main-col{display:grid;grid-template-rows:minmax(0,1fr) 230px;min-height:0;border-right:1px solid var(--line)}.viewport{position:relative;min-height:0}.view3d,.schematic{position:absolute;top:0;right:0;bottom:0;left:0}.schematic svg{width:100%;height:100%;display:block;background:#0a111d}.view-caption{position:absolute;left:10px;bottom:8px;right:260px;color:var(--muted);font-size:11px;background:#0b1220bf;padding:4px 8px;border-radius:6px;pointer-events:none}.legend{position:absolute;right:10px;bottom:8px;display:flex;flex-wrap:wrap;gap:8px;max-width:250px;background:#0b1220bf;padding:5px 8px;border-radius:6px;font-size:11px;color:var(--muted);pointer-events:none}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;vertical-align:-1px}.label-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.scene-label{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;pointer-events:auto;cursor:pointer;white-space:nowrap;background:#0d1626db;border:1px solid #2b3b58;border-radius:6px;padding:2px 7px;font-size:11px;line-height:1.3}.scene-label b{color:#e2f6ff;font-weight:600}.scene-label span{color:var(--muted);font-size:10.5px}.scene-label.small{padding:1px 5px;font-size:10px;opacity:.85}.scene-label.facility{background:#0e3a4ab3;border-color:#155e75}.scene-label.alert{border-color:var(--bad)}.scene-label.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.sym{cursor:pointer}.sym.selected>*:first-child{filter:drop-shadow(0 0 6px #38bdf8)}.sym-tag{fill:#e2e8f0;font-size:12px;font-weight:600}.sym-val{fill:#8a9bb4;font-size:10.5px}.sym-mini{fill:#cbd5e1;font-size:10px;font-weight:700}.flow-dash{stroke-dasharray:10 10;animation:dash .9s linear infinite}@keyframes dash{to{stroke-dashoffset:-20}}.timeline{display:flex;flex-direction:column;min-height:0;background:var(--panel);border-top:1px solid var(--line)}.tl-head{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;padding:6px 10px;border-bottom:1px solid var(--line)}.tl-filters{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto;align-items:center}.tl-filters button{padding:2px 7px;font-size:11px}.tl-filters label{color:var(--muted);font-size:11px}.tl-body{overflow:auto;flex:1;font-size:11.5px}.tl-row{display:grid;grid-template-columns:68px 56px 200px 1fr auto;gap:8px;padding:3px 10px;border-bottom:1px solid #152036;cursor:default}.tl-row:hover{background:#142036}.tl-time{color:var(--muted);font-family:Consolas,monospace}.tl-step{color:var(--muted)}.tl-type{font-weight:600;overflow:hidden;text-overflow:ellipsis}.tl-sum{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl-hash{color:#64748b;font-family:Consolas,monospace}.cat-transition .tl-type{color:var(--accent)}.cat-passport .tl-type{color:var(--violet)}.cat-rejection .tl-type,.cat-alert .tl-type,.cat-issue .tl-type{color:var(--bad)}.cat-equipment .tl-type{color:#94a3b8}.cat-operation .tl-type{color:var(--warn)}.cat-command .tl-type{color:#64748b}.side-col{display:flex;flex-direction:column;min-height:0;background:var(--panel)}.tabs{display:flex;border-bottom:1px solid var(--line)}.tabs button{flex:1;border:none;border-radius:0;background:transparent;padding:9px 4px;border-bottom:2px solid transparent;position:relative}.tabs button.on{border-bottom-color:var(--accent);color:#e0faff;background:#0f1b2e}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-left:5px}.dot.bad{background:var(--bad)}.tab-body{flex:1;overflow:auto}.inspector{padding:10px 12px 30px}.insp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px}.insp-head h2{margin:0;font-size:17px}.insp-head p{margin:2px 0 0;color:var(--muted)}.section{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:8px 0;background:#0f1828}.section>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;gap:6px}.section h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#9fb3cf}.kv{display:grid;grid-template-columns:140px 1fr;gap:3px 10px;margin:4px 0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.badge{display:inline-block;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid transparent;background:#1e293b;color:#cbd5e1;white-space:nowrap}.badge.ok{background:#052e22;color:#34d399;border-color:#065f46}.badge.bad{background:#2a0f12;color:#f87171;border-color:#7f1d1d}.badge.warn{background:#2b1d06;color:#fbbf24;border-color:#78350f}.badge.info{background:#062a3a;color:#67e8f9;border-color:#155e75}.badge.violet{background:#1e1638;color:#c4b5fd;border-color:#4c1d95}.callout{padding:7px 10px;border-radius:7px;margin:6px 0;border:1px solid var(--line)}.callout.ok{background:#052e22;border-color:#065f46}.callout.bad{background:#2a0f12;border-color:#7f1d1d}.callout.warn{background:#2b1d06;border-color:#78350f}.callout.info{background:#062a3a;border-color:#155e75}.meter{position:relative;height:20px;background:#0b1322;border:1px solid var(--line);border-radius:5px;overflow:hidden;margin:5px 0}.meter-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#0e7490,#22d3ee)}.meter-fill.warn{background:linear-gradient(90deg,#b45309,#f59e0b)}.meter span{position:relative;display:block;line-height:18px;padding:0 8px;font-size:11.5px}.empty{color:var(--muted);padding:14px;text-align:center}.op-row{padding:4px 0;border-bottom:1px solid #172338}.tbl{width:100%;border-collapse:collapse;font-size:11.5px;margin-top:6px}.tbl th,.tbl td{text-align:left;padding:3px 5px;border-bottom:1px solid #1b2840}.tbl th{color:var(--muted);font-weight:600}.ghg-bar{position:relative;height:22px;background:#0b1322;border:1px solid var(--line);border-radius:5px;overflow:hidden}.ghg-bar>div{position:absolute;inset:0 auto 0 0}.ghg-bar>div.ok{background:#065f46}.ghg-bar>div.bad{background:#7f1d1d}.ghg-bar i{position:absolute;top:0;bottom:0;width:2px;background:#fbbf24}.ghg-bar span{position:relative;display:block;padding:0 8px;line-height:20px;font-size:11.5px}.records{list-style:none;padding:0;margin:0}.records li{padding:5px 0 5px 10px;border-left:2px solid #1f3a55;margin-left:4px}.records li+li{border-top:1px dashed #18263d}.pp-list{border:1px solid var(--line);border-radius:8px;margin-bottom:8px}.pp-list-head{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-bottom:1px solid var(--line)}.pp-items{max-height:150px;overflow:auto}.pp-item{display:flex;gap:6px;align-items:center;width:100%;border:none;border-radius:0;background:transparent;text-align:left;border-bottom:1px solid #152036}.pp-item span{flex:1}.pp-item.sel{background:#0e2a3a}.json{background:#0a1220;border:1px solid var(--line);border-radius:6px;padding:8px;max-height:260px;overflow:auto;font-size:11px}.btn-row{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}.lineage{overflow:auto;max-height:340px;border:1px solid var(--line);border-radius:6px;background:#0a1220;margin-top:6px}.lin-node{cursor:pointer}.lin-level{fill:#0b1220;font-size:11px;font-weight:800}.lin-title{fill:#e2e8f0;font-size:11px;font-weight:600}.lin-sub{fill:#8a9bb4;font-size:10px}.inv-row{padding:4px 0;border-bottom:1px solid #172338}.rule{display:inline-block;margin:2px 4px 2px 0;padding:0 5px;border-radius:4px;background:#1b2638;color:#fbbf24}.mini-bar{position:relative;width:70px;height:9px;background:#0b1322;border-radius:3px}.mini-bar div{position:absolute;inset:0 auto 0 0;background:var(--accent);border-radius:3px}.mini-bar i{position:absolute;top:-2px;bottom:-2px;width:2px;background:#fbbf24}.steps{list-style:none;padding:0 12px 20px;margin:0}.step{padding:6px 8px;border:1px solid var(--line);border-radius:7px;margin:5px 0;background:#0f1828}.step.next{border-color:var(--accent)}.step.rejected{border-color:#7f1d1d}.step.running,.step.interrupted{border-color:#78350f}.claims>div{padding:2px 0}@media(max-width:1100px){.app{height:auto;min-height:100vh;overflow:visible}.layout{display:block}.main-col{display:grid;grid-template-rows:60vh 260px;border-right:none}.side-col{min-height:70vh;border-top:1px solid var(--line)}.tab-body{overflow:visible}.ctl-group.clock{margin-left:0}}@media(max-width:600px){.controlbar{padding:8px 16px}select{max-width:100%}.tl-row{grid-template-columns:56px 1fr}.tl-step,.tl-hash{display:none}.tl-sum{grid-column:1 / -1;white-space:normal}.kv{grid-template-columns:110px 1fr}.view-caption{right:10px;bottom:44px}}
