/* Final responsive layer: shared artwork and controls, no legacy mobile sizing. */
.mobile-estate-header{display:none}
@media(max-width:1100px){
 html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}#app{height:100dvh;min-height:0;overflow:hidden}.shell{height:100%;min-height:0;width:100%;overflow:hidden}.shell>*{min-width:0}
 .topbar,.shell:has(>.home)>.topbar{height:54px;min-height:54px;max-height:54px;padding:6px 12px;gap:8px;display:flex}.top-title{min-width:0;gap:8px}.top-title h1,.shell:has(>.home)>.topbar h1{font-size:21px;line-height:1.2}.top-title small{display:none}.shell:has(>.home)>.topbar .top-title{padding:0}.top-actions{gap:6px}.back{min-width:64px;font-size:20px;padding:3px 12px;min-height:38px}.top-actions .pill{font-size:13px;padding:4px 7px}.notices-button{min-height:38px;font-size:15px;padding:5px 8px}
 .estate{height:100%;min-height:0;max-height:100%;width:100%;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 36px auto minmax(0,1fr) 22px;gap:8px;padding:8px;overflow:hidden;background-size:cover;background-position:center}.estate-hud-scroll,.portrait-hud{display:none}.mobile-estate-header{display:flex;align-items:center;gap:8px;min-width:0;min-height:44px;padding:4px 8px;background:linear-gradient(90deg,#242820ee,#24282088);border:1px solid #9e875b;border-radius:4px}.mobile-estate-header strong{flex:1;min-width:0;font-size:16px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f3e3b7}.mobile-estate-header .metal{font-size:14px;padding:4px 9px;min-height:34px;flex-shrink:0}.mobile-estate-header .back{font-size:16px;min-width:48px;padding:3px 7px;min-height:34px}
 .estate-heading{width:100%;margin:0;min-height:0;z-index:4}.lord-picker{width:100%;max-width:none}.lord-picker summary{min-height:36px;height:36px;padding:4px 12px;font-size:15px;font-weight:700;border-radius:4px}.lord-picker>div{max-height:45dvh;overflow:auto}
 .estate-shortcuts{position:static;inset:auto;width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0}.estate-shortcuts>button{width:100%;height:38px;min-height:38px;font-size:14px;font-weight:700;gap:3px;padding:3px 5px;line-height:1.2;border-radius:4px}.estate-shortcuts svg{display:none}
 .estate-armies{width:100%;max-width:none;min-height:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:minmax(0,1fr);align-items:end;gap:6px;padding:0;margin:0;overflow:visible}.estate-army{min-width:0;min-height:0;width:100%;padding:3px;display:grid;grid-template-rows:32px auto 56px;gap:0;border-radius:4px;overflow:hidden}.estate-army header{display:flex;align-items:center;justify-content:center;min-height:0;padding:3px;margin:0}.estate-army header strong{font-size:14px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.estate-portraits{min-height:0;width:100%;align-items:center}.estate-portraits>span,.estate-portraits>span:first-child{width:100%;min-height:0;aspect-ratio:222/333;overflow:hidden}.estate-empty{font-size:24px}.estate-army footer{height:56px;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:3px 1px;font-size:13px;line-height:1.3}.estate-adviser-label{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estate-actions{min-width:0;min-height:0;padding:0;margin:0;justify-content:center}.estate-actions>span{font-size:12px;line-height:1.3;text-align:center}
 .unit-board{flex:1;min-height:0;overflow:hidden;display:flex}.unit-top{height:100%;min-height:0;max-height:100%;width:100%;margin:0;padding:8px 10px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:142px minmax(0,1fr) 30px;gap:8px 14px;align-items:stretch;align-content:stretch}.game-army-info{grid-column:1;grid-row:1;align-self:stretch;min-width:0;display:grid;grid-template-columns:1fr;grid-template-rows:28px 30px minmax(28px,1fr) 36px;gap:3px;position:relative}.game-share{font-size:15px;min-height:28px;padding:0;gap:5px}.game-share svg{width:18px;height:18px}.game-info-name{padding:0 4px;gap:4px;flex-wrap:nowrap;min-width:0}.game-info-name strong{font-size:15px;white-space:nowrap}.game-info-name .metal{font-size:12px;padding:3px 5px;min-height:28px}.game-custom-name{position:absolute;top:28px;left:0;max-width:calc(100% - 68px);height:30px;font-size:14px;padding:4px;background:#393127;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-army-info:has(.game-custom-name) .game-info-name strong{visibility:hidden}.game-army-info dl{display:flex;align-items:stretch;min-width:0}.game-army-info dl>div{padding:2px 4px;gap:5px;flex:1;min-width:0}.game-army-info dt,.game-army-info dd{font-size:14px}.faction-buff{min-height:28px;font-size:13px;padding:2px 5px}.game-info-actions{padding:0;gap:4px;display:grid;grid-template-columns:1fr 1fr}.game-info-actions button{padding:4px 2px;font-size:14px;min-height:34px;white-space:nowrap}
 .game-troop-panel{grid-column:2;grid-row:1;min-height:0;height:100%;width:100%;max-width:320px;align-self:stretch;display:grid;grid-template-rows:32px minmax(0,1fr) 34px;gap:2px}.game-panel-tabs{height:32px;min-height:0;padding:0;gap:4px}.game-panel-tabs button{font-size:14px;min-height:30px;padding:3px}.game-troop-panel .game-troop-art,.game-troop-art:not(.military-art){height:100%;min-height:0;aspect-ratio:auto;width:100%;margin:0}.game-troop-panel .game-troop-art>img{position:absolute;inset:0;height:100%;width:100%;object-fit:contain}.game-troop-nav{height:34px;min-height:0;padding:0;grid-template-columns:32px minmax(0,1fr) 32px;gap:3px}.game-troop-nav button{font-size:14px;min-height:32px;padding:2px}.game-troop-art.military-art .strategist-plus{left:calc(50% - 28px);top:calc(50% - 24px);width:56px;height:48px;min-height:0}.game-troop-art.military-art .strategist-plus span{font-size:12px}.game-troop-panel .adviser-summary.adviser-panel{height:34px;min-height:0;grid-template-columns:30px minmax(0,1fr) 30px;padding:0;margin:0;gap:5px}.game-troop-panel .adviser-panel .adviser-portrait{height:32px;width:30px}.game-troop-panel .adviser-panel b{font-size:14px}.game-troop-panel .adviser-panel .adviser-change{height:30px;min-height:30px;width:30px;min-width:30px}
 .unit-top .army-carousel{grid-column:1/-1;grid-row:2;display:flex;flex-direction:column;justify-content:center;align-items:center;align-self:stretch;height:100%;width:100%;min-height:0;max-width:none;padding:0 22px;gap:6px;container-type:size}.unit-top .formation-status{flex:0 0 32px;height:32px;min-height:32px;margin:0;grid-column:auto;grid-row:auto}.unit-top .army-position{gap:8px}.unit-top .army-position strong{font-size:18px}.army-dot{width:32px;min-width:32px;height:32px;min-height:32px}.unit-top .formation-cards{flex:0 0 auto;grid-column:auto;grid-row:auto;width:min(100%,calc((100cqh - 112px)*2));max-width:760px;min-width:0;gap:8px;align-content:start;align-items:start}.unit-top .unit-slot{grid-template-rows:32px auto 26px;gap:5px;min-width:0}.unit-top .slot-label{height:32px;min-height:32px;max-height:32px;display:flex;align-items:center;justify-content:space-between;font-size:14px;padding:0 2px;gap:2px}.unit-top .slot-label>span{padding:0 2px;line-height:1;flex:1;min-width:0;white-space:nowrap}.unit-top .slot-label .retreat{position:static;min-height:28px;height:28px;font-size:12px;padding:2px 4px;margin:0;flex-shrink:0;border-radius:3px}.unit-top .unit-slot .hero-card,.unit-top .unit-slot .slot-empty{width:100%;height:auto;min-height:0;aspect-ratio:222/333}.unit-top .slot-aptitude{height:26px;min-height:26px;max-height:26px;padding:0 2px;font-size:14px;gap:4px}.unit-top .slot-aptitude strong{font-size:14px}.unit-top .army-arrow{position:absolute;top:50%;transform:translateY(-50%);width:24px;min-width:24px;min-height:48px;font-size:26px;padding:0}.unit-top .army-arrow.previous{left:0}.unit-top .army-arrow.next{right:0}.unit-top .formation-help{grid-column:1/-1;grid-row:3;height:30px;min-height:0;margin:0;padding:4px 8px;width:100%;max-width:none;align-self:center;font-size:12px;line-height:1.6}.unit-top .formation-help span{display:none}
 .army-footer{min-height:0;padding:6px 8px;gap:5px;display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-areas:'new load save' 'backup restore save';flex-shrink:0}.army-footer .spacer{display:none}.army-footer [data-action=new-army]{grid-area:new}.army-footer [data-action=saved]{grid-area:load}.army-footer [data-action=save-army]{grid-area:save}.army-footer [data-action=backup]{grid-area:backup}.army-footer [data-action=import]{grid-area:restore}.army-footer .metal,.army-footer .ghost,.army-footer .formation-save{min-width:0;width:100%;min-height:32px;margin:0;padding:3px 5px;font-size:14px;font-weight:600}
 .home{min-height:0;overflow:hidden}.home-scene{min-height:0;flex:1 1 0;height:auto}.home-controls{flex:0 0 auto;padding:10px 12px 6px;gap:0}.home-heading{margin-bottom:8px}.home-heading h1{font-size:19px}.home-heading .seal{font-size:12px}.home-menus{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.home .menu-card{min-height:56px;padding:8px 5px;gap:5px}.home-menu-icon{display:none}.home .menu-label{display:block;padding:0;min-width:0}.home .menu-label small{font-size:12px}.home .menu-label strong{font-size:15px;white-space:normal}.home .creator-credit{font-size:clamp(18px,2.5vw,26px);line-height:1.45;margin-top:10px;padding:4px}.home .home-note{font-size:12px}.home-footer{min-height:32px;padding:4px 8px}.home-ratio-note{font-size:12px}
 .list-body.selection-page{flex:1;min-height:0;padding:8px;gap:6px;overflow:hidden}.selection-page .card-fan{height:clamp(100px,23dvh,235px)}.selection-page .fan-position{min-height:24px;height:24px}.selection-page .table-main{min-height:0}.selection-page .table-scroll{min-height:0;overflow-x:hidden;overflow-y:auto}.selection-page .tabs{overflow:visible;flex-wrap:wrap;gap:3px}.selection-page .tab{flex:1 0 auto;min-width:0;min-height:36px;padding:5px 8px;font-size:15px}.selection-page .table-footer{padding:6px 0 0;gap:5px;min-height:0}.table-footer .search{min-width:0;flex:1 1 130px}.table-footer .search input{min-height:36px;padding:5px;font-size:16px}.table-footer>.muted{flex-basis:auto;font-size:12px}.table-footer>.metal{font-size:14px;padding:5px 8px;min-height:36px}.table-footer .spacer{display:none}
 .cards-area{min-height:0;overflow-x:hidden;overflow-y:auto;padding:10px}.hero-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.hero-grid.large{grid-template-columns:repeat(4,minmax(0,1fr))}.toolbar{flex-wrap:wrap;padding:6px 8px;gap:5px;flex-shrink:0}.toolbar .tabs{flex-wrap:wrap}.toolbar button{min-height:32px;font-size:14px;padding:4px 8px}.footer:not(.army-footer):not(.home-footer){padding:6px 8px;min-height:0;flex-wrap:wrap;gap:6px}.footer .search{min-width:0;flex:1}.footer .metal{font-size:14px;padding:5px 8px;min-height:36px}
 .overlay{padding:8px;overflow:hidden}.dialog{max-height:calc(100dvh - 16px);width:min(1180px,100%);min-width:0;overflow-y:auto;overflow-x:hidden;padding:14px}.dialog-title{margin-bottom:12px;padding-bottom:8px}.dialog-title h2{font-size:22px}.dialog-title .close{width:36px;height:36px;min-height:36px;flex-basis:36px}.hero-info{gap:12px}.hero-info .hero-portrait{max-width:150px}.portrait-settings .bonus-check{font-size:14px;padding:7px}.portrait-rank select{min-width:0!important;width:auto!important;font-size:15px}.hero-info .aptitudes{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}.hero-info .aptitudes span{font-size:12px;gap:3px;padding:6px 2px}.hero-info .aptitudes b{font-size:14px}.hero-info .stat-table{font-size:14px}.hero-info .stat-table th,.hero-info .stat-table td{padding:8px 3px}.effect-artwork,.effect-img{max-width:100%}.share-preview img{max-width:100%;max-height:65dvh;object-fit:contain}.download-consent{height:100dvh;min-height:0;padding:16px;overflow:auto}.download-consent>section{padding:22px}
}
@media(max-width:600px){
 .estate-armies{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(5,minmax(0,1fr));align-items:stretch;gap:5px}.estate-army{display:grid;grid-template-columns:minmax(64px,.85fr) minmax(90px,1.3fr) minmax(84px,1fr);grid-template-rows:minmax(0,1fr);height:100%;align-items:stretch;padding:2px;gap:3px}.estate-army header{height:100%;border-right:1px solid #74684f;border-bottom:0}.estate-army header strong{font-size:14px}.estate-portraits{height:100%;min-height:0;display:flex;justify-content:center;gap:2px;background:#25231e;overflow:hidden}.estate-portraits>span,.estate-portraits>span:first-child{width:auto;height:100%;max-width:33.33%;flex:0 1 auto;aspect-ratio:222/333;position:relative;display:grid;place-items:center}.estate-army footer{height:100%;font-size:13px;border-top:0;padding:2px;overflow:hidden}.estate-army footer>span{max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.estate-army footer .estate-adviser-label{display:block}.estate-shortcuts>button{font-size:13px}
 .hero-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-grid.large{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-info{display:block}.hero-info .hero-portrait{float:none;display:grid;grid-template-columns:100px minmax(0,1fr);width:100%;max-width:none;gap:12px;margin:0 0 14px}.hero-portrait .detail-art{grid-column:1;grid-row:1/3}.hero-portrait .portrait-settings{grid-column:2;grid-row:1}.hero-portrait>.metal{grid-column:2;grid-row:2;justify-self:stretch}.hero-controls .hero-level-row{grid-template-columns:1fr}.hero-controls{margin-bottom:12px}
 .selection-page .roster-header,.selection-page .roster-row,.selection-page .roster-header.stats-columns,.selection-page .roster-row.stats-columns,.selection-page .roster-header.skills-columns,.selection-page .roster-row.skills-columns{min-width:0;width:100%;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:3px;padding:5px;min-height:0;align-items:center}.selection-page .roster-header>*:nth-child(1),.selection-page .roster-row>*:nth-child(1){grid-column:1/6;grid-row:1}.selection-page .roster-header>*:nth-child(5),.selection-page .roster-row>*:nth-child(5){grid-column:6/9;grid-row:1}.selection-page .roster-header>*:last-child,.selection-page .roster-row>*:last-child{grid-column:9/11;grid-row:1}.selection-page .roster-header>*:nth-child(2),.selection-page .roster-row>*:nth-child(2){grid-column:1/4;grid-row:2}.selection-page .roster-header>*:nth-child(3),.selection-page .roster-row>*:nth-child(3){grid-column:4/7;grid-row:2}.selection-page .roster-header>*:nth-child(4),.selection-page .roster-row>*:nth-child(4){grid-column:7/11;grid-row:2}.selection-page .roster-header>*:nth-child(n+6):not(:last-child),.selection-page .roster-row>*:nth-child(n+6):not(:last-child){grid-column:span 2;grid-row:3}.selection-page .roster-header.skills-columns>*:nth-child(6),.selection-page .roster-row.skills-columns>*:nth-child(6){grid-column:1/-1}.selection-page .roster-row>span{font-size:14px;line-height:1.5;min-width:0}.selection-page .roster-row>button:first-child{font-size:16px;text-align:left;padding:3px;min-height:36px}.selection-page .roster-header .column-sort,.selection-page .roster-header>span{font-size:12px;min-height:26px;padding:2px;white-space:normal}.selection-page .roster-header .column-sort>span{font-size:12px}.roster-row .deploy-btn{font-size:14px;min-height:36px;padding:3px;width:100%}.roster-row .roster-affiliation{font-size:12px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-row>span[data-mobile-label]:before{content:attr(data-mobile-label) ' ';color:#bbad8e;font-size:12px}.roster-skills{font-size:13px;gap:5px}.roster-skills small{font-size:12px}
 .selection-page .tactic-header{grid-template-columns:1.8fr .7fr .6fr 1fr;min-width:0;font-size:13px}.selection-page .tactic-header>span:not(.rate){display:none}.selection-page .tactic-summary{grid-template-columns:minmax(0,1.8fr) .7fr .6fr .7fr;gap:4px;padding:8px 5px;min-width:0;font-size:14px}.tactic-summary .tactic-description{grid-column:1/-1;grid-row:2;font-size:13px}.tactic-summary .tactic-name{font-size:15px;min-width:0}.tactic-summary .kind,.tactic-summary .rate{font-size:12px}.tactic-details{padding:8px 5px}.effect-svg{max-width:100%;height:auto}.tactic-modal{grid-template-columns:76px minmax(0,1fr);gap:10px}.tactic-modal .stats-line{font-size:13px}.tactic-modal .data-note{font-size:12px}.tactic-modal .effect-svg{width:100%!important;height:auto!important}.tactic-modal .effect-art{overflow:hidden}.event-catalog{padding:8px}.event-material-row{grid-template-columns:90px minmax(0,1fr);gap:8px}.event-materials{flex-wrap:wrap}
 .strategist-dialog{width:100%;padding:8px}.strategist-head,.strategist-row{grid-template-columns:1.5fr repeat(4,.4fr) 1fr 1fr;min-width:0;gap:2px}.strategist-status .appoint{width:58px;height:32px}.strategist-name{font-size:14px;padding:2px}.strategist-head>span{font-size:12px;overflow-wrap:anywhere}.strategist-status{font-size:12px}.strategist-row.selected{min-height:160px}.exchange-army{grid-template-columns:60px minmax(0,1fr) 50px;height:auto;gap:4px;padding:4px}.exchange-slots{min-width:0;gap:3px}.exchange-slot{display:flex;flex-direction:column;min-width:0;min-height:0;padding:2px;gap:3px}.exchange-art{height:auto;aspect-ratio:222/333;width:100%;order:-1}.exchange-slot-info{font-size:12px}.exchange-slot-info b{font-size:12px}.exchange-slot-info span{padding:1px}.exchange-army>header{padding:24px 2px 2px}.exchange-army>header>strong{writing-mode:horizontal-tb;inset:0 0 auto;width:auto;font-size:12px;padding:2px}.exchange-army>header small,.exchange-army>header small b,.exchange-army>header>span{font-size:12px}.exchange-military{min-width:0;font-size:12px}
}
@media(min-width:601px) and (max-width:1100px){
 .selection-page .roster-header,.selection-page .roster-row,.selection-page .roster-header.stats-columns,.selection-page .roster-row.stats-columns,.selection-page .roster-header.skills-columns,.selection-page .roster-row.skills-columns{min-width:0;width:100%;gap:3px;padding:6px}.selection-page .roster-header .column-sort,.selection-page .roster-header>span{font-size:13px;white-space:normal;padding:3px}.selection-page .roster-row>span{font-size:14px}.selection-page .roster-row>button:first-child{font-size:16px}.roster-row .deploy-btn{font-size:14px;padding:4px}.roster-skills{font-size:14px;gap:5px}.army-footer{display:flex;gap:8px}.army-footer>button{flex:1}.army-footer .metal,.army-footer .ghost{min-height:40px}.unit-top{grid-template-rows:150px minmax(0,1fr) 30px;padding:10px 20px;column-gap:28px}.game-army-info{max-width:360px;justify-self:end;width:100%}
}
@media(max-width:1100px) and (max-height:580px){.unit-top{grid-template-rows:116px minmax(0,1fr) 24px;gap:4px;padding:4px 8px}.game-army-info{grid-template-rows:22px 26px 26px 30px;gap:2px}.game-info-name .metal{min-height:24px}.game-share{min-height:22px}.game-info-actions button{min-height:28px;font-size:13px}.game-troop-panel{grid-template-rows:28px minmax(0,1fr) 30px}.game-panel-tabs{height:28px}.game-panel-tabs button{min-height:26px;font-size:13px}.game-troop-nav{height:30px}.game-troop-nav button{min-height:28px;font-size:13px}.unit-top .formation-help{height:24px;font-size:12px;padding:2px}.home .home-note,.home-heading{display:none}.home .creator-credit{font-size:18px;margin:4px;padding:0}.home .menu-card{min-height:42px}.home-controls{padding:5px 8px}.selection-page .card-fan{height:100px}.army-footer{padding:4px;gap:3px}}
@media(min-width:601px) and (max-width:1100px) and (max-height:480px){.unit-top{grid-template-columns:minmax(150px,24%) minmax(0,1fr) minmax(150px,24%);grid-template-rows:minmax(0,1fr) 24px;gap:6px}.game-army-info{grid-column:1;grid-row:1;height:140px;align-self:center}.game-troop-panel{grid-column:3;grid-row:1;height:150px;align-self:center}.unit-top .army-carousel{grid-column:2;grid-row:1;padding:0 20px}.unit-top .formation-help{grid-row:2}.estate-armies{align-items:stretch}.estate-army{grid-template-rows:24px minmax(0,1fr) 40px}.estate-army footer{height:40px;font-size:12px}.estate-portraits{height:100%;display:flex;justify-content:center}.estate-portraits>span,.estate-portraits>span:first-child{height:100%;width:auto;max-width:33.3%}.estate{grid-template-rows:38px 30px 66px minmax(0,1fr) 18px;gap:4px}.mobile-estate-header{min-height:38px}.lord-picker summary{height:30px;min-height:30px}.estate-shortcuts>button{height:31px;min-height:31px}.estate-actions>span{font-size:12px}}
@media(max-width:1100px){
 .tactic-details .effect-surface,.tactic-modal .effect-surface{padding:12px!important;overflow:visible;background:var(--original-effect-bg,#3e3032)!important;border-radius:4px;max-width:100%;margin:8px 0;isolation:isolate}
 .effect-surface>.effect-original{display:none}.effect-mobile-words{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px 5px;max-width:100%;line-height:1.7;filter:none;opacity:1;mix-blend-mode:normal;color-scheme:only light}.effect-mobile-words>svg{display:block;flex:0 0 auto;max-width:100%;overflow:hidden;filter:none;opacity:1}.effect-mobile-words image{filter:none;opacity:1;mix-blend-mode:normal}
 .effect-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:6px;padding:6px!important;font-size:12px}.effect-footer .ghost{min-height:36px;padding:5px;font-size:14px}.effect-footer .metal{font-size:14px;padding:5px 10px}
 .tactic-modal .data-note{clear:both}.tactic-modal .effect-surface{width:100%;clear:both}.selection-page .table-main:has(#tactic-list)>.tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}.selection-page .table-main:has(#tactic-list)>.tabs .tab{font-size:14px;min-height:32px;padding:4px;white-space:nowrap}
}
@media(max-width:1100px){.tactic-details,.tactic-modal,.dialog:has(.tactic-modal){background:var(--original-effect-bg,#3e3032)}.tactic-details .effect-footer{background:transparent}}
@media(max-width:1100px){#app{height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));width:calc(100% - env(safe-area-inset-left) - env(safe-area-inset-right));margin:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.overlay{padding-top:max(8px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom))}}

/* Annotated mobile corrections: shared surfaces and compact five-army exchange. */
@media(max-width:1100px){
 .shell:has(>.home)>.topbar,.home,.home-scene,.home-controls,.home-footer{background:#172119;box-shadow:none}
 .home .menu-card{justify-content:center;text-align:center;min-width:0}
 .home .menu-label{width:100%;text-align:center}
 .home .menu-label strong{display:block;position:relative;white-space:nowrap;font-size:16px;font-weight:600;text-align:center}
 .home .menu-label strong>span{position:absolute;right:0}
 .unit-top{grid-template-rows:176px minmax(0,1fr) 30px}
 .game-troop-panel{grid-template-rows:32px minmax(0,1fr) 40px}
 .game-troop-panel .game-troop-art:not(.military-art){overflow:hidden;mask-image:radial-gradient(ellipse at 50% 45%,#000 46%,transparent 76%)}
 .game-troop-panel .game-troop-art:not(.military-art)>img{object-fit:cover;object-position:center 34%}
 .game-troop-panel:has(.has-adviser){grid-template-rows:32px minmax(0,1fr) 46px}
 .game-troop-panel .adviser-summary.adviser-panel{display:grid;grid-template-columns:40px minmax(0,1fr) 32px;gap:4px;width:100%;height:46px;min-height:46px;padding:2px 4px;margin:0;background:linear-gradient(90deg,#383229b0,#38322970,transparent)}
 .game-troop-panel .adviser-summary.adviser-panel>.adviser-portrait{display:block;position:relative;width:38px;height:42px;min-width:0;overflow:hidden}
 .game-troop-panel .adviser-panel b{min-width:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-align:center;font-size:14px}
 .game-troop-panel .adviser-panel .adviser-change{width:32px;min-width:32px;height:34px;min-height:34px;margin:0}
 .game-troop-panel .military-art.has-adviser .strategist-plus{width:76px;height:32px;left:calc(50% - 38px);top:calc(50% - 16px);padding:0;border-width:1px}
 .game-troop-panel .military-art.has-adviser .strategist-plus span{font-size:14px;white-space:nowrap}
 .exchange-dialog{width:100%;height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);display:flex;flex-direction:column;padding:10px;overflow:hidden}
 .exchange-dialog .dialog-title,.exchange-help{flex-shrink:0}.exchange-dialog .dialog-title h2{font-size:20px}
 .exchange-list{flex:1;min-height:0;max-height:none;width:100%;overflow:hidden;grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(5,minmax(0,1fr));gap:4px}
 .exchange-army{width:100%;min-width:0;min-height:0;height:100%;grid-template-columns:62px minmax(0,1fr) 46px;gap:4px;padding:3px}
 .exchange-army>header{width:100%;min-width:0;height:100%;padding:22px 2px 2px;gap:2px;overflow:hidden}
 .exchange-army>header>strong{writing-mode:horizontal-tb;inset:0 0 auto;width:100%;height:20px;font-size:12px;padding:2px;white-space:nowrap}
 .exchange-army>header>span{font-size:12px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .exchange-army>header small,.exchange-army>header small b{font-size:12px;line-height:1.2}
 .exchange-slots{width:100%;min-width:0;height:100%;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
 .exchange-slot{width:100%;min-width:0;height:100%;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 18px;gap:2px;padding:2px}
 .exchange-slot .exchange-art{grid-row:1;order:0;align-self:center;justify-self:center;width:auto;max-width:100%;height:100%;min-height:0;aspect-ratio:222/333;border-width:1px}
 .exchange-slot .exchange-art>small{font-size:12px}
 .exchange-slot-info{grid-row:2;display:flex;flex-direction:row;justify-content:center;gap:3px;align-items:center;min-width:0;padding:0;font-size:12px}
 .exchange-slot-info>b{font-size:12px}.exchange-slot-info>span{display:none}
 .adviser-summary.adviser-exchange{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:0;overflow:hidden}
 .adviser-exchange .exchange-adviser{width:38px;height:42px;flex-shrink:1;min-height:28px;position:relative}
 .adviser-exchange .adviser-slot-label,.adviser-exchange b{width:100%;font-size:12px;line-height:1.2;text-align:center;white-space:normal;overflow-wrap:anywhere}
 .tactic-details,.tactic-modal,.dialog:has(.tactic-modal){background:#242521}
 .tactic-details .effect-surface,.tactic-modal .effect-surface{background:transparent!important;padding:10px 6px!important}
 .effect-mobile-words>effect-word{display:block;flex:0 0 auto;max-width:100%;overflow:hidden}
 .effect-mobile-words canvas{filter:none;opacity:1;mix-blend-mode:normal}
 .candidate-actions{flex-wrap:wrap}.candidate-actions>span{font-size:14px;flex:1;min-width:160px}.candidate-actions>button{min-height:42px}
}
@media(max-width:600px){
 .home-menus{grid-template-columns:minmax(0,1fr);gap:5px}
 .home .menu-card{height:40px;min-height:40px;padding:5px 14px}
 .home .menu-label small{display:none}.home .menu-label strong{font-size:16px}
 .home .creator-credit{margin-top:6px;font-size:18px}.home-controls{padding:6px 10px}
 .exchange-army{grid-template-columns:50px minmax(0,1fr) 40px;gap:2px;padding:2px}
}
@media(max-width:1100px) and (max-height:580px){
 .unit-top{grid-template-rows:124px minmax(0,1fr) 24px}
 .game-troop-panel{grid-template-rows:28px minmax(0,1fr) 30px}
 .game-troop-panel:has(.has-adviser){grid-template-rows:28px minmax(0,1fr) 42px}
 .game-troop-panel .adviser-summary.adviser-panel{height:42px;min-height:42px}.game-troop-panel .adviser-summary.adviser-panel>.adviser-portrait{height:38px}
}
@media(min-width:601px) and (max-width:1100px) and (max-height:480px){
 .unit-top{grid-template-rows:minmax(0,1fr) 24px}
 .exchange-list{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:minmax(0,1fr)}
 .exchange-army{grid-template-columns:minmax(0,1fr);grid-template-rows:52px minmax(0,1fr) 44px;gap:3px}
 .exchange-army>header{padding:20px 2px 0}.exchange-army>header>span{white-space:nowrap;display:block;text-overflow:ellipsis}.exchange-army>header small br{display:none}
 .exchange-slots{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(3,minmax(0,1fr))}
 .exchange-slot{grid-template-columns:minmax(0,1fr) 36px;grid-template-rows:minmax(0,1fr)}
 .exchange-slot .exchange-art{grid-column:2;grid-row:1}.exchange-slot-info{grid-column:1;grid-row:1}
 .adviser-summary.adviser-exchange{display:grid;grid-template-columns:24px 30px minmax(0,1fr);gap:2px}.adviser-exchange .exchange-adviser{width:30px;height:38px}
}

@media(max-width:1100px){
 .game-troop-panel .adviser-portrait .art-window>img,.adviser-exchange .exchange-adviser .art-window>img{width:var(--art-width);height:var(--art-height);left:var(--art-left);top:var(--art-top);max-width:none;max-height:none;object-fit:fill}
}
