@font-face{font-family:Special Elite;font-style:normal;font-display:swap;font-weight:400;src:url(./special-elite-latin-ext-400-normal-ChcxYnmu.woff2) format("woff2"),url(./special-elite-latin-ext-400-normal-CaJZjSVf.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Special Elite;font-style:normal;font-display:swap;font-weight:400;src:url(./special-elite-latin-400-normal-YjDd9tmf.woff2) format("woff2"),url(./special-elite-latin-400-normal-BtSRmyJ6.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:400;src:url(./courier-prime-latin-ext-400-normal-B-EsvyE4.woff2) format("woff2"),url(./courier-prime-latin-ext-400-normal-CKOCNFvK.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:400;src:url(./courier-prime-latin-400-normal-BbyBr73r.woff2) format("woff2"),url(./courier-prime-latin-400-normal-BAlbUm6l.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:700;src:url(./courier-prime-latin-ext-700-normal-ByMJlNdM.woff2) format("woff2"),url(./courier-prime-latin-ext-700-normal-BIFoAzHx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:700;src:url(./courier-prime-latin-700-normal-D1YCjmaD.woff2) format("woff2"),url(./courier-prime-latin-700-normal-CVvp4Sof.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--desk: #24312a;--desk-edge: #1a241f;--manila: #d3b076;--manila-dark: #b8955c;--manila-edge: #9a7c49;--paper: #f4efe0;--paper-shade: #e7e0cc;--ink: #33302a;--ink-faint: #6b665a;--ink-blue: #33518e;--ink-red: #a02418;--ink-green: #3c6b45;--rule: #b9b19c;--font-type: "Special Elite", "Courier New", monospace;--font-data: "Courier Prime", "Courier New", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:var(--font-data);color:var(--ink);background:var(--desk);overflow:hidden}.hidden{display:none!important}.hidden-input{display:none}.desk{position:relative;height:100%;padding:14px 18px 4px;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.05),transparent 60%),radial-gradient(ellipse at 50% 120%,rgba(0,0,0,.45),transparent 70%),linear-gradient(var(--desk),var(--desk-edge))}.desk-caption{text-align:center;font-family:var(--font-type);font-size:10px;letter-spacing:.25em;color:#7d8d81;padding:4px 0 2px;-webkit-user-select:none;user-select:none}.folder{flex:1;min-height:0;display:flex;flex-direction:column;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E"),linear-gradient(174deg,var(--manila) 0%,var(--manila-dark) 100%);border:1px solid var(--manila-edge);border-radius:6px 14px 4px 4px;box-shadow:0 14px 34px #00000080,inset 0 1px #ffffff40}.folder-top{display:flex;align-items:flex-end;gap:16px;padding:6px 14px 0;border-bottom:2px solid var(--manila-edge)}.folder-tabs{display:flex;gap:6px;align-items:flex-end}.folder-tab{font-family:var(--font-type);font-size:13px;letter-spacing:.14em;padding:8px 22px 6px;color:#6d5a35;background:linear-gradient(var(--manila-dark),#ab8a53);border:1px solid var(--manila-edge);border-bottom:none;border-radius:9px 9px 0 0;cursor:pointer;transform:translateY(2px)}.folder-tab.active{background:linear-gradient(#e2c58e,var(--manila));color:var(--ink);box-shadow:0 -2px 5px #0000001f;transform:translateY(1px);position:relative;z-index:2}.folder-label{flex:1;display:flex;align-items:baseline;gap:10px;padding-bottom:6px;min-width:0}.label-caption{font-family:var(--font-type);font-size:12px;letter-spacing:.2em;color:#6d5a35}.project-name{font-family:var(--font-type);font-size:17px;letter-spacing:.1em;color:var(--ink);background:transparent;border:none;border-bottom:2px solid rgba(51,48,42,.5);min-width:120px;flex:0 1 340px;text-transform:uppercase}.project-name:focus{outline:none;border-bottom-color:var(--ink-red)}.project-name.project-pennant{min-width:70px;flex:0 1 110px}.project-year{font-family:var(--font-type);font-size:15px;letter-spacing:.08em;color:var(--ink);background:transparent;border:none;border-bottom:2px solid rgba(51,48,42,.5);width:7ch;flex:0 0 auto;text-align:center}.project-year:focus{outline:none;border-bottom-color:var(--ink-red)}.notes-panel{display:flex;align-items:flex-start;gap:10px;padding:8px 14px;border-bottom:2px solid var(--manila-edge);background:var(--manila-dark)}.notes-panel.hidden{display:none}.notes-input{flex:1;font-family:var(--font-type);font-size:13px;color:var(--ink);background:#ffffff40;border:1px solid rgba(51,48,42,.4);border-radius:3px;padding:6px 8px;resize:vertical;min-height:2.6em}.notes-input:focus{outline:none;border-color:var(--ink-red)}.label-secret{font-family:var(--font-type);font-size:11px;letter-spacing:.3em;color:var(--ink-red);border:2px solid var(--ink-red);padding:2px 8px;transform:rotate(-3deg);opacity:.75;-webkit-user-select:none;user-select:none}.drawer-actions{display:flex;gap:6px;padding-bottom:8px}.library-overlay{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:28px;background:#0c110eb8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.library-card{width:min(720px,100%);max-height:min(760px,calc(100vh - 56px));overflow-y:auto;padding:18px 20px 22px;transform:rotate(-.15deg)}.library-head,.library-save-row,.library-row{display:flex;align-items:center;justify-content:space-between;gap:18px}.library-save-row{padding:4px 6px 13px;border-bottom:1px solid var(--rule)}.library-current-name,.library-file-name{font-family:var(--font-type);font-size:14px;letter-spacing:.1em}.library-detail{margin-top:3px;color:var(--ink-faint);font-size:10px;letter-spacing:.06em}.nation-ensign-row{display:flex;align-items:center;gap:6px;margin-top:5px}.nation-ensign-row .nation-ensign{max-width:260px;font-size:10px}.nation-ensign-swatch{height:18px;width:auto;border:1px solid var(--ink-faint)}.library-particulars{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1px 10px;margin-top:4px}.library-particulars dt{color:var(--ink-faint);font-family:var(--font-type);font-size:9px;letter-spacing:.12em}.library-particulars dd{font-size:10px;letter-spacing:.06em;overflow-wrap:anywhere}.library-status{margin:10px 6px 2px;color:var(--ink-green);font-family:var(--font-type);font-size:11px;letter-spacing:.08em}.library-empty{margin:22px 6px 6px;padding:24px;border:1px dashed var(--rule);color:var(--ink-faint);font-family:var(--font-type);font-size:12px;letter-spacing:.12em;text-align:center}.library-list{display:flex;flex-direction:column;gap:8px;margin-top:12px;list-style:none}.library-row{padding:10px 12px;border:1px dashed var(--rule);background:#ffffff3d}.library-row.current{border:2px solid rgba(160,36,24,.65);background:#a024180d}.library-file{flex:1 1 auto;min-width:0}.library-row-actions{display:flex;flex:0 0 auto;gap:6px}.library-icon{flex:0 0 auto;width:120px;height:30px;object-fit:contain;object-position:left center;opacity:.8}.library-figures{flex:0 0 auto;font-family:var(--font-type);text-align:right;white-space:nowrap}.library-figure-year{font-size:13px;letter-spacing:.12em}.library-figure-cost{margin-top:3px;color:var(--ink-blue);font-size:11px;letter-spacing:.08em}.library-figure-cost.unpriced{color:var(--ink-faint)}.library-current-stamp{display:inline-block;margin-top:6px;padding:1px 6px;border:1px solid var(--ink-red);color:var(--ink-red);font-family:var(--font-type);font-size:9px;letter-spacing:.14em;transform:rotate(-2deg)}.folder-body{flex:1;min-height:0;padding:12px}.tab-page{height:100%;min-height:0}.paper{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.03 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23p)'/%3E%3C/svg%3E"),linear-gradient(177deg,var(--paper),var(--paper-shade));border:1px solid #cfc7ae;box-shadow:0 3px 9px #00000047,inset 0 0 40px #a08c5a0f;padding:14px 16px}.paper-title{font-family:var(--font-type);font-size:15px;letter-spacing:.16em;font-weight:400}.form-number{font-size:10px;color:var(--ink-faint);letter-spacing:.08em;margin-top:2px}.paper-rule{border-bottom:2px solid var(--ink);opacity:.65;margin:8px 0 10px}.sheet-head{font-family:var(--font-type);font-size:12px;font-weight:400;letter-spacing:.18em;margin:14px 0 6px;border-bottom:1px solid var(--rule);padding-bottom:2px}.design-grid{height:100%;min-height:0;display:grid;grid-template-columns:290px minmax(0,1fr) 360px;gap:12px}.manifest{overflow-y:auto;transform:rotate(-.25deg)}.param-sheet{overflow-y:auto;transform:rotate(.3deg)}.center-column{min-width:0;min-height:0;display:flex;flex-direction:column;gap:8px}.view-wrap{position:relative;flex:1;min-height:0;border:1px solid #10202f;box-shadow:inset 0 0 24px #0000008c,0 3px 9px #0000004d;background:#1c3a57;overflow:hidden}.missile-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.view-corner{position:absolute;width:26px;height:26px;border:2px solid rgba(214,226,240,.5);z-index:2;pointer-events:none}.view-corner.tl{top:8px;left:8px;border-right:none;border-bottom:none}.view-corner.tr{top:8px;right:8px;border-left:none;border-bottom:none}.view-corner.bl{bottom:8px;left:8px;border-right:none;border-top:none}.view-corner.br{bottom:8px;right:8px;border-left:none;border-top:none}.card-toggle{position:absolute;top:10px;right:42px;z-index:3}.gizmo-keys{position:absolute;top:10px;left:42px;z-index:3;display:flex;gap:5px}.gizmo-readout{position:absolute;left:50%;bottom:14px;transform:translate(-50%);z-index:3;pointer-events:none;padding:4px 14px;background:#10202fdb;border:1px solid rgba(214,226,240,.45);color:#e6eef7;font-size:12px;letter-spacing:.14em;white-space:nowrap}.reference-card{position:absolute;top:44px;right:12px;width:236px;z-index:3;padding:10px 12px 12px;transform:rotate(-.35deg);pointer-events:none;font-size:11px}.reference-card .sheet-head{margin-top:0}.reference-card .paper-rule{margin:6px 0 7px}.reference-card .data-row{font-size:11px;padding:1.5px 0}.reference-card .stamp.small{margin:2px 4px 4px 0;font-size:10px;letter-spacing:.14em;padding:2px 7px}.card-more{font-size:10px;color:var(--ink-red);letter-spacing:.08em}.card-error{font-size:10px;color:var(--ink-red)}.compartment-card{position:absolute;width:250px;z-index:4;padding:9px 12px 11px;transform:rotate(-.3deg);pointer-events:none;font-size:11px}.compartment-card .sheet-head{margin:0 0 2px;letter-spacing:.2em}.compartment-card .paper-rule{margin:6px 0}.compartment-card .data-row{font-size:11px;padding:1.5px 0}.compartment-card .stamp.small{margin:2px 0 4px}.card-use{font-size:11px;line-height:1.4;color:var(--ink-faint)}.card-seated{font-size:11px;line-height:1.35}.role-void{border-color:#55606b;color:#55606b;background:#55606b0d}.role-tank{border-color:#7a6224;color:#7a6224;background:#7a62240f}.role-machinery{border-color:#8a5320;color:#8a5320;background:#8a53200f}.role-magazine{border-color:#99342f;color:#99342f;background:#99342f0f}.role-stores{border-color:#3f6350;color:#3f6350;background:#3f63500f}.role-accommodation{border-color:#3d5578;color:#3d5578;background:#3d55780f}.role-operations{border-color:#5a4076;color:#5a4076;background:#5a40760f}.view-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#cfe0f0;font-family:var(--font-type);letter-spacing:.12em;text-align:center;padding:20px}.view-error-detail{font-family:var(--font-data);font-size:11px;color:#8aa5bd}.device-lost{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#040a10db}.device-lost-card{max-width:520px;display:flex;flex-direction:column;align-items:center;gap:14px;padding:26px 30px;border:1px solid #2b4257;background:#0c1620;color:#cfe0f0;font-family:var(--font-type);text-align:center}.device-lost-head{letter-spacing:.18em;font-size:15px;color:#e2b25a}.device-lost-card p{margin:0;font-size:13px;line-height:1.55}.device-lost-detail{font-family:var(--font-data);font-size:11px;color:#8aa5bd;word-break:break-word}.scene-loading{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;gap:28px;padding:28px;overflow:hidden;color:#dbe8ee;background:linear-gradient(#0c1c27e0,#050e16f7),repeating-linear-gradient(0deg,transparent 0 31px,rgba(105,150,168,.08) 31px 32px),repeating-linear-gradient(90deg,transparent 0 31px,rgba(105,150,168,.08) 31px 32px),#091722;transition:opacity .2s ease}.scene-loading-complete{opacity:0;pointer-events:none}.scene-loading-radar{position:relative;flex:0 0 128px;width:128px;height:128px;overflow:hidden;border:1px solid rgba(143,184,199,.72);border-radius:50%;box-shadow:0 0 0 12px #709aaa0a,inset 0 0 24px #5b96a329;background:linear-gradient(transparent 49.5%,rgba(143,184,199,.28) 50%,transparent 50.5%),linear-gradient(90deg,transparent 49.5%,rgba(143,184,199,.28) 50%,transparent 50.5%),repeating-radial-gradient(circle,transparent 0 20px,rgba(143,184,199,.22) 21px 22px)}.scene-loading-sweep{position:absolute;left:50%;bottom:50%;width:50%;height:50%;transform-origin:0 100%;background:conic-gradient(from 78deg at 0 100%,transparent 0deg,rgba(135,199,183,.42) 11deg,transparent 34deg);animation:scene-sweep 1.8s linear infinite}.scene-loading-contact{position:absolute;width:4px;height:4px;border-radius:50%;background:#dbe9aa;box-shadow:0 0 7px #dbe9aa;animation:scene-contact 1.8s ease-in-out infinite}.scene-loading-contact.contact-one{left:67%;top:28%;animation-delay:-.2s}.scene-loading-contact.contact-two{left:31%;top:66%;animation-delay:-.8s}.scene-loading-contact.contact-three{left:73%;top:71%;animation-delay:-1.3s}.scene-loading-copy{width:min(430px,62vw)}.scene-loading-kicker{margin-bottom:6px;color:#7894a5;font-family:var(--font-data);font-size:9px;letter-spacing:.28em}.scene-loading-title{padding-bottom:7px;border-bottom:1px solid rgba(135,165,180,.32);font-family:var(--font-type);font-size:clamp(17px,2vw,23px);letter-spacing:.16em}.scene-loading-status{min-height:18px;margin-top:13px;color:#b8cbd5;font-family:var(--font-data);font-size:11px;letter-spacing:.14em}.scene-loading-track{height:4px;margin-top:9px;overflow:hidden;background:#799cab2b}.scene-loading-fill{width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:#a9c7bd;box-shadow:0 0 8px #a9c7bd8c;transition:transform .18s ease-out}.scene-loading-foot{display:flex;justify-content:space-between;margin-top:7px;color:#647f8e;font-family:var(--font-data);font-size:8px;letter-spacing:.16em}.scene-loading-meter{color:#9db5bf}@keyframes scene-sweep{to{transform:rotate(360deg)}}@keyframes scene-contact{0%,42%,to{opacity:.22}54%,68%{opacity:1}}@media(max-width:720px){.scene-loading{flex-direction:column;gap:22px}.scene-loading-radar{flex-basis:104px;width:104px;height:104px}.scene-loading-copy{width:min(430px,88vw)}}@media(prefers-reduced-motion:reduce){.scene-loading-sweep,.scene-loading-contact{animation:none}.scene-loading-fill,.scene-loading{transition:none}}.vitals-strip{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 12px;background:linear-gradient(#efe9d6,#e4dcc4);border:1px solid #cfc7ae;box-shadow:0 2px 6px #00000040;font-size:12px;letter-spacing:.06em}.vitals-strip .vital{white-space:nowrap}.vital.bad{color:var(--ink-red);font-weight:700}.vital.clickable{cursor:pointer;text-decoration:underline dotted}.vital.clickable:hover{text-decoration-style:solid}.warning-help{cursor:help;text-decoration:underline dotted currentColor;text-underline-offset:3px}.reference-card .warning-help{pointer-events:auto}.manifest-list{list-style:none;display:flex;flex-direction:column;gap:8px}.manifest-row{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:7px 9px;border:1px dashed transparent;cursor:pointer;background:#ffffff40}.manifest-row:hover{border-color:var(--rule)}.manifest-row.selected{border:2px solid var(--ink-red);background:#a024180f;box-shadow:1px 2px #a0241840}.manifest-row.adrift{border:1px dashed #a06b18;background:#a06b1814}.manifest-row.adrift.selected{border:2px solid var(--ink-red);box-shadow:1px 2px #a06b1859}.manifest-main{display:flex;gap:10px;align-items:baseline;min-width:0}.manifest-index{font-family:var(--font-type);color:var(--ink-faint)}.manifest-name{font-family:var(--font-type);font-size:13px;letter-spacing:.08em}.manifest-detail{font-size:11px;color:var(--ink-faint)}.manifest-detail.performance{color:var(--ink-blue);margin-top:2px}.manifest-detail.cost{color:var(--ink-green);margin-top:2px}.manifest-detail.dim{font-size:10px;opacity:.8}.manifest-detail.warn{color:#8c5d13;font-weight:700;margin-top:2px}.manifest-actions{display:flex;flex-direction:column;gap:2px}.aircraft-manifest{display:flex;flex-direction:column}.aircraft-part-list{display:flex;flex-direction:column;gap:4px;min-height:0;overflow-y:auto}.manifest-item{display:flex;justify-content:space-between;gap:8px;width:100%;padding:6px 7px;border:1px dashed transparent;color:var(--ink);background:#ffffff38;font-family:var(--font-data);text-align:left;cursor:pointer}.manifest-item:hover{border-color:var(--rule)}.manifest-item.selected{border:2px solid var(--ink-red);background:#a024180f}.manifest-kind{color:var(--ink-faint);font-size:9px;text-transform:uppercase}.manifest-branch{margin-right:5px;color:var(--ink-faint)}.aircraft-manifest .manifest-footer{margin-top:auto;padding-top:8px}.manifest-attach{margin-bottom:4px;color:var(--ink-faint);font-size:9px;letter-spacing:.08em}.aircraft-preset{max-width:210px}.aircraft-view-keys{position:absolute;z-index:3;top:10px;right:42px;display:flex;gap:5px}.aircraft-view-caption{position:absolute;left:12px;bottom:9px;color:#b8cad6;font-size:10px;letter-spacing:.14em}.aircraft-symmetry-lock{position:absolute;z-index:3;top:45px;right:42px;pointer-events:none;padding:3px 7px;border:1px solid rgba(214,226,240,.38);color:#c9dce8;background:#10202fa8;font-size:9px;letter-spacing:.12em}.aircraft-symmetry-note{margin:0 0 8px;padding:4px 6px;border:1px solid var(--ink-red);color:var(--ink-red);font-size:9px;letter-spacing:.1em;text-align:center}.aircraft-part-hint{margin:0 0 8px}.aircraft-manifest-actions{flex-direction:row;gap:6px}.aircraft-manifest-actions select{flex:1;min-width:0}.folder-label .aircraft-nation{flex:0 1 150px;min-width:96px;font-size:12px;border-bottom:1px dashed var(--rule)}.drawer-actions .aircraft-preset{flex:0 0 auto;width:64px}.aircraft-view.loadout-mode .gizmo-keys,.aircraft-view.loadout-mode .aircraft-symmetry-lock{display:none}.aircraft-loadout-item{flex-direction:column;gap:3px}.aircraft-loadout-item .loadout-name{font-weight:700}.aircraft-loadout-keys{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.library-group-head{list-style:none;margin:12px 0 4px;padding-bottom:2px;border-bottom:1px solid var(--rule);font-family:var(--font-type);font-size:11px;letter-spacing:.2em;color:#6d5a35}details.sheet-fold>summary{cursor:pointer;list-style:none;font-family:var(--font-type);font-size:11px;letter-spacing:.2em;padding:0 2px}details.sheet-fold>summary::-webkit-details-marker{display:none}details.sheet-fold>summary:before{content:"▸ ";color:var(--ink-faint)}details.sheet-fold[open]>summary:before{content:"▾ "}details.sheet-fold[open]>summary{margin-bottom:6px}details.sheet-fold:not([open]){padding-bottom:8px}.requisition{margin-top:14px;border-top:1px solid var(--rule);padding-top:10px}.requisition-label{font-family:var(--font-type);font-size:11px;letter-spacing:.2em;margin-bottom:6px}.requisition-keys{display:flex;gap:6px;flex-wrap:wrap}.key{font-family:var(--font-type);font-size:11px;letter-spacing:.1em;color:var(--paper);background:linear-gradient(#4a463c,#33302a);border:1px solid #211f1a;border-radius:4px;padding:5px 12px;cursor:pointer;box-shadow:0 2px #211f1a,inset 0 1px #ffffff2e}.key:active{transform:translateY(1px);box-shadow:0 1px #211f1a}.key.tiny{padding:1px 6px;font-size:10px}.key.strike{background:linear-gradient(#8c2c20,#6f1f15);border-color:#4c150e;box-shadow:0 2px #4c150e,inset 0 1px #ffffff26}.sheet-section{border:1px solid var(--rule);padding:10px 12px 12px;margin-top:14px;min-inline-size:0}.sheet-section legend{font-family:var(--font-type);font-size:11px;letter-spacing:.2em;padding:0 6px}.field-row{display:flex;align-items:baseline;gap:8px;padding:4px 0;font-size:12px}.field-row.check{align-items:center}.field-label{flex:0 0 46%;min-width:0;letter-spacing:.04em;color:var(--ink)}.field-label.wide{flex:1}.field-row.has-help .field-label{cursor:help;text-decoration:underline dotted var(--ink-faint);text-underline-offset:3px}.field-input{flex:1;min-width:0;font-family:var(--font-data);font-size:13px;color:var(--ink-blue);background:transparent;border:none;border-bottom:1px dashed var(--ink-faint);padding:1px 4px;text-align:right}.field-input:focus{outline:none;border-bottom:1px solid var(--ink-red);background:#a024180a}.field-input:disabled{color:var(--ink-faint);opacity:.45;cursor:not-allowed}.field-input.select{text-align:left;appearance:none;cursor:pointer}.field-input.select:disabled{cursor:not-allowed}.field-input.select option.select-command{font-style:italic;color:var(--ink-faint)}.field-unit{flex:0 0 42px;font-size:10px;color:var(--ink-faint)}.field-check{width:15px;height:15px;accent-color:var(--ink-red)}.sheet-tabs{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 4px;margin-top:10px;border-bottom:1px solid var(--rule)}.sheet-tab{font-family:var(--font-type);font-size:10px;letter-spacing:.14em;color:var(--ink-faint);background:transparent;border:1px solid transparent;border-bottom:none;padding:4px 7px 3px;cursor:pointer}.sheet-tab:hover{color:var(--ink)}.sheet-tab.active{color:var(--ink);background:#ffffff6b;border-color:var(--rule);margin-bottom:-1px;padding-bottom:4px}.sheet-count{margin-left:auto;padding-right:2px;font-size:9px;letter-spacing:.12em;color:var(--ink-faint);white-space:nowrap}.sheet-page>.sheet-section:first-child{margin-top:10px}.phase-card{border:1px dashed var(--rule);padding:6px 8px;margin-top:8px;background:#ffffff47}.phase-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}.phase-name{font-family:var(--font-type);font-size:12px;letter-spacing:.1em}.phase-keys{display:flex;gap:3px}.phase-add{display:flex;gap:8px;margin-top:10px;align-items:center}.magazine-add{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%}.magazine-add .select{width:100%;min-width:0}.magazine-add .key{white-space:nowrap}.performance-grid{height:100%;min-height:0;display:grid;grid-template-columns:minmax(340px,5fr) minmax(420px,7fr);gap:12px}.dossier{overflow-y:auto;transform:rotate(-.2deg)}.plots-column{min-height:0;display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding-right:2px}.scenario{transform:rotate(.25deg)}.plot-card{padding:10px;transform:rotate(-.15deg)}.plot-canvas{width:100%;height:240px;display:block}.plot-legend{display:flex;gap:16px;align-items:center;font-size:11px;letter-spacing:.08em;padding:0 2px 6px;min-height:14px}.legend-items{display:flex;flex-wrap:wrap;gap:4px 14px}.legend-item{white-space:nowrap}.plot-legend .key{margin-left:auto}.data-row{display:flex;align-items:baseline;gap:6px;font-size:12px;padding:2.5px 0}.data-label{letter-spacing:.04em}.data-dots{flex:1;border-bottom:1px dotted var(--ink-faint);transform:translateY(-3px)}.data-value{font-weight:700;white-space:nowrap}.finding{padding:4px 0 5px;border-bottom:1px dotted rgba(107,102,90,.4)}.finding:last-child{border-bottom:none}.finding-head{font-size:12px;font-weight:700;letter-spacing:.06em}.finding-head.primary{color:var(--ink-red)}.finding-detail{font-size:11px;letter-spacing:.02em;line-height:1.35;margin-top:1px}.finding-window{font-size:10px;color:var(--ink-faint);letter-spacing:.08em;margin-bottom:2px}.stamp,.stamp.small{display:inline-block;font-family:var(--font-type);letter-spacing:.22em;border:3px double var(--ink-red);color:var(--ink-red);padding:4px 14px;transform:rotate(-2.5deg);margin:6px 8px 6px 0;opacity:.85;font-size:15px;background:#a024180a}.stamp.small{font-size:11px;padding:2px 9px}.stamp.good,.stamp.good.small{border-color:var(--ink-green);color:var(--ink-green);background:#3c6b450d}.stamp.bad{border-color:var(--ink-red);color:var(--ink-red)}.stamp.warn{border-color:#a06b18;color:#8c5d13;background:#a06b180f}.stamp.pending{border-color:var(--ink-faint);color:var(--ink-faint)}.table-wrap{max-width:100%;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:11px;margin-top:4px}.data-table th{font-family:var(--font-type);font-weight:400;letter-spacing:.08em;text-align:right;border-bottom:2px solid var(--ink);padding:2px 6px}.data-table td{text-align:right;padding:2px 6px;border-bottom:1px dotted var(--rule)}.range-page{position:relative;height:100%;min-height:0;border:1px solid #10202f;box-shadow:inset 0 0 24px #00000073;overflow:hidden;background:#a9c1d6}.range-view{position:absolute;inset:0}.range-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none}.range-hud{position:absolute;top:10px;left:12px;font-family:var(--font-data);font-size:12px;letter-spacing:.08em;color:#f2f6f8;text-shadow:0 1px 3px rgba(10,25,40,.9);pointer-events:none;z-index:4}.range-controls{position:absolute;top:8px;right:12px;display:flex;gap:6px;z-index:5}.key.active-key{background:linear-gradient(#8c2c20,#6f1f15);border-color:#4c150e}.range-orders{position:absolute;left:12px;top:40px;width:262px;z-index:5;transform:rotate(-.4deg);padding:10px 12px}.range-orders .sheet-head{margin-top:0}.range-orders .requisition-keys{margin:8px 0 4px}.range-orders .paper-rule{margin:8px 0}.range-log{position:absolute;left:12px;bottom:12px;width:340px;z-index:5;transform:rotate(.3deg);padding:8px 12px 10px;max-height:220px}.range-log .sheet-head{margin-top:0}.range-left{position:absolute;left:12px;top:40px;bottom:12px;z-index:5;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:10px;pointer-events:none}.range-left>*{pointer-events:auto}.range-left .range-orders,.range-left .range-log{position:relative;left:auto;top:auto;bottom:auto}.range-left .range-orders{flex:0 1 auto;min-height:0;overflow-y:auto}.range-left .range-log{flex:0 0 auto;overflow-y:auto}.range-log-list{font-size:11px}.log-line{display:flex;gap:8px;padding:1px 0;border-bottom:1px dotted rgba(107,102,90,.35)}.log-time{color:var(--ink-faint);flex:0 0 58px}.range-damage{position:absolute;top:48px;right:12px;width:330px;max-height:calc(100% - 318px);overflow-y:auto;z-index:5;padding:9px 12px 11px;transform:rotate(.25deg)}.range-damage .sheet-head{margin-top:0}.range-hit-trace{right:auto;left:318px;width:320px}.hit-trace-heading{margin:9px 0 1px;font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--ink-faint);border-bottom:1px solid rgba(107,102,90,.6)}.damage-row{display:grid;grid-template-columns:112px 1fr;gap:8px;padding:3px 0;border-bottom:1px dotted rgba(107,102,90,.4);font-size:10px}.damage-label{font-weight:700;letter-spacing:.04em}.damage-values{text-align:right}.damage-values small{display:block;color:var(--ink-red);margin-top:2px}.damage-damaged{color:#8c5d13}.damage-destroyed,.damage-removed{color:var(--ink-red)}.damage-removed{text-decoration:line-through;opacity:.7}.map-inset{position:absolute;right:12px;bottom:12px;width:240px;height:240px;z-index:5;border:2px solid #223a4f;box-shadow:0 4px 12px #00000080;background:#0b141d;transition:width .15s,height .15s}.map-inset.map-full{width:calc(100% - 24px);height:calc(100% - 24px)}.map-inset.map-hidden{width:62px;height:30px}.map-inset.map-hidden .map-canvas{display:none}.map-canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}.map-keys{position:absolute;top:3px;right:3px;display:flex;gap:3px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#00000014}::-webkit-scrollbar-thumb{background:#a08a5c;border-radius:5px;border:2px solid rgba(0,0,0,.1)}@media(max-width:1180px){.design-grid{grid-template-columns:250px minmax(0,1fr) 320px}.performance-grid{grid-template-columns:1fr;overflow-y:auto}.dossier{max-height:none}.reference-card{width:200px}}.param-sheet-wrap{height:100%;min-height:0;display:flex;flex-direction:column}.param-sheet-wrap>.param-sheet{flex:1;min-height:0}.radar-grid{grid-template-columns:minmax(0,1fr) 380px}.radar-template{flex:0 0 auto;padding:8px 12px}@media(max-width:1500px){.radar-grid{grid-template-columns:minmax(0,1fr) 330px}}.office-switch{display:flex;justify-content:center;gap:8px;padding:4px 0 0}.office-key{font-family:var(--font-type);font-size:10px;letter-spacing:.18em;color:#7d8d81;background:transparent;border:1px solid rgba(125,141,129,.4);border-radius:3px 3px 0 0;padding:3px 14px 2px;cursor:pointer;-webkit-user-select:none;user-select:none}.office-key.active-key{color:#d9e4dc;background:#7d8d8140;border-color:#7d8d81cc}.scope-chip,.technology-chip{align-self:center;font-family:var(--font-type);font-size:9px;letter-spacing:.2em;color:#c8a05a;border:1px solid rgba(200,160,90,.45);border-radius:2px;padding:2px 8px 1px;margin-left:6px;white-space:nowrap}.technology-chip{color:#8fa8b4;border-color:#8fa8b473}.scope-chip.bad{color:#e08a72;border-color:#e08a7299;white-space:normal}.field-note{font-size:11px;color:var(--ink-faint);letter-spacing:.05em;padding:6px 0;line-height:1.5}.radar-readout,.motor-readout{margin-top:10px;padding:8px 9px 7px;border:1px dashed rgba(55,48,37,.38);background:#ffffff38}.radar-readout-title,.motor-readout-title{font-family:var(--font-type);font-size:10px;letter-spacing:.16em;color:var(--ink-blue);margin-bottom:4px}.radar-readout .data-row,.motor-readout .data-row{font-size:10px;padding:2px 0}.radar-readout .data-value,.motor-readout .data-value{color:var(--ink-blue);white-space:normal;text-align:right;max-width:58%}.radar-limitations,.motor-warnings{margin-top:6px;padding-top:5px;border-top:1px dotted rgba(160,36,24,.42);color:var(--ink-red);font-size:9px;line-height:1.45;letter-spacing:.045em}.radar-limitations>div+div,.motor-warnings>div+div{margin-top:3px}.radar-method,.readout-method{padding-bottom:0;font-size:9px}.radar-role-note{color:var(--ink-blue);border-left:2px solid rgba(34,62,94,.35);padding-left:8px}.ammo-card{border-top:1px dashed rgba(55,48,37,.3);padding:7px 0}.ammo-card:first-of-type{border-top:0}.ammo-computed{margin-top:4px;padding:4px 6px;background:#3730250d}.manifest-error{font-size:12px;color:var(--ink-red);letter-spacing:.04em;line-height:1.5;margin-top:8px}.magazine-row{display:flex;align-items:baseline;gap:6px;padding:4px 0;border-bottom:1px dotted rgba(107,102,90,.35)}.magazine-row .select{flex:1.4}.magazine-row .field-row{flex:1;min-width:0;padding:0}.magazine-row .field-label:empty{display:none}.magazine-index{font-size:11px;color:var(--ink-faint);flex:0 0 16px}.fc-page{height:100%;overflow-y:auto;display:flex;justify-content:center;padding:14px 0}.fc-sheet{width:min(560px,92%);align-self:flex-start;padding:14px 18px 18px;transform:rotate(-.3deg)}.radar-vertical-diagram{position:relative;margin:10px 0 12px;border:1px solid rgba(55,48,37,.45);background:#4b707e0b;overflow:hidden}.radar-diagram-heading{display:flex;justify-content:space-between;gap:10px;padding:5px 8px;border-bottom:1px solid rgba(55,48,37,.3);font-family:var(--font-data);font-size:10px;letter-spacing:.06em;color:var(--ink-blue)}.radar-vertical-diagram svg{display:block;width:100%;height:auto}.radar-diagram-earth-fill{fill:#37302514}.radar-diagram-earth{fill:none;stroke:var(--ink);stroke-width:1.2}.radar-diagram-fan{fill:#37647929}.radar-diagram-ray{fill:none;stroke:var(--ink-blue);stroke-width:1.1}.radar-diagram-horizon{fill:none;stroke:var(--ink-faint);stroke-width:.8;stroke-dasharray:3 3}.radar-diagram-probe{stroke:var(--ink-blue);stroke-width:.8;stroke-dasharray:2 2}.radar-diagram-seat{stroke:var(--ink);stroke-width:2}.radar-diagram-antenna{fill:var(--ink-red);stroke:var(--paper);stroke-width:1.2}.radar-diagram-label{fill:var(--ink-faint);font-family:var(--font-data);font-size:8px;letter-spacing:.04em}.radar-diagram-caption{padding:5px 8px 6px;border-top:1px dotted rgba(55,48,37,.3);font-family:var(--font-data);font-size:9px;line-height:1.35;letter-spacing:.035em;color:var(--ink-faint)}.radar-diagram-tooltip{position:absolute;z-index:1;max-width:calc(100% - 12px);padding:4px 6px;border:1px solid var(--ink-blue);background:var(--paper);box-shadow:1px 1px #37302533;color:var(--ink);font-family:var(--font-data);font-size:10px;letter-spacing:.035em;line-height:1.3;pointer-events:none;white-space:nowrap}.mount-status{font-family:var(--font-data);font-size:11px;color:var(--ink-blue);letter-spacing:.04em;line-height:1.55;border:1px dashed var(--ink-faint);padding:5px 8px;margin:6px 0 2px;min-height:48px}.particulars-grid{height:100%;min-height:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.particulars-grid .dossier{max-height:100%;overflow-y:auto;padding:12px 14px 16px}.particulars-grid .dossier:nth-child(2){transform:rotate(.18deg)}.particulars-grid .dossier:nth-child(3){transform:rotate(-.14deg)}.particulars-grid .dossier:nth-child(4){transform:rotate(.11deg)}.schedule-scroll{max-height:300px;overflow-y:auto}.schedule-scroll .data-table th{position:sticky;top:0;background:var(--paper);z-index:1}.range-board{position:absolute;top:48px;right:12px;width:340px;max-height:calc(100% - 76px);overflow-y:auto;z-index:5;padding:9px 12px 11px;transform:rotate(.22deg)}.range-board .sheet-head{margin-top:0}.dc-list{font-size:10px}@media(max-width:1180px){.particulars-grid{grid-template-columns:1fr;overflow-y:auto}.particulars-grid .dossier{max-height:none}}.command-switch{display:flex;justify-content:center;align-items:baseline;gap:10px;padding:6px 0 0}.settings-drawer{position:absolute;z-index:20;top:13px;right:18px}.settings-key{display:grid;place-items:center;width:27px;height:27px;padding:0;color:#8ea095;font-size:17px;line-height:1;background:#0e18145c;border:1px solid rgba(125,141,129,.48);border-radius:3px;cursor:pointer}.settings-key:hover,.settings-key[aria-expanded=true]{color:#e6f0e8;border-color:#b6543f;background:#23312ac2}.settings-menu{position:absolute;top:34px;right:0;width:194px;padding:11px 12px 12px;color:#b4c3b8;background:#131e19f7;border:1px solid rgba(125,141,129,.65);border-radius:3px;box-shadow:0 9px 20px #00000073;font-family:var(--font-type)}.settings-heading,.settings-label{letter-spacing:.22em;font-size:10px}.settings-heading{color:#e6f0e8;padding-bottom:9px;border-bottom:1px solid rgba(125,141,129,.35)}.settings-section{padding-top:10px}.settings-label{color:#718379;margin-bottom:8px}.settings-volume,.settings-switch{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;letter-spacing:.13em}.settings-volume input{width:102px;accent-color:#b6543f}.settings-switch{margin-top:10px}.settings-sound-toggle{min-width:57px;padding:3px 6px 2px;color:#b4c3b8;font:inherit;font-size:9px;letter-spacing:.13em;background:transparent;border:1px solid rgba(125,141,129,.5);border-radius:2px;cursor:pointer}.settings-sound-toggle[aria-pressed=true]{color:#cc9a87;border-color:#b6543f}.settings-select{padding:3px 4px 2px;color:#b4c3b8;font:inherit;font-size:9px;letter-spacing:.08em;background:#0e181499;border:1px solid rgba(125,141,129,.5);border-radius:2px;cursor:pointer}.command-title{font-family:var(--font-type);font-size:9px;letter-spacing:.3em;color:#63756a}.command-key{font-family:var(--font-type);font-size:11px;letter-spacing:.2em;color:#8ea095;background:transparent;border:none;border-bottom:2px solid transparent;padding:2px 12px 3px;cursor:pointer;-webkit-user-select:none;user-select:none}.command-key.active-key{color:#e6f0e8;border-bottom-color:#b6543f}.title-screen{flex:1;min-height:0;display:grid;place-items:center;overflow-y:auto;padding:20px 0}.title-sheet{position:relative;width:min(560px,100%);padding:44px 48px 26px;box-shadow:0 18px 44px #0000008c,inset 0 0 60px #a08c5a14}.title-stamp{position:absolute;top:26px;right:30px;font-size:13px}.title-kicker{font-family:var(--font-type);font-size:11px;letter-spacing:.3em;color:var(--ink-faint)}.title-name{font-family:var(--font-type);font-size:44px;font-weight:400;letter-spacing:.12em;line-height:1.1;margin:14px 0 8px}.title-sub{font-size:14px;color:var(--ink-faint);margin-bottom:22px}.title-entries{display:flex;flex-direction:column;margin:4px 0}.title-entry{display:flex;flex-direction:column;gap:3px;padding:11px 12px 10px 26px;position:relative;text-align:left;color:var(--ink);background:transparent;border:none;border-bottom:1px dotted var(--rule);cursor:pointer}.title-entry:last-child{border-bottom:none}.title-entry:before{content:"▸";position:absolute;left:6px;top:10px;color:var(--ink-red);opacity:0}.title-entry:hover:not(:disabled),.title-entry:focus-visible{background:#a08c5a29;outline:none}.title-entry:hover:not(:disabled):before,.title-entry:focus-visible:before{opacity:1}.title-entry:disabled{cursor:not-allowed;opacity:.5}.title-entry-name{font-family:var(--font-type);font-size:17px;letter-spacing:.2em}.title-entry-note{font-family:var(--font-data);font-size:12px;color:var(--ink-faint)}.office-hidden{display:none!important}.fleet-page{position:relative;height:100%;min-height:0;overflow:hidden}.force-screen{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr);gap:14px;height:100%;min-height:0;padding:10px 12px 14px;overflow:hidden}.force-card{display:flex;flex-direction:column;min-height:0;padding:10px 14px 14px;overflow:hidden}.force-card .sheet-head{margin-top:0}.roster-list,.roster-library{flex:1;min-height:0;overflow-y:auto;font-size:11px}.roster-row{display:flex;align-items:center;gap:6px;padding:2px 0;border-bottom:1px dotted rgba(107,102,90,.4)}.roster-index{flex:0 0 34px;color:var(--ink-faint);font-size:10px;letter-spacing:.08em}.roster-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-row .field-input.roster-pennant{flex:0 0 58px;width:58px;text-align:center;text-transform:uppercase}.roster-row .field-input.roster-hull-name{flex:0 1 150px;width:150px;min-width:80px;text-align:left}.roster-paren{color:var(--ink-faint);margin:0 -4px}.roster-class{color:var(--ink-faint);font-size:11px}.roster-foot{padding-top:6px}.setup-notes{padding:6px 0;font-size:11px}.key.wide{display:block;width:100%;margin-top:8px}.key.disabled{opacity:.45;cursor:not-allowed}.battle-screen{position:relative;height:100%;min-height:0;border:1px solid #10202f;box-shadow:inset 0 0 24px #00000073;overflow:hidden;background:#a9c1d6}.battle-log{bottom:64px;max-height:190px}.tactical-map{cursor:crosshair;bottom:70px}.tactical-map.map-full{inset:44px 12px 70px;width:auto;height:auto}.tactical-map.map-hidden{bottom:70px}.tactical-map .map-canvas:focus{outline:1px solid rgba(232,215,154,.6)}.action-bar{position:absolute;left:0;right:0;bottom:0;z-index:6;display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 12px;background:linear-gradient(#0a141db8,#0a141df0);border-top:1px solid #22384b}.bar-label{font-family:var(--font-data);font-size:11px;letter-spacing:.1em;color:#cddbe4}.bar-divider{width:1px;height:20px;background:#a0bed24d}.action-bar .vital.bad{color:#ffb2a2}.order-note{position:absolute;left:50%;transform:translate(-50%);bottom:62px;z-index:6;font-family:var(--font-data);font-size:11px;letter-spacing:.08em;color:#f2f6f8;text-shadow:0 1px 3px rgba(10,25,40,.9);pointer-events:none}.battle-outcome{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-.6deg);z-index:8;padding:18px 30px 22px;text-align:center}.map-legend{font-size:10px}.legend-row{display:flex;gap:6px}.legend-symbol{flex:0 0 14px;text-align:center}@media(max-width:1180px){.force-screen{grid-template-columns:1fr;overflow-y:auto}}.speed-host{position:relative;display:inline-flex}.speed-flyout{position:absolute;left:0;bottom:calc(100% + 6px);display:none;flex-direction:column;gap:3px;padding:7px 8px 8px;min-width:132px;background:#0a141df7;border:1px solid #2c4a63;box-shadow:0 -4px 14px #0000008c;z-index:7}.speed-flyout:after{content:"";position:absolute;left:0;right:0;top:100%;height:10px}.speed-host:hover .speed-flyout,.speed-host:focus-within .speed-flyout{display:flex}.speed-flyout-head{font-family:var(--font-type);font-size:9px;letter-spacing:.2em;color:#7f97a8;padding-bottom:3px;border-bottom:1px solid rgba(127,151,168,.3);margin-bottom:2px}.speed-flyout .key.tiny{text-align:left}.altitude-flyout{min-width:250px}.altitude-slider{-webkit-appearance:none;appearance:none;width:100%;height:14px;margin:3px 0 1px;background:transparent;cursor:ew-resize}.altitude-slider::-webkit-slider-runnable-track{height:4px;background:#16283a;border:1px solid #2c4a63}.altitude-slider::-moz-range-track{height:4px;background:#16283a;border:1px solid #2c4a63}.altitude-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:9px;height:14px;margin-top:-6px;background:#7fd6a4;border:1px solid #0a141d}.altitude-slider::-moz-range-thumb{width:9px;height:14px;border-radius:0;background:#7fd6a4;border:1px solid #0a141d}.altitude-slider:focus{outline:1px solid #2c4a63;outline-offset:1px}.altitude-scale{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.14em;color:#5b83a3}.altitude-presets{display:flex;gap:3px;padding-top:4px}.altitude-presets .key.tiny{flex:1;text-align:center;padding:1px 2px;white-space:nowrap}.key-host{position:relative;display:inline-flex}.order-menu{position:absolute;left:0;bottom:calc(100% + 6px);display:flex;flex-direction:column;gap:3px;padding:7px 8px 8px;min-width:148px;background:#0a141df7;border:1px solid #2c4a63;box-shadow:0 -4px 14px #0000008c;z-index:8}.order-menu .key.tiny{text-align:left}.order-menu-head{font-family:var(--font-type);font-size:9px;letter-spacing:.2em;color:#7f97a8;padding-bottom:3px;border-bottom:1px solid rgba(127,151,168,.3);margin-bottom:2px}.order-menu-rule{height:1px;background:#7f97a84d;margin:4px 0 2px}.range-field{padding:6px 0 2px}.range-field .field-row{display:flex;align-items:center;gap:8px}.range-field .field-input{width:84px}.field-unit{font-size:10px;letter-spacing:.12em;color:var(--ink-faint)}.range-presets{display:flex;flex-wrap:wrap;gap:4px;padding-top:5px}.dc-board{position:absolute;top:48px;right:12px;width:min(720px,calc(100% - 330px));max-height:calc(100% - 60px);overflow-y:auto;z-index:6;padding:8px 12px 10px;transform:rotate(.2deg)}.contact-inspector{position:absolute;right:16px;bottom:100px;z-index:7;width:min(440px,calc(100% - 32px));max-height:240px;overflow-y:auto;padding:12px;color:#e9f0f5;background:#0f1e2bf5;border:1px solid #687d8b;font:12px var(--font-data)}.contact-evidence{margin:8px 0;line-height:1.5;overflow-wrap:anywhere}.contact-designations{display:flex;gap:6px;flex-wrap:wrap}.dc-head{display:flex;align-items:baseline;gap:10px}.dc-head .sheet-head{margin:0;flex:0 0 auto}.dc-name{flex:1;font-size:11px;letter-spacing:.08em;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dc-board .stamp.small{margin:4px 0 2px}.dc-note{margin:8px 0 2px}.dc-drawing{position:relative;margin-top:4px}.dc-svg{display:block;width:100%;height:auto;max-height:calc(100vh - 290px)}.dc-svg *{pointer-events:none}.dc-svg .dc-space,.dc-svg .dc-party,.dc-svg .dc-party *,.dc-svg .dc-hole,.dc-svg .dc-plug rect,.dc-svg .dc-weapon ellipse,.dc-svg .dc-weapon rect,.dc-svg .dc-mag rect{pointer-events:all}.dc-caption{font-family:var(--font-data);font-size:11px;letter-spacing:.08em;fill:var(--ink-faint)}.dc-hull{fill:#e9e1ca;stroke:var(--ink);stroke-width:1.2}.dc-hull-below{fill:none;stroke:var(--ink-faint);stroke-dasharray:4 3;stroke-width:.8}.dc-space{fill:#f7f2e3}.dc-space.dc-role-tank,.dc-space.dc-role-void,.dc-space.dc-role-aviation-fuel{fill:#ebe5d2}.dc-space.dc-hover{fill:#dfe6ee}.dc-rule{fill:none;stroke:var(--ink);stroke-width:.6;stroke-opacity:.75}.dc-water{fill:#2f6fb8}.dc-fire{fill:#c62a17}.dc-smoke{fill:#e58a1f}.dc-edge{fill:none;stroke-width:3}.dc-edge-fire{stroke:#c62a17}.dc-edge-smoke{stroke:#e58a1f}.dc-hatch{stroke:#3a3730;stroke-width:.9}.dc-waterline{stroke:#2f6fb8;stroke-width:1.4;stroke-dasharray:7 4}.dc-failed{stroke:#7a0f08;stroke-width:3;stroke-dasharray:5 3;fill:none}.dc-failed-deck{stroke-width:2}.dc-hole{fill:#1d1a16;stroke:#f7f2e3;stroke-width:.8}.dc-plug rect{fill:#f7f2e3;stroke:#1d1a16;stroke-width:1.4}.dc-party circle{fill:var(--ink-blue);stroke:#f7f2e3;stroke-width:1}.dc-party text{fill:#fff;font-family:var(--font-data);font-size:9px;font-weight:700;text-anchor:middle}.dc-party-moving circle{fill:#f7f2e3;stroke:var(--ink-blue);stroke-width:1.4;stroke-dasharray:2 1.5}.dc-party-moving text{fill:var(--ink-blue)}.dc-party-idle circle{fill:#f7f2e3;stroke:var(--ink-faint);stroke-width:1}.dc-party-idle text{fill:var(--ink-faint)}.dc-weapon ellipse,.dc-weapon rect{fill:var(--ink);fill-opacity:.55;stroke:var(--ink);stroke-width:1.2}.dc-barrel{stroke:var(--ink);stroke-width:1.8;stroke-linecap:round}.dc-leader{stroke:#6b4a12;stroke-width:.8;stroke-dasharray:2 2;fill:none}.dc-mag rect{fill:#6b4a12;fill-opacity:.22;stroke:#6b4a12;stroke-width:1.3}.dc-mag path{stroke:#6b4a12;stroke-width:.9;fill:none}.dc-weapon.dc-out ellipse,.dc-weapon.dc-out rect{fill:#f7f2e3;fill-opacity:.85;stroke-dasharray:2.5 1.5}.dc-weapon.dc-out .dc-barrel{stroke-dasharray:1.5 1.5}.dc-mag.dc-gone rect{fill-opacity:0;stroke-dasharray:3 2;stroke-opacity:.7}.dc-mag.dc-gone path{stroke-opacity:.25}.dc-legend{display:flex;flex-wrap:wrap;gap:3px 11px;margin:5px 0 3px;font-size:9px;letter-spacing:.06em;color:var(--ink-faint)}.dc-key{display:inline-flex;align-items:center;gap:4px}.dc-key i{display:inline-block;width:11px;height:8px;border:1px solid var(--ink-faint)}.dc-key i.dc-swatch-fire{background:#c62a17}.dc-key i.dc-swatch-smoke{background:#e58a1f}.dc-key i.dc-swatch-water{background:#2f6fb8}.dc-key i.dc-swatch-wreck{background:repeating-linear-gradient(45deg,#3a3730 0 1px,transparent 1px 3px),repeating-linear-gradient(-45deg,#3a3730 0 1px,#f7f2e3 1px 3px)}.dc-key i.dc-swatch-hole{background:#1d1a16;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);border:none;height:11px}.dc-key i.dc-swatch-plug{background:#f7f2e3;border:1.5px solid #1d1a16;width:8px}.dc-key i.dc-swatch-failed{border:none;height:0;border-top:3px dashed #7a0f08}.dc-key i.dc-swatch-party{width:10px;height:10px;border-radius:50%;background:var(--ink-blue);border:none}.dc-key i.dc-swatch-weapon{width:9px;height:9px;border-radius:50%;background:#1d1a168c;border:1.2px solid var(--ink)}.dc-key i.dc-swatch-magazine{background:#6b4a1238;border:1.3px solid #6b4a12}.dc-key i.dc-swatch-silent{width:9px;height:9px;border-radius:50%;background:#f7f2e3;border:1.2px dashed var(--ink)}.dc-key i.dc-swatch-waterline{border:none;height:0;border-top:2px dashed #2f6fb8}.dc-status{display:grid;grid-template-columns:1fr 1fr;column-gap:16px}.dc-status .damage-row{grid-template-columns:96px 1fr;padding:2px 0;font-size:9.5px}.dc-status .damage-values small{margin-top:1px}.dc-board .compartment-card{width:230px}.campaign-page{width:calc(100% + 24px);margin:0 -12px;flex:1;min-height:0;display:flex;flex-direction:column}.campaign-head{display:flex;align-items:center;gap:18px;padding:16px 22px;flex-wrap:wrap}.campaign-head h2{margin:4px 0 0;font-size:24px}.campaign-kicker{font-size:11px;letter-spacing:2px}.campaign-accounts{flex:1;min-width:200px;font-size:13px}.campaign-body{flex:1;min-height:670px;display:grid;grid-template-columns:minmax(350px,1fr) 410px}.campaign-map-wrap{position:relative;min-height:450px;overflow:hidden;background:#101e27}.campaign-globe{position:absolute;inset:0;touch-action:none;cursor:grab}.campaign-globe:active{cursor:grabbing}.globe-canvas{display:block;width:100%;height:100%}.globe-labels{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}.globe-zone,.globe-port{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;cursor:pointer}.globe-zone{color:#d0e1df;background:#102d3bd9;border:1px solid #7b9aa1;padding:5px 7px;font:10px Courier Prime,monospace;text-transform:uppercase;white-space:nowrap}.globe-zone.selected{color:#ffe2a0;border-color:#ffe2a0}.globe-port{background:#eddaa5;border:1px solid #182e36;color:#172f3c;border-radius:50%;font-size:14px;line-height:20px;width:24px;height:24px;padding:0}.globe-air{background:#a7c4d2}.globe-instructions{position:absolute;bottom:18px;left:0;width:100%;text-align:center;color:#b8cacd;font-size:10px;letter-spacing:1px;pointer-events:none}.campaign-side{overflow-y:auto;padding:18px}.campaign-side h3{margin:18px 0 10px;font-size:16px}.campaign-side p{font-size:13px;line-height:1.5}.campaign-side .field-input{display:block;width:100%;box-sizing:border-box;margin:8px 0}.campaign-side .key{white-space:normal;margin:4px 0;font-size:12px}.campaign-side>.key,.campaign-card>.key{width:100%;text-align:left}.campaign-tabs{display:flex;gap:5px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid #958777}.research-budget{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:end;padding:10px 0;border-bottom:1px solid #958777}.research-budget label,.research-priority{color:#635746;font-size:10px;letter-spacing:1px}.research-budget .field-input{width:100%;margin:4px 0 0}.research-budget strong{font-size:12px;white-space:nowrap}.research-budget p{grid-column:1 / -1;margin:0;color:#635746;font-size:11px}.research-fields-title{margin:16px 0 6px;color:#635746;font-size:11px;letter-spacing:1px}.research-field{padding:9px 0;border-top:1px solid #ad9d7a55}.research-field-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.campaign-side .research-field h4{margin:0;font-size:13px}.research-priority{display:flex;align-items:center;gap:5px;white-space:nowrap}.research-priority .field-input{width:82px;margin:0}.research-allocation{margin:3px 0 7px;color:#635746;font-size:10px}.research-technologies{display:grid;gap:2px}.research-technology{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;align-items:baseline;padding:3px 5px;background:#fff7e522;font-size:11px}.research-tech-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.research-tech-status{color:#315b69;font-size:9px;font-weight:700;letter-spacing:.5px}.research-tech-detail{grid-column:1 / -1;color:#635746;font-size:10px;line-height:1.25}.research-technology.acquired{opacity:.68}.research-technology.acquired .research-tech-status{color:#3c6b45}.research-technology.blocked .research-tech-status{color:#82623b}.campaign-card{border:1px solid #a69a87;padding:12px;margin:14px 0;background:#fff7e522}.campaign-card h3{margin-top:0}.asw-card h4{margin:0 0 8px}.asw-card label{display:block;margin-top:7px;color:#635746;font-size:10px;letter-spacing:1px}.asw-routing{align-items:center;gap:8px}.asw-routing .field-input{width:130px;margin:0}.asw-report summary{cursor:pointer;font-size:12px;font-weight:700;line-height:1.4}.asw-report p{margin:7px 0 0;font-size:11px}.event-card{border-left:4px solid #82623b}.campaign-event{margin:auto;width:min(620px,calc(100vw - 48px));max-height:calc(100dvh - 48px);box-sizing:border-box;overflow-y:auto;padding:28px;border:2px solid #82623b;color:#302b24;background-color:#eee3cc;box-shadow:0 20px 80px #0008}.campaign-event::backdrop{background:#101e27b8}.campaign-event h2{margin:18px 0}.campaign-event p{font-size:15px;line-height:1.6}.campaign-event .key{display:block;width:100%;margin-top:12px;padding:12px;text-align:left;white-space:normal}.campaign-row{display:flex;justify-content:space-between;padding:8px 0;font-size:12px;border-bottom:1px solid #ad9d7a55}.campaign-ship{display:flex;flex-direction:column;gap:5px;font-size:12px;padding-top:12px}.campaign-ship-icon{align-self:flex-start;width:88px;height:22px;object-fit:contain;object-position:left center;opacity:.8}.campaign-error{background:#f6deb8;color:#802b23;padding:10px 18px}.campaign-error:empty{display:none}.province-list{max-height:360px;overflow:auto}.province-choice{display:block;width:100%;padding:9px;text-align:left;background:transparent;border:0;border-bottom:1px solid #99876d44;cursor:pointer;font:12px Courier Prime,monospace}.province-choice:hover,.province-choice.selected{background:#c1b57e77}.campaign-dispatch{border-bottom:1px solid #99876d44;padding-bottom:10px}@media(max-width:900px){.campaign-body{grid-template-columns:1fr;height:auto}.campaign-map-wrap{height:55vh}.campaign-side{max-height:none}}.campaign-force-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.campaign-force-toolbar h3{margin:12px 0}.campaign-side .campaign-force-help{font-size:11px;margin:0 0 6px}.campaign-selection-count{font-size:11px;opacity:.7;margin-bottom:8px}.campaign-force{border:1px solid #a69a87;margin:8px 0;background:#fff7e522}.campaign-force-header{display:flex;align-items:center;gap:8px;padding:6px 8px 2px;cursor:grab}.campaign-force-header h3{font-size:13px;margin:0;min-width:0;overflow-wrap:anywhere}.campaign-force-zone{margin-left:auto;text-align:right;font-size:11px;color:#5f5547}.campaign-orders{background:transparent;border:0;font-size:20px;cursor:pointer;padding:0 5px;color:inherit}.campaign-force-summary{font-size:10px;line-height:1.4;padding:2px 8px 6px;color:#635746;border-bottom:1px solid #ad9d7a55}.campaign-ship-row{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,auto) minmax(60px,auto);gap:7px;align-items:center;min-height:30px;padding:2px 8px;font-size:11px;cursor:pointer;-webkit-user-select:none;user-select:none}.campaign-ship-row+.campaign-ship-row{border-top:1px solid #ad9d7a33}.campaign-ship-row .campaign-ship-icon{width:44px;height:18px;align-self:center}.campaign-ship-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaign-ship-class{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#635746}.campaign-ship-status{text-align:right;font-size:10px;max-width:125px;color:#635746}.campaign-ship-row:hover{background:#c1b57e44}.campaign-ship-row.selected{background:#b4c8cc;box-shadow:inset 3px 0 #315b69}.campaign-ship-row:focus-visible,.campaign-force-header:focus-visible{outline:2px solid #315b69;outline-offset:-2px}.campaign-force-empty{padding:7px 8px;font-size:11px;color:#635746}.campaign-force.drop-target,.globe-zone.drop-target{outline:2px solid #dba849;background:#dba84944}.campaign-context{position:fixed;z-index:1000;min-width:210px;max-width:min(330px,calc(100vw - 16px));max-height:calc(100vh - 16px);overflow-y:auto;background:#eee3cc;border:1px solid #82623b;box-shadow:0 5px 20px #0005;padding:5px}.campaign-menu-title{padding:7px 9px;font-size:11px;font-weight:700;border-bottom:1px solid #a69a87}.campaign-context button{display:block;width:100%;text-align:left;background:transparent;border:0;padding:7px 9px;font:12px Courier Prime,monospace;cursor:pointer;color:#302b24}.campaign-context button:hover:not(:disabled),.campaign-context button:focus-visible{background:#b4c8cc}.campaign-context button:disabled{opacity:.45;cursor:default}
