/* Жеребьёвка, площадки и очередь боёв. Язык «плакат» из app.css: прямые углы, волосяные линии. */

.container.wide { max-width: 1440px; }
input[type=time] { width: 100%; font: 16px var(--font); padding: 10px 12px; border: 1px solid #b9b9c4; border-radius: 0; background: #fff; color: var(--ink); }

/* Шапка секретаря: вкладки и действия */
.draw-tabs { display: flex; gap: 12px 24px; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; border-bottom: 1px solid var(--line); margin-bottom: 24px; }
.draw-tabs .switch { border-bottom: 0; margin-bottom: 0; }
.draw-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding-bottom: 8px; }
.draw-actions form { margin: 0; }
/* Плашка «после публикации изменено» */
.changed-bar { display: flex; gap: 10px 20px; align-items: center; justify-content: space-between; flex-wrap: wrap;
  background: #fdf3e2; border-left: 4px solid var(--warn); padding: 12px 16px; margin: -12px 0 24px; }
.changed-bar p { margin: 0; color: var(--warn); }
.changed-bar p .muted { margin-left: 4px; }
@media (max-width: 600px) { .changed-bar p .muted { display: block; margin: 2px 0 0; } }
.changed-bar form { margin: 0; }
.switch a .count { font-weight: 400; color: var(--muted); margin-left: 4px; }

/* Фильтры таблицей */
.draw-filters { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 12px; align-items: end; margin-bottom: 24px; }
.draw-filters .field label { font-size: 13px; }
.draw-filters input, .draw-filters select { padding: 8px 10px; font-size: 15px; }
.draw-filters .range { display: flex; gap: 6px; }
.draw-filters .range input { min-width: 0; }
.draw-filters .filter-buttons { display: flex; gap: 8px; align-items: center; }
@media (min-width: 900px) { .draw-filters { grid-template-columns: 140px 140px 200px 200px 150px auto; } }

/* Таблица участников */
.draw-table td { padding-top: 8px; padding-bottom: 8px; }
.draw-table td.pick { width: 30px; }
.draw-table label.who { display: block; font-weight: 700; cursor: pointer; }
.draw-table tr.picked { background: var(--blue-tint); }
.draw-table .w { font-weight: 700; }
.draw-table .gender-F { color: var(--red-dark); }
.draw-table .near-link { font-size: 13px; white-space: nowrap; }
.near-row > td { background: #fafafe; padding: 12px 16px !important; border-bottom: 2px solid var(--blue) !important; }
.near-row .near-head { display: flex; gap: 12px; align-items: baseline; justify-content: space-between; margin-bottom: 6px; }
.near-list { list-style: none; margin: 0; padding: 0; }
.near-list li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; align-items: center; padding: 6px 0; border-top: 1px solid var(--line); }
.near-list li:first-child { border-top: 0; }
.near-list .near-meta { font-size: 14px; }

/* Панель «составить» внизу экрана */
.pick-bar { position: sticky; bottom: 0; z-index: 20; background: var(--paper); border-top: 2px solid var(--line-strong); padding: 12px 0; margin-top: 8px;
  display: flex; gap: 12px 20px; align-items: center; flex-wrap: wrap; }
.pick-bar .hint { font-size: 14px; color: var(--muted); }

/* Составленные пары и группы */
.groups-table .members { list-style: none; margin: 0; padding: 0; }
.groups-table .members li + li { margin-top: 2px; }
.groups-table .bouts { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.groups-table .bouts li + li { margin-top: 4px; }
.groups-table td { vertical-align: top; }
.groups-table .glabel { font-weight: 700; }

/* Углы: цвет текстом, без заливки */
.corner-red { color: var(--red); }
.corner-blue { color: var(--blue); }
.corner-tag { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.corner-tag.red { color: var(--red); } .corner-tag.blue { color: var(--blue); }

/* Площадки секретаря */
.area-tools { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; margin-bottom: 28px; }
@media (min-width: 900px) { .area-tools { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; } }
.area-tools form { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; margin: 0; }
.area-tools .field { flex: 1 1 120px; }
.area-tools .field input, .area-tools .field select { padding: 8px 10px; }
.board { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 28px 24px; align-items: start; }
.board-col .head { align-items: center; }
.board-col .head h3 { margin: 0; }
.board-col .col-meta { font-size: 13px; color: var(--muted); margin: 6px 0 0; }
.board-col .col-links { display: flex; gap: 12px; flex-wrap: wrap; font-size: 13px; margin: 4px 0 0; }
.board-col .col-links form { margin: 0; }
.queue { list-style: none; margin: 0; padding: 0; min-height: 56px; }
.queue:empty::after { content: "Перетащите сюда бой"; display: block; padding: 16px 0; color: var(--muted); font-size: 14px; border-bottom: 1px dashed var(--line); }
.q-item { padding: 10px 0; border-bottom: 1px solid var(--line); background: var(--paper); cursor: grab; }
.q-item:target { background: var(--blue-tint); }
.q-item .mark { white-space: normal; overflow-wrap: anywhere; }  /* предупреждение о накладке длинное — переносим */
.q-item .q-top { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; font-size: 14px; }
.q-item .q-no { font-family: var(--head); font-size: 20px; line-height: 1; }
.q-item .q-fighter { font-size: 15px; line-height: 1.35; }
.q-item .q-fighter .club { color: var(--muted); font-size: 13px; }
.q-item .q-group { font-size: 13px; color: var(--muted); }
.q-controls { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-top: 6px; }
.q-controls form { display: flex; gap: 6px; margin: 0; align-items: center; }
.q-controls select { width: auto; padding: 4px 8px; font-size: 14px; }
.q-controls .btn-sm { padding: 4px 10px; font-size: 12px; }
.sortable-ghost { opacity: .35; }
.sortable-chosen { background: var(--blue-tint); }
@media (hover: hover) and (pointer: fine) {
  .q-controls { opacity: .55; }
  .q-item:hover .q-controls, .q-controls:focus-within { opacity: 1; }
}

/* Публичная очередь площадки — в первую очередь телефон */
.pub-tools { background: var(--paper); margin-bottom: 20px; }
.pub-search { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.pub-search[hidden] { display: none; }
.pub-search input { padding: 8px 10px; }
.pub-tabs { display: flex; gap: 20px; overflow-x: auto; border-bottom: 1px solid var(--line); margin-top: 12px; scrollbar-width: none; }
.pub-tabs a { flex: none; padding: 10px 0; color: var(--muted); text-decoration: none; font-weight: 700; border-bottom: 3px solid transparent; margin-bottom: -1px; }
.pub-tabs a.on { color: var(--ink); border-bottom-color: var(--red); }
.pub-tabs .num { font-weight: 400; color: var(--muted); margin-left: 6px; }
.pub-tabs .num:empty { display: none; }
.pub-none { padding: 16px 0; font-weight: 700; }
.pub-none-area { padding: 16px 0; color: var(--muted); }
.pub-elsewhere { padding: 0 0 16px; font-weight: 700; }
.pub-area { scroll-margin-top: var(--pub-offset, 200px); min-width: 0; }
.pub-area .head { margin-bottom: 4px; }
.pub-board > .pub-area + .pub-area { margin-top: 40px; }

.pub-queue { list-style: none; margin: 0; padding: 0; }
.pub-queue > li[hidden] { display: none; }
.pub-group { padding: 20px 0 8px; border-bottom: 2px solid var(--line-strong); }
.pub-group h2, .pub-group h3 { margin: 0; font-size: 18px; line-height: 1.15; }
.pub-group h2 span, .pub-group h3 span { font: 400 15px var(--font); text-transform: none; color: var(--muted); }
.pub-group p { margin: 2px 0 0; font-size: 13px; color: var(--muted); }
.pub-group.is-none h2, .pub-group.is-none h3 { color: var(--muted); }

.pub-bout { display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.pub-bout { scroll-margin-top: var(--pub-offset, 200px); }
.pub-bout:target { background: var(--blue-tint); }
.pub-bout .pb-no { grid-row: 1 / span 3; }
.pub-bout .pb-no b { display: block; font: 700 28px/1 var(--head); }
.pub-bout .pb-no span { display: block; font-size: 14px; color: var(--muted); margin-top: 4px; font-variant-numeric: tabular-nums; }
/* Угол: квадрат цвета угла, имя с клубом, справа метка итога */
.pb-corner { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; column-gap: 10px; align-items: start; padding: 3px 0; line-height: 1.3; }
.pb-corner::before { content: ""; width: 10px; height: 10px; margin-top: 6px; grid-row: 1 / span 2; }
.pb-corner.red::before { background: var(--red); }
.pb-corner.blue::before { background: var(--blue); }
.pb-side { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pb-name { grid-column: 2; font-size: 17px; font-weight: 700; overflow-wrap: anywhere; }
.pb-club, .pb-wait { grid-column: 2; font-size: 14px; color: var(--muted); overflow-wrap: anywhere; }
.pb-sub { grid-column: 2; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; min-width: 0; }
.pb-note { padding: 0 5px; font-size: 12px; line-height: 1.5; color: var(--ink); border: 1px solid var(--line-strong); white-space: nowrap; }
.pb-mark { grid-column: 3; grid-row: 1; align-self: start; margin-top: 3px; font-size: 11px; font-weight: 700; line-height: 1; text-transform: uppercase; letter-spacing: .06em; padding: 4px 6px; color: #fff; }
.pb-corner.red .pb-mark { background: var(--red); }
.pb-corner.blue .pb-mark { background: var(--blue); }
.pb-corner.drew .pb-mark { background: none; color: var(--ink); border: 1px solid var(--ink); padding: 3px 5px; }
.pb-corner.red.won .pb-name { color: var(--red-dark); }
.pb-corner.blue.won .pb-name { color: var(--blue); }
.is-done .pb-corner:not(.won):not(.drew) .pb-name { color: var(--muted); font-weight: 400; }
.pub-queue mark { background: var(--blue-tint); color: inherit; border-bottom: 2px solid var(--blue); }
.pb-foot { grid-column: 2; display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; margin-top: 4px; font-size: 13px; }
.pb-foot .pb-meta { color: var(--muted); flex: 1 1 auto; }
.pb-foot .pb-act { margin-left: auto; display: flex; gap: 12px; align-items: baseline; white-space: nowrap; }
.pb-foot a { font-weight: 700; }

@media (max-width: 759px) {
  .pub-tools { position: sticky; top: 69px; z-index: 40; padding-top: 12px; margin-top: -12px; border-bottom: 1px solid var(--line); }
  .pub-tools .pub-tabs { border-bottom: 0; }
  .pub-board.tabbed .pub-area { display: none; }
  .pub-board.tabbed .pub-area.on { display: block; }
  .pub-board.tabbed > .pub-area + .pub-area { margin-top: 0; }
  .pub-board.tabbed .pub-area .head { display: none; }
}
@media (min-width: 760px) {
  .pub-tabs, .pub-elsewhere { display: none; }
  .pub-search { max-width: 640px; }
  .pub-board { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 40px 32px; align-items: start; }
  .pub-board > .pub-area + .pub-area { margin-top: 0; }
}

/* Олимпийская сетка. На телефоне — круги списком сверху вниз, шире — деревом: колонки по кругам,
   волосяные линии от боя к следующему бою */
.brk-list { margin-top: 48px; }
.brk-group { margin-top: 20px; }
.brk-group + .brk-group { margin-top: 36px; }
.brk-group h3 { margin: 0 0 12px; font-size: 20px; }
.brk-round { margin: 0 0 6px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.brk-col + .brk-col { margin-top: 16px; }
.brk-cells { list-style: none; margin: 0; padding: 0; }
.brk-cell { padding: 4px 0; }
.brk-cell.is-empty { display: none; }
.brk-match, .brk-bye { position: relative; width: 100%; border: 1px solid var(--line-strong); background: var(--paper); }
.brk-side { display: grid; grid-template-columns: 4px minmax(0, 1fr); column-gap: 8px; padding: 5px 8px 5px 0; line-height: 1.25; }
.brk-side::before { content: ""; grid-row: 1 / span 2; background: var(--red); }
.brk-side.blue::before { background: var(--blue); }
.brk-side + .brk-side { border-top: 1px solid var(--line); }
.brk-name { grid-column: 2; font-size: 15px; overflow-wrap: anywhere; }
.brk-club, .brk-wait { grid-column: 2; font-size: 12px; color: var(--muted); overflow-wrap: anywhere; }
.brk-side.won .brk-name { font-weight: 700; }
.brk-side.lost .brk-name { color: var(--muted); }
.brk-meta { margin: 0; padding: 3px 8px; font-size: 12px; color: var(--muted); border-top: 1px solid var(--line); }
.brk-bye { border-style: dashed; padding: 5px 8px; }
.brk-bye .brk-name { display: block; }
.brk-bye .brk-note { display: block; font-size: 12px; color: var(--muted); }
.brk-row > td { padding-top: 4px; padding-bottom: 20px; }

@media (min-width: 760px) {
  .brk { --brk-gap: 20px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
  .brk-col { display: flex; flex-direction: column; min-width: 0; }
  .brk-col + .brk-col { margin-top: 0; }
  .brk-col:not(:first-child) .brk-round { padding-left: var(--brk-gap); }
  .brk-cells { flex: 1; display: flex; flex-direction: column; }
  .brk-cell { flex: 1 1 0; display: flex; align-items: center; position: relative; padding: 6px var(--brk-gap); }
  .brk-cell.is-empty { display: flex; }
  .brk-col:first-child .brk-cell { padding-left: 0; }
  .brk-col:last-child .brk-cell { padding-right: 0; }
  /* линия вправо и половина скобы к соседу по паре */
  .brk-col:not(:last-child) .brk-cell:not(.is-empty)::after { content: ""; position: absolute; right: 0; top: 50%; width: var(--brk-gap); border-top: 1px solid var(--line-strong); }
  .brk-col:not(:last-child) .brk-cell:not(.is-empty)::before { content: ""; position: absolute; right: 0; border-right: 1px solid var(--line-strong); }
  .brk-col:not(:last-child) .brk-cell:nth-child(odd)::before { top: 50%; bottom: 0; }
  .brk-col:not(:last-child) .brk-cell:nth-child(even)::before { top: 0; bottom: 50%; }
  /* линия слева к бою следующего круга */
  .brk-col:not(:first-child) .brk-match::before { content: ""; position: absolute; top: 50%; left: calc(-1 * var(--brk-gap) - 1px); width: var(--brk-gap); border-top: 1px solid var(--line-strong); }
}

/* Порядок в сетке перед созданием */
.seed-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; margin-top: 20px; }
@media (min-width: 1000px) { .seed-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.seed-table input.seed-pos { width: 64px; padding: 6px 8px; font-size: 16px; }
.seed-table td { vertical-align: middle; }
.seed-table th:first-child, .seed-table td:first-child { width: 1%; text-align: left; }
.seed-pairs { list-style: none; margin: 0; padding: 0; counter-reset: pair; }
.seed-pairs li { padding: 10px 0; border-bottom: 1px solid var(--line); line-height: 1.4; }
.seed-pairs li.is-clash { background: #fdf3e2; }
.seed-pairs .seed-vs { color: var(--muted); font-size: 13px; margin: 0 4px; }
.seed-pairs .corner-red, .seed-pairs .corner-blue { font-weight: 700; }
.seed-actions { margin-top: 24px; flex-wrap: wrap; }
