/* Opaque role plates keep team colors separate from readable text. */
.lineup-board{display:grid;grid-template-columns:minmax(340px,1fr) minmax(380px,1.1fr);gap:18px;min-height:0;color:#eff4fa;width:100%}.board-court-column{min-width:0}.board-court-column header{display:flex;align-items:center;justify-content:space-between}.board-court-column h2{font-size:24px;margin:8px 0}.board-court{background:#bc7850;border:3px solid #f5eee4;padding:8px 12px;position:relative;min-height:285px;box-shadow:inset 0 0 0 2px #693c26}.board-net{color:#fff;background:#091726;text-align:center;font-weight:700;letter-spacing:5px;margin:-8px -12px 10px;padding:5px}.board-front,.board-back{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.board-back{margin-top:22px}.board-slot{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;white-space:normal;border:1px solid transparent;background:transparent;color:#fff;padding:4px;cursor:grab}.board-slot strong{background:#0b1a2a;border-radius:4px;padding:5px;width:100%;line-height:1.25;min-height:40px;font-size:16px;color:#f3f6fc;overflow-wrap:anywhere}.board-slot small{background:#0b1a2a;color:#d6e4f4;padding:2px 8px;border-radius:4px;font-size:14px}.board-shirt{height:50px;width:60px;display:grid;place-items:center;background:var(--board-kit,#174bbb);border-top:5px solid var(--board-trim,#df263d);clip-path:polygon(22% 0,35% 0,40% 9%,60% 9%,65% 0,78% 0,100% 22%,86% 39%,77% 30%,77% 100%,23% 100%,23% 30%,14% 39%,0 22%)}.board-shirt b{color:#fff;background:#091726;padding:2px 5px;border-radius:3px;font-size:16px}.board-libero .board-slot{flex-direction:row;justify-content:start;margin:10px 0;background:#15283d;border:1px solid #4e6882}.board-libero .board-slot strong{width:auto;flex:1;text-align:left;min-height:0;background:none}.board-libero .board-shirt{height:36px;width:44px;flex-shrink:0}.board-help{font-size:14px;color:#c8d6e7;line-height:1.4;margin:6px 0}.board-lists{display:flex;flex-direction:column;min-height:0;max-height:clamp(350px,calc(100dvh - 260px),660px);overflow:auto;border:1px solid #466078;border-radius:8px;background:#101f30}.board-list-group h3{position:sticky;top:0;background:#1c3148;padding:8px 12px;margin:0;font-size:18px;z-index:1;display:flex;justify-content:space-between;color:#f2f6fd}.board-list-group h3 span{color:#a8ecdf}.board-list-group ul{list-style:none;padding:0;margin:0}.board-player{display:flex;gap:3px;align-items:center;border-bottom:1px solid #34495e;min-width:0}.board-player>button:first-child{display:grid;grid-template-columns:42px minmax(90px,1fr) 58px;align-items:center;text-align:left;gap:8px;flex:1;border:0;border-radius:0;background:transparent;padding:10px 8px;color:#ecf3fc;min-width:0}.board-player strong{font-family:inherit;font-size:16px;white-space:normal;overflow-wrap:anywhere}.board-player span{font-size:14px}.board-role{color:#a8ecdf;font-weight:700}.board-player>button:not(:first-child){font-size:14px;padding:7px 6px;margin-right:3px;color:#edf3fb;background:#2a4058;border:1px solid #5e7893}.board-empty{padding:12px;color:#c8d6e7}.board-slot.is-picked,.board-player.is-picked{outline:2px solid #b5ee68;outline-offset:-2px;background:#27472f}.board-filters .so-filters{display:flex;gap:14px;margin:6px 0}.board-filters input{width:240px}.national-selection>.so-validation{font-size:14px;max-height:72px;overflow:auto}.national-selection .so-actions{padding-top:8px;margin-top:8px}.national-selection .so-national-top{margin:4px 0}.national-selection .so-head{margin-bottom:5px}.national-selection .so-head h1{font-size:30px}.national-selection .so-stat{padding:6px 10px}.room-tab-panel .lineup-board{grid-template-columns:minmax(300px,1fr) minmax(300px,1fr)}.room-tab-panel .board-lists{max-height:430px}.room-tab-panel .board-court{min-height:260px}.room-tab-panel .board-slot strong{font-size:14px}.room-roster[hidden]{display:none}.board-slot:disabled{opacity:1;cursor:default}.board-player button:disabled{color:#b8c7d8;background:#1a2c3f;opacity:1;cursor:default}
.coach-challenge{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#172c43;border:1px solid #627e99;border-radius:6px;padding:10px;margin:10px 0}.coach-challenge strong{display:block;font-size:16px;color:#f2f6fc}.coach-challenge span{display:block;color:#d0ddeb;font-size:14px;line-height:1.3;margin-top:4px}.coach-challenge button{background:#b5ee68;color:#111d13;border:2px solid #8abc47;padding:10px 12px;font-weight:700}.coach-challenge button small{display:block;color:inherit}.coach-challenge button:disabled{background:#293e55;color:#d3dfee;border-color:#60788d;opacity:1}
.tactic-choice{border:0;padding:0;margin:8px 0 14px;min-width:0}.tactic-choice legend{color:#eef3fa;font-size:16px;font-weight:700;margin-bottom:7px}.tactic-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.tactic-card{display:flex;flex-direction:column;text-align:left;gap:4px;white-space:normal;padding:7px;background:#15283d;color:#edf3fb;border:1px solid #557087;min-width:0;font-family:inherit}.tactic-card strong{font-size:14px;line-height:1.25}.tactic-card span,.tactic-card small{font-size:14px;line-height:1.25;color:#c8d6e7}.tactic-card .tactic-benefit{color:#b0efdf}.tactic-card[aria-pressed=true]{border:2px solid #73ddca;background:#223e50}.tactic-card:disabled{opacity:1;cursor:default}.tactic-diagram{width:100%;height:54px}.tactic-diagram rect{fill:#254c55;stroke:#afc9cc}.tactic-diagram .tactic-net{stroke:#a2bfc6;stroke-width:1;fill:none}.tactic-diagram circle{fill:#edf4f9}.tactic-arrow{stroke:#b5ee68;stroke-width:3;fill:none}.receiver-choices{display:grid;gap:6px}.receiver-choices button{color:#eef3fa;background:#263e55;text-align:left;white-space:normal}.room-coaching-intro{font-size:14px!important;line-height:1.4!important;color:#d3dfed!important}.room-actor-badge{background:#122a42!important;color:#f4f7ff!important;border:1px solid #6985a0!important}.game-shirt-position{background:#091726!important;color:#f5f8fc!important;border-radius:3px;padding:2px 5px!important;text-shadow:none!important}.game-circle span{background:#091726!important;color:#fff!important;padding:1px 4px;border-radius:3px}.room-route-snapshot,.room-route-snapshot h3,.room-route-snapshot p{background:#0d1c2d!important;color:#e3edf8!important}.room-route-snapshot dl>div{background:#1b3046!important;border:1px solid #63809a!important;color:#eef4fc!important}.room-route-snapshot dt,.room-route-snapshot dd{color:#eef4fc!important}.room-stats .room-stat{background:#14273b!important;border:1px solid #617d98!important;color:#f3f6fc!important}.room-stat dt{color:#d4e0ee!important}.room-stat dd{color:#fff!important}.so-w-table-scroll,.so-w-log-index,.game-database-rows{max-height:calc(100dvh - 260px)!important;overflow:auto!important;overscroll-behavior:contain}.so-w-table-scroll thead{position:sticky;top:0;background:#182d43;z-index:2}.game-database-rows{max-height:calc(100dvh - 200px)!important}.so-w-log-index{padding-right:8px}.so-w-pace{flex-wrap:wrap}.so-w-pace::after{content:'Every rally: coach between points. To set / match end: simulate the rest.';font-size:14px;line-height:1.4;color:#c9d7e8;display:block;width:100%}
@media(max-width:900px){.lineup-board,.room-tab-panel .lineup-board{grid-template-columns:1fr}.board-lists{max-height:420px}.board-court{min-height:270px}.board-filters .so-filters{flex-wrap:wrap}.national-selection .so-head h1{font-size:26px}.tactic-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.so-w-table-scroll,.so-w-log-index,.game-database-rows{max-height:420px!important}.room-tab-panel .board-lists{max-height:360px}}
.so-setup.national-selection select,.so-setup.national-selection input{background:#22384f!important;color:#edf4fc!important;border:1px solid #6b86a0!important}.so-setup.national-selection .so-selection-counts{background:#14283e!important;color:#e8f2fc!important}.so-setup.national-selection .so-stat,.so-setup.national-selection .so-stat strong,.so-setup.national-selection .so-stat span{background:#14283e!important;color:#e8f2fc!important}.national-selection select option{background:#22384f;color:#edf4fc}.national-selection .so-actions{position:static!important}.national-selection .so-national-top{display:flex;align-items:center;gap:18px;padding:10px!important}.national-selection .so-national-top h2{font-size:22px}.national-selection .so-national-top>label{max-width:260px}.national-selection .so-selection-counts{display:flex;margin-left:auto}.national-selection{height:auto!important;overflow:visible!important}.national-selection .board-filters .so-filters>label{font-size:14px}.national-selection .board-filters .so-filters input,.national-selection .board-filters .so-filters select{padding:6px 9px;font-size:16px}.national-selection .board-lists{max-height:calc(100dvh - 335px)}.national-selection .so-validation:has(.so-warnings):not(:has(.so-errors)){display:none}
@media(max-width:900px){.national-selection .so-national-top{flex-wrap:wrap}.national-selection .so-selection-counts{margin-left:0}.national-selection .board-lists{max-height:400px}.national-selection .so-actions{position:sticky!important;bottom:0}}
@media(min-width:901px){.national-selection .so-head{padding:0 0 6px!important}.national-selection .so-head .so-kicker{margin:0 0 5px!important}.national-selection .so-head h1{margin:0 0 4px!important}.national-selection .so-subtitle{margin:0!important;font-size:16px!important}.national-selection .so-national-top{padding:6px 10px!important}.national-selection .so-national-top h2{margin:0}.national-selection .so-national-top select{padding:6px!important}.national-selection .so-national-top .so-stat{padding:4px 8px!important}.national-selection .board-filters .so-filters{margin:5px 0!important;gap:12px}.national-selection .board-filters .so-filters label{gap:3px!important}.national-selection .board-lists{max-height:calc(100dvh - 405px);min-height:310px}.national-selection .so-actions{padding:8px!important}.national-selection .board-court{min-height:280px}.national-selection .board-slot strong{min-height:32px}.national-selection .board-back{margin-top:12px}}
.board-filters input::placeholder{color:#bdcede!important;opacity:1}.board-player>button:first-child{font-family:system-ui,sans-serif!important;text-transform:none!important}.board-slot strong{font-family:system-ui,sans-serif!important;text-transform:none!important}.board-lists button:focus-visible,.board-slot:focus-visible,.tactic-card:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 5px #081321}
.national-selection>.so-validation:empty{display:none}.national-selection>.so-validation{background:#14283e!important;color:#edf4fc!important;border:1px solid #5c7892!important}.national-selection .so-actions .so-start-area{gap:4px}.national-selection .so-actions .so-reason{margin:0;font-size:14px}.national-selection .so-actions button{padding:8px 14px;min-height:40px}.coach-challenge{flex-wrap:wrap}.coach-challenge>div{flex:1;min-width:120px}.coach-challenge [data-action=room-accept-point]{width:100%;background:#2b455e;color:#f1f6fe;border-color:#6b85a0;font-size:14px;padding:6px}.board-submit{display:flex;gap:12px;align-items:center;justify-content:flex-end}.board-submit p{font-size:14px;color:#cbd9e8}.board-double button{display:block;width:100%;background:#223a52;color:#f2f6fb;white-space:normal}.board-double p,.receiver-fallback{font-size:14px;color:#cbd9e8}.board-double{margin-top:12px}
@media(min-width:901px){.national-selection .board-lists{max-height:calc(100dvh - 480px)}.national-selection .board-court-column{align-self:start}.national-selection .lineup-board{align-items:start}.national-selection .so-actions{margin-top:5px!important}.national-selection .board-slot strong{font-size:16px}}
.lineup-board button{user-select:none;-webkit-user-select:none}.game-match-console{max-height:calc(100dvh - 180px);overflow:auto;overscroll-behavior:contain}.game-match-console .tactic-card span,.game-match-console .tactic-card small{font-family:system-ui,sans-serif!important;text-transform:none!important;font-weight:400!important}.game-match-console .tactic-card strong{font-family:system-ui,sans-serif!important;text-transform:none!important;font-weight:700!important}.board-list-group .board-profile{min-width:32px}.tactic-card:focus-visible{outline:3px solid #fff!important}.sideout-room .room-coaching-grid>section h3{display:none}
@media(max-width:900px){.game-match-console{max-height:600px}}

/* v84: same-height board columns, local feedback, tangible drag affordance. */
@media(min-width:901px){.lineup-board,.national-selection .lineup-board{align-items:stretch}.lineup-board .board-lists,.national-selection .board-lists,.room-tab-panel .board-lists{height:0;min-height:100%;max-height:none;align-self:stretch}.lineup-board .board-court-column,.national-selection .board-court-column{align-self:stretch}}
.board-libero-label{font-family:system-ui,sans-serif;text-transform:none;font-size:14px;color:#eef5fc}.board-libero .board-slot{width:100%}.board-fit-warning{font-family:system-ui,sans-serif;text-transform:none;font-size:14px;background:#3d2d13;color:#ffe1a1;border:1px solid #b48949;padding:2px 5px;border-radius:3px}.board-slot:has(.board-fit-warning){border:1px solid #ffcf79}.board-feedback{min-height:40px;display:flex;align-items:center;color:#d5e3ef;font:14px/1.35 system-ui,sans-serif}.board-alert{display:block;padding:8px 10px;width:100%;background:#19384a;color:#eef7ff;border:1px solid #79a6bd;border-radius:5px}.board-alert.is-error{background:#3d241c;color:#ffe9da;border-color:#ffae83}.board-player[draggable=true],.board-player[draggable=true] button{cursor:grab}.board-player>button:first-child::before{content:'⠿';color:#a4bdce;position:absolute;left:4px}.board-player>button:first-child{position:relative;padding-left:21px}.board-slot.is-drop-valid{outline:3px solid #9bf6cb;background:#12382dda;box-shadow:0 0 0 5px #091726}.board-slot.is-drop-invalid{outline:3px solid #ffc69c;background:#462316e8}.board-slot.is-drop-valid::after{content:'Drop here';color:#fff;font:700 14px system-ui}.board-slot.is-drop-invalid::after{content:'Libero restricted';color:#fff;font:700 14px system-ui}.board-player.is-dragging,.board-slot.is-dragging{opacity:.5}.board-drag-ghost{position:fixed;z-index:1000;pointer-events:none;transform:translate(14px,14px);padding:10px 14px;background:#203b54;color:#fff;border:2px solid #9bf6cb;border-radius:6px;box-shadow:0 8px 25px #0008;font:700 16px system-ui}.board-help{color:#e2edf8}.board-help:before{content:'↔ ';color:#8aebd7}#status:not([hidden]):not(:empty){position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:1100;max-width:min(90vw,680px);background:#18394c;color:#f3f8ff;border:1px solid #8badc3;padding:12px 18px;border-radius:6px;font:16px/1.4 system-ui;box-shadow:0 8px 25px #0008}#status.is-error:not([hidden]){background:#3d241c;color:#ffe9da;border-color:#ffae83}.so-notice--error{background:#3d241c!important;color:#ffe9da!important}.so-notice--error *{color:#ffe9da!important}
@media(max-width:900px){.lineup-board .board-lists{height:400px;min-height:0;max-height:400px}.board-libero .board-slot{flex-wrap:wrap}.board-fit-warning{font-size:14px}}
.board-libero{min-height:48px}.board-libero-label{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border-radius:4px;background:#d9f2ee;color:#0b2630;font:800 14px/1 system-ui,sans-serif}.national-selection .lineup-board{align-items:stretch}.national-selection .board-court-column{display:flex;flex-direction:column;min-height:0}.national-selection .board-court-column>header{flex:0 0 auto}.national-selection .board-court{flex:1 1 auto;min-height:285px}.national-selection .board-lists{height:auto;min-height:0;max-height:660px;align-self:stretch;overflow:auto;overscroll-behavior:contain}.national-selection .board-list-group{min-height:0}.national-selection .board-list-group ul{overflow:visible}

.room-rotations{background:#14273b;border:1px solid #63809a;color:#eef4fc;padding:12px;border-radius:6px;margin:12px 0}.room-rotations h3,.room-rotations p{color:#eef4fc!important;margin:4px 0 10px}.rotation-scroll{max-height:240px;overflow:auto}.room-rotations table{width:100%;border-collapse:collapse;font:16px system-ui}.room-rotations td,.room-rotations th{padding:8px;text-align:left;border-bottom:1px solid #45637c;color:#eef4fc}.room-rotations small{color:#cbdce9;margin-left:8px}.room-rotations thead{background:#213b54;position:sticky;top:0}

/* v85 set- and lineup-aware evidence stays in a bounded, scrollable match report. */
.rotation-groups{max-height:340px;overflow:auto;overscroll-behavior:contain}.rotation-unit{padding:8px 0;border-top:1px solid #45637c}.rotation-unit>summary{cursor:pointer;color:#eef4fc;font-weight:700;font-size:16px;min-height:36px}.rotation-unit-players{color:#d4e0ee;font-size:14px;line-height:1.4}.rotation-unit .rotation-scroll{max-height:none}

/* Keep court labels readable at narrow match-panel widths. Full names remain in accessible labels and reports. */
.board-slot strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal;word-break:normal;min-height:28px!important;max-width:100%;box-sizing:border-box}.board-libero .board-slot strong{min-width:0}.room-tab-panel .board-slot strong{font-size:13px}
