/* OUTLIGHT v2 · раздел «Результаты» (структура по образцу World Aquatics) */
.r-hero{background:var(--bg-2);border-bottom:1px solid var(--line)}
.r-hero .wrap{padding:36px 24px 0}
.r-hero h1{font-size:34px;font-weight:800;text-wrap:balance}
.r-meta{display:flex;flex-wrap:wrap;gap:16px;color:var(--muted);font-size:14.5px;margin-top:10px;align-items:center}
.r-meta svg{width:16px;height:16px;opacity:.6;vertical-align:-3px;margin-right:5px}
.tabs{display:flex;gap:2px;margin-top:22px;overflow-x:auto}
.tabs a{padding:12px 16px;font-size:14.5px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;font-weight:500;font-family:var(--font-display)}
.tabs a.on{color:var(--ink);border-bottom-color:var(--accent)}
.crumb{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13.5px;margin:22px 0 6px}
.crumb svg{width:15px;height:15px}
.crumb:hover{color:var(--ink)}

/* список соревнований */
.comp-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;padding:28px 0 48px}
.year-head{font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--hint);margin:30px 0 12px}

/* фильтры и расписание */
.filters{display:flex;flex-wrap:wrap;gap:8px;padding:22px 0 6px}
/* месяцы — лента в одну строку, на телефоне листается вбок (T-054) */
.filters.months{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;margin-top:-6px;margin-bottom:14px;padding-bottom:8px;overscroll-behavior-x:contain}
.filters.months::-webkit-scrollbar{display:none}.filters.months .chip{flex:0 0 auto;white-space:nowrap;padding:5px 11px;font-size:12.5px}
.filters.sub{padding-top:0}
.round-head{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--hint);margin:10px 0 4px 2px;font-family:var(--font-display)}   /* предварительные — отдельным блоком под финалами */
.chip{font-size:13px;padding:7px 14px;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:var(--muted);font-weight:500}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.day-head{display:flex;align-items:center;gap:12px;margin:26px 0 10px;color:var(--hint);font-size:13px}
.day-head .t{color:var(--ink);font-weight:700;font-size:15px;font-family:var(--font-display)}
.day-head .ln{flex:1;height:1px;background:var(--line)}
.ev{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:15px 18px;margin-bottom:9px;transition:.15s;color:inherit;cursor:pointer}
.ev:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ev:hover{border-color:var(--line-2);box-shadow:var(--shadow-s);transform:translateY(-1px)}
.ev.live{border-color:#FFC9B3}
.ev.off{opacity:.7}
.ev.sum{background:#FBFCFD;border-style:dashed}
.ev.sum .ev-title::before{content:"Σ";display:inline-block;margin-right:8px;color:var(--accent-ink);font-weight:800}
.fam-head{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--hint);margin:14px 0 8px;font-family:var(--font-display)}
.ev.off:hover{transform:none;box-shadow:none}
.ev-time{width:50px;color:var(--muted);font-size:14px;font-family:var(--font-display);font-weight:600}
.ev-main{flex:1 1 240px;min-width:0}
.ev-title{font-weight:600;font-size:15.5px;font-family:var(--font-display)}
.ev-sub{color:var(--hint);font-size:12.5px;margin-top:2px}
.code{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--ink);background:var(--bg-3);padding:2px 7px;border-radius:5px;margin-right:6px;font-family:var(--font-display)}
.age{display:inline-block;font-size:11.5px;font-weight:600;color:var(--muted);background:var(--bg-3);padding:2px 9px;border-radius:999px;margin-left:8px;vertical-align:2px}
.chev{width:18px;height:18px;color:var(--hint);flex-shrink:0}
.ev-acts{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end;flex:0 1 auto;max-width:62%}
.res td.l .sub{max-width:520px}
/* стартовый лист: состав с годами рождения, запасные */
.res.start td.l .team{font-weight:700}
.roster{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:2px 14px;font-size:13px;color:var(--muted);font-weight:400}
.roster li.res{color:var(--hint)}
.yob{color:var(--hint);font-size:12px;margin-left:5px;font-variant-numeric:tabular-nums}
.pdf-mini{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 10px;white-space:nowrap}
.pdf-mini svg{width:13px;height:13px}
.pdf-mini:hover{border-color:var(--ink);color:var(--ink)}

/* таблица результатов */
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin:12px 0 18px}
.panel-head{display:flex;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid var(--line);background:#fbfcfd;flex-wrap:wrap}
.panel-head .ev-title{font-size:17px}
.panel-head .acts{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.panel-head .badge{align-self:center}
.live-note{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--accent-soft);color:#B2400F;font-size:13px}
.scroll-x{overflow-x:auto}
.cols-toggle{display:none}
table.res{width:100%;border-collapse:collapse;font-size:13.5px;min-width:640px}
table.res thead th{font-weight:600;color:var(--hint);font-size:11px;text-align:center;padding:11px 8px;border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-family:var(--font-display)}
table.res thead th.l{text-align:left}
table.res thead th.r{text-align:right;padding-right:18px}
table.res tbody td{padding:12px 8px;border-bottom:1px solid #F0F2F5;text-align:center;font-variant-numeric:tabular-nums}
table.res tbody td.l{text-align:left}
table.res tbody td.r{text-align:right;font-weight:700;padding-right:18px;font-family:var(--font-display);font-size:14.5px}
table.res tbody tr.top td{background:#FFF7F3}
.rank{font-weight:700;width:44px;font-family:var(--font-display)}
.medal{display:inline-flex;width:26px;height:26px;border-radius:50%;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700}
.m1{background:#D4A73A}.m2{background:#9AA3AD}.m3{background:#B07A4A}
.team{font-weight:600;font-family:var(--font-display)}
.sub{color:var(--hint);font-size:12px;margin-top:1px}
.pen{color:var(--accent-ink)}
.stl{color:var(--accent-ink);font-weight:700;font-family:var(--font-display)}   /* DSQ / DNS в столбце итога */
.dim{color:var(--hint)}
.judges{padding:14px 20px;border-top:1px solid var(--line);background:#fbfcfd;font-size:12.5px;color:var(--muted);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 24px}
.judges b{display:block;color:var(--ink);font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px;font-family:var(--font-display)}

/* медали / документы */
table.simple{width:100%;border-collapse:collapse;font-size:14.5px}
table.simple th{font-weight:600;color:var(--hint);font-size:11px;padding:12px;border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.06em;text-align:center;font-family:var(--font-display)}
table.simple th.l{text-align:left}
table.simple td{padding:12px;border-bottom:1px solid #F0F2F5;text-align:center;font-variant-numeric:tabular-nums}
table.simple td.l{text-align:left;font-weight:600;font-family:var(--font-display)}
table.simple tr:last-child td{border-bottom:none}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
.dg{background:#D4A73A}.ds{background:#9AA3AD}.db{background:#B07A4A}
.note{color:var(--hint);font-size:13px;text-align:center;padding:26px 0 44px}
.empty{color:var(--hint);text-align:center;padding:50px 0}
@media(max-width:680px){
  .r-hero h1{font-size:24px}
  /* строка вида программы: время · название · стрелка, ниже — PDF и статус */
  .ev{display:grid;grid-template-columns:44px 1fr 18px;grid-template-areas:"time main chev" "acts acts acts";gap:8px 10px;padding:13px 14px;align-items:center}
  .ev-time{grid-area:time;width:auto}.ev-main{grid-area:main}.chev{grid-area:chev}
  .ev-acts{grid-area:acts;justify-content:flex-start;padding-left:54px}
  .ev-title .age{display:block;width:max-content;max-width:100%;margin:6px 0 0;white-space:normal}
  .panel-head{flex-wrap:wrap;gap:10px}.panel-head .acts{margin-left:0;width:100%}
  /* компактная таблица: место · участники · итог; «Все оценки» разворачивает остальные столбцы */
  .cols-toggle{display:inline-flex}
  .panel:not(.full) .res .c-x{display:none}
  .panel:not(.full) .res{min-width:0}
  .panel.full .res{min-width:640px}.panel.full .res td.l{min-width:220px}
  .res td,.res th{padding:10px 8px}
  /* командные виды: на телефоне состав скрыт до нажатия на команду */
  .res tr.team-row td.l{cursor:pointer}
  .res tr.team-row td.l .sub{display:none}
  .res tr.team-row.open td.l .sub{display:block}
  .res tr.team-row td.l .team::after{content:" ▾";color:var(--hint);font-size:12px}
  .res tr.team-row.open td.l .team::after{content:" ▴"}
  /* медальный зачёт: на телефоне вместо слов — цветные точки в шапке, ячейки компактнее */
  .medals th .lbl{display:none}.medals th .dot{margin:0}
  .medals table.simple th,.medals table.simple td{padding:10px 8px}
  .medals table.simple td{white-space:nowrap}.medals table.simple td.l{white-space:normal}.medals table.simple td .dot{margin-right:4px}
}

/* обновление 31: список строками / карточками, годы, «сейчас идёт» */
.list-bar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;padding:22px 0 4px}
.years{display:flex;flex-wrap:wrap;gap:8px}
.seg-toggle{display:inline-flex;border:1px solid var(--line-2);border-radius:9px;overflow:hidden;background:#fff}
.seg-toggle button{border:0;background:transparent;padding:7px 13px;font:600 12.5px var(--font-display);color:var(--muted);cursor:pointer}
.seg-toggle button.on{background:var(--ink);color:#fff}
.year-head.live-head{color:#B2400F}
.comp-rows{display:flex;flex-direction:column;gap:8px;padding:0 0 26px}
.comp-row{display:grid;grid-template-columns:132px 1fr auto auto;gap:16px;align-items:center;padding:13px 18px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);color:inherit;transition:.15s}
.comp-row:hover{border-color:var(--line-2);box-shadow:var(--shadow-s);transform:translateY(-1px)}
.comp-row.live{border-color:#FFC9B3}
.comp-row .d{font:600 13.5px var(--font-display);color:var(--muted);white-space:normal;line-height:1.3}   /* даты в двух месяцах переносятся, не наезжая на название */
.comp-row .n{font:600 15px var(--font-display);min-width:0}
.comp-row .n small{display:block;font:400 12.5px var(--font-body);color:var(--hint);margin-top:2px}
.comp-row .k{color:var(--hint);font-size:12.5px;white-space:nowrap}
.comp-row .b{min-width:90px;text-align:right}
.ev.sum .ev-time{color:transparent}
/* протоколы: матрица дисциплины × возраста */
table.mx{width:100%;border-collapse:collapse;font-size:13.5px}
table.mx th{font-weight:600;color:var(--hint);font-size:11px;text-align:center;padding:11px 10px;border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-family:var(--font-display)}
table.mx th.l,table.mx td.l{text-align:left}
table.mx td{padding:9px 10px;border-bottom:1px solid #F0F2F5;text-align:center;vertical-align:middle}
table.mx td.l{font-weight:600;font-family:var(--font-display);white-space:nowrap}
.pdl{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap;padding:2px 0}
.pdl i{font-style:normal;font-size:11px;color:var(--hint);margin-right:4px}
.pd{display:inline-flex;align-items:center;font:600 11px var(--font-display);border:1px solid var(--line);border-radius:999px;padding:3px 9px;color:var(--muted);background:#fff;white-space:nowrap}
a.pd:hover{border-color:var(--ink);color:var(--ink)}
.pd.off{opacity:.3}
table.res tr.st td{color:var(--hint)}
@media(max-width:680px){
  .comp-row{grid-template-columns:1fr auto;gap:6px 10px}
  .comp-row .d{grid-column:1/-1}.comp-row .k{display:none}.comp-row .b{min-width:0}
}

/* обновление 32: строка без времени в результатах, эфир, судьи, подсказки фигур, медали по возрастам */
.pdf-mini.stream{border-color:#FFC9B3;color:#B2400F;background:var(--accent-soft);font-weight:700}
.pdf-mini.stream:hover{border-color:var(--accent)}
.pdf-mini.rec b{font-weight:400;font-size:9px;color:var(--hint)}   /* запись трансляции завершённого соревнования — нейтральная (T-050) */
.jgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 22px;padding:14px 20px;border-top:1px solid var(--line);background:#fbfcfd;font-size:12.5px;color:var(--muted)}
.jgrid b{display:block;color:var(--ink);font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font-family:var(--font-display)}
.jgrid ol{margin:0;padding-left:18px}.jgrid li{margin:1px 0}
.jgrid a{color:inherit;text-decoration:underline dotted;text-underline-offset:3px}.jgrid a:hover{color:var(--ink)}
.jpop{margin:0 20px 14px;padding:9px 12px;background:var(--ink);color:#fff;border-radius:9px;font-size:12.5px}
.jpop a{color:#FFB08F;font-weight:700;text-decoration:none;margin:0 2px}.jpop b{font-family:var(--font-display)}
table.judges-tbl td.roles a{color:var(--ink);text-decoration:underline dotted;text-underline-offset:3px;font-weight:600;font-family:var(--font-display)}
table.judges-tbl td.l{font-weight:400}table.judges-tbl td.l:nth-child(2){font-weight:600;font-family:var(--font-display)}
table.judges-tbl .short{display:none}
@media(max-width:680px){                                   /* судьи на телефоне: без горизонтальной прокрутки (T-030) */
  table.judges-tbl{table-layout:fixed;width:100%;font-size:12.5px}
  table.judges-tbl th,table.judges-tbl td{padding:8px 5px;white-space:normal;overflow-wrap:anywhere}
  table.judges-tbl th:first-child,table.judges-tbl td:first-child{width:30px;padding-left:6px;padding-right:2px;white-space:nowrap;overflow-wrap:normal}   /* «#» под 2–3 цифры, без переноса (T-043) */
  table.judges-tbl th:nth-child(2),table.judges-tbl td:nth-child(2){width:33%}
  table.judges-tbl th:nth-child(3),table.judges-tbl td:nth-child(3){width:36px;padding-left:3px;padding-right:3px}
  table.judges-tbl .full{display:none}table.judges-tbl .short{display:inline}
}
table.res th.fig{position:relative;cursor:help}
table.res th.fig:hover::after,table.res th.fig.on::after{content:attr(data-tip);position:absolute;left:50%;top:100%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:6px 10px;border-radius:7px;font:500 12px var(--font-body);white-space:nowrap;z-index:5;text-transform:none;letter-spacing:0;pointer-events:none;margin-top:2px}
/* фиксированные ширины столбцов: при раскрытии региона таблица не «прыгает» (T-031) */
.medals table.simple{table-layout:fixed;width:100%}
.medals col.c-n{width:48px}.medals col.c-m{width:104px}.medals col.c-tot{width:84px}
.medals table.simple th{white-space:nowrap}   /* «Серебро» в одну строку (T-050) */
.medals table.simple td.l,.medals table.simple th.l{white-space:normal;overflow-wrap:break-word}
.medals tr.reg{cursor:pointer}.medals tr.reg:hover td{background:#F7F9FC}
.medals tr.reg .caret{color:var(--hint);font-size:11px;margin-left:8px}
.medals tr.sub td{background:#FBFCFD;font-size:12.5px;color:var(--muted);padding:6px 12px}
.medals tr.sub td.l{padding-left:36px;font-weight:400;font-family:var(--font-body)}
.medals tr.sub td.l a{color:var(--ink);text-decoration:none}.medals tr.sub td.l a:hover{text-decoration:underline}
.medals tr.sub td .dot{margin:0}.medals tr.sub td small{color:var(--hint);margin-left:3px}
.list-bar button.chip{cursor:pointer;font-family:var(--font-display)}
@media(max-width:680px){
  .ev.nt{grid-template-columns:1fr 18px;grid-template-areas:"main chev" "acts acts"}
  .ev.nt .ev-acts{padding-left:0}
  .jgrid{grid-template-columns:1fr 1fr;padding:12px 14px}
  .medals tr.sub td.l{padding-left:14px}
  .medals col.c-n{width:26px}.medals col.c-m{width:40px}.medals col.c-tot{width:54px}   /* региону остаётся ~120 px, слова не рвутся */
  .medals th:last-child{letter-spacing:0;font-size:10px;padding-left:2px;padding-right:4px}   /* «ВСЕГО» помещается в столбец */
}

/* обновление 33: раскрывающиеся оценки судей */
table.res tr.has-det td.l{cursor:pointer}
table.res tr.has-det td.l .team::after{content:" ▾";color:var(--hint);font-size:12px}
table.res tr.has-det.open td.l .team::after{content:" ▴"}
table.res tr.det{display:none}
table.res tr.open + tr.det{display:table-row}
table.res tr.det > td{padding:0 12px 12px 44px;background:#FBFCFD;border-bottom:1px solid var(--line)}
.det-wrap{overflow-x:auto;background:var(--bg-2);border-radius:8px;padding:6px 10px}
table.pt{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums;min-width:420px}
table.pt th,table.res table.pt th{font:600 10px var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--hint);padding:5px 6px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}   /* селектор с table.res сильнее правил внешней таблицы */
table.pt th.l,table.pt td.l,table.res table.pt th.l,table.res table.pt td.l,table.res table.pt tr.grp td,table.res table.pt tr.ft td,table.res table.pt tr.tip td{text-align:left}   /* название фигуры/элемента и служебные строки — слева (T-026); селектор с table.res сильнее центрирования ячеек */
table.pt td,table.res table.pt td{padding:4px 6px;text-align:center;border-bottom:1px solid #EDF0F4;line-height:1.35}
table.pt td.x{color:#B0B8C2;text-decoration:line-through}
table.pt td.s{font-weight:700;font-family:var(--font-display)}
table.pt tr.grp td{background:var(--bg-3);font:700 10.5px var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:5px 6px}
table.pt tr.ft td{text-align:left;color:var(--muted);padding-top:8px;border:0}
table.pt tr.ft b{color:var(--ink)}
.base{color:#B2400F;font-weight:700}
.sub.res i{font-style:normal;font-weight:700;color:var(--hint);margin-right:4px}
/* обновление 37: оценки на телефоне — плашки слева, название по нажатию, без прокрутки */
table.pt .chip{display:none;min-width:22px;font:700 10.5px var(--font-display);background:var(--ink);color:#fff;border-radius:6px;padding:2px 5px;text-align:center;cursor:pointer;user-select:none}
table.pt .chip.on{background:var(--accent-ink)}
table.pt tr.tip{display:none}
table.pt tr.tip td,table.res table.pt tr.tip td{background:var(--ink);color:#fff;text-align:left;font-weight:600;padding:5px 8px;border-radius:6px;font-size:11.5px}
@media(max-width:680px){
  table.res tr.det > td{padding:0 4px 10px}
  .panel:not(.full) table.res tr.det > td{display:table-cell}
  .det-wrap{overflow:visible;padding:6px 4px 4px}
  table.pt{min-width:0;font-size:11.5px;table-layout:fixed}
  table.pt th,table.pt td,table.res table.pt th,table.res table.pt td{padding:3px 2px}
  table.pt tr.grp td,table.res table.pt tr.grp td{padding:3px 4px}
  table.pt tr.ft td,table.res table.pt tr.ft td{padding-top:6px}
  table.pt th.l{width:34px;visibility:hidden}table.pt th.dd{width:46px}table.pt th.s{width:56px}   /* заголовок «Элемент/Фигура» не помещается над плашкой */
  table.pt .nm{display:none}table.pt .chip{display:inline-block}
  table.pt.fig th.dd,table.pt.fig td.dd{display:none}
  table.pt td.s,table.res table.pt td.s{text-align:right;padding-right:4px}
  table.pt tr.tip{display:table-row}
}
