.hb-buildings{position:absolute;inset:0;pointer-events:none;z-index:1}
#harbor-beta-panel .hb-building-layer,#harbor-beta-panel .hb-existing-building{position:absolute;display:block;pointer-events:auto;background:none;border:0;border-radius:0;box-shadow:none;margin:0;padding:0;min-height:0;min-width:0;color:#fff;touch-action:pan-x pan-y pinch-zoom}
.hb-building-layer img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(2px 4px 2px #1c251950);user-select:none}
.hb-building-layer:focus-visible{outline:2px solid #e7d8ab;outline-offset:2px}
.hb-building-site{display:none;position:absolute;left:35%;top:32%;width:30%;aspect-ratio:1;border:1px dashed #e2d3a5aa;border-radius:50%;background:#3d422b66;box-shadow:0 2px 5px #0005;color:#efe3c5;text-shadow:0 1px 2px #000;font:500 clamp(12px,2vw,24px)/1.2 Arial;place-items:center}
.hb-unbuilt img{visibility:hidden}.hb-unbuilt .hb-building-site{display:grid}
.hb-existing-building:hover{background:#fff1!important}.hb-building-layer:hover img{filter:drop-shadow(2px 4px 2px #1c251950) brightness(1.05)}
.ec-dialog{width:min(720px,calc(100vw - 16px));padding:14px 14px 24px}
.ec-header{display:flex;align-items:center;gap:13px;padding-bottom:8px;border-bottom:1px solid #23455b;margin-bottom:10px;position:sticky;top:-14px;z-index:3;background:#041521}
.ec-header h2{font-size:27px;line-height:1.1;letter-spacing:-.4px;flex:1;overflow-wrap:anywhere}
.ec-dialog .sy-back{flex:none}.ec-status:empty{display:none}.ec-status{font-size:14px;color:#a6e2ef!important;margin:8px 0!important}
.ec-center{display:grid;grid-template-columns:78px 1fr auto;align-items:center;width:100%;padding:8px;gap:10px;text-align:left;margin-bottom:12px}
.ec-center img{width:78px;height:49px;object-fit:contain}.ec-center strong{font-size:13px;color:#7cddff}
.ec-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.ec-tabs button{display:flex;flex-direction:column;padding:0 0 5px;overflow:hidden;align-items:stretch;font-size:12px;border-radius:6px!important}
.ec-tabs img{width:100%;aspect-ratio:1.5;object-fit:cover;display:block;margin-bottom:4px}.ec-tabs span{display:grid;place-items:center;min-height:28px;line-height:1.05;padding:0 2px;hyphens:auto}
.ec-dialog [aria-selected=true],.ec-dialog [aria-pressed=true]{border-color:#14c2f7;box-shadow:inset 0 -2px 8px #00c5ff44,0 0 3px #00baff;background:linear-gradient(#104264,#052a43)}
.ec-queue-summary{font-size:13px;color:#a9c5d7!important;margin:12px 0 8px!important}
.ec-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:18px}
.ec-slot{display:flex;align-items:center;flex-direction:column;padding:0 0 7px!important;overflow:hidden;min-height:124px;text-align:center;border:1px solid #31556d;border-radius:8px;font-size:13px;background:#071b29}
.ec-slot img{width:100%;aspect-ratio:1.5;object-fit:cover}.ec-slot strong{display:block;font-size:13px;margin:5px 3px 2px;line-height:1.1;overflow-wrap:anywhere}.ec-slot small{font-size:11px;color:#a9c7d6;line-height:1.2;margin:3px}.ec-slot-symbol{display:grid;place-items:center;font-size:40px;font-weight:300;width:100%;height:60px;color:#8ab7cc}
.ec-slot-locked{opacity:.45}.ec-preview{text-align:center}.ec-hero-image{display:block;width:100%;max-height:260px;aspect-ratio:1.85;object-fit:cover;border:1px solid #31556c;border-radius:9px;margin-bottom:12px}.ec-preview h3{font-size:25px}
.ec-level{font-size:14px;color:#a6d1e6!important;text-align:center;margin:5px 0 12px!important}
.ec-rates{display:flex;gap:8px;flex-wrap:wrap;justify-content:space-between;background:#14374b66;padding:11px;border-radius:7px;margin:12px 0;font-size:14px}.ec-rates strong{color:#8cdcff}
.ec-quote{margin:13px 0}.ec-quote h4{font-size:14px;color:#b7c9d5!important;margin-bottom:9px!important}.ec-cost{display:flex;gap:8px 13px;flex-wrap:wrap}.ec-resource{display:inline-flex;align-items:center;gap:5px;font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}.ec-resource .sy-icon{width:24px;height:24px}.ec-short{color:#ff998b}.ec-time{font-size:14px;color:#a9c5d7!important;margin:11px 0!important}
.ec-dialog .ec-primary{width:100%;min-height:48px;padding:8px 14px;font-weight:700;font-size:18px;background:linear-gradient(#11517a,#0a344f);border-color:#248fbb}.ec-reason{text-align:center;color:#d7b483!important;margin:8px 0!important;font-size:13px}
.ec-secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;border-top:1px solid #234256;margin-top:17px;padding-top:14px}.ec-secondary-actions select{width:100%;grid-column:1/-1;min-height:44px;font:inherit;background:#0d2536;border:1px solid #365b72;border-radius:7px;padding:8px;color:#edf4f8}.ec-secondary-actions .ec-danger{border-color:#785b52;color:#e2b6a4}
.ec-building-hero{height:185px;display:grid;place-items:center;background:radial-gradient(ellipse,#41504c55,transparent 70%);margin:7px 0}.ec-building-hero img{max-width:100%;max-height:180px;object-fit:contain;filter:drop-shadow(0 9px 7px #0005)}.ec-name{text-align:center;font-size:24px}.ec-effect{font-size:14px;text-align:center;margin:8px 0!important;color:#b5ceda!important}
.ec-protection{padding:12px 0;color:#8ad9f2!important;font-size:15px}.ec-stock{display:grid;grid-template-columns:30px 1fr;gap:5px 9px;padding:12px;border:1px solid #2a4b61;background:#092031;border-radius:8px;margin:8px 0}.ec-stock h3{font-size:17px;align-self:center}.ec-stock>div{grid-column:2;display:flex;justify-content:space-between;font-size:14px;color:#b4c9d6}.ec-stock strong{color:#f1f5f6;font-variant-numeric:tabular-nums}
.ec-section-heading{font-size:20px;margin:24px 0 12px!important}.ec-houses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ec-house-card{padding:10px;text-align:center;display:flex;align-items:center;flex-direction:column;gap:5px}.ec-house-card img{width:100%;height:100px;object-fit:contain}.ec-house-card h4{font-size:16px}.ec-house-card span,.ec-house-card p{font-size:12px;color:#a9c6d6!important}
.ec-navigation,.ec-resource-choices{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0}.ec-navigation button{flex:1;padding:9px}.ec-resource-choices button{flex:1;padding:7px;font-size:12px}
.ec-navigation button,.ec-house-card h4{overflow-wrap:anywhere}
.ec-house-card img{width:auto;max-width:100%}
.ec-queue{margin-top:22px;border-top:1px solid #29475b;padding-top:14px}.ec-queue h3{font-size:18px;margin-bottom:10px!important}.ec-queue-row{display:flex;flex-direction:column;gap:3px;border:1px solid #2c4e64;border-radius:7px;margin:7px 0;padding:10px;font-size:14px}.ec-queue-row span{color:#a9c6d6;font-size:12px}
.ec-confirm{padding:10px 0}.ec-confirm p{font-size:17px;line-height:1.5;margin-bottom:18px!important}.ec-confirm>button{margin-top:15px;padding:10px}.ec-confirm h4{margin-bottom:10px!important}
@media(max-width:480px){.ec-dialog{padding:12px 10px 22px;max-height:96dvh}.ec-header h2{font-size:24px}.ec-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.ec-slot{min-height:116px}.ec-center{grid-template-columns:60px 1fr;gap:8px}.ec-center img{width:60px;height:42px}.ec-center span{font-size:14px}.ec-center strong{grid-column:2}.ec-hero-image{max-height:200px}.ec-tabs button{font-size:10px}.ec-building-hero{height:150px}.ec-building-hero img{max-height:148px}.ec-houses{gap:7px}.ec-house-card{padding:8px}.ec-house-card img{height:75px}.ec-stock{padding:10px}}
@media(max-width:480px){.ec-navigation{display:grid;grid-template-columns:1fr}.ec-navigation button{text-align:left}}
@media(max-width:540px){.ec-dialog{width:100%;height:100dvh;max-height:100dvh;max-width:100%;margin:0;border:0;border-radius:0}.ec-header{top:-12px}}

/* Reference layout 02: two filters, overview, large cards and compact detail. */
.ec-close{width:32px;min-width:32px;min-height:40px!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;font-size:31px!important;font-weight:300;color:#a8d5e9!important}
.ec-production{width:min(650px,calc(100vw - 24px));height:auto;max-height:calc(100dvh - 28px);margin:auto;padding:12px;border:1px solid #5796b2;border-radius:12px;background:linear-gradient(135deg,#052132,#001521 65%,#032338);box-shadow:0 0 0 4px #061a27cc,0 22px 75px #0009}
.ec-production::backdrop{background:#00142188;backdrop-filter:blur(3px)}
.ec-production .ec-header{top:-12px;padding:0 0 10px;background:#032031;gap:10px}
.ec-production .ec-header h2{font-size:clamp(20px,5.6vw,30px);letter-spacing:-.6px;white-space:nowrap;overflow-wrap:normal}
.ec-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr) minmax(0,1fr);gap:7px;padding:1px 0 11px;margin-bottom:10px;border-bottom:1px solid #2b5a70}
.ec-controls select,.ec-controls button{display:block;width:100%;min-height:42px;padding:8px 7px;background:linear-gradient(#0c3349,#052437);border:1px solid #315f77;border-radius:7px;color:#cae1ef;font:inherit;font-size:14px;cursor:pointer}
.ec-controls select:focus-visible{outline:2px solid #8cdefc;outline-offset:2px}.ec-controls button{font-weight:650}
.ec-controls select{color-scheme:dark}
.ec-controls select option,.ec-confirm select option{background-color:#0b2b3e;color:#edf5fa}
.ec-controls select option:checked,.ec-confirm select option:checked{background-color:#17618a;color:#fff}
.ec-mine-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 12px}
.ec-dialog .ec-mine-card{display:flex;align-items:center;flex-direction:column;padding:7px 9px 9px;border:1px solid #315d74;border-radius:9px;background:radial-gradient(ellipse at 50% 5%,#11476588,transparent 75%),linear-gradient(#072637,#041e2e);overflow:hidden;gap:3px}
.ec-mine-card>img{display:block;object-fit:contain;width:100%;height:150px;filter:drop-shadow(0 5px 3px #0004)}
.ec-mine-card>strong{font-size:20px;line-height:1.1}.ec-mine-card>span{font-size:15px;color:#b7d3e3}
.ec-card-rate{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;border-top:1px solid #22485d;padding-top:6px;margin-top:4px;font-size:15px;font-variant-numeric:tabular-nums;color:#c1e6f6}.ec-card-rate .sy-icon{width:22px;height:22px}
.ec-dialog .ec-mine-wide{display:grid;grid-column:1/-1;grid-template-columns:40% minmax(0,1fr);column-gap:12px;text-align:center}.ec-mine-wide>img{grid-row:1/4;height:105px}.ec-mine-wide>strong{align-self:end}.ec-mine-wide>.ec-card-rate{align-self:start;margin-top:0}
.ec-place-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:0 0 12px}
.ec-dialog .ec-place{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:100px;padding:8px 3px;border:1px solid #31556c;border-radius:8px;background:linear-gradient(#0b2e43,#062235)}
.ec-place-symbol{font-size:32px;font-weight:300;line-height:1;color:#84b8d2}.ec-place strong{font-size:14px}.ec-place small{font-size:11px;color:#aec9da;line-height:1.15;text-align:center}.ec-place-locked{opacity:.58}
.ec-production .ec-queue-summary{font-size:12px;margin:5px 0 10px!important;color:#86adc3!important}
.ec-compact-preview{padding:11px;background:linear-gradient(#082c40,#042234);border:1px solid #3c7792;border-radius:9px;text-align:left;margin-top:5px}
.ec-detail-intro{display:grid;grid-template-columns:36% minmax(0,1fr);gap:12px;align-items:center;padding-bottom:9px;border-bottom:1px solid #2b5269}
.ec-detail-image{display:block;width:100%;height:132px;object-fit:contain;filter:drop-shadow(0 4px 3px #0004)}
.ec-compact-preview h3{font-size:23px;text-align:left}.ec-detail-copy .ec-level{text-align:left;margin:3px 0 8px!important;font-size:14px}
.ec-detail-copy .ec-rates{display:flex;flex-direction:column;gap:5px;padding:0;margin:0;background:none;font-size:14px}.ec-detail-copy .ec-rates strong{font-size:13px;background:#07344c;border:1px solid #0c415d;border-radius:5px;padding:5px;color:#6bd6fb}
.ec-compact-preview .ec-quote{margin:8px 0}.ec-compact-preview .ec-quote h4{font-size:13px;margin-bottom:8px!important}
.ec-cost-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.ec-resource-cell{min-width:0}.ec-resource-cell .ec-resource{display:flex;align-items:center;gap:5px;justify-content:flex-start;white-space:normal;font-size:13px;line-height:1.1}.ec-resource-cell .ec-resource>span{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.ec-resource-cell .sy-icon{width:24px;height:24px}
.ec-owned{margin-top:6px;display:flex;flex-direction:column;gap:2px;font-variant-numeric:tabular-nums;font-size:13px}.ec-owned-label{font-size:10px;color:#8facbd}.ec-owned-value{font-weight:650;overflow-wrap:anywhere}.ec-enough .ec-owned-value{color:#6bdfba}.ec-short .ec-owned-value{color:#ff8194}
.ec-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:start}.ec-detail-actions>.ec-primary{grid-column:1}.ec-detail-actions>.ec-retool-button{grid-column:2;grid-row:1;min-height:48px;font-size:17px;font-weight:650}.ec-detail-actions>.ec-reason{grid-column:1/-1;font-size:12px;margin:0!important}
.ec-detail-actions>.ec-primary:only-child{grid-column:1/-1}.ec-detail-actions .ec-demolish-link{grid-column:1/-1;min-height:36px;margin-top:2px;font-size:12px;color:#c8a89d;border-color:transparent;background:none;box-shadow:none}
.ec-detail-actions:not(:has(.ec-retool-button))>.ec-primary{grid-column:1/-1}
.ec-confirm select{width:100%;min-height:44px;border:1px solid #37627b;background:#092b40;color:#d4e8f3;font:inherit;border-radius:7px;padding:8px}
.ec-overview-production,.ec-overview-counts,.ec-total-upgrade{padding:13px;border:1px solid #3b7591;border-radius:10px;background:linear-gradient(#082d43,#042032);margin:0 0 12px}
.ec-overview-production h3,.ec-overview-counts h3,.ec-total-upgrade h3{font-size:23px;line-height:1.15}.ec-overview-caption{color:#a5c6da!important;font-size:13px;margin:5px 0 12px!important;line-height:1.3!important}
.ec-production-row{display:grid;grid-template-columns:35px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 12px;border:1px solid #2d586f;border-radius:7px;background:linear-gradient(120deg,#123c53,#0a2c40);margin:7px 0;min-height:51px;font-size:17px}
.ec-production-row>.sy-icon{width:30px;height:30px}.ec-production-row>span{color:#8edbfc;font-size:16px;white-space:nowrap;font-variant-numeric:tabular-nums}.ec-production-row>strong{font-size:16px;line-height:1.1}
.ec-count-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.ec-count-card{grid-column:span 2;display:flex;flex-direction:column;align-items:center;gap:4px;border:1px solid #315b73;border-radius:8px;background:#0b3045;padding:7px 6px 10px;text-align:center;font-size:14px}
.ec-count-card:nth-last-child(-n+2){grid-column:span 3}.ec-count-card>img{width:100%;height:95px;object-fit:contain}.ec-count-card>strong{font-size:21px}.ec-total-upgrade .ec-primary{margin-top:8px}.ec-empty{color:#aac8da!important;text-align:center;padding:18px 6px}.ec-reset-filter{width:100%;padding:8px}
@media(max-width:540px){.ec-production{inset:0;width:calc(100vw - 20px);height:auto;max-height:calc(100dvh - 24px);max-width:100%;margin:auto;padding:10px;border:1px solid #5796b2;border-radius:11px}.ec-production .ec-header{top:-10px}.ec-controls{gap:5px}.ec-controls select,.ec-controls button{font-size:12px;min-height:39px;padding:7px 5px}.ec-mine-grid{gap:8px}.ec-dialog .ec-mine-card{padding:5px 6px 7px}.ec-mine-card>img{height:109px}.ec-mine-card>strong{font-size:17px}.ec-mine-card>span{font-size:13px}.ec-card-rate{font-size:14px;gap:5px}.ec-card-rate .sy-icon{width:20px;height:20px}.ec-mine-wide>img{height:85px}.ec-place-grid{gap:6px}.ec-dialog .ec-place{min-height:88px;gap:4px;padding:6px 2px}.ec-place strong{font-size:12px}.ec-place small{font-size:10px}.ec-place-symbol{font-size:28px}.ec-compact-preview{padding:9px}.ec-detail-intro{grid-template-columns:36% minmax(0,1fr);gap:9px}.ec-detail-image{height:100px}.ec-compact-preview h3{font-size:21px}.ec-detail-copy .ec-rates{font-size:12px}.ec-detail-copy .ec-rates strong{font-size:11px;padding:5px}.ec-resource-cell .ec-resource{font-size:12px;gap:3px}.ec-resource-cell .sy-icon{width:21px;height:23px}.ec-owned{font-size:12px}.ec-compact-preview .ec-time{font-size:12px;margin:9px 0!important}.ec-detail-actions>.ec-primary,.ec-detail-actions>.ec-retool-button{font-size:16px;min-height:44px}.ec-overview-production,.ec-overview-counts,.ec-total-upgrade{padding:11px}.ec-overview-production h3,.ec-overview-counts h3,.ec-total-upgrade h3{font-size:21px}.ec-overview-caption{font-size:12px}.ec-production-row{grid-template-columns:28px minmax(0,1fr) auto;gap:7px;padding:8px;min-height:47px}.ec-production-row>.sy-icon{width:27px;height:27px}.ec-production-row>strong{font-size:14px}.ec-production-row>span{font-size:14px}.ec-count-grid{gap:6px}.ec-count-card{font-size:12px;padding:5px 4px 8px}.ec-count-card>img{height:73px}.ec-count-card>strong{font-size:19px}}
@media(max-width:355px){.ec-production .ec-header{gap:7px}.ec-production .sy-back{width:35px}.ec-close{width:25px;min-width:25px}.ec-controls select,.ec-controls button{font-size:11px}.ec-mine-card>img{height:95px}.ec-mine-card>strong{font-size:15px}.ec-mine-card>span,.ec-card-rate{font-size:12px}.ec-place-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.ec-place strong{font-size:11px}.ec-place small{font-size:9px}.ec-resource-cell .ec-resource{font-size:11px;gap:2px}.ec-resource-cell .sy-icon{width:18px;height:21px}.ec-owned{font-size:11px}.ec-cost-grid{gap:4px}.ec-detail-copy .ec-rates strong{font-size:10px}.ec-production-row{grid-template-columns:23px minmax(0,1fr) auto;gap:5px;padding:7px}.ec-production-row>.sy-icon{width:22px;height:24px}.ec-production-row>strong,.ec-production-row>span{font-size:12px}.ec-count-card>img{height:61px}.ec-count-card{font-size:11px}}

/* Shared follow-up components use the existing dark shipyard palette. */
.fu-job{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px;margin:7px 0;background:#061c2a;border:1px solid #345567;border-radius:9px}.fu-job progress{grid-column:1/-1;width:100%;height:8px;accent-color:#4a9fc0}.fu-free{padding:10px;margin:6px 0;border:1px dashed #345567;color:#9ab9c9;border-radius:8px}.fu-unlocks{padding:10px;border:1px solid #345567;border-radius:8px;margin:10px 0}.fu-unlock{padding:8px;border-bottom:1px solid #203e50}.fu-next{color:#a9deec;border-left:3px solid #73b8d0}.fu-next-unlock{font-size:.85rem;color:#afcdda}.fu-full{color:#f18b8b!important;font-size:.85rem;grid-column:1/-1}.ec-primary:disabled{background:#263c48!important;border-color:#40515a!important;color:#8b9aa3!important;box-shadow:none!important;cursor:not-allowed}.ec-mine-card[aria-pressed=true],.ec-place[aria-pressed=true]{outline:2px solid #a0d5e7;outline-offset:-3px;background:#123b50!important}.ec-mine-card[aria-pressed=false],.ec-place[aria-pressed=false]{box-shadow:none!important}.fu-test{position:absolute;right:12px;top:85px;z-index:8;border:1px solid #4d7186;border-radius:7px;background:#061c2a;color:#bed7e1;padding:8px}.fu-test[hidden]{display:none}

.fl-dialog{width:min(960px,96vw);background:#041521;color:#d3e4ec}.fl-body{min-width:0}.fl-tabs,.fl-fleets,.fl-actions{display:flex;gap:6px;margin:10px 0}.fl-tabs button,.fl-fleets button,.fl-actions button{flex:1;min-width:0;padding:9px 4px;background:#092737;border:1px solid #34596e;color:#c5dce7;border-radius:7px;font-size:.85rem;min-height:44px}.fl-tabs [aria-pressed=true],.fl-fleets [aria-pressed=true]{background:#174157;border-color:#94c8db}.fl-fleets .fl-defense{color:#edb3b3;border-color:#765054}.fl-summary{font-size:.85rem;color:#c4dbe6}.fl-sea{padding:10px 7px;background:radial-gradient(ellipse at 40% 50%,#113e59,#001b30 75%);border:1px solid #315467;border-radius:10px}.fl-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.fl-row:first-child{transform:scale(.94);transform-origin:bottom center}.fl-row+ .fl-row{margin-top:10px}.fl-slot-wrap{position:relative;min-width:0}.fl-slot{width:100%;min-height:110px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #456275;border-radius:8px;background:#061d2ac9;color:#bed7e2;padding:5px 2px;overflow:hidden}.fl-slot strong{font-size:2rem}.fl-slot .fu-ship-name{font-size:.72rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fl-slot small{font-size:.75rem}.fl-ship-image{object-fit:contain;width:100%;height:65px}.fl-slot[aria-pressed=true],.fl-drop{outline:2px solid #b1dce9!important;outline-offset:-3px}.fl-drag-handle{position:absolute;right:1px;top:1px;width:27px;height:30px;padding:0;border:1px solid #426276;background:#0b2936;color:#b1d5e5;border-radius:6px;z-index:1}.fl-picker{background:#061c2a;border:1px solid #395c70;border-radius:12px 12px 0 0;max-height:48vh;overflow:auto;padding:8px;margin-top:12px;position:sticky;bottom:0;z-index:2}.fl-picker-head{display:flex;align-items:center;justify-content:space-between}.fl-picker-head h3{margin:4px}.fl-categories{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.fl-categories button{overflow:hidden;font-size:.64rem;min-height:48px;padding:3px;background:#0a2939;color:#c5dce7;border:1px solid #34596e;border-radius:6px}.fl-categories img{width:100%;height:30px;object-fit:contain}.fl-categories [aria-pressed=true]{border-color:#a3d5e6}.fl-colors{display:flex;gap:5px;margin:6px 0}.fl-colors button{flex:1;background:#062032;border:1px solid #34596e;border-radius:5px;padding:5px}.fl-colors [aria-pressed=false]{opacity:.3}.fl-inventory{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.fl-inventory-wrap{position:relative;min-width:0}.fl-inventory-card{width:100%;height:112px;padding:4px 2px;background:#072334;color:#d1e5ee;border:1px solid;border-radius:7px;display:flex;align-items:center;flex-direction:column;justify-content:center;overflow:hidden}.fl-inventory-card img{height:56px}.fl-inventory-card .fu-ship-name{font-size:.65rem;max-width:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.fl-warning,.fl-confirm{color:#edb3b3;border:1px solid #7b4d55;border-radius:7px;padding:10px}.fl-editor{padding:8px;background:#102e3e;border-radius:7px;display:flex;gap:7px;align-items:center;flex-wrap:wrap}.fl-editor input[type=range]{width:100%}.fl-editor input[type=number]{width:70px}.fl-future{display:flex;gap:5px}.fl-future button{font-size:.7rem;padding:6px}.fl-templates input{max-width:100%;width:150px}.fl-template-row{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.fl-dialog .hg-card>img{width:110px;height:75px}.fl-confirm button,.fl-editor button,.fl-templates button{background:#092737;border:1px solid #34596e;color:#c5dce7;border-radius:6px;min-height:35px}.fl-dialog button:disabled{opacity:.5;cursor:not-allowed}

.fl-dialog button{white-space:normal;overflow-wrap:anywhere}.fl-dialog .fl-slot{min-height:110px}.fl-dialog .fl-defense{font-size:.7rem;line-height:1.15;word-break:break-word}.fl-dialog .fl-categories button{line-height:1.1;font-size:.62rem}.fl-dialog .fl-categories span{display:block;overflow-wrap:anywhere}.fl-dialog .ec-primary{background:linear-gradient(#16465d,#092536);border:1px solid #6ba6bc;color:#d4e8ef}.fl-dialog .fl-summary{overflow-wrap:anywhere}.fl-dialog .fl-picker{position:relative;bottom:auto}

/* Fleet UI: source colors, six readable slots and a visible class-selection sheet. */
.sy-dialog.fl-dialog[open]{height:94dvh;width:min(880px,96vw);display:flex;flex-direction:column;overflow:hidden;border:1px solid #c9b37d;background:#041521}
.fl-dialog .fl-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.fl-dialog .fl-notice:empty{display:none}
.fl-dialog .ec-header{flex:none}.fl-dialog .fl-sea{padding:8px;background-color:#031b29;border:1px solid #507180;border-radius:9px}
.fl-dialog .fl-row-caption{display:block;font-size:12px;line-height:1.6;color:#bdd2db;text-transform:uppercase;letter-spacing:.08em}
.fl-dialog .fl-slot{border:2px solid var(--ship-color,#496477);box-shadow:inset 0 0 12px #071721;border-radius:6px;min-height:132px;color:var(--ship-color,#bdd7df)}
.fl-dialog .fl-slot .fu-ship-name,.fl-dialog .fl-slot small,.fl-dialog .fl-inventory-card .fu-ship-name,.fl-dialog .fl-inventory-card small{color:var(--ship-color)!important;white-space:normal;line-height:1.2;overflow-wrap:anywhere}
.fl-dialog .fl-slot .fu-ship-name{font-size:14px;font-weight:650}.fl-dialog .fl-slot small{font-size:15px;margin-top:5px;font-weight:700}
.fl-dialog .fl-target{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #8d7b54;background:#062333;margin:8px 0}.fl-target .nc-icon{width:30px;height:30px}.fl-target span{margin-left:auto;color:#b8d0d9;white-space:nowrap}
.fl-dialog .fl-combat-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}.fl-combat-actions button{min-height:56px;display:flex;gap:10px;align-items:center;justify-content:center;border:1px solid #c1a66b;font-size:18px}.fl-combat-actions .nc-icon{width:30px;height:30px}.fl-dialog .fl-attack{background:linear-gradient(#9a2e24,#57120d);color:#f1ddaf}.fl-dialog .fl-scout{background:linear-gradient(#1a536a,#072b3c);color:#cde8f3}
.fl-dialog .fl-picker{border:1px solid #c9b37d;background:linear-gradient(#082a3e,#031722);border-radius:10px;box-shadow:0 -8px 24px #0008}
.fl-dialog.fl-choosing .fl-body{display:flex;flex-direction:column;overflow:hidden}.fl-choosing :is(.fl-tabs,.fl-fleets,.fl-main-class,.fl-summary,.fl-target,.fl-actions,.fl-combat-actions){display:none}
.fl-dialog.fl-choosing .fl-sea{flex:none;margin:4px 0;padding:5px}.fl-dialog.fl-choosing .fl-slot{min-height:88px;padding:3px}.fl-choosing .fl-slot .fl-ship-image{height:38px}.fl-dialog.fl-choosing .fl-slot .fu-ship-name{font-size:11px}.fl-dialog.fl-choosing .fl-slot small{font-size:12px;margin-top:2px}.fl-choosing .fl-row-caption{font-size:10px}
.fl-dialog.fl-choosing .fl-picker{flex:1;min-height:0;max-height:none;position:relative;bottom:auto;margin-top:7px;overflow:auto;animation:fleet-sheet-in .18s ease-out}
.fl-dialog .fl-categories{display:flex;overflow-x:auto;gap:5px;padding-bottom:6px;scrollbar-width:thin}.fl-dialog .fl-categories button{flex:0 0 85px;min-height:68px;font-size:12px}.fl-categories [aria-pressed=true]{border-color:#e9cd93;background:#0c4664}.fl-dialog .fl-categories img{height:38px;width:75px;object-fit:contain}
.fl-dialog .fl-inventory-card{border-width:2px;height:128px;border-color:var(--ship-color);background:linear-gradient(#0b3045,#041c2a)}.fl-dialog .fl-inventory-card .fu-ship-name{font-size:11px}.fl-dialog .fl-inventory-card small{font-size:14px;font-weight:700}.fl-dialog .fl-picker-head h3{font-size:19px}.fl-dialog .fl-editor{flex-wrap:wrap;gap:8px}.fl-editor input[type=number]{min-height:40px}
@keyframes fleet-sheet-in{from{transform:translateY(15px);opacity:.5}to{transform:translateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.fl-dialog .fl-picker{animation:none}}
@media(max-width:540px){.sy-dialog.fl-dialog[open]{width:calc(100vw - 10px);height:97dvh;padding:9px}.fl-dialog .fl-slot{min-height:120px}.fl-dialog .fl-slot .fl-ship-image{height:55px}.fl-dialog .fl-slot .fu-ship-name{font-size:12px}.fl-dialog .fl-slot small{font-size:12px}.fl-dialog .fl-target{font-size:13px}.fl-dialog .fl-combat-actions button{font-size:16px}.fl-dialog .fl-picker{padding:7px}.fl-dialog .fl-inventory{gap:5px}.fl-dialog .fl-inventory-card{height:120px}.fl-dialog .fl-inventory-card .fl-ship-image{height:50px}}

.fl-dialog .fl-categories button{flex-basis:105px}.fl-dialog .fl-categories span{word-break:normal;overflow-wrap:normal}.fl-dialog .fl-inventory-card .fu-ship-name{min-height:2.4em;line-height:1.2;white-space:normal;text-overflow:clip}

/* Separate selection card: one color tab, slim class buttons, persistent quantity bar. */
.sy-dialog.fl-select-dialog[open]{display:flex;flex-direction:column;width:min(760px,calc(100vw - 12px));height:min(94dvh,960px);max-height:97dvh;padding:10px;overflow:hidden;font-family:Inter,"Segoe UI",Arial,sans-serif;border:2px solid #bba673;border-radius:3px;background:linear-gradient(110deg,#061521,#03131c);color:#e3e8e6;box-shadow:0 0 0 3px #061018,0 0 0 4px #837144,inset 0 0 0 2px #172f3b,0 14px 65px #000c}
.fl-select-dialog::backdrop{background:#00101bd9;backdrop-filter:blur(4px)}
.fl-select-header{position:relative;isolation:isolate;display:flex;align-items:center;gap:10px;min-height:66px;flex:none;overflow:hidden;border-bottom:1px solid #a08a59;margin-bottom:10px;background:#071824}
.fl-select-header>img{position:absolute;z-index:-2;right:0;top:0;height:100%;width:85%;object-fit:cover;object-position:70% 38%;opacity:.75}.fl-select-header:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#071824 20%,#071824b0 60%,#07182422)}
.fl-select-header h2{flex:1;min-width:0;margin:0;font-size:clamp(22px,5vw,32px);color:#f5e5b8;text-shadow:0 2px 5px #000}.fl-select-dialog button{font:inherit;cursor:pointer}.fl-select-header button{flex:none;width:40px;min-height:43px;padding:0;border:1px solid #b79d67;border-radius:3px;color:#f6e8bc;background:linear-gradient(135deg,#584626,#13130e 60%,#5e4d2a);font-size:34px}
.fl-color-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;flex:none;margin-bottom:9px}.fl-color-tabs button{position:relative;min-width:0;min-height:48px;padding:16px 1px 4px;border:1px solid var(--stage-color);border-radius:5px;background:#051c2b;color:var(--stage-color);font-size:13px;font-weight:700;box-shadow:inset 0 3px 0 var(--stage-color)}
.fl-color-tabs button:before{content:'';position:absolute;width:7px;height:7px;border-radius:50%;background:var(--stage-color);top:7px;left:calc(50% - 3px)}.fl-color-tabs [aria-pressed=true]{outline:2px solid var(--stage-color);outline-offset:0;background:linear-gradient(#15435a,#062335);box-shadow:inset 0 3px 0 var(--stage-color),0 0 10px color-mix(in srgb,var(--stage-color) 35%,transparent)}
.fl-class-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;flex:none;padding-bottom:9px;border-bottom:1px solid #43515a}.fl-class-buttons button{min-height:34px;padding:6px 9px;border:1px solid #486a7b;border-radius:4px;background:#061d2b;color:#bad3df;font-size:13px}.fl-class-buttons [aria-pressed=true]{border-color:#d4b675;color:#f5e5b8;background:linear-gradient(#175570,#073047)}
.fl-select-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:10px 1px}.fl-select-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-content:start}.fl-select-card{min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:0 0 10px;overflow:hidden;border:2px solid var(--ship-color);border-radius:5px;background:linear-gradient(#082c3e,#031b29);color:var(--ship-color)}
.fl-select-photo{display:block;width:100%;height:115px;object-fit:cover}.fl-select-card .fu-ship-name{display:block;min-height:2.4em;padding:0 5px;line-height:1.2;font-size:15px;font-weight:650;color:var(--ship-color)!important;overflow-wrap:anywhere}.fl-select-card small{font-size:13px;color:var(--ship-color)}.fl-select-card[aria-pressed=true]{outline:2px solid #f1dfad;outline-offset:1px;box-shadow:0 0 16px color-mix(in srgb,var(--ship-color) 35%,transparent)}.fl-select-empty{grid-column:1/-1;text-align:center;color:#a9bdc8}
.fl-select-footer{flex:none;display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;margin:0 -2px;padding:11px 4px 3px;border-top:1px solid #b49b67;background:#051923;box-shadow:0 -8px 18px #00101b80}.fl-selected-name{grid-column:1/-1;color:#e6d3a4;font-size:15px}.fl-quantity{display:flex;align-items:center;gap:5px;min-width:0;color:#b9d2de}.fl-quantity label{display:flex;align-items:center;gap:8px;font-size:13px}.fl-select-footer input[type=number]{width:88px;max-width:27vw;min-height:38px;padding:3px 5px;box-sizing:border-box;border:1px solid #7b9baa;border-radius:4px;background:#03121c;color:#ebdfbd;font:700 19px Inter,"Segoe UI",Arial,sans-serif}.fl-select-footer input[type=range]{grid-column:1/-1;grid-row:3;accent-color:#62c7e1;width:100%;height:27px;margin:0}.fl-select-dialog .fl-select-apply{grid-column:2;grid-row:2;min-height:43px;padding:8px 14px;border:1px solid #d4b675;border-radius:4px;background:linear-gradient(#13628b,#053450);color:#f5e5b8;font-weight:700}.fl-select-dialog button:disabled{opacity:.45;cursor:default}
.sy-dialog.fl-dialog .fl-combat-actions .fl-attack,.nc-dialog .nc-actions .nc-attack{border:1px solid #d59b72;background:linear-gradient(#a33e2d,#631b16);color:#ffedc1;box-shadow:inset 0 0 0 1px #491410,0 1px 5px #0008}
@media(max-width:540px){.sy-dialog.fl-select-dialog[open]{height:96dvh;width:calc(100vw - 10px);padding:8px}.fl-select-header{min-height:60px}.fl-select-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fl-select-photo{height:112px}.fl-select-card .fu-ship-name{font-size:14px}.fl-color-tabs button{font-size:12px}.fl-class-buttons button{font-size:12px;padding:6px 8px}.fl-quantity label{font-size:12px;gap:5px}.fl-select-footer{gap:7px}.fl-select-footer input[type=number]{width:75px;font-size:18px}.fl-select-dialog .fl-select-apply{padding:7px 11px}}
@media(max-width:620px){.nc-journey .nc-header{min-height:52px}.nc-journey .nc-header h2{font-size:20px}.nc-journey .jv-mine-image{height:106px}.nc-journey .jv-stat{padding:7px;gap:3px 6px}.nc-journey .jv-stat:nth-child(2)>strong{font-size:24px}.nc-journey .jv-stat>strong{font-size:20px}.nc-journey .jv-status{margin:7px 0}.nc-journey .nc-section-title{font-size:18px;min-height:39px;padding:5px 8px}.nc-journey .jv-row-label{margin:5px 0}.nc-journey .jv-slots{padding:4px;gap:7px}.nc-journey .jv-slot{min-height:103px;padding:4px 2px;gap:2px}.nc-journey .jv-ship{height:43px}.nc-journey .jv-actions{padding-top:7px;margin-top:7px}.nc-journey .jv-actions button{min-height:49px;font-size:16px}}

@media(max-width:620px){.nc-journey .jv-hero{height:118px;min-height:0;overflow:hidden;margin-bottom:6px}.nc-journey .jv-hero .jv-mine-image{height:118px}}

/* Match the real page shell: its generic nav/label/range spacing must not inflate this card. */
.fl-select-dialog .fl-color-tabs{margin:0 0 9px}.fl-select-dialog .fl-class-buttons{margin:0}.fl-select-dialog .fl-quantity label{margin:0;padding:0;min-height:0}.fl-select-dialog input[type=range]{padding:0;min-height:27px;height:27px}.fl-select-dialog .fl-color-tabs button,.fl-select-dialog .fl-class-buttons button,.fl-select-dialog .fl-select-card{text-align:center}

/* User's arrangement reference only; retain the existing navy/gold game skin and original ship art. */
.fl-select-dialog .fl-select-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 13px;align-items:start}
.fl-select-dialog .fl-select-card{border:0;border-radius:0;padding:0;gap:7px;background:transparent;overflow:visible;box-shadow:none;outline:0;color:var(--ship-color)}
.fl-select-dialog .fl-select-photo{box-sizing:border-box;display:block;width:100%;height:130px;object-fit:contain;padding:0;border:2px solid var(--ship-color);border-radius:5px;background:linear-gradient(#082b3e,#031723);box-shadow:inset 0 0 9px #00101c80}
.fl-select-dialog .fl-select-card[aria-pressed=true]{outline:0;box-shadow:none;background:transparent}.fl-select-dialog .fl-select-card[aria-pressed=true] .fl-select-photo{outline:1px solid #f1dfad;outline-offset:2px;box-shadow:0 0 12px color-mix(in srgb,var(--ship-color) 45%,transparent)}
.fl-select-dialog .fl-select-card .fu-ship-name{min-height:2.4em;margin:0;padding:0 2px;font-size:14px;line-height:1.2;text-align:center;color:var(--ship-color)!important}
.fl-select-dialog .fl-select-owned{box-sizing:border-box;display:grid;place-items:center;width:82%;min-width:0;min-height:32px;margin:0 auto;padding:3px;border:1px solid color-mix(in srgb,var(--ship-color) 55%,#416b7f);border-radius:3px;background:linear-gradient(#0b3548,#041d2a);box-shadow:inset 0 0 6px #21628445;color:var(--ship-color);font-size:19px;line-height:1.15;font-weight:650}
.fl-select-dialog .fl-select-footer{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:10px 3px 3px}.fl-select-dialog .fl-selected-name{font-size:14px;line-height:1.2}
.fl-select-dialog .fl-quantity{display:grid;grid-template-columns:80px 36px minmax(0,1fr) 36px;gap:10px;align-items:center}.fl-select-dialog .fl-quantity input[type=number]{width:80px;max-width:none;min-width:0;min-height:38px;margin:0;text-align:center}
.fl-select-dialog .fl-quantity input[type=range]{grid-column:auto;grid-row:auto;min-width:0;width:100%;height:34px;min-height:34px;margin:0;padding:0}
.fl-select-dialog .fl-quantity button{width:36px;min-width:0;min-height:38px;padding:0;border:1px solid #b79d67;border-radius:4px;background:linear-gradient(#123d50,#051d2b);color:#e9d7a8;font-size:25px;line-height:1}.fl-select-dialog .fl-select-apply{align-self:center;width:min(240px,75%);min-height:42px;margin:0;grid-row:auto;grid-column:auto}
/* Menu ship pictures carry the known stage color. The canvas voyage remains deliberately frame-free. */
.fl-dialog .fl-ship-image,.fl-dialog .hg-card>img,.rp-ship>img{box-sizing:border-box;border:2px solid var(--ship-color,transparent);border-radius:4px;background:#041b28}
.sy-dialog .sy-ship-card .sy-card-picture,.sy-dialog .sy-detail .sy-hero-picture{box-sizing:border-box;border:2px solid var(--sy-quality,transparent);border-radius:5px;overflow:hidden}
@media(max-width:680px){.fl-select-dialog .fl-select-photo{height:100px}.fl-select-dialog .fl-select-grid{gap:17px 10px}}
@media(max-width:540px){.fl-select-dialog .fl-select-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 9px}.fl-select-dialog .fl-select-photo{height:clamp(65px,23vw,100px)}.fl-select-dialog .fl-select-card .fu-ship-name{font-size:12px;min-height:2.4em}.fl-select-dialog .fl-select-owned{min-height:29px;font-size:17px;width:90%}.fl-select-dialog .fl-quantity{grid-template-columns:61px 31px minmax(0,1fr) 31px;gap:7px}.fl-select-dialog .fl-quantity input[type=number]{width:61px;font-size:17px}.fl-select-dialog .fl-quantity button{width:31px}.fl-select-dialog .fl-select-footer{gap:7px}}
