.fortress-shell{padding-bottom:110px;--fort-gold:#e8d7a3;max-width:1400px;margin:auto;padding:20px;color:#eee8d3}.fort-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.fort-heading h1{margin:5px 0;font-size:30px}.fort-heading p,.fort-detail p,.fort-reserve p,.fort-training-picker p{color:#bdc9b6;font-size:13px;line-height:1.6}.fort-wallet{display:grid;gap:3px;text-align:right}.fort-wallet strong{font-size:28px;color:var(--fort-gold)}.fort-wallet span{font-size:11px}.fort-wallet small{font-size:10px;color:#aab6aa}.fort-toolbar{display:flex;justify-content:space-between;align-items:center;margin:12px 0}.fort-toolbar>span{font-size:12px;color:#b4c2aa}.fort-feedback{padding:10px 14px;border:1px solid #a1b588;background:#233b2d;border-radius:8px;font-size:13px}.fort-feedback:empty{display:none}.fortress-shell button{cursor:pointer}.fortress-shell button:focus-visible{outline:3px solid #ffe5a1;outline-offset:3px}.fortress-shell button:disabled{opacity:.5;cursor:not-allowed}.fortress-shell .tag{font-size:10px}.fortress-shell .eyebrow{font-size:10px;letter-spacing:2px;color:var(--fort-gold)}
.fortress-base{position:fixed;inset:0;z-index:100;max-width:none;height:100dvh;padding:0;overflow:hidden;background:#253d2c}.fortress-base .fort-heading{position:absolute;inset:22px 28px auto;z-index:3;pointer-events:none}.fortress-base .fort-heading>div:first-child{position:absolute;left:50%;transform:translateX(-50%);text-align:center;white-space:nowrap;text-shadow:0 2px 5px #000}.fortress-base .fort-heading p{margin:0;font-size:11px}.fortress-base .fort-wallet{margin-left:auto;background:#172b23eb;border:1px solid #c2c49b55;border-radius:12px;padding:10px 18px}.fortress-base .fort-wallet small{display:none}.fortress-base .fort-toolbar{position:absolute;top:22px;left:28px;z-index:4;margin:0}.fortress-base .fort-toolbar>span{display:none}.fortress-base .fort-toolbar button{background:#1d3229ed;border:1px solid #bcc49b55;color:#ece9d5}.fortress-base .fort-feedback{position:absolute;z-index:7;top:85px;left:50%;transform:translateX(-50%);max-width:85vw;box-shadow:0 6px 20px #0006}.fort-layout,.fort-map-panel,.fort-map{position:absolute;inset:0}.fort-map{overflow:hidden}.fort-world{position:absolute;width:min(100vw,calc((100dvh - 200px)*1.66667));aspect-ratio:5/3;top:46%;left:50%;transform:translate(-50%,-50%)}#fort-village{position:absolute;inset:0;width:100%;height:100%;border-radius:20px}.fort-slot{position:absolute;transform:translate(-50%,-15%);display:grid;justify-items:center;gap:2px;padding:36px 5px 4px;width:110px;border:1px solid transparent;background:transparent!important;box-shadow:none!important;color:#fff1cb;text-shadow:0 1px 3px #000}.fort-slot strong,.fort-slot small{background:#20372bed;border-radius:4px;padding:3px 7px;white-space:nowrap;font-size:10px}.fort-slot small{font-size:9px}.fort-slot[aria-pressed=true]{border-color:#ffe2a077;border-radius:8px}.fort-empty{font-size:26px;position:absolute;top:4px}.fort-structure-hit{position:absolute;transform:translate(-50%,-50%);padding:4px 8px!important;font-size:9px!important;border:1px solid #d3c79588!important;border-radius:6px;background:#243728e8!important;color:#eee5c6!important;white-space:nowrap}.fort-gate-hit{left:31%;top:47%}.fort-sector-north{left:64%;top:13%}.fort-sector-south{left:64%;top:75%}.fort-sector-west{left:37%;top:60%}.fort-sector-east{left:89%;top:62%}.fort-base-note{display:none}
.fort-detail,.fort-reserve,.fort-training-picker{display:none;position:absolute;z-index:5;right:22px;top:118px;width:320px;max-height:calc(100dvh - 225px);overflow:auto;margin:0;padding:24px;border:1px solid #c1c79766;border-radius:16px;background:#172e25f7;box-shadow:0 16px 45px #0005;scrollbar-width:thin}.fortress-base[data-view=detail] .fort-detail,.fortress-base[data-view=reserve] .fort-reserve,.fortress-base[data-view=training] .fort-training-picker{display:block}.fort-detail h2,.fort-reserve h2,.fort-training-picker h2{font-size:22px;margin:12px 0;padding-right:12px}.fort-close{position:absolute;right:10px;top:10px;width:32px;height:32px;padding:0!important;border:1px solid #adc19755;border-radius:50%;background:#152a21;color:#e1e4c7;font-size:23px}.fort-stats{display:flex;flex-wrap:wrap;gap:18px;margin:18px 0}.fort-stats div{display:grid;gap:5px}.fort-stats dt{font-size:10px;color:#b5c2b3}.fort-stats dd{margin:0;font-size:22px;color:#f0e7ca}.fort-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.fort-detail .fort-controls{display:grid}.fort-detail .wide{width:100%;white-space:normal;line-height:1.6}.fort-selected hr{border:0;border-top:1px solid #91a17d44;margin:18px 0}.fort-disclosure{border-top:1px solid #91a17d44}.fort-disclosure summary{cursor:pointer;padding:14px 0;font-size:13px}.fort-disclosure summary span{display:block;margin-top:4px;font-size:11px;color:#b5c2af}.fort-options,.fort-specializations,.fort-reserve-list,.fort-attacks{display:grid;gap:8px;margin:10px 0}.fort-options{grid-template-columns:1fr 1fr}.fort-options button,.fort-specializations button,.fort-reserve-list button,.fort-attacks button{display:grid;gap:5px;justify-items:start;text-align:left;white-space:normal;padding:10px;border:1px solid #90a27766;border-radius:8px;background:#273e2d;color:#ede5cc;font-size:12px}.fort-options button{justify-items:center;text-align:center}.fort-options small,.fort-specializations small,.fort-reserve-list small,.fort-attacks span{font-size:10px;color:#c2cbb5;line-height:1.5}.fort-art{width:64px;height:64px}.fort-options .fort-art{width:56px;height:56px}.fort-specializations button[aria-pressed=true],.fort-options button[aria-pressed=true],.fort-attacks button[aria-pressed=true]{outline:2px solid #e1d38c}.fort-reserve-list button{grid-template-columns:64px 1fr;align-items:center}.fort-reserve-list button span{display:grid;gap:5px}.fort-training-picker>.primary{width:100%;margin-top:12px}.fort-training-reset{display:block;margin:18px auto 0;font-size:11px}.fort-dock{position:absolute;z-index:4;bottom:106px;left:50%;transform:translateX(-50%);display:flex;gap:16px;align-items:center;padding:10px;border:1px solid #b8c59455;border-radius:14px;background:#172e25f5;box-shadow:0 8px 30px #0005}.fort-dock>button{padding:13px 20px;border:1px solid #a7b77a77;border-radius:9px;background:linear-gradient(#526744,#354c32);color:#f3e8c7;font-size:13px;font-weight:650;white-space:nowrap}.fort-dock>button span{font-size:18px;margin-right:7px}.fort-dock>div{text-align:center;white-space:nowrap;font-size:9px;color:#d2d7b8;letter-spacing:2px}.fort-dock>div span{display:block;margin-top:6px;font-size:10px;letter-spacing:0;color:#b2c2a8}
.fort-reset-dialog{max-width:480px;width:calc(100% - 32px);padding:28px;border:1px solid #a5af83;border-radius:14px;background:#142a22;color:#e1dfc9}.fort-reset-dialog::backdrop{background:#04080ec9}.fort-reset-dialog p{line-height:1.6}.fort-combat-hud{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:16px;border:1px solid #77906b;border-radius:10px 10px 0 0;background:#172d25;font-size:12px}.fort-field{height:min(62vw,650px);min-height:230px;display:flex;align-items:center;justify-content:center;background:#15281f;border:1px solid #77906b;margin-bottom:16px;overflow:hidden}.fort-field canvas{touch-action:none}.fort-zoom{display:flex;gap:6px;margin-left:auto}.fort-result{margin-top:20px;padding:20px;border:1px solid #95a78066;border-radius:12px;background:#263b2b55}.fort-result h2{font-size:24px;margin:10px 0}.fort-result p,.fort-note{color:#bdc9b6;font-size:12px;line-height:1.5}.fort-metrics{display:flex;flex-wrap:wrap;gap:18px;margin:18px 0}.fort-metrics span{display:grid;gap:6px;font-size:10px;color:#b5c1aa}.fort-metrics strong{font-size:20px;color:#ede4c5}.fort-camp-entry{display:flex;align-items:center;gap:18px;margin:20px 0}.fort-camp-entry span{font-size:13px;color:#a2aec0}
body:has(.fortress-base){overflow:hidden}
@media(max-width:900px){.fort-dock>div{display:none}.fortress-base .fort-heading h1{font-size:24px}.fortress-base .fort-heading p{display:none}.fort-detail,.fort-reserve,.fort-training-picker{width:290px}.fort-slot{width:90px}.fort-zoom{margin-left:0}}
@media(max-width:600px){.fortress-shell{padding:12px}.fortress-base{padding:0}.fortress-base .fort-heading{inset:16px 14px auto}.fortress-base .fort-heading>div:first-child{top:72px}.fortress-base .fort-heading h1{font-size:25px}.fortress-base .fort-toolbar{top:20px;left:14px}.fortress-base .fort-toolbar button{font-size:11px;padding:10px}.fortress-base .fort-wallet{padding:8px 12px}.fortress-base .fort-wallet strong{font-size:21px}.fort-world{width:100vw;top:45%}.fort-gate-hit{left:22%}.fort-slot{width:80px;padding-top:24px}.fort-slot strong{font-size:8px}.fort-slot small{font-size:7px}.fort-structure-hit{font-size:8px!important;padding:3px 5px!important}.fort-detail,.fort-reserve,.fort-training-picker{top:auto;bottom:180px;left:12px;right:12px;width:auto;max-height:52dvh;padding:20px}.fort-dock{bottom:100px;width:calc(100% - 28px);gap:8px;padding:8px}.fort-dock>button{flex:1;padding:12px 8px;font-size:11px}.fortress-base .fort-feedback{top:145px;width:max-content;font-size:12px}.fort-field{height:34vh;min-height:210px}.fort-heading h1{font-size:23px}.fort-heading p{font-size:11px}.fort-wallet strong{font-size:22px}.fort-wallet small{display:none}.fort-toolbar{gap:10px}.fort-toolbar>span{font-size:10px}.fort-combat-hud{font-size:11px;gap:10px}.fort-combat-hud>strong:first-child{width:100%}.fort-controls>button{flex-grow:1}.fort-zoom{width:100%;flex-wrap:wrap}.fort-zoom button{padding:8px;font-size:11px}.fort-camp-entry{align-items:flex-start;flex-direction:column;gap:8px}}
@media(max-height:550px) and (min-width:601px){.fortress-base .fort-heading{top:12px}.fortress-base .fort-toolbar{top:12px}.fort-world{width:80vw;max-width:850px}.fort-dock{bottom:88px;padding:6px}.fort-dock>button{padding:8px 14px}.fort-detail,.fort-reserve,.fort-training-picker{top:82px;max-height:calc(100dvh - 150px)}}
@media(prefers-reduced-motion:reduce){.fortress-shell *{animation:none!important;transition:none!important}}

.fort-base-camera{position:absolute;z-index:4;left:24px;bottom:108px;display:flex;gap:5px}.fort-base-camera button{width:36px;height:36px;padding:0;border:1px solid #a7b77a77;border-radius:8px;background:#243b2e;color:#eee3c3}.fort-base-camera button:focus-visible{outline:3px solid #ffe2a0}#fort-village{touch-action:none}@media(max-width:600px){.fort-base-camera{left:12px;bottom:170px}}

/* Construction details live in the selected panel; the map stays unobstructed. */
.fortress-base .fort-heading>div:first-child{display:none}
.fortress-base .fort-slot,.fortress-base .fort-structure-hit{transform:translateX(-50%);padding:0!important;min-width:44px;min-height:44px;border:1px solid transparent!important;background:transparent!important;box-shadow:none!important;border-radius:6px}
.fortress-base .fort-structure-hit{z-index:1}
.fortress-base .fort-gate-hit{z-index:2}
.fortress-base .fort-slot{z-index:3;place-items:center}
.fortress-base .fort-slot .fort-empty{position:static}
.fortress-base .fort-slot[aria-pressed=true],.fortress-base .fort-structure-hit[aria-pressed=true]{border-color:#ffe2a077!important}
