/* One shared responsive interface, desktop and touch. */
body:not(.in-game){background:#263429 url('/assets/start-landscape-v1.png') center/cover fixed no-repeat}body:not(.in-game) .court-topbar{display:none}.lobby{width:100%;max-width:none;min-height:100dvh;height:100dvh;display:grid;grid-template-columns:45% 55%;gap:0;background:transparent;padding:3vh 3vw}.lobby-art{position:relative;background:none;padding:0 4vw 0 0;min-height:0;display:flex;flex-direction:column;justify-content:flex-start}.lobby-art h1{font-family:Georgia,serif;font-weight:700;font-size:clamp(42px,5.6vw,94px);line-height:1.03;color:#ffe7a4;text-shadow:0 3px 2px #3c220e,0 0 20px #000;max-width:100%;margin:2vh 0}.lobby-motto{font:italic 23px Georgia,serif!important;background:#f5e2b8e8;color:#372919!important;padding:8px 15px;max-width:max-content!important}.lobby-shortcuts{margin-top:auto;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.lobby-shortcuts button{min-width:220px;font-size:18px}.setup{align-self:center;max-height:94dvh;padding:clamp(14px,2.2vw,35px);border:6px ridge #d3a751;border-radius:12px;background:linear-gradient(110deg,#fff2d9f7,#e8d2a4f5);box-shadow:0 8px 30px #0006;overflow:auto}.setup header{text-align:center;margin-bottom:12px}.setup h2{font:700 clamp(24px,2.7vw,42px) Georgia,serif;margin:5px 0}.setup .slots{display:grid;gap:8px}.setup .slot{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(135px,.8fr);align-items:center;gap:12px;padding:10px;border:1px solid #b99960;border-left:5px solid var(--slot);background:#fff4dc70;border-radius:5px}.setup-portrait{width:64px;height:74px;object-fit:cover;border:2px ridge #c6a258;border-radius:4px}.setup label{font-size:12px;gap:4px;min-width:0}.setup input,.setup select{width:100%;min-width:0;min-height:36px;padding:6px 8px;font-size:14px;background:#fffaf0;color:#352a1a}.setup-name small{display:block;font:12px/1.35 Georgia,serif;margin-top:6px}.setup-options{display:flex;align-items:center;gap:20px;margin:12px 0}.setup-options>label{max-width:190px}.setup-options details{flex:1}.setup-options summary{cursor:pointer}.setup-footer{margin-top:10px}.setup-footer button{width:100%;font-size:23px;min-height:48px}.round-group{display:flex;align-items:center;flex-direction:column;min-width:0;position:relative}.round-group .round-tag{height:38px}.round-events{position:absolute;top:100%;z-index:10;display:flex;gap:3px;max-width:40vw;flex-wrap:wrap;justify-content:center}.round-events span{font:10px Georgia,serif;background:#f7e6bdf5;color:#594321;border:1px solid #b69559;padding:3px 6px;white-space:nowrap;border-radius:3px}.roster-card.active-turn{outline:3px solid #ffe27c;box-shadow:0 0 0 5px #9f732a,0 2px 8px #0008}.mobile-panel-toggle,.mobile-panel-close{display:none}.modal-body .commander-tooltip{display:block;position:static;width:auto;color:#382c1b}.tactic-select{cursor:help}.map-svg{touch-action:none}.roster-card[role=button]{cursor:pointer}
@media(min-width:761px) and (max-height:750px){.setup{padding:12px 18px}.setup header{margin-bottom:7px}.setup .slot{padding:6px 8px;gap:9px;grid-template-columns:48px minmax(0,1fr) minmax(130px,.8fr)}.setup-portrait{width:48px;height:57px}.setup-options{margin:7px 0}.setup h2{font-size:28px}.setup-footer button{min-height:40px;font-size:20px}}
@media(max-width:760px){.lobby{padding:12px;display:flex;flex-direction:column;height:100dvh;gap:8px}.lobby-art{padding:0;flex:0 0 auto;display:block}.lobby-art h1{font-size:clamp(26px,7vw,40px);margin:0;line-height:1.05}.lobby-motto{display:none}.lobby-shortcuts{flex-direction:row;gap:6px;margin-top:8px}.lobby-shortcuts button{font-size:12px;min-width:0;min-height:36px;padding:5px 10px}.setup{width:100%;max-height:none;min-height:0;flex:1;align-self:stretch;padding:10px;border-width:3px;overflow:auto}.setup header{margin-bottom:8px}.setup h2{font-size:23px}.setup .eyebrow{display:none}.setup .slot{grid-template-columns:42px minmax(0,1fr) minmax(115px,.8fr);gap:7px;padding:6px;border-left-width:3px}.setup-portrait{width:42px;height:54px}.setup input,.setup select{font-size:16px;min-height:38px;padding:3px 5px}.setup label{font-size:10px}.setup-name small{font-size:10px;margin-top:3px}.setup .slots{gap:6px}.setup-options{margin:8px 0;gap:12px}.setup-options>label{max-width:145px}.setup-options summary{font-size:12px}.setup-footer button{font-size:20px;min-height:44px}.in-game{overflow:hidden}.in-game .court-topbar{margin:0;height:78px;min-height:78px;grid-template-columns:minmax(0,1fr) 108px 32px;grid-template-rows:34px 24px}.in-game .game-layout{height:calc(100dvh - 78px);min-height:0;padding:2px;display:block;position:relative}.in-game .map-area{height:100%;min-height:0;width:100%}.in-game .panel{display:none;position:absolute;z-index:30;right:2px;top:2px;bottom:2px;width:min(340px,calc(100vw - 8px));max-height:none;flex-direction:column;background:#f4e3b8}.in-game.mobile-panel-open .panel{display:flex}.panel-scroll{overflow:auto;flex:1;min-height:0}.mobile-panel-toggle{display:block;position:absolute;right:9px;bottom:8px;z-index:12;min-height:44px;font-size:13px}.mobile-panel-open .mobile-panel-toggle{display:none}.mobile-panel-close{display:block;flex:none;min-height:40px;font-size:13px;margin:4px}.map-roster{max-width:calc(100% - 16px);gap:4px;top:6px}.roster-card{width:calc((100vw - 44px)/4)!important;padding:4px!important;min-height:48px;display:flex;flex-direction:column}.roster-card .heraldic-badge,.roster-portrait{display:none!important}.roster-card strong{font-size:10px}.roster-card small{font-size:8px}.army-dock{bottom:57px!important;max-width:calc(100% - 12px);gap:6px!important}.army-bar-title{font-size:14px!important}.army-bar-unit{font-size:14px!important}.map-controls{bottom:105px!important}.map-controls button,.map-mode-control button{min-width:40px;min-height:40px}.compass{bottom:110px!important}.map-mode-control{bottom:110px!important}.round-events{max-width:75vw;top:68px;right:0}.round-events span{font-size:9px}.panel button,.panel select{min-height:42px}.modal{max-height:94dvh}.modal-body{padding:14px}.modal input,.modal select{font-size:16px}.battle-window,.battle-window.expanded{left:4px!important;right:4px!important;top:4px!important;width:calc(100vw - 8px)!important;max-height:calc(100dvh - 8px)!important}.battle-actions{position:sticky;bottom:0;background:#f4e7c7;z-index:6}.battle-window button,.battle-window select{min-height:44px}.battle-team{min-width:0}.battle-unit-counts{gap:5px;font-size:11px}.battle-portrait{width:28px;height:34px}}
@media(max-height:500px) and (orientation:landscape){.lobby{display:grid;grid-template-columns:30% 70%;height:auto;min-height:100dvh}.lobby-art h1{font-size:32px}.setup{max-height:none}.in-game .court-topbar{height:55px;min-height:55px}.in-game .game-layout{height:calc(100dvh - 55px)}.battle-field{max-height:45dvh}}
.setup .slot>.setup-kind{grid-column:3;grid-row:1}.setup .slot>.setup-name{grid-column:2;grid-row:1}.setup .slot>.setup-portrait{grid-column:1;grid-row:1}.setup .slots{margin:0}.setup .slot:first-child{padding-top:10px}
@media(max-width:760px){.setup .slot:first-child{padding-top:6px}}
.setup{display:flex;flex-direction:column;gap:8px}.setup .slot label{margin:0}.setup-name label{grid-column:auto!important}.setup .setup-options{flex-shrink:0}.setup .setup-footer{flex-shrink:0}
@media(max-width:760px){.setup{gap:6px;justify-content:flex-start}.setup .slot{grid-template-columns:38px minmax(0,1fr) 134px}.setup-portrait{width:38px;height:50px}.setup .setup-kind select{font-size:12px}.setup-name input{font-size:14px}.setup .setup-options{margin:6px 0}.setup header{margin-bottom:0}}
.court-topbar .round-group>.round-tag{position:relative;width:100%;height:40px;border:6px solid transparent;border-image:var(--court-frame);background:linear-gradient(155deg,#3268a6,#153e70);justify-content:center;align-self:center;white-space:nowrap;box-shadow:0 2px 4px #5a401e77}.round-group .round-tag:before,.round-group .round-tag:after{display:none}.lobby-tools{color:#fff0c9;text-shadow:0 1px #352616;font-size:13px}.lobby-tools summary{cursor:pointer;padding:7px;background:#223c3bdf;border:1px solid #cfaf67;border-radius:3px}.lobby-tools[open]{padding:5px;background:#253e3bea}.lobby-tools button{min-width:0;min-height:36px;font-size:12px;padding:5px 10px;margin:3px}.fast-computer-label{flex-direction:row;align-items:center}.fast-computer-label input{width:18px;min-height:18px}
@media(max-width:760px){.lobby-shortcuts{flex-wrap:wrap}.lobby-tools{font-size:11px}.lobby-tools summary{padding:7px}.lobby-tools[open]{position:absolute;z-index:10;top:35px;right:0}.round-group .round-tag{height:32px!important}.round-group .round-tag strong{font-size:18px}}
