.match-layout.match-centered{display:block;width:100%;max-width:900px;margin:0 auto}
.match-main{min-width:0}.match-underfield{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.match-underfield .panel{min-width:0}.match-underfield .match-feed{height:260px}
.match-speed{display:flex;flex-direction:column;gap:7px;min-width:125px;flex:1;max-width:210px;padding:0 8px;font-size:11px;color:#c7d9c4}
.match-speed>span{display:flex;justify-content:space-between;gap:12px}.match-speed output{font-weight:700;color:white;min-width:30px;text-align:right}
.match-speed input{width:100%;accent-color:var(--accent);cursor:pointer;margin:0;height:18px}
.match-summary{border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:16px;padding:26px;width:min(820px,calc(100vw - 28px));max-height:calc(100dvh - 36px);overflow-y:auto;box-shadow:0 24px 90px #0005}
.match-summary::backdrop{background:#102018aa;backdrop-filter:blur(3px)}
.summary-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.summary-heading h2{font-size:25px}.summary-close{font-size:17px}
.summary-score{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;margin:22px 0 28px;padding:20px 12px;background:#eff1e9;border-radius:10px}
.summary-score>div{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0;text-align:center}.summary-score .crest{width:50px;height:50px}
.summary-score strong{font-size:14px;overflow-wrap:anywhere}.summary-score>b{font-size:38px;white-space:nowrap;letter-spacing:.04em}
.summary-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px}.summary-columns section{min-width:0}.summary-columns h3{font-size:17px}
.summary-counts{margin-top:24px;padding-top:8px;border-top:1px solid var(--line)}.summary-counts>div{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;padding-top:12px}.summary-counts span{font-size:11px;color:var(--muted);text-align:center}
.summary-events{max-height:340px;overflow:auto;margin-top:12px}.summary-event{display:flex;align-items:flex-start;gap:9px;border-bottom:1px solid var(--line);padding:10px 0}.summary-event .minute{font-size:11px;color:var(--muted);min-width:24px}.summary-event p{font-size:12px;line-height:1.4}.summary-event small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.event-symbol{font-size:13px;width:18px;flex-shrink:0}
.summary-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}
.board-layout{grid-template-columns:minmax(0,1fr) 350px;max-width:1040px;margin:0 auto}
.lineup-workspace{display:block}.board-settings{display:flex;flex-direction:column;gap:10px;min-width:0}
.board-side-tabs{display:flex;gap:4px;padding:4px;background:#e5e9dd;border-radius:9px}
.board-side-tabs button{flex:1;min-width:0;padding:10px 6px;border-radius:6px;color:#64705b;background:transparent;font-size:12px;font-weight:700}
.board-side-tabs button[aria-selected=true]{background:var(--white);color:var(--ink);box-shadow:0 1px 4px #19312616}.board-side-tabs span{font-size:10px;margin-left:5px;color:var(--muted)}
.board-settings .bench-panel{padding:14px;min-height:340px}.board-settings .bench-panel>.section-head{display:none}
.board-settings .bench-grid{grid-template-columns:1fr 1fr;max-height:clamp(300px,calc(100dvh - 400px),480px);overflow-y:auto;align-content:start;overscroll-behavior:contain;padding:2px}
.board-settings .bench-player{min-height:65px;gap:7px;padding:8px 5px}.board-settings .bench-player .player-caption{font-size:11px}.board-settings .bench-player .kit-shirt{width:25px;height:28px}
.board-settings [hidden]{display:none!important}
.board-settings .tactics-panel{min-height:340px}.board-settings .tactics-panel>.section-head{display:none}
@media(max-width:1000px){.board-layout{grid-template-columns:minmax(0,1fr) 290px}.board-settings .bench-grid{grid-template-columns:1fr}.board-settings .bench-player{min-height:51px}}
@media(max-width:650px){.match-underfield{grid-template-columns:1fr}.match-speed{order:4;max-width:none;flex-basis:100%;padding:7px 0 0}.summary-columns{grid-template-columns:1fr;gap:24px}.match-summary{padding:20px}.summary-score{gap:10px}.summary-score>b{font-size:30px}.summary-score strong{font-size:12px}.summary-heading h2{font-size:22px}.board-layout{grid-template-columns:minmax(0,1fr) 155px;gap:8px}.board-settings .panel{padding:10px 7px}.board-side-tabs{gap:2px;padding:3px}.board-side-tabs button{font-size:9px;padding:9px 2px}.board-side-tabs span{display:none}.board-settings .bench-grid{max-height:425px;gap:5px}.board-settings .bench-player .player-caption{font-size:9px}.board-settings .bench-player{gap:4px;padding:5px 3px}.board-settings .bench-player .kit-shirt{width:21px;height:24px}.board-settings .tactic-options{flex-direction:column}.board-settings .tactic-setting p{font-size:10px}.board-settings .send-panel h3{font-size:15px}}
@media(max-width:420px){.board-layout{grid-template-columns:minmax(0,1fr) 130px}.board-settings .bench-player .player-caption{font-size:8px}.board-settings .bench-player .player-caption small{font-size:8px}.board-toolbar{flex-wrap:wrap}.board-toolbar .input{flex-basis:100%}.board-side-tabs button{font-size:8px}.board-settings .bench-player .kit-shirt{width:17px;height:20px}}

.board-settings .bench-panel{padding:9px;min-height:0}
.board-settings .bench-return{padding:3px;margin-bottom:3px;font-size:10px;line-height:14px}
.board-settings .bench-grid{grid-template-columns:1fr;gap:0;max-height:clamp(360px,calc(100dvh - 315px),460px)}
.squad-roster-head,.board-settings .squad-player{display:grid;grid-template-columns:minmax(0,1fr) 52px 37px 58px;align-items:center;gap:3px}
.squad-roster-head{padding:2px 3px 4px;color:var(--muted);font-size:8px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}
.squad-roster-head button:first-child{text-align:left;padding-left:31px}
.board-settings .squad-player{min-height:28px;padding:2px 3px;border:1px solid transparent;border-bottom-color:var(--line);border-radius:4px;background:transparent;text-align:center}
.board-settings .squad-player:hover{background:#f2f5ec}.board-settings .squad-player:active{cursor:grabbing}
.squad-player-identity{display:flex;align-items:center;gap:3px;min-width:0;text-align:left}
.board-settings .squad-player .kit-shirt{width:18px;height:20px}.squad-player-identity .player-flag{font-size:10px}
.squad-player-identity strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.2}
.squad-player-positions{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:var(--muted)}
.squad-player .fitness-value{font-size:10px;font-weight:800;color:#436d3f;font-variant-numeric:tabular-nums}
.squad-player .effective-value{display:inline-block;padding:2px 1px;border-radius:4px;background:#e7eedc;color:#285f34;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}
.board-player .player-caption em{padding:1px 3px;border-radius:3px;background:#b8e7a6;color:#183b24;font-size:10px;text-shadow:none}
.board-player-tooltip .tooltip-mastery{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 7px;margin-top:6px;border-radius:5px;background:#e7eedc;color:#355c2d;font-size:10px;font-weight:700}
.board-player-tooltip .tooltip-mastery b{font-size:15px}
@media(max-width:900px){.board-layout{grid-template-columns:1fr;max-width:690px}.board-settings .bench-grid{max-height:365px}}
@media(max-width:650px){.board-settings .panel{padding:10px}.board-side-tabs button{font-size:11px}.board-side-tabs span{display:inline}.board-settings .bench-grid{max-height:360px}}

/* Compact tactics workspace: pitch and roster share the available screen. */
.board-layout{width:100%;max-width:1120px;grid-template-columns:minmax(0,1fr) minmax(350px,420px);gap:14px}
.board-page .board-panel{padding:11px;border-radius:11px}
.board-page .board-toolbar{gap:6px}
.board-page .board-toolbar .input,.board-page .board-toolbar .btn{min-height:31px;padding:5px 9px;font-size:11px}
.board-page .direction-label{margin:7px 0 6px}
.board-page .lineup-pitch{max-width:650px;aspect-ratio:1.08;height:auto}
.board-page .position-legend{margin-top:8px;gap:5px 11px;font-size:9px}
.board-page .board-slot{height:62px;max-width:98px}
.board-page .board-player .kit-shirt{width:30px;height:33px}
.board-page .board-player .player-caption{margin-top:1px;font-size:10px}
.board-page .board-player .player-caption small{margin-top:1px}
#tactical-editor.is-dragging .board-slot{height:clamp(38px,calc((100dvh - 300px)*.135),62px);width:17%;max-width:80px}
#tactical-editor.is-dragging .board-slot .kit-shirt{width:23px;height:25px}
.board-settings{gap:8px}
.board-side-tabs{padding:3px}
.board-side-tabs button{padding:7px 6px}
.board-settings .bench-panel{display:flex;flex-direction:column;height:auto;padding:7px 8px 8px;overflow:hidden;border-radius:10px}
.board-settings .bench-return{flex:none;margin-bottom:5px;padding:3px 7px}
.board-settings .bench-grid{flex:none;min-height:0;max-height:clamp(320px,calc(100dvh - 360px),440px);padding:0;gap:0}
.squad-roster-head,.board-settings .squad-player{grid-template-columns:minmax(0,1fr) 56px 27px 42px 65px;gap:3px}
.squad-roster-head{flex:none;padding:4px 4px 5px;font-size:9px;background:#f0f3e9;border-bottom-color:#cad4c5}
.squad-roster-head button{width:100%;padding:0 1px;background:transparent;color:inherit;font-size:inherit;font-weight:700;line-height:1.2;white-space:nowrap;text-align:center}
.squad-roster-head button:hover{color:#2c5a3e}
.squad-roster-head button:first-child{padding-left:32px}
.squad-roster-head .sort-indicator{margin-left:2px;color:#277245}
.board-settings .squad-player{min-height:27px;padding:2px 4px;border-radius:0;border-bottom-color:#e5e9e0}
.board-settings .squad-player .kit-shirt{width:17px;height:19px}
.squad-player-identity strong{font-size:11px}
.squad-player-positions{font-size:10px}
.squad-player-age{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
.board-settings .squad-player[data-role="ВР"]:not([data-fit]){background:#edf6eb}
.board-settings .squad-player[data-role="ЗЩ"]:not([data-fit]){background:#eff4fa}
.board-settings .squad-player[data-role="ПЗ"]:not([data-fit]){background:#faf3eb}
.board-settings .squad-player[data-role="НП"]:not([data-fit]){background:#f9f5e7}
.board-settings .squad-player:hover:not([data-fit]){background:#e6efdf}
#tactical-editor.is-dragging .board-settings .squad-player[data-fit]{background:var(--fit-bg)}
.board-settings .squad-player.on-field:not([data-fit]){background:#f4f6f1;cursor:default}
.board-settings .squad-player.on-field .squad-player-identity strong{color:#617166}
.board-settings .squad-player .roster-empty-shirt{flex:none}
#tactical-editor.is-dragging.from-field .squad-player.on-field.drop-hover{background:#e5eee4;box-shadow:inset 0 0 0 2px #819d87;cursor:copy}
.board-settings .send-panel{padding:10px 12px;border-radius:10px}
.board-settings .send-panel .btn{min-height:36px;margin-top:0;padding:8px 12px}
.board-settings .send-panel .draft-status{margin-top:5px}
.board-settings .send-panel .field-help{margin:5px 0 0}
@media(max-width:1100px){
  .board-layout{grid-template-columns:minmax(0,1fr) minmax(320px,350px)}
  .squad-roster-head,.board-settings .squad-player{grid-template-columns:minmax(0,1fr) 52px 38px 62px}
  .squad-roster-head button:nth-child(3),.squad-player-age{display:none}
}
@media(max-width:900px){
  .board-layout{grid-template-columns:1fr;max-width:690px}
  .board-settings .bench-panel{height:auto;max-height:500px;min-height:0}
  .board-settings .bench-grid{max-height:430px}
  .squad-roster-head,.board-settings .squad-player{grid-template-columns:minmax(0,1fr) 56px 27px 42px 65px}
  .squad-roster-head button:nth-child(3),.squad-player-age{display:block}
}
@media(max-width:500px){
  .board-page .board-panel{padding:9px 6px}
  .board-page .lineup-pitch{aspect-ratio:.82;height:auto}
  .board-page .board-slot{height:51px}
  .board-page .board-player .kit-shirt{width:23px;height:25px}
  .board-page .board-player .player-caption{font-size:8px}
  #tactical-editor.is-dragging .board-slot{height:38px;width:18%}
  .squad-roster-head,.board-settings .squad-player{grid-template-columns:minmax(0,1fr) 48px 35px 57px}
  .squad-roster-head button:nth-child(3),.squad-player-age{display:none}
}

/* The tactical roster keeps both base and fitness-adjusted mastery readable. */
.squad-roster-head,.board-settings .squad-player{grid-template-columns:minmax(0,1fr) 54px 25px 43px 39px 60px;gap:3px}
.squad-roster-head button:first-child{padding-left:38px}
.board-settings .squad-player{min-height:30px;padding:1px 4px}
.board-settings .squad-player .kit-shirt{width:23px;height:25px}
.board-settings .squad-player .mastery-value{padding:2px 1px;background:#e7eedc;color:#355c2d;border-radius:4px;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}
.board-settings .squad-player .effective-value{padding:0;background:transparent;color:#285f34;font-size:12px}
@media(max-width:1100px){
  .squad-roster-head,.board-settings .squad-player{grid-template-columns:minmax(0,1fr) 50px 41px 38px 57px}
  .squad-roster-head button:nth-child(3),.squad-player-age{display:none}
}
@media(max-width:900px){
  .squad-roster-head,.board-settings .squad-player{grid-template-columns:minmax(0,1fr) 54px 25px 43px 39px 60px}
  .squad-roster-head button:nth-child(3),.squad-player-age{display:block}
}
@media(max-width:500px){
  .squad-roster-head,.board-settings .squad-player{grid-template-columns:minmax(0,1fr) 45px 38px 36px 54px;gap:2px}
  .squad-roster-head button:nth-child(3),.squad-player-age{display:none}
  .squad-roster-head button:first-child{padding-left:35px}
}
