:root{color-scheme:dark;--bg: #06080f;--panel: rgba(13, 18, 32, .92);--edge: #223047;--text: #cfe0f4;--dim: #7f93ad;--accent: #6fb3ff;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:13px}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text)}.app{display:flex;height:100%}.map-root{position:relative;flex:1;overflow:hidden}.map-root canvas{display:block}.panels{width:300px;overflow-y:auto;background:var(--panel);border-left:1px solid var(--edge);padding:10px;box-sizing:border-box;display:flex;flex-direction:column;gap:12px}.panel{border:1px solid var(--edge);border-radius:6px;padding:10px}.panel h2{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}button{background:#16233a;color:var(--text);border:1px solid var(--edge);border-radius:4px;padding:4px 8px;cursor:pointer;font:inherit}button:hover{border-color:var(--accent)}input,select{background:#0b1322;color:var(--text);border:1px solid var(--edge);border-radius:4px;padding:4px 6px;font:inherit}.label-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none}.body-label{position:absolute;transform:translate(8px,-50%);white-space:nowrap;color:var(--text);text-shadow:0 0 4px #000;font-size:12px}.badge-gm{display:inline-block;margin-left:6px;padding:1px 5px;border:1px solid var(--edge);border-radius:3px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim)}.wizard-launcher{display:flex;flex-direction:column;gap:6px;align-items:flex-start;border:1px solid var(--edge);border-radius:6px;padding:10px}.wizard-launcher h2{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.wizard-overlay{position:fixed;inset:0;z-index:20;background:var(--bg);display:flex;flex-direction:column}.wizard-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--edge)}.wizard-bar h2{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.wizard-actions{display:flex;gap:6px}.wizard-nudge{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;color:#f0d58a;background:#f0d58a14;border-bottom:1px solid var(--edge)}button.secondary{color:var(--dim)}button.danger{color:#d9714e}.wizard-overlay .two-pane{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,26rem)}.wizard-overlay .step-pane{overflow-y:auto;padding:16px 20px}.wizard-overlay .sheet-pane{overflow-y:auto;padding:16px 20px;border-left:1px solid var(--edge);background:var(--panel)}@media(max-width:900px){.wizard-overlay .two-pane{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.wizard-overlay .sheet-pane{border-left:none;border-top:1px solid var(--edge)}}.wizard-step{display:flex;flex-direction:column;gap:8px;align-items:flex-start;max-width:48rem}.wizard-step h3{margin:0}.wizard-step ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.wizard-step li{display:flex;align-items:baseline;gap:4px}.pick-list li.chosen button{border-color:var(--accent);color:var(--accent)}.choice-step li.disabled button{text-decoration:line-through;opacity:.45}.choice-step .reason{color:#e0a458;font-style:italic}.roll-step .requirement,.roll-result .arithmetic{margin:0;font-size:15px}.roll-result .outcome{margin:0;font-weight:600}.roll-result .meaning{margin:0}.gains{margin:0;color:#7fd39a}.play-state .wounded dd{color:#d9714e}.roll-result .happened{margin:0;padding-left:18px}.roll-result .happened li+li{font-style:italic;color:var(--dim)}.sheet-pane .changed{color:#7fd39a}.roll-result .dice{margin:0;display:flex;gap:4px;align-items:baseline}.roll-result .die,.assign-step .die{border:1px solid var(--edge);border-radius:3px;padding:0 5px}.roll-result .die-pair{margin-right:8px}.assign-step .assignments li{gap:8px}.assign-step .dice{display:inline-flex;gap:4px;align-items:baseline}.method-choice{display:flex;gap:6px;margin-bottom:8px}.method-choice [aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.point-buy-step .scores li{display:flex;gap:8px;align-items:baseline}.point-buy-step .char{width:3em}.point-buy-step .score{min-width:2ch;text-align:center}.roll-result .outcome.passed{color:#7fd39a}.roll-result .outcome.failed{color:#d9714e}.form-step form,.education-step .specialty{display:flex;gap:6px;align-items:baseline}.hint,.muted{color:var(--dim)}.error{color:#d9714e}.validation{color:#e0a44e}.wizard-bug{border:1px solid #d9714e;border-radius:6px;padding:8px;color:#d9714e}.ask-gm{color:var(--accent)}.not-draft{color:var(--dim)}.wizard-todo{border:1px dashed var(--edge);border-radius:6px;padding:10px;color:var(--dim);max-width:48rem}.sheet-pane{display:flex;flex-direction:column;gap:14px}.sheet-pane header h3{margin:0}.sheet-pane section h4{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.sheet-pane .characteristics{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:0}.sheet-pane .characteristics dt{color:var(--dim);font-size:11px;text-transform:uppercase}.sheet-pane .characteristics dd{margin:0;font-size:16px}.sheet-pane .skills ul,.sheet-pane .people ul,.sheet-pane .benefits ul,.sheet-pane .purchases ul,.sheet-pane .validation ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.sheet-pane .terms ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.sheet-pane .terms li{border-left:2px solid var(--edge);padding-left:8px}.sheet-pane .terms li.lost-benefit{border-left-color:#d9714e}.sheet-pane .term-heading{margin:0 0 4px;font-weight:600}.sheet-pane .term-lines{list-style:none;margin:0;padding:0;color:var(--dim)}.sheet-pane .validation{border:1px solid #d9714e;border-radius:6px;padding:8px}.sheet-pane .validation h4{color:#d9714e}.app.connecting{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--dim)}.banner{background:#5a3d1a;color:#ffd27d;border-radius:6px;padding:6px 10px;font-size:12px}.particulars{margin:6px 0 0;display:grid;grid-template-columns:auto 1fr;gap:2px 8px}.particulars div{display:contents}.particulars dt{color:var(--dim)}.particulars dd{margin:0}.map-controls{position:absolute;top:10px;left:10px;z-index:2;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:6px 8px;background:var(--panel);border:1px solid var(--edge);border-radius:6px}.map-controls label{display:inline-flex;gap:4px;align-items:center;color:var(--dim);cursor:pointer}.map-controls input{margin:0}.body-label.kind-star{color:#ffe6a8}.body-label.kind-planet{color:#dbe7ff}.body-label.kind-moon{color:#b9cdc4}.body-label.kind-asteroid{color:#d9c7a8}.body-label.kind-station{color:#e8bdf5}.body-label.kind-ship{color:#ffd27d}.body-label.focused{color:var(--accent)}.credit{margin:auto 0 0;font-size:10px;color:var(--dim)}.app.shell{flex-direction:column}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 12px;border-bottom:1px solid var(--edge);background:var(--panel)}.tabs{display:flex;gap:4px}.tab{padding:4px 10px;border-radius:4px;color:var(--dim);text-decoration:none;border:1px solid transparent}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-color:var(--edge);background:#16233a}.toolbar-status{display:flex;gap:10px;align-items:center}.invite-panel form{display:grid;grid-template-columns:auto 1fr;gap:6px 8px;align-items:center}.invite-panel form button{grid-column:2;justify-self:start}.toolbar-viewer{display:inline-flex;gap:6px;align-items:center}.toolbar-viewer .viewer-name{color:var(--text)}.toolbar-viewer button{padding:1px 6px;font-size:11px}.viewer-rename input{width:150px;padding:2px 6px}.viewer-rename .error{font-size:12px}.toolbar-status .banner{margin:0;padding:2px 8px}.toolbar-date{color:var(--text)}.view{flex:1;min-height:0;display:flex}.solar-view .map-root{flex:1}.overview-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;padding:12px;align-content:start;overflow-y:auto}.card .big{font-size:18px}.roster-list a{color:var(--text)}.character-view{display:grid;grid-template-columns:minmax(320px,30rem) minmax(0,1fr)}.character-list{overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px;border-right:1px solid var(--edge);background:var(--panel)}.character-sheet{overflow-y:auto;padding:12px 20px}@media(max-width:900px){.character-view{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.character-list{border-right:none;border-bottom:1px solid var(--edge);max-height:45vh}}.sheet-inline{display:flex;flex-direction:column}.sheet-inline .two-pane{display:block}.map-view{padding:12px}.map-view{flex-direction:column;padding:0}.scene-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--edge);background:var(--panel)}.scene-form,.scene-confirm,.scene-file{display:inline-flex;gap:6px;align-items:center}.scene-file{color:var(--dim);font-size:12px}.scene-file input,.scene-form input[type=file]{max-width:14em;font-size:12px}.scene-viewport{flex:1;position:relative;overflow:hidden;background:#03050a;touch-action:none;-webkit-user-select:none;user-select:none}.scene-surface{position:absolute;left:0;top:0;transform-origin:0 0}.scene-surface img{display:block;pointer-events:none}.token{position:absolute;border-radius:50%;background:#16233a;border:2px solid #b9cdc4;box-shadow:0 0 0 2px #000;box-sizing:border-box;display:flex;align-items:center;justify-content:center;overflow:visible}.token.own{border-color:var(--accent)}.token.hidden-token{opacity:.5;border-style:dashed}.token.selected{box-shadow:0 0 0 2px #000,0 0 0 4px var(--accent)}.token img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;pointer-events:none}.token-initials{font-size:40%;font-weight:600;color:var(--text);line-height:1;pointer-events:none}.token-inspector .npc-portrait{width:48px;height:48px}.token-inspector label.row{flex-direction:column;align-items:flex-start}.token-inspector input[type=file]{width:100%;min-width:0;font-size:12px}.sheet-portrait{display:flex;flex-direction:column;gap:6px;align-items:flex-start;margin-bottom:12px}.sheet-portrait label{color:var(--dim);font-size:12px;display:flex;flex-direction:column;gap:4px}.token-label{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:2px;white-space:nowrap;font-size:12px;color:var(--text);text-shadow:0 0 4px #000}.campaign-view{display:grid;grid-template-columns:minmax(220px,17rem) minmax(0,1fr)}.campaign-rail{overflow-y:auto;padding:12px;border-right:1px solid var(--edge);background:var(--panel);display:flex;flex-direction:column;gap:14px}.campaign-rail h3{margin:0 0 4px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.campaign-rail ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.campaign-rail a{color:var(--text);text-decoration:none}.campaign-rail a:hover,.campaign-rail a.active{color:var(--accent)}.campaign-rail li.level-3{padding-left:12px;font-size:12px}.campaign-content{overflow-y:auto;padding:16px 24px 32px}.campaign-content a{color:var(--accent)}.campaign-content h1{font-size:20px;margin:0 0 6px}.campaign-index{display:flex;flex-direction:column;gap:12px;max-width:60rem}.campaign-index .act h3{margin:10px 0 4px;font-size:13px}.campaign-index .act h3 a{color:var(--text);text-decoration:none}.campaign-index .act h3 a:hover{color:var(--accent)}.campaign-index .missions,.campaign-index .doc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.campaign-doc{max-width:60rem;line-height:1.5}.campaign-doc h2{margin:24px 0 8px;font-size:15px;color:var(--accent)}.campaign-doc h3{margin:16px 0 6px;font-size:13px}.campaign-doc p{margin:0 0 10px}.campaign-doc ul,.campaign-doc ol{margin:0 0 10px;padding-left:22px}.campaign-doc li{margin:2px 0}.campaign-doc table{border-collapse:collapse;margin:0 0 12px;font-size:12px}.campaign-doc th,.campaign-doc td{border:1px solid var(--edge);padding:4px 8px;text-align:left;vertical-align:top}.campaign-doc th{color:var(--dim);text-transform:uppercase;font-size:11px;letter-spacing:.06em}.campaign-doc hr{border:0;border-top:1px solid var(--edge);margin:16px 0}.campaign-doc code{background:#0b1322;padding:0 4px;border-radius:3px}.campaign-failed{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.npc-list,.hook-list{max-width:60rem;line-height:1.5}.npc-filter input{width:100%;max-width:30rem}.npc-list .npc{margin-bottom:12px}.npc-list .npc h3{margin:0 0 2px;font-size:13px}.npc-list .npc ul,.hook-list ol{margin:0;padding-left:20px}.npc-record{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;margin:2px 0 6px;font-size:12px}.npc-record .npc-portrait{width:28px;height:28px;font-size:11px}.npc-record .error{margin:0}.npc-records{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:2px}.npc-records li{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.npc-records strong{min-width:14rem}.hook-list section{margin-bottom:16px}.hook-list h3{margin:0 0 4px;font-size:13px}.progress-summary .where{margin:6px 0 0;white-space:pre-wrap}.progress-summary .threads{margin:6px 0 0;padding-left:18px}.progress-summary a{display:inline-block;margin-top:6px}.progress-form{display:flex;flex-direction:column;gap:8px;max-width:48rem}.progress-form label{display:flex;flex-direction:column;gap:4px;color:var(--dim)}.progress-form .row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.progress-form input[type=number]{width:5em}.progress-form textarea{background:#0b1322;color:var(--text);border:1px solid var(--edge);border-radius:4px;padding:4px 6px;font:inherit;resize:vertical}@media(max-width:900px){.campaign-view{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.campaign-rail{border-right:none;border-bottom:1px solid var(--edge);max-height:30vh}}.scene-readout{gap:16px;padding:4px 12px;font-size:12px}.scene-readout .scale{color:var(--text)}.scene-readout .measure{color:var(--accent)}.grid-field{display:inline-flex;gap:4px;align-items:center;color:var(--dim)}.grid-field input{width:5em}.grid-overlay{position:absolute;left:0;top:0;pointer-events:none}.scene-body{flex:1;min-height:0;display:flex}.scene-viewport.placing{cursor:crosshair}.scene-bar button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.scene-readout .prop-hint{color:var(--accent)}.prop-defs{position:absolute;width:0;height:0;overflow:hidden}.prop-layer{position:absolute;left:0;top:0;overflow:visible}.prop-layer use,.prop-layer .prop-label{pointer-events:none}.prop-layer.editing .prop-hit{cursor:grab}.prop-layer .prop-handle{cursor:pointer;fill:#16233a;stroke:var(--accent)}.prop-layer .prop-rotate-handle{cursor:grab}.prop-layer .prop-scale-handle{cursor:nwse-resize}.prop-layer .prop-outline,.prop-layer .prop-handles line{stroke:var(--accent)}.prop-label{font-size:11px;fill:var(--text);text-anchor:middle;paint-order:stroke;stroke:#000;stroke-width:3px;stroke-linejoin:round}.prop-layer .hidden-prop use{opacity:.4}.prop-layer .prop-ghost{stroke:var(--dim);pointer-events:none}.prop-layer .prop-eye{pointer-events:none;stroke:var(--text);stroke-width:1.5;stroke-linecap:round}.prop-layer .prop-eye circle:first-child{fill:#0b1322;fill-opacity:.85;stroke:var(--dim);stroke-width:1}.prop-layer .prop-eye circle:nth-child(3){fill:var(--text);stroke:none}.prop-toolbox .place-hidden{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--dim)}.prop-toolbox,.combat-rail{width:232px;overflow-y:auto;padding:10px;box-sizing:border-box;border-left:1px solid var(--edge);background:var(--panel);display:flex;flex-direction:column;gap:10px}.prop-toolbox .hint{margin:0;font-size:12px}.prop-group h3{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.prop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.prop-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;font-size:10px;color:var(--dim);background:#0b1322;line-height:1.1;text-align:center}.prop-item svg{width:44px;height:44px;display:block}.prop-item.chosen{border-color:var(--accent);color:var(--accent);background:#16233a}.prop-inspector{border:1px solid var(--accent);border-radius:6px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}.prop-inspector h3{margin:0;font-size:14px}.prop-inspector p{margin:0}.prop-inspector .row{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--dim)}.prop-inspector .row input{flex:1;min-width:0}.prop-inspector input[type=number]{flex:0 0 5em}.prop-inspector .scale-readout{color:var(--text);min-width:3em;text-align:center}textarea{background:#0b1322;color:var(--text);border:1px solid var(--edge);border-radius:4px;padding:4px 6px;font:inherit;resize:vertical}.npc-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.npc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.npc-row{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px;align-items:start}.npc-actions{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:4px}.npc-portrait{width:48px;height:48px;border-radius:50%;overflow:hidden;border:1px solid var(--edge);background:#16233a;display:flex;align-items:center;justify-content:center;color:var(--dim);font-size:16px;flex:none}.npc-portrait.tile{width:96px;height:96px;font-size:28px}.npc-portrait.large{width:220px;height:220px;font-size:56px;border-color:var(--accent)}.npc-portrait img{width:100%;height:100%;object-fit:cover;display:block}.npc-met{color:#7fd39a}.npc-unmet{color:var(--dim)}.npc-on-screen{color:var(--accent)}.npc-reference{color:var(--accent);align-self:center}.npc-row.selected{outline:1px solid var(--accent);border-radius:6px;padding:4px;margin:-4px}.npc-form{grid-column:1 / -1;display:flex;flex-direction:column;gap:4px;margin:4px 0;padding:10px;border:1px solid var(--edge);border-radius:6px;min-width:0}.npc-form input,.npc-form textarea{width:100%;max-width:100%;box-sizing:border-box}.npc-form input[type=checkbox]{width:auto}.npc-form label{color:var(--dim);font-size:12px}.npc-form .npc-check{color:var(--text)}.npc-form-portrait{display:flex;flex-direction:column;gap:6px;align-items:flex-start;margin-bottom:6px}.npc-form-actions{display:flex;gap:6px;margin-top:6px}.npc-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.npc-tile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px}.npc-tile p{margin:2px 0 0;font-size:12px}.spotlight{position:fixed;inset:0;z-index:30;background:#06080fd9;display:flex;align-items:center;justify-content:center;padding:16px}.spotlight-card{background:var(--panel);border:1px solid var(--edge);border-radius:8px;padding:24px 28px;max-width:28rem;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;box-shadow:0 0 48px #6fb3ff2e}.spotlight-card h2{margin:4px 0 0;font-size:20px}.spotlight-card p{margin:0}.spotlight-blurb{font-size:14px}.spotlight-actions{display:flex;gap:6px;margin-top:8px}.spotlight-card.handout{max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);box-sizing:border-box}.spotlight-card.handout.text{width:44rem;text-align:left;align-items:stretch}.spotlight-card.handout h2{align-self:center}.handout-image{max-width:calc(100vw - 104px);max-height:calc(100vh - 180px);object-fit:contain;display:block}.handout-text{overflow:auto;max-height:calc(100vh - 200px);font-size:14px}.handout-text h1{font-size:18px;margin:8px 0}.handout-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.handout-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;align-items:start}.handout-kind-badge{width:64px;height:48px;border:1px solid var(--edge);border-radius:4px;background:#16233a;display:flex;align-items:center;justify-content:center;color:var(--dim);font-size:12px;overflow:hidden}.handout-thumb{max-width:64px;max-height:48px;object-fit:contain;display:block}.handout-form{grid-column:1 / -1;display:flex;flex-direction:column;gap:4px;margin:4px 0;padding:10px;border:1px solid var(--edge);border-radius:6px;min-width:0}.handout-form input,.handout-form textarea{width:100%;max-width:100%;box-sizing:border-box}.handout-form input[type=radio]{width:auto}.handout-form label{color:var(--dim);font-size:12px}.handout-kind{border:none;margin:0;padding:0;display:flex;gap:12px}.handout-kind legend{color:var(--dim);font-size:12px;padding:0}.handout-kind label{color:var(--text)}.handout-form-image{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.handout-form-image .handout-thumb{max-width:160px;max-height:120px}.handout-form-actions{display:flex;gap:6px;margin-top:6px}.handout-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.handout-open{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left}.follow-view{flex-direction:column}.follow-bar{flex-wrap:wrap;row-gap:6px}.follow-who{display:flex;flex-direction:column;gap:2px}.follow-status{display:flex;flex-direction:column;gap:2px;font-size:12px;min-width:0;flex:1}.follow-step{font-weight:600}.follow-live{color:#7fd39a}.follow-live.muted,.follow-bar .wizard-actions a{color:var(--dim)}.follow-nudge{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--edge);font-size:12px}.follow-nudge input{flex:1;min-width:200px}.follow-nudge-last{color:#f0d58a}.follow-link{margin-left:8px;color:var(--accent);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.wizard-spectator{flex:1;min-height:0;display:flex;flex-direction:column}.wizard-spectator .two-pane{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,26rem)}.wizard-spectator .step-pane{overflow-y:auto;padding:16px 20px}.wizard-spectator .sheet-pane{overflow-y:auto;padding:16px 20px;border-left:1px solid var(--edge);background:var(--panel)}.wizard-spectator button,.wizard-spectator input,.wizard-spectator select{opacity:.55;cursor:default}.wizard-spectator button:hover{border-color:var(--edge)}.follow-finished{flex:1;min-height:0;overflow-y:auto}.follow-finished .sheet-inline .two-pane{padding:0 20px}.follow-note{margin:0;padding:10px 14px;color:#7fd39a;border-bottom:1px solid var(--edge)}@media(max-width:900px){.wizard-spectator .two-pane{grid-template-columns:minmax(0,1fr)}}.combat-panel{display:flex;flex-direction:column;gap:6px;font-size:12px;padding-bottom:8px;border-bottom:1px solid var(--edge)}.combat-panel h3{margin:0;font-size:14px}.combat-panel h3 .muted{font-size:12px;font-weight:400}.combat-panel h4{margin:4px 0 0;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.combat-panel h4 .side-name{width:7em;font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:1px 4px}.combat-panel .ambush{display:inline-flex;gap:3px;align-items:center;text-transform:none;letter-spacing:0}.combat-panel .tactics{margin:0;color:var(--dim)}.combat-panel .tactics input[type=number]{width:3.5em}.combat-row{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}.combat-row .label{color:var(--text);font-weight:600}.combat-row .dice,.combat-panel .dice{color:var(--dim)}.combat-row .initiative{color:var(--accent);font-weight:600}.combat-row select{font-size:11px;padding:1px 2px}.combat-row .gm-row{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap;width:100%;color:var(--dim);font-size:11px}.combat-row .score{display:inline-flex;gap:2px;align-items:center}.combat-row .score input{width:3em;font-size:11px;padding:1px 2px}.combat-row .penalty{display:inline-flex;gap:2px;align-items:center}.combat-row .due{color:#ff8a65;font-weight:600}.combat-row .term{font-style:italic}.combat-row .patch{display:inline-flex;gap:2px;align-items:center}.combat-row .patch input{width:3em;font-size:11px;padding:1px 2px}.combat-panel .combat-log{list-style:none;margin:0;padding:0;color:var(--dim);font-size:11px}.combat-row button[aria-pressed=true]{border-color:#ff8a65;color:#ff8a65}.combat-panel .gravity{margin:0}.combat-row .penalty button,.combat-row .gm-row button,.combat-panel .tactics button{padding:0 5px;font-size:11px;line-height:1.4}.combat-order{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}.combat-order li.acting{color:#ffb347;font-weight:600}.combat-order li.tied:after{content:" =";color:var(--dim)}.combat-order .initiative{color:var(--accent)}.combat-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.combat-actions select{font-size:11px}.token.acting{box-shadow:0 0 0 2px #000,0 0 0 5px #ffb347,0 0 14px 5px #ffb34799}.token-order{position:absolute;top:-7px;right:-7px;min-width:16px;height:16px;border-radius:8px;background:#ffb347;color:#000;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 3px;pointer-events:none}.space-view{min-height:0}.space-view.empty{padding:16px;align-items:flex-start}.space-view.empty .panel{max-width:40rem}.space-plot{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;background:#03050a;overflow:hidden}.tactical-plot{width:100%;height:100%;max-width:100vh;font-size:12px}.space-rail{width:360px}.plot-ring circle{fill:none;stroke:var(--edge);stroke-width:1}.plot-ring text{fill:var(--dim);text-anchor:middle;font-size:11px;letter-spacing:.06em;text-transform:uppercase}.plot-reach{fill:var(--accent);fill-opacity:.05;stroke:var(--accent);stroke-opacity:.3;stroke-dasharray:2 6}.plot-body{stroke:none}.plot-body.kind-planet{fill:#2f4a7a}.plot-body.kind-moon{fill:#4b5b57}.plot-body.kind-asteroid{fill:#6b5b43}.plot-body.kind-station{fill:#6a4a7a}.plot-body-label{fill:var(--text);text-anchor:middle;font-size:12px}.plot-settlement{fill:var(--dim);text-anchor:middle;font-size:10px}.plot-satellite .plot-body-label{font-size:10px;fill:var(--dim)}.plot-orbit{stroke:#d9c7a8;stroke-opacity:.6;color:#d9c7a8;stroke-width:1.5}.plot-chord line{stroke:var(--dim);stroke-dasharray:4 4;stroke-opacity:.6}.plot-chord text{fill:var(--dim);text-anchor:middle;font-size:10px}.plot-lock{stroke:var(--accent);stroke-dasharray:1 5;stroke-width:1.5}.plot-salvo line{stroke:#ffd27d;color:#ffd27d;stroke-width:1.5;stroke-dasharray:3 3}.plot-salvo text{fill:#ffd27d;text-anchor:middle;font-size:10px}.plot-ship .plot-glyph{stroke-width:1.5}.plot-ship.side-party .plot-glyph{fill:#16233a;stroke:var(--accent)}.plot-ship.side-hostile .plot-glyph{fill:#2a1210;stroke:#e07a5a}.plot-ship.side-neutral .plot-glyph{fill:#141a24;stroke:var(--dim)}.plot-ship.wrecked .plot-glyph{stroke-dasharray:2 2;opacity:.6}.plot-vector{stroke:var(--text);stroke-opacity:.8;color:var(--text);stroke-width:1.5}.plot-ship-label{fill:var(--text);text-anchor:middle;font-size:12px;paint-order:stroke;stroke:#000;stroke-width:3px}.plot-ship-band{fill:var(--dim);text-anchor:middle;font-size:10px}.plot-banner{fill:#ffd27d;text-anchor:middle;font-size:12px}.space-order{margin:6px 0;padding-left:20px}.space-pending{color:#ffd27d;margin:6px 0}.space-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.space-ship h2{color:var(--text);text-transform:none;letter-spacing:0;font-size:14px}.space-ship.side-hostile h2{color:#e07a5a}.space-ship.side-party h2{color:var(--accent)}.space-bar{position:relative;height:16px;border:1px solid var(--edge);border-radius:3px;margin:4px 0;background:#0b1322;overflow:hidden}.space-bar-fill{position:absolute;inset:0 auto 0 0;background:#2b5a3a}.space-bar.armour .space-bar-fill{background:#3a4d6b}.space-bar-text{position:relative;padding:0 6px;font-size:11px;line-height:16px}.space-thrust{margin:4px 0}.space-tags{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0}.space-tag{border:1px solid var(--edge);border-radius:3px;padding:0 5px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim)}.space-tag.warn{color:#e0a44e;border-color:#5a3d1a}.space-tag.juice{color:#7fd39a;border-color:#2b5a3a}.space-tag.lock,.space-tag.detect-known{color:var(--accent)}.space-dm{color:#e0a44e;font-size:11px}.space-criticals,.space-salvos,.space-turrets{margin:4px 0;padding-left:16px;font-size:12px}.space-power{margin:4px 0;font-size:12px}.space-power summary{cursor:pointer}.space-power.short summary{color:#e0a44e}.space-power ul{margin:2px 0 0;padding-left:16px}.space-power li.off{color:var(--dim);text-decoration:line-through}.space-power li.shed{color:var(--dim)}.space-form select[multiple]{min-width:10em;font-size:11px}.space-salvos button{margin-left:6px;font-size:11px;padding:1px 6px}.space-crew-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.space-crew{border-top:1px solid var(--edge);padding-top:6px}.space-crew.mine{border-left:2px solid var(--accent);padding-left:6px}.space-crew-state{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11px;margin:2px 0}.space-commands{display:flex;flex-direction:column;gap:4px;margin:4px 0;align-items:flex-start}.space-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.space-form.column{flex-direction:column;align-items:stretch}.space-form input[type=number]{width:4em}.space-form select{max-width:100%}.space-form label{display:inline-flex;gap:4px;align-items:center;color:var(--dim);font-size:12px}.space-form textarea{width:100%;box-sizing:border-box;font-size:11px}.space-gm h3{margin:10px 0 4px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.space-pick{list-style:none;margin:4px 0;padding:0;display:flex;flex-direction:column;gap:2px;font-size:12px}.space-pick button{margin-left:6px;font-size:11px;padding:0 5px}.space-log ol{margin:0;padding-left:18px;font-size:12px;display:flex;flex-direction:column;gap:2px}.space-note{font-size:11px}.plot-dogfight line{stroke:#ffb0a0;stroke-width:2;stroke-dasharray:6 3}.plot-dogfight circle{fill:none;stroke:#ffb0a0;stroke-width:1.5}.plot-dogfight text{fill:#ffb0a0;text-anchor:middle;font-size:10px}.space-dogfights{margin:6px 0;padding-left:16px;font-size:12px}.space-dogfight strong{color:#ffb0a0}.space-tag.dogfight{color:#ffb0a0;border-color:#6b3a30}.space-boarding{border:1px solid #5a3d1a;border-radius:4px;padding:6px 8px;margin:6px 0;font-size:12px}.space-boarding p{margin:0 0 4px}.space-boarding a,.space-return{color:var(--accent)}.space-return{margin-left:auto;font-size:12px}.space-view.stations{flex-direction:column}.station-top{display:flex;flex:0 0 58%;min-height:0;border-bottom:1px solid var(--edge)}.station-top .space-plot{flex:1}.station-board{width:340px;flex:none;overflow-y:auto;background:var(--panel);border-left:1px solid var(--edge);padding:10px;box-sizing:border-box;display:flex;flex-direction:column;gap:10px}.station-board h2{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.station-board .board-ship h2{color:var(--accent);text-transform:none;letter-spacing:0;font-size:14px}.board-round,.board-ship{border:1px solid var(--edge);border-radius:6px;padding:8px 10px}.board-round p,.board-ship p{margin:2px 0;font-size:12px}.board-order{color:var(--text)}.station-deck{flex:1;min-height:0;display:flex;flex-direction:column;background:#05070d}.station-tabs{display:flex;gap:2px;padding:6px 12px 0;border-bottom:1px solid var(--edge);flex:none}.station-tabs button{border-radius:4px 4px 0 0;border-bottom:none;background:#0b1322;color:var(--dim);padding:5px 14px;text-transform:uppercase;letter-spacing:.08em;font-size:11px}.station-tabs button.active{background:#16233a;color:var(--accent);border-color:var(--accent)}.station-console{flex:1;min-height:0;overflow-y:auto;padding:10px 12px}.station-title{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.station-empty{padding:16px}.console{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px;align-items:start}.console-captain{grid-template-columns:minmax(300px,1fr) minmax(300px,2fr)}.console-sensors .sensors-board,.console-gunnery .scope,.console-engineering .power-board{grid-column:span 2}.station-crew .space-crew-head{font-size:12px}.instrument{border:1px solid var(--edge);border-radius:6px;padding:8px 10px;background:var(--panel);min-width:0}.instrument h3{margin:0 0 6px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--dim)}.instrument.used{border-color:#5a3d1a}.readouts{display:flex;flex-wrap:wrap;gap:6px 14px;margin:4px 0 8px}.readout{display:flex;flex-direction:column;min-width:4.5em}.readout dt{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.readout dd{margin:0;font-size:16px;color:var(--text);font-variant-numeric:tabular-nums}.readout.accent dd{color:var(--accent)}.readout.warn dd{color:#e0a44e}.readout.dim dd{color:var(--dim)}.scope-dms .readout dd{font-size:12px}.helm-gauge,.power-gauge{width:100%;height:8px;margin:2px 0 6px}.helm-board,.station-list,.power-items,.scope-weapons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:12px}.helm-board li.side-hostile strong{color:#e07a5a}.helm-board li.side-party strong{color:var(--accent)}.helm-board .space-tag,.station-list .space-tag{margin-left:6px}.contact-board{width:100%;border-collapse:collapse;font-size:12px}.contact-board th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);font-weight:400;padding:2px 6px 4px 0;border-bottom:1px solid var(--edge)}.contact-board td{padding:4px 6px 4px 0;border-bottom:1px solid #141c2c;vertical-align:top}.contact-board tr.side-hostile strong{color:#e07a5a}.contact-board .space-tag{margin-right:4px}.power-items li{display:flex;justify-content:space-between;gap:8px}.power-items li.off label{color:var(--dim);text-decoration:line-through}.power-items li.shed label{color:var(--dim)}.power-items label{display:inline-flex;gap:4px;align-items:center}.power-board.short .power-gauge{accent-color:#e0a44e}.station-cmds{display:flex;flex-wrap:wrap;gap:6px 10px;margin:6px 0 2px;align-items:flex-start}.station-cmd{display:inline-flex;flex-direction:column;gap:2px;max-width:18em}.station-cmd button:disabled{opacity:.55;cursor:not-allowed}.station-hint{font-size:10px;line-height:1.3}.space-form .station-cmd{max-width:100%}.station-crew{border-top:1px solid var(--edge);margin-top:8px;padding-top:6px}.station-log{margin:0;padding-left:18px;font-size:12px;display:flex;flex-direction:column;gap:2px;max-height:32vh;overflow-y:auto}.space-order li.mine{color:var(--accent)}@media(max-width:900px){.space-view{flex-direction:column}.space-rail{width:auto;border-left:none;border-top:1px solid var(--edge)}.station-top{flex-direction:column;flex:none}.station-board{width:auto;border-left:none;border-top:1px solid var(--edge)}}.equipment-step input[type=search]{width:100%;margin-bottom:6px}.equipment-step details{margin:4px 0}.equipment-step summary{cursor:pointer}.equipment-step li{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.equipment-step .item{display:flex;flex-direction:column}.equipment-step .note{font-size:.85em}.equipment-step .badge{margin-left:6px;font-size:.8em;color:var(--accent)}
