/* Tactics Board Pro — clear coaching workbench, touch targets, and export controls. */
.lab-tactics .lab-container{max-width:1660px}
.lab-tactics .lab-hero{padding:27px 0 29px}
.lab-tactics .lab-hero h1{font-size:clamp(34px,4.5vw,62px)}
.lab-tactics .lab-layout{grid-template-columns:minmax(0,1.9fr) minmax(315px,.72fr);align-items:start}
.lab-tactics .lab-stage-card{box-shadow:0 20px 65px #0004}
.lab-tactics .lab-side-card{padding:22px;position:relative}
.tactics-toolbar{padding:12px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:#091e31;border-bottom:1px solid #284860}
.tactics-toolbar button{flex:1 1 103px;min-height:43px;padding:8px 12px;border:1px solid #395c75;border-radius:9px;background:#143752;color:#d1e7f6;cursor:pointer;font-size:12px;font-weight:800;white-space:nowrap}
.tactics-toolbar button:hover{background:#225473;border-color:#81bce0}
.tactics-toolbar button[aria-pressed=true]{background:#edbd68;color:#0b2338;border-color:#ffdfa0;box-shadow:0 0 0 1px #edbd68}
.tactics-toolbar button:focus-visible,.tactics-export-row :is(button,label):focus-visible,.tactics-colors button:focus-visible,.tactics-layer-options input:focus-visible{outline:3px solid #9bd9ff;outline-offset:2px}
.tactics-board-frame{position:relative;padding:13px;background:radial-gradient(ellipse at 60% 38%,#174560,#06192a 80%)}
.lab-tactics .tactics-pitch{max-height:none;aspect-ratio:960/590;border:1px solid #47738b;border-radius:11px;box-shadow:0 8px 28px #0006;touch-action:none;user-select:none}
.tactics-pitch[data-tool=pass],.tactics-pitch[data-tool=run],.tactics-pitch[data-tool=zone],.tactics-pitch[data-tool=label]{cursor:crosshair}
.tactics-pitch[data-tool=erase]{cursor:not-allowed}
.tactics-pitch[data-tool=move] [data-opponent],.tactics-pitch[data-tool=move] [data-ball],.tactics-pitch[data-tool=move] [data-player]{cursor:grab}
.tactics-opponent{pointer-events:auto}
.tactics-opponent circle{stroke:#edf4f8;stroke-width:2}
.tactics-opponent:focus-visible circle{stroke:#ffca69;stroke-width:5}
#tacticsBall{cursor:grab}
.tactics-note{cursor:inherit;pointer-events:visiblePainted}
.tactics-note.is-preview{opacity:.64;pointer-events:none}
.tactics-instruction{position:relative;margin:0;color:#b6d2e4;padding:10px 6px 1px;font-size:11px;line-height:1.55;min-height:25px}
.lab-tactics .lab-timeline{padding:18px 20px}
.lab-tactics .lab-transport{margin-bottom:11px}
.lab-tactics #tacticsUndo,.lab-tactics #tacticsRedo{min-width:46px;padding:9px 10px;font-size:22px;line-height:1}
.lab-tactics button:disabled{opacity:.45;cursor:default}
.lab-tactics .lab-phase-list{gap:8px}
.lab-tactics .lab-phase-list button{padding:12px 8px;min-width:0;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-height:66px}
.lab-tactics .lab-phase-list button b{font-size:11px;opacity:.8;letter-spacing:.14em}
.lab-tactics .lab-phase-list button span{font-size:11px;line-height:1.25;font-weight:750}
.tactics-export-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px;padding-top:16px;border-top:1px solid #284760}
.tactics-export-row .lab-primary-btn{background:#efc171}
.tactics-export-row .lab-secondary-btn{background:#153956}
.tactics-export-row button,.tactics-export-row label{min-height:43px;cursor:pointer}
.tactics-import{display:inline-flex;align-items:center;justify-content:center;position:relative}
.tactics-import input{position:absolute;opacity:0;width:1px;height:1px;top:0;left:0}
.tactics-import:focus-within{outline:2px solid #8bcef4;outline-offset:2px}
.tactics-save-status{font-size:11px;color:#9ed7c0;margin:12px 0 0;min-height:16px}
.lab-tactics .lab-side-card input[type=text]{background:#071d2e;color:#f3faff;border:1px solid #45647d;border-radius:9px;padding:11px 12px;font-size:13px;width:100%;min-height:44px}
.lab-tactics .lab-side-card input[type=text]:focus-visible{outline:2px solid #8fd7fc;outline-offset:2px}
.tactics-colors{display:flex;gap:12px;margin:15px 0 19px}
.tactics-colors button{background:var(--swatch);width:37px;height:37px;border-radius:50%;border:3px solid #17354d;cursor:pointer;box-shadow:0 0 0 1px #7890a3}
.tactics-colors button[aria-pressed=true]{box-shadow:0 0 0 3px #f3c06e}
.tactics-layer-options{display:flex;flex-wrap:wrap;gap:10px 15px;padding:2px 0 7px}
.tactics-layer-options label{display:flex;gap:6px;align-items:center;color:#d3e6f3;font-size:12px;cursor:pointer}
.tactics-layer-options input{accent-color:#e9bc70;width:17px;height:17px}
.lab-tactics .lab-side-card .lab-hint{color:#bfd0dd}
@media(max-width:1100px){.lab-tactics .lab-layout{grid-template-columns:minmax(0,1fr)}.lab-tactics .lab-side-card{padding:22px}.tactics-toolbar button{flex:1 1 100px}}
@media(max-width:680px){
 .lab-tactics .lab-hero{padding:22px 0}
 .lab-tactics .lab-hero h1{font-size:35px}
 .lab-tactics .lab-stage-head{padding:13px 14px}
 .tactics-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:9px}
 .tactics-toolbar button{min-width:0;font-size:11px;padding:8px 3px;white-space:normal;min-height:43px}
 .tactics-board-frame{padding:4px}
 .lab-tactics .tactics-pitch{border-radius:6px}
 .tactics-instruction{padding:8px 7px;min-height:39px;font-size:10px}
 .lab-tactics .lab-timeline{padding:14px 11px}
 .lab-tactics .lab-transport{gap:6px}
 .lab-tactics #tacticsPlay{flex:1}
 .lab-tactics .lab-transport .lab-timecode{width:auto;margin:0 0 0 auto}
 .lab-tactics .lab-phase-list{grid-template-columns:repeat(2,minmax(0,1fr))}
 .lab-tactics .lab-phase-list button{min-height:56px}
 .tactics-export-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .tactics-export-row button,.tactics-export-row label{min-width:0;font-size:11px;padding:8px}
 .lab-tactics .lab-side-card{padding:17px}
}
@media(prefers-reduced-motion:reduce){.tactics-toolbar button{transition:none}}
