@font-face{font-family:"Exo 2";font-weight:400;font-style:normal;font-display:swap;src:url(/dsp/assets/Exo2-Bold-CzJRY8la.woff2) format("woff2")}@font-face{font-family:"Exo 2";font-weight:600;font-style:normal;font-display:swap;src:url(/dsp/assets/Exo2-Bold-CzJRY8la.woff2) format("woff2")}@font-face{font-family:"Exo 2";font-weight:700;font-style:normal;font-display:swap;src:url(/dsp/assets/Exo2-Bold-CzJRY8la.woff2) format("woff2")}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0E1726;--surface: #152238;--border: #3A5A80;--accent: #F08A3C;--accent-dim: #7A4A26;--text: #DCE6F2;--text-dim: #93A7C0;--danger: #F06B60;--success: #5CC48A;--gold: #F2C14E;--amber: #ffaa00;--accent-tint: rgba(240, 138, 60, .14);--surface-alpha: rgba(21, 34, 56, .96);--surface-titlebar: rgba(30, 30, 55, .6);--bg-alpha: rgba(14, 23, 38, .92);--bg-tooltip: rgba(14, 23, 38, .96);--border-tooltip: #3A5A80;--border-subtle: rgba(58, 90, 128, .5);--panel-border: #3A5A80;--panel-border-outer: #3A5A80;--panel-body-top: #152238;--panel-body-bottom: #152238;--sp-1: 1px;--sp-2: 2px;--sp-3: 3px;--sp-4: 4px;--sp-5: 5px;--sp-6: 6px;--sp-8: 8px;--sp-10: 10px;--sp-12: 12px;--sp-14: 14px;--sp-16: 16px;--sp-20: 20px;--sp-24: 24px;--sp-28: 28px;--text-3xs: 11px;--text-2xs: 11px;--text-xs: 11px;--text-sm: 12px;--text-base: 13px;--text-md: 13px;--text-lg: 15px;--text-xl: 18px;--text-2xl: 20px;--text-3xl: 24px;--font-ui: "Exo 2", system-ui, sans-serif;--font-num: "Exo 2", system-ui, sans-serif;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 4px;--radius-full: 50%;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--shadow-tooltip: 0 4px 14px rgba(0, 0, 0, .35);--header-h: 56px;--tabbar-h: 40px;--controls-h: calc(var(--header-h) + var(--tabbar-h))}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:var(--text-lg);overflow:hidden}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums;white-space:nowrap}input[type=text],input[type=number],select{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:var(--sp-4) var(--sp-8);font-family:var(--font-num);font-size:var(--text-md);border-radius:var(--radius-sm);transition:border-color .1s}input[type=text]:focus,input[type=number]:focus,select:focus{outline:none;border-color:var(--accent)}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238A9BB0'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--sp-8) center;cursor:pointer}.app{display:flex;flex-direction:column;height:100%}.header{position:relative;height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 var(--sp-16);gap:var(--sp-16);flex-shrink:0}.header-title{font-size:var(--text-xl);font-weight:700;color:var(--accent);letter-spacing:.08em;white-space:nowrap}.header-resources{display:flex;align-items:center;gap:var(--sp-8);font-size:var(--text-base)}.header-resource{display:flex;align-items:center;gap:var(--sp-4)}.header-resource-label{color:var(--text-dim);font-size:var(--text-sm);margin-right:var(--sp-4)}.header-resource-value{font-weight:700}.header-resource-rate{font-size:var(--text-xs);color:var(--text-dim)}.header-divider{width:1px;height:20px;background:var(--border)}.header-time-to-node{color:var(--danger);font-size:var(--text-sm)}.warp-custom-input{width:72px;text-align:center}.sim-clock{font-size:var(--text-lg);color:var(--text);min-width:160px}.time-controls{display:flex;align-items:center;gap:var(--sp-6);flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-4);background:var(--surface);border:1px solid var(--border);color:var(--text);padding:var(--sp-4) var(--sp-10);cursor:pointer;font-family:inherit;font-size:var(--text-md);border-radius:var(--radius-sm);transition:background .1s,border-color .1s;line-height:1.4}.btn:hover:not(:disabled){background:var(--border)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn.active{background:var(--accent);border-color:var(--accent);color:var(--bg)}.btn:disabled{opacity:.4;cursor:not-allowed}.tab-btn:focus-visible{outline:none;color:var(--accent);outline:2px solid var(--accent);outline-offset:-2px}.fp-btn:focus-visible{outline:none;color:var(--accent)}.btn-pause{min-width:40px;font-size:var(--text-2xl)}.tabbar{height:var(--tabbar-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:stretch;flex-shrink:0}.tab-btn{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-dim);padding:0 var(--sp-20);cursor:pointer;font-family:inherit;font-size:var(--text-lg);transition:color .1s,border-color .1s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--text);border-bottom-color:var(--accent)}.tab-content{flex:1;overflow:hidden;position:relative;display:flex;flex-direction:column;min-height:0}.map-tab-shell{flex:1;display:flex;flex-direction:column;min-height:0;width:100%;height:100%}.map-stack{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;height:100%}.map-canvas-wrap{flex:1;min-height:0;position:relative;overflow:hidden}.map-control-bar{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:flex-end;padding:var(--sp-4) var(--sp-8);background:var(--bg);position:relative;z-index:10;overflow:visible;border-bottom:1px solid var(--border);flex-shrink:0}.toolbar-group{display:flex;flex-direction:column;gap:var(--sp-1)}.toolbar-group-label{font-size:var(--text-3xs);color:var(--text-dim)}.toolbar-group-buttons{display:flex;gap:var(--sp-3);align-items:center}.toolbar-divider{width:1px;height:28px;background:var(--border);margin:0 var(--sp-4);align-self:flex-end}.toolbar-lap-count{font-size:var(--text-xs);color:var(--text);min-width:14px;text-align:center}.btn-warp-node{color:var(--amber)}.map-container{width:100%;flex:1;position:relative;cursor:grab;overflow:hidden}.map-container.panning{cursor:grabbing}.map-canvas{display:block;width:100%;height:100%}.maneuver-strip-fields{flex:1;min-width:200px;font-size:var(--text-base)}.maneuver-strip-fields .form-row{margin-bottom:var(--sp-4)}.maneuver-strip-fields label{min-width:72px}.form-inline-tight{display:flex;flex-wrap:wrap;gap:var(--sp-8)}.btn-tiny{font-size:var(--text-sm);padding:var(--sp-2) var(--sp-6);min-height:auto}.btn-tiny:disabled{opacity:.4;cursor:not-allowed}.ghost-preview-banner{font-size:var(--text-base);color:var(--text-dim);background:var(--accent-tint);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-6) var(--sp-8);margin-bottom:var(--sp-8)}.missions-map-preview{position:relative;height:200px;min-height:180px;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--bg)}.missions-map-preview-label{position:absolute;top:6px;left:8px;z-index:2;font-size:var(--text-sm);color:var(--text-dim);pointer-events:none}.missions-map-preview-canvas{display:block;width:100%;height:100%}.frame-dropdown{position:absolute;top:100%;left:0;background:var(--surface);border:1px solid var(--border);scrollbar-width:thin;scrollbar-color:var(--border) var(--surface);border-radius:var(--radius-md);z-index:50;max-height:320px;overflow-y:auto;min-width:120px}.frame-dropdown-item{padding:var(--sp-3) var(--sp-10);font-size:var(--text-base);color:var(--text);cursor:pointer;white-space:nowrap}.frame-dropdown-item:hover,.frame-dropdown-item.highlighted{background:var(--accent-dim)}.frame-dropdown-item.active{color:var(--accent);font-weight:700}.frame-dropdown-child{padding-left:var(--sp-20);font-size:var(--text-sm)}.frame-dropdown-orbiting{color:var(--success);font-style:italic}.frame-dropdown::-webkit-scrollbar{width:6px}.frame-dropdown::-webkit-scrollbar-track{background:var(--surface)}.frame-dropdown::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-sm)}.frame-dropdown::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.frame-dropdown-divider{height:1px;background:var(--border);margin:var(--sp-2) var(--sp-6)}.flight-panel{height:100%;overflow-y:auto;padding:var(--sp-16);display:flex;flex-direction:column;gap:var(--sp-16)}.contracts-panel{padding:var(--sp-12) var(--sp-16);overflow-y:auto;max-width:600px;display:flex;flex-direction:column;gap:var(--sp-16)}.panel-section{border:1px solid var(--border);border-left:1px solid var(--accent);border-radius:2px;overflow:hidden;background:var(--surface);padding:var(--sp-12)}.panel-section h3{font-size:var(--text-base);font-weight:600;color:var(--text);margin:calc(-1 * var(--sp-12));margin-bottom:var(--sp-10);padding:var(--sp-6) var(--sp-12);background:none;border-bottom:1px solid var(--border)}.panel-section--success h3{color:var(--success)}.panel-section--success{border-left-color:var(--success)}.panel-section--gold h3{color:var(--gold)}.panel-section--gold{border-left-color:var(--gold)}.panel-section--danger h3{color:var(--danger)}.panel-section--danger{border-left-color:var(--danger)}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6) var(--sp-12)}.status-field{display:flex;flex-direction:column;gap:var(--sp-2)}.status-label{font-size:var(--text-sm);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.status-value{font-size:var(--text-lg);color:var(--text)}.status-value.highlight{color:var(--accent)}.form-row{display:flex;flex-direction:column;gap:var(--sp-4);margin-bottom:var(--sp-8)}.form-row label{font-size:var(--text-sm);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.form-inline{display:flex;gap:var(--sp-8);align-items:flex-end}.form-inline .form-row{flex:1;margin-bottom:0}.maneuver-list{display:flex;flex-direction:column;gap:var(--sp-6)}.maneuver-row{display:flex;align-items:center;justify-content:space-between;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--sp-6) var(--sp-8);gap:var(--sp-8)}.maneuver-info{flex:1;display:flex;flex-direction:column;gap:var(--sp-2)}.maneuver-label{font-size:var(--text-md);color:var(--text)}.maneuver-meta{font-size:var(--text-sm);color:var(--text-dim)}.model-footer{font-size:var(--text-sm);color:var(--text-dim);line-height:1.6}.model-footer summary{cursor:pointer;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:var(--text-sm)}.model-footer p{margin-top:var(--sp-6)}.notice-bar{position:fixed;top:var(--controls-h);left:0;right:0;background:var(--danger);color:#fff;text-align:center;padding:var(--sp-6);font-size:var(--text-md);z-index:200}.warp-label{font-size:var(--text-sm);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.maneuver-node-panel{flex-shrink:0;border:1px solid var(--border);border-radius:2px;background:var(--surface);padding:var(--sp-8) var(--sp-12);font-size:var(--text-lg);color:var(--text)}.mnp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-6)}.mnp-title{font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--amber)}.mnp-time{font-family:var(--font-num);font-size:var(--text-base);color:var(--text-dim)}.mnp-node-tabs{display:flex;gap:var(--sp-4);margin-bottom:var(--sp-6)}.mnp-columns{display:flex;gap:var(--sp-16)}.mnp-col-left{flex:0 0 55%;min-width:0}.mnp-col-right{flex:1 1 45%;min-width:0}.mnp-field-row{margin-bottom:var(--sp-4)}.mnp-field-row label{display:block;font-size:var(--text-md);color:var(--text-dim);margin-bottom:var(--sp-2)}.mnp-nudge-row{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.mnp-input{width:72px;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:var(--sp-2) var(--sp-4);font-family:var(--font-num);font-size:var(--text-lg);text-align:center}.mnp-summary{font-size:var(--text-md);color:var(--accent);margin:var(--sp-6) 0}.disclosure>summary{cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.disclosure>summary::-webkit-details-marker{display:none}.disclosure>summary:before{content:"▸ "}.disclosure[open]>summary:before{content:"▾ "}.mnp-orbit-section{border-top:1px solid var(--border);padding:var(--sp-5) 0 var(--sp-4) 0;margin-top:var(--sp-2)}.mnp-orbit-label{font-size:var(--text-base);text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);margin-bottom:var(--sp-3)}.mnp-orbit-grid{display:grid;grid-template-columns:50px 1fr;gap:var(--sp-1) var(--sp-6);font-size:var(--text-md);line-height:1.4}.mnp-dim{color:var(--text-dim)}.mnp-computing{font-size:var(--text-base);color:var(--text-dim)}.mnp-hint{font-size:var(--text-base);color:var(--text-dim);margin-top:var(--sp-4)}.mnp-quick-plan{border-top:1px solid var(--border);padding:var(--sp-5) 0 var(--sp-4) 0;margin-top:var(--sp-4)}.mnp-quick-plan-row{display:flex;gap:var(--sp-4);flex-wrap:wrap;align-items:center;line-height:1.4}.qp-panel{display:flex;flex-direction:column;gap:var(--sp-6);font-size:var(--text-base)}.qp-panel.qp-compact{font-size:var(--text-sm)}.qp-section{display:flex;flex-direction:column;gap:var(--sp-4)}.qp-section-label{font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.qp-grid{display:flex;gap:var(--sp-4);flex-wrap:wrap;align-items:center}.qp-section-hint{font-size:var(--text-2xs);color:var(--text-dim)}.qp-dim-hint{opacity:.6}.qp-pe-label{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--text-xs);color:var(--text-dim)}.qp-pe-input{width:8ch;min-width:8ch;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:var(--sp-1) var(--sp-4);font-family:inherit;font-size:var(--text-sm);text-align:center;border-radius:var(--radius-xs)}.qp-time-input{width:8ch}.qp-cancel{cursor:pointer;opacity:.6;margin-left:var(--sp-4)}.qp-cancel:hover{opacity:1}.qp-target-select{width:100%;border-radius:var(--radius-xs)}.qp-target-select option{background:var(--surface);color:var(--text)}.qp-mode-toggle{gap:var(--sp-2)}.floating-panel{position:absolute;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:2px;box-shadow:0 6px 20px #00000073;background:var(--surface);min-width:120px;max-width:400px;overflow:hidden;pointer-events:auto}.fp-titlebar{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-6);cursor:grab;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border);background:none}.fp-titlebar:active{cursor:grabbing}.fp-title{font-size:var(--text-base);font-weight:600;color:var(--text)}.fp-controls{display:flex;gap:var(--sp-2)}.fp-btn{background:none;border:none;color:var(--text-dim);font-family:inherit;font-size:var(--text-xs);cursor:pointer;padding:0 var(--sp-3);line-height:1}.fp-btn:hover{color:var(--text)}.fp-close:hover{color:var(--danger)}.fp-body{padding:var(--sp-6) var(--sp-8)}.first-steps{width:260px}.first-steps-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-6)}.first-step{display:flex;gap:var(--sp-6);font-size:var(--text-base);line-height:1.4}.first-step-mark{flex:0 0 18px;text-align:center;font-variant-numeric:tabular-nums}.first-step-text{display:flex;flex-direction:column;gap:var(--sp-2)}.first-step-hint{font-size:var(--text-sm);color:var(--text-dim)}.first-step--done .first-step-mark{color:var(--success)}.first-step--done .first-step-label{color:var(--text-dim)}.first-step--current .first-step-mark{color:var(--accent);font-weight:600}.first-step--current .first-step-label{color:var(--text);font-weight:600}.first-step--later{color:var(--text-dim)}.first-steps-finished{margin:var(--sp-8) 0 0;font-size:var(--text-sm);color:var(--success)}.sidebar-expand-caret{font-size:1.6em;color:var(--text-dim)}.sidebar-collapse-toggle{display:flex;justify-content:flex-end;padding:var(--sp-2) var(--sp-6) 0 0;cursor:pointer}.sidebar-collapse-caret{font-size:1.4em;color:var(--text-dim)}.sidebar-collapse-caret:hover{color:var(--text)}.mnp-busy{color:var(--text-dim)}.mnp-actions{display:flex;gap:var(--sp-8);margin-top:var(--sp-4)}.btn-primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.btn-primary:hover:not(:disabled){filter:brightness(1.12)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.body-sidebar{position:relative;width:260px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;padding:var(--sp-4) 0;font-size:var(--text-base)}.body-sidebar.body-sidebar-collapsed{width:22px;min-width:22px;max-width:22px;overflow:hidden;display:flex;align-items:flex-start;justify-content:center;padding:var(--sp-8) 0 0 0;cursor:pointer}.body-sidebar.body-sidebar-collapsed:hover{background:var(--accent-tint)}.outliner-group-header{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-5) var(--sp-8) var(--sp-3) var(--sp-8);cursor:pointer;-webkit-user-select:none;user-select:none}.outliner-group-title{font-size:.9em;color:var(--text-dim);flex:1}.outliner-group-count{font-size:.85em;color:var(--text-dim)}.outliner-caret{font-size:1.2em;color:var(--text-dim);width:10px;text-align:center}.outliner-caret-sm{font-size:1em;color:var(--text-dim);width:8px;text-align:center;cursor:pointer}.outliner-item{display:flex;align-items:center;gap:var(--sp-6);padding:var(--sp-4) var(--sp-8) var(--sp-4) 22px;cursor:pointer;border-left:2px solid transparent}.outliner-item:hover{background:var(--accent-tint)}.outliner-selected{border-left-color:var(--accent);background:var(--accent-tint)}.outliner-item-icon{width:.64em;height:.64em;border-radius:var(--radius-full);flex-shrink:0}.outliner-item-icon-img{width:1.6em;height:1.6em;border-radius:var(--radius-full);flex-shrink:0;object-fit:cover}.outliner-item-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:1em;font-weight:700}.outliner-item-name.outliner-name-first{flex-shrink:0;max-width:100%}.outliner-item-detail{flex-shrink:0;white-space:nowrap;margin-left:auto;font-size:.85em;color:var(--text-dim)}.outliner-item-badge{margin-left:auto;font-size:var(--text-3xs);color:var(--success);text-transform:uppercase;letter-spacing:.05em}.outliner-children{padding-left:var(--sp-28)}.outliner-child-toggle{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-1) 0;cursor:pointer}.outliner-child-count{font-size:var(--text-2xs);color:var(--text-dim)}.outliner-facility{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-2) var(--sp-4) var(--sp-2) 0;cursor:pointer;border-left:2px solid transparent;font-size:var(--text-xs)}.outliner-facility:hover{background:var(--accent-tint)}.outliner-facility-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.outliner-facility-stat{flex-shrink:0;white-space:nowrap;margin-left:auto;color:var(--text-dim);font-size:var(--text-2xs)}.facility-status{width:.45em;height:.45em;border-radius:var(--radius-full);flex-shrink:0}.facility-status-active{background:var(--success)}.facility-status-idle{background:var(--accent)}.facility-status-offline{background:var(--danger)}.economy-panel{padding:var(--sp-12) var(--sp-16);overflow-y:auto;max-width:600px}.econ-balance{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--sp-12)}.econ-balance-label{font-size:var(--text-md);color:var(--text-dim);text-transform:uppercase}.econ-balance-value{font-size:var(--text-3xl);font-weight:700;color:var(--gold)}.econ-facility-row{display:flex;align-items:center;gap:var(--sp-6);padding:var(--sp-4) 0;font-size:var(--text-base);border-bottom:1px solid var(--border-subtle)}.title-screen{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);gap:var(--sp-12)}.title-logo{mix-blend-mode:lighten;max-width:360px;width:80%;margin-bottom:var(--sp-8);image-rendering:auto}.title-subtitle{font-size:var(--text-xl);color:var(--text-dim);margin-bottom:var(--sp-24)}.title-buttons{display:flex;flex-direction:column;gap:var(--sp-10);min-width:200px}.title-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:var(--sp-10) var(--sp-24);cursor:pointer;font-family:inherit;font-size:var(--text-lg);min-height:44px;border-radius:var(--radius-md);text-align:center;transition:background .15s,border-color .15s}.title-btn:hover{background:var(--border);border-color:var(--accent)}.title-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:600}.title-btn-primary:hover{background:var(--accent);border-color:var(--text)}.title-btn-import{background:none;border:none;font-size:var(--text-md);color:var(--text-dim);text-decoration:underline;min-height:auto}.title-btn-import:hover{background:none;color:var(--text)}.title-error{margin-top:var(--sp-12);color:var(--danger);font-size:var(--text-md)}.header-save-group{display:flex;gap:var(--sp-4);margin-left:auto;flex-shrink:0}.contract-card{border:1px solid var(--border);border-radius:2px;padding:var(--sp-8) var(--sp-10);margin-bottom:var(--sp-8);background:var(--surface)}.contract-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-4)}.contract-card-type{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.contract-card-deadline{font-size:var(--text-xs);color:var(--text-dim)}.contract-card-desc{font-size:var(--text-base);color:var(--text);margin-bottom:var(--sp-6)}.contract-card-stats{display:flex;gap:var(--sp-12);font-size:var(--text-sm);color:var(--text-dim);margin-bottom:var(--sp-6)}.contract-card-total{color:var(--gold);font-weight:700}.contract-accept-btn{width:100%;font-size:var(--text-base)}.contract-abandon-btn{margin-top:var(--sp-8);font-size:var(--text-sm)}.contract-history-row{display:flex;justify-content:space-between;font-size:var(--text-base);color:var(--text-dim);margin-top:var(--sp-4)}.contract-expired{opacity:.5}.spacecraft-panel{padding:var(--sp-12) var(--sp-16);overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-16)}.cargo-bar-label{display:flex;justify-content:space-between;font-size:var(--text-base)}.mission-phase{font-size:var(--text-md);color:var(--text);line-height:1.5;padding:var(--sp-4) 0 var(--sp-2) 0}.mission-target-readout{margin-top:var(--sp-8);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-6) var(--sp-10)}.mission-target-name{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);display:block;margin-bottom:var(--sp-4)}.mission-target-stats{display:flex;gap:var(--sp-16);font-size:var(--text-base);color:var(--text)}.mission-target-stats .dim{color:var(--text-dim);font-size:var(--text-xs);margin-right:var(--sp-3)}.settings-panel{position:absolute;top:var(--header-h);right:0;width:300px;border:1px solid var(--border);border-radius:2px;border-top:none;z-index:300;box-shadow:0 8px 24px #00000080;background:var(--surface)}.settings-section{padding:var(--sp-10) var(--sp-14);border-bottom:1px solid var(--border)}.settings-section:last-child{border-bottom:none}.settings-section-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:var(--sp-8)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-12)}.settings-label{display:flex;flex-direction:column;gap:var(--sp-2);font-size:var(--text-base);color:var(--text)}.settings-sublabel{font-size:var(--text-xs);color:var(--text-dim);font-weight:400}.settings-toggle{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);padding:var(--sp-3) var(--sp-10);font-family:inherit;font-size:var(--text-sm);cursor:pointer;border-radius:var(--radius-sm);min-width:40px;text-align:center;flex-shrink:0}.settings-toggle.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.sidebar-role-icons{flex-shrink:0;display:inline-flex;gap:var(--sp-2);margin-left:auto}.sidebar-role-icon{background:none;border:none;cursor:pointer;font-size:.85em;padding:0 var(--sp-2);line-height:1;opacity:.5;font-weight:700}.sidebar-role-icon:hover{opacity:.8}.sidebar-role-icon.active{opacity:1}.sidebar-role-frame{color:var(--accent)}.sidebar-role-track{color:var(--success)}.sidebar-role-target{color:var(--gold)}.sidebar-role-craft{color:var(--text)}.sidebar-role-pin{color:var(--text-dim);font-size:11px}.sidebar-role-pin.active{color:var(--accent)}.progress-bar{background:var(--bg);border-radius:var(--radius-md);height:18px;overflow:hidden;margin-bottom:var(--sp-4);box-shadow:inset 0 1px 3px #0006}.progress-bar-fill{height:100%;border-radius:var(--radius-md);transition:width .3s,background .3s}.sidebar-resize-handle{position:absolute;top:0;right:0;width:5px;height:100%;cursor:col-resize;z-index:5}.sidebar-resize-handle:hover{background:var(--accent-dim)}.outliner-facility-parent{flex-shrink:100;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85em;color:var(--text-dim);margin-left:var(--sp-4)}.outliner-empty{font-size:.85em;color:var(--text-dim);font-style:italic;padding:var(--sp-2) var(--sp-8) var(--sp-2) var(--sp-20)}.hud-widget{background:var(--bg-alpha);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);pointer-events:auto;min-width:140px;max-width:280px}.hud-widget-header{display:flex;align-items:center;padding:var(--sp-4) var(--sp-8);gap:var(--sp-6);font-size:var(--text-sm);color:var(--text-dim);border-bottom:1px solid var(--border);position:relative}.hud-widget-body{padding:var(--sp-4) var(--sp-8)}.hud-stat{font-size:var(--text-sm);color:var(--text);padding:var(--sp-2) 0}.hud-collapse-caret{cursor:pointer;font-size:var(--text-md)}.hud-hamburger{cursor:pointer;font-size:var(--text-xl)}.hud-hamburger:hover{color:var(--accent)}.hud-menu{position:absolute;left:0;top:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);z-index:50;min-width:160px;max-height:200px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) var(--surface)}.hud-menu::-webkit-scrollbar{width:6px}.hud-menu::-webkit-scrollbar-track{background:var(--surface)}.hud-menu::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-sm)}.hud-menu::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.hud-menu-item{padding:var(--sp-4) var(--sp-10);font-size:var(--text-sm);cursor:pointer;color:var(--text)}.hud-menu-item:hover{background:var(--accent-dim)}.hud-menu-item.active{color:var(--accent)}.hud-menu-category{padding:var(--sp-4) var(--sp-10) var(--sp-2);font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase}.fp-resize-handle{position:absolute;bottom:0;right:0;width:12px;height:12px;cursor:nwse-resize;opacity:.4}.fp-resize-handle:hover{opacity:.8}.fp-resize-handle:after{content:"";position:absolute;bottom:2px;right:2px;width:0;height:0;border-style:solid;border-width:0 0 8px 8px;border-color:transparent transparent var(--text-dim) transparent}.map-tooltip{position:fixed;z-index:40;pointer-events:none;min-width:160px;max-width:260px;background:var(--bg);border:1px solid var(--border);border-radius:4px;box-shadow:0 2px 12px #0009;font-family:"Exo 2",sans-serif;overflow:hidden}.map-tooltip-header{display:flex;gap:8px;align-items:center;padding:6px 10px}.map-tooltip-icon{width:32px;height:32px;border-radius:50%;flex-shrink:0}.map-tooltip-name{color:#fff;font-weight:700;font-size:13px;letter-spacing:.5px}.map-tooltip-subtitle{color:var(--text-dim);font-size:11px;margin-top:1px}.map-tooltip-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px 12px;padding:6px 10px;font-size:11px}.map-tooltip-stat-label{color:var(--text-dim);font-size:11px}.map-tooltip-stat-value{color:var(--text);font-size:11px;font-family:var(--font-num);font-variant-numeric:tabular-nums}.map-tooltip-footer{border-top:1px solid var(--border);padding:4px 10px;font-size:11px;color:var(--text-dim)}.map-tooltip-compact{padding:5px 10px;font-size:11px;color:var(--text);font-family:"Exo 2",sans-serif;line-height:1.5}.map-tooltip-compact-label{color:var(--text-dim);font-size:11px}.map-filter-bar{position:absolute;top:0;left:0;right:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--border);padding:6px 12px;display:flex;gap:16px;flex-wrap:wrap;box-shadow:0 4px 12px #0006}.map-filter-group{display:flex;flex-direction:column;gap:4px}.map-filter-group-label{color:var(--text-dim);font-size:11px;font-family:"Exo 2",sans-serif}.map-filter-pills{display:flex;gap:3px;flex-wrap:wrap}.map-filter-pill{padding:2px 8px;border:1px solid var(--border);border-radius:3px;color:var(--text-dim);font-size:var(--text-xs);font-family:"Exo 2",sans-serif;cursor:pointer;background:none;transition:border-color .1s,color .1s}.map-filter-pill:hover{border-color:var(--accent-dim);color:var(--text-dim)}.map-filter-pill.active{border-color:var(--accent);color:var(--accent)}.map-filter-divider{width:1px;background:var(--border);align-self:stretch}.notification-stack{position:absolute;top:12px;right:12px;z-index:150;display:flex;flex-direction:column;gap:6px;width:260px;pointer-events:auto}.notification-toast{background:var(--surface);border:1px solid var(--panel-border);border-left:3px solid #888;border-radius:var(--radius-md);padding:8px 10px;cursor:pointer;animation:notification-slide-in .2s ease-out;transition:opacity .3s ease;font-size:var(--text-sm);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.notification-toast:hover{background:var(--border)}.notification-fade-out{opacity:0;pointer-events:none}.notification-category{font-size:11px;font-weight:600;letter-spacing:.08em;margin-bottom:2px;text-transform:uppercase}.notification-body{color:var(--text);line-height:1.4}.notification-alert{padding:10px 12px;animation:notification-slide-in .2s ease-out,notification-pulse 2s ease-in-out infinite;border-width:1px 1px 1px 3px}.notification-dismiss-btn{display:block;margin-top:6px;padding:3px 10px;font-size:11px;font-family:inherit;color:var(--text-dim);background:#ffffff0d;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.notification-dismiss-btn:hover{background:#ffffff1a;color:var(--text)}.notification-overflow{text-align:center;font-size:11px;color:var(--text-dim);padding:4px}@keyframes notification-slide-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes notification-pulse{0%,to{box-shadow:0 0 #f440}50%{box-shadow:0 0 8px 2px #ff44444d}}.critical-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:500;display:flex;align-items:center;justify-content:center;animation:critical-fade-in .2s ease-out}.critical-modal{background:var(--surface);border:2px solid #ff4444;border-radius:var(--radius-lg);padding:28px 36px;min-width:340px;max-width:440px;text-align:center;box-shadow:0 0 40px #ff444426,0 16px 48px #00000080}.critical-modal-icon{width:48px;height:48px;margin:0 auto 16px;border-radius:50%;background:radial-gradient(circle,rgba(255,68,68,.3),transparent);border:2px solid #ff4444}.critical-modal-title{font-size:var(--text-lg);font-weight:700;color:#f44;letter-spacing:.1em;margin-bottom:10px}.critical-modal-description{font-size:var(--text-base);color:var(--text-dim);line-height:1.5;margin-bottom:20px}.critical-modal-ack{padding:8px 24px;font-size:var(--text-base);border:1px solid #ff4444;color:#f44}.critical-modal-ack:hover{background:#ff44441a}.critical-modal-actions{display:flex;gap:10px;justify-content:center}@keyframes critical-fade-in{0%{opacity:0}to{opacity:1}}.context-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.context-menu{position:fixed;background:var(--surface);border:1px solid var(--panel-border);border-radius:var(--radius-md);padding:var(--sp-4) 0;z-index:100;min-width:180px;max-width:280px;max-height:400px;overflow-y:auto;box-shadow:0 0 0 1px var(--accent),0 4px 16px #00000080;font-size:var(--text-sm)}.context-menu-title{padding:6px 12px 4px;font-size:11px;font-weight:600;color:var(--text-dim);letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--border);margin-bottom:var(--sp-4)}.context-menu-group-header{padding:4px 12px;font-size:11px;font-weight:600;color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;-webkit-user-select:none;user-select:none}.context-menu-group-header:hover{color:var(--text)}.context-menu-group-caret{display:inline-block;width:12px;font-size:11px}.context-menu-item{padding:5px 12px 5px 24px;cursor:pointer;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.context-menu-item:hover,.context-menu-item-focused{background:#ffffff0d;color:var(--accent)}.context-menu-item-disabled{opacity:.4;cursor:not-allowed}.context-menu-item-disabled:hover{background:transparent;color:var(--text)}.context-menu-item-danger{color:#f44}.context-menu-item-danger:hover{background:#ff444414;color:#f66}.context-menu-separator{height:1px;background:var(--border);margin:var(--sp-4) 0}.resource-tooltip{position:absolute;top:100%;left:0;margin-top:6px;background:var(--surface);border:1px solid var(--panel-border);border-radius:var(--radius-md);padding:8px 12px;z-index:200;min-width:200px;max-width:260px;box-shadow:0 4px 16px #00000080;font-size:var(--text-sm);pointer-events:none}.resource-tooltip-title{font-size:11px;font-weight:600;color:var(--text-dim);letter-spacing:.1em;margin-bottom:6px}.resource-tooltip-row{display:flex;justify-content:space-between;align-items:center;padding:2px 0;color:var(--text)}.resource-tooltip-source{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.resource-tooltip-section-label{font-size:11px;color:var(--text-dim);margin:2px 0}.resource-tooltip-divider{height:1px;background:var(--border);margin:4px 0}.resource-tooltip-empty{color:var(--text-dim);font-style:italic;padding:2px 0}.title-block{position:absolute;right:12px;bottom:12px;z-index:10;display:grid;grid-template-columns:auto auto;grid-template-rows:1fr 1fr;box-sizing:border-box;border:1px solid var(--border);border-radius:2px;background:var(--bg-alpha);color:var(--text);pointer-events:none}.title-block-cell{display:flex;align-items:center;gap:8px;padding:4px 10px;font-size:12px;white-space:nowrap}.title-block-cell:nth-child(odd){border-right:1px solid var(--border)}.title-block-cell:nth-child(-n+2){border-bottom:1px solid var(--border)}.title-block-name{font-size:13px;font-weight:700}.title-block-frame{font-size:13px;font-weight:600}.title-block-bar{height:6px;border-top:1px solid var(--text);border-left:1px solid var(--text);border-right:1px solid var(--text);flex:none}:root{--docked-bar-h: 64px}@media (max-width: 760px){.header{gap:8px;padding:0 12px}.tabbar{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.tabbar::-webkit-scrollbar{display:none}.tab-btn{flex:0 0 auto}.btn{min-height:40px}.btn-warp-cycle{min-width:56px}.overflow-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:19999}.overflow-sheet{position:absolute;top:var(--header-h);right:0;left:0;z-index:20000;display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:2px}.overflow-date{font-size:12px;color:var(--text-dim)}.overflow-warp,.overflow-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.overflow-warp .warp-custom-input{min-height:40px;flex:1 1 100px;box-sizing:border-box}.settings-panel{left:0;width:auto}.map-control-bar{flex-wrap:nowrap;overflow-x:auto;align-items:center;scrollbar-width:none}.map-control-bar::-webkit-scrollbar{display:none}.map-control-bar>*{flex:0 0 auto}.toolbar-group-label{display:none}.toolbar-divider{align-self:center}.title-block--compact{grid-template-rows:1fr;bottom:var(--docked-bar-h)}.title-block--compact .title-block-cell{border-bottom:0}.outliner-sheet-handle{position:fixed;left:12px;bottom:var(--docked-bar-h);z-index:20;min-height:40px;padding:0 14px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:2px;font:inherit;font-size:13px;font-weight:600}.outliner-sheet{position:fixed;left:0;right:0;bottom:0;width:auto;max-height:60vh;z-index:10000;overflow-y:auto;padding:0 0 var(--sp-4);border-right:0;border-top:1px solid var(--border);box-sizing:border-box}.outliner-sheet .outliner-sheet-close{position:sticky;top:0;left:0;bottom:auto;width:100%;text-align:left;border-width:0 0 1px 0;border-radius:0;z-index:1}.floating-panel--docked{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;max-width:none;max-height:55vh;border-radius:0;box-shadow:none;border-width:1px 0 0 0}.floating-panel--docked .fp-btn{min-width:40px;min-height:40px}.settings-close{position:absolute;top:4px;right:4px;min-width:40px;min-height:40px}.settings-panel{padding-top:48px}.overflow-select,.outliner-item{min-height:40px}.sidebar-role-icon{min-width:40px;min-height:40px}.qp-pe-input,.qp-time-input,.qp-target-select{min-height:40px;box-sizing:border-box}.qp-panel .btn,.qp-panel .btn-tiny{min-height:40px}.frame-dropdown-item{min-height:40px;display:flex;align-items:center}}
