@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{color:#d9e8e6;background:#071218;font-family:Space Grotesk,system-ui,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top right,#102d32,transparent 35%),#071218}a{color:inherit;text-decoration:none}.app-header,main,footer,.dataset-bar-inner{width:min(1120px,calc(100% - 40px));margin:auto}.dataset-bar{border-bottom:1px solid #17373b;background:#081a20}.dataset-bar-inner{display:flex;min-height:36px;align-items:center;justify-content:space-between;gap:14px}.dataset-info{display:flex;flex-wrap:wrap;gap:14px;color:#638b8a;font:10px IBM Plex Mono;letter-spacing:.05em;text-transform:uppercase}.dataset-info strong{color:#9fc5c2;font-weight:500}.dataset-select{display:flex;align-items:center;gap:8px;color:#71dacc;font:10px IBM Plex Mono;letter-spacing:.1em;text-transform:uppercase}.dataset-select select{min-width:170px;min-height:28px;padding:0 8px;font-size:11px}.dataset-select select:disabled{color:#8eb0ae;cursor:not-allowed;opacity:.8}.app-header{min-height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1c4245}.brand{display:flex;gap:10px;align-items:center;letter-spacing:.04em}.brand small{display:block;color:#719291;font:11px IBM Plex Mono;text-transform:uppercase}.brand-mark{display:grid;width:34px;height:34px;place-items:center;border:1px solid #6bd7cb;color:#6bd7cb;font:600 18px IBM Plex Mono;transform:rotate(45deg)}.brand-mark:first-letter{transform:rotate(-45deg)}.main-nav{display:grid;gap:7px;justify-items:end}.nav-group{display:grid;grid-template-columns:104px repeat(3,42px);align-items:center;gap:6px}.nav-group>span{color:#4f7776;font:600 10px IBM Plex Mono;letter-spacing:.12em;text-align:right;text-transform:uppercase}.main-nav a{display:grid;min-height:30px;place-items:center;border:1px solid #28565a;color:#8eb0ae;border-radius:4px;font:600 10px IBM Plex Mono;text-transform:uppercase}.main-nav a:hover,.main-nav a.router-link-active{color:#87f2df;background:#113034}main{min-height:calc(100vh - 140px);padding:64px 0}h1{margin:4px 0;color:#efffff;font-size:clamp(36px,6vw,58px);letter-spacing:-.07em}h2{margin:0;color:#efffff;font-size:22px}h3{margin-top:28px;color:#9fc5c2;font-size:13px;letter-spacing:.1em;text-transform:uppercase}.intro{max-width:540px;margin:0 0 36px;color:#8ca7a6}.eyebrow,.tag,.field span,footer{color:#71dacc;font:600 11px IBM Plex Mono;letter-spacing:.12em;text-transform:uppercase}.field{display:flex;flex-direction:column;gap:7px}input,select,button{min-height:42px;border:1px solid #28565a;border-radius:3px;color:#dcf2ef;background:#0b2026;padding:0 12px;font:14px IBM Plex Mono}select{min-width:0}.field select,.field input{width:100%;min-width:0}button{align-self:end;border-color:#69cbbf;color:#062023;background:#69cbbf;cursor:pointer;font-weight:600}button:hover{background:#8ceadd}.panel{margin-top:24px;padding:22px;border:1px solid #21464b;border-radius:4px;background:#0b1d23cc;box-shadow:0 12px 32px #0003}.panel-title{display:flex;align-items:start;justify-content:space-between;gap:16px}.tag{padding:5px 7px;border:1px solid #28565a;border-radius:2px;color:#82cdc5}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;margin:24px 0;background:#21464b}.stat-grid div{padding:15px;background:#0d252b}.stat-grid .highlighted,.rs-table .highlighted{background:#17474a;box-shadow:inset 0 0 0 1px #71dacc}.stat-grid dt{color:#749492;font:11px IBM Plex Mono;text-transform:uppercase}.stat-grid dd{margin:8px 0 0;color:#e6fffb;font:500 16px IBM Plex Mono}.level-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:12px}.level-bar span{height:4px;border:1px solid #31575a;background:#132d32}.level-bar span.active{border-color:#60c8bd;background:#71dacc;box-shadow:0 0 8px #71dacc55}.chip-list,.bonus-list{display:flex;flex-wrap:wrap;gap:8px}.chip,.bonus-list span{padding:7px 9px;border:1px solid #28565a;color:#badbd8;font:12px IBM Plex Mono}.chip small{color:#6f9a98}.resource-list{margin-top:12px}.resource-row{display:grid;grid-template-columns:1fr 160px 160px;gap:16px;padding:13px 4px;border-top:1px solid #1c4146;color:#83a8a5;font:13px IBM Plex Mono}.resource-row strong{color:#d7f2ee}.rs-table{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;background:#21464b}.rs-table div{display:flex;flex-direction:column;gap:5px;padding:10px;background:#0d252b;font:12px IBM Plex Mono}.rs-table span{color:#749492;text-transform:uppercase}.rs-table strong{color:#d7f2ee}.scan-result{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 0;color:#91b9b6;font:13px IBM Plex Mono}.scan-result strong{color:#dffffa}.scan-result span{color:#71dacc}.search-bar,.filter-bar{display:flex;flex-wrap:wrap;align-items:end;gap:14px}.location-search{max-width:340px}.location-layout{display:grid;grid-template-columns:minmax(260px,330px) 1fr;gap:20px;margin-top:24px;align-items:start}.location-directory{display:flex;flex-direction:column;gap:18px}.system-group{overflow:hidden;border:1px solid #21464b;border-radius:4px;background:#0b1d23cc}.system-title{display:flex;width:100%;min-height:0;gap:12px;align-items:center;padding:15px;border:0;border-bottom:1px solid #21464b;border-radius:0;color:inherit;background:#0e282e;text-align:left;cursor:pointer}.system-title:hover{background:#123137}.system-title h2{font-size:20px}.system-title .eyebrow{margin:0 0 2px;color:#679b99}.system-dot{width:12px;height:12px;border:2px solid #71dacc;border-radius:50%;box-shadow:0 0 12px #71dacc88}.orbital-group{padding:8px;border-bottom:1px solid #17373b}.orbital-group:last-child{border-bottom:0}.planet-row{display:flex;align-items:center}.planet-row .location-entry{flex:1 1 auto}.collapse-control{display:grid;flex:0 0 30px;width:30px;min-height:30px;place-items:center;border:0;padding:0;color:#71dacc;background:transparent;cursor:pointer}.collapse-control:hover{background:#123137}.collapse-marker{margin-left:auto;color:#71dacc;font:20px/1 IBM Plex Mono;transition:transform .18s ease}.collapse-marker.open{transform:rotate(45deg)}.location-entry{display:flex;position:relative;width:100%;min-height:42px;align-items:center;gap:9px;border:0;border-radius:2px;padding:8px 9px;color:#b8d5d2;background:transparent;text-align:left;font:13px IBM Plex Mono;cursor:pointer}.location-entry:hover{color:#eafffb;background:#123137}.location-entry.selected{color:#efffff;background:#17474a;box-shadow:inset 2px 0 #71dacc}.location-entry span:last-child{display:flex;flex-direction:column;gap:2px}.location-entry small{color:#638b8a;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.orbital-heading{cursor:default}.orbital-heading:hover{color:#b8d5d2;background:transparent}.moon-entry{padding-left:31px}.location-symbol{flex:0 0 auto;border:1px solid #6cbdb6;border-radius:50%}.planet-symbol{width:13px;height:13px;background:#28565a}.moon-symbol{width:8px;height:8px;background:#71dacc}.orbit-line{position:absolute;left:15px;width:12px;height:20px;border-bottom:1px solid #31575a;border-left:1px solid #31575a}.location-details{position:sticky;top:20px;margin-top:0;min-height:260px}.orbit-copy{margin:7px 0 0;color:#739492;font:13px IBM Plex Mono}.profit-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr);gap:20px;align-items:start}.profit-controls{margin-top:0}.profit-controls>.field{margin-top:22px}.profit-number-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.cargo-title{margin-top:24px}.cargo-composition{display:grid;gap:12px;margin-top:14px}.cargo-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,160px) auto;gap:12px;align-items:end}.ghost-button{border-color:#28565a;color:#9fc5c2;background:#0d252b}.ghost-button:hover{color:#eafffb;background:#123137}.add-row-button{justify-self:start}.input-unit{display:flex;position:relative;align-items:center}.input-unit input{width:100%;padding-right:52px}.input-unit small{position:absolute;right:12px;color:#71dacc;font:11px IBM Plex Mono}.mineral-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:7px}.mineral-toggle{display:flex;min-height:54px;flex-direction:column;align-items:start;justify-content:center;gap:4px;border-color:#28565a;padding:8px 10px;color:#badbd8;background:#0d252b;text-align:left;font:13px IBM Plex Mono}.mineral-toggle:hover{color:#eafffb;background:#123137}.mineral-toggle.selected{border-color:#71dacc;color:#efffff;background:#17474a}.mineral-toggle.unavailable{border-color:#aa655c;color:#f2c1b9;background:#382527}.mineral-toggle small{color:#719291;font-size:10px}.profit-summary{background:linear-gradient(135deg,#103337,#0b1d23cc)}.profit-total{display:block;margin-top:8px;color:#9ffff1;font:600 clamp(34px,6vw,52px) "IBM Plex Mono";letter-spacing:-.08em}.profit-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:20px 0 0;background:#21464b}.profit-breakdown div{padding:12px;background:#0d252b}.profit-breakdown dt{color:#749492;font:10px IBM Plex Mono;letter-spacing:.08em;text-transform:uppercase}.profit-breakdown dd{margin:7px 0 0;color:#e6fffb;font:13px IBM Plex Mono}.profit-warning{margin:14px 0 0;color:#d9aaa2;font:12px IBM Plex Mono}.profit-ranking{position:sticky;top:20px;margin-top:0}.ranking-list{margin-top:10px}.ranking-row{display:grid;width:100%;min-height:46px;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;border:0;border-top:1px solid #1c4146;border-radius:0;padding:8px 3px;color:#83a8a5;background:transparent;text-align:left;font:12px IBM Plex Mono;cursor:pointer}.ranking-row:hover{color:#d7f2ee;background:#123137}.ranking-row.selected{color:#dffffa;background:#17474a}.ranking-position{color:#71dacc}.ranking-row strong{color:#d7f2ee}.route-controls{margin-top:0}.route-explanation{max-width:620px;margin:7px 0 0;color:#739492;font:12px IBM Plex Mono}.route-context-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.route-picker,.route-empty{margin-top:20px}.route-results{display:grid;gap:13px;margin-top:20px}.route-card{display:grid;grid-template-columns:42px 1fr;gap:14px;margin-top:0}.route-rank{display:grid;width:34px;height:34px;place-items:center;border:1px solid #28565a;color:#71dacc;background:#0d252b;font:600 15px IBM Plex Mono}.route-card-body{min-width:0}.route-score{display:flex;flex-direction:column;align-items:end;gap:3px}.route-score small{color:#749492;font:10px IBM Plex Mono;letter-spacing:.08em;text-transform:uppercase}.route-score strong{color:#9ffff1;font:600 25px IBM Plex Mono}.route-match-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.route-chip{display:inline-flex;gap:7px;align-items:center}.route-chip.matched{border-color:#3b7977;color:#dffffa;background:#123137}.route-chip.missing{border-color:#714943;color:#d9aaa2;background:#2b2021}.route-chip.complete{border-color:#71dacc;color:#9ffff1}.route-score-detail{margin:18px 0 0;color:#719291;font:11px IBM Plex Mono}.route-score-breakdown{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.route-score-breakdown span{padding:6px 8px;border:1px solid #28565a;color:#9fc5c2;background:#0d252b;font:11px IBM Plex Mono}.route-reasons{margin:14px 0 0;padding-left:18px;color:#9fbebb;font:12px/1.6 IBM Plex Mono}.route-reasons li::marker{color:#71dacc}.advisor-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);gap:20px;align-items:stretch}.advisor-controls{margin-top:0}.head-size-control{display:flex;align-items:center;gap:8px;color:#71dacc;font:600 11px IBM Plex Mono;letter-spacing:.12em;text-transform:uppercase}.head-size-control select{width:130px;min-height:34px;font-size:12px}.advisor-target-grid{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,.75fr);gap:14px;margin-top:14px}.advisor-mineral-card{margin-top:18px;padding:13px;border:1px solid #28565a;background:#0d252b;font:13px IBM Plex Mono}.advisor-mineral-card span{display:block;color:#eafffb;font-weight:600}.advisor-mineral-card small{display:block;margin-top:6px;color:#719291}.advisor-recommendation{margin-top:0}.featured-recommendation{background:linear-gradient(135deg,#103337,#0b1d23cc)}.advisor-recommendation .panel-title p{margin:6px 0 0;color:#739492;font:12px IBM Plex Mono}.advisor-section{margin-top:24px}.advisor-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:14px}.reason-list{margin:18px 0 0;padding-left:18px;color:#a7c9c6;font:13px/1.7 IBM Plex Mono}.reason-list li::marker{color:#71dacc}.advisor-compare{margin-top:24px}.compare-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}.build-compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}.build-card{min-width:0;padding:16px;border:1px solid #28565a;background:#0b2026}.build-card h3,.build-pros-cons h3{margin:0 0 12px;color:#d8fffa;font:600 13px IBM Plex Mono;letter-spacing:.08em;text-transform:uppercase}.build-card .field{margin-top:12px}.build-module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.build-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.build-summary{padding:13px;border:1px solid #1c4146;background:#0d252b}.build-summary span{display:block;color:#719291;font:10px IBM Plex Mono;letter-spacing:.1em;text-transform:uppercase}.build-summary strong{display:block;margin-top:6px;color:#9ffff1;font:600 21px IBM Plex Mono}.build-pros-cons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}.build-pros-cons h3{margin-top:18px}.build-pros-cons h3:first-child{margin-top:0}.build-pros-cons .reason-list{margin-top:8px}.compare-table{width:100%;margin-top:18px;border-collapse:collapse;font:13px IBM Plex Mono}.compare-table th,.compare-table td{border-top:1px solid #1c4146;padding:11px 8px;text-align:left}.compare-table th{color:#71dacc;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.compare-table td{color:#9fbebb}.compare-table .best{color:#eafffb;background:#17474a;box-shadow:inset 2px 0 #71dacc}.equipment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}.equipment-filter-bar{margin-top:30px}.equipment-card{margin-top:16px}.equipment-card p{color:#739492;font:13px IBM Plex Mono}.equipment-card strong{color:#cae8e4}.notice{margin-bottom:18px;padding:14px;border:1px solid #28565a;color:#9cd1cd;background:#0b2026;font:13px IBM Plex Mono}.error{border-color:#8b544c;color:#e8aaa0}.empty{color:#799997}.app-footer{display:flex;min-height:78px;align-items:center;gap:18px;border-top:1px solid #17373b;padding:16px 0;color:#4d7978;font:10px/1.5 IBM Plex Mono;letter-spacing:.03em;text-transform:none}.app-footer div{display:flex;flex-direction:column;flex:0 0 auto;gap:2px}.app-footer strong{color:#71dacc;font-size:12px}.app-footer span{color:#638b8a}.app-footer p{max-width:650px;margin:0}.app-footer a{margin-left:auto;color:#9fc5c2;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}.terms-page{max-width:780px}.terms-panel h2{margin-top:24px}.terms-panel h2:first-child{margin-top:0}.terms-panel p{color:#91aaa8;line-height:1.7}@media(max-width:700px){.dataset-bar-inner{align-items:stretch;flex-direction:column;gap:7px;padding:8px 0}.dataset-select{justify-content:space-between}.app-footer{align-items:start;flex-direction:column;gap:8px}.app-footer a{margin-left:0}.app-header{display:block;padding:20px 0 12px}.main-nav{justify-items:start;margin:18px -6px 0;overflow-x:auto}.nav-group{min-width:max-content}.main-nav a{white-space:nowrap}main{padding:42px 0}.resource-row{grid-template-columns:1fr;gap:5px}.location-layout{grid-template-columns:1fr}.location-details{position:static}.profit-layout{grid-template-columns:1fr}.profit-ranking{position:static}.profit-breakdown,.cargo-row,.route-card,.route-context-grid{grid-template-columns:1fr}.route-match-grid{grid-template-columns:1fr;gap:0}.advisor-layout,.advisor-target-grid,.compare-controls,.build-compare-grid,.build-summary-grid,.build-pros-cons,.build-module-grid{grid-template-columns:1fr}.head-size-control{align-items:stretch;flex-direction:column;gap:6px}.head-size-control select{width:100%}}
