:root{--blue:#215bd7;--ink:#17263e;--line:#e3e9f1}body{background:#f5f7fb;color:var(--ink);font-family:system-ui,-apple-system,sans-serif}.topbar{min-height:82px;background:#fff;border-bottom:1px solid var(--line);padding:18px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-size:26px;letter-spacing:2px;font-weight:800;text-decoration:none;color:var(--blue)}.brand span{display:block;letter-spacing:0;font-size:11px;font-weight:500;color:#66758c}.userbar{display:flex;align-items:center;gap:20px;font-size:14px}.userbar form{margin:0}.workspace{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:calc(100vh - 140px)}aside{background:#fff;border-right:1px solid var(--line);padding:32px 18px}.caption{font-size:12px;color:#718096;padding:0 12px}nav{display:grid;gap:6px}nav a{border-radius:8px;padding:12px;text-decoration:none;color:#526077;font-size:14px}nav a:hover,nav a.active{background:#edf3ff;color:var(--blue)}nav a.active{font-weight:650}main{padding:48px;min-width:0}h1{font-size:30px;font-weight:700;margin-bottom:28px}h2{font-size:23px;font-weight:650;line-height:1.4}.eyebrow{font-size:12px;letter-spacing:.07em;color:#6b7b93;margin-bottom:12px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:34px;max-width:1000px}.panel p{line-height:1.75}.guest{display:block}.auth-panel{max-width:460px;margin:20px auto}.auth-panel h1{font-size:27px}input:not([type=checkbox]){display:block;width:100%;padding:10px 12px;border:1px solid #b8c5d7;border-radius:7px}input:focus{outline:3px solid #c9ddff;border-color:var(--blue)}a{color:var(--blue)}.btn-primary{background:var(--blue);border-color:var(--blue)}footer{padding:18px 32px;font-size:12px;color:#718096;border-top:1px solid var(--line)}.errorlist{padding-left:18px;font-size:13px}@media(max-width:767px){.topbar{padding:16px 20px;align-items:flex-start;flex-wrap:wrap}.userbar{gap:12px;flex-wrap:wrap;font-size:12px}.workspace{display:block}aside{padding:18px;border-right:0;border-bottom:1px solid var(--line)}nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}nav a{font-size:13px;padding:10px}main{padding:26px 18px}h1{font-size:26px}.panel{padding:24px}.auth-panel{margin:0 auto}footer{padding:18px}}

/* Формы и списки тренеров, клубов и спортсменов. */
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.page-heading h1{margin:0}.page-heading .btn{flex-shrink:0}.list-panel{max-width:none;padding:26px}.edit-panel{max-width:720px}.back-link{display:inline-block;margin-bottom:24px;font-size:14px;text-decoration:none}.form-actions,.row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.row-actions{font-size:13px;min-width:110px}.secondary-action{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.required-mark,.field-errors{color:#ba2839}.field-errors{font-size:13px;margin-top:6px}.field-errors ul{margin-bottom:0}.club-fieldset legend{font-size:16px;float:none;width:auto;margin-bottom:8px}.club-choices{border:1px solid var(--line);border-radius:8px;padding:12px 16px;max-height:260px;overflow:auto}.club-choices label{display:flex;align-items:flex-start;gap:10px;padding:8px 0;cursor:pointer}.club-choices input{margin-top:5px;flex-shrink:0}.form-check{padding-left:1.8em}.form-check-input{width:1.1em;height:1.1em}.search-bar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.search-bar .flex-grow-1{min-width:180px}.filter-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;align-items:start}.filter-actions{display:flex;gap:8px;align-self:start;padding-top:32px}.result-count{font-size:13px;color:#718096;margin:24px 0 12px}.table{font-size:14px;margin-bottom:0}.table th{font-size:12px;white-space:nowrap;color:#66758c;font-weight:600;background:#f8faff;padding:14px 12px}.table td{padding:16px 12px;min-width:90px;max-width:300px;overflow-wrap:anywhere}.table a{text-decoration:none}.table a:hover{text-decoration:underline}.empty-state{text-align:center;color:#718096!important;padding:42px 18px!important}.club-label{margin:3px 0}.status-label{display:inline-block;font-size:12px;background:#edf7f2;color:#24664b;padding:5px 9px;border-radius:6px}.status-label.inactive{background:#eff1f5;color:#647085}.section-tabs{display:flex;gap:8px;margin-bottom:24px}.section-tabs a{padding:10px 18px;text-decoration:none;border-radius:7px;background:#fff;border:1px solid var(--line)}.section-tabs a[aria-current]{color:#fff;background:var(--blue);border-color:var(--blue)}.people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.section-card{display:block;text-decoration:none;color:var(--ink)}.section-card p{color:#66758c}.section-card span{color:var(--blue);font-size:14px}.section-card:hover{border-color:#a5bff2}.pagination-bar{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:24px;font-size:13px}.athlete-details>div{display:grid;grid-template-columns:170px 1fr;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.athlete-details dt{color:#6b7b93;font-size:14px;font-weight:500}.athlete-details dd{margin:0;overflow-wrap:anywhere}.athlete-details{margin-bottom:28px}.panel form .form-text ul{padding-left:20px}h1{overflow-wrap:anywhere}@media(min-width:768px) and (max-width:1150px){main{padding:32px 24px}.workspace{grid-template-columns:220px minmax(0,1fr)}.topbar{padding:18px 24px}.userbar{gap:12px}}@media(max-width:767px){.page-heading{align-items:flex-start;flex-direction:column}.list-panel{padding:18px}.search-bar{gap:10px}.filter-bar{grid-template-columns:1fr}.filter-actions{padding-top:0}.people-grid{grid-template-columns:1fr;gap:16px}.athlete-details>div{grid-template-columns:1fr;gap:6px}.club-choices{max-height:220px}.table{font-size:13px}.table th,.table td{padding:12px 10px}.form-actions>.btn{flex-grow:1}.userbar>span{overflow-wrap:anywhere;max-width:100%}}
.table td:first-child{min-width:160px}.status-label{white-space:nowrap}
.table td{overflow-wrap:normal;word-break:normal}.table td:first-child{overflow-wrap:anywhere}.table td:last-child a{white-space:nowrap}

/* Соревнования и программа. */
.competition-heading{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:16px}.competition-heading h1{margin:0;flex:1;min-width:200px}.competition-summary{display:flex;align-items:center;gap:22px;flex-wrap:wrap;color:#66758c;font-size:14px;margin:0 0 28px}.competition-status{display:inline-block;background:#edf3ff;color:#215bd7;padding:6px 10px;border-radius:6px;font-size:12px;white-space:nowrap}.status-running{background:#fff4db;color:#8b6012}.status-completed{background:#edf7f2;color:#24664b}.competition-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:30px}.competition-tabs a{padding:9px 13px;border-radius:7px;text-decoration:none;color:#526077;font-size:14px}.competition-tabs a[aria-current]{background:var(--blue);color:white}.competition-tabs a:hover{background:#e5edff;color:var(--blue)}.competition-tabs a[aria-current]:hover{background:var(--blue);color:#fff}.page-heading h2{margin:0}.program-note{font-size:13px;line-height:1.7;margin-bottom:30px}.program-session{margin-bottom:34px}.session-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.session-heading h2{font-size:20px;margin:0}.event-card{max-width:none;margin-bottom:16px;padding:25px}.event-heading{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:25px}.event-heading h3{font-size:17px;line-height:1.6;margin:0;flex:1;min-width:230px}.event-number{display:inline-block;background:#edf3ff;color:var(--blue);font-size:13px;border-radius:6px;padding:3px 10px;margin-right:12px;white-space:nowrap}.age-group-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.age-group-heading h4{font-size:13px;font-weight:600;color:#66758c;margin:0}.age-group-heading a{font-size:13px}.move-buttons{display:inline-flex;gap:4px;margin:0}.move-buttons .btn{line-height:1.3;min-width:32px}.empty-groups{font-size:14px;color:#718096;margin:0}.age-groups-table th,.age-groups-table td{padding:11px 10px}.age-groups-table td:first-child{min-width:180px}.competition-table td:first-child{min-width:220px}.competition-table td{font-size:14px}@media(max-width:767px){.competition-heading{align-items:flex-start;gap:12px}.competition-heading h1{min-width:0;flex-basis:100%}.competition-summary{gap:10px 18px;line-height:1.6;margin-bottom:18px}.competition-tabs{gap:4px;padding-bottom:12px}.competition-tabs a{font-size:13px;padding:8px 10px}.page-heading .form-actions{width:100%}.page-heading .form-actions a{flex-basis:100%}.event-card{padding:20px 16px}.event-heading{gap:12px}.event-heading h3{min-width:0;flex-basis:100%}.session-heading{align-items:flex-start}.session-heading h2{flex-basis:100%;font-size:18px}.age-group-heading{align-items:flex-start}.age-group-heading a{flex-shrink:0}.age-groups-table td:first-child{min-width:160px}.event-number{margin-right:8px}}

/* Заявки и снимки участников. */
.application-athlete{max-width:none;margin:0 0 20px;padding:26px}.application-athlete h3{font-size:20px;margin-bottom:10px}.snapshot-details{color:#66758c;font-size:14px;line-height:1.8}.entry-time{font-variant-numeric:tabular-nums;white-space:nowrap}.entry-exh,.entry-scored,.entry-unavailable,.application-status{display:inline-block;padding:5px 9px;border-radius:6px;font-size:12px;line-height:1.5}.entry-exh{background:#fff4db;color:#8b6012}.entry-scored{background:#edf7f2;color:#24664b}.entry-unavailable{background:#eff1f5;color:#68758a}.application-status{background:#edf3ff;color:var(--blue)}.status-returned{background:#fff4db;color:#8b6012}.status-submitted{background:#edf7f2;color:#24664b}.entry-choice{max-width:none;margin:14px 0;padding:24px}.choice-main{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.choice-label{display:flex;align-items:flex-start;gap:14px;font-weight:600;line-height:1.7;cursor:pointer}.choice-label input{flex-shrink:0;width:18px;height:18px;margin-top:5px}.choice-main>span{flex-shrink:0}.choice-session{margin:8px 0 0 32px;color:#718096;font-size:12px}.choice-time{margin:20px 0 0 32px;max-width:400px}.choice-time .form-control{max-width:200px}.choice-unavailable{background:#f8f9fc}.application-table td:first-child{min-width:180px}.application-table td{font-size:13px}@media(max-width:767px){.application-athlete{padding:22px 16px}.choice-main{flex-direction:column;gap:10px}.entry-choice{padding:20px 16px}.choice-time{margin-left:0;max-width:none}.choice-time .form-control{max-width:none}.choice-main>span{margin-left:32px}.choice-label{font-size:14px}.snapshot-details{font-size:13px}}

/* Стартовые заплывы */
.heat-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0; }
.heat-table { min-width:640px; }
.heat-table td:first-child { min-width:70px; width:80px; font-weight:600; }
.heat-table th { white-space:nowrap; }

/* Результаты */
.result-progress { margin:1rem 0; }
.result-progress .badge { margin-left:.6rem; }
.result-input-panel { padding:24px; max-width:none; }
.result-input-panel .table-responsive { position:relative; }
.result-input-table { min-width:820px; }
.result-input-table th,.result-input-table td { padding:14px 8px; min-width:0; max-width:none; }
.result-input-table td:first-child { min-width:55px; }
.result-input-table td:nth-child(2) { min-width:120px; }
.result-editor { position:relative; min-width:230px; max-width:340px; }
.result-time { font-size:1.15rem; min-height:46px; font-variant-numeric:tabular-nums; }
.result-buttons { display:flex; gap:.5rem; margin:.6rem 0; }
.result-buttons button { min-height:44px; }
.result-buttons button[aria-pressed="true"] { background:#e8efff; border-color:#2854c5; color:#173d9b; }
.save-message { display:block; max-width:310px; font-size:.9rem; white-space:normal; }
.result-status { white-space:nowrap; }

/* Прокрутка единой таблицы заявки не расширяет страницу. */
.application-roster .table-responsive { position:relative; }

/* Компактный выбор дистанций только в заявке тренера. */
.trainer-selection .entry-choice{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;margin:10px 0;padding:12px 16px}
.trainer-selection .entry-choice[hidden]{display:none}
.trainer-selection .choice-main{display:contents}
.trainer-selection .choice-main>div{min-width:0}
.trainer-selection .choice-label{align-items:center;min-height:44px;margin:0;gap:10px;overflow-wrap:anywhere}
.trainer-selection .choice-label input{width:22px;height:22px;margin:0}
.trainer-selection .choice-time{display:grid;grid-template-columns:auto 8.2rem;align-items:center;gap:8px;margin:0;max-width:none}
.trainer-selection .choice-time .form-label{margin:0;font-size:13px}
.trainer-selection .choice-time .form-control{width:100%;max-width:8.2rem;min-height:44px;font-variant-numeric:tabular-nums}
.trainer-selection .choice-time .field-errors,.trainer-selection .choice-time .time-input-error{grid-column:1/-1;max-width:210px}
.trainer-event-results .panel{max-width:none;padding:20px}
@media(max-width:767px){
 .trainer-selection .entry-choice{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:12px}
 .trainer-selection .choice-main>span{margin:0;font-size:11px;max-width:130px}
 .trainer-selection .choice-time{grid-column:1/-1;justify-content:start;grid-template-columns:auto minmax(0,8.2rem)}
 .trainer-event-results .panel{padding:16px}
}
.trainer-selection .time-input-error:empty{display:none!important}

/* Действия с дорожками доступны для нажатия на телефоне. */
.lane-actions .btn,.empty-lane .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}

/* Одна разметка дорожек: горизонтальные строки и мобильные карточки. */
.lane-table-wrap{min-width:0}
.responsive-lanes{width:100%;min-width:0;table-layout:fixed}
.responsive-lanes th,.responsive-lanes td{padding:12px 6px;min-width:0!important;max-width:none;vertical-align:middle;overflow-wrap:anywhere}
.responsive-lanes .lane-number{width:66px}
.responsive-lanes .lane-club{width:13%}
.responsive-lanes .lane-result{width:284px}
.responsive-lanes .lane-state{width:70px;font-size:12px}
.responsive-lanes .lane-action{width:138px}
.responsive-lanes .lane-action .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;white-space:normal}
.responsive-lanes .lane-meta{display:block;color:#718096;font-size:11px;margin-top:4px}
.responsive-lanes .result-editor{display:grid;grid-template-columns:100px minmax(0,1fr);gap:4px 6px;min-width:0;max-width:none;margin:0}
.responsive-lanes .result-time{width:100%;min-width:0;min-height:44px;font-size:16px;padding:8px}
.responsive-lanes .result-buttons{display:flex;align-items:center;gap:4px;margin:0;flex-wrap:nowrap}
.responsive-lanes .result-buttons .btn{min-width:38px;padding:6px;font-size:12px;min-height:44px}
.responsive-lanes .save-message,.responsive-lanes .conflict-reload,.responsive-lanes .time-input-error{grid-column:1/-1;max-width:100%;font-size:12px;overflow-wrap:anywhere}
.responsive-lanes .time-input-error:empty{display:none!important}
.mobile-lane-caption,.mobile-empty{display:none}
@media(max-width:991px){
 .result-input-panel{padding:16px;min-width:0}
 .responsive-lanes,.responsive-lanes tbody{display:block;width:100%}
 .responsive-lanes thead{display:none}
 .responsive-lanes tr{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 10px;padding:16px 0;border-bottom:1px solid var(--line)}
 .responsive-lanes td{display:block;width:auto!important;padding:0;border:0;min-width:0!important}
 .responsive-lanes .lane-number{font-weight:700}
 .responsive-lanes .lane-athlete{font-weight:600}
 .responsive-lanes .lane-club,.responsive-lanes .lane-result,.responsive-lanes .lane-action{grid-column:1/-1}
 .responsive-lanes .lane-state{grid-column:1/-1;color:#66758c}
 .responsive-lanes .lane-club{font-size:13px;color:#66758c}
 .responsive-lanes .result-editor{grid-template-columns:minmax(90px,1fr) auto;gap:6px}
 .responsive-lanes .result-buttons .btn{min-width:44px;min-height:44px}
 .responsive-lanes .lane-action .btn{width:100%}
 .responsive-lanes .desktop-empty{display:none}
 .mobile-lane-caption,.mobile-empty{display:inline}
}
.responsive-lanes .result-editor>.result-time{grid-column:1;grid-row:1}
.responsive-lanes .result-editor>.result-buttons{grid-column:2;grid-row:1}
.responsive-lanes .club-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
@media(max-width:991px){.responsive-lanes .club-name{display:block;overflow:visible;-webkit-line-clamp:unset}}

/* Единый экран результатов: один раскрытый раздел, один редактор. */
.result-event-list{display:grid;gap:10px;min-width:0}
.result-event{padding:12px;min-width:0}
.event-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;padding:10px;border:0;background:transparent;text-align:left;color:var(--ink);font-weight:600;overflow-wrap:anywhere}
.event-toggle[aria-expanded=true]{background:#eaf1ff;color:#245cca;border-radius:8px}
.readiness-mark{color:#198754;font-size:20px;font-weight:700;line-height:1;flex-shrink:0;background:#fff;border-radius:50%;padding:2px 4px;}
.heat-choices{display:flex;gap:8px;flex-wrap:wrap;padding:12px 0}
.heat-choices[hidden]{display:none}
.heat-choice{min-height:44px}
.heat-choice[aria-pressed=true]{background:#245cca;color:white}
.legacy-result-link{flex-basis:100%;font-size:13px;margin-top:6px}
#workspace-editor{min-width:0;scroll-margin-top:16px}
#workspace-heading{scroll-margin-top:16px;overflow-wrap:anywhere}
@media(max-width:600px){.event-toggle{align-items:flex-start;gap:8px}.result-event{padding:8px}}

/* Управление заплывами рядом с выбором, редактор содержит только дорожки. */
.create-heat{flex-basis:100%}
.heat-option{display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:100%}
.delete-heat{font-size:.875rem;overflow-wrap:anywhere}

/* Keep wide entries tables, including absolute accessibility labels, inside their scroll areas. */
.competition-entries .table-responsive{position:relative;max-width:100%}

/* Read-only event standings never widen the workspace or replace lane inputs. */
.current-results { min-width: 0; max-width: 100%; }
.current-results .table-responsive { max-width: 100%; overflow-x: auto; }
.current-results th { white-space: nowrap; }
.current-results td { overflow-wrap: anywhere; }
.current-results { margin-bottom: 12px; }
.current-results .table th, .current-results .table td { padding: 8px 10px; }
.current-event + .current-event { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.current-group { min-width: 0; margin-top: 16px; }
.reference-editor { min-width:0; }
.reference-selection { margin-bottom:20px; }
.reference-times { max-width:580px; }
.reference-times th { width:60%; white-space:normal; vertical-align:middle; }
.reference-times td { min-width:0; }
.reference-times input { max-width:11rem; }
@media(max-width:767px){.reference-times th,.reference-times td{padding:8px 6px}.reference-times input{min-width:0}.reference-selection>div{min-width:0}}

/* Bulk reference tables scroll locally; the discipline remains visible. */
.reference-bulk { min-width: 0; max-width: 100%; }
.reference-name { max-width: 38rem; margin-bottom: 1rem; }
.reference-table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.reference-bulk-table { width: max-content; min-width: 100%; table-layout: fixed; }
.reference-bulk-table th, .reference-bulk-table td { padding: .45rem; vertical-align: top; }
.reference-bulk-table thead th { white-space: normal; min-width: 7.4rem; max-width: 9rem; }
.reference-bulk-table input { width: 7.4rem; min-height: 42px; }
.reference-bulk-table th:first-child { position: sticky; left: 0; z-index: 1; background: #fff; min-width: 10rem; max-width: 14rem; white-space: normal; overflow-wrap: anywhere; }
.reference-bulk-table .reference-sex th { position: static; background: #edf2fc; color: #254ead; }
.reference-bulk-table .errorlist { max-width: 8rem; white-space: normal; padding-left: 1rem; }
.reference-bulk-table .time-input-error:empty { display: none !important; }
@media (max-width: 600px) {
  .reference-bulk-table th:first-child { min-width: 8rem; max-width: 8rem; }
  .reference-bulk-table input { font-size: 16px; }
}
.protocol-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; min-width:0; }
.protocol-fields>div {min-width:0;}
.protocol-editor summary {cursor:pointer;font-weight:600;padding:8px 0;}
.protocol-subform {margin-top:16px;padding:12px;border:1px solid #ddd;min-width:0;}
.protocol-subform legend {font-size:1rem;}
.protocol-preview {width:100%;height:70vh;border:1px solid #ddd;margin-top:20px;background:white;}
@media(max-width:600px){.protocol-fields{grid-template-columns:1fr}.protocol-editor{min-width:0}.protocol-preview{height:60vh}}

/* The columns editor scrolls inside its panel, including narrow phones. */
.protocol-columns { min-width:0; max-width:100%; }
.protocol-column-scroll { overflow-x:auto; max-width:100%; }
.protocol-column-table { width:100%; min-width:680px; border-collapse:collapse; }
.protocol-column-table td,.protocol-column-table th { padding:.4rem; text-align:left; }
.protocol-column-table select { min-width:160px; }
.protocol-column-table input[type=number] { width:100px; }
.protocol-column-table input[type=text] { min-width:150px; }
.protocol-column-table tr[hidden] { display:none; }

/* Standings use their intrinsic width, including the enclosing panel. */
.current-results { width: fit-content; max-width: 100%; padding: 20px; }
.current-results .table-responsive { width: fit-content; max-width: 100%; overflow-x: auto; }
.current-results .table { width: auto; min-width: 720px; table-layout: auto; }
.current-results .table th, .current-results .table td { min-width: 0; padding: 7px 9px; }
.current-results .table th:first-child, .current-results .table td:first-child { min-width: 0; width: 48px; }
.current-results .table th:nth-child(2), .current-results .table td:nth-child(2) { min-width: 200px; max-width: 260px; }
.current-results .table th:nth-child(4), .current-results .table td:nth-child(4) { min-width: 145px; max-width: 220px; }
.current-results td:not(:nth-child(2)):not(:nth-child(4)) { white-space: nowrap; }
.current-results .current-place, .current-results .current-time, .current-results .current-points { text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width:767px) { .current-results { padding: 14px; } }
.protocol-document-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:end; }
.protocol-document-actions .template-choice { flex:1 1 240px; max-width:500px; }
/* Override the older unrestricted trainer-panel rule. */
.trainer-event-results .panel.current-results { max-width: 100%; }
/* Application lists and entry-time forms share the compact read-only layout. */
.entries-compact { min-width: 0; max-width: 1120px; }
.entries-compact .panel { width: fit-content; max-width: 100%; padding: 20px; }
.entries-compact .table-responsive { width: fit-content; max-width: 100%; overflow-x: auto; }
.entries-compact .table { width: auto; min-width: 0; }
.entries-compact .table th, .entries-compact .table td { min-width: 0; padding: 8px 10px; vertical-align: middle; }
.entries-compact .table td:first-child { min-width: 190px; max-width: 250px; }
.entries-compact .table td { max-width: 240px; }
.entries-compact .table .entry-time { min-width: 85px; white-space: nowrap; }
.entries-compact .row-actions { min-width: 130px; max-width: 230px; gap: 6px 12px; }
.entries-compact .filter-bar { max-width: 960px; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 12px; margin-bottom: 16px; }
.entries-compact .entry-selection { width: 760px; max-width: 100%; }
.entries-compact .entry-choice { width: 100%; display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 12px; margin: 10px 0; padding: 12px 16px; }
.entries-compact .entry-choice[hidden] { display: none; }
.entries-compact .choice-main { display: contents; }
.entries-compact .choice-main>div { min-width: 0; }
.entries-compact .choice-label { align-items: center; min-height: 44px; margin: 0; gap: 10px; }
.entries-compact .choice-label input { margin: 0; flex-shrink: 0; }
.entries-compact .choice-session { margin: 4px 0 0 32px; }
.entries-compact .choice-time { display: grid; grid-template-columns: auto 8.2rem; align-items: center; gap: 6px; margin: 0; max-width: 250px; }
.entries-compact .choice-time .form-control { width: 8.2rem; max-width: 100%; min-height: 44px; font-variant-numeric: tabular-nums; }
.entries-compact .choice-time .form-label { margin: 0; font-size: 13px; }
.entries-compact .choice-time .form-text, .entries-compact .choice-time .field-errors, .entries-compact .choice-time .time-input-error { grid-column: 1/-1; max-width: 250px; }
@media(max-width:767px) {
 .entries-compact .panel { padding: 14px; }
 .entries-compact .entry-choice { grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
 .entries-compact .choice-main>span { max-width: 120px; font-size: 11px; margin: 0; }
 .entries-compact .choice-time { grid-column: 1/-1; justify-content: start; grid-template-columns: auto 8.2rem; }
 .entries-compact .filter-bar { grid-template-columns: 1fr; }
}
/* Compact competition programme without changing programme order or controls. */
.program-compact { max-width: 900px; min-width: 0; }
.program-compact .page-heading { margin-bottom: 16px; gap: 12px; }
.program-compact .program-note { margin-bottom: 20px; line-height: 1.5; }
.program-compact .program-session { margin-bottom: 24px; }
.program-compact .session-heading { max-width: 760px; margin-bottom: 12px; gap: 12px; }
.program-compact .session-heading h2 { font-size: 19px; }
.program-compact .event-card { width: fit-content; min-width: min(100%,640px); max-width: 100%; padding: 18px; margin-bottom: 12px; }
.program-compact .event-heading { margin-bottom: 14px; gap: 12px; }
.program-compact .event-heading h3 { font-size: 16px; line-height: 1.5; }
.program-compact .event-number { padding: 2px 8px; margin-right: 8px; }
.program-compact .age-group-heading { margin-bottom: 8px; gap: 12px; }
.program-compact .table-responsive { width: fit-content; max-width: 100%; overflow-x: auto; }
.program-compact .age-groups-table { width: auto; }
.program-compact .age-groups-table th, .program-compact .age-groups-table td { min-width: 0; padding: 7px 9px; }
.program-compact .age-groups-table td:first-child { min-width: 150px; max-width: 230px; }
.program-compact .row-actions { min-width: 0; gap: 6px 10px; }
@media(max-width:767px) {
 .program-compact .event-card { padding: 14px; }
 .program-compact .page-heading .form-actions { width: auto; }
 .program-compact .page-heading .form-actions a { flex-basis: auto; }
 .program-compact .session-heading { gap: 8px; }
 .program-compact .event-heading h3 { font-size: 15px; }
}
.program-compact .table-responsive { position: relative; }
/* Keep the heat editor readable without stretching it across wide displays. */
.result-input-panel { width: fit-content; max-width: 100%; padding: 16px; }
.result-input-panel h2, .result-input-panel h3 { font-size: 20px; margin-bottom: 12px; }
.result-input-panel .lane-table-wrap { max-width: 100%; overflow-x: auto; position: relative; }
@media(min-width:992px) {
 .result-input-panel .responsive-lanes { width: 820px; min-width: 820px; table-layout: fixed; }
 .result-input-panel .responsive-lanes th, .result-input-panel .responsive-lanes td { padding: 7px 6px; }
 .result-input-panel .lane-number { width: 70px; }
 .result-input-panel .lane-club { width: 120px; }
 .result-input-panel .lane-result { width: 278px; }
 .result-input-panel .lane-state { width: 60px; }
 .result-input-panel .lane-action { width: 125px; }
}
@media(max-width:991px) {
 .result-input-panel { width: 560px; max-width: 100%; padding: 14px; }
 .result-input-panel .responsive-lanes tr { padding: 12px 0; gap: 6px 8px; }
}
.responsive-lanes .save-message:empty { display: none; }
