:root{color:#e8f3ee;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#04080b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#04080b;min-width:320px;min-height:100vh;margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}button,input,select,textarea{font-synthesis:none}button:disabled{cursor:not-allowed;opacity:.48}#root{min-height:100vh}.sim-app{--bg:#04080b;--panel:#081015;--panel-strong:#0b151b;--panel-soft:#081015f0;--line:#76becd2e;--line-strong:#7ad3e56b;--text:#e6eef1;--muted:#8d9ea5;--green:#78cada;--amber:#ffc166;--red:#ff776f;background:var(--bg);height:100vh;min-height:100vh;color:var(--text);grid-template-rows:58px minmax(0,1fr);display:grid;overflow:hidden}.topbar{border-bottom:1px solid var(--line-strong);z-index:8;background:#071015;justify-content:space-between;align-items:center;gap:20px;min-width:0;padding:0 18px;display:flex;box-shadow:0 10px 30px #00000047}.topbar h1,.admin-header h1{color:var(--text);letter-spacing:.04em;margin:0;font-size:19px;font-weight:650;line-height:1}.eyebrow{color:var(--green);letter-spacing:.16em;margin:0 0 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px}.engine-strip{border:1px solid var(--line);color:#adc2ba;white-space:nowrap;background:#0a151a;align-items:center;gap:11px;min-height:32px;padding:0 12px;font:11px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:inline-flex}.engine-strip strong{color:var(--green);font-weight:700}.link-status{border-left:1px solid var(--line);color:var(--amber);padding-left:11px}.engine-dot{background:var(--amber);border-radius:50%;width:8px;height:8px;box-shadow:0 0 12px #ffc166b8}.engine-dot.ready{background:var(--green);box-shadow:0 0 12px #78cadab8}.workbench{grid-template-columns:var(--left-panel-width,minmax(300px, 22vw)) 8px minmax(430px, 1fr) minmax(310px, 22vw);background:#03070a;height:calc(100vh - 58px);min-height:0;display:grid;overflow:hidden}.left-panel,.right-panel{background:var(--panel-soft);box-sizing:border-box;min-width:0;min-height:0}.left-panel{border-right:1px solid var(--line);grid-template-rows:54px 42px minmax(220px,1fr) auto minmax(116px,22%);display:grid;overflow:hidden}.right-panel{border-left:1px solid var(--line);flex-direction:column;padding-bottom:18px;display:flex;overflow-y:auto}.left-panel-resizer{z-index:5;cursor:col-resize;border-right:1px solid var(--line);background:#050b0f;position:relative}.left-panel-resizer:before{content:"";background:#78cada57;width:2px;height:48px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.left-panel-resizer:hover,.is-resizing-left-panel .left-panel-resizer{background:#0c1c23}.is-resizing-left-panel{cursor:col-resize;-webkit-user-select:none;user-select:none}.panel-title,.right-rail-title{border-bottom:1px solid var(--line);background:#0a151a;justify-content:space-between;align-items:center;gap:12px;min-height:54px;padding:0 12px 0 15px;display:flex}.panel-title>span,.right-rail-title strong{color:var(--text);letter-spacing:.05em;font-size:13px;font-weight:650}.right-rail-title{flex-direction:column;flex:none;justify-content:center;align-items:flex-start;gap:3px}.right-rail-title span{color:var(--green);letter-spacing:.18em;font:9px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}button,select,textarea,input{border-radius:2px}button:focus-visible,select:focus-visible,textarea:focus-visible,input:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.primary-action{color:#ffe0a8;background:#3d2f18;border:1px solid #ffc166b3;height:30px;padding:0 15px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:800}.primary-action:hover:not(:disabled){background:#5a431e}.code-tabs,.tag-toolbar{border-bottom:1px solid var(--line);background:#08130f;gap:6px;padding:6px 9px;display:flex}.code-tabs{align-items:center}.code-file-actions{gap:5px;margin-left:auto;display:flex}.code-tabs button,.tag-toolbar button,.view-switch button,.control-cluster button,.admin-login button,.admin-actions button,.danger-action,.copy-action,.code-modal-title button,.admin-header a{border:1px solid var(--line);color:#b9cec6;background:#0d1d24;text-decoration:none}.code-tabs button,.tag-toolbar button,.view-switch button{min-height:28px;padding:0 9px;font-size:11px}.code-tabs button:hover,.tag-toolbar button:hover,.view-switch button:hover,.control-cluster button:hover:not(:disabled){border-color:var(--line-strong);color:var(--text)}.code-tabs .active,.view-switch .active{color:#dff8fc;background:#12313a;border-color:#78cadab8}.file-input{display:none}.code-view{scrollbar-color:#2c4b55 #081015;background:#050c09;min-height:0;padding:10px 0 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.5;overflow:auto}.code-line{color:#8ed8bc;text-align:left;background:0 0;border:0;border-left:2px solid #0000;grid-template-columns:38px minmax(0,1fr);align-items:start;gap:8px;width:100%;min-height:22px;padding:2px 9px 2px 0;display:grid}.code-line:hover{background:#78cada0d}.code-line.active{border-left-color:var(--amber);color:#ffe0a8;background:#ffc1661f}.line-no{color:#4f7165;text-align:right;-webkit-user-select:none;user-select:none}.line-text{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.code-editor-shell{background:#050c09;grid-template-columns:42px minmax(0,1fr);height:100%;min-height:0;display:grid}.editor-gutter{border-right:1px solid var(--line);color:#4f7165;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 7px 14px 0;font:11px/18px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.editor-gutter div{height:18px;line-height:18px}.code-editor{resize:none;color:#98dbbf;box-sizing:border-box;white-space:pre;background:0 0;border:0;outline:0;width:100%;height:100%;min-height:0;padding:14px;font:11px/18px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.module-list{border-top:1px solid var(--line);background:#071015;padding:9px 9px 18px;overflow:auto}.module-row{border:1px solid var(--line);color:var(--text);text-align:left;background:#0a151a;grid-template-columns:1fr;gap:5px;width:100%;margin-bottom:7px;padding:8px 9px;display:grid}.code-block-row:hover{border-color:var(--line-strong);background:#10242b}.module-row strong{color:#dcebe5;font-size:12px}.module-row p,.empty-block{color:var(--muted);margin:0;font-size:11px}.empty-block{border:1px dashed var(--line);padding:13px}.scene-panel{background:#071117;grid-template-rows:minmax(0,1fr) 56px;min-width:0;min-height:0;display:grid}.scene-canvas{background:#08141a;min-width:0;min-height:0;position:relative;overflow:hidden}.scene-canvas:after{content:"";pointer-events:none;border:1px solid #78cada1a;position:absolute;inset:0}.scene-canvas canvas{display:block}.tactical-stage-header{z-index:3;min-height:48px;color:var(--text);pointer-events:none;border-top:1px solid #78cada7a;justify-content:space-between;align-items:flex-start;gap:16px;padding:9px 0 0;display:flex;position:absolute;top:14px;left:14px;right:14px}.tactical-stage-header>div:first-child{gap:4px;display:grid}.tactical-stage-header span{color:var(--green);letter-spacing:.14em;font:9px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.tactical-stage-header strong{color:#d9e9e3;letter-spacing:.08em;font:600 11px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.plot-metrics{border-left:1px solid var(--line);gap:14px;padding-left:14px;display:flex}.plot-metrics span{color:#cbe1d8;letter-spacing:.04em}.north-indicator{z-index:3;border-bottom:1px solid var(--line-strong);color:var(--green);letter-spacing:.12em;pointer-events:none;padding:0 10px 5px;font:10px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;position:absolute;top:78px;left:50%;transform:translate(-50%)}.fixed-entity-hud{z-index:3;pointer-events:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:min(650px,100% - 28px);display:grid;position:absolute;top:auto;bottom:16px;left:14px}.entity-card{border-left:2px solid var(--green);min-width:0;color:var(--text);background:#060d11d1;border-top:1px solid #78cada33;align-content:start;gap:5px;padding:7px 8px 8px;display:grid;box-shadow:0 8px 24px #0003}.entity-card.projectile{border-left-color:var(--amber)}.entity-card.target{border-left-color:var(--red)}.entity-card-head,.entity-card-data{justify-content:space-between;align-items:center;gap:8px;display:flex}.entity-card-head span,.entity-card-head em,.entity-card small{font:9px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.entity-card-head span{color:#a7beb5;letter-spacing:.08em}.entity-card-head em{color:var(--amber);font-style:normal}.entity-card strong{color:#e3f1eb;font-size:11px}.entity-card small{color:#84a398;overflow-wrap:anywhere}.entity-position{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#67877b!important}.scene-toolbar{border-top:1px solid var(--line-strong);background:#08120f;align-items:center;gap:12px;min-width:0;padding:0 12px;display:flex}.control-cluster{gap:5px;display:flex}.control-cluster button,.animation-mode-switch button{min-width:48px;height:30px;padding:0 9px;font-size:10px}.animation-mode-switch{align-items:center;gap:4px;display:flex}.animation-mode-switch button{border:1px solid var(--line);color:#b9cec6;background:#0d1d24}.animation-mode-switch button:hover,.animation-mode-switch button.active{color:#ffe0a8;border-color:#ffc166b8}.animation-mode-switch button.active{background:#3d2f18}.animation-mode-switch span{color:var(--amber);white-space:nowrap;font:9px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.timeline{color:#b9cec6;flex:1;grid-template-columns:52px minmax(80px,1fr) 56px;align-items:center;gap:8px;min-width:150px;font:10px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:grid}input[type=range]{accent-color:#78cada;width:100%}.view-switch{gap:4px;display:flex}.playback-speed{min-width:116px;color:var(--amber);grid-template-columns:30px 1fr;align-items:center;gap:6px;font:10px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:grid}.control-panel,.terminal-panel{border-bottom:1px solid var(--line);padding:13px 14px 15px}.control-panel h2,.terminal-panel h2{color:#dcebe5;letter-spacing:.04em;margin:0 0 11px;font-size:13px;font-weight:650}.control-panel label{color:var(--muted);gap:6px;margin-bottom:11px;font-size:11px;display:grid}select,.scenario-fixed,.admin-login input,.admin-editor input,.admin-editor textarea{border:1px solid var(--line);width:100%;min-height:32px;color:var(--text);box-sizing:border-box;background:#091612;outline:0;padding:7px 9px}.status-grid{grid-template-columns:1fr 1fr;gap:7px;display:grid}.status-grid div{border-top:1px solid var(--line);background:#78cada09;align-content:center;gap:4px;min-height:49px;padding:7px 8px;display:grid}.status-grid span,.status-grid strong{font-size:10px}.status-grid span{color:var(--muted)}.status-grid strong{color:var(--green);overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.data-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:10px}.data-table th,.data-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:7px 6px}.data-table th{color:var(--muted);text-align:left;width:70px;font-weight:500}.data-table td{color:#dfece7;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.iteration-output{margin-top:13px}.iteration-output h3{color:#a9c1b7;margin:0 0 7px;font-size:11px}.iteration-table{font-size:9px}.iteration-table th{width:auto}.iteration-col-round{width:38px}.iteration-col-point{width:72px}.iteration-col-distance{width:60px}.iteration-col-time{width:66px}.iteration-col-azimuth{width:84px}.iteration-table th,.iteration-table td{padding:5px 4px}.iteration-round{white-space:nowrap}.trajectory-color{border-radius:50%;width:6px;height:6px;margin-right:3px;display:inline-block;box-shadow:0 0 7px}.terminal-panel{flex:none;grid-template-rows:auto 1fr;min-height:190px;display:grid}.terminal-panel pre,.code-modal pre{border:1px solid var(--line);color:#78cca9;white-space:pre-wrap;background:#030a07;margin:0;padding:10px;font:10px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.terminal-panel pre{min-height:128px}.code-modal-backdrop{z-index:20;background:#000503c7;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.code-modal{border:1px solid var(--line-strong);background:#07110e;grid-template-rows:auto minmax(0,1fr);width:min(780px,100%);max-height:min(720px,92vh);display:grid;box-shadow:0 24px 70px #00000094}.code-modal-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px;display:flex}.code-modal-title strong{color:var(--text);font-size:15px}.code-modal-title p{color:var(--muted);margin:5px 0 0;font-size:11px}.code-modal-title button,.copy-action{min-height:30px;padding:0 11px}.code-modal-body{min-height:0;position:relative;overflow:hidden}.copy-action{z-index:2;position:absolute;top:10px;right:10px}.code-modal pre{height:100%;padding:16px 84px 16px 16px}.admin-app{--line:#81cdb133;--line-strong:#81e2be7a;--text:#e8f3ee;--muted:#8ca69c;--green:#72e0b7;min-height:100vh;color:var(--text);background:#030806;grid-template-rows:64px 1fr;display:grid}.admin-header{border-bottom:1px solid var(--line-strong);background:#07100e;justify-content:space-between;align-items:center;gap:16px;padding:0 22px;display:flex}.admin-header a{place-items:center;min-height:30px;padding:0 12px;display:inline-grid}.admin-shell{grid-template-columns:minmax(300px,26vw) minmax(0,1fr);min-height:0;display:grid}.admin-sidebar{border-right:1px solid var(--line);background:#07110e;min-height:0;padding:16px;overflow:auto}.admin-login{gap:10px;display:grid}.admin-login label,.admin-editor label{color:var(--muted);gap:6px;font-size:11px;display:grid}.admin-actions{grid-template-columns:1fr 1fr;gap:8px;margin:14px 0;display:grid}.admin-actions button,.admin-login button,.danger-action{min-height:30px;padding:0 12px}.admin-message{border:1px solid var(--line);color:#b9cec6;background:#0a1713;margin-bottom:12px;padding:10px;font-size:11px}.admin-list{gap:8px;display:grid}.admin-list button{border:1px solid var(--line);color:var(--text);text-align:left;background:#0a1713;border-radius:2px;padding:10px}.admin-list button.active{border-color:var(--line-strong);background:#173a2e}.admin-list strong,.admin-list span{display:block}.admin-list strong{font-size:12px}.admin-list span{color:var(--muted);margin-top:5px;font-size:11px}.admin-editor{background:#050c09;align-content:start;gap:14px;min-height:0;padding:18px;display:grid;overflow:auto}.admin-description{resize:vertical;min-height:84px}.admin-code{resize:vertical;white-space:pre;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;min-height:420px!important}.danger-action{color:#ffc6c2;background:#3e1e1c;border-color:#ff776f99;justify-self:start}@media (width<=1320px){.workbench{grid-template-columns:var(--left-panel-width,290px) 8px minmax(390px, 1fr) minmax(290px, 21vw)}.scene-toolbar{gap:8px}.playback-speed{min-width:94px}.view-switch button{padding:0 7px}}@media (width<=1100px){body{overflow:auto}.sim-app{grid-template-rows:auto 1fr;height:auto;min-height:100vh;overflow:visible}.topbar{flex-wrap:wrap;min-height:66px;padding:10px 14px}.workbench{grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);grid-template-areas:"scene scene""left right";height:auto;overflow:visible}.left-panel-resizer{display:none}.scene-panel{grid-area:scene;min-height:620px}.left-panel{border-top:1px solid var(--line);grid-area:left;min-height:590px}.right-panel{border-top:1px solid var(--line);grid-area:right;min-height:590px}.admin-shell{grid-template-columns:1fr}.admin-sidebar{border-right:0;border-bottom:1px solid var(--line)}}@media (width<=760px){.topbar h1{font-size:16px}.engine-strip{width:100%;overflow-x:auto}.workbench{grid-template-columns:1fr;grid-template-areas:"scene""left""right"}.scene-panel{grid-template-rows:470px auto;min-height:590px}.scene-toolbar{flex-wrap:wrap;align-content:center;align-items:center;min-height:112px;padding:9px}.control-cluster{order:1}.animation-mode-switch{order:2}.view-switch{order:3;margin-left:auto}.timeline{flex:1 0 100%;order:4}.playback-speed{flex:1 0 100%;order:5}.tactical-stage-header{gap:8px}.plot-metrics{gap:7px;padding-left:8px}.plot-metrics span{font-size:8px}.north-indicator{display:none}.fixed-entity-hud{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:auto;inset:auto 10px 12px}.entity-card{padding:6px}.entity-card-data,.entity-position{display:none}.entity-card-head{gap:2px;display:grid}.left-panel,.right-panel{min-height:560px}.status-grid{grid-template-columns:1fr 1fr}}@media (width<=520px){.eyebrow{font-size:8px}.link-status{display:none}.scene-panel{grid-template-rows:440px auto;min-height:570px}.tactical-stage-header{left:10px;right:10px}.plot-metrics{gap:3px;display:grid}.control-cluster button{min-width:44px;padding:0 7px}.view-switch{width:100%;margin-left:0}.animation-mode-switch{margin-left:auto}.view-switch button{flex:1}.timeline{grid-template-columns:46px minmax(70px,1fr) 48px}.fixed-entity-hud{bottom:8px}.entity-card strong{font-size:9px}.entity-card-head span,.entity-card-head em{font-size:7px}.status-grid{grid-template-columns:1fr}}
