:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17211d;background:#eef1ec}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{border:1px solid #b8c1b7;background:#f7f8f4;color:#17211d;border-radius:6px;padding:7px 9px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}button:hover,button.active{background:#20342f;border-color:#20342f;color:#f8fbf6}.app-shell{height:100vh;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.topbar{padding:8px 14px;border-bottom:1px solid #cbd4ca;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;background:#fbfcf8;min-width:0}.topbar-left{display:flex;flex-direction:column;min-width:0}.color-input{width:26px;height:24px;padding:2px}.color-input.compact{width:22px;height:20px}.app-name{display:flex;align-items:center;gap:5px;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em;color:#68746e;margin-bottom:2px;background:none;border:none;padding:0;cursor:pointer}.app-name:hover{color:#334038;background:none;border-color:transparent}.sector-title{border:0;background:transparent;font-size:16px;font-weight:750;color:#17211d;width:min(40vw,420px)}.meta{color:#68746e;font-size:11px;margin-top:1px}.toolbar{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.toolbar-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}.toolbar-privacy-link{font-size:10px;color:#6b7280;text-decoration:none;padding:2px 4px;opacity:.7}.toolbar-privacy-link:hover{opacity:1;text-decoration:underline}.toolbar-help-btn{font-size:11px;font-weight:700;color:#6b7280;background:none;border:1px solid #c4cec2;border-radius:50%;width:18px;height:18px;padding:0;line-height:1;opacity:.7;cursor:pointer}.toolbar-help-btn:hover{opacity:1;color:#1f2937;border-color:#8fa88d;background:none}.topbar button{padding:4px 8px;font-size:12px;gap:4px}.topbar button svg{width:14px;height:14px;flex-shrink:0}.topbar button:disabled{cursor:not-allowed;opacity:.45}.topbar button:disabled:hover{background:#f7f8f4;border-color:#b8c1b7;color:#17211d}.history-menu{position:relative}.history-menu summary{border:1px solid #b8c1b7;background:#f7f8f4;color:#17211d;border-radius:6px;padding:4px 8px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-size:12px;list-style:none}.history-menu summary::-webkit-details-marker{display:none}.history-menu summary:hover,.history-menu[open] summary{background:#20342f;border-color:#20342f;color:#f8fbf6}.history-menu summary svg{width:14px;height:14px;flex-shrink:0}.history-menu-panel{position:absolute;top:calc(100% + 5px);right:0;z-index:80;width:min(320px,80vw);max-height:260px;overflow:auto;padding:6px;border:1px solid #cbd4ca;border-radius:8px;background:#fbfcf8;box-shadow:0 12px 26px #17211d2e}.history-menu-item,.history-menu-empty{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start;padding:6px 7px;font-size:12px;color:#17211d}.history-menu-item span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-menu-action{min-width:46px;color:#68746e;font-size:10px;font-weight:800;text-transform:uppercase}.history-menu-empty{display:block;color:#68746e}.mode-switcher{display:flex;align-items:center;gap:6px;padding-right:8px;margin-right:2px;border-right:1px solid #d3dcd2}.toolbar-divider{width:1px;height:26px;background:#d3dcd2;margin:0 2px;flex-shrink:0}.workspace{--left-col: 240px;--info-col: 270px;--contents-col: 290px;display:grid;grid-template-columns:var(--left-col) minmax(420px,1fr) var(--info-col) var(--contents-col);grid-template-rows:minmax(0,1fr);height:100%;min-height:0;overflow:hidden}.workspace.left-collapsed{--left-col: 20px}.workspace.info-collapsed{--info-col: 20px}.workspace.contents-collapsed{--contents-col: 20px}.app-shell.map-focus-mode{grid-template-rows:minmax(0,1fr);background:#dfe4de}.map-focus-mode .topbar,.map-focus-mode .left-panel,.map-focus-mode .detail-panel{display:none}.map-focus-mode .workspace{grid-template-columns:minmax(0,1fr)}.map-focus-mode .map-panel{grid-column:1;width:100vw;height:100vh;max-height:100vh}.map-focus-mode .sector-map-view,.map-focus-mode .system-map{min-width:0}.map-focus-mode .map-canvas>svg,.map-focus-mode .system-map>svg{min-width:0}.left-panel,.detail-panel{background:#fbfcf8;border-right:1px solid #cbd4ca}.detail-panel{padding:10px;overflow:auto;font-size:13px}.detail-panel{border-right:0;border-left:1px solid #cbd4ca}.poi-detail-panel{grid-column:span 2}.generator-panel{display:grid;gap:10px;margin-bottom:14px}.generator-fields{display:grid;gap:10px}.faction-manager{display:grid;gap:8px}.list-editor{display:grid;gap:10px}.list-editor textarea{min-height:82px;font-size:13px}.list-page{min-width:760px;min-height:0;overflow:auto;padding:12px;background:#fbfcf8;font-size:13px}.list-page-heading{display:grid;gap:3px;margin-bottom:14px}.list-page-heading strong{font-size:16px}.list-page-heading span{color:#66746d;font-size:13px;font-weight:700}.index-page{min-width:0;width:100%;max-width:560px}.index-search{position:relative;display:flex;align-items:center;margin-bottom:12px}.index-search-icon{position:absolute;left:8px;color:#7a8c7f;pointer-events:none;flex-shrink:0}.index-search-input{width:100%;padding:6px 28px;font-size:13px;border:1px solid #c4cec2;border-radius:5px;background:#fff;color:#1c2b20;outline:none;appearance:none}.index-search-input::-webkit-search-cancel-button{display:none}.index-search-input:focus{border-color:#6aab78;box-shadow:0 0 0 2px #6aab7833}.index-search-clear{position:absolute;right:6px;display:flex;align-items:center;justify-content:center;padding:2px;background:none;border:none;cursor:pointer;color:#7a8c7f;border-radius:3px}.index-search-clear:hover{background:#eaefea;color:#3d4d42}.index-heading-actions{display:flex;gap:6px;margin-top:2px}.index-action-btn{background:none;border:1px solid #c4cec2;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;color:#5a7060;cursor:pointer}.index-action-btn:hover{background:#eaefea;border-color:#9ab09a}.index-section{margin-bottom:4px}.index-section--nested{margin-bottom:0}.index-sector-row{display:flex;align-items:center;gap:6px;padding:4px 6px 4px 4px;border-radius:4px}.index-sector-row:hover{background:#eaefea}.index-sector-toggle{display:flex;align-items:center;flex-shrink:0;padding:2px;background:none;border:none;cursor:pointer;color:#5a7060;border-radius:3px}.index-sector-toggle:hover{background:#d4e8d8}.index-sector-name{flex:1;background:none;border:none;cursor:pointer;text-align:left;font-size:13px;font-weight:600;color:#1c2b20;padding:0;border-radius:3px}.index-sector-name:hover{text-decoration:underline}.index-sector-name.selected{color:#2a6e3a}.index-current-badge{font-size:10px;font-weight:700;color:#2a6e3a;background:#c2e8cc;border-radius:3px;padding:1px 5px;text-transform:uppercase;letter-spacing:.04em}.index-sector-contents{margin-left:20px;border-left:2px solid #dde8dc;margin-bottom:6px}.index-section-header--indent,.index-rows--indent{padding-left:14px}.index-section-header{display:flex;align-items:center;gap:6px;width:100%;padding:5px 6px;background:none;border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:700;color:#3d4d42;text-transform:uppercase;letter-spacing:.04em}.index-section-header:hover{background:#eaefea}.index-section-count{margin-left:auto;font-size:11px;color:#7a8c7f;font-weight:600}.index-rows{display:flex;flex-direction:column;gap:1px;margin-bottom:4px}.index-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;width:100%;padding:5px 8px 5px 22px;background:none;border:none;border-radius:4px;cursor:pointer;text-align:left;font-size:13px;color:#1c2b20}.index-row:hover{background:#eaefea}.index-row.selected{background:#d4e8d8}.satellite-row{padding-left:34px}.index-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.index-tag{font-size:11px;font-weight:600;color:#5a7060;background:#ddeade;border-radius:3px;padding:1px 5px;white-space:nowrap}.index-detail{font-size:11px;color:#8a9c8e;white-space:nowrap}.list-editor.full{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.list-editor.full textarea{min-height:130px}.list-set-panel{display:grid;gap:10px;margin-bottom:16px;padding:12px;border:1px solid #c4cec2;border-radius:6px;background:#f4f6f0}.list-set-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.list-set-panel textarea{min-height:220px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.generation-page{display:block}.generation-settings-panel{max-width:960px}.generation-form-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;align-items:end}.generation-form-grid label:first-child,.generation-form-grid label:last-child{grid-column:1 / -1}.compact-generation-grid label:first-child,.compact-generation-grid label:last-child{grid-column:auto}.faction-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px}.faction-row.add-row{grid-template-columns:1fr auto}.factions-page{display:block}.faction-page-panel{max-width:980px}.faction-page-manager{gap:10px}.faction-page-manager .faction-row{grid-template-columns:auto minmax(220px,1fr) auto auto}.faction-page-manager .faction-row:not(.galaxy-faction-row){grid-template-columns:auto minmax(220px,1fr) auto}.faction-card{display:grid;gap:0;border:1px solid #c4cec2;border-radius:6px;background:#fbfcf8;overflow:hidden}.faction-card.expanded{gap:10px;padding-bottom:10px}.faction-card-header{display:flex;align-items:center;gap:6px;padding:8px 10px;cursor:pointer;-webkit-user-select:none;user-select:none}.faction-card-header:hover{background:#f0f4ed}.faction-card-chevron{color:#8a9e89;flex-shrink:0;display:flex;align-items:center}.faction-card-swatch{width:12px;height:12px;border-radius:50%;flex-shrink:0;border:1px solid rgba(0,0,0,.15)}.faction-card-name{font-weight:700;font-size:13px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2d3d2e}.faction-card-meta{display:flex;align-items:center;gap:5px;flex-shrink:0}.faction-card-kw-count,.faction-card-force-count{padding:2px 6px;border-radius:999px;background:#e6ece3;color:#5a7058;font-size:10px;font-weight:700}.faction-card>.faction-row,.faction-card>.faction-keywords-row,.faction-card>.faction-systems-block,.faction-card>.faction-profile-block,.faction-card>.faction-force-roster{padding-left:10px;padding-right:10px}.faction-systems-block{display:grid;gap:3px;padding-top:6px;padding-bottom:4px;border-top:1px solid #d8e2d5}.faction-system-row{display:flex;align-items:baseline;gap:8px;min-height:22px}.faction-system-name{font-size:13px;font-weight:600;color:#2a4a28;background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .15s;white-space:nowrap;flex-shrink:0}.faction-system-name:hover{text-decoration-color:#2a4a28}.faction-system-bodies{font-size:12px;color:#5a7055;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.faction-presence{justify-self:start;padding:3px 7px;border:1px solid #d4ddd2;border-radius:999px;background:#f4f6f0;color:#66746d;font-size:11px;font-weight:850;text-transform:uppercase}.faction-keywords-row{display:flex;align-items:center;gap:7px;padding-left:40px}.faction-keywords-row .tag-list{flex:1}.faction-keyword-chip{border-color:#bccabf;background:#eef4ea}.faction-keyword-editor{display:inline-flex;align-items:center;gap:2px}.keyword-remove-button{min-width:22px;min-height:22px;padding:2px}.faction-keyword-select{width:132px;min-height:28px;padding:4px 6px;font-size:12px}.faction-profile-block{display:grid;gap:8px;padding-left:40px}.faction-template-picker{display:grid;grid-template-columns:minmax(110px,auto) minmax(220px,1fr);align-items:center;gap:8px;max-width:560px}.faction-profile-summary{margin:0;color:#4d5b55;line-height:1.45}.faction-profile-editor{display:grid;gap:8px}.faction-profile-editor textarea{min-height:68px}.faction-profile-readout{display:grid;gap:5px;color:#4d5b55}.faction-profile-readout p{margin:0;line-height:1.45}.species-page{display:block}.species-generator-panel,.species-result-panel{max-width:980px}.species-result-heading{display:flex;justify-content:space-between;gap:16px;align-items:start}.species-result-heading div{display:grid;gap:3px}.species-result-heading strong{font-size:17px}.species-result-heading span,.species-result-heading small{color:#65746c}.species-detail-grid{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:8px 14px;margin-top:12px;padding:12px;border:1px solid #d4ddd2;border-radius:6px;background:#f8faf5}.species-detail-grid span{color:#65746c}.species-result-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(280px,1fr);gap:14px;align-items:stretch;margin-top:12px}.species-visual-frame{display:grid;place-items:center;min-height:260px;border:1px solid #d4ddd2;border-radius:6px;background:#f8faf5}.species-prompt-frame{display:grid;align-content:start;gap:8px;min-height:260px;padding:12px;border:1px solid #d4ddd2;border-radius:6px;background:#f8faf5}.species-prompt-frame:focus{outline:2px solid #20342f;outline-offset:2px}.species-prompt-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.species-prompt-heading span{color:#65746c;font-size:12px;font-weight:850;text-transform:uppercase}.species-prompt-actions{display:flex;flex-wrap:wrap;gap:6px}.species-prompt-actions button{min-height:32px;padding:6px 8px}.species-prompt-preview,.species-prompt-text{margin:0;color:#2f3f38;line-height:1.45}.species-prompt-preview{color:#65746c}.species-prompt-text{max-height:0;overflow:hidden;opacity:0;-webkit-user-select:text;user-select:text;transition:max-height .16s ease,opacity .16s ease}.species-prompt-frame:hover .species-prompt-text,.species-prompt-frame:focus-within .species-prompt-text,.species-prompt-frame:focus .species-prompt-text{max-height:230px;opacity:1}.species-prompt-frame:hover .species-prompt-preview,.species-prompt-frame:focus-within .species-prompt-preview,.species-prompt-frame:focus .species-prompt-preview{display:none}.species-visual{width:min(100%,260px);height:auto}.species-visual-bg{fill:#f1f4ed;stroke:#d4ddd2}.species-visual path,.species-visual ellipse,.species-visual circle{stroke-width:3}.species-visual-wings path{opacity:.6}.species-visual-limb path,.species-visual-tentacles path{fill:none;stroke-width:5;stroke-linecap:round}.species-visual-spines path{stroke:none}.species-visual-shell{stroke-width:5;opacity:.7}.species-visual-glow{opacity:.45}.species-visual-tail,.species-visual-bands path,.species-visual-hairs path,.species-visual-stalks path,.species-visual-mandibles path{fill:none;stroke-linecap:round;stroke-linejoin:round}.species-visual-tail{stroke-width:9;opacity:.82}.species-visual-bands path{stroke-width:4;opacity:.28}.species-visual-spots circle{stroke:none}.species-visual-hairs path,.species-visual-stalks path{stroke-width:3}.species-visual-hairs{opacity:.72}.species-visual-stalks circle{stroke-width:2}.species-visual-eyes circle{stroke-width:2}.species-visual-mandibles path{stroke-width:5}.species-visual-cranial-ridges path,.species-visual-mouth{fill:none;stroke-linecap:round;stroke-linejoin:round}.species-visual-cranial-ridges path{stroke-width:4;opacity:.72}.species-visual-mouth{stroke-width:3}.species-adaptation-list{display:grid;gap:8px;margin-top:12px}.species-adaptation-card{display:grid;gap:6px;padding:10px;border:1px solid #d4ddd2;border-radius:6px;background:#fbfcf8}.species-adaptation-card div{display:flex;justify-content:space-between;gap:10px}.species-adaptation-card span{color:#65746c;font-size:12px;font-weight:750;text-transform:uppercase}.species-adaptation-card p{margin:0;color:#4d5b55;line-height:1.45}.faction-presence.present{border-color:#b8cdb5;background:#eef6ea;color:#375f35}.faction-force-roster{display:grid;gap:8px;padding-left:40px}.faction-force-heading{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:100%;padding:7px 9px;border-color:#d4ddd2;background:#f4f6f0;color:#4d5c55;font-size:12px;text-transform:uppercase;font-weight:850}.faction-force-heading span{min-width:24px;padding:2px 7px;border:1px solid #c4cec2;border-radius:999px;background:#eef2ee;text-align:center;font-weight:850}.faction-force-list{display:grid;gap:7px}.faction-force-item{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(180px,1fr);align-items:center;gap:9px;text-align:left;background:#f4f6f0}.faction-force-item small{color:#66746d;line-height:1.35}.faction-force-summary{display:grid;gap:4px;min-width:0}.faction-force-item>small{justify-self:end;text-align:right}.faction-force-marker{width:14px;height:14px;border:1px solid #17211d}.faction-force-marker.fleet{clip-path:polygon(50% 0,100% 100%,50% 68%,0 100%)}.faction-force-marker.ground{height:13px;border-radius:2px;clip-path:polygon(0 100%,0 42%,27% 42%,27% 0,73% 0,73% 42%,100% 42%,100% 100%)}.empty-roster{margin:0;color:#66746d;font-size:13px;font-weight:700}.panel-toggle{justify-content:flex-start;width:100%}.generation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}label{color:#4d5c55;font-size:12px;font-weight:700;display:grid;gap:6px;text-transform:uppercase;letter-spacing:0}input,select,textarea{border:1px solid #bdc8bd;border-radius:6px;padding:7px 9px;background:#fff;color:#17211d;min-width:0}textarea{min-height:96px;resize:vertical;line-height:1.4}.system-list{display:grid;gap:4px}.sidebar-page-nav{display:grid;gap:5px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #d4ddd2}.sidebar-page-nav button{display:grid;grid-template-columns:auto 1fr auto;justify-items:start;text-align:left}.sidebar-page-nav small{color:#66746d;font-weight:850}.sidebar-page-nav button.active small,.sidebar-page-nav button:hover small{color:#d9e4dd}.system-list button{display:grid;justify-items:start;text-align:left;gap:3px}.system-list button.selected{background:#20342f;color:#fff;border-color:#20342f}.system-list small{color:#66746d}.system-list button.selected small{color:#d9e4dd}.feature-list-item{display:grid;justify-items:start;text-align:left;gap:3px;padding:9px 11px;border:1px solid #c4cec2;border-radius:6px;background:#eef2ee}.feature-list-item span{font-weight:700}.feature-list-item small{color:#66746d}.feature-list-item.selected{background:#20342f;color:#fff;border-color:#20342f}.feature-list-item.selected small{color:#d9e4dd}.map-panel{position:relative;overflow:hidden;background:#dfe4de;min-width:0;height:100%;max-height:100%;display:grid;grid-template-rows:auto 1fr;min-height:0}.map-notice{position:absolute;top:52px;left:50%;z-index:45;transform:translate(-50%);max-width:min(680px,calc(100% - 36px));padding:11px 16px;border:1px solid rgba(31,52,47,.22);border-radius:8px;background:#fbfcf8f5;box-shadow:0 14px 32px #17211d38;color:#17211d;font-size:14px;font-weight:800;line-height:1.35;text-align:center;pointer-events:none}.map-visibility-controls{position:absolute;top:14px;right:14px;z-index:2;display:flex;flex-direction:column;gap:3px;padding:7px 8px;border:1px solid #c2ccc1;border-radius:6px;background:#fbfcf8f0;box-shadow:0 8px 20px #17211d24}.map-visibility-controls button{display:flex;align-items:center;gap:5px;padding:4px 7px;font-size:12px;justify-content:flex-start}.map-zoom-badge{position:absolute;bottom:10px;left:10px;z-index:2;padding:2px 7px;font-size:11px;font-weight:700;color:#4a5c55;background:#fbfcf8e0;border:1px solid #c2ccc1;border-radius:4px;-webkit-user-select:none;user-select:none}.map-zoom-badge:hover{background:#e8f0e8f2;border-color:#a8b8a8}.map-pan-hint{position:absolute;bottom:10px;left:58px;z-index:2;padding:2px 7px;font-size:11px;font-weight:700;color:#5f6f68;background:#fbfcf8c2;border:1px solid rgba(194,204,193,.76);border-radius:4px;-webkit-user-select:none;user-select:none;pointer-events:none}.map-canvas svg,.system-map>svg{cursor:crosshair}.map-canvas svg[data-panning],.system-map>svg[data-panning]{cursor:grabbing}.map-legend{position:absolute;right:14px;bottom:14px;z-index:2;display:grid;gap:6px;padding:9px 10px;border:1px solid #c2ccc1;border-radius:6px;background:#fbfcf8f0;box-shadow:0 8px 20px #17211d24;color:#4d5c55;font-size:12px;font-weight:700}.map-legend span{display:flex;align-items:center;gap:7px}.map-legend .legend-heading{padding-top:2px;color:#17211d;font-size:11px;text-transform:uppercase;letter-spacing:0}.map-legend .legend-heading:not(:first-child){margin-top:4px;padding-top:8px;border-top:1px solid #d9e0da}.map-legend i{width:14px;height:14px;border:1px solid #87938c;border-radius:3px;display:inline-block}.system-swatch{border-radius:999px!important;background:#f0c85a;border-color:#6a5016!important}.route-swatch{height:3px!important;border:0!important;border-radius:999px!important;background:#58706d}.poi-swatch{width:10px!important;height:10px!important;margin-left:2px;border-radius:999px!important;background:#17211d;border-color:#fbfcf8!important;box-shadow:0 0 0 1px #87938c}.hazard-swatch{rotate:45deg;background:#f2c94c;border-color:#17211d!important}.force-swatch{clip-path:polygon(50% 0,100% 100%,50% 68%,0 100%);background:#a6ada8;border-color:#17211d!important}.system-star-swatch{border-radius:999px!important;background:#f0c85a;border-color:#6a5016!important;box-shadow:0 0 0 4px #f0c85a38}.orbit-swatch{height:0!important;border:0!important;border-top:2px dashed #8b9690!important;border-radius:0!important}.planet-swatch{border-radius:999px!important;background:#2f7d67;border-color:#17211d!important}.belt-swatch{height:8px!important;border-radius:999px!important;border:2px dashed #8b9690!important;background:transparent}.station-swatch{border-radius:2px!important;background:#7a8798;border-color:#17211d!important}.megastructure-swatch{border-radius:999px!important;background:conic-gradient(from 45deg,#8fa5b1,#d7ded5,#6f7f83,#8fa5b1);border-color:#17211d!important}.anomaly-swatch{rotate:45deg;background:#8d78b8;border-color:#17211d!important}.manual-color-swatch{background:#d8e8d3}.hatch-swatch{background:repeating-linear-gradient(45deg,#d9e4dd 0 3px,#17211d 3px 5px)}.sector-map-view{min-height:0;height:100%;max-height:100%;min-width:0;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr)}.map-canvas{position:relative;min-height:0;height:100%;min-width:0;overflow:hidden}.galaxy-map-view{position:relative;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.galaxy-title-input{min-width:260px;border:1px solid #b8c1b7;border-radius:6px;background:#fbfcf8;padding:9px 11px;font-weight:750}.galaxy-map-view>svg{width:100%;min-width:760px;height:100%;display:block}.galaxy-map-view>svg.galaxy-starfield-svg{height:auto;align-self:start}.galaxy-grid-bg{fill:#d8ded8;stroke:#a8b3ac}.galaxy-starfield-bg{fill:#07100e;stroke:none}.galaxy-grid-line{fill:none;stroke:#c2ccc1;stroke-width:1}.galaxy-route{stroke:#58706d;stroke-width:2.5;stroke-dasharray:6 5;opacity:.65}.galaxy-route-count-bg{fill:#fbfcf8;stroke:#58706d;stroke-width:1.5}.galaxy-route-count{text-anchor:middle;font-size:10px;font-weight:900;fill:#17211d;stroke:none}.galaxy-sector-node{cursor:pointer}.galaxy-sector-node.movable{cursor:grab}.galaxy-sector-node.movable:active{cursor:grabbing}.galaxy-sector-tile{stroke:#17211d;stroke-width:2;opacity:.92}.galaxy-sector-space{fill:#111916;stroke:#fbfcf857;stroke-width:1}.galaxy-mini-system{pointer-events:none}.galaxy-mini-star{stroke-width:.7}.galaxy-starfield-sector{cursor:pointer}.galaxy-starfield-sector-hit{fill:transparent;stroke:none}.galaxy-starfield-system{cursor:pointer}.galaxy-backdrop-star{fill:#e8f7ff;pointer-events:none}.galaxy-starfield-star-glow{opacity:.055;pointer-events:none}.galaxy-starfield-star-halo{opacity:.1;pointer-events:none}.galaxy-starfield-star{stroke-width:.8;pointer-events:none}.selected-galaxy-sector .galaxy-sector-tile{stroke:#fbfcf8;stroke-width:4;filter:drop-shadow(0 4px 8px rgba(23,33,29,.28))}.galaxy-sector-name,.galaxy-sector-status,.galaxy-sector-summary{text-anchor:middle;fill:#17211d;paint-order:stroke;stroke:#fbfcf8;stroke-width:3px;stroke-linejoin:round;font-weight:850}.galaxy-sector-coord{font-size:10px;font-weight:800;fill:#3a4a42;text-anchor:start;pointer-events:none;paint-order:stroke;stroke:#fbfcf8;stroke-width:3px}.galaxy-sector-name{font-size:12px}.galaxy-sector-status{font-size:9px;text-transform:uppercase}.galaxy-sector-summary{font-size:8px;font-weight:800}.map-action-bar{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:4px 8px;border-bottom:1px solid #c2ccc1;background:#f4f6f0}.map-action-bar button{padding:3px 7px;font-size:12px;gap:4px}.map-action-bar button svg{width:13px;height:13px;flex-shrink:0}.galaxy-faction-legend{flex-basis:100%;display:flex;flex-wrap:wrap;gap:6px;padding-top:4px}.galaxy-faction-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 8px 3px 5px;border:1px solid;border-radius:999px;background:#f7f8f4;font-size:12px;line-height:1;cursor:pointer;transition:background .12s}.galaxy-faction-pill:hover{background:#edf0e9}.galaxy-faction-pill-swatch{width:10px;height:10px;border-radius:50%;flex-shrink:0}.galaxy-faction-pill-name{font-weight:600;color:#2a3830}.galaxy-faction-pill-dom{font-size:11px;font-weight:750;padding:1px 5px;background:#00000014;border-radius:999px;color:#2a3830}.galaxy-faction-pill-claim{font-size:11px;color:#66746d;padding:1px 5px;background:#0000000a;border-radius:999px}.faction-force-heading-row{display:flex;align-items:center;gap:6px}.faction-force-heading-row .faction-force-heading{flex:1}.faction-quick-add{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.faction-quick-system-select{font-size:11px;padding:3px 5px;border:1px solid #b8c1b7;border-radius:5px;background:#f7f8f4;max-width:120px}.faction-quick-add>button{padding:4px 7px;font-size:11px;border-color:#b8c1b7}.measure-result{font-size:13px;color:#4a5a48;padding:2px 6px;background:#e8ede4;border-radius:4px}.measure-waiting{color:#7a8a78;font-style:italic}.measure-pin{fill:none;stroke:#e8c840;stroke-width:2;stroke-dasharray:5 3}.measure-line{stroke:#e8c840;stroke-width:1.5;stroke-dasharray:8 4}.measure-label-bg{fill:#10120eb8}.measure-label{fill:#e8c840;font-size:11px;font-weight:700;text-anchor:middle}.player-marker{cursor:pointer}.player-marker.dragging{cursor:grabbing}.player-marker.selected polygon,.player-marker.selected circle{filter:drop-shadow(0 0 4px rgba(255,255,255,.8))}.player-marker.flashing polygon,.player-marker.flashing circle{animation:marker-flash .75s ease-out forwards}@keyframes marker-flash{0%{filter:drop-shadow(0 0 16px rgba(255,220,60,1))}60%{filter:drop-shadow(0 0 8px rgba(255,220,60,.6))}to{filter:drop-shadow(0 0 4px rgba(255,255,255,.8))}}.map-ping{pointer-events:none}.ping-ring{fill:none;stroke:var(--ping-color, #f5c842);transform-box:fill-box;transform-origin:center}.ping-bloom{stroke-width:18;opacity:0;animation:ping-expand 2.2s ease-out forwards}.ping-ring-1{stroke-width:3.5;animation:ping-expand 2.2s ease-out forwards}.ping-ring-2{stroke-width:3.5;animation:ping-expand 2.2s ease-out .5s forwards;opacity:0}.ping-ring-3{stroke-width:3.5;animation:ping-expand 2.2s ease-out 1s forwards;opacity:0}.ping-dot{fill:var(--ping-color, #f5c842);animation:ping-dot-pulse 2.5s ease-out forwards}@keyframes ping-expand{0%{transform:scale(.04);opacity:1}70%{opacity:.7}to{transform:scale(1);opacity:0}}@keyframes ping-dot-pulse{0%{opacity:1;r:9px}20%{opacity:1;r:13px}60%{opacity:.9;r:9px}to{opacity:0;r:9px}}.flash-trail{stroke:var(--trail-color, #7aadcc);stroke-width:1.5;stroke-linecap:round;fill:none;pointer-events:none;stroke-dasharray:var(--trail-len) var(--trail-len);stroke-dashoffset:var(--trail-len);animation:trail-draw .35s ease-out forwards,trail-fade .75s .3s ease-in forwards}@keyframes trail-draw{0%{stroke-dashoffset:var(--trail-len);opacity:.85}to{stroke-dashoffset:0;opacity:.85}}@keyframes trail-fade{0%{opacity:.85}to{opacity:0}}.flash-ring{fill:none;stroke:var(--ping-color, #4caf85);stroke-width:2.5;transform-box:fill-box;transform-origin:center;animation:flash-expand 1.2s ease-out forwards}.flash-dot{fill:var(--ping-color, #4caf85);animation:flash-dot-pulse 1.2s ease-out forwards}@keyframes flash-expand{0%{transform:scale(.05);opacity:.9}to{transform:scale(1);opacity:0}}@keyframes flash-dot-pulse{0%{opacity:.95;r:5px}25%{opacity:1;r:8px}to{opacity:0;r:5px}}.player-marker-label{font-size:10px;font-weight:600;text-anchor:middle;fill:#fff;paint-order:stroke;stroke:#000000d9;stroke-width:3px}.player-marker-modal{width:280px}.map-markers-panel{position:absolute;right:14px;top:50%;transform:translateY(-50%);z-index:2;display:grid;gap:4px;padding:8px 10px;background:#f6f8f6f2;border:1px solid #d9e0da;border-radius:8px;box-shadow:0 8px 20px #17211d24;color:#4d5c55;font-size:12px;font-weight:700;min-width:120px;max-width:200px;pointer-events:all}.map-markers-panel .legend-heading{padding-bottom:4px;margin-bottom:2px;color:#17211d;font-size:11px;text-transform:uppercase;letter-spacing:0;border-bottom:1px solid #d9e0da}.marker-panel-row{display:flex;align-items:center;gap:7px;background:none;border:none;cursor:pointer;padding:2px 4px;border-radius:4px;font-size:12px;font-weight:600;color:#4d5c55;text-align:left;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.marker-panel-row:hover{background:#0000000f}.marker-panel-row.selected{background:#44aaff2e;color:#1a6aa0}.marker-panel-row span{overflow:hidden;text-overflow:ellipsis}.marker-color-row{display:flex;align-items:center;gap:.5rem}.marker-color-row input[type=color]{width:2.5rem;height:2rem;padding:2px;border-radius:4px;cursor:pointer}.map-panel>svg,.sector-map-view>svg,.map-canvas>svg{width:100%;min-width:760px;height:100%;min-height:0;display:block}.map-breadcrumbs{min-height:32px;padding:5px 10px;display:flex;align-items:center;gap:6px;border-bottom:1px solid #c2ccc1;background:#fbfcf8;color:#66746d;font-size:13px;font-weight:700;min-width:0}.breadcrumb-link{border:0;background:transparent;padding:0;color:#17211d;font-size:13px;font-weight:700;display:inline-flex;flex:0 1 auto;min-width:0;width:auto;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumb-link:hover{background:transparent;color:#20342f}.system-map,.planet-map{position:relative;min-width:760px;height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.return-sector-button{justify-content:center;margin:6px 12px 4px;padding:5px 10px;border-color:#20342f;background:#20342f;color:#fff;font-size:12px;font-weight:700}.return-sector-button:hover{background:#17211d}.system-map-focus-button{position:absolute;top:10px;right:12px;z-index:3;border-color:#20342f;background:#20342f;color:#fff;font-weight:800;padding:7px 10px}.system-map-focus-button:hover{background:#17211d}.system-map>svg,.planet-map-body>svg{min-width:0;width:100%;height:100%;background:radial-gradient(circle at center,#f8fbf6,#e4e9e1 62%,#d7ded5)}.planet-map-body{display:flex;min-height:0;overflow:hidden;flex:1}.planet-map-body>svg{flex:1;min-width:0}.planet-info-panel{width:256px;flex-shrink:0;display:flex;flex-direction:column;overflow-y:auto;border-left:1px solid #c4cec2;background:#f5f8f4}.planet-info-visual{display:flex;justify-content:center;padding:16px 0 8px;background:#eef2ee;border-bottom:1px solid #d4dbd4}.planet-info-body{display:flex;flex-direction:column;gap:10px;padding:12px;flex:1}.planet-info-body .detail-grid{font-size:12px}.planet-info-body .tag-chips{flex-wrap:wrap;gap:4px}.planet-info-body .tag-chip{font-size:11px;padding:2px 6px}.economy-list{display:grid;gap:7px}.economy-title{color:#17211d;font-size:12px;font-weight:850}.economy-list>div{display:grid;gap:4px}.economy-list>div>span{color:#5a675f;font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.economy-list>div>div{display:flex;flex-wrap:wrap;gap:5px}.economy-chip{border:1px solid #b4c0b8;border-radius:6px;padding:3px 6px;background:#eef2ee;color:#17211d;font-size:10px;font-weight:800;line-height:1.2}.economy-chip.surplus{border-color:#9ab394;background:#e5f0e3}.economy-chip.need{border-color:#c1a39a;background:#f2e8e4}.economy-chip.compact{font-size:9px;padding:1px 4px;border-radius:4px}button.economy-chip{cursor:pointer;font-family:inherit;font-weight:inherit}button.economy-chip:hover{filter:brightness(.94)}.economy-resource-modal{max-width:480px}.economy-resource-kind{display:inline-flex;margin-bottom:10px;pointer-events:none}.economy-resource-description{color:#2e3c35;line-height:1.55;margin:0}.economy-editor{display:flex;flex-direction:column;gap:8px;padding:8px 0}.economy-editor-label{font-size:12px;color:#555}.economy-editor-section{display:flex;flex-direction:column;gap:4px}.economy-editor-section>span{font-size:11px;color:#888;font-weight:500}.economy-editor-chips{display:flex;flex-wrap:wrap;gap:4px}.economy-editor-chips .economy-chip{font-size:10px;background:#f0f0f0;border-color:#d8d8d8;color:#aaa}.economy-editor-chips .economy-chip.active.surplus{background:#e5f0e3;border-color:#9ab394;color:#17211d;font-weight:700;outline:2px solid #9ab394;outline-offset:1px}.economy-editor-chips .economy-chip.active.need{background:#f2e8e4;border-color:#c1a39a;color:#17211d;font-weight:700;outline:2px solid #c1a39a;outline-offset:1px}.economy-editor-reset{font-size:11px;color:#888;background:none;border:none;cursor:pointer;text-decoration:underline;padding:0;text-align:left}.body-card-economy{display:flex;flex-wrap:wrap;gap:3px;grid-column:2 / -1}.planet-info-forces{display:flex;flex-direction:column;gap:5px}.planet-info-force-pill{display:flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid #b0bdb5;border-radius:6px;background:#e8ede8;color:#17211d;font-size:12px;font-weight:700;cursor:pointer;text-align:left}.planet-info-force-pill:hover{background:#dce4db}.planet-info-note{display:grid;gap:4px}.planet-info-note>span{font-size:11px;font-weight:750;color:#5a675f;text-transform:uppercase;letter-spacing:.03em}.planet-info-note textarea{min-height:60px;resize:vertical}.planet-info-footer{display:flex;gap:6px;padding:10px 12px;border-top:1px solid #d4dbd4;background:#eef2ee}.planet-info-panel .section-heading{padding:12px;background:#eef2ee;border-bottom:1px solid #d4dbd4}.planet-map-glow{fill:url(#planet-view-glow);pointer-events:none}.planet-view-visual,.planet-moon-visual,.planet-orbit-body{cursor:pointer}.planet-satellite-ring{fill:none;stroke:#a9b5ae;stroke-width:1.2;stroke-dasharray:4 6;pointer-events:none}.planet-map-title{text-anchor:middle;font-size:18px;font-weight:850}.planet-map-toolbar{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:0 12px 10px;color:#17211d}.planet-map-toolbar>div:first-child{display:grid;gap:2px;min-width:0}.planet-map-toolbar strong,.planet-map-toolbar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planet-map-toolbar span{color:#5a675f;font-size:12px;font-weight:750}.planet-map-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.body-map-globe{cursor:grab}.globe-limb{fill:none;stroke:#20342f47;stroke-width:1.5;pointer-events:none}.body-map-route-arc{fill:none;stroke:#5c6b64;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:9 6;cursor:pointer}.body-map-site{cursor:pointer}.body-map-site circle{fill:#f7f9f5;stroke:#20342f;stroke-width:2}.body-map-site path,.body-map-site rect{fill:#20342f;pointer-events:none}.body-map-site.hazard circle{fill:#f2d9d3;stroke:#b34a3a}.body-map-site.resource circle{fill:#f0e5b7;stroke:#9d7b28}.body-map-site.wilderness circle{fill:#d7ead4;stroke:#467a4c}.body-map-site.selected circle{stroke:#111a17;stroke-width:4}.body-map-site.faction-controlled circle{stroke:var(--site-faction);stroke-width:3}.body-map-site.faction-controlled.selected circle{stroke:var(--site-faction);stroke-width:4;filter:brightness(.85)}.body-map-site text{fill:#17211d;paint-order:stroke;stroke:#f8fbf6e6;stroke-width:4px;font-size:12px;font-weight:850;pointer-events:none}.body-map-thumbnail{cursor:pointer}.body-map-site-panel{position:absolute;right:16px;top:126px;z-index:4;width:min(320px,calc(100% - 32px));max-height:calc(100% - 176px);overflow:auto;display:grid;gap:9px;padding:12px;border:1px solid #b8c4ba;border-radius:8px;background:#f8fbf6f5;box-shadow:0 14px 28px #20342f2e}.body-map-site-panel textarea{min-height:64px}.body-map-cell-summary{display:flex;flex-wrap:wrap;gap:6px}.body-map-cell-summary span{min-height:24px;padding:4px 7px;border:1px solid #c4cec2;border-radius:6px;background:#eef2ee;color:#4d5c55;font-size:11px;font-weight:850}.body-map-site-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.body-map-routes-editor{display:grid;gap:7px}.body-map-route-row{display:grid;grid-template-columns:minmax(0,1fr) 110px auto;gap:6px;align-items:center}.body-map-route-row span{overflow:hidden;color:#4d5c55;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.body-map-route-row select{padding:6px 7px}.body-map-route-row button{width:30px;height:30px;justify-content:center;padding:0}.system-legend{bottom:14px}.hex{fill:#edf0e9;stroke:#c2ccc1;stroke-width:1}.hex.addable{cursor:crosshair}.hex.addable:hover{fill:#f8fbf6;stroke:#20342f;stroke-width:2}.route{stroke:#58706d;stroke-width:2.5;stroke-linecap:round;opacity:.75}.galaxy-exit-route{fill:none;stroke:#20342f;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8 5;opacity:.78}.sector-galaxy-exit{cursor:pointer}.galaxy-exit-arrow{fill:#20342f;stroke:#fbfcf8;stroke-width:1.2}.galaxy-exit-label{text-anchor:end;font-size:9px;fill:#20342f;paint-order:stroke;stroke:#fbfcf8;stroke-width:3px;stroke-linejoin:round}.sector-galaxy-exit.top .galaxy-exit-label,.sector-galaxy-exit.bottom .galaxy-exit-label{text-anchor:middle}.system-node{cursor:pointer}.system-node.movable{cursor:grab}.system-node.movable:active{cursor:grabbing}.star{stroke-width:2}.selected-star{stroke:#17211d;stroke-width:4}.hex-selected-outline{fill:none;stroke:#f0c85a;stroke-width:2.5;opacity:.9}.binary-companion{stroke-width:1.5}.system-number{text-anchor:middle;font-size:11px}.system-label-match{fill:#c8362a;font-weight:700}.hazard-area{opacity:.22;pointer-events:none;stroke-width:1.4}.hazard-area.radiation{fill:#f2c94c;stroke:#9a6a13}.hazard-area.minefield{fill:#e45540;stroke:#8e251d}.hazard-area.debris{fill:#8b9690;stroke:#4f5a55}.hazard-area.nebula{fill:#8d78b8;stroke:#504173}.hazard-area.gravity_well{fill:#34445c;stroke:#17211d}.hazard-area.patrol_zone{fill:#73a36f;stroke:#375f35}.hazard-area.storm{fill:#66b8c9;stroke:#267287}.hazard-node{cursor:pointer}.hazard-node.movable{cursor:grab}.hazard-node.movable:active{cursor:grabbing}.hazard-marker{fill:#f8fbf6;stroke:#17211d;stroke-width:2}.hazard-marker.radiation{fill:#f2c94c}.hazard-marker.minefield{fill:#e45540}.hazard-marker.debris{fill:#8b9690}.hazard-marker.nebula{fill:#8d78b8}.hazard-marker.gravity_well{fill:#34445c}.hazard-marker.patrol_zone{fill:#73a36f}.hazard-marker.storm{fill:#66b8c9}.selected-hazard .hazard-marker{stroke:#fbfcf8;stroke-width:3}.hazard-severity{fill:#17211d;font-size:10px;font-weight:800;pointer-events:none;text-anchor:middle}.hazard-label{font-size:8px;fill:#17211d;paint-order:stroke;stroke:#fbfcf8;stroke-width:2px;stroke-linejoin:round}.map-feature-label{text-anchor:middle;font-size:8px;fill:#3f4b46;paint-order:stroke;stroke:#fbfcf8;stroke-width:2px;stroke-linejoin:round}.force-node{cursor:pointer}.force-node.movable{cursor:grab}.force-node.movable:active{cursor:grabbing}.force-marker,.force-ground-marker{stroke:#17211d;stroke-width:1.5;paint-order:stroke}.selected-force .force-marker,.selected-force .force-ground-marker{stroke:#fbfcf8;stroke-width:2.4;filter:drop-shadow(0 0 4px rgba(23,33,29,.5))}.force-strength{fill:#17211d;font-size:8px;font-weight:850;pointer-events:none;text-anchor:middle}.force-orbit-ring{fill:none;stroke:#17211d;stroke-width:1;stroke-dasharray:4 5;opacity:.32;pointer-events:none}.force-detail-preview{display:grid;gap:12px;padding:12px;border:1px solid #c4cec2;border-radius:6px;background:#f4f6f0}.force-detail-preview svg{width:100%;max-height:120px}.force-detail-preview .force-marker,.force-detail-preview .force-ground-marker{stroke-width:4}.preview-force-strength{font-size:18px}.poi-node{cursor:pointer}.poi-node.movable{cursor:grab}.poi-node.movable:active{cursor:grabbing}.poi-marker-dot{fill:#17211d;stroke:#fbfcf8;stroke-width:1.5}.selected-poi .poi-marker-dot{fill:#e45540}.poi-marker-count{fill:#17211d;font-size:10px;text-anchor:start}.system-map-glow{fill:url(#system-star-glow)}.system-map-corona{fill:none;stroke:#fff7cf;stroke-width:7;stroke-dasharray:1 10;stroke-linecap:round;opacity:.58;pointer-events:none}.system-map-star{stroke-width:2}.system-map-title{text-anchor:middle;pointer-events:none;font-size:9px;font-weight:850;paint-order:stroke;stroke:#edf0e9;stroke-width:3px}.system-star-surface{fill:none;stroke:#fff7cf;stroke-width:2.5;stroke-linecap:round;opacity:.46;pointer-events:none}.binary-system-orbit{fill:none;stroke:#6f7f83;stroke-width:1.4;stroke-dasharray:4 5;opacity:.62;pointer-events:none}.orbit-ring{fill:none;stroke:#a9b5ae;stroke-width:1;stroke-dasharray:4 5;pointer-events:none}.belt-marker{fill:none;stroke:#8b9690;stroke-width:5;stroke-dasharray:2 8;opacity:.75}.orbit-body{cursor:pointer}.orbit-body.movable{cursor:grab}.orbit-body.movable:active{cursor:grabbing}.free-system-body{cursor:pointer}.free-system-body.movable{cursor:grab}.free-system-body.movable:active{cursor:grabbing}.free-body-zone{fill:#8d78b8;opacity:.1;stroke:#504173;stroke-width:1.2;stroke-dasharray:3 5}.free-body-visual{pointer-events:none}.moon-node{cursor:pointer}.satellite-ring{fill:none;stroke:#8b9690;stroke-width:.8;stroke-dasharray:2 4;opacity:.72;pointer-events:none}.moon-label{font-size:9px}.body-symbol{fill:#6f9fc2;stroke:#17211d;stroke-width:2}.body-visual{display:block;overflow:visible}.map-body-visual,.moon-map-visual{pointer-events:none}.star-visual{display:block;overflow:visible;flex:0 0 auto}.star-visual-surface{fill:none;stroke:#fff7cf;stroke-width:2;stroke-linecap:round;opacity:.48}.star-visual-prominence{fill:none;stroke-width:2.8;stroke-linecap:round}.star-visual-spot{fill:#fff7cf;mix-blend-mode:screen}.binary-orbit-arc{fill:none;stroke:#6f7f83;stroke-width:1.2;stroke-dasharray:3 4;opacity:.68}.visual-outline{fill:none;stroke:#17211d;stroke-width:1.8}.visual-rings{fill:none;stroke:#9b8671;stroke-width:4;opacity:.55}.visual-constructed-grid{fill:none;stroke:#17211d;stroke-width:1.1;opacity:.42}.visual-constructed-panel{stroke:#17211d;stroke-width:.65}.visual-belt{fill:none;stroke:#8b9690;stroke-width:4;stroke-dasharray:3 7}.ringworld-base{fill:none;stroke:#3d4e45;stroke-width:9}.ringworld-panels-a{fill:none;stroke:#7a9085;stroke-width:7;stroke-dasharray:28 18;opacity:.85}.ringworld-panels-b{fill:none;stroke:#9ab0a8;stroke-width:4;stroke-dasharray:16 30;stroke-dashoffset:14;opacity:.65}.ringworld-seams{fill:none;stroke:#b7c6c0;stroke-width:1.8;stroke-dasharray:5 45;stroke-dashoffset:7;opacity:.45}.visual-station rect{fill:#7a8798;stroke:#17211d;stroke-width:2}.visual-station path{stroke:#17211d;stroke-width:3;stroke-linecap:round}.visual-megastructure{fill:none;stroke:#17211d;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.visual-megastructure ellipse{fill:none;stroke:#8fa5b1}.visual-megastructure rect{fill:#d7ded5;stroke:#17211d}.visual-megastructure path{stroke:#17211d}.visual-megastructure.active rect{fill:#d7f0ff}.visual-megastructure.derelict{opacity:.82}.visual-megastructure.derelict ellipse{stroke:#6f7f83;stroke-dasharray:7 4}.visual-megastructure-break{stroke:#e45540!important;stroke-width:2.6}.visual-anomaly{fill:none;stroke:#17211d;stroke-width:2;opacity:.9}.visual-anomaly path,.visual-anomaly circle,.visual-anomaly ellipse{fill:#8d78b8;stroke:#17211d;stroke-width:2}.visual-anomaly.variant-1 ellipse{fill:none}.visual-anomaly.variant-3 path{fill:none;stroke-width:3;stroke-linecap:round}.visual-poi{fill:#c9a44c;stroke:#17211d;stroke-width:2}.body-symbol.main{fill:#e45540}.body-symbol.important{fill:#d49c2f}.station-symbol{fill:#7a8798}.anomaly-symbol{fill:#8d78b8}.orbit-label{font-size:11px}text{font-size:12px;font-weight:700;fill:#17211d;paint-order:stroke;stroke:#edf0e9;stroke-width:4px;stroke-linejoin:round}.hex-number{fill:#708078;font-size:7.5px;font-weight:650;opacity:.78;text-anchor:middle;pointer-events:none}.system-number{font-size:11px;text-anchor:middle}.system-label{text-anchor:middle}.detail-panel,.left-panel{display:flex;flex-direction:row}.left-panel-content{flex:1;min-width:0;overflow:auto;padding:10px;font-size:13px}.sidebar-search{display:flex;align-items:center;gap:4px;margin-left:auto;flex-shrink:0}.sidebar-search-field{position:relative;display:flex;align-items:center}.sidebar-search-icon{position:absolute;left:7px;color:#7a8c7f;pointer-events:none;flex-shrink:0}.sidebar-search-input{width:100%;padding:5px 22px 5px 24px;font-size:12px;border:1px solid #c4cec2;border-radius:4px;background:#fff;color:#1c2b20;outline:none;appearance:none}.sidebar-search-input::-webkit-search-cancel-button{display:none}.sidebar-search-input:focus{border-color:#6aab78;box-shadow:0 0 0 2px #6aab7833}.sidebar-search-clear{position:absolute;right:5px;display:flex;align-items:center;justify-content:center;padding:2px;background:none;border:none;cursor:pointer;color:#7a8c7f;border-radius:3px}.sidebar-search-clear:hover{background:#eaefea;color:#3d4d42}.sidebar-search-index-btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:4px 5px;margin-left:4px;background:none;border:1px solid #c4cec2;border-radius:4px;cursor:pointer;color:#5a7060}.sidebar-search-index-btn:hover,.sidebar-search-index-btn.active{background:#d4e8d8;border-color:#6aab78;color:#1c2b20}.sidebar-search-count{margin-left:auto;font-size:11px;font-weight:600;color:#7a8c7f;background:#ddeade;border-radius:3px;padding:1px 5px}.sidebar-search-empty{padding:10px 14px;color:#6b7a8d;font-size:13px;font-style:italic}.panel-edge-toggle--left{border-right:none;border-left:1px solid #d4ddd2}.panel-edge-toggle{width:20px;min-width:20px;flex-shrink:0;background:#f4f6f0;border:none;border-right:1px solid #d4ddd2;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;border-radius:0;color:#8a9c8e}.panel-edge-toggle:hover{background:#e4e9e2;border-color:#b8c8b7;color:#17211d}.detail-panel-content{flex:1;min-width:0;overflow:auto;padding:10px;display:grid;align-content:start;gap:13px;font-size:13px}.detail-heading{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px}.detail-heading input{font-size:16px;font-weight:750}.detail-heading strong{font-size:16px;line-height:1.2}.detail-section{display:grid;gap:10px}.detail-section-body{display:grid;gap:13px}.detail-section-toggle{border-color:#d4ddd2;background:#f4f6f0;font-weight:800}.section-heading-toggle{align-items:stretch}.section-heading-toggle .detail-section-toggle{flex:1}.checkbox-row{grid-template-columns:auto 1fr;align-items:center;text-transform:none;font-size:14px;color:#17211d}.checkbox-row input{width:18px;height:18px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.star-detail-card{display:grid;grid-template-columns:auto 1fr auto;gap:8px 12px;align-items:center;padding:11px;border:1px solid #c4cec2;border-radius:6px;background:linear-gradient(135deg,#f8fbf6,#eef2ee)}.star-detail-card>div{display:grid;gap:4px;min-width:0}.star-detail-card strong{font-size:14px}.star-detail-card small{color:#5f6d66;line-height:1.35}.star-detail-card dl{display:grid;grid-column:1 / -1;grid-template-columns:auto 1fr;gap:5px 10px;margin:0;font-size:13px}.star-detail-card dt{color:#66746d;font-weight:750}.star-detail-card dd{margin:0;color:#17211d}.star-image-reroll{align-self:start}.star-detail-list{display:grid;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.star-detail-list label{gap:4px}.star-detail-list label.wide{grid-column:1 / -1}.star-detail-list span:first-child,.readonly-field span{color:#66746d;font-size:12px;font-weight:750;text-transform:uppercase}.reroll-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}.readonly-field{display:grid;gap:4px;padding:10px 11px;border:1px solid #d4ddd2;border-radius:6px;background:#f8fbf6}.readonly-field strong{font-size:14px;line-height:1.35}.split-readonly{grid-template-columns:auto 1fr;gap:6px 12px;align-items:baseline}.bodies-section{display:grid;gap:10px}.prominence-filter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.prominence-filter button{justify-content:center;min-width:0;padding:8px 6px;border-left-width:5px}.prominence-filter button.main{border-left-color:#e45540}.prominence-filter button.important{border-left-color:#d49c2f}.prominence-filter button.background{border-left-color:#778781}.body-type-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.body-type-filter button{justify-content:center;min-width:0;padding:8px 6px}.body-card,.world-card{display:grid;gap:5px;padding:12px;border:1px solid #c4cec2;border-radius:6px;background:#f4f6f0}.body-card{gap:10px;border-left-width:5px}.body-card.main{border-left-color:#e45540}.body-card.important{border-left-color:#d49c2f}.body-card.background{border-left-color:#778781}.body-family{display:grid;gap:7px}.satellite-list{display:grid;gap:7px;margin-left:18px;padding-left:11px;border-left:2px solid #d4ddd2}.satellite-summary{padding:9px;background:#f8fbf6}.body-summary{grid-template-columns:auto 1fr auto;gap:7px;align-items:center;cursor:pointer}.body-summary>div{display:grid;gap:5px;min-width:0}.body-summary small{line-height:1.35}.body-summary>small{grid-column:2 / -1;margin-top:3px}.summary-affordance{color:#4d5c55;font-size:12px;font-weight:700}.inline-action{align-self:center;padding:6px 8px;font-size:12px}.icon-link{width:30px;height:30px;justify-content:center;padding:0}.routes-section{display:grid;gap:8px}.ownership-section{display:grid;gap:9px}.faction-claims{display:grid;gap:7px}.faction-claim{grid-template-columns:auto auto 1fr}.faction-swatch{width:16px;height:16px;border:1px solid #87938c;border-radius:3px}.route-add-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.route-list{display:grid;gap:7px}.route-list button{justify-content:flex-start;padding:7px 9px}.route-lane-row{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:8px;align-items:center}.route-lane-row label{gap:3px}.route-lane-row input{padding:7px 8px}.route-list span,.route-list small{display:inline-flex;align-items:center;min-height:28px;padding:6px 9px;border:1px solid #c4cec2;border-radius:6px;background:#f5f7f3;color:#4d5c55;font-size:12px;font-weight:750}.route-list strong{justify-self:end;color:#4d5c55;font-size:12px}.info-strip{padding:9px 10px;border:1px solid #c4cec2;border-radius:6px;background:#eef2ee;color:#4d5c55;font-size:13px;font-weight:700}.tag-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0}.tag-list.empty{color:#66746d;font-weight:700}.tag-chip{min-height:28px;padding:4px 8px;border-color:#aebbae;background:#eef2ee;color:#17211d;font-size:12px;font-weight:800;line-height:1.2;text-transform:none}.tag-chip:hover{background:#20342f;border-color:#20342f;color:#f8fbf6}.tag-chip.compact{min-height:22px;padding:2px 6px;font-size:11px}.tag-chip.static{display:inline-flex;align-items:center;border:1px solid #c4cec2;border-radius:6px}.tag-chip.static:hover{background:#eef2ee;border-color:#c4cec2;color:#17211d}.tag-chip.unknown{border-style:dashed}.quick-note-part{display:inline-flex;align-items:center;gap:5px;margin-right:5px}.quick-note-separator{color:#8a9690}.body-card-header{display:grid;grid-template-columns:1fr auto;gap:8px}.body-card-header input{font-weight:750}.body-card-header button:disabled{opacity:.4;cursor:not-allowed}.body-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.body-card textarea{min-height:72px}.world-card span,.world-card small,.body-card span,.body-card small{color:#4d5c55}.modal-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:18px;background:#17211d6b}.side-detail-panel{position:fixed;left:24px;top:50%;transform:translateY(-50%);z-index:12;max-height:min(780px,calc(100vh - 36px));overflow:auto}.modal{width:min(620px,100%);max-height:min(760px,calc(100vh - 36px));overflow:auto;display:grid;gap:12px;padding:16px;border:1px solid #c4cec2;border-radius:8px;background:#fbfcf8;box-shadow:0 18px 48px #17211d42}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-actions{display:flex;gap:7px}.visual-detail{display:grid;place-items:center;padding:8px;border:1px solid #d4ddd2;border-radius:6px;background:radial-gradient(circle at center,#f8fbf6,#eef2ee 70%)}.detail-grid{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;font-size:14px}.detail-grid span{color:#66746d;font-weight:700}.note-block{display:grid;gap:6px}.note-block p{margin:0;line-height:1.45}.world-tag-modal{width:min(840px,100%)}.world-tag-records{display:grid;gap:12px}.world-tag-record{display:grid;gap:10px;padding:12px;border:1px solid #c4cec2;border-radius:6px;background:#f4f6f0}.world-tag-record-heading{display:grid;gap:3px;padding-bottom:8px;border-bottom:1px solid #d4ddd2}.world-tag-record-heading strong{font-size:18px}.world-tag-record-heading span{color:#66746d;font-size:12px;font-weight:800}.world-tag-field{display:grid;gap:5px}.world-tag-field>strong{color:#4d5c55;font-size:12px;text-transform:uppercase}.world-tag-field p{margin:0;line-height:1.45}.world-tag-field ul{margin:0;padding-left:18px;line-height:1.45}.galaxy-sector-delete-btn{cursor:pointer}.galaxy-sector-delete-bg{fill:#b42828d9;stroke:#fbfcf8;stroke-width:1}.galaxy-sector-delete-x{text-anchor:middle;fill:#fbfcf8;font-size:13px;font-weight:700;pointer-events:none}.faction-scope-toggle{display:flex;gap:2px}.faction-scope-toggle button{padding:2px 8px;font-size:12px;background:#e4ebe0;border:1px solid #c2ccc1;border-radius:3px;cursor:pointer;color:#2c3a2c}.faction-scope-toggle button.active{background:#2c3a2c;color:#fbfcf8;border-color:#2c3a2c}.factions-view-toggle{display:flex;gap:4px;padding:8px 12px 0}.factions-view-toggle button{padding:4px 12px;font-size:13px;background:#e4ebe0;border:1px solid #c2ccc1;border-radius:4px;cursor:pointer;color:#2c3a2c}.factions-view-toggle button.active{background:#2c3a2c;color:#fbfcf8;border-color:#2c3a2c}.template-pinnable{display:grid;grid-template-columns:20px 1fr;align-items:start;gap:6px}.template-pinnable.pinned>.template-editor-card{border-color:#6a9a70;background:#eaf3e8}.template-pin-toggle{display:flex;align-items:center;justify-content:center;padding-top:10px;cursor:pointer;flex-shrink:0}.template-builtin-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6a8060;background:#dde8d8;border-radius:3px;padding:1px 5px;flex-shrink:0}.template-pin-row{align-items:center}.template-editor-list{display:grid;gap:12px;margin-top:8px}.template-editor-card{border:1px solid #c2ccc1;border-radius:6px;background:#f8faf6;overflow:hidden}.template-editor-header{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#eaefea;border-bottom:1px solid #c2ccc1}.template-editor-card.collapsed .template-editor-header{border-bottom:none}.template-editor-chevron{flex-shrink:0;color:#6a8060;display:flex;align-items:center}.template-logo-thumb{width:28px;height:28px;object-fit:contain;border-radius:4px;flex-shrink:0}.template-kw-count{font-size:11px;color:#6a8060;background:#dde8d8;border-radius:3px;padding:1px 5px;flex-shrink:0}.template-image-generated{opacity:.88;background:#111}.template-name-input{flex:1;font-weight:700;font-size:14px}.template-editor-fields{display:grid;gap:8px;padding:10px}.template-field-label{display:grid;grid-template-columns:140px 1fr;align-items:start;gap:8px;font-size:13px}.template-field-label textarea{min-height:56px}.template-image-row{display:flex;align-items:center;gap:10px;padding:4px 0}.template-image-preview{width:56px;height:56px;object-fit:cover;border-radius:5px;border:1px solid #c2ccc1}.template-image-placeholder{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#dde5d8;border-radius:5px;color:#6a8060}.template-image-actions{display:flex;flex-direction:column;gap:4px}.template-species-section{display:grid;gap:6px}.template-species-list{display:grid;gap:4px}.template-species-row{display:flex;align-items:center;gap:6px;font-size:13px}.template-species-row small{color:#6a8060}.species-save-row{display:flex;gap:8px;align-items:center;margin-top:10px}.species-save-row input{flex:1}.species-saved-panel{margin-top:8px}.species-saved-list{display:grid;gap:6px}.species-saved-card{background:#f0f4ee;border-radius:5px;padding:8px 10px}.species-saved-header{display:flex;align-items:center;gap:8px}.species-saved-header strong{flex:1}.species-saved-header span{color:#4d5b55;font-size:13px}.species-saved-image-cell{flex-shrink:0}.species-saved-image-btn{display:block;padding:0;background:none;border:none;cursor:zoom-in;border-radius:4px;overflow:hidden;line-height:0}.species-saved-thumbnail{width:40px;height:40px;object-fit:cover;border-radius:4px;display:block}.species-saved-image-placeholder{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#dde5d8;border-radius:4px;color:#6a8060}.species-saved-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.species-saved-actions{display:flex;gap:4px}.species-saved-editor{margin-top:8px;display:flex;flex-direction:column;gap:6px}.species-saved-traits{display:grid;gap:4px}.species-trait-edit-row{display:flex;align-items:baseline;gap:8px;font-size:13px}.species-trait-edit-row span{width:64px;flex-shrink:0;color:#6a8060}.species-trait-edit-row input,.species-trait-edit-row textarea{flex:1;font-size:13px;min-width:0}.species-trait-reroll-btn{flex-shrink:0;background:none;border:none;padding:2px 4px;color:#8aaa80;cursor:pointer;display:flex;align-items:center;border-radius:3px}.species-trait-reroll-btn:hover{background:#cdd8c6;color:#3a5a30}.species-saved-label-input{font-size:14px;font-weight:600}.image-lightbox{position:fixed;inset:0;z-index:1000;background:#000000d9;display:flex;align-items:center;justify-content:center;cursor:zoom-out}.image-lightbox img{max-width:92vw;max-height:92vh;object-fit:contain;border-radius:6px;box-shadow:0 8px 40px #0009}.lightbox-close{position:absolute;top:16px;right:20px;background:#ffffff26;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer}.lightbox-close:hover{background:#ffffff4d}.species-edit-image-block{position:relative;display:inline-block;align-self:flex-start}.species-edit-image-preview{display:block;max-width:100%;max-height:180px;object-fit:contain;border-radius:5px;cursor:zoom-in;border:1px solid #c2ccc1}.species-edit-image-expand{position:absolute;top:6px;right:6px;background:#00000073;border:none;border-radius:4px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;opacity:0;transition:opacity .15s}.species-edit-image-block:hover .species-edit-image-expand{opacity:1}.species-edit-image-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.species-edit-upload-label{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#4d5b55;cursor:pointer;padding:3px 8px;background:#dde5d8;border-radius:4px}.species-edit-upload-label:hover{background:#cdd8c6}.species-copy-prompt-btn{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#4d5b55;background:#dde5d8;border:none;border-radius:4px;padding:4px 10px;cursor:pointer;align-self:flex-start}.species-copy-prompt-btn:hover{background:#cdd8c6}.species-delete-confirm-btn{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#b03030;background:#fce8e8;border:1px solid #e8b0b0;border-radius:4px;padding:2px 6px;cursor:pointer;white-space:nowrap}.species-delete-confirm-btn:hover{background:#f5d0d0}.species-remove-image-btn{display:flex;align-items:center;gap:4px;font-size:12px;color:#a04040;background:none;border:none;cursor:pointer;padding:0}.species-saved-notes{margin:6px 0 0;font-size:13px;color:#4d5b55}.faction-card-image{width:100%;max-height:220px;object-fit:cover;border-radius:5px;margin-bottom:8px}.faction-card-logo{width:72px;height:72px;object-fit:contain;border-radius:6px;margin-bottom:8px;display:block}@media(max-width:1100px){.workspace{grid-template-columns:var(--left-col) minmax(0,1fr)}.detail-panel{grid-column:1 / -1;border-left:0;border-top:1px solid #cbd4ca}}@media(max-width:760px){.topbar{align-items:stretch;flex-direction:column}.sector-title{width:100%;font-size:24px}.workspace,.star-detail-list{grid-template-columns:1fr}.left-panel,.detail-panel{border:0;border-bottom:1px solid #cbd4ca}}.galactic-forces-page{min-width:0;width:100%}.galactic-force-group{margin-bottom:4px}.galactic-force-group-header{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#edf0e9;border-radius:6px 6px 0 0;font-size:13px}.galactic-force-group-swatch{width:10px;height:10px;border-radius:50%;flex-shrink:0}.galactic-force-group-name{flex:1;font-size:13px}.galactic-force-group-strength{font-size:12px;font-weight:700;color:#3a4a40;background:#00000012;padding:1px 6px;border-radius:999px}.galactic-force-group-count{font-size:11px;color:#66746d}.galactic-force-list{border:1px solid #dde3da;border-top:none;border-radius:0 0 6px 6px;overflow:hidden}.galactic-force-row{display:grid;grid-template-columns:10px 1fr auto auto auto;align-items:center;gap:8px;width:100%;padding:5px 10px;font-size:12px;text-align:left;background:#f7f8f4;border:none;border-top:1px solid #edf0e9;cursor:pointer;transition:background .1s}.galactic-force-row:first-child{border-top:none}.galactic-force-row:hover{background:#edf0e9}.galactic-force-type-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.galactic-force-type-dot.ground{border-radius:2px}.galactic-force-name{font-weight:600;color:#2a3830;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.galactic-force-meta{font-size:11px;color:#66746d;white-space:nowrap}.galactic-force-strength{font-size:11px;font-weight:700;color:#3a4a40;white-space:nowrap}.galactic-force-location{font-size:11px;color:#66746d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-modal{width:min(380px,100%)}.auth-tabs{display:flex;gap:4px;border-bottom:1px solid #d4ddd2;padding-bottom:0;margin-bottom:4px}.auth-tabs button{border:none;border-bottom:2px solid transparent;border-radius:0;background:none;padding:6px 10px;font-size:14px;color:#66746d;margin-bottom:-1px}.auth-tabs button.active{color:#17211d;border-bottom-color:#3f7e56}.auth-form{display:grid;gap:12px}.auth-form label{display:grid;gap:4px;font-size:14px;font-weight:500;color:#334038}.auth-form input{padding:7px 10px;border:1px solid #c4cec2;border-radius:6px;background:#fff;font-size:14px;width:100%}.auth-form input:focus{outline:2px solid #3f7e56;outline-offset:-1px}.auth-error{background:#fce8e8;border:1px solid #e8b4b4;border-radius:6px;padding:8px 10px;font-size:13px;color:#8b2020}.auth-submit{background:#3f7e56;color:#fff;border-color:#2f6040;padding:9px 14px;font-weight:600;justify-content:center}.auth-submit:hover:not(:disabled){background:#2f6040}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:8px;color:#6b7280;font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-top:1px solid #374151}.auth-google-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:9px 14px;border:1px solid #374151;border-radius:4px;background:#1f2937;color:#e5e7eb;font-size:13px;font-weight:500;text-decoration:none;cursor:pointer;transition:background .15s}.auth-google-btn:hover{background:#374151}.onboarding-modal{max-width:520px;width:100%}.onboarding-intro{font-size:13px;color:#374151;margin:0 0 16px;line-height:1.6}.onboarding-steps{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.onboarding-step{display:flex;gap:12px;align-items:flex-start}.onboarding-num{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:#3f7e56;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px}.onboarding-step div{display:flex;flex-direction:column;gap:2px}.onboarding-step strong{font-size:13px;color:#17211d}.onboarding-step span{font-size:12px;color:#4b5563;line-height:1.5}.onboarding-section-heading{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#6b7280;margin-bottom:6px}.help-table{width:100%;border-collapse:collapse;font-size:12.5px;margin-bottom:4px}.help-table td{padding:4px 8px;border-bottom:1px solid #e8ede7;vertical-align:top}.help-table td:first-child{white-space:nowrap;color:#374151;font-weight:500;width:44%}.help-table tr:last-child td{border-bottom:none}.onboarding-tip{font-size:12px;color:#4b5563;background:#f1f5ef;border:1px solid #cbd6cc;border-radius:6px;padding:8px 12px;margin-bottom:16px;line-height:1.5}.onboarding-footer{display:flex;justify-content:flex-end}.onboarding-start{background:#3f7e56;color:#fff;border-color:#2f6040;padding:8px 18px;font-size:13px;font-weight:600}.onboarding-start:hover{background:#2f6040}.mp-modal{width:min(620px,100%);max-height:84vh;overflow:hidden;display:flex;flex-direction:column}.mp-user{font-size:14px;color:#334038;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mp-user-email{color:#66746d;font-size:12px}.mp-section{display:grid;gap:12px}.mp-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:3px;border:1px solid #d4ddd2;border-radius:6px;background:#eef3ec}.mp-tabs button{min-width:0;justify-content:center;padding:6px 4px;border:0;border-radius:4px;background:transparent;color:#4a6654;font-size:12px;font-weight:600}.mp-tabs button.active{background:#fff;color:#17211d;box-shadow:0 1px 3px #17211d1f}.mp-tab-panel{overflow-y:auto;padding-right:2px;min-height:0}.mp-tab-stack{display:grid;gap:12px}.mp-current-meta{display:flex;flex-wrap:wrap;gap:6px 12px;color:#66746d;font-size:12px}.mp-transfer-section{border-top:1px solid #d4ddd2;padding-top:12px}.mp-source-card{display:grid;gap:2px;padding:10px;border:1px solid #d4ddd2;border-radius:6px;background:#f0f5ef;font-size:13px}.mp-source-card strong{color:#17211d}.mp-source-card span{color:#66746d;font-size:12px}.mp-source-card.remote{border-color:#9fcca8;background:#edf7ef}.danger-soft{border-color:#d6a0a0;color:#8a2d2d;background:#fff7f5}.danger-soft:hover{background:#8a2d2d;border-color:#8a2d2d;color:#fff}.mp-backup-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.mp-backup-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:8px;border:1px solid #d4ddd2;border-radius:6px;background:#fbfdf9}.mp-backup-item div{display:grid;gap:2px;min-width:0}.mp-backup-item strong{font-size:13px;overflow-wrap:anywhere}.mp-backup-item span{color:#66746d;font-size:12px}.mp-status-row{display:flex;align-items:center;gap:8px;font-size:14px}.mp-dot{width:8px;height:8px;border-radius:50%;background:#66a679;flex-shrink:0}.mp-workspace-id{font-family:monospace;font-size:12px;color:#66746d;margin-left:auto}.mp-description{margin:0;font-size:14px;color:#334038;line-height:1.5}.mp-primary{background:#3f7e56;color:#fff;border-color:#2f6040;padding:9px 14px;font-weight:600;justify-content:center}.mp-primary:hover:not(:disabled){background:#2f6040}.mp-primary:disabled{opacity:.6;cursor:not-allowed}.mp-divider{text-align:center;font-size:12px;color:#8a9e91;position:relative;padding:0 4px}.mp-divider:before,.mp-divider:after{content:"";position:absolute;top:50%;width:28%;height:1px;background:#d4ddd2}.mp-divider:before{left:0}.mp-divider:after{right:0}.mp-join-row{display:flex;gap:8px}.mp-join-row input{flex:1;padding:7px 10px;border:1px solid #c4cec2;border-radius:6px;background:#fff;font-size:14px}.mp-invite{display:grid;gap:6px;background:#f0f5ef;border:1px solid #d4ddd2;border-radius:6px;padding:10px}.mp-invite-label{font-size:12px;font-weight:600;color:#4a6654;display:flex;align-items:center;gap:5px}.mp-invite-url{font-size:11px;font-family:monospace;color:#334038;word-break:break-all;background:#fff;border:1px solid #d4ddd2;border-radius:4px;padding:5px 8px}.mp-copy{font-size:12px;align-self:start;padding:4px 9px}.mp-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.mp-code-row input{min-width:0;padding:6px 8px;border:1px solid #d4ddd2;border-radius:4px;background:#fff;color:#334038;font-family:monospace;font-size:12px}.mp-presence-strip{display:flex;align-items:center;gap:4px;padding:0 4px}.mp-presence-pip{display:inline-block;width:14px;height:14px;border-radius:50%;border:1.5px solid rgba(0,0,0,.2);cursor:default;flex-shrink:0}.mp-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#66746d}.mp-section-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.mp-section-header button{font-size:12px;padding:4px 9px}.mp-color-dot{display:inline-block;width:12px;height:12px;border-radius:50%;flex-shrink:0;border:1.5px solid rgba(0,0,0,.15)}.mp-palette{display:flex;gap:8px;flex-wrap:wrap}.mp-swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .1s,border-color .1s;outline:none}.mp-swatch:hover:not(:disabled){transform:scale(1.15)}.mp-swatch.selected{border-color:#334038;transform:scale(1.1)}.mp-swatch:disabled{opacity:.5;cursor:not-allowed}.mp-ws-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.mp-ws-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:8px;font-size:13px;padding:5px 8px;border-radius:5px;background:#f0f4ee}.mp-ws-item.current{background:#e4ede0;border-left:3px solid #5a9a5a}.mp-ws-main{min-width:0;display:grid;gap:2px}.mp-ws-name{font-weight:500;color:#334038;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-ws-meta{min-width:0;color:#66746d;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-ws-role{font-size:10px;font-weight:700;padding:1px 5px;border-radius:3px;letter-spacing:.04em;flex-shrink:0}.mp-ws-role.gm{background:#d0ecd0;color:#2a6a2a}.mp-ws-role.player{background:#d0dced;color:#2a3a6a}.mp-ws-active{font-size:11px;font-weight:600;color:#5a9a5a;flex-shrink:0}.mp-ws-switch{font-size:11px;padding:2px 8px;border-radius:4px;border:1px solid #8ab48a;background:none;color:#4a7a4a;cursor:pointer;flex-shrink:0}.mp-ws-switch:hover{background:#d8edd8}.mp-member-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.mp-member-item{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:7px 8px;border:1px solid #d4ddd2;border-radius:6px;background:#fbfdf9}.mp-member-item.online{border-color:#a8cfaf;background:#f5fbf5}.mp-online-dot{width:8px;height:8px;border-radius:50%;background:#b8c1bb;box-shadow:inset 0 0 0 1px #00000014}.mp-member-item.online .mp-online-dot{background:#3f9d5a}.mp-member-main{display:grid;gap:1px;min-width:0}.mp-member-main strong{color:#334038;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-member-main span{color:#66746d;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-activity-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.mp-activity-item{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;padding:8px;border:1px solid #d4ddd2;border-radius:6px;background:#fbfdf9}.mp-activity-main{display:grid;gap:2px;min-width:0}.mp-activity-main strong{color:#334038;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-activity-main span{color:#66746d;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-role-action{font-size:11px;padding:3px 7px;border-radius:4px;flex-shrink:0}.mp-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border-top:1px solid #d4ddd2;padding-top:10px}.mp-footer .mp-user{min-width:0}.mp-logout{border-color:#d6a0a0;color:#8a2d2d;background:#fff7f5;font-weight:600}.mp-logout:hover{background:#8a2d2d;border-color:#8a2d2d;color:#fff}@media(max-width:560px){.mp-ws-item,.mp-member-item,.mp-backup-item{grid-template-columns:minmax(0,1fr);align-items:stretch}.mp-member-item{grid-template-columns:auto auto minmax(0,1fr)}.mp-member-item .mp-ws-role,.mp-member-item .mp-role-action{grid-column:1 / -1;justify-self:start}.mp-footer{grid-template-columns:minmax(0,1fr)}.mp-logout{justify-self:start}}.mp-toolbar-btn{position:relative;gap:6px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-toolbar-btn.online{background:#edf7ef;border-color:#9fcca8}.mp-toolbar-btn .mp-dot{width:7px;height:7px;background:#3f7e56;display:inline-block;border-radius:50%;flex-shrink:0}.mp-toolbar-btn .mp-dot.connected{background:#3f7e56}.mp-toolbar-btn .mp-dot.connecting{background:#d4890a}.mp-toolbar-btn .mp-dot.error{background:#c0392b}.mp-role-badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.04em;padding:1px 4px;border-radius:3px;background:#d0e8d8;color:#2d6a42;line-height:1.4;vertical-align:middle;flex-shrink:0}.mp-role-gm{background:#2a4a3a;color:#7ad8a0}.mp-role-admin{background:#3a2a1a;color:#e0a060;border:1px solid #6a4a2a}.admin-modal{width:min(560px,100%);max-height:80vh;display:flex;flex-direction:column;background:#111c11;border-color:#2a3f2a;color:#c4d8c4}.admin-modal .modal-heading{border-bottom:1px solid #2a3f2a;padding-bottom:10px;color:#c4d8c4}.admin-modal .modal-heading button{color:#7a9a7a}.admin-modal .modal-heading button:hover{color:#c4d8c4}.admin-loading{padding:24px;text-align:center;color:#6a8a6a}.admin-workspace-list{overflow-y:auto;padding:12px 16px 16px;display:flex;flex-direction:column;gap:10px}.admin-list-header{font-size:11px;color:#6a8a6a;font-weight:600;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:8px;margin-bottom:2px}.admin-refresh{background:none;border:none;color:#6a8a6a;padding:2px;cursor:pointer;display:flex;align-items:center}.admin-refresh:hover{color:#b4d0aa}.admin-ws-card{background:#192419;border:1px solid #2a3f2a;border-left:3px solid #2a3f2a;border-radius:6px;padding:11px 12px;display:flex;flex-direction:column;gap:7px;color:#c4d8c4}.admin-ws-card.current{border-left-color:#5ac87a;background:#1a2e1a}.admin-ws-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.admin-ws-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:#c4d8c4}.admin-ws-title strong{color:#dff0df;font-weight:600}.admin-ws-current{font-size:10px;font-weight:700;padding:2px 7px;border-radius:3px;background:#1e5a2e;color:#5ac87a;border:1px solid #3a8a5a;letter-spacing:.05em;text-transform:uppercase}.admin-ws-id{font-size:11px;color:#4a6a4a;font-family:monospace}.admin-ws-date{font-size:11px;color:#4a6a4a}.admin-ws-actions{display:flex;gap:6px;flex-shrink:0}.admin-btn-sm{font-size:11px;padding:3px 8px;border-radius:4px;border:1px solid #3a5a3a;background:#192419;color:#8ab88a;cursor:pointer;display:flex;align-items:center;gap:4px}.admin-btn-sm:hover:not(:disabled){background:#243824;color:#b4d0aa}.admin-btn-sm:disabled{opacity:.4;cursor:default}.admin-btn-sm.danger{border-color:#5a2a2a;color:#c08080}.admin-btn-sm.danger:hover:not(:disabled){background:#2e1a1a;color:#e09090}.admin-btn-sm.danger.confirm{background:#4a1a1a;border-color:#8a3a3a;color:#f09090}.admin-ws-stats{font-size:12px;color:#6a8a6a}.admin-ws-size{color:#8ab8a8}.admin-cleanup-badge{color:#5ac87a;font-style:italic}.admin-members{display:flex;flex-direction:column;gap:4px;border-top:1px solid #223022;padding-top:7px;margin-top:2px}.admin-member-row{display:flex;align-items:center;gap:8px;font-size:12px}.admin-role-badge{font-size:10px;font-weight:700;padding:1px 5px;border-radius:3px;letter-spacing:.04em;flex-shrink:0}.admin-role-badge.gm{background:#1e3a1e;color:#6ac87a}.admin-role-badge.player{background:#1e2a3a;color:#6aaac8}.admin-member-name{font-weight:500;color:#b4c8b4}.admin-member-email{color:#4a6a4a;font-size:11px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-kick{margin-left:auto;background:none;border:none;color:#5a3a3a;padding:2px 4px;cursor:pointer;display:flex;align-items:center;border-radius:3px;flex-shrink:0}.admin-kick:hover:not(:disabled){color:#d08080;background:#2e1a1a}.admin-kick:disabled{opacity:.3}.admin-promote,.admin-demote{background:none;border:1px solid #2a4a2a;color:#7ab87a;border-radius:3px;padding:2px 6px;font-size:11px;cursor:pointer;display:flex;align-items:center;gap:3px;flex-shrink:0}.admin-promote:hover:not(:disabled){background:#1a2e1a;color:#9ad89a}.admin-demote{color:#a0a0a0;border-color:#3a3a3a}.admin-demote:hover:not(:disabled){background:#252525;color:silver}.admin-promote:disabled,.admin-demote:disabled{opacity:.3}.explorer-mode .sector-title{pointer-events:none}.explorer-mode .workspace{grid-template-columns:minmax(0,1fr)}.explorer-mode .left-panel,.explorer-mode .detail-panel,.explorer-mode .planet-info-panel{display:none}.explorer-mode .map-panel{grid-column:1}.explorer-toggle{display:flex;align-items:center;gap:4px;font-size:13px;padding:3px 8px;border-radius:4px;border:1px solid #2a4a2a;background:none;color:#8ab88a;cursor:pointer}.explorer-toggle:hover{background:#1a2e1a}.explorer-toggle.active{background:#1a3a1a;border-color:#5ac87a;color:#c4f0c4}.view-mode-group{display:flex;align-items:center}.view-mode-group button{display:flex;align-items:center;gap:4px;font-size:13px;padding:3px 8px;border:1px solid #2a4a2a;background:none;color:#8ab88a;cursor:pointer;border-radius:0}.view-mode-group button:first-child{border-radius:4px 0 0 4px}.view-mode-group button:last-child{border-radius:0 4px 4px 0}.view-mode-group button+button{border-left:none}.view-mode-group button:hover{background:#1a2e1a}.view-mode-group button.active{background:#1a3a1a;border-color:#5ac87a;color:#c4f0c4}.view-mode-group button.active+button{border-left:1px solid #2a4a2a}.save-draft-btn{display:flex;align-items:center;gap:5px;padding:5px 10px;background:#1a3a1a;border:1px solid #5ac87a;border-radius:4px;color:#c4f0c4;font-size:12px;cursor:pointer;width:100%;justify-content:center}.save-draft-btn:hover{background:#204a20}
