.admin-categories {grid-template-columns:repeat(4,minmax(0,1fr));}
.league-workspace,.league-personal {padding:18px;}
.league-note {font-size:12px;line-height:1.5;opacity:.85;overflow-wrap:anywhere;}
.league-message:empty {display:none;}
.league-organization {display:grid;gap:12px;margin-bottom:18px;}
.league-category-tabs {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.league-category-tabs button {min-height:48px;border:1px solid #779c88;border-radius:12px;background:#153f32;color:#f5f7e9;font:700 14px/1.3 system-ui;padding:10px;cursor:pointer;}
.league-category-tabs button[aria-pressed=true] {background:#d7e995;color:#12392c;border-color:#d7e995;}
.league-organization label {display:grid;gap:6px;font-size:14px;font-weight:700;}
.league-organization select {width:100%;min-width:0;min-height:46px;border:1px solid #779c88;border-radius:10px;padding:10px;background:#f2f7ef;color:#153c2e;font:inherit;}
.league-category-label {display:block;font-size:12px;line-height:1.5;color:inherit;opacity:.85;}
.league-message {padding:12px;background:#fff0b5;color:#3c3016;border-radius:10px;}
.league-error {color:#ad2424;font-size:13px;font-weight:700;}
.league-form {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px 0;}
.league-form label {display:grid;gap:6px;font-size:13px;font-weight:650;min-width:0;}
.league-form input,.league-form select,.league-filters select {width:100%;min-width:0;min-height:46px;padding:10px;border:1px solid #738e80;border-radius:9px;background:#f7fcf8;color:#153c2e;font:inherit;}
.league-form input[type=checkbox] {width:22px;min-height:22px;flex:none;}
.league-form button,.league-actions button,.league-filters button,.league-card>button,.league-dialog>button {min-height:44px;padding:10px 14px;border:1px solid #547462;border-radius:10px;background:#154c3c;color:#f2f9f4;font:700 13px/1.4 system-ui;cursor:pointer;}
.league-form button:disabled,.league-actions button:disabled {opacity:.55;cursor:wait;}
.league-form .league-note,.league-form .league-roster,.league-form h2,.league-form>p {grid-column:1/-1;}
.league-roster {display:flex;flex-wrap:wrap;gap:8px;max-height:none;overflow:visible;min-width:0;border:1px solid #99afa3;border-radius:10px;padding:12px;}
.league-roster legend {font-size:13px;font-weight:700;}
.league-roster label {display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid #bbcec2;border-radius:8px;}
.league-roster label:has(input:checked) {background:#d8eaa3;color:#123c2d;}
.league-editor {border:1px solid #91ae9d;border-radius:12px;padding:12px;}
.league-editor summary {cursor:pointer;padding:6px;font-weight:750;}
.league-card {margin-top:14px;padding:16px;border:1px solid #a0b4a6;border-radius:12px;background:#f2f7ef;color:#183b2e;overflow-wrap:anywhere;}
.league-card h3 {font-size:17px;line-height:1.3;margin:7px 0;}
.league-card p {margin:9px 0;}
.league-card small {font-size:12px;}
.league-card details {margin-top:14px;}
.league-card details summary {cursor:pointer;}
.league-actions,.league-filters {display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.league-actions button {flex:1 1 140px;}
.league-filters select {flex:1 1 160px;}
.league-status {font-weight:750;}
.league-dialog {width:min(520px,calc(100% - 24px));max-height:85dvh;overflow:auto;padding:22px;border:1px solid #749582;border-radius:18px;background:#eff6ed;color:#133b2a;}
.league-dialog::backdrop {background:#001910ba;}
.league-dialog>button {margin:8px 8px 0 0;}
.league-alert-badge {min-height:38px;padding:8px 12px;border:1px solid #d3e984;border-radius:12px;background:#d3e984;color:#1b3626;font-weight:800;cursor:pointer;}
.league-calendar-flag {display:block;padding-top:6px;font-size:12px;}
.league-card[data-official=true],.reservation-item[data-official=true],.live-booking-highlight[data-official=true] {border-left:5px solid #3ccf89!important;background:#123f2d!important;color:#edfff4!important;}
.league-card[data-official=false],.reservation-item[data-official=false],.live-booking-highlight[data-official=false] {border-left:5px solid #ff7676!important;background:#531f27!important;color:#fff1f1!important;}
.reservation-item[data-official] .reason-badge {background:transparent!important;color:inherit!important;white-space:normal;}
.reservation-item[data-official] small,.live-booking-highlight[data-official] small {color:inherit!important;}
.league-personal {color:inherit;}
.league-suggestions {grid-column:1/-1;display:grid;gap:8px;max-height:320px;overflow:auto;padding:4px;overscroll-behavior:contain;}
.league-suggestions[hidden],.league-source-link[hidden] {display:none;}
.league-suggestions button {display:grid;gap:5px;text-align:left;overflow-wrap:anywhere;background:#e4eee6;color:#153c2e;border-color:#739680;}
.league-suggestions button span {font-weight:500;font-size:12px;}
.league-suggestions button:focus-visible {outline:3px solid #b4cf63;outline-offset:1px;}
.league-source-link {grid-column:1/-1;color:inherit;min-height:44px;text-underline-offset:4px;}
@media(max-width:600px){.admin-categories{grid-template-columns:repeat(2,minmax(0,1fr));}.admin-categories a{min-height:76px;}.league-form{grid-template-columns:minmax(0,1fr);}.league-workspace,.league-personal{padding:12px;}.league-form input,.league-form select{font-size:16px;}.league-dialog{padding:16px;}.league-card{padding:13px;}}
@media(max-width:380px){.league-alert-badge{min-width:44px;padding:7px 8px;font-size:0;}.league-alert-badge::after{content:"● " attr(data-count);font-size:14px;}}
.league-pairing-code{font-size:1.35rem;font-weight:800;letter-spacing:.1em;color:#d8ed8a;overflow-wrap:anywhere}
.league-sync-connections{display:grid;gap:.75rem;margin-top:1rem}
.league-sync-connection{border:1px solid rgba(182,218,190,.34);border-radius:14px;padding:.85rem;display:grid;gap:.4rem}

/* Modality accents are always accompanied by a text label. */
[data-modality=teams],[data-modality=team]{--modality-color:#79c8ff;--modality-bg:#193d50}
[data-modality=pairs]{--modality-color:#f2c36a;--modality-bg:#423c29}
[data-modality=mixed-pairs]{--modality-color:#dbb1fa;--modality-bg:#3b304b}
[data-modality=individual]{--modality-color:#77dfbd;--modality-bg:#18483c}
[data-modality=triples]{--modality-color:#ffb294;--modality-bg:#4b342c}
.league-card[data-modality]{border-top:3px solid var(--modality-color)}
.league-card .league-category-label{display:table;margin-bottom:8px;padding:5px 9px;border-radius:8px;background:var(--modality-bg,#163e32);color:var(--modality-color,#d5ec7c);opacity:1;font-size:12px;font-weight:750}
.league-card .league-category-label+small{display:block;line-height:1.5}
.league-category-tabs button[data-modality]:not([data-modality=""]){border-bottom:3px solid var(--modality-color);color:var(--modality-color)}
.league-category-tabs button[data-modality][aria-pressed=true]:not([data-modality=""]){background:var(--modality-bg);box-shadow:inset 0 0 0 1px var(--modality-color)}
body .league-personal .league-card{background:linear-gradient(130deg,#19483c,#10362e);color:#f0f7f2;border-color:#4c7163;border-top-color:var(--modality-color,#79c8ff);box-shadow:0 6px 20px #001b1425}
body .league-personal .league-note{color:#bbd4c9;opacity:1}
body .league-personal select{background:#10382e;color:#f0f7f2;border-color:#628576;color-scheme:dark;font-size:16px}
body .league-personal .league-filters{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
body .league-personal .league-filters button{justify-self:start}
body .league-personal .league-error{color:#ffb9ad}
.league-import{margin-bottom:18px;background:#123e32;color:#f0f7f2;border-color:#628d78;padding:18px}
.league-import h3{font-size:19px;margin:0 0 12px}
.league-sync-status{font-weight:750;color:#cfe695;line-height:1.5}
.league-import-steps{padding-left:22px;line-height:1.6;font-size:14px}
.league-import-steps li{padding:5px 0}
.league-import button{min-height:44px;padding:10px 14px;margin:5px 8px 5px 0;border-radius:12px;border:1px solid #739b82;background:#d5ec7c;color:#12372b;font:700 14px/1.4 system-ui;cursor:pointer}
.league-connection-setup{margin-top:14px;border-top:1px solid #507461;padding-top:12px}
.league-sync-connection button{background:transparent;color:#e5b5b5;border-color:#846465;justify-self:start}
.tournament-activity-card[data-modality]{border-left:3px solid var(--modality-color,#77dfbd)}
.activity-group-title{font-size:14px;color:#c2d7ce;margin:16px 0 0}
.tournament-history{margin-top:14px;border-top:1px solid #567b68;padding-top:8px}
.tournament-history summary{min-height:48px;padding:12px 0;cursor:pointer;font-weight:750;color:#d5ec7c}
.tournament-history button{min-height:44px;padding:12px;border:1px solid #6e927b;border-radius:12px;background:#184c3c;color:#f0f7f2;font:inherit}
.tournament-history .my-reservation-card{margin:12px 0}
body .tournament-activity-card{grid-template-columns:minmax(0,1fr);padding:16px}
.captain-booking{background:#10392f;color:#f4f5e8;max-width:560px;width:calc(100% - 24px);border:1px solid #658c78;border-radius:24px}
.captain-booking .league-form{display:flex;flex-direction:column;gap:14px;min-width:0}
.captain-booking .league-form h2{font:800 23px/1.25 system-ui;margin:0 0 8px}
.captain-booking .league-form input{background:#072c23;color:#f4f5e8;color-scheme:dark;min-height:52px;border:1px solid #799484;border-radius:12px;font:700 20px system-ui;padding:10px;min-width:0;width:100%}
.captain-day-options,.captain-board-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.captain-booking button{border-radius:13px;padding:12px;border:1px solid #648b76;background:#194f3f;color:#f4f5e8;font:700 15px/1.35 system-ui;min-height:48px;cursor:pointer}
.captain-booking button[aria-pressed=true]{background:#d9ed83;color:#123328;border-color:#d9ed83}
.captain-booking button:disabled{opacity:.55;cursor:not-allowed}
.captain-board-options button{border-top:4px solid #72d9c4;display:flex;flex-direction:column;gap:6px;align-items:flex-start;text-align:left;overflow-wrap:anywhere}
.captain-board-options button[data-board="2"]{border-top-color:#efc26c}.captain-board-options button[data-board="3"]{border-top-color:#b99be4}
.captain-board-options small{font-size:12px;font-weight:500;white-space:pre-line}
.captain-booking .captain-confirm{background:#d9ed83;color:#123328;font-size:17px}
.captain-booking .captain-usual{background:transparent;text-align:left;color:#cce595}
.captain-booking-summary{font-size:14px;color:#c8e1d3;margin:0}.captain-booking .league-error{color:#ffbdb4}
