.fleet-builder{position:fixed;inset:0;z-index:1000;background:rgba(3,8,15,.96);overflow:auto;color:var(--text,#e9eff6);font-family:Barlow,Segoe UI,sans-serif}.fleet-builder[hidden]{display:none}.fb-shell{max-width:1500px;min-height:100%;margin:auto;background:#0b1420;display:flex;flex-direction:column}.fb-header{padding:26px 30px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-bottom:1px solid #283747}.fb-header h1{font-size:38px}.fb-header p:last-child{color:#a0afbf;margin-top:7px}.fb-settings{display:grid;grid-template-columns:2fr 1.5fr 1fr 1fr;gap:16px;padding:18px 30px;background:#101e2d}.fleet-builder label{display:flex;flex-direction:column;gap:7px;font-size:13px;color:#b8c6d4}.fleet-builder input:not([type=checkbox]):not([type=radio]):not([type=file]),.fleet-builder select{width:100%;padding:10px 11px;min-height:42px;background:#0a1522;color:#edf5fc;border:1px solid #35475c;border-radius:5px;font:inherit;font-size:14px}.fleet-builder input[type=checkbox],.fleet-builder input[type=radio]{accent-color:#d9b879}.fb-tabs{display:flex;padding:16px 30px 0;gap:12px;background:#101e2d}.fb-tabs button{flex:1;padding:15px 18px;text-align:left;background:#101e2d;border-bottom:3px solid transparent}.fb-tabs button.active{border-bottom-color:#d9b879;background:#1c3045}.fb-tabs strong{float:right;font-size:14px;color:#d9b879}.fb-body{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:24px;padding:24px 30px;flex:1}.fb-player{display:grid;grid-template-columns:1fr 1.6fr auto;gap:12px;align-items:end;margin-bottom:16px}.fb-player button{height:42px}.fb-source{border:1px solid #2b3c4e;border-radius:5px;padding:10px 12px;margin:12px 0;background:#101c2a}.fleet-builder summary{cursor:pointer}.fb-source summary{font-size:13px;color:#c8d6e5}.fb-source pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.55 Barlow,Segoe UI,sans-serif;color:#b8c6d4;max-height:330px;overflow:auto;margin:14px 0 0}.fb-source p,.fb-help{font-size:12px;color:#9bafc3;line-height:1.5;margin:9px 0}.fb-group{border:1px solid #344559;margin:14px 0;border-radius:6px;background:#0f1b29}.fb-group>summary{display:flex;justify-content:space-between;gap:16px;padding:15px 17px;background:#16273a;font-weight:600;border-radius:5px}.fb-group>summary>span:last-child{font-size:13px;color:#a8bacd;text-align:right}.fb-group-content{padding:16px}.fb-fields{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.fb-fields>label{flex:1;min-width:130px}.fb-fields .fb-check{flex:0 0 auto;display:flex;flex-direction:row;align-items:center;padding:11px 0;min-width:100px;white-space:nowrap}.fb-remove{font-size:12px;color:#f4b1b1;background:transparent;padding:11px;min-height:40px;align-self:end}.fb-commander{border:1px solid #3c4150;border-left:3px solid #a99162;border-radius:4px;padding:13px;margin:14px 0;background:#171f2b}.fb-statline{font-size:12px;color:#c9bb97;margin:10px 0;line-height:1.6}.fb-ships{display:grid;gap:8px}.fb-ship{background:#0a1522;border:1px solid #23374a;border-radius:4px}.fb-ship>summary{padding:12px;display:flex;justify-content:space-between;gap:12px;font-size:14px}.fb-ship>summary>span:last-child{font-size:12px;color:#9bb0c5;white-space:nowrap}.fb-ship-icon{color:#6acde9;margin-right:8px}.fb-ship-content{padding:0 14px 14px}.fb-add-ship{margin-top:14px}.fb-loadout{margin:14px 0 0;padding-top:12px;border-top:1px solid #283747}.fb-loadout h4{margin:0 0 8px;font-size:14px}.fb-loadout h4 small{color:#9bafc3;font-size:11px;font-weight:400}.fb-loadout-row{flex-direction:row!important;justify-content:space-between;align-items:center;padding:6px 0}.fb-loadout-row small{display:inline-block;margin-left:7px;font-size:11px;color:#7f97af}.fb-loadout-row input{width:75px!important;min-height:34px!important;padding:7px!important}.fb-trait-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.fb-trait-grid label{flex-direction:row;align-items:flex-start;border:1px solid #2b3c4e;padding:10px;border-radius:4px}.fb-trait-grid input{margin-top:3px}.fb-trait-grid strong{font-size:12px;display:block;color:#d7e4f0}.fb-trait-grid small{display:block;font-size:11px;line-height:1.5;margin-top:5px;color:#8fa6bb}.fb-commands{margin:18px 0;padding:15px;border:1px solid #344559;border-radius:5px}.fb-commands p{font-size:12px;color:#91a6bb;margin:12px 0}.fb-checks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.fb-checks label{flex-direction:row;align-items:center}.fb-validation{align-self:start;position:sticky;top:20px;padding:18px;background:#121f2f;border:1px solid #344559;border-radius:6px}.fb-validation h2{margin-bottom:9px}.fb-validation li{font-size:12px;line-height:1.5;margin-bottom:9px;color:#f0b4a5}.fb-validation ul{padding-left:16px;margin:14px 0}.fb-validation details{font-size:12px;color:#99afc5;margin-top:16px}.fb-validation details li{color:#a9bdce}.fb-validation details p{line-height:1.6}.fb-ready{color:#91d1a8}.fb-totals{display:grid;gap:14px;margin-top:20px;border-top:1px solid #344559;padding-top:15px}.fb-totals>div{display:grid;grid-template-columns:1fr auto;gap:5px}.fb-totals span{font-size:13px}.fb-totals strong{color:#d9b879}.fb-totals small{font-size:11px;color:#91a6bb;grid-column:1/-1}.fb-footer{display:flex;position:sticky;bottom:0;justify-content:space-between;gap:20px;padding:18px 30px;background:#111f2ff2;backdrop-filter:blur(12px);border-top:1px solid #3b4a5e;z-index:2}.fb-footer>div{display:flex;gap:9px;flex-wrap:wrap}.fb-deploy{background:#d9b879!important;color:#0c1721!important;border-color:#e2c78f!important;padding:12px 26px!important}.fb-message{margin-top:12px;font-size:12px;padding:10px;background:#273546;border-radius:4px;line-height:1.5;overflow-wrap:anywhere}@media(max-width:1000px){.fb-body{grid-template-columns:minmax(0,1fr)}.fb-validation{position:static;order:-1}.fb-validation ul{max-height:180px;overflow:auto}.fb-totals{grid-template-columns:1fr 1fr}.fb-settings{grid-template-columns:1fr 1fr}.fb-trait-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.fb-header,.fb-settings,.fb-tabs,.fb-body,.fb-footer{padding-left:14px;padding-right:14px}.fb-header h1{font-size:31px}.fb-player{grid-template-columns:1fr}.fb-trait-grid,.fb-checks{grid-template-columns:1fr}.fb-tabs button{font-size:13px;padding:12px}.fb-tabs strong{float:none;display:block;margin-top:6px}.fb-group>summary,.fb-ship>summary{flex-direction:column;gap:5px}.fb-group>summary>span:last-child{text-align:left}.fb-footer{align-items:stretch;flex-direction:column;gap:12px}.fb-footer button{font-size:12px}.fb-footer>div{justify-content:space-between}.fb-fields>label{min-width:120px}.fb-group-content{padding:12px}}

.fb-campaign-carry{padding:1rem 2rem;border-bottom:1px solid #2c4050;background:#142330}.fb-campaign-carry h2{font-size:1rem;margin:0 0 .6rem}.fb-campaign-carry p{color:#b3c3cc;font-size:.85rem}
.fb-fleet-preview .fb-preview-group>svg{max-height:none}.fb-loaded-wing .bf-craft-dot{fill:#79d6ed!important}.fb-team-1 .fb-loaded-wing .bf-craft-dot{fill:#ffb467!important}
.fb-loaded-wing.fb-loaded-mine{color:var(--fb-mine-colour,var(--fb-team));gap:7px}.fb-loaded-wing>.fb-loaded-mine-icon{width:25px;height:25px;overflow:visible;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.fb-loaded-mine-icon circle{fill:currentColor;stroke:#091721;stroke-width:1}
.fb-fleet-preview{--fb-team:#65cee6;--fb-team-fill:#123243}.fb-fleet-preview.fb-team-1{--fb-team:#ffb36b;--fb-team-fill:#3c2a1d}.fleet-builder .fb-preview-toggle{flex-direction:row;align-items:center;margin:10px 0 16px}.fb-token-base{fill:var(--fb-team-fill);stroke:var(--fb-team);stroke-width:.035}.fb-token-letter{fill:#effbff;font-size:.29px;font-weight:700}.fb-token-forward{stroke:#effbff;fill:none;stroke-width:.04}.fb-token-name{fill:#dbeef6;font-size:8px}.fb-token-stats{fill:#aad4e5;font-size:8px}.fb-loaded-craft{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 10px;border-top:1px solid #294455;padding-top:8px}.fb-loaded-wing{display:flex;align-items:center;gap:5px;font-size:10px}.fb-loaded-wing>svg{width:45px;height:30px;flex:none;overflow:visible}.fb-loaded-wing .bf-craft-dot{fill:var(--fb-team);stroke:none}.fb-loaded-wing small{display:block;font-size:9px}.fb-preview-group>svg{max-height:none}
.fb-fleet-preview{margin:18px 0;padding:16px;border:1px solid #294455;border-radius:6px;background-color:#091721;background-image:linear-gradient(#29445522 1px,transparent 1px),linear-gradient(90deg,#29445522 1px,transparent 1px);background-size:24px 24px}.fb-fleet-preview header h2{font-size:18px;margin:0 0 6px}.fb-fleet-preview header p{font-size:12px;color:#a9c1d0;margin:0 0 14px}.fb-preview-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),340px));gap:12px;align-items:start}.fb-preview-group{min-width:0;display:flex;flex-direction:column;align-items:stretch;border:1px solid #294455!important;background:#0b1b26bb!important;padding:12px!important;color:#d9edf5;text-align:left;border-radius:6px}.fb-preview-group:hover{border-color:#65cee6!important}.fb-preview-group>svg{display:block;width:100%;max-height:none}.fb-preview-name{font-size:12px;font-weight:600;display:block}.fb-preview-group small{font-size:11px;color:#9bb6c5}.fb-ship-source{display:flex;gap:8px;margin-top:18px}.fb-ship-source button[aria-pressed=true]{background:#234557;border-color:#65cee6;color:#e0f7ff}
@media(max-width:600px){.fb-preview-groups{grid-template-columns:minmax(0,1fr)}}
.fleet-builder.online-fleet-builder{position:relative;inset:auto;z-index:auto;overflow:visible}.online-fleet-builder .fb-shell{min-height:0}

.fleet-builder .fb-no-art{color:#ff7777}.fb-art-legend{padding:10px 12px;border:1px solid #344559;border-radius:5px}.fb-player{grid-template-columns:1fr 1.6fr minmax(100px,.6fr) auto}.fleet-builder input[type=color]{cursor:pointer;padding:4px;min-width:80px}.fb-fleet-preview .fb-loaded-wing .bf-craft-dot{fill:var(--fb-team)!important}@media(max-width:700px){.fb-player{grid-template-columns:1fr 1fr}}@media(max-width:600px){.fb-player{grid-template-columns:1fr}}
.fb-preview-ship .bf-token-has-art .fb-token-base{stroke-opacity:.15;stroke-width:.025}
.fb-faction-guide{grid-column:1/-1;display:grid;gap:4px;margin-top:2px;padding:11px 13px;border:1px solid #315267;border-left:3px solid #70bcd4;border-radius:5px;background:#102331;color:#b8cedb;font-size:12px;line-height:1.45}
.fb-faction-guide strong{color:#e1f3fa;font-size:13px;font-weight:600}
.fb-faction-guide b{color:#91d8eb;font-weight:600}

.fb-scenario-preview{margin:18px 30px;padding:18px;border:1px solid #315267;border-radius:7px;background:#0c1a29}.fb-scenario-heading{display:flex;justify-content:space-between;gap:15px;align-items:start}.fb-scenario-heading h2{font-size:18px;margin:0 0 4px;color:#e3f4fa}.fb-scenario-heading p{font-size:12px;line-height:1.45;color:#a8bfd0;margin:0 0 14px}.fb-scenario-heading>span{font-size:11px;color:#9cb8c9;white-space:nowrap}.fb-scenario-content{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:18px;align-items:start}.fb-scenario-content svg{width:100%;height:auto;display:block;background:#07131f;border:1px solid #30475b;border-radius:4px}.fb-scenario-board{fill:#0d2534;stroke:#8ca6b7;stroke-width:.25}.fb-scenario-edge{fill:currentColor;fill-opacity:.15;stroke:currentColor;stroke-opacity:.68;stroke-width:.22}.fb-scenario-attacker{color:#ecad69}.fb-scenario-defender{color:#75cee0}.fb-scenario-zone{fill:currentColor;fill-opacity:.1;stroke:currentColor;stroke-width:.24}.fb-scenario-vanguard{stroke-dasharray:.8 .55;stroke-width:.33}.fb-scenario-terrain{fill:#856fa2;fill-opacity:.23;stroke:#b8a4d2;stroke-width:.3;stroke-dasharray:.6 .5}.fb-scenario-planet{fill:#506c80;fill-opacity:.38;stroke:#9db6c5;stroke-width:.32}.fb-scenario-blocking{fill:#6985a0;fill-opacity:.52}.fb-scenario-link{stroke:#d9b879;stroke-width:.25;stroke-dasharray:.65 .5}.fb-scenario-marker circle{fill:#263d4b;stroke:#e4bb75;stroke-width:.4}.fb-scenario-marker text{fill:#fff1d4;font-size:2.35px;font-weight:700}.fb-scenario-node circle{stroke:#7ce1ec}.fb-scenario-relic circle{stroke:#cbabed}.fb-scenario-cargo circle{stroke:#b7df9b}.fb-scenario-moving circle{stroke-dasharray:.8 .4;stroke-width:.55}.fb-scenario-key{font-size:12px;color:#b9cbd6}.fb-scenario-key p{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 10px}.fb-scenario-swatch{width:13px;height:9px;border:1px solid currentColor;background:currentColor;opacity:.72;display:inline-block;margin-left:8px}.fb-scenario-swatch:first-child{margin-left:0}.fb-scenario-swatch.fb-scenario-vanguard{background:transparent;border-style:dashed;color:#d2dce3}.fb-scenario-key ol{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:5px}.fb-scenario-key li{display:grid;grid-template-columns:19px minmax(0,1fr) auto;gap:7px;align-items:start}.fb-scenario-index{border:1px solid #d9b879;border-radius:50%;font-size:10px;line-height:17px;text-align:center;color:#f3d6a7}.fb-scenario-key strong{color:#e5c48d;font-weight:600;white-space:nowrap}.fb-scenario-key small{display:block;line-height:1.5;color:#91adbf}@media(max-width:800px){.fb-scenario-content{grid-template-columns:1fr}.fb-scenario-key ol{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.fb-scenario-preview{margin:12px 14px;padding:13px}.fb-scenario-heading{display:block}.fb-scenario-heading>span{display:block;margin-bottom:10px}.fb-scenario-key ol{grid-template-columns:1fr}}
