:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0c0d10;color:#e8e8ea;font-size:14px}*{box-sizing:border-box}body{margin:0;padding:0}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{background:#15171c;border-bottom:1px solid #2a2d34;padding:12px 20px;display:flex;align-items:center;gap:24px}.app-header h1{font-size:16px;margin:0;font-weight:600;color:#ffd54a}.tab-bar{display:flex;gap:4px}.tab-button{background:transparent;border:1px solid transparent;color:#aaa;padding:6px 14px;border-radius:4px;cursor:pointer;font-size:13px}.tab-button:hover{background:#1f2228;color:#e8e8ea}.tab-button.active{background:#2a2d34;color:#ffd54a;border-color:#3a3d44}.tab-button.dev-tab{font-style:italic}.app-main{flex:1;padding:20px;max-width:1400px;width:100%;margin:0 auto}.placeholder{padding:40px;text-align:center;color:#6a6e78;border:1px dashed #3a3d44;border-radius:6px}.placeholder h2{margin:0 0 12px;color:#aaa;font-weight:500;font-size:18px}.systems-table{width:100%;border-collapse:collapse;font-size:13px}.systems-table th,.systems-table td{text-align:left;padding:6px 10px;border-bottom:1px solid #2a2d34}.systems-table th{background:#15171c;font-weight:500;color:#aaa;position:sticky;top:0}.systems-table tr:hover td{background:#1a1c22}.badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:500}.badge.remote{background:#4a3a1a;color:#ffd54a}.badge.coruscant{background:#5a1a1a;color:#faa}.badge.populous{background:#1a3a4a;color:#aae0ff}.meta-notes{background:#1f1a14;border-left:3px solid #ffd54a;padding:10px 14px;margin-bottom:16px;font-size:12px;color:#cbc4b0}.meta-notes ul{margin:4px 0;padding-left:20px}.meta-notes li{margin-bottom:4px}.adjacency-canvas{position:relative;display:inline-block;border:1px solid #2a2d34}.adjacency-canvas svg{position:absolute;top:0;left:0;pointer-events:none}.system-marker{fill:#ffd7504d;stroke:#ffd75099;stroke-width:2;pointer-events:all;cursor:pointer}.system-marker.hover{fill:#ffd750b3;stroke:#ffd54a}.system-marker.neighbor{fill:#50dc7880;stroke:#50dc78e6}.system-marker.dimmed{opacity:.25}.system-label{fill:#ffd54a;font-size:14px;font-weight:500;pointer-events:none;text-shadow:0 0 4px black}.adjacency-info{margin-bottom:12px;padding:8px 12px;background:#15171c;border-radius:4px;font-size:13px;min-height:22px}.adjacency-info .label{color:#ffd54a;font-weight:600}.adjacency-info .neighbors{color:#80dc78;margin-left:8px}:root{--void: #0b0d12;--panel: #141821;--panel-2: #1b2130;--line: #2a3142;--ink: #ebe7dc;--muted: #9aa2b2;--brass: #e6b54a;--brass-ink: #1d1503;--reb: #e0742f;--reb-soft: #e0742f26;--imp: #8fb0cf;--imp-soft: #8fb0cf24;--ok: #78c28a;--bad: #e2604a;--f-display: "Saira Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;--f-body: "Source Sans 3", -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:dark;background:var(--void)}html,body{background:var(--void);color:var(--ink)}body{font-family:var(--f-body)}.swr-shell{max-width:1180px;margin:0 auto;padding-block:20px 40px;padding-inline:16px;display:flex;flex-direction:column;gap:18px}.swr-game-shell{display:flex;flex-direction:column;gap:8px;padding-inline:8px;padding-block:8px 24px}.swr-muted{color:var(--muted)}.swr-h{font-family:var(--f-display);font-weight:600;font-size:22px;letter-spacing:.02em;margin:0;text-wrap:balance}.swr-brand{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.swr-brand-mark{width:30px;height:30px;border-radius:50%;flex:none;background:conic-gradient(from 200deg,var(--reb) 0 50%,var(--imp) 50% 100%);box-shadow:inset 0 0 0 6px var(--void),0 0 0 1px var(--line)}.swr-brand-name{font-family:var(--f-display);font-weight:700;font-size:30px;letter-spacing:.06em;text-transform:uppercase;color:var(--brass);line-height:1}.swr-brand-sub{color:var(--muted);font-size:14px;flex-basis:100%;padding-left:42px}.swr-brand.is-small .swr-brand-name{font-size:19px}.swr-brand.is-small .swr-brand-mark{width:20px;height:20px;box-shadow:inset 0 0 0 4px var(--void),0 0 0 1px var(--line)}.swr-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.swr-top-actions{display:flex;gap:8px;flex-wrap:wrap}.swr-btn{font:600 14px var(--f-body);background:var(--brass);color:var(--brass-ink);border:1px solid transparent;border-radius:6px;padding:8px 14px;cursor:pointer}.swr-btn:hover:not(:disabled){filter:brightness(1.08)}.swr-btn:disabled{opacity:.45;cursor:default}.swr-btn.ghost{background:transparent;color:var(--ink);border-color:var(--line);font-weight:500}.swr-btn.ghost:hover:not(:disabled){border-color:var(--brass)}.swr-btn.small{padding:5px 10px;font-size:13px}.swr-btn.big{padding:11px 18px;font-size:15px;align-self:flex-start}.swr-btn.danger{background:var(--bad);color:#fff}.swr-btn:focus-visible,.swr-seg-btn:focus-visible,.swr-link:focus-visible,.swr-card-choice:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.swr-link{align-self:flex-start;background:none;border:0;padding:0;color:var(--brass);cursor:pointer;font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:2px}.swr-lobby{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:18px;align-items:start}@media (max-width: 820px){.swr-lobby{grid-template-columns:minmax(0,1fr)}}.swr-panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:14px;min-width:0}.swr-field{display:flex;flex-direction:column;gap:6px;border:0;padding:0;margin:0;min-width:0}.swr-field>span,.swr-field>legend{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0;margin-bottom:6px}.swr-field input,.swr-overlay-tools input,.swr-cardedit textarea{background:var(--void);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:8px 10px;font:15px var(--f-body);min-width:0}.swr-field input:focus,.swr-overlay-tools input:focus,.swr-cardedit textarea:focus{outline:none;border-color:var(--brass)}.swr-seg{display:flex;flex-wrap:wrap;gap:6px}.swr-seg-btn{font:500 13.5px var(--f-body);color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer}.swr-seg-btn.small{padding:3px 10px;font-size:12.5px}.swr-seg-btn.is-on{border-color:var(--brass);box-shadow:inset 0 0 0 1px var(--brass)}.swr-seg-btn.reb.is-on{border-color:var(--reb);box-shadow:inset 0 0 0 1px var(--reb);background:var(--reb-soft)}.swr-seg-btn.imp.is-on{border-color:var(--imp);box-shadow:inset 0 0 0 1px var(--imp);background:var(--imp-soft)}.swr-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.4;cursor:pointer}.swr-check input{margin-top:3px;accent-color:var(--brass)}.swr-check.is-off{opacity:.45}.swr-check.inline{align-items:center}.swr-check.inline input{margin-top:0}.swr-err{color:var(--bad);margin:0}.swr-empty{border:1px dashed var(--line);border-radius:8px;padding:18px;display:flex;flex-direction:column;gap:4px}.swr-empty p{margin:0}.swr-games{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.swr-game{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;flex-wrap:wrap;gap:10px 16px;justify-content:space-between;align-items:center}.swr-game-main{display:flex;flex-direction:column;gap:6px;min-width:0}.swr-game-name{font-family:var(--f-display);font-weight:600;font-size:19px;letter-spacing:.02em}.swr-game-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}.swr-game-acts{display:flex;flex-wrap:wrap;gap:6px}.swr-tag{font-size:11.5px;padding:1px 8px;border-radius:999px;border:1px solid var(--line);color:var(--ink);white-space:nowrap}.swr-tag.ok{border-color:var(--ok);color:var(--ok)}.swr-seats{display:flex;flex-wrap:wrap;gap:6px}.swr-seat{font-size:12.5px;padding:2px 9px;border-radius:999px;border:1px solid;white-space:nowrap}.swr-seat.reb{border-color:var(--reb);color:#f2b48c}.swr-seat.imp{border-color:var(--imp);color:#c5d6e6}.swr-seat.is-open{border-style:dashed;color:var(--muted)}.swr-seat.is-me.reb{background:var(--reb-soft)}.swr-seat.is-me.imp{background:var(--imp-soft)}.swr-note{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-size:14px}.swr-note.is-warn{border-color:#b8873a;background:#2a2212}.swr-foot{color:var(--muted);font-size:12.5px;border-top:1px solid var(--line);padding-top:12px}.swr-foot a{color:var(--brass)}.swr-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px}.swr-bar-name{font-family:var(--f-display);font-size:18px;font-weight:600;letter-spacing:.02em}.swr-bar-right{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}.swr-turn{font-weight:700;font-size:13px;padding:3px 10px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted)}.swr-turn.is-yours{color:var(--brass-ink);background:var(--brass);border-color:var(--brass)}.swr-chooser{max-width:720px;margin:24px auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:12px}.swr-chooser p{margin:0;line-height:1.5}.swr-chooser-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.swr-card-choice{text-align:left;background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:6px;font:14px var(--f-body)}.swr-card-choice b{font-family:var(--f-display);font-size:19px;letter-spacing:.02em}.swr-card-choice:hover:not(:disabled){border-color:var(--brass)}.swr-overlay{position:fixed;inset:0;background:#000b;z-index:1000;display:grid;place-items:center;padding:16px}.swr-overlay-box{width:min(860px,100%);max-height:calc(100% - 8px);background:var(--panel);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.swr-overlay-head{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;padding:16px 16px 8px}.swr-overlay-head p{margin:6px 0 0;font-size:14px;max-width:62ch}.swr-overlay-tools{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;padding:0 16px 12px;border-bottom:1px solid var(--line)}.swr-overlay-tools input[type=search],.swr-overlay-tools>input{flex:1 1 220px}.swr-cardlist{overflow-y:auto;padding:4px 16px 16px}.swr-cardgroup{font-family:var(--f-display);font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--brass);margin:16px 0 6px}.swr-cardrow{border-top:1px solid var(--line);padding:10px 0;display:flex;flex-direction:column;gap:4px}.swr-cardrow-head{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.swr-cardtext{margin:0;font-size:14px;line-height:1.45;max-width:70ch}.swr-cardtext.is-ours{color:var(--muted);font-size:12.5px}.swr-cardedit{display:flex;flex-direction:column;gap:8px}.swr-cardedit textarea{width:100%;resize:vertical}.swr-row{display:flex;gap:6px;flex-wrap:wrap}.swr-dialog{position:fixed;inset:0;background:#000a;z-index:2000;display:grid;place-items:center;padding:16px}.swr-dialog-box{width:min(480px,100%);background:var(--panel);color:var(--ink);border:1px solid var(--brass);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:14px;font-family:var(--f-body);box-shadow:0 20px 60px #000c}.swr-dialog-msg{margin:0;white-space:pre-wrap;line-height:1.45;font-size:15px}.swr-dialog-row{display:flex;justify-content:flex-end;gap:8px}.swr-toasts{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:2100;display:flex;flex-direction:column;gap:8px;width:min(520px,calc(100% - 32px));pointer-events:none}.swr-toast{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-left:3px solid var(--brass);border-radius:8px;padding:9px 12px;font:14px var(--f-body);box-shadow:0 8px 24px #0009;transition:opacity .35s;white-space:pre-wrap}.swr-toast.is-error{border-left-color:var(--bad)}.swr-toast.is-out{opacity:0}@media (prefers-reduced-motion: reduce){.swr-toast{transition:none}}span[title^="Empire strike-fleet planner"],span[title^=Occupy-to-clear],span[title^=Sabotage-clearing],span[title^=Mission-odds],span[title^=Build-yield],button[title^="Save the whole game"]{display:none!important}.swr-play{overflow-x:auto;min-width:0}.swr-artbox{width:min(640px,100%)}.swr-artbody{padding:4px 16px 18px;display:flex;flex-direction:column;gap:14px}.swr-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;line-height:1.45;font-size:14px;max-width:62ch}.swr-steps code{font-size:12.5px;background:var(--void);border:1px solid var(--line);border-radius:4px;padding:1px 5px;word-break:break-all}label.swr-btn{display:inline-flex;align-items:center}.swr-btn.is-disabled{opacity:.45;pointer-events:none}.swr-prog{display:flex;flex-direction:column;gap:6px}.swr-prog-bar{height:8px;background:var(--void);border:1px solid var(--line);border-radius:4px;overflow:hidden}.swr-prog-bar i{display:block;height:100%;background:var(--brass);transition:width .2s}a.swr-brand{color:inherit;text-decoration:none}.swr-h.big{font-size:30px}.swr-subh{font-family:var(--f-display);font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:6px 0 0}.swr-gamepage{gap:18px}.swr-status{font-weight:700;color:var(--brass)}.swr-status.is-over{color:var(--ok)}.swr-seatlinks{display:flex;flex-direction:column;gap:10px}.swr-seatlink{border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;background:var(--panel-2);min-width:0}.swr-seatlink.reb{border-left-color:var(--reb)}.swr-seatlink.imp{border-left-color:var(--imp)}.swr-seatlink-head{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}.swr-seatlink-side{font-family:var(--f-display);font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.swr-linkrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:0}.swr-url{color:var(--brass);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13.5px;word-break:break-all;min-width:0}.swr-muted.small{font-size:13px;margin:0}a.swr-bar-name{color:var(--ink);text-decoration:none}a.swr-bar-name:hover{text-decoration:underline}
