.screen-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-bottom:12px}.screen-tools button{font-size:12px;padding:8px 12px}.screen-tools span{font-size:11px}
body.game-focused{overflow:hidden}
body.game-focused>header,body.game-focused>footer{display:none}
body.game-focused main{padding:0;max-width:none}
body.game-focused main> :not(.game-layout):not(.ippon-layout){display:none}
body.game-focused aside{display:none}
.game-panel.game-immersive{position:fixed;inset:0;z-index:1000;width:100%;height:100vh;height:100dvh;border:0;border-radius:0;margin:0;background:#f7f5eb;padding:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));overflow:auto}
.game-immersive canvas{min-height:0;min-width:0;object-fit:contain;width:100%;height:100%}
.game-immersive button{min-height:44px}
.game-immersive>.hint{display:none}
.game-immersive[data-game=football]{display:grid;grid-template-columns:minmax(130px,1fr) minmax(0,1.4fr) minmax(130px,1fr);grid-template-rows:auto 1fr auto;gap:10px}
.game-immersive[data-game=football] .screen-tools{grid-column:3;grid-row:1;flex-wrap:wrap;margin:0}
.game-immersive[data-game=football] .scorebar{grid-column:1;grid-row:1 / 3;flex-direction:column;justify-content:center;padding:0;gap:12px}
.game-immersive[data-game=football] #field{grid-column:2;grid-row:1 / 4}
.game-immersive[data-game=football] #message{grid-column:1;grid-row:3;font-size:12px;margin:0}
.game-immersive[data-game=football] .controls{grid-column:3;grid-row:2 / 4;flex-direction:column;justify-content:center}
.game-immersive[data-game=football] .controls button{width:100%;min-height:54px}
.game-immersive #save,.game-immersive #ippon-save{position:absolute;bottom:8px;left:20%;right:20%;padding:16px;background:#fffdf7;border:2px solid var(--ink);border-radius:12px;z-index:2;max-height:75%;overflow:auto}
.game-immersive #save-status,.game-immersive #ippon-save-status{position:absolute;bottom:0;left:20%;right:20%;background:#fffdf7;font-size:12px;margin:0;z-index:3}
.game-immersive[data-game=karate]{display:grid;grid-template-columns:minmax(0,1fr) 245px;grid-template-rows:26px 60px minmax(0,1fr) 30px;gap:6px 12px}
.game-immersive[data-game=karate] .scorebar{grid-column:1;grid-row:1;padding:0;font-size:10px;justify-content:space-around}
.game-immersive[data-game=karate] .scorebar strong{font-size:18px}
.game-immersive[data-game=karate] .match-board{grid-column:1;grid-row:2;padding:0;gap:4px}
.game-immersive[data-game=karate] .belt strong{font-size:27px}.game-immersive[data-game=karate] .belt span,.game-immersive[data-game=karate] .clock span{font-size:9px}.game-immersive[data-game=karate] .belt small{font-size:9px}
.game-immersive[data-game=karate] .clock{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.game-immersive[data-game=karate] .clock span{display:none}.game-immersive[data-game=karate] .clock strong{font-size:23px;margin:0}.game-immersive[data-game=karate] .clock button{padding:4px 8px}
.game-immersive[data-game=karate] #dojo{grid-column:1;grid-row:3}
.game-immersive[data-game=karate] #announcement{grid-column:1;grid-row:4;margin:0;min-height:0;font-size:11px;overflow:auto}
.game-immersive[data-game=karate] .screen-tools{grid-column:2;grid-row:1 / 3;align-content:start;align-items:start;justify-content:center;flex-wrap:wrap;margin:0}
.game-immersive[data-game=karate] .match-actions{grid-column:2;grid-row:2;align-self:end;flex-direction:row;margin:0;gap:5px}.game-immersive[data-game=karate] #cue{display:none}.game-immersive[data-game=karate] .match-actions button{width:100%;font-size:12px;padding:8px}
.game-immersive[data-game=karate] .pad{grid-column:2;grid-row:3;grid-template-columns:1fr 1fr;align-self:start;margin:0;gap:5px}
.game-immersive[data-game=karate] .attack-pad{grid-column:2;grid-row:3 / 5;grid-template-columns:1fr 1fr;align-self:end;margin:0;gap:5px}
.game-immersive[data-game=karate] .pad button,.game-immersive[data-game=karate] .attack-pad button{padding:5px;font-size:11px;min-height:40px}.game-immersive[data-game=karate] .pad small,.game-immersive[data-game=karate] .attack-pad small{display:none}
@media(orientation:portrait){.game-panel.game-immersive{display:flex;flex-direction:column;gap:8px}.game-immersive canvas{flex:1;min-height:0}.game-immersive[data-game=football] .scorebar,.game-immersive[data-game=football] .controls{flex-direction:row}.game-immersive[data-game=karate] .pad,.game-immersive[data-game=karate] .attack-pad{display:flex;flex-wrap:wrap}.game-immersive[data-game=karate] .screen-tools{justify-content:flex-end}}
.game-immersive[data-game=karate] .pad{grid-template-columns:repeat(4,1fr)}
.game-immersive[data-game=karate] .attack-pad{grid-template-columns:repeat(3,1fr)}
.game-immersive[data-game=karate] .pad button,.game-immersive[data-game=karate] .attack-pad button{min-height:44px}
.game-immersive[data-game=karate] #cue{display:block;position:absolute;top:100px;left:12px;width:calc(100% - 281px);max-width:none;text-align:center;font-size:10px;background:#f7f5eb;z-index:1}
@media(orientation:portrait){.game-immersive[data-game=karate] #cue{position:static;width:auto}}
.game-panel.game-immersive[data-game=football]{display:flex;flex-direction:column;gap:6px;align-items:stretch;overflow:hidden}
.game-immersive[data-game=football] .screen-tools{flex:none;justify-content:flex-end}
.game-immersive[data-game=football] .scorebar{flex:none;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;gap:5px;font-size:10px}
.game-immersive[data-game=football] .scorebar strong{font-size:18px;margin-left:3px}
.game-immersive[data-game=football] #field{flex:1;min-height:0;max-width:480px;align-self:center;object-fit:contain}
.game-immersive[data-game=football] #message{flex:none;font-size:11px;line-height:1.3;min-height:29px}
.game-immersive[data-game=football] .controls{flex:none;flex-direction:row;gap:8px;width:100%;max-width:480px;align-self:center}
.game-immersive[data-game=football] .controls button{min-height:48px;padding:8px;flex:1}
.game-immersive[data-game=football] .controls #start{flex:2;font-size:14px}
.game-immersive[data-game=football] #save{left:5%;right:5%}
