:root{--bg:#0a0d13;--panel:#121722;--panel-2:#171d2b;--line:#262f42;--ink:#dbe4f5;--muted:#7c8aa8;--accent:#a855f7;--accent-ink:#180a29;--accent-glow:#a855f759;--good:#6fdc8c;--warn:#e0c34f;--shield:#c9dcf2;--bad:#e0616f;--peace:#5b9dd9}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--ink);font-family:IBM Plex Sans,system-ui,sans-serif;overflow:hidden}.hud-frame{--frame:var(--accent);--frame-glow:var(--accent-glow);background:linear-gradient(180deg, #a855f71a, transparent 30%), linear-gradient(180deg, var(--panel-2), var(--panel) 45%, #0d111a);border:1px solid color-mix(in srgb, var(--frame) 45%, transparent);box-shadow:inset 0 1px 0 #ffffff0f, 0 0 16px var(--frame-glow), 0 14px 40px #0009;border-radius:3px;position:relative}.hud-frame:before,.hud-frame:after{content:"";pointer-events:none;width:12px;height:12px;filter:drop-shadow(0 0 3px var(--frame-glow));position:absolute}.hud-frame:before{border-top:2px solid var(--frame);border-left:2px solid var(--frame);top:-1px;left:-1px}.hud-frame:after{border-bottom:2px solid var(--frame);border-right:2px solid var(--frame);bottom:-1px;right:-1px}.hud-frame.danger{--frame:var(--bad);--frame-glow:#e0616f59}.shooting-star{animation:.9s ease-out forwards shooting-star}@keyframes shooting-star{0%{opacity:0;transform:translate(0)}15%{opacity:1}to{opacity:0;transform:translate(260px)}}.crown{color:#f3c77c;text-shadow:0 0 8px #f0aa508c}.notice-banner{z-index:1000;color:#f1e3c8;background:linear-gradient(#221c16f5,#120f0df5);border:1px solid #d9a0528c;border-radius:3px;align-items:center;gap:12px;max-width:min(720px,100vw - 32px);margin-top:8px;padding:8px 10px 8px 16px;font-weight:500;display:flex;position:fixed;top:0;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #0000008c}.notice-dismiss{color:#b9a582;cursor:pointer;background:0 0;border:none;font-size:1.2rem;line-height:1}.notice-dismiss:hover{color:#f1e3c8}.main-screen{background:var(--bg);height:100vh;color:var(--ink);justify-content:center;align-items:center;display:flex}.main-screen--cover{box-sizing:border-box;background-position:50%;background-size:cover;flex-direction:column;justify-content:flex-start;align-items:center;padding:7vh 16px 4vh;overflow-y:auto}.main-screen--cover .main-logo{text-align:center;pointer-events:none;margin-bottom:3vh}.main-logo-title{letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(#fff6df 0%,#f6d89a 38%,#d9a052 68%,#a8672a 100%);color:#0000;filter:drop-shadow(0 2px 2px #000000d9)drop-shadow(0 0 22px #f0aa5059);-webkit-background-clip:text;background-clip:text;margin:0;font-family:Cinzel,serif;font-size:clamp(2.6rem,6.2vw,6.5rem);font-weight:700;line-height:1}.main-logo-rule{color:#f3c77c;text-shadow:0 0 10px #f0aa5099;justify-content:center;align-items:center;gap:14px;width:min(520px,70vw);margin:14px auto 10px;font-size:.9rem;display:flex}.main-logo-rule:before,.main-logo-rule:after{content:"";background:linear-gradient(90deg,#0000,#f3c77ccc);flex:1;height:1px}.main-logo-rule:after{background:linear-gradient(90deg,#f3c77ccc,#0000)}.main-logo-tagline{letter-spacing:.28em;text-transform:uppercase;color:#e9d3ae;text-shadow:0 1px 3px #000000e6;margin:0;font-family:Cinzel,serif;font-size:clamp(.7rem,1vw,.95rem);font-weight:600}.main-game-list{scrollbar-width:thin;scrollbar-color:#d9a05299 transparent;flex-direction:column;gap:12px;max-height:250px;padding-right:4px;display:flex;overflow-y:auto}.main-screen--cover .main-btn{color:#f1e3c8;background:linear-gradient(#221c16eb,#120f0deb);border-color:#d9a05259}.main-screen--cover .main-btn:hover:not(:disabled){border-color:#e0ad62;box-shadow:0 0 14px #e0ad6259}.main-screen--cover .main-btn.primary{color:#2a1a0b;background:linear-gradient(#f3d08f 0%,#d9a052 55%,#b27432 100%);border-color:#f3d08f}.main-screen--cover .main-btn.primary .main-btn-note{color:#2a1a0bbf}.main-screen--cover .main-btn-note{color:#b9a582}.main-screen--cover .main-btn-delete{color:#b9a582;background:#120f0deb;border-color:#d9a05259}.main-screen--cover .main-card{border-color:#d9a0522e}.main-screen--cover .main-actions{width:290px}.main-card{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);text-align:center;background:#0a0d13b8;border:1px solid #ffffff0f;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:48px 40px;display:flex;box-shadow:0 12px 48px #00000080}.main-title{letter-spacing:.04em;color:var(--accent);text-shadow:0 0 24px var(--accent-glow);margin:0;font-family:Chakra Petch,sans-serif;font-size:2.4rem;font-weight:700}.main-build{letter-spacing:.08em;color:var(--muted);margin:0 0 4px;font-size:.75rem}.main-tagline{color:var(--muted);margin:0 0 28px;font-size:.95rem}.main-actions{flex-direction:column;gap:12px;width:220px;display:flex}.main-game-row{align-items:stretch;gap:6px;display:flex}.main-game-row .main-btn{flex:1}.main-btn-delete{background:var(--panel-2);color:var(--muted);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:0 12px;font-size:.9rem}.main-btn-delete:hover{color:var(--bad);border-color:var(--bad)}.main-btn{background:linear-gradient(180deg, var(--panel-2), var(--panel));color:var(--ink);border:1px solid var(--line);clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);letter-spacing:.03em;cursor:pointer;padding:14px 18px;font-family:Chakra Petch,sans-serif;font-size:1rem;font-weight:600;transition:border-color .15s,box-shadow .15s;position:relative}.main-btn:hover:not(:disabled){border-color:var(--accent);box-shadow:0 0 14px var(--accent-glow)}.main-btn.primary{background:linear-gradient(180deg, var(--accent), #8a3fd6);color:var(--accent-ink);border-color:var(--accent)}.main-btn:disabled{opacity:.45;cursor:not-allowed}.main-btn-note{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-top:3px;font-family:IBM Plex Sans,sans-serif;font-size:.68rem;font-weight:400;display:block}.main-form{text-align:left;flex-direction:column;gap:14px;width:260px;display:flex}.main-form label{color:var(--muted);flex-direction:column;gap:4px;font-size:.8rem;display:flex}.main-form input,.main-form select{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:.95rem}.main-difficulty-options{gap:8px;display:flex}.main-difficulty-options .main-btn{text-align:center;flex:1;padding:10px 8px}.main-form-actions{justify-content:flex-end;gap:10px;display:flex}.main-error{color:#ff6b6b;font-size:.85rem}.main-checkbox-label{align-items:center;flex-direction:row!important;gap:8px!important}.main-checkbox-label input{width:auto}.main-signed-in{color:var(--muted);margin:-4px 0 12px;font-size:.8rem}.main-signed-in strong{color:var(--ink);font-weight:600}.main-link-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-left:10px;padding:0;font-size:.8rem;text-decoration:underline}.main-link-btn:hover{color:var(--ink)}.main-signup-note{color:var(--muted);text-align:center;margin:0;font-size:.8rem}.main-signup-note a{color:var(--ink)}.main-btn--static{cursor:default;flex:1}.main-btn--static:hover{box-shadow:none!important;border-color:var(--line)!important}.main-none-open{color:var(--muted);text-align:center;margin:0;font-size:.8rem}.modal-overlay{z-index:1000;background:radial-gradient(#180a298c,#05070bcc);justify-content:center;align-items:center;padding:16px;animation:.15s ease-out modal-fade;display:flex;position:fixed;inset:0}.modal-card{width:420px;max-width:100%;padding:22px 26px}.modal-card h2{color:var(--accent);letter-spacing:.03em;margin:0 0 12px;font-family:Chakra Petch,sans-serif;font-size:1.1rem}.modal-card.danger h2{color:var(--bad)}.modal-body{color:var(--ink);font-size:.87rem;line-height:1.5}.modal-body p{margin:0 0 10px}.modal-body p:last-child{margin-bottom:0}.modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.modal-card.game-menu{text-align:center;width:300px}.game-menu-actions{flex-direction:column;gap:10px;margin-top:18px;display:flex}.game-menu-actions .btn{padding:9px 12px;font-size:.9rem}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.standings-card{min-width:min(640px,92vw);max-width:92vw}.rankings-card{min-width:min(360px,92vw);max-width:92vw}.rankings-table td:last-child,.rankings-table th:last-child{text-align:right}.standings-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:8px}.standings-table th,.standings-table td{text-align:left;border-bottom:1px solid #ffffff14;padding:6px 10px}.standings-table th{opacity:.75;font-weight:600}.standings-table td:nth-child(n+4),.standings-table th:nth-child(n+4){text-align:right}.standings-table tr.first td{font-weight:700}.standings-table tr.you td{background:#78aaff1f}.standings-table tr.eliminated td{opacity:.5}.standings-card,.rankings-card{flex-direction:column;width:max-content;max-height:calc(100vh - 32px);display:flex}.standings-card .modal-body,.rankings-card .modal-body{flex:1;min-height:0;overflow-y:auto}.standings-card .standings-table th,.rankings-card .standings-table th{background:var(--panel);position:sticky;top:0}.name-prompt-overlay{z-index:1000;background:radial-gradient(#180a298c,#05070bcc);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.name-prompt-card{text-align:center;width:320px;max-width:calc(100vw - 32px);padding:28px 32px}.name-prompt-card h2{color:var(--accent);margin:0 0 16px;font-family:Chakra Petch,sans-serif;font-size:1.2rem}.name-prompt-label{text-align:left;color:var(--muted);flex-direction:column;gap:6px;font-size:.8rem;display:flex}.name-prompt-label input{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:10px 12px;font-size:1rem}.name-prompt-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.info-tooltip-anchor{align-items:center;display:inline-flex}.score-tooltip table{border-collapse:collapse;font-variant-numeric:tabular-nums;margin:4px 0}.score-tooltip td{padding:1px 0}.score-tooltip td:last-child{text-align:right;padding-left:16px}.score-tooltip tr.total td{border-top:1px solid var(--muted);padding-top:3px;font-weight:700}.info-tooltip-bubble{z-index:2500;background:var(--panel);border:1px solid var(--accent);width:max-content;max-width:240px;color:var(--ink);box-shadow:0 4px 16px #0006, 0 0 10px var(--accent-glow);pointer-events:none;border-radius:6px;padding:8px 10px;font-size:.72rem;line-height:1.4}.info-icon{border:1px solid var(--muted);width:14px;height:14px;color:var(--muted);cursor:help;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:5px;font-size:.62rem;line-height:1;display:inline-flex}.info-tooltip-anchor:hover .info-icon,.info-tooltip-anchor:focus-within .info-icon{border-color:var(--accent);color:var(--accent)}.shell{background:var(--bg);height:100vh;color:var(--ink);flex-direction:column;display:flex;overflow-x:hidden}.shell.centered{justify-content:center;align-items:center}.shell.error{color:var(--bad)}.topbar{border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap;align-items:center;gap:10px 24px;padding:10px 20px;font-family:Chakra Petch,sans-serif;display:flex}.game-title{letter-spacing:.03em;font-size:1.1rem;font-weight:600}.nav-tabs{flex-wrap:wrap;gap:4px;display:flex}.nav-tab{color:var(--muted);border:1px solid #0000;border-radius:4px;padding:6px 12px;font-size:.85rem;text-decoration:none;position:relative}.nav-tab:hover{color:var(--ink)}.nav-tab.active{color:var(--accent);border-color:var(--line);background:var(--panel-2)}.nav-tab.active:after{content:"";background:var(--accent);height:2px;box-shadow:0 0 6px var(--accent-glow);position:absolute;bottom:-1px;left:8px;right:8px}.resources{color:var(--muted);gap:14px;margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:.85rem;display:flex}.resource-item{cursor:default;flex-direction:column;align-items:flex-end;line-height:1.2;display:flex;position:relative}.resource-rate{gap:3px;font-size:.68rem;display:flex}.rate-in{color:var(--good)}.rate-out{color:var(--bad)}.rate-zero,.rate-sep{color:var(--muted)}.resource-fall{background:var(--panel);border:1px solid var(--accent);color:var(--accent);white-space:nowrap;box-shadow:0 0 8px var(--accent-glow);pointer-events:none;z-index:50;border-radius:4px;padding:2px 6px;font-size:.75rem;animation:1.6s forwards resource-fall-anim;position:absolute;top:100%;left:50%;transform:translate(-50%)}@keyframes resource-fall-anim{0%{opacity:0;transform:translate(-50%,-4px)}10%{opacity:1;transform:translate(-50%,2px)}70%{opacity:1;transform:translate(-50%,10px)}to{opacity:0;transform:translate(-50%,18px)}}.speed-control{align-items:center;gap:4px;display:flex}.speed-btn{background:var(--panel-2);color:var(--muted);border:1px solid var(--line);clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px);cursor:pointer;padding:5px 10px;font-size:.8rem;transition:border-color .15s,box-shadow .15s}.speed-btn:hover:not(.active){border-color:var(--accent);color:var(--ink)}.speed-btn.active{background:linear-gradient(180deg, var(--accent), #8a3fd6);color:var(--accent-ink);border-color:var(--accent);box-shadow:0 0 8px var(--accent-glow);font-weight:600}.step-btn{margin-left:8px}.btn{background:linear-gradient(180deg, var(--panel-2), var(--panel));color:var(--ink);border:1px solid var(--line);clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px);cursor:pointer;padding:5px 10px;font-size:.8rem;transition:border-color .15s,box-shadow .15s}.btn:hover:not(:disabled){border-color:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.small{clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px);padding:3px 8px;font-size:.72rem}.btn.primary{background:linear-gradient(180deg, var(--accent), #8a3fd6);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.btn.primary:hover:not(:disabled){box-shadow:0 0 12px var(--accent-glow)}.btn.danger:hover:not(:disabled){border-color:var(--bad);color:var(--bad);box-shadow:0 0 8px #e0616f59}.btn.danger-solid{background:linear-gradient(180deg, var(--bad), #b8404e);color:#1f0508;border-color:var(--bad);font-weight:600}.btn.danger-solid:hover:not(:disabled){box-shadow:0 0 12px #e0616f80}.tick{color:var(--accent);font-family:IBM Plex Mono,monospace}.shell-body{flex:1;min-height:0;display:flex}.panel{border-bottom:1px solid var(--line);background:linear-gradient(#a855f70a,#0000 40%);padding:14px 14px 14px 18px;position:relative}.panel:before{content:"";border-left:2px solid var(--accent);border-top:2px solid var(--accent);opacity:.6;width:8px;height:8px;position:absolute;top:8px;left:6px}.panel h2{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);align-items:center;margin:0 0 10px;font-family:Chakra Petch,sans-serif;font-size:.75rem;display:flex}.muted{color:var(--muted);font-size:.85rem}.upgrade-toggle{color:var(--muted);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;font-size:.78rem;display:inline-flex}.upgrade-toggle input{margin:0}.storage-cap{font-size:.72rem}.storage-full{color:var(--warn,#d9a441)}.type-red{color:var(--bad)}.type-white{color:#cfd6e4}.type-yellow{color:var(--warn)}.type-green{color:var(--good)}.type-blue{color:#5fa8f5}.type-tag{text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:.75rem}.game-over-banner{background:var(--accent);color:var(--accent-ink);text-align:center;letter-spacing:.02em;padding:8px 12px;font-family:Chakra Petch,sans-serif;font-weight:600}.attack-alerts{z-index:60;flex-direction:column;gap:6px;width:min(640px,100vw - 32px);display:flex;position:fixed;top:60px;left:50%;transform:translate(-50%)}.attack-alert{border:1px solid var(--bad,#e5484d);color:var(--ink,#eee);background:#3c0c14f5;align-items:center;gap:10px;padding:10px 12px;font-size:13px;animation:.18s ease-out attack-alert-in;display:flex;box-shadow:0 4px 18px #00000080}.attack-alert-icon{color:var(--bad,#e5484d);font-size:16px}.attack-alert-text{flex:1}.attack-alert-close,.attack-alert-clear{border:1px solid var(--line,#444);color:inherit;cursor:pointer;background:0 0;padding:2px 8px}.attack-alert-clear{align-self:flex-end;font-size:12px}@keyframes attack-alert-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.attack-alert.spotted{background:#30240af5;border-color:#d9a441}.attack-alert.spotted .attack-alert-icon{color:#d9a441}.attack-alert.revolt{background:#281830f5;border-color:#a457d9}.attack-alert.revolt .attack-alert-icon{color:#a457d9}.nav-tab-button{cursor:pointer;background:0 0;font-family:inherit}.mp-countdown{font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;padding:0 4px}.mp-ready{border-color:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.nav-tab .tab-dot{background:var(--accent);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-left:6px;display:inline-block}.attack-alert.diplomacy-good{border-color:var(--good,#6fdc8c);background:#0c2c18f5}.attack-alert.diplomacy-good .attack-alert-icon{color:var(--good,#6fdc8c)}.attack-alert.diplomacy-setback{background:#30240af5;border-color:#d9a441}.attack-alert.diplomacy-setback .attack-alert-icon{color:#d9a441}.tutorial-overlay{z-index:2000;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.tutorial-card{width:100%;max-width:420px;padding:20px 24px}.tutorial-card h2{color:var(--accent);letter-spacing:.03em;margin:0 0 10px;font-family:Chakra Petch,sans-serif;font-size:1rem}.tutorial-body{color:var(--ink);font-size:.85rem;line-height:1.5}.tutorial-body p{margin:0 0 10px}.tutorial-body p:last-child{margin-bottom:0}.tutorial-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.tutorial-spotlight-layer{z-index:1900;pointer-events:none;position:fixed;inset:0}.tutorial-spotlight-hole{box-shadow:0 0 0 9999px #000000b8, 0 0 24px 4px var(--accent-glow);outline:2px solid var(--accent);pointer-events:none;background:#ffffff12;border-radius:8px;position:fixed}.tutorial-bubble{pointer-events:auto;z-index:1901;max-width:260px;padding:14px;font-size:.8rem;line-height:1.4}.tutorial-bubble p{color:var(--ink);margin:4px 0 10px}.tutorial-bubble-hint{color:var(--accent);font-size:.72rem;font-style:italic;margin-top:-6px!important}.tutorial-bubble-actions{justify-content:space-between;gap:8px;display:flex}.tutorial-bubble-count{color:var(--muted);font-size:.65rem}.link-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:.75rem;text-decoration:underline}.link-btn:hover:not(:disabled){color:var(--ink)}.tab-dot{background:var(--accent);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-left:6px;display:inline-block}.chat-body{flex-direction:column;gap:10px;max-width:760px;min-height:0;display:flex}.chat-list{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:4px;max-height:60vh;padding:10px 12px;display:flex;overflow-y:auto}.chat-line{align-items:baseline;gap:8px;font-size:.85rem;line-height:1.35;display:flex}.chat-line.mine .chat-name{color:var(--accent)}.chat-meta{color:var(--muted);white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:.7rem}.chat-name{white-space:nowrap}.chat-text{overflow-wrap:anywhere;flex:1}.chat-action{opacity:0}.chat-line:hover .chat-action{opacity:1}.chat-body .composer{flex-direction:row;align-items:center}.chat-input{background:var(--panel-2);min-width:0;color:var(--ink);border:1px solid var(--line);font:inherit;border-radius:6px;flex:1;padding:6px 8px}.chat-count{white-space:nowrap;font-size:.7rem}.chat-body.compact{gap:6px;max-width:none;height:100%}.chat-body.compact .chat-list{flex:1;min-height:0;max-height:none;padding:6px 8px}.chat-body.compact .composer{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:row;align-items:center;gap:6px;padding:6px;display:flex}.chat-body.compact .chat-line{font-size:.8rem}.event-log{z-index:12;background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:8px;width:min(560px,100% - 20px);max-height:45%;padding:10px 12px;display:flex;position:absolute;bottom:10px;left:10px}.event-log-head{align-items:baseline;gap:10px;font-size:.8rem;display:flex}.event-log-head strong{color:var(--accent);white-space:nowrap;font-size:.9rem}.event-log-close{border:1px solid var(--line);color:inherit;cursor:pointer;background:0 0;margin-left:auto;padding:0 8px}.event-log .covert-log-list{min-height:0;overflow-y:auto}.covert-log-list{flex-direction:column;gap:6px;display:flex}.covert-log-row{background:var(--panel-2,var(--panel));border:1px solid var(--line);border-radius:6px;align-items:baseline;gap:10px;padding:6px 10px;font-size:.85rem;display:flex}.covert-log-tick{color:var(--muted);flex-shrink:0;font-family:IBM Plex Mono,monospace;font-size:.72rem}.covert-log-row.locatable{cursor:pointer}.covert-log-row.locatable:hover{background:#ffffff0d}.covert-log-older{margin:8px auto 4px;display:block}.map-dock{z-index:12;background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:6px;width:min(480px,100% - 20px);height:min(300px,45%);padding:8px 10px;display:flex;position:absolute;bottom:10px;left:10px}.map-dock.minimized{width:auto;height:auto;padding:4px 6px}.map-dock-tabs{align-items:center;gap:4px;display:flex}.map-dock-tab{color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;padding:3px 10px;font-size:.8rem}.map-dock-tab:hover{color:var(--ink)}.map-dock-tab.active{color:var(--accent);border-color:var(--line);background:var(--panel-2)}.map-dock-hint{text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.map-dock-btn{border:1px solid var(--line);color:inherit;cursor:pointer;background:0 0;border-radius:6px;margin-left:auto;padding:0 8px}.map-dock-body{flex:1;min-height:0;overflow-y:auto}.map-dock-body .chat-body.compact{height:100%}.map-dock-resize{cursor:ns-resize;z-index:1;height:9px;position:absolute;top:-4px;left:0;right:0}.map-dock-resize:after{content:"";background:var(--line);border-radius:2px;width:36px;height:3px;margin-left:-18px;position:absolute;top:3px;left:50%}.map-dock-resize:hover:after{background:var(--accent)}.map-dock{max-height:calc(100% - 20px)}.galaxy-screen{flex:1;min-height:0;display:flex}.map-wrap{flex:1;min-width:0;position:relative}.map-overlay-toggle{z-index:10;position:absolute;top:10px;left:10px}.map-overlay-toggle.active{border-color:var(--accent);color:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.galaxy-svg{width:100%;height:100%;display:block}.planet-label{fill:var(--ink);paint-order:stroke;stroke:var(--bg);stroke-width:3px;font-family:IBM Plex Sans,sans-serif;font-size:11px}.planet-capacity-label{fill:var(--accent);font-family:IBM Plex Mono,monospace}.planet-revolt-label{fill:var(--bad);font-family:IBM Plex Mono,monospace;font-weight:600}.sidebar{border-left:1px solid var(--line);background:var(--panel);width:300px;box-shadow:inset 6px 0 12px -10px var(--accent-glow);flex-direction:column;flex-shrink:0;gap:1px;display:flex;overflow:hidden auto}.detail-title{margin-bottom:2px;font-size:1rem;font-weight:600}.fleet-contents{margin:0 0 6px;font-size:.85rem}.detail{font-size:.85rem}.kv{border-bottom:1px dashed var(--line);justify-content:space-between;gap:8px;padding:4px 0;display:flex}.kv span:first-child{color:var(--muted)}.kv.bad span:last-child{color:var(--bad)}.comp-list{margin-top:8px}.comp-row{justify-content:space-between;padding:2px 0;font-family:IBM Plex Mono,monospace;font-size:.8rem;display:flex}.fleet-list{flex-direction:column;gap:8px;display:flex}.fleet-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.fleet-name{font-size:.85rem;font-weight:600}.fleet-loc{font-size:.75rem}.move-control{border-top:1px dashed var(--line);flex-wrap:wrap;gap:6px;margin-top:12px;padding-top:10px;display:flex}.move-control select,.move-control input{background:var(--panel-2);min-width:0;color:var(--ink);border:1px solid var(--line);border-radius:4px;flex:1;padding:5px 8px;font-size:.8rem}.warn-note{color:var(--warn);margin-top:6px;margin-bottom:8px;font-size:.75rem}.cargo-section{border-top:1px dashed var(--line);margin-top:12px;padding-top:10px}.cargo-title{margin-bottom:6px;font-size:.8rem;font-weight:600}.cargo-row{margin-bottom:8px}.cargo-row-label{margin-bottom:4px;font-size:.8rem}.cargo-row-controls{gap:6px;display:flex}.cargo-row-controls input{background:var(--panel-2);width:0;color:var(--ink);border:1px solid var(--line);border-radius:4px;flex:1;padding:5px 8px;font-size:.8rem}.context-menu{z-index:20;flex-direction:column;gap:1px;min-width:170px;padding:5px;display:flex;position:fixed}.context-menu-title{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #0000;border-image:linear-gradient(90deg, var(--accent), transparent) 1;margin-bottom:3px;padding:5px 8px 7px;font-family:Chakra Petch,sans-serif;font-size:.7rem}.context-menu button{color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:none;border-left:2px solid #0000;padding:6px 8px 6px 10px;font-size:.82rem;transition:background .12s,border-color .12s}.context-menu button:hover{border-left-color:var(--accent);background:linear-gradient(90deg,#a855f738,#a855f70a)}.context-menu button.danger{color:var(--bad)}.context-menu button.danger:hover{border-left-color:var(--bad);background:linear-gradient(90deg,#e0616f40,#e0616f0a)}.context-menu button.shield-warn{color:var(--warn)}.context-menu button.shield-warn:hover{border-left-color:var(--warn);background:linear-gradient(90deg,#e0c34f33,#e0c34f0a)}.context-menu-note{color:var(--muted);max-width:200px;padding:6px 8px;font-size:.75rem;line-height:1.35}.planet-legend-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.planet-legend-list li{display:flex}.planet-legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.planet-legend-label{color:var(--ink);cursor:default;margin-left:8px;font-size:.78rem}.shield-down{animation:1.6s step-end infinite shield-flicker}@keyframes shield-flicker{0%{opacity:.55}30%{opacity:.15}45%{opacity:.5}70%{opacity:.1}85%{opacity:.4}}.shield-ripple{transform-box:fill-box;transform-origin:50%;animation:1.2s ease-out forwards shield-ripple}@keyframes shield-ripple{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}@media (prefers-reduced-motion:reduce){.shield-down,.shield-ripple{animation:none}}.fx-beam{animation:.45s ease-out forwards fx-beam}@keyframes fx-beam{0%{opacity:.95}to{opacity:0}}.fx-impact{transform-box:fill-box;transform-origin:50%;animation:.5s ease-out forwards fx-impact}@keyframes fx-impact{0%{opacity:0;transform:scale(.4)}25%{opacity:.95;transform:scale(1.3)}to{opacity:0;transform:scale(.6)}}.fx-mover{animation:1.2s linear forwards fx-mover}@keyframes fx-mover{0%{opacity:.9}80%{opacity:.9}to{opacity:0}}.fleet-strafe{animation:3.6s ease-in-out infinite fleet-strafe}@keyframes fleet-strafe{0%{transform:translate(0)}25%{transform:translate(3px,-2px)}50%{transform:translate(-1px,-4px)}75%{transform:translate(-3px,1px)}to{transform:translate(0)}}.fx-siege-ring{opacity:.7;transform-box:fill-box;transform-origin:50%;animation:14s linear infinite fx-siege-spin}@keyframes fx-siege-spin{to{transform:rotate(360deg)}}.fx-floater{paint-order:stroke;stroke:var(--bg);stroke-width:3px;font-family:IBM Plex Sans,sans-serif;font-weight:600;animation:8s ease-out forwards fx-floater}@keyframes fx-floater{0%{opacity:0;transform:translateY(4px)}5%{opacity:1;transform:none}85%{opacity:1}to{opacity:0;transform:translateY(-6px)}}.fx-capture-ring{transform-box:fill-box;transform-origin:50%;animation:2.6s ease-out forwards fx-capture}@keyframes fx-capture{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(2.2)}}.fx-capture-text{animation-duration:10s}@media (prefers-reduced-motion:reduce){.fleet-strafe,.fx-siege-ring{animation:none}}.map-toggles{z-index:10;gap:6px;display:flex;position:absolute;top:10px;left:10px}.map-toggles .map-overlay-toggle{position:static}.fx-shield-flare{animation:.6s ease-out forwards fx-shield-flare}@keyframes fx-shield-flare{0%{opacity:.95}to{opacity:0}}.force-section+.force-section{margin-top:14px}.force-empty{margin:2px 0 6px;font-size:.85rem}.fleet-actions{flex-wrap:wrap;gap:6px;margin:4px 0 8px;display:flex}.ledger-screen{flex-direction:column;flex:1;min-height:0;display:flex}.ledger-tabs{border-bottom:1px solid var(--line);background:var(--panel);align-items:center;gap:4px;padding:10px 20px;display:flex}.tab-btn{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:6px 14px;font-family:Chakra Petch,sans-serif;font-size:.85rem}.tab-btn.active{color:var(--accent);border-color:var(--line);background:var(--panel-2)}.tab-btn:disabled{opacity:.4;cursor:not-allowed}.action-error{color:var(--bad);margin-left:auto;font-size:.8rem}.ledger-title{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;font-family:Chakra Petch,sans-serif;font-size:.85rem}.ledger-row{cursor:pointer}.ledger-row:hover td{background:var(--panel-2)}.row-expanded td{border-bottom:none}.row-expanded-panel td{border-bottom:2px solid var(--accent);background:var(--panel);padding:0}.row-expanded-panel .detail-body{padding:16px}.ledger-body{flex:1;padding:20px;overflow-y:auto}.detail-body{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-content:start;gap:16px;display:grid}.ledger-table{border-collapse:collapse;width:100%;font-size:.88rem}.ledger-table th,.ledger-table td{text-align:left;border-bottom:1px solid var(--line);padding:8px 10px}.ledger-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.ledger-table td.bad{color:var(--bad)}.bar-row{align-items:center;gap:10px;margin:8px 0;font-size:.8rem;display:flex}.bar-row>span:first-child{width:80px;color:var(--muted)}.bar-row>span:last-child{text-align:right;width:110px;font-family:IBM Plex Mono,monospace}.bar{background:var(--panel-2);border-radius:4px;flex:1;height:8px;overflow:hidden}.bar-fill.over{background:var(--bad)}.facility-summary-toggle{text-align:left;background:var(--panel-2);border:1px solid var(--line);width:100%;color:var(--ink);cursor:pointer;border-radius:4px;margin-bottom:12px;padding:8px 10px;font-size:.82rem;display:block}.facility-summary-toggle:hover{border-color:var(--accent)}.facility-summary-arrow{color:var(--accent);width:10px;margin-right:6px;display:inline-block}.facility-grid{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.facility-chip{background:var(--panel-2);border:1px solid var(--line);border-radius:4px;align-items:center;gap:8px;padding:6px 10px;font-size:.85rem;display:flex}.facility-chip button{flex-shrink:0;margin-left:auto}.facility-chip-text{flex-direction:column;gap:2px;display:flex}.facility-chip-desc{color:var(--muted);font-size:.72rem;line-height:1.3}.queue-control{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.queue-control select{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:5px 8px;font-size:.8rem}.cost-note{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.72rem}.build-description{color:var(--muted);margin:4px 0 0;font-size:.72rem;line-height:1.35}.warn-note{color:var(--warn);margin-top:6px;font-size:.75rem}.queue-item{padding:4px 0;font-family:IBM Plex Mono,monospace;font-size:.85rem}.panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 6px;font-family:Chakra Petch,sans-serif;font-size:.7rem}.count-input{background:var(--panel-2);width:52px;color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:5px 6px;font-family:IBM Plex Mono,monospace;font-size:.8rem}.planet-name-editable{cursor:text;align-items:center;gap:6px;display:inline-flex}.rename-pencil{opacity:0;color:var(--muted);font-size:.75rem;transition:opacity .1s}.planet-name-editable:hover .rename-pencil{opacity:1}.planet-rename-input{background:var(--panel-2);color:var(--ink);border:1px solid var(--accent);font-size:inherit;border-radius:4px;width:140px;padding:3px 6px;font-family:inherit}.market-panel{margin-bottom:12px}.market-row{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.market-label{flex:220px}.domain-stats{margin-top:16px}.domain-stats-toggle{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:baseline;padding:0;display:flex}.domain-stats-toggle h2{margin:0}.dstat-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px 32px;margin-top:10px;display:grid}.dstat-col{min-width:0}.dstat-col h3{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 4px;font-size:.72rem}.dstat-row{justify-content:space-between;gap:10px;padding:2px 0;font-size:.82rem;display:flex}.dstat-row>span:first-child{color:var(--muted)}.dstat-row>span:last-child{text-align:right;font-family:IBM Plex Mono,monospace}.dstat-row[title]>span:first-child{text-underline-offset:3px;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dstat-note{margin:4px 0 0;font-size:.75rem}.research-screen{flex:1;min-height:0;display:flex}.research-sidebar{border-right:1px solid var(--line);background:var(--panel);width:280px;box-shadow:inset -6px 0 12px -10px var(--accent-glow);flex-direction:column;flex-shrink:0;gap:1px;display:flex;overflow-y:auto}.research-error{color:var(--bad);padding:10px 14px;font-size:.8rem}.active-name{margin-bottom:6px;font-weight:600}.active-meta{color:var(--muted);margin:6px 0;font-family:IBM Plex Mono,monospace;font-size:.75rem}.bar{background:var(--panel-2);border-radius:4px;height:8px;overflow:hidden}.bar-fill{background:var(--accent);height:100%}.queue-list{flex-direction:column;gap:4px;display:flex}.queue-row{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:center;gap:8px;padding:4px 0;font-size:.82rem;display:flex}.research-main{flex:1;padding:16px 20px;overflow-y:auto}.tree-tabs{gap:4px;margin-bottom:16px;display:flex}.tech-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.tech-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:6px;padding:12px;display:flex}.tech-name{font-size:.9rem;font-weight:600}.tech-level{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.78rem}.tech-status{text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:600}.tech-status.unlocked{color:var(--good)}.tech-status.locked{color:var(--muted)}.tech-requires{color:var(--warn);font-size:.72rem}.tech-estimate{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.72rem}.tech-description{color:var(--ink);margin:0;font-size:.75rem;line-height:1.35}.tech-effect{color:var(--accent);margin:0;font-size:.75rem;line-height:1.35}.social-screen{flex-direction:column;flex:1;min-height:0;display:flex}.social-tabs{border-bottom:1px solid var(--line);background:var(--panel);align-items:center;gap:4px;padding:10px 20px;display:flex}.social-result{color:var(--accent);margin-left:auto;font-size:.8rem}.social-body{flex:1;padding:20px;overflow-y:auto}.social-body.roster{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-content:start;gap:14px;display:grid}.roster-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px}.roster-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.roster-name{font-weight:600}.status-chip{text-transform:uppercase;letter-spacing:.05em;border-radius:10px;padding:2px 8px;font-size:.7rem;font-weight:600}.status-war{color:var(--bad);background:#e0616f26}.status-peace{color:var(--good);background:#6fdc8c26}.status-alliance{color:var(--accent);background:#4fd1c526}.propose-row{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.covert-section{border-top:1px dashed var(--line);padding-top:10px}.covert-label{text-transform:uppercase;letter-spacing:.08em;color:#b98cf2;margin-bottom:6px;font-size:.68rem}.covert-row{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.covert-odds{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.75rem}.covert-row select{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:3px 6px;font-size:.75rem}.covert-known{color:var(--muted);margin-bottom:8px;font-size:.72rem;line-height:1.4}.ally-row{border-bottom:1px dashed var(--line);padding:8px 0}.mail-body{flex-direction:column;gap:16px;max-width:640px;display:flex}.composer{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.composer select,.composer textarea{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);resize:vertical;border-radius:4px;padding:6px 8px;font-family:inherit;font-size:.85rem}.composer button{align-self:flex-end}.mail-list{flex-direction:column;gap:8px;display:flex}.mail-item{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px}.mail-meta{color:var(--muted);margin-bottom:4px;font-family:IBM Plex Mono,monospace;font-size:.72rem}.mail-text{font-size:.85rem}.mail-threads{gap:16px;max-width:640px;display:flex}.mail-thread-list{flex-direction:column;flex-shrink:0;gap:4px;width:220px;display:flex}.mail-thread-row{background:var(--panel);border:1px solid var(--line);cursor:pointer;text-align:left;color:var(--ink);border-radius:6px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.mail-thread-row.active{border-color:var(--accent)}.mail-thread-row.unread .mail-thread-name{font-weight:700}.mail-thread-name{font-size:.85rem}.mail-thread-preview{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.72rem;overflow:hidden}.mail-thread-detail{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex}.peace-offer{background:#6fdc8c1a;border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;padding:6px 8px;display:flex}.roster-head{gap:8px}.roster-head .roster-name{flex:1}.player-chip{text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--accent);color:var(--accent);border-radius:10px;padding:1px 7px;font-size:.68rem}.mail-request{margin-top:6px;font-size:.78rem}.alliance-body{flex-direction:column;gap:12px;max-width:760px;display:flex}.alliance-head h3{margin:0 0 2px}.alliance-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.alliance-row select{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:4px 6px}.alliance-member{align-items:baseline;gap:8px;display:flex}.rank-chip{border-color:var(--line);color:var(--muted)}.rank-chip.rank-officer{border-color:var(--accent);color:var(--accent)}.rank-chip.rank-leader{border-color:var(--accent);color:var(--accent-ink);background:var(--accent)}.alliance-member{flex-wrap:wrap}
