.tournament-management{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.tournament-editor{width:min(1120px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:20px;box-sizing:border-box;border:1px solid #dce2eb;border-radius:18px;overflow:auto}.tournament-editor::backdrop{background:#101724a8}.tournament-editor-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.tournament-editor-heading h2{margin:0 0 16px}.tournament-editor form>label{display:grid;gap:6px;margin:12px 0}.tournament-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tournament-editor-grid label{display:grid;gap:6px}.tournament-editor-scroll{max-width:100%;overflow:auto;margin:16px 0}.tournament-editor table{border-collapse:collapse}.tournament-editor th,.tournament-editor td{padding:6px;text-align:left;white-space:nowrap}.tournament-editor td input{width:92px}.tournament-editor td:nth-child(2) input{width:170px}.tournament-editor td select{width:150px}.tournament-editor td:first-child input{width:66px}.tournament-event{display:grid;grid-template-columns:76px 1fr 76px;gap:8px;margin:12px 0;padding:12px;border:1px solid #dce2eb;border-radius:12px}.tournament-event label{display:grid;gap:6px}.tournament-event label:last-of-type{grid-column:1/-1}.tournament-editor [data-error]{color:#b3261e;white-space:pre-wrap}.tournament-editor button{min-height:44px}.tournament-editor fieldset{min-width:0;border:0;padding:0}.tournament-editor input,.tournament-editor textarea{box-sizing:border-box}@media(max-width:600px){.tournament-editor{padding:14px}.tournament-editor-grid{grid-template-columns:1fr}.tournament-event{grid-template-columns:60px 1fr}.tournament-event label:nth-child(3){grid-column:1/-1}}
.tournament-management { padding:14px; border:1px solid #8d9bb329; border-radius:18px; background:#10182bd9; box-shadow:inset 0 1px #ffffff0a; }
.tournament-management .button,.tournament-editor button { font:inherit; cursor:pointer; transition:background-color .15s,border-color .15s,box-shadow .15s; }
.tournament-management .button { min-height:44px; padding:11px 16px; border:1px solid #697b9d70; border-radius:12px; background:#1d2940; color:#eef3ff; font-size:13px; font-weight:700; }
.tournament-management .button[data-create] { background:#3d3be0; border-color:#7976ff; }
.tournament-management .button[data-logout] { margin-left:auto; background:transparent; color:#b5c3dc; }
.tournament-management .button:hover:not(:disabled) { background:#304368; border-color:#a2b7e1; box-shadow:0 3px 12px #0003; }
.tournament-management .button[data-create]:hover:not(:disabled) { background:#504dff; }
.tournament-management .button:focus-visible,.tournament-editor button:focus-visible { outline:3px solid #89a9ff; outline-offset:3px; }
.tournament-management .button:disabled,.tournament-editor button:disabled { cursor:default; opacity:.55; }
.tournament-management [data-management-error]:empty { display:none; }
.tournament-management [data-management-error] { flex-basis:100%; margin:0; color:#ff929b; }
.tournament-management [data-refresh-status] { flex-basis:100%; margin:0; color:#d8f9ec; }
.tournament-management [data-refresh-status]:empty,.tournament-editor [data-import-status]:empty { display:none; }
@media(max-width:650px) { .tournament-management { padding:10px; gap:8px; } .tournament-management .button { flex:1 1 150px; font-size:14px; } .tournament-management .button[data-logout] { flex:0 1 auto; margin-left:0; } }
.tournament-sync-note { flex-basis:100%; margin:2px 0 0; font-size:12px; line-height:1.5; color:#a9bad3; }
.tournament-title-rename { flex:0 0 auto; min-height:44px; padding:10px 14px; border:1px solid #9b9bdf85; border-radius:12px; background:#282653; color:#f0eeff; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.tournament-title-rename:hover:not(:disabled) { background:#39356d; border-color:#b3aeff; }
.tournament-title-rename:focus-visible { outline:3px solid #89a9ff; outline-offset:3px; }
.tournament-title-rename:disabled { opacity:.55; cursor:default; }
.tournament-title-editor { width:min(520px,calc(100vw - 24px)); color:#eef2ff; background:#151c34; border-color:#7485a766; }
.tournament-title-editor .tournament-editor-heading h2 { margin:0; font-size:22px; }
.tournament-title-editor form>p { color:#bac6de; line-height:1.55; }
.tournament-title-editor input { min-width:0; width:100%; min-height:44px; padding:10px 12px; border:1px solid #687d9d; border-radius:10px; background:#0c1427; color:#f0f4ff; font:inherit; }
.tournament-title-editor input:focus-visible { outline:3px solid #89a9ff; outline-offset:2px; }
.tournament-title-editor button { padding:9px 14px; border:1px solid #7185a8; border-radius:10px; background:#243250; color:#f0f4ff; }
.tournament-title-editor .button-primary { background:#5548cd; border-color:#9f94ff; }
.tournament-title-editor [data-close] { padding:4px 14px; }
.tournament-title-editor [data-error] { color:#ffb3ba; }
.tournament-title-editor [data-error]:empty,.tournament-title-editor [data-title-status]:empty { display:none; }
.tournament-title-editor [data-title-status] { overflow-wrap:anywhere; }
.tournament-title-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
@media(max-width:600px) { .tournament-title-rename { align-self:flex-start; } .tournament-title-actions button { flex:1; } }
.tournament-result-correction {
  --field-height: 40px;
  --field-radius: 9px;
  --field-padding: 12px;
  --field-background: #171f30;
  --field-text: #edf1f9;
  --field-border: #354058;
  --field-hover-border: #596b8c;
  --field-placeholder: #8591a8;
  --field-focus: #88a8ff;
  --field-focus-ring: #88a8ff38;
  --field-disabled-background: #202839;
  --field-disabled-text: #8692a9;
  --field-invalid-background: #382631;
  --danger: #f597a5;
  color-scheme: dark;
  width: min(1320px, calc(100vw - 48px));
  max-height: calc(100dvh - 48px);
  padding: 0;
  border: 1px solid #38435b;
  border-radius: 20px;
  background: #111827;
  color: #edf1f9;
  box-shadow: 0 24px 100px #0008;
  overflow: hidden;
}
.tournament-result-correction[open] { display: flex; flex-direction: column; }
/* Keep already-open clients scrollable until they load the new module graph. */
.tournament-result-correction[open]:not(:has(.correction-content)) { display: block; overflow: auto; padding: 20px; }
.tournament-result-correction::backdrop { background: #050912b8; backdrop-filter: blur(5px); }
.tournament-result-correction .tournament-editor-heading {
  flex: 0 0 auto;
  padding: 20px 24px;
  border-bottom: 1px solid #ffffff12;
}
.tournament-result-correction .tournament-editor-heading h2 { margin: 0; font-size: 22px; letter-spacing: -.4px; }
.tournament-result-correction .correction-content { min-height: 0; padding: 20px 24px 0; overflow: auto; scrollbar-width: thin; }
.tournament-result-correction .correction-identity { display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: space-between; margin-bottom: 24px; color: #a6b2c8; font-size: 13px; line-height: 1.6; }
.tournament-result-correction .correction-identity small { font-size: inherit; color: #8693ac; }
.tournament-result-correction h3 { margin: 0; font-size: 16px; font-weight: 650; letter-spacing: -.15px; }
.tournament-result-correction .correction-section { margin-bottom: 24px; }
.tournament-result-correction .correction-fields { display: grid; grid-template-columns: .8fr 1.4fr 1.8fr .8fr; gap: 16px; margin-top: 16px; }
.tournament-result-correction :is(.correction-fields, .correction-outcome, .tournament-event) label { display: grid; align-content: start; gap: 8px; min-width: 0; margin: 0; color: #b8c4d8; font-size: 12px; font-weight: 500; }
.tournament-result-correction .correction-fields small { color: #8593ac; font-size: 11px; line-height: 1.5; }
.tournament-result-correction :is(input, select, textarea) { width: 100%; }
.tournament-result-correction .correction-outcome { display: grid; grid-template-columns: 1fr 3fr; align-items: start; gap: 16px; padding-bottom: 24px; margin-bottom: 24px; border-bottom: 1px solid #ffffff12; }
.tournament-result-correction .correction-reason textarea { min-height: 72px; }
.tournament-result-correction .correction-section-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.tournament-result-correction .correction-section-heading span { color: #8593ac; font-size: 12px; }
.tournament-result-correction .tournament-editor-scroll { margin: 0; overflow: visible; }
.tournament-result-correction table { width: 100%; table-layout: fixed; border-spacing: 0; border-collapse: separate; }
.tournament-result-correction th { padding: 10px 4px; color: #9eacc4; font-size: 11px; font-weight: 500; }
.tournament-result-correction td { padding: 5px 4px; }
.tournament-result-correction :is(th, td):first-child { padding-left: 0; width: 52px; }
.tournament-result-correction :is(th, td):nth-child(2) { width: 144px; }
.tournament-result-correction :is(th, td):nth-child(3) { width: 136px; }
.tournament-result-correction :is(th, td):last-child { width: 92px; padding-right: 0; }
.tournament-result-correction tr[data-player] :is(input, select) { width: 100%; }
.tournament-result-correction [data-point] { text-align: center; font-variant-numeric: tabular-nums; }
.tournament-result-correction [data-point=total] { font-weight: 700; }
.tournament-result-correction :is(.correction-protocol, .correction-records details) { border-top: 1px solid #ffffff12; }
.tournament-result-correction summary { display: flex; align-items: center; gap: 10px; padding: 16px 0; cursor: pointer; font-size: 14px; font-weight: 550; list-style: none; }
.tournament-result-correction summary::-webkit-details-marker { display: none; }
.tournament-result-correction summary::before { content: '›'; color: #8d9cba; font-size: 22px; line-height: 1; transition: transform .15s; }
.tournament-result-correction details[open] > summary::before { transform: rotate(90deg); }
.tournament-result-correction summary span { color: #8593ac; font-size: 12px; font-weight: 400; }
.tournament-result-correction fieldset { min-width: 0; padding: 0; margin: 0; border: 0; }
.tournament-result-correction fieldset legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.tournament-result-correction .tournament-event { grid-template-columns: 64px 1fr 72px 2fr auto; gap: 12px; align-items: start; padding: 16px; margin: 0 0 12px; border: 1px solid #ffffff12; border-radius: 12px; background: #ffffff03; }
.tournament-result-correction .tournament-event textarea { min-height: 72px; }
.tournament-result-correction .tournament-event label:nth-child(3) { grid-column: auto; }
.tournament-result-correction .tournament-event [data-remove-event] { align-self: end; color: #e5a9b2; }
.tournament-result-correction .correction-form-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 0; }
.tournament-result-correction .correction-form-actions span { color: #8593ac; font-size: 12px; }
.tournament-result-correction button { min-height: 40px; padding: 10px 14px; border: 1px solid #35435e; border-radius: 10px; background: #1c2940; color: #dae3f4; font-size: 13px; font-weight: 550; }
.tournament-result-correction button:hover:not(:disabled) { background: #283852; border-color: #60759b; }
.tournament-result-correction .button-primary { background: #6e65e8; border-color: #8179f0; color: #fff; }
.tournament-result-correction .button-primary:hover:not(:disabled) { background: #8076fa; border-color: #a49bff; }
.tournament-result-correction [data-close] { width: 36px; min-height: 36px; padding: 0; background: transparent; border-color: #ffffff14; font-size: 22px; font-weight: 400; }
.tournament-result-correction button:disabled { opacity: .5; cursor: default; }
.tournament-result-correction .correction-records { margin-bottom: 20px; color: #b0bdd3; font-size: 13px; line-height: 1.7; }
.tournament-result-correction .correction-records li { margin-bottom: 12px; overflow-wrap: anywhere; }
.tournament-result-correction .correction-records li button { margin-left: 8px; }
.tournament-result-correction .correction-preview { margin: 0 0 24px; padding: 20px; border: 1px solid #8179f0; border-radius: 14px; background: #252344; }
.tournament-result-correction .correction-preview ul { display: grid; gap: 12px; padding-left: 20px; }
.tournament-result-correction .correction-preview li span { display: block; color: #c4cce2; overflow-wrap: anywhere; }
.tournament-result-correction .correction-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.tournament-result-correction [data-error] { flex-shrink: 0; padding: 0 24px 16px; margin: 0; color: #ffb3ba; }
.tournament-result-correction [data-error]:empty { display: none; }
@media (max-width: 1100px) {
  .tournament-result-correction .correction-fields { grid-template-columns: 1fr 1fr; }
  .tournament-result-correction :is(table, tbody) { display: block; }
  .tournament-result-correction thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .tournament-result-correction tbody { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .tournament-result-correction tr[data-player] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 16px; border: 1px solid #ffffff12; border-radius: 14px; background: #ffffff03; }
  .tournament-result-correction tr[data-player] td { display: block; min-width: 0; width: auto; padding: 0; }
  .tournament-result-correction td::before { content: attr(data-column-label); display: block; margin-bottom: 6px; color: #a6b2c8; font-size: 11px; }
  .tournament-result-correction td:nth-child(2) { grid-column: span 2; }
  .tournament-result-correction td:nth-child(3) { grid-row: 2; grid-column: 1 / 3; }
  .tournament-result-correction td:nth-child(10) { grid-row: 2; grid-column: 3; }
  .tournament-result-correction td:last-child { grid-column: 1 / -1; }
  .tournament-result-correction .tournament-event { grid-template-columns: 64px 1fr 72px; }
  .tournament-result-correction .tournament-event label:nth-child(4) { grid-column: 1 / -1; }
  .tournament-result-correction .tournament-event [data-remove-event] { grid-column: 1 / -1; justify-self: start; }
}
@media (max-width: 620px) {
  .tournament-result-correction { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); border-radius: 16px; }
  .tournament-result-correction .tournament-editor-heading { padding: 16px; gap: 8px; }
  .tournament-result-correction .tournament-editor-heading h2 { font-size: 20px; }
  .tournament-result-correction .correction-content { padding: 16px 16px 0; }
  .tournament-result-correction .correction-identity { margin-bottom: 20px; font-size: 12px; }
  .tournament-result-correction .correction-fields { gap: 12px; }
  .tournament-result-correction .correction-fields label:nth-child(4) { grid-column: 2; grid-row: 1; }
  .tournament-result-correction .correction-fields label:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
  .tournament-result-correction .correction-fields label:nth-child(3) { grid-column: 1 / -1; grid-row: 3; }
  .tournament-result-correction .correction-outcome { grid-template-columns: 1fr; }
  .tournament-result-correction tbody { grid-template-columns: 1fr; }
  .tournament-result-correction .correction-actions button { flex: 1 1 100%; }
  .tournament-result-correction .correction-form-actions button { width: 100%; }
  .tournament-result-correction [data-error] { padding: 0 16px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .tournament-result-correction summary::before { transition: none; }
}
