.action-sheet[data-view='alliance-construction']{inset:0;width:100%;max-height:100%}
.action-sheet[data-view='alliance-construction'] .sheet-handle{display:none}
.action-sheet[data-view='alliance-construction'] .sheet-heading{position:relative;min-height:72px;padding-right:calc(50px + var(--sheet-close-inset,12px) + var(--space,8px))}
.action-sheet[data-view='alliance-construction'] .sheet-heading>div{min-width:0}
.action-sheet[data-view='alliance-construction'] #close-sheet{position:absolute;right:var(--sheet-close-inset,12px);top:50%;transform:translateY(-50%);z-index:3;flex:none;width:50px;height:50px;min-width:50px;min-height:50px;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent url('./art-web/governor-regalia-v1-d5b7eac8bf.webp') right center/200% 100% no-repeat;color:#e0be70;filter:drop-shadow(0 2px 1px #31180999)}
.action-sheet[data-view='alliance-construction'] #close-sheet .icon{width:25px;height:25px;stroke-width:1.8}
.action-sheet[data-view='alliance-construction'] #close-sheet:hover{filter:brightness(1.12) drop-shadow(0 2px 1px #31180999)}
.action-sheet[data-view='alliance-construction'] #close-sheet:focus-visible{outline:2px solid #704817;outline-offset:2px;border-radius:50%}
.action-sheet[data-view='alliance-construction'] .sheet-content{padding-inline:20px}
.alliance-construction-panel{min-width:0;color:var(--antique-ink)}
/* World flags use a compact paper card; the garrison remains a full sheet. */
.action-sheet[data-view='map-location'][data-location-kind='alliance-flag']{left:50%;right:auto;bottom:calc(18px + var(--realm-chat-height,0px));width:min(360px,calc(100% - 20px));max-height:calc(100% - 30px - var(--realm-chat-height,0px));transform:translateX(-50%);animation:none}
.action-sheet[data-location-kind='alliance-flag'] .sheet-handle,.action-sheet[data-location-kind='alliance-flag'] .sheet-navigation{display:none}
.action-sheet[data-location-kind='alliance-flag'] .sheet-heading{height:0;min-height:0;padding:0;border:0}
.action-sheet[data-location-kind='alliance-flag'] .sheet-heading::after{content:none}
.action-sheet[data-location-kind='alliance-flag'] .sheet-heading>div{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.action-sheet[data-location-kind='alliance-flag'] #close-sheet{position:absolute;top:0;right:7px;z-index:3;transform:none;margin:0;width:44px;height:44px;min-width:44px;min-height:44px;flex:none}
.action-sheet[data-location-kind='alliance-flag'] .sheet-content{min-height:0;flex:0 1 auto;padding:0 7px 10px;overflow-y:auto}
.alliance-flag-card{min-width:0;color:var(--antique-ink)}
.alliance-flag-card>header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding-right:52px}
.alliance-flag-card>header h3{min-width:0}
.alliance-flag-card h3{font:700 clamp(21px,5vw,26px)/1.15 var(--serif);margin:0;overflow-wrap:anywhere}
.alliance-flag-card .alliance-flag-share{flex:none;width:44px;height:44px;min-width:44px;color:var(--green)}
.alliance-flag-scene{position:relative;display:grid;place-items:center;height:160px;margin:4px 0 0;border:1px solid #9c7a3f55;background:radial-gradient(ellipse at 50% 72%,#55724120,transparent 70%),url('./art-web/kingdom-woodland-v2-9e0fec5ce6.webp') center/cover;overflow:hidden}
.alliance-flag-scene .map-location-object-art{position:static;display:block;width:75%;height:135px;max-width:100%;object-fit:contain;object-position:center;filter:drop-shadow(0 3px 2px #1b271c55);margin-bottom:20px}
.alliance-flag-coordinates{position:absolute;bottom:5px;left:6px;padding:3px 6px;background:#efe2beeb;border:1px solid #9c7a3f66;font:600 12px/1.3 var(--sans)}
.sheet-content .alliance-flag-alliance,.sheet-content .alliance-flag-status{margin:5px 0;font:13px/1.35 var(--sans);overflow-wrap:anywhere}
.alliance-flag-status{color:#654b2b}
.alliance-flag-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:9px}
.alliance-flag-actions:has(>button:only-child){grid-template-columns:1fr}
.sheet-content .alliance-flag-actions>button{min-width:0;min-height:44px;font-size:15px;gap:4px;padding:9px 6px;overflow-wrap:anywhere}
.alliance-flag-actions>button>.icon{flex:none;width:20px;height:20px}
.alliance-flag-confirmation{text-align:center;padding:7px 0}
.alliance-flag-confirmation .reason{font-size:13px}
.alliance-flag-confirmation>button{margin-top:9px;min-height:44px;font-size:17px}
.alliance-flag-card button:focus-visible{outline:2px solid #78511d;outline-offset:2px}
@media(max-height:520px){.action-sheet[data-view='map-location'][data-location-kind='alliance-flag']{bottom:calc(5px + var(--realm-chat-height,0px));max-height:calc(100% - 10px - var(--realm-chat-height,0px))}.alliance-flag-scene{height:115px}.alliance-flag-scene .map-location-object-art{height:95px}}
@media(forced-colors:active){.alliance-flag-scene{background:Canvas;border-color:CanvasText}.alliance-flag-coordinates{background:Canvas;color:CanvasText}}
.alliance-construction-panel .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.alliance-construction-panel h3{font-family:var(--serif);color:var(--green);overflow-wrap:anywhere}
.alliance-construction-panel :is(.primary-button,.secondary-button){min-width:0;min-height:44px;white-space:normal;overflow-wrap:anywhere;--button-overhang:-5px}
.alliance-construction-intro{display:flex;gap:12px;align-items:center;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--antique-gold)}
.alliance-construction-intro>span{display:grid;place-items:center;width:48px;height:60px;flex:none;color:var(--gold);background:var(--green);clip-path:polygon(0 0,100% 0,100% 85%,50% 100%,0 85%)}
.alliance-construction-intro .icon{width:28px;height:28px}
.alliance-construction-intro h3{font-size:25px;margin:0 0 6px}.alliance-construction-intro p{font:13px/1.4 var(--sans);margin:0;color:var(--antique-muted)}
.alliance-construction-catalogs{display:grid;gap:14px}
.alliance-construction-catalog{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:12px;padding:14px;border:1px solid #b3965a88;box-shadow:inset 0 0 16px #c6aa7040;background:linear-gradient(135deg,#f8eddb80,#d9c99f44)}
.alliance-construction-art{display:block;object-fit:contain;width:100%;height:116px;filter:drop-shadow(0 4px 3px #37291733)}
.alliance-structure-art{--alliance-structure-size:116px;display:flex;align-items:center;justify-content:center}
.alliance-structure-canvas{position:relative;display:block;flex:none;width:min(100%,var(--alliance-structure-size));aspect-ratio:1}
.alliance-structure-art.is-military-post>.alliance-structure-canvas{width:min(90%,calc(var(--alliance-structure-size)*.9))}
.alliance-structure-canvas>.alliance-structure-sprite{display:block;width:100%;height:100%;object-fit:contain}
.alliance-post-standard{position:absolute;left:42.5%;top:39.5%;width:13%;height:21%;overflow:hidden}
.alliance-post-standard>img{position:absolute;max-width:none;width:259.7403%;height:188.6793%;left:-107.7922%;top:-37.7358%}
.alliance-structure-standards{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.alliance-construction-row .alliance-structure-art{--alliance-structure-size:76px}
.alliance-construction-detail>header .alliance-structure-art{--alliance-structure-size:184px}
.alliance-flag-scene .alliance-structure-art{--alliance-structure-size:135px}
.territorial-scene-flag.alliance-structure-art{--alliance-structure-size:160px}
.military-target-art .alliance-structure-art{--alliance-structure-size:76px;width:100%;height:100%}
.military-target-preview .military-target-art .alliance-structure-art{--alliance-structure-size:120px}
@media(max-width:390px){.military-target-preview .military-target-art .alliance-structure-art{--alliance-structure-size:96px}}
.alliance-construction-catalog h3{font-size:23px;line-height:1.05;margin:0 0 7px}.alliance-construction-catalog p{font:13px/1.4 var(--sans);margin:0;color:var(--antique-muted)}
.alliance-construction-count{display:inline-block;margin-top:10px;font:700 20px var(--serif);color:var(--green)}
.alliance-treasury{margin-bottom:20px;border:1px solid #b3965a88;background:#ede2c766}
.alliance-treasury>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;border-bottom:1px solid #b3965a66}
.alliance-treasury h3{margin:0;font-size:21px;line-height:1.1}.alliance-treasury>header>span{font:11px/1.3 var(--sans);color:var(--antique-muted);text-align:right}
.alliance-treasury-resources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#b3965a44}
.alliance-treasury-resources article{min-width:0;padding:11px 12px;background:#f3ebd9}
.alliance-treasury-resources article>div{display:flex;align-items:center;gap:6px;font:12px var(--sans)}
.alliance-treasury-resources article>strong{display:block;margin:4px 0;font:700 22px var(--serif);color:var(--green);overflow-wrap:anywhere}
.alliance-treasury-resources small{display:block;font:11px/1.4 var(--sans);color:var(--green)}
.alliance-construction-catalog-cost{grid-column:1/-1;border-top:1px solid #b3965a66;padding-top:9px}
.alliance-construction-catalog-cost>small{display:block;margin-bottom:5px;font:11px var(--sans);color:var(--antique-muted)}
.alliance-construction-catalog-cost>div{display:flex;flex-wrap:wrap;gap:8px 14px;font:13px var(--sans)}
.alliance-construction-cost-item{display:inline-flex;align-items:center;gap:5px}
.alliance-construction-cost{margin-top:14px;border:1px solid #b3965a88;padding:10px}
.alliance-construction-cost h3{font-size:21px;margin:0 0 8px}
.alliance-construction-cost-head,.alliance-construction-cost-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(55px,auto) minmax(55px,auto);gap:8px;align-items:center;padding:8px 0;font:12px var(--sans)}
.alliance-construction-cost-head{font-size:10px;color:var(--antique-muted);border-bottom:1px solid #b3965a66}
.alliance-construction-cost-row>span:first-child{display:flex;align-items:center;gap:5px;min-width:0}
.alliance-construction-cost-row>:nth-child(2),.alliance-construction-cost-row>:nth-child(3),.alliance-construction-cost-head>:nth-child(2),.alliance-construction-cost-head>:nth-child(3){text-align:right;overflow-wrap:anywhere}
.alliance-construction-cost-row+.alliance-construction-cost-row{border-top:1px solid #b3965a44}
.alliance-construction-cost-row.is-insufficient>strong,.alliance-construction-cost-row small{color:#8b3424}
.alliance-construction-cost-row small{grid-column:1/-1;text-align:right;font:11px var(--sans)}
.alliance-construction-cost>p{font:11px/1.4 var(--sans);color:var(--antique-muted);margin:8px 0 0}
.alliance-construction-catalog>button{grid-column:1/-1;margin:0;font-size:17px}
.alliance-construction-list{display:grid;gap:10px}
.alliance-construction-row{display:grid;grid-template-columns:64px minmax(0,1fr) 20px;align-items:center;gap:10px;width:100%;padding:10px;border:1px solid #b3965a88;background:#f3e8d466;color:var(--antique-ink);text-align:left;min-height:90px}
.alliance-construction-row .alliance-construction-art{height:76px}.alliance-construction-row strong{display:block;font:700 20px/1.1 var(--serif);overflow-wrap:anywhere}.alliance-construction-row small{display:block;margin-top:7px;font:12px var(--sans);color:var(--green)}
.alliance-construction-coordinates{display:block;margin-top:6px;font:12px var(--sans);color:var(--antique-muted)}
.alliance-construction-detail{margin-top:14px}.alliance-construction-detail>header{text-align:center;background:radial-gradient(ellipse,#f8efd5a0,transparent 70%);padding:8px 12px 18px;border-bottom:1px solid #b3965a66}
.alliance-construction-detail>header .alliance-construction-art{height:184px;max-width:260px;margin:auto}.alliance-construction-detail>header h3{font-size:27px;line-height:1.1;margin:8px 0}
.alliance-construction-progress{margin:18px 0}.alliance-construction-progress>div{display:flex;justify-content:space-between;gap:10px;font:13px/1.4 var(--sans)}
.alliance-construction-progress progress{display:block;width:100%;height:9px;margin-top:8px;accent-color:var(--green)}
.alliance-construction-actions{display:grid;gap:4px;margin:8px 4px 0}
.alliance-construction-contributors{display:grid;gap:10px}

.alliance-construction-manage{margin:4px 4px 0}
/* Reuse the slim city-building buttons, preserving 44px targets and the standard 4px gap. */
.alliance-construction-panel :is(.alliance-construction-actions,.alliance-construction-manage)>button{min-height:44px;margin:0;line-height:1.15;padding:8px 19px;font-size:17px;--button-overhang:-7px}
.alliance-construction-actions>button::before,.alliance-construction-manage>button::before{border-width:18px;border-image-width:18px 24px}
.alliance-construction-selector .military-cohort{display:grid;grid-template-columns:minmax(0,1fr) 76px;align-items:center;gap:10px}.alliance-construction-selector input[type='number']{width:76px;min-height:44px;min-width:0;font:16px var(--sans);padding:8px;color:var(--antique-ink);background:#fff9e9;border:1px solid var(--antique-gold)}
.alliance-construction-selector .construction-quantity-range{grid-column:1/-1;width:100%;min-width:0}
.alliance-construction-selector .unit-label{min-width:0;display:flex;align-items:center;gap:8px}.alliance-construction-selector .unit-label>span:last-child{min-width:0}.alliance-construction-selector .unit-label strong{font-size:16px;overflow-wrap:anywhere}.alliance-construction-selector .unit-label small{display:block;font:11px/1.4 var(--sans)}
.alliance-construction-feedback{overflow-wrap:anywhere}.alliance-construction-panel :focus-visible{outline:2px solid var(--antique-gold);outline-offset:3px}
.alliance-placement-toolbar{position:absolute;z-index:30;left:50%;top:12px;transform:translateX(-50%);width:min(420px,calc(100% - 24px));padding:10px 8px 12px;color:var(--antique-ink);background:#e5d0a6;background-clip:padding-box;border:12px solid transparent;border-image:var(--ornate-paper) 8% fill / 12px / 0 stretch;box-shadow:0 3px 10px #1f261b88;text-align:center;font:13px/1.4 var(--sans);pointer-events:auto}
.alliance-placement-toolbar[hidden]{display:none}.alliance-placement-toolbar strong{display:block;font:700 21px var(--serif);margin-bottom:6px}.alliance-placement-toolbar>p{font:12px/1.35 var(--sans);margin:7px 0 0;overflow-wrap:anywhere}.alliance-placement-toolbar>p[hidden]{display:none}.alliance-placement-toolbar>div{display:flex;gap:12px;justify-content:center;margin:12px 0 0}.alliance-placement-toolbar button{min-height:44px;min-width:0;flex:1;margin:0;padding:5px 10px;font:700 15px/1.15 var(--serif);--button-overhang:-6px}
@media(max-width:390px){.action-sheet[data-view='alliance-construction'] .sheet-content{padding-inline:16px}.alliance-construction-catalog{grid-template-columns:92px minmax(0,1fr);padding:12px;gap:10px}.alliance-construction-catalog h3{font-size:21px}.alliance-construction-intro h3{font-size:23px}}
@media(min-width:700px){.action-sheet[data-view='alliance-construction']{left:auto;right:18px;top:18px;bottom:18px;width:480px;max-width:calc(100% - 36px);max-height:calc(100% - 36px)}}
@media(forced-colors:active){.alliance-construction-catalog,.alliance-construction-row,.alliance-construction-detail>header,.alliance-placement-toolbar{background:Canvas;color:CanvasText}.alliance-construction-panel h3,.alliance-construction-count,.alliance-construction-row small{color:CanvasText}}
@media(forced-colors:active){.action-sheet[data-view='alliance-construction'] #close-sheet{background:ButtonFace;color:ButtonText;border:1px solid ButtonText;filter:none}}
