:root{color-scheme:dark;--bg: #07090e;--line: #c9a45a;--dim: #8b9180;--shield: #4aa3ff;--armor: #d4a24a;--hull: #c24b3a;--panel: rgba(6, 8, 12, .72)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;background:var(--bg);touch-action:none;-webkit-user-select:none;user-select:none}body{font-family:Segoe UI,Iosevka,Consolas,monospace;color:#d7d3c4}canvas{display:block;width:100%;height:100%}button{font:inherit;color:inherit}.join{min-height:100%;display:grid;place-items:center;background:radial-gradient(1200px 600px at 50% 10%,#1a1408 0%,transparent 50%),#07090e;padding:24px}.join-card{width:min(420px,94vw);border:1px solid #3c3220;background:#0a0a0ce6;padding:28px 24px 22px}.join h1{margin:0 0 6px;font-size:28px;letter-spacing:.18em;color:var(--line);font-weight:600}.join p{margin:0 0 18px;color:var(--dim);font-size:13px;line-height:1.45}.join input{width:100%;background:#0c0e12;border:1px solid #3c3220;color:#eee8d5;padding:12px 10px;margin-bottom:12px}.join button,.module,.chrome-btn{background:#1a160e;border:1px solid var(--line);color:var(--line);padding:10px 14px;letter-spacing:.08em;text-transform:uppercase}.join button{width:100%;cursor:pointer}.join button:disabled{opacity:.5}.join button.ghost{margin-top:8px;background:transparent;border-color:#3c3220;color:var(--dim)}.modal{position:fixed;inset:0;display:grid;place-items:center;background:#05060acc;z-index:30;padding:16px}.settings-card{pointer-events:auto}.check{display:flex;align-items:center;gap:10px;margin:10px 0;color:#d7d3c4;font-size:14px;letter-spacing:0;text-transform:none;cursor:pointer}.check input{width:18px;height:18px;accent-color:var(--line)}.hud{position:fixed;inset:0;pointer-events:none}.hud *{pointer-events:auto}.reticle{position:absolute;left:50%;top:48%;width:22px;height:22px;margin:-11px 0 0 -11px;pointer-events:none;border:1px solid #d7d3c4;border-radius:50%;opacity:.55}.reticle.hit{border-color:#ffe08a;box-shadow:0 0 12px #ffe08a;opacity:1}.reticle:before,.reticle:after{content:"";position:absolute;background:#d7d3c4;left:50%;top:50%}.reticle:before{width:1px;height:28px;transform:translate(-50%,-50%)}.reticle:after{width:28px;height:1px;transform:translate(-50%,-50%)}.bars{position:absolute;left:12px;bottom:22%;width:160px;display:grid;gap:4px}.bar{height:8px;background:#141414;border:1px solid #2a2a2a}.bar>i{display:block;height:100%}.bar.shield>i{background:var(--shield)}.bar.armor>i{background:var(--armor)}.bar.hull>i{background:var(--hull)}.bars label{font-size:10px;letter-spacing:.14em;color:var(--dim)}.consider{position:absolute;left:50%;top:10px;transform:translate(-50%);min-width:220px;max-width:60vw;background:var(--panel);border:1px solid #2d2a22;padding:8px 10px;pointer-events:none}.consider .who{display:flex;justify-content:space-between;font-size:12px;margin-bottom:6px;color:var(--line)}.consider .bar{height:6px}.overview{position:absolute;left:8px;top:10px;width:min(280px,46vw);max-height:46vh;overflow:auto;background:var(--panel);border:1px solid #2d2a22;font-size:11px}.overview table{width:100%;border-collapse:collapse}.overview th{text-align:left;color:var(--dim);font-weight:500;padding:4px 8px}.overview td{padding:5px 8px;border-top:1px solid #222;white-space:nowrap}.overview tr.sel{background:#2a2414;color:var(--line)}.overview tr.lock{outline:1px solid var(--line)}.overview tr{cursor:pointer}.modules{position:absolute;left:50%;bottom:14px;transform:translate(-50%);display:flex;gap:8px;align-items:flex-end}.module{width:72px;height:72px;display:grid;place-items:center;text-align:center;font-size:10px;line-height:1.25;cursor:pointer}.module.on{background:#3a2c10;box-shadow:0 0 12px #c9a45a55}.module.cd{opacity:.7}.chrome-btn{min-width:64px;height:36px;font-size:11px;cursor:pointer}.pads{position:absolute;inset:0;pointer-events:none}.pad{position:absolute;width:140px;height:140px;border:1px solid #2e2a22;border-radius:50%;background:#0b0c1099;pointer-events:auto}.pad.left{left:18px;bottom:18px}.pad.right{right:18px;bottom:18px}.knob{position:absolute;width:46px;height:46px;margin:-23px;border-radius:50%;background:#c9a45a44;border:1px solid var(--line);left:50%;top:50%;pointer-events:none}.petals{position:absolute;display:flex;gap:6px;pointer-events:auto}.petals.heave{left:168px;bottom:28px;flex-direction:column}.petals.roll{right:168px;bottom:28px;flex-direction:column}.petal{width:44px;height:36px;border:1px solid #3c3220;background:#12141a99;color:var(--dim);font-size:11px}.flash{position:fixed;inset:0;pointer-events:none;background:#ff3b2e;opacity:0;mix-blend-mode:screen}.rotate{display:none}.dead{position:absolute;inset:0;display:grid;place-items:center;background:#07090ecc;pointer-events:none;letter-spacing:.2em;color:var(--line)}.status{position:absolute;right:10px;top:10px;font-size:11px;color:var(--dim);text-align:right;pointer-events:none}.lock-box{position:absolute;width:28px;height:28px;margin:-14px 0 0 -14px;border:1px solid var(--line);pointer-events:none;opacity:.85}.chrome-btn.dock{background:#3a2c10;min-width:76px}.station{position:fixed;inset:0;pointer-events:none;display:grid;grid-template-rows:auto auto 1fr;background:linear-gradient(180deg,#07090e 0%,transparent 42%)}.station *{pointer-events:auto}.station-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--panel);border-bottom:1px solid #3c3220}.station-bar strong{letter-spacing:.16em;color:var(--line);margin-right:10px}.station-bar span{color:var(--dim);font-size:12px}.station-bar .isk{margin-left:auto;color:var(--line);font-size:13px;display:grid;justify-items:end}.station-bar .isk small{color:var(--dim);font-size:10px}.station-bar .undock{background:#1a160e;border:1px solid var(--line);color:var(--line);padding:8px 12px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.station-tabs{display:flex;gap:6px;padding:8px 12px;overflow-x:auto;background:#07090ecc}.station-tabs button{background:transparent;border:1px solid #3c3220;color:var(--dim);padding:7px 10px;text-transform:uppercase;letter-spacing:.08em;font-size:11px;white-space:nowrap;cursor:pointer}.station-tabs button.on{border-color:var(--line);color:var(--line);background:#1a160e}.station-tabs button:disabled{opacity:.35;cursor:default}.station-body{margin:8px 12px 12px auto;width:min(420px,92vw);max-height:calc(100% - 16px);overflow:auto;background:var(--panel);border:1px solid #2d2a22;padding:12px}.station-body h2{margin:0 0 8px;font-size:13px;letter-spacing:.12em;color:var(--line);font-weight:600}.station-body p{margin:0 0 10px;color:var(--dim);font-size:12px;line-height:1.4}.station-body p.dim{opacity:.7}.hangar-fit{display:grid;gap:12px}.implants{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.hull-box.sel{background:#3a2c10;box-shadow:0 0 10px #c9a45a55}.hull-box{cursor:pointer;width:100%}.paperdoll{display:grid;grid-template-columns:72px 1fr 110px;grid-template-rows:auto auto auto;gap:8px;align-items:center}.hull-box{grid-column:2;grid-row:1 / span 3;min-height:110px;border:1px solid var(--line);display:grid;place-items:center;text-align:center;background:#12141a99;font:inherit;color:inherit}.hull-box em{font-style:normal;color:var(--line);letter-spacing:.08em}.hull-box small{display:block;color:var(--dim);font-size:10px}.slot{border:1px dashed #3c3220;background:#0c0e12;color:var(--dim);font-size:10px;letter-spacing:.06em;text-transform:uppercase;min-height:36px;padding:6px}.slot.high{border-style:solid;border-color:var(--line);color:var(--line);cursor:pointer}.slot.high.sel{background:#3a2c10;box-shadow:0 0 10px #c9a45a55}.slot.soon{opacity:.4}.ghost-fit{grid-column:1 / -1;background:transparent;border:1px solid #3c3220;color:var(--dim);padding:6px;cursor:pointer;text-transform:uppercase;font-size:11px}.inv-row,.mkt-row{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:8px;margin-bottom:6px;background:#0c0e12;border:1px solid #2d2a22;color:inherit;text-align:left;cursor:pointer}.inv-row span:last-child,.mkt-row small{color:var(--dim);font-size:11px}.mkt-row{cursor:default}.mkt-row>div{display:grid;gap:2px}.mkt-row button{background:#1a160e;border:1px solid var(--line);color:var(--line);padding:6px 8px;text-transform:uppercase;font-size:10px;cursor:pointer}.mkt-row button:disabled{opacity:.4;cursor:default}.empty{color:var(--dim);font-size:12px;padding:8px 0}.repair-bars{display:grid;gap:4px;margin:10px 0 14px}.repair-bars label{font-size:10px;letter-spacing:.1em;color:var(--dim)}.repair .bar{height:8px}.station-body.repair>button,.station-body.medical{text-transform:uppercase;letter-spacing:.08em}.station-body.repair>button{background:#1a160e;border:1px solid var(--line);color:var(--line);padding:10px 14px;cursor:pointer;width:100%}
