/* Approved UI v0.18. Presentation only; no profile/schema or battle changes. */
#lobby{--ink:#10182e;--panel:#18213b;--gold:#e8bf70;--paper:#ffedbd;background:var(--ink);color:var(--paper)}
#lobby .lobby-header,#lobbyNav{background:linear-gradient(110deg,#111a31,#202943,#10172c);border-color:var(--gold)}
#lobby #lobbyContent>.outer-panel{background:linear-gradient(#18233d,#10172e)}
#lobby button{border-radius:0;color:var(--paper)}
#lobby button:focus-visible{outline:3px solid #fff4b2;outline-offset:3px}
#lobbyNav button,#lobby .hero-section-tabs button,#lobby .hero-loadout-tabs button,#lobby .hero-detail-topbar button{border:2px solid #b89557;background:linear-gradient(110deg,#18203b,#10182e);box-shadow:inset 0 0 0 2px #3a3b4e,0 2px 0 #73502a;min-height:44px}
#lobbyNav button.selected,#lobby .hero-section-tabs button.selected,#lobby .hero-loadout-tabs button.selected{background:linear-gradient(110deg,#835527,#c9943c,#805027);border-color:#ffe3a0;box-shadow:inset 0 0 0 2px #f3c267,0 0 9px #e7ae4c70;color:#fff4cf}
#lobby button:disabled{filter:grayscale(1);opacity:.65;cursor:not-allowed}
#lobbyNav button{display:flex;align-items:center;justify-content:center;gap:5px;font-size:16px;height:52px;min-height:52px}
#lobbyNav .nav-art{width:24px;height:24px;margin:0}
#lobby .camp-v27.camp-world{min-height:580px;background-image:url('assets/ui-v31/camp.png'),url('assets/camp-v27.png');background-position:center;background-size:100% 100%}
#lobby .camp-v27-sky{display:none}
#lobby .camp-v27:after{display:none}
#lobby .camp-v27 .camp-facility{display:flex;justify-content:center;align-items:center;height:44px;width:39%;padding:4px 6px;background:linear-gradient(110deg,#16213d,#10182d);border:2px solid #efc77c;box-shadow:inset 0 0 0 2px #54442d,0 3px 0 #805a2f}
#lobby .camp-facility .facility-icon,#lobby .camp-facility small{display:none}
#lobby .camp-v27 .camp-facility strong{text-align:center;font-size:17px;letter-spacing:1px;color:#ffedba}
#lobby .camp-v27 .tavern{left:30%;top:34%;width:40%}
#lobby .camp-v27 .tactics{left:5%;top:62%}
#lobby .camp-v27 .forge{right:5%;top:62%}
#lobby .camp-v27 .camp-future{top:85%;width:38%;min-height:42px;padding:4px;display:flex;flex-direction:column;text-align:center;background:#26303ddd;border:2px solid #8c939c;box-shadow:inset 0 0 0 2px #404a58}
#lobby .camp-future .future-sigil{display:none}#lobby .camp-future strong{font-size:14px}#lobby .camp-future small{font-size:10px;padding:0}
#lobby .hero-detail-v31 .hero-detail-topbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px}
#lobby .hero-detail-v31 .hero-selector{display:flex;overflow-x:auto;gap:5px;padding:4px 0 8px}
#lobby .hero-detail-v31 .hero-selector button{flex:0 0 57px;min-width:57px;background:#151e36;border:1px solid #ae935e;padding:3px}
#lobby .hero-detail-v31 .hero-selector button small{display:none}
#lobby .hero-detail-v31 .hero-selector img{width:30px;height:30px;object-fit:contain}
#lobby .hero-detail-v31 .hero-stage{height:460px;margin:0 -12px;padding:72px 85px 85px;overflow:hidden;background:url('assets/ui-v31/hero-hall.png') center/cover,#192642}
#lobby .hero-detail-v31 .ornate-title{position:absolute;top:8px;left:22%;right:22%;bottom:auto;width:56%;padding:6px;border:2px solid #e3bb6d;background:#152039;line-height:1.3}
#lobby .hero-detail-v31 .ornate-title strong{display:block;font-size:23px;letter-spacing:3px}
#lobby .hero-detail-v31 .ornate-title small{display:block;font-size:13px;color:#ecd6a7}
#lobby .hero-detail-v31 .hero-stars{position:absolute;top:70px;bottom:auto;left:0;right:0;font-size:22px;color:#ffc958}
#lobby .hero-detail-v31 .hero-pedestal{height:285px;align-items:flex-end;position:relative;z-index:1}
#lobby .hero-detail-v31 .hero-pedestal img{width:100%;height:270px;max-width:210px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 7px 3px #10182d88)}
#lobby .hero-detail-v31 .hero-left-slots{display:contents}
#lobby .hero-detail-v31 .hero-left-slots>button{position:absolute;width:74px;height:84px!important;z-index:3;background:#14213aeF!important;border:2px solid #dcb773!important}
#lobby .hero-detail-v31 [data-hero-gear-part=weapon]{left:10px;top:132px}
#lobby .hero-detail-v31 [data-hero-gear-part=helmet]{right:10px;top:132px}
#lobby .hero-detail-v31 [data-hero-gear-part=armor]{left:10px;top:245px}
#lobby .hero-detail-v31 [data-hero-gear-part=boots]{right:10px;top:245px}
#lobby .hero-detail-v31 .hero-left-slots img{width:42px!important;height:42px!important}
#lobby .hero-detail-v31 .hero-side-slots{left:calc(50% - 34px);right:auto;top:350px;bottom:auto;width:68px;height:68px}
#lobby .hero-detail-v31 .hero-stage-slot{width:68px;height:68px!important;background:#14213aef!important;border:2px solid #dcb773!important}
#lobby .hero-level-plaque{position:absolute;bottom:8px;left:23%;right:23%;padding:6px;text-align:center;border:2px solid #e2b66b;background:#14203a;color:#ffedbd;font-size:16px}
#lobby .hero-detail-v31 .hero-section-tabs{margin:0 -12px 10px;padding:9px;gap:7px;background:#121a30;border-bottom:0}
#lobby .hero-section-tabs button{flex:1;font-size:17px}
#lobby .hero-loadout-tabs{display:flex;gap:6px;margin:8px 0}#lobby .hero-loadout-tabs button{flex:1;font-size:12px}
#lobby .management-page,#lobby .gear-workshop{background:transparent;color:#ffedbd}
#lobby .management-hero,#lobby .archive-item,#lobby .equipment-card{background:#18223c;border-color:#b49359;box-shadow:inset 0 0 0 2px #303a50;border-radius:0}
#lobby input,#lobby select{background:#20283d;color:#ffedbd;border:1px solid #ad946b;border-radius:0;min-height:40px}
#lobby .management-stars{color:#ffce64}
@media(max-width:360px){#lobbyNav button{font-size:14px}#lobby .hero-detail-v31 .hero-stage{padding-left:72px;padding-right:72px}#lobby .hero-detail-v31 .hero-left-slots>button{width:62px}#lobby .hero-detail-v31 .hero-pedestal img{height:250px}}
#lobby .inventory-v31{margin:-12px;padding:0 12px 16px;background:#111a31}
.inventory-scenery{height:150px;margin:0 -12px;background:url('assets/ui-v31/inventory.png') center 48%/cover,#26324a}
.inventory-title{display:flex;justify-content:center;margin-top:-17px;position:relative}.inventory-title h2{min-width:45%;text-align:center;margin:0 0 10px;padding:5px 20px;background:#14203b;border:2px solid #dfb873;letter-spacing:5px}
.inventory-categories{display:flex;flex-wrap:wrap;gap:5px}.inventory-categories button{flex:1 0 21%;font-size:13px;background:#17223b;border:2px solid #ad8e55;padding:7px 3px;min-height:42px}.inventory-categories button:last-child{flex:0 0 34%}
.inventory-categories button.selected{background:linear-gradient(110deg,#825329,#bc8b3d);box-shadow:inset 0 0 0 1px #f4d48a;border-color:#ffd98d}
.inventory-searchline{display:flex;align-items:end;gap:12px;margin:12px 0 7px}.inventory-search{flex:1;font-size:11px}.inventory-search input{width:100%;display:block}.inventory-searchline>strong{white-space:nowrap;padding:10px 0;font-size:15px}
.inventory-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:10px}.inventory-filters label{min-width:0;font-size:11px}.inventory-filters select{display:block;width:100%;font-size:12px;padding:4px}
.inventory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;border:1px solid #b08d50;padding:8px;max-height:330px;overflow-y:auto}
#lobby .inventory-cell{min-width:0;min-height:108px;padding:5px 2px;background:#19243d;border:1px solid #bd9958;box-shadow:inset 0 0 0 2px #303a51;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}
.inventory-cell img{width:48px;height:48px;object-fit:contain;image-rendering:pixelated}.inventory-cell strong{font-size:11px;line-height:1.3}.inventory-cell small{font-size:9px;line-height:1.3;color:#d5c9a7}
#lobby .inventory-cell.selected{border:2px solid #ffe29a;box-shadow:0 0 8px #eec27490,inset 0 0 0 1px #e6bd6d;background:#30405b}
.inventory-selected{margin-top:12px;padding:10px;background:#f1e4cb;color:#332d29;border:3px double #ad8546}.inventory-hero-target{display:flex;justify-content:space-between;align-items:center;font-size:12px}.inventory-hero-target select{width:55%}
#lobby .inventory-selected .gear-workshop{color:#382e27}.inventory-selected .gear-heading,.inventory-selected .gear-wallet,.inventory-selected .gear-note,.inventory-selected .gear-rules{display:none}.inventory-selected .gear-item-title{padding:8px 0;margin:0}.inventory-selected .gear-item-title p{font-size:10px}.inventory-selected .gear-item-title h3{font-size:17px}.inventory-selected .gear-actions{margin-top:7px}.inventory-selected .gear-actions button{background:#1a2844;border:1px solid #ad884c;min-height:42px;font-size:12px}.inventory-selected .gear-comparison{color:#393127}.inventory-note{font-size:10px;color:#baa982}.inventory-empty{grid-column:1/-1;padding:20px;font-size:13px}
#lobby .inventory-title{background:none!important;border:0!important}#lobby .inventory-selected p,#lobby .inventory-selected h3{color:#463721!important}.inventory-simple-detail button{background:#17233e!important;color:#ffedbd!important;border:2px solid #bc9858!important}
#lobby .inventory-cell.selected strong,#lobby .inventory-cell.selected small{color:#fff0bd!important}
#lobby .hero-detail-v31 .hero-left-slots>button{display:flex!important;flex-direction:column!important;width:74px!important;height:84px!important;padding:4px!important}
#lobby .hero-detail-v31 .hero-left-slots>button img{display:block!important;opacity:.8!important;width:38px!important;height:38px!important;max-width:38px!important;max-height:38px!important}
#lobby .hero-detail-v31 .hero-left-slots>button span{display:block!important;text-align:center}#lobby .hero-detail-v31 .hero-left-slots>button strong{font-size:12px!important;color:#ffedbd!important}#lobby .hero-detail-v31 .hero-left-slots>button small{font-size:10px!important;color:#d9caa4!important}
#lobby .hero-section-tabs button.selected{background:linear-gradient(110deg,#825329,#bc8b3d)!important;color:#fff0bc!important}
#lobby .camp-v27 .camp-future{top:73%}
#lobby .camp-v27 .camp-facility,#lobby .hero-detail-topbar button,#lobby .hero-section-tabs button,#lobbyNav button,.inventory-categories button{clip-path:polygon(6px 0,calc(100% - 6px) 0,100% 6px,100% calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,0 calc(100% - 6px),0 6px)}
#lobby .hero-detail-v31 .hero-stage .hero-left-slots>.hero-ordinary-part{display:flex!important;flex-direction:column!important;width:74px!important;height:84px!important;min-height:84px!important;max-height:84px!important;padding:4px!important;background:#14213aef!important;border:2px solid #dcb773!important}
#lobby .hero-detail-v31 .hero-stage .hero-left-slots>.hero-ordinary-part img{width:38px!important;height:38px!important;max-width:38px!important;max-height:38px!important;margin:0 auto!important}
#lobby .hero-detail-v31 .hero-stage .hero-left-slots>.hero-ordinary-part span strong,#lobby .hero-detail-v31 .hero-stage .hero-left-slots>.hero-ordinary-part span small{display:block!important;line-height:1.4!important}
.hero-overview{border:2px solid #d5ad65;background:linear-gradient(120deg,#18243e,#111b32);padding:10px;margin:0 0 10px;box-shadow:inset 0 0 0 2px #303a51}
.hero-overview dl{display:grid;grid-template-columns:repeat(4,1fr);margin:0 0 12px;text-align:center}.hero-overview dl>div{border-right:1px solid #8a785b}.hero-overview dl>div:last-child{border:0}.hero-overview dt{font-size:11px;color:#dfc99b}.hero-overview dd{margin:6px 0 0;font-size:21px;color:#fff0be;font-weight:700}
.hero-equipment-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.hero-equipment-actions button{background:#17213c;border:2px solid #d6af67;font-size:15px!important}.hero-equipment-actions button:first-child{background:linear-gradient(120deg,#9c6c2e,#e1b254);color:#302419!important}
.hero-stat-notes{font-size:10px;color:#c7b78f;margin-top:10px}.hero-stat-notes summary{text-align:center}.hero-stat-notes p{font-size:11px!important}.hero-book-config{border:1px solid #8d7751;background:#141e35;padding:8px}.hero-book-config>summary{font-size:13px;color:#eddaa9;min-height:30px;cursor:pointer;line-height:30px}

.hero-equipment-actions #heroChangeEquipment{background:linear-gradient(120deg,#9c6c2e,#e1b254)!important;color:#211909!important}

.hero-detail-v31 .hero-selector{display:flex!important;gap:7px;overflow-x:auto;padding-bottom:5px}
.hero-detail-v31 .hero-selector button{flex:0 0 57px;min-height:65px;padding:4px 3px!important}
.hero-detail-v31 .hero-selector button span{display:block;font-size:12px!important;line-height:17px!important;padding-bottom:2px}
.hero-detail-v31 .hero-selector button small{display:none}
.hero-detail-v31 .pixel-locked:before,.hero-detail-v31 .pixel-locked:after{display:none!important}
.hero-detail-v31 .pixel-locked{border:0!important;background:none!important;width:auto!important;height:auto!important;font-size:11px;color:#d7bf89}
.hero-detail-v31 .pixel-locked:empty::before{content:'未开放';display:block!important;position:static!important;border:0!important;background:none!important}

.hero-detail-v31 .hero-stage-slot .pixel-locked{display:block!important;min-width:44px!important;width:44px!important;height:16px!important;margin:2px auto!important;line-height:16px!important;white-space:nowrap!important}.hero-detail-v31 .hero-stage-slot .pixel-locked:empty::before{width:44px!important;font-size:10px!important;line-height:16px!important;white-space:nowrap!important}.hero-detail-v31 .hero-stage-slot strong{display:block!important;font-size:11px!important;line-height:14px!important}


.inventory-selected .gear-grade{color:#463313!important;border-color:#967033!important;background:#e4c681!important}

/* Refinement pass: shared icon scale + layered pixel plaques. No data changes. */
#lobbyNav .nav-art{width:25px!important;height:25px!important;min-width:25px;position:relative;top:0!important;transform:none!important;clip-path:none!important;border:0!important;box-shadow:none!important;background:transparent center/contain no-repeat!important}
#lobbyNav .nav-art:before,#lobbyNav .nav-art:after{display:none!important}
#lobbyNav .nav-art-home{background-image:url('assets/ui-v31/nav/home.svg')!important}
#lobbyNav .nav-art-training{background-image:url('assets/ui-v31/nav/heroes.svg')!important}
#lobbyNav .nav-art-deploy{background-image:url('assets/ui-v31/nav/battle.svg')!important}
#lobbyNav .nav-art-library{background-image:url('assets/ui-v31/nav/inventory.svg')!important}
#lobbyNav button.selected .nav-art{filter:brightness(.32) sepia(.8)}
#lobby .camp-v27 .camp-facility,#lobby .hero-detail-v31 .ornate-title,.inventory-title h2{border:3px solid #c5964c!important;box-shadow:inset 0 0 0 2px #ffdc8c,inset 0 0 0 5px #574532,0 3px 0 #352b23!important;background:linear-gradient(90deg,#111c33,#253451 48%,#111c33)!important;clip-path:polygon(10px 0,calc(100% - 10px) 0,calc(100% - 10px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 10px) calc(100% - 4px),calc(100% - 10px) 100%,10px 100%,10px calc(100% - 4px),0 calc(100% - 4px),0 4px,10px 4px)}
#lobby .camp-v27 .camp-facility{height:48px;padding:6px 12px}
#lobby .camp-v27 .camp-facility:before,#lobby .camp-v27 .camp-facility:after{content:'';position:absolute;top:18px;width:5px;height:7px;background:#efd08a;box-shadow:0 1px 0 #715126}
#lobby .camp-v27 .camp-facility:before{left:8px}#lobby .camp-v27 .camp-facility:after{right:8px}
#lobby .hero-detail-v31 .ornate-title{padding:8px 18px;top:8px}
#lobby .hero-detail-v31 .hero-stars{top:82px;font-size:20px}
#lobby .hero-detail-v31 .hero-selector button{height:65px!important;min-height:65px!important;flex:0 0 57px!important;justify-content:center;gap:3px!important;padding:4px 3px 6px!important}
#lobby .hero-detail-v31 .hero-selector span{line-height:17px!important;font-size:12px!important;padding-bottom:2px}
#lobby .hero-detail-v31 .hero-pedestal img{height:290px;max-width:224px;width:112%;max-height:none;flex-shrink:0}
#lobby .hero-detail-v31 .hero-pedestal{display:flex;justify-content:center}
@media(max-width:360px){#lobby .hero-detail-v31 .hero-pedestal img{height:265px;max-width:190px}}

#lobby .hero-detail-v31 .hero-pedestal img{height:270px!important;max-height:270px!important;max-width:210px!important;width:100%!important}@media(max-width:360px){#lobby .hero-detail-v31 .hero-pedestal img{height:250px!important;max-height:250px!important;max-width:190px!important}}


#lobby .hero-detail-v31 .hero-selector button.selected span{color:#fff0bc!important}#lobby .hero-detail-v31 .hero-selector button.selected{background:#30405b!important;box-shadow:inset 0 0 0 2px #b99453!important}


#lobbyNav button.selected .nav-art{filter:brightness(1.12)!important}#lobby .hero-detail-v31 .hero-pedestal img{transform:translateY(16px);filter:drop-shadow(0 4px 2px #10182daa)}


/* Preserve transparent portrait alpha instead of legacy teal image tiles. */
#lobby .hero-detail-v31 .hero-selector img{background:transparent!important;border:0!important;box-shadow:none!important}

.inventory-batch-action,.inventory-batch-bar{margin:10px 0;border:1px solid #c6a15a;padding:10px;background:#1b2842}
.inventory-batch-action button,.inventory-batch-bar button{min-height:44px;border:2px solid #deb876;background:#754a26;color:#fff0bc}
.batch-salvage-list{display:grid;gap:7px}.batch-salvage-list label{display:flex;align-items:center;gap:10px;min-height:54px;padding:8px;border:1px solid #8c754f;background:#18243b}.batch-salvage-list img{width:40px;height:40px;object-fit:contain}.batch-salvage-list input{width:22px;height:22px}.batch-salvage-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.batch-salvage-actions button{min-height:44px}.batch-salvage-summary{color:#ffe0a0}
.inventory-batch-bar{display:grid;gap:7px}.inventory-batch-bar small{font-size:11px;color:#ccb88c}.inventory-batch-bar button{width:100%}.inventory-batch-confirm ul{list-style:none;padding:0;display:grid;gap:8px}.inventory-batch-confirm li label{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px;background:#1b2944;border:1px solid #a2834b}.inventory-batch-confirm input{width:22px;height:22px}.inventory-batch-confirm button{min-height:44px;margin:5px;min-width:42%;border:2px solid #d5ab5d;background:#203350;color:#ffefbd}.inventory-batch-confirm .gear-warning{font-size:12px;color:#e4c28f!important}

/* Bulk cleanup toolbar */

#lobby .batch-select-tools{display:flex;gap:8px;margin:12px 0}#lobby .batch-select-tools button{flex:1;min-height:44px}#lobby .inventory-batch-bar button{min-height:44px}
/* Camp hotspots align with their own building terraces, not the next row. */
#lobby .camp-v27 .camp-facility{height:58px;flex-direction:column;gap:2px;padding:6px 10px}
#lobby .camp-v27 .camp-facility strong{font-size:16px;line-height:1.2;letter-spacing:0}
#lobby .camp-v27 .camp-facility small{display:block;margin:0;padding:0;font-size:10px;line-height:1.3;text-align:center;color:#ddceb0}
#lobby .camp-v27 .tavern{top:34%}
#lobby .camp-v27 .tactics,#lobby .camp-v27 .forge{top:51%}
#lobby .camp-v27 .camp-future{top:73%;min-height:48px;box-sizing:border-box}
@media(max-width:360px){#lobby .camp-v27 .camp-facility strong{font-size:14px}#lobby .camp-v27 .camp-facility small{font-size:9px}}
/* Functional supply inventory, awaiting the scheduled unified art pass. */
.supplies-panel .inventory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.supply-cell{display:flex;flex-direction:column;gap:7px;padding:12px;background:#111d30;border:1px solid #405471;border-radius:8px;min-width:0}.supply-cell img{width:40px;height:40px;object-fit:contain;image-rendering:pixelated}.supply-cell small{line-height:1.5;color:#b8c8dd}.supply-cell button{padding:8px 4px;font-size:12px}.supplies-panel>label{display:block;margin:12px 0}.supplies-panel input[type=checkbox]{width:20px;height:20px;vertical-align:middle;margin-right:8px}.supplies-panel select{display:block;width:100%;margin-top:6px}
.supply-attack img{filter:hue-rotate(170deg)}.supply-defense img{filter:hue-rotate(40deg)}.supply-hp img{filter:hue-rotate(230deg)}.supply-critChance img{filter:hue-rotate(290deg)}.supply-xp img{filter:hue-rotate(70deg)}.supply-loot img{filter:sepia(1) saturate(4)}

/* B34 five quality: labels supplement color, never color alone. */
.inventory-cell.quality-ordinary,.archive-item.quality-ordinary,.panel .gear-inventory .gear-card.ordinary,.gear-grade.ordinary{border-color:#d5dce1;}
.gear-grade.ordinary{color:#d5dce1;}
.inventory-cell.quality-refined,.archive-item.quality-refined,.panel .gear-inventory .gear-card.refined,.gear-grade.refined{border-color:#76d59a;}
.gear-grade.refined{color:#76d59a;}
.inventory-cell.quality-rare,.archive-item.quality-rare,.panel .gear-inventory .gear-card.rare,.gear-grade.rare{border-color:#72b6ff;}
.gear-grade.rare{color:#72b6ff;}
.inventory-cell.quality-epic,.archive-item.quality-epic,.panel .gear-inventory .gear-card.epic,.gear-grade.epic{border-color:#ffa34e;}
.gear-grade.epic{color:#ffa34e;}
.inventory-cell.quality-legendary,.archive-item.quality-legendary,.panel .gear-inventory .gear-card.legendary,.gear-grade.legendary{border-color:#ff7281;}
.gear-grade.legendary{color:#ff7281;}

#lobby .inventory-cell.quality-ordinary strong{color:#d5dce1!important;}
#lobby .inventory-cell.quality-refined strong{color:#76d59a!important;}
#lobby .inventory-cell.quality-rare strong{color:#72b6ff!important;}
#lobby .inventory-cell.quality-epic strong{color:#ffa34e!important;}
#lobby .inventory-cell.quality-legendary strong{color:#ff7281!important;}
/* B35: approved v04 unique destinations, 3-facility war scene. */
.war-outpost{position:relative;width:100%;height:calc(100dvh - 180px);min-height:430px;max-height:880px;overflow:hidden;background:#375c4e url('assets/ui-v31/war-outpost.png') center center/100% 100% no-repeat;border:1px solid #bc9957;border-radius:12px;isolation:isolate}
.war-progress{position:absolute;top:12px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#112d45e8;color:#f6e5b4;border:1px solid #caa96c;padding:7px 12px;border-radius:5px;font-size:12px}
.war-facility{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:54px;padding:7px 10px;background:linear-gradient(#183d60,#102039);border:2px solid #d9b76c;box-shadow:0 3px 0 #46371e,0 5px 12px #0006;color:#ffe6a5;text-shadow:0 2px #000;font-family:serif}
.war-facility strong{font-size:clamp(18px,5vw,25px);letter-spacing:1px}.war-facility small{font:11px sans-serif;color:#d5dfdf}.war-main{top:37%;left:32%;width:38%}.war-endless{top:57%;left:4%;width:37%}.war-supply{top:59%;right:3%;width:46%}.war-facility:focus-visible{outline:3px solid white;outline-offset:4px}
#lobby[data-page="deploy"] #lobbyContent:has(.war-outpost){padding:8px 10px;overflow:hidden}
@media(max-width:374px){.war-facility{padding:6px 4px}.war-facility strong{font-size:18px}}
#lobby #lobbyContent .war-facility{margin:0!important;display:flex!important;padding:6px 5px!important;height:56px!important;min-height:56px!important;min-width:0!important;background:linear-gradient(#17395b,#101f37)!important;border:2px solid #d9b76c!important;border-radius:5px!important;line-height:1.2!important}
#lobby #lobbyContent .war-main{width:44%!important;left:28%!important;top:37%!important}
#lobby #lobbyContent .war-endless{width:38%!important;left:3%!important;top:57%!important}
#lobby #lobbyContent .war-supply{width:49%!important;right:2%!important;top:59%!important}
#lobby #lobbyContent .war-facility strong{font-size:20px!important;white-space:nowrap}
#lobby #lobbyContent .war-facility small{font-size:10px!important}

.inventory-grid > .inventory-empty{grid-column:1/-1;padding:16px;border:1px solid #b99a5e;background:#163544;color:#f6e5b4}.inventory-empty p{line-height:1.6}.inventory-empty button{width:100%;min-height:44px}
/* B36: geometry follows approved 1024x1536 artwork, not viewport percentages. */
#lobby[data-page="deploy"] #lobbyContent:has(.war-outpost){padding:0;background:#101b2d;overflow:auto}
#lobby #lobbyContent>.outer-panel:has(.war-outpost){padding:0;margin:0;max-width:none;border:0;border-radius:0;background:transparent;box-shadow:none}
#lobby .war-outpost{width:100%;height:auto;aspect-ratio:2/3;min-height:0;max-height:none;border:0;border-radius:0;background-size:100% 100%;margin:0 auto;container-type:inline-size}
#lobby #lobbyContent .war-facility{transform:translate(-50%,-50%);height:44px!important;min-height:44px!important;max-width:none!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none;padding:0!important;font-family:serif;isolation:isolate}
#lobby #lobbyContent .war-facility:before{content:'';position:absolute;inset:5px 0;z-index:-1;background:linear-gradient(#203047,#101a30);border:2px solid #f2ce7b;box-shadow:inset 0 0 0 2px #756036;clip-path:polygon(8px 0,calc(100% - 8px) 0,calc(100% - 8px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 8px) calc(100% - 4px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 4px),0 calc(100% - 4px),0 4px,8px 4px)}
#lobby #lobbyContent .war-main{left:50%!important;top:36.85%!important;width:29%!important}
#lobby #lobbyContent .war-endless{left:25.5%!important;top:56.1%!important;width:28%!important}
#lobby #lobbyContent .war-supply{left:76.2%!important;right:auto!important;top:59.0%!important;width:35%!important}
#lobby #lobbyContent .war-facility strong{font-size:clamp(16px,4.8cqw,24px)!important;letter-spacing:0;line-height:1.2}
#lobby #lobbyContent .war-facility small{display:none}
#lobby .war-progress{top:auto;bottom:5%;font-size:11px;padding:5px 8px;background:#101b2dd9}
/* Full-bleed viewport: cover crops scenery edges only; anchor coordinates use the same scale. */
#lobby .war-outpost{height:calc(100dvh - 126px);aspect-ratio:auto;min-height:430px;container-type:size;background-size:cover;background-position:center center}
#lobby #lobbyContent .war-main{top:calc(50% - .1315 * max(100cqh,150cqw))!important}
#lobby #lobbyContent .war-endless{left:calc(50% - .245 * max(100cqw,66.6667cqh))!important;top:calc(50% + .061 * max(100cqh,150cqw))!important}
#lobby #lobbyContent .war-supply{left:calc(50% + .262 * max(100cqw,66.6667cqh))!important;top:calc(50% + .09 * max(100cqh,150cqw))!important}
#lobby #lobbyContent .war-facility strong{font-size:clamp(16px,4.8vw,24px)!important}
@media(max-width:360px){#lobby .war-outpost{height:calc(100dvh - 114px)}}
/* Keep the supply plaque inside the safe edge on tall phones; artwork stays proportional. */
#lobby #lobbyContent .war-supply{left:min(80.5%,calc(50% + .262 * max(100cqw,66.6667cqh)))!important}
/* B37: building hit areas map through the same cover transform as the art. */
#lobby #lobbyContent .war-building{position:absolute!important;transform:translate(-50%,-50%);margin:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;min-height:44px;min-width:44px;cursor:pointer;z-index:1}
#lobby #lobbyContent .war-facility{z-index:2}
#lobby .war-progress{z-index:2;pointer-events:none}
#lobby .war-building-main{left:50%;top:calc(50% - .27 * max(100cqh,150cqw));width:calc(.42 * max(100cqw,66.6667cqh));height:calc(.24 * max(100cqh,150cqw))}
#lobby .war-building-endless{left:calc(50% - .28 * max(100cqw,66.6667cqh));top:calc(50% - .095 * max(100cqh,150cqw));width:calc(.25 * max(100cqw,66.6667cqh));height:calc(.25 * max(100cqh,150cqw))}
#lobby .war-building-supply{left:calc(50% + .265 * max(100cqw,66.6667cqh));top:calc(50% - .005 * max(100cqh,150cqw));width:calc(.43 * max(100cqw,66.6667cqh));height:calc(.16 * max(100cqh,150cqw))}
/* B44 approved B43 secondary layout. Existing business transactions unchanged. */
#lobbyContent .b44-banner{background:linear-gradient(0deg,#102137,transparent),url('assets/ui-v31/war-outpost.png') 50% 16%/100% auto;padding:35px 18px 18px;min-height:170px;border-radius:0}.b44-stage-track,.b44-tabs{display:flex;gap:8px;margin:12px 0}.b44-stage-track button,.b44-tabs button{flex:1;min-height:44px;border-radius:0;background:#192c42;color:#c0ccda;border:1px solid #4e6177}.b44-stage-track .selected,.b44-tabs .selected,.b44-buffs .selected{border-color:#e4c47b!important;color:#ffe4a1!important;background:#3c4141!important}.b44-campaign .chapter-stage{display:block;padding:16px;background:#1b2b40;border:1px solid #69768a;border-radius:0}.b44-campaign .chapter-stage[hidden],.b44-supply [hidden]{display:none!important}.b44-campaign .stage-number{display:none}.b44-campaign .stage-copy h3{font-size:24px}.b44-campaign .stage-copy p{line-height:1.65}.b44-campaign .b44-ready{background:#192d40;border-radius:0}.b44-optional{margin-top:16px}.b44-supply{padding:0!important;background:transparent!important;border:0!important}.b44-store-banner{padding:24px 14px!important;background:linear-gradient(90deg,#17273bec,#17273baa),url('assets/ui-v31/war-outpost.png') 90% 53%/100% auto;font-size:22px!important}.b44-products{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.b44-products .supply-cell{min-width:0;border-radius:0;background:linear-gradient(135deg,#2b4052,#1b2c41);padding:10px;border:1px solid #64788c}.b44-products .supply-cell img{width:32px;height:36px}.b44-products button,.b44-buffs button{min-height:44px;font-size:12px}.b44-products small{font-size:11px}.b44-carry-row{display:block!important;margin:12px 0;padding:12px;background:#22364b;border:1px solid #596b7f}.b44-carry-row input{width:20px;height:20px;vertical-align:middle}.b44-buffs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.b44-buffs button{background:#20354b;border:1px solid #66778b;color:#e4d9bc;padding:12px}.b44-buffs small{display:block;margin-top:8px;color:#9fb1c3}.b44-purchase{padding:18px;background:#1b2c41;border:1px solid #ac9564}.b44-purchase input{min-height:44px;width:100px}.b44-purchase button{min-height:46px}#saveSupplies{min-height:46px}#lobbyContent.b44-campaign{overflow-x:hidden}
/* Mobile polish after actual screenshot review. */
.b44-supply>p:not(.warning){font-size:11px;line-height:1.5;margin:7px 0}.b44-supply .inventory-grid.b44-products{max-height:none;height:auto;overflow:visible}.b44-products .supply-cell{display:flex;flex-direction:column;gap:4px;min-height:0!important;height:auto!important}.b44-products .supply-cell strong{font-size:13px}.b44-products .supply-cell span{font-size:11px}.b44-products .supply-cell img{margin:0}.b44-products .supply-cell button{margin:2px 0 0}.b44-supply .b44-store-banner{padding:15px 12px!important;margin:0!important}.b44-supply .b44-carry-row{padding:9px;margin:8px 0;font-size:13px}.b44-supply .b44-buffs button{padding:8px}.b44-supply #saveSupplies{position:sticky;bottom:0;z-index:2;background:#d5b367;color:#18283a;width:100%}.b44-supply h3{font-size:18px;margin:10px 0}.b44-campaign .b44-secondary{font-size:11px;min-height:30px;padding:5px}.b44-campaign .chapter-stage .primary{position:sticky;bottom:0;z-index:2}.b44-campaign .chapter-heading h1{font-size:26px}
.b46-banner{background:linear-gradient(0deg,#14253be8,transparent),url('assets/ui-v31/war-outpost.png') center 18%/100% auto;padding:35px 18px 18px;margin:14px 0;min-height:170px}.b46-banner h1{font-size:28px}.b46-continue{width:100%;min-height:56px}.b46-chapters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.b46-chapters button{text-align:left;min-height:82px;padding:12px}.b46-chapters small{display:block;margin-top:8px;color:#b8c9da}.b46-chapterbar{display:flex;align-items:center;justify-content:space-between;margin:16px 0}.b46-chapterbar button{min-width:44px;min-height:44px}.b46-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.b46-grid button{min-height:70px;padding:8px 2px;margin:0;background:#243a50;color:#ddc898;border:1px solid #6c7f92}.b46-grid b{display:block;font-size:20px}.b46-grid small{display:block;font-size:10px;margin-top:6px}.b46-grid .cleared{color:#a8d2be}.b46-grid .current{border-color:#e9c87d;background:#574932}.b46-grid .locked{opacity:.55}.b46-grid .selected{outline:2px solid #f5dfaa;outline-offset:1px}.b46-selector{margin-bottom:18px}
.b46-chapterbar button{width:44px!important;max-width:44px;flex:0 0 44px}.b46-chapterbar strong{flex:1;text-align:center;white-space:nowrap}.b46-chapters button{width:100%}.b46-chapters strong{white-space:nowrap}
#hud{align-items:center;flex-wrap:wrap}#battleSpeed{width:44px;min-width:44px;height:44px;margin:0;padding:4px;color:#f5daa0;background:#24374a;border:1px solid #b99f68;font-size:15px;line-height:1;flex:0 0 44px}#hud #wave{min-width:0;font-size:12px}#hud #timer{font-variant-numeric:tabular-nums}
