@import url('./v135-practice.css');
.combat-training .practice-hint{max-height:100px;overflow:auto;font-size:12px;line-height:1.4}
.combat-training .practice-toolbar{top:230px}
.combat-training .practice-meter{line-height:1.4}
.combat-training .practice-skills{bottom:calc(95px + env(safe-area-inset-bottom))}
.combat-training .practice-move,.combat-training .practice-aim{bottom:calc(180px + env(safe-area-inset-bottom))}
@media(min-width:700px){.combat-training .practice-toolbar{top:165px}.combat-training .practice-hint{max-width:660px}.combat-training .practice-move,.combat-training .practice-aim{bottom:150px}}
@media(max-height:550px){.combat-training .practice-head small{display:none}.combat-training .practice-meter{top:100px;left:160px;right:160px}.combat-training .practice-toolbar{top:150px;left:160px}.combat-training .practice-move,.combat-training .practice-aim{bottom:110px}.combat-training .practice-stick{width:90px;height:90px}.combat-training .practice-hint{max-height:55px}}
/* The status wrapper, not absolute children, owns the compact middle rail. */
@media(orientation:landscape) and (max-height:550px){.combat-training .practice-status{top:100px;left:160px;right:160px}}
/* Use the shared compact rotation-recovery rails, not the older fixed offsets. */
@media(orientation:landscape) and (max-height:550px){
 .weapon-practice.combat-training .practice-status{top:56px;left:100px;right:100px}
 .weapon-practice.combat-training .practice-move,.weapon-practice.combat-training .practice-aim{top:104px;bottom:auto}
 .weapon-practice.combat-training .practice-stick{width:80px;height:80px}
 .weapon-practice.combat-training .practice-skills{bottom:calc(4px + env(safe-area-inset-bottom))}
}
@media(max-width:480px) and (max-height:700px) and (orientation:portrait){
 .weapon-practice.combat-training .practice-status{position:relative;top:auto;left:auto;right:auto}
 .weapon-practice.combat-training .practice-move,.weapon-practice.combat-training .practice-aim{bottom:calc(130px + env(safe-area-inset-bottom))}
 .weapon-practice.combat-training .practice-skills{bottom:calc(48px + env(safe-area-inset-bottom))}
}
@media(orientation:landscape) and (max-height:550px){
 .weapon-practice.combat-training .practice-status{left:8px;right:auto;width:160px}
}
@media(orientation:landscape) and (max-height:550px){
 .weapon-practice.combat-training .practice-move,.weapon-practice.combat-training .practice-aim{top:auto;bottom:calc(52px + env(safe-area-inset-bottom))}
}
@media(orientation:landscape) and (max-height:550px){
 .weapon-practice.combat-training .practice-move{bottom:calc(56px + env(safe-area-inset-bottom))}
}

/* R15: mechanism reading is paused. Keep Begin/Continue/Reset outside the
   disclosure overlay; Exit and the disclosure itself stay reachable too. */
.weapon-practice.combat-training .practice-readout>summary{display:flex;align-items:center;justify-content:center;min-height:44px;box-sizing:border-box;cursor:pointer;pointer-events:auto;border:2px solid #acc3ad;border-radius:10px;background:#fff;font-size:12px;color:#173d35;list-style:none}
.weapon-practice.combat-training .practice-readout-body{position:absolute;top:100px;left:0;right:0;max-height:min(180px,32dvh);overflow:auto;overscroll-behavior:contain;pointer-events:auto;background:#e9efdf;border:2px solid #acc3ad;border-radius:10px;padding:6px;z-index:5;box-sizing:border-box}
.weapon-practice.combat-training .practice-readout-body .practice-hint{position:static;margin:6px 0 0;max-height:none;pointer-events:auto}
.weapon-practice.combat-training .practice-status .practice-toolbar{position:relative;top:auto;left:auto;right:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:4px}
.weapon-practice.combat-training .practice-toolbar button{min-height:44px;min-width:0}
@media(orientation:landscape) and (max-height:550px){
 .weapon-practice.combat-training .practice-readout-body{width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 210px)}
}

/* R16: configuration lives in the explicit paused reading panel. */
.combat-training .training-config{display:grid;gap:6px;margin:8px 0}
.combat-training .training-config label{display:grid;gap:3px;font-size:12px}
.combat-training .training-config select{width:100%;min-width:0;min-height:44px;font-size:14px;color:#173d35;background:#fff}
.combat-training .training-kit{margin:0;font-size:12px;line-height:1.4}

/* Boss-only short portrait: the dialog already names the mode. Keep that
   redundant title available to assistive technology while giving its former
   row to the battlefield. The native labelled scenario picker and Exit retain
   their 44px targets; configuration/disclosure and all control rails stay put.
   No fixed header height: enlarged text may grow rather than be clipped. */
@media(max-width:420px) and (max-height:650px) and (orientation:portrait){
 .weapon-practice.combat-training.practice-has-primary-controls .practice-head{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:6px;padding:4px max(8px,env(safe-area-inset-right)) 4px max(8px,env(safe-area-inset-left))}
 .weapon-practice.combat-training.practice-has-primary-controls .practice-head>b{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .weapon-practice.combat-training.practice-has-primary-controls .practice-head>label{grid-column:1;grid-row:1;min-width:0;gap:4px;flex-basis:auto}
 .weapon-practice.combat-training.practice-has-primary-controls .practice-head>button{grid-column:2;grid-row:1;min-width:44px;min-height:44px;padding:6px 8px}
 .weapon-practice.combat-training.practice-has-primary-controls .practice-head select{min-height:44px;min-width:0;width:0;padding:6px 4px}
}
