body.menu-open #combat-hud,body.menu-open>footer,body.menu-open .toolbar,body.menu-open #map-panel,body.menu-open #round-hud,body.menu-open #network-roster,body.menu-open #touch-ui,body.menu-open #touch-tools,body.menu-open #crosshair,body.menu-open #hitmarker,body.menu-open #toast,body.menu-open #menu-hint,body.menu-open #touch-orientation{display:none!important;pointer-events:none!important}
#town-home,#town-settings{display:none;position:absolute;z-index:45;left:50%;top:50%;transform:translate(-50%,-50%);width:min(470px,calc(100% - 32px));padding:32px;background:#14241ff5;border:1px solid #dec18473;border-radius:12px;box-shadow:0 18px 60px #07100d99}
body.menu-open[data-menu=home] #town-home,body.menu-open[data-menu=settings] #town-settings{display:block}
body[data-menu=home] #entry,body[data-menu=settings] #entry{display:none!important}
#town-home small{color:#ddbd7f;font:10px Consolas,monospace;letter-spacing:3px}
#town-home h1{font-size:48px;letter-spacing:8px;font-weight:700;margin:12px 0}
#town-home p,#town-settings p{color:#b4c4b6;line-height:1.8}
#town-home nav{display:grid;gap:9px;margin-top:25px}
#town-home button{display:flex;justify-content:space-between;align-items:center;min-height:52px;font-size:17px;text-align:left;padding:12px 18px}
#town-home button:first-child{background:#ddbd7f;color:#19291f}
#town-home button span{font:12px Consolas,monospace;opacity:.6}
#town-home footer{position:static!important;display:block!important;width:auto!important;transform:none!important;margin-top:22px;font-size:10px;letter-spacing:2px;color:#a7b5a5;padding:0!important}
#town-settings label{display:block;margin:24px 0}#town-settings input{width:100%;display:block;margin-top:14px}#town-settings output{float:right}#town-settings button{min-height:44px}
#entry{width:min(820px,calc(100vw - 24px))!important;max-width:820px!important;max-height:none!important;overflow:visible!important;padding:16px}
#entry #menu-back{display:block;position:relative;z-index:5;width:auto!important;border:1px solid #ddbd7f!important;background:#ddbd7f!important;padding:8px 14px!important;min-height:44px;color:#19291f!important;font-size:13px;font-weight:700}
#entry .character-picker{padding:10px 0!important}
#entry .character-heading{margin-bottom:6px}
#entry .character-option canvas{height:65px!important}
#entry .character-option{padding-bottom:2px!important;min-height:70px}
#entry .character-option span{min-height:22px;font-size:11px}
#entry-home{padding:12px 0!important}#entry-home .entry-actions{display:block;width:100%}#entry-home #multiplayer-open,#entry-home>p,#entry-home #play small{display:none}
#entry-home #play{width:100%;min-height:44px}
#solo-map-field{display:flex;align-items:center;gap:12px;margin:0 0 10px;text-align:left;color:#ddbd7f;font-size:13px}
#solo-map{flex:1;min-width:0;min-height:44px;padding:6px 10px;border:1px solid #ddbd7f55;border-radius:5px;background:#20372b;color:#efe6ce;font:16px "Microsoft YaHei",sans-serif}
#multiplayer-lobby{width:100%!important;max-width:none!important;max-height:none!important;overflow:visible!important;padding:10px 0 0!important;position:relative}
#multiplayer-lobby h2{font-size:20px;margin:0 0 10px}.lobby-kicker,.lobby-divider,#room-settings-hint,.room-friendly-setting small{display:none!important}
#lobby-connect:not([hidden]){display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 12px;text-align:left}
.lobby-field{grid-column:span 3;min-width:0}.field-room-map{grid-column:span 3}.field-room-capacity{grid-column:span 3}
#lobby-connect label{display:block;margin:0 0 4px;font-size:11px}
#lobby-connect input,#lobby-connect select{width:100%;min-width:0;height:38px!important;min-height:38px!important;margin:0!important;padding:5px 8px;font-size:13px!important}
#lobby-connect .room-settings{grid-column:span 4;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}
#lobby-connect .room-friendly-setting{grid-column:span 2;display:flex;align-items:center;gap:8px;margin:0;padding:12px 0 0;border:0}
#room-friendly-fire{width:18px!important;height:18px!important;min-height:18px!important}
#room-create{grid-column:span 3;min-height:42px}
#lobby-connect .room-join-row{grid-column:span 3;display:grid;grid-template-columns:1fr auto;margin:0;gap:8px}
#network-message{min-height:18px;margin:8px 0 0;font-size:11px}
#room-players{display:grid;grid-template-columns:1fr 1fr;gap:4px}
#lobby-tabs,#character-next{display:none}
@media(max-height:550px){
 #town-home{padding:18px 26px;width:min(570px,calc(100% - 24px))}#town-home h1{font-size:34px;margin:6px 0}#town-home p{margin:4px 0}#town-home nav{margin-top:14px;grid-template-columns:1fr 1fr 1fr}#town-home button{font-size:14px;padding:10px}#town-home button span{display:none}#town-home footer{margin-top:14px}
 body[data-menu=multi] #lobby-tabs{display:flex;gap:6px;position:absolute;top:10px;right:16px}
 body[data-menu=multi][data-lobby-tab=character] #multiplayer-lobby,body[data-menu=multi][data-lobby-tab=room] .character-picker{display:none!important}
 body[data-menu=multi] #character-next{display:block;width:100%;margin-top:8px}
 #entry{padding:4px 16px}#multiplayer-lobby h2{display:none}#multiplayer-close{display:none}
 #network-message{margin:2px 0 0!important;min-height:12px!important;line-height:12px;font-size:10px}
 #room-code{font-size:20px}#room-settings-summary,.room-label{margin:3px 0;font-size:11px}#room-players li{min-height:22px;padding:3px}
}
@media(max-width:520px) and (min-height:551px){
 #lobby-connect:not([hidden]){grid-template-columns:repeat(2,minmax(0,1fr))}
 .lobby-field,.field-room-map,.field-room-capacity{grid-column:span 3}
 #lobby-connect .room-settings{grid-column:span 2}
 #lobby-connect .room-friendly-setting{grid-column:span 2;padding:0}
 #room-create,#lobby-connect .room-join-row{grid-column:span 2}
 #entry{padding:12px}#entry .character-option canvas{height:48px!important}
 #entry .character-option span{font-size:10px}#multiplayer-lobby input,#multiplayer-lobby select{font-size:16px!important}
}
#start-perspective-field{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0;font-size:13px;color:#ddbd7f}#start-perspective{width:150px;min-height:36px;padding:6px 10px;background:#14241f;color:#eadfc6;border:1px solid #ddbd7f50;border-radius:4px}
#focus-recapture{position:absolute;z-index:60;left:50%;top:42%;transform:translateX(-50%);min-height:44px;max-width:85%;background:#14241fee;color:#eadfc6;border:1px solid #ddbd7f80;padding:12px 22px}#focus-recapture[hidden]{display:none}
/* Compact room settings, editable only by the host before the round. */
#host-settings:not([hidden]){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px 10px;margin:8px 0;text-align:left}
#host-settings label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#c9d2bd}
#host-settings input,#host-settings select{width:100%;min-width:0;height:32px;padding:4px 7px;background:#14241f;color:#eadfc6;border:1px solid #ddbd7f44;border-radius:4px}
#host-settings .host-friendly{flex-direction:row;align-items:center}
#host-friendly{width:16px!important;height:16px!important}
#room-save{grid-column:1/-1;min-height:36px}#host-settings [disabled]{opacity:.5}
#lobby-room #room-enter,#lobby-room #room-invite{display:inline-block;width:calc(50% - 5px);min-height:40px;margin:6px 0}
#room-invite-url:not([hidden]){display:block;width:100%;font-size:11px;margin:5px 0;padding:7px;color:#eadfc6;background:#14241f;border:1px solid #ddbd7f44}
#lobby-room #room-players{max-height:76px;overflow:auto;margin:6px 0}
body:has(#lobby-room:not([hidden])) #entry .character-option canvas{height:40px!important}
body:has(#lobby-room:not([hidden])) #entry .character-option{min-height:54px}
body:has(#lobby-room:not([hidden])) #entry{padding:10px}
#lobby-room #room-enter:disabled{opacity:.5}
body.aiming #crosshair{transform:translate(-50%,-50%) scale(.65)}
/* Multiplayer remains on a single settings page, never a character wizard. */
body[data-menu=multi] #entry .character-picker,body[data-menu=multi] #lobby-tabs,body[data-menu=multi] #character-next{display:none!important}
body[data-menu=multi] #multiplayer-lobby:not([hidden]){display:block!important}
#lobby-connect #start-perspective-field{grid-column:span 3;margin:0;display:block}
#lobby-connect #start-perspective{width:100%;margin-top:4px}
#lobby-connect .room-join-row[hidden]{display:none!important}
body.room-connected #lobby-room:not([hidden]){display:block!important;padding:0;margin-top:8px}
body.room-connected #lobby-room>#room-players,body.room-connected #lobby-room>#room-settings-summary,body.room-connected #lobby-room>.room-label,#round-lobby-start{display:none!important}
body.room-connected #lobby-room>.room-code-row{padding:4px 8px;margin:0;font-size:12px}
body.room-connected #lobby-room #room-code{font-size:20px}
body.room-connected #lobby-room>#room-enter,body.room-connected #lobby-room>#room-invite{display:inline-block;width:calc(50% - 5px);margin:6px 0}
body.room-connected #lobby-room>#room-leave{display:block;width:100%;padding:3px;min-height:26px}
#staging-panel{position:absolute;z-index:55;top:155px;left:16px;width:250px;padding:14px;background:#14241ff2;border:1px solid #ddbd7f80;border-radius:10px;color:#eadfc6}
#staging-panel[hidden],#round-countdown[hidden]{display:none!important}
#staging-panel h2{font-size:18px;margin:0 0 5px}#staging-panel p{font-size:11px;margin:5px 0;color:#c9d2bd}
#staging-players{list-style:none;margin:8px 0;padding:0;max-height:180px;overflow:auto}#staging-players li{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #ffffff15;padding:5px 0;font-size:12px}#staging-players b{overflow:hidden;text-overflow:ellipsis}#staging-players span{white-space:nowrap;color:#ddbd7f}
#staging-start{width:100%;min-height:42px;margin-top:5px;background:#ddbd7f;color:#14241f}#staging-start:disabled{opacity:.5}
#round-countdown{position:absolute;z-index:65;left:50%;top:38%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none;color:#f7df9a;text-shadow:0 3px 15px #000}
#round-countdown strong{font:700 84px Consolas,monospace}#round-countdown span{font-size:18px}
body.menu-open #staging-panel,body.menu-open #round-countdown{display:none!important}
@media(max-height:550px){#staging-panel{top:75px;width:235px;padding:10px}#staging-players{max-height:115px}body[data-menu=multi] #entry{max-height:calc(100% - 12px)!important;overflow:auto!important}#lobby-connect:not([hidden]){grid-template-columns:repeat(6,minmax(0,1fr))}.lobby-field,#lobby-connect #start-perspective-field{grid-column:span 2}#lobby-connect .room-settings{grid-column:span 4}}
@media(max-width:520px) and (min-height:551px){#lobby-connect:not([hidden]){grid-template-columns:repeat(2,minmax(0,1fr))}.lobby-field,.field-room-map,.field-room-capacity,#lobby-connect #start-perspective-field{grid-column:span 1}}
@media(max-height:550px){#host-settings:not([hidden]){grid-template-columns:repeat(6,minmax(0,1fr))}#host-settings label{grid-column:span 2}#room-save{grid-column:span 2}#lobby-room #room-players{max-height:36px}#lobby-room #room-settings-summary{font-size:10px}#lobby-room .room-code-row{padding:4px}}
body[data-menu=multi]:has(#lobby-room:not([hidden])) #lobby-tabs{display:flex;gap:6px;position:absolute;top:10px;right:16px}
body[data-menu=multi][data-lobby-tab=room]:has(#lobby-room:not([hidden])) .character-picker,body[data-menu=multi][data-lobby-tab=character]:has(#lobby-room:not([hidden])) #multiplayer-lobby{display:none!important}
body[data-menu=multi]:has(#lobby-room:not([hidden])) #character-next{display:block;width:100%;margin-top:8px}
#lobby-room #room-invite{margin-right:6px}
body.round-counting #toast{visibility:hidden}
@media(max-height:550px){body.room-staging #staging-panel{top:12px}body.room-staging #combat-hud,body.room-staging #touch-tools{display:none!important}}
/* Keep the created-room form on one landscape screen. */
@media(max-height:550px) and (min-width:600px){
 body[data-menu=multi] #entry{padding:6px 12px!important}
 body[data-menu=multi] #entry #menu-back{min-height:32px;padding:4px 10px!important}
 body[data-menu=multi] #multiplayer-lobby{padding-top:4px!important}
 body[data-menu=multi] #lobby-connect{gap:4px 8px}
 body[data-menu=multi] #lobby-connect input,body[data-menu=multi] #lobby-connect select{height:32px!important;min-height:32px!important;padding:3px 6px}
 body[data-menu=multi] #lobby-connect #start-perspective{margin-top:0}
 body[data-menu=multi] #lobby-connect .room-friendly-setting{padding:0}
 body[data-menu=multi] #room-create{grid-column:span 2;min-height:34px;padding:4px}
 body[data-menu=multi] #lobby-connect .room-join-row{grid-column:span 4}
 body.room-connected[data-menu=multi] #lobby-room:not([hidden]){display:grid!important;grid-template-columns:1.2fr 1fr 1fr;gap:4px 8px;margin-top:5px}
 body.room-connected[data-menu=multi] #lobby-room>.room-code-row{grid-column:1;grid-row:1;padding:0 5px!important;min-height:36px}
 body.room-connected[data-menu=multi] #lobby-room>#room-invite{grid-column:2;grid-row:1;width:100%;margin:0;min-height:36px;padding:4px}
 body.room-connected[data-menu=multi] #lobby-room>#room-enter{grid-column:3;grid-row:1;width:100%;margin:0;min-height:36px;padding:4px}
 body.room-connected[data-menu=multi] #lobby-room>#room-invite-url{grid-column:1/-1;grid-row:2;margin:0;padding:4px}
 body.room-connected[data-menu=multi] #lobby-room>#room-leave{grid-column:3;grid-row:3;min-height:24px;padding:2px!important}
 body.room-connected[data-menu=multi] #lobby-room>.team-color-control:not([hidden]){grid-column:1/3;grid-row:3;min-height:24px;margin:0;padding:0}
}
@media(max-height:550px) and (min-width:600px){
 #lobby-room:not([hidden]){display:grid;grid-template-columns:1fr 1.25fr;gap:4px 12px;align-items:start}
 #lobby-room>.room-label{display:none}
 #lobby-room>.room-code-row{grid-column:1;grid-row:1;margin:0;padding:0 6px}
 #lobby-room>#room-settings-summary{grid-column:1;grid-row:2;margin:0;padding:4px}
 #lobby-room>#room-players{grid-column:1;grid-row:3;max-height:44px;margin:0}
 #lobby-room>#host-settings{grid-column:2;grid-row:1 / span 4;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;gap:4px 8px}
 #host-settings label{grid-column:auto}#host-settings #room-save{grid-column:1/-1;padding:7px;min-height:36px}
 #lobby-room>#round-lobby-start{grid-column:1;grid-row:4;width:100%;margin:0;padding:8px;min-height:36px}
 #lobby-room>#room-invite{grid-column:1;grid-row:5;width:100%;margin:0;padding:8px}
 #lobby-room>#room-enter{grid-column:2;grid-row:5;width:100%;margin:0;padding:8px}
 #lobby-room>#room-invite-url{grid-column:1/-1;grid-row:6;margin:0;padding:4px}
 #lobby-room>#room-leave{grid-column:1/-1;margin:0;min-height:24px;padding:3px!important}
 #lobby-room>.team-color-control:not([hidden]){grid-column:1/-1;margin:0;padding:0;min-height:24px}
}
