:root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;background:#111214;color:#e6e7e9;font-size:16px;--muted:#a0a3ab;--line:#303237;--panel:#191b1e;--red:#d94a53}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{border:1px solid #3a3d44;background:#24262b;color:#eee;padding:10px 15px;border-radius:4px;cursor:pointer;font-size:.875rem;line-height:1.35;white-space:nowrap}button:hover{background:#303238}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:#c93743;border-color:#d64751;color:white}button.primary:hover{background:#df4651}button.danger{color:#f299a0;background:transparent}button[aria-pressed=true]{border-color:#d5ae56;background:#352f22}:focus-visible{outline:2px solid #ef8b93;outline-offset:3px}input,select,textarea{width:100%;min-width:0;border:1px solid #3a3c43;border-radius:3px;color:#f1f2f3;background:#111315;padding:10px 11px;line-height:1.4}textarea{resize:vertical;font-size:.875rem}input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--red);margin:0;flex-shrink:0}label{display:flex;flex-direction:column;gap:8px;font-size:.875rem;color:#c3c5cb}header{height:78px;padding:0 4.3%;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#141517}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.3rem;letter-spacing:.04em}.mark{display:inline-flex;align-items:center;justify-content:center;background:#ce3c48;color:white;width:30px;height:30px;font-size:1.3rem;font-style:italic}.year{font-weight:400;color:var(--muted);border-left:1px solid #4b4e55;padding-left:12px;margin-left:3px}nav{display:flex;align-items:center;gap:30px;font-size:.875rem}nav a{height:78px;display:flex;align-items:center;gap:8px;border-bottom:2px solid transparent;color:#a9acb3}nav a.selected{border-color:var(--red);color:white}main{max-width:1440px;padding:42px 4.3% 70px;min-height:calc(100vh - 143px);margin:auto}h1{font-size:1.9rem;letter-spacing:-.035em;margin:0;font-weight:600}h2{font-size:1.25rem;letter-spacing:-.015em;margin:0}h3{font-size:1rem;margin:0 0 18px}h4{font-size:.875rem;margin:0 0 12px}p{line-height:1.6}.eyebrow{font-size:.75rem;letter-spacing:.14em;font-weight:700;color:var(--red);margin:0 0 12px}.page-heading,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.page-heading{margin-bottom:30px}.section-heading{margin-bottom:18px}.section-heading p{margin:8px 0 0}.muted{color:var(--muted);font-size:.875rem}.toolbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px;margin-bottom:20px;padding-bottom:14px}.tabs{display:flex;gap:5px;flex-wrap:wrap}.tabs button{background:transparent;border-color:transparent;color:#a8abb3}.tabs button.active{background:#292b30;color:white}.tabs button:hover{color:white}.search{width:300px}.search input{font-size:.875rem}.data-note{font-size:.8125rem;color:#979aa3;margin:0 0 30px}.region-section{margin-bottom:35px}.region-section>.section-heading{padding-bottom:12px;border-bottom:2px solid #3f4147}.region-section h2{font-size:1.4rem}.subregion{margin:22px 0 26px}.subregion h3{color:#aeb0b7;font-size:.875rem;margin-bottom:12px;font-weight:400}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:4px}table{border-collapse:collapse;width:100%;font-size:.875rem;text-align:left}th{background:#1d1f23;color:#969aa3;font-size:.75rem;font-weight:400;letter-spacing:.04em;padding:13px 20px}td{border-top:1px solid #2a2c31;padding:15px 20px}tbody tr:hover{background:#191b1e}.team-name{font-weight:600;width:38%}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.star{color:#e5b848;font-size:1rem;margin-left:4px}.empty{padding:70px 20px;text-align:center;border:1px dashed var(--line);border-radius:4px}.empty p{color:var(--muted)}footer{border-top:1px solid var(--line);padding:23px 4.3%;display:flex;justify-content:space-between;gap:15px;font-size:.75rem;color:#838791}.login-wrap{max-width:430px;margin:45px auto}.login-wrap>.panel{margin:28px 0 22px}.login-wrap button{width:100%;margin-top:18px}.panel{border:1px solid var(--line);border-radius:4px;background:var(--panel);padding:22px;margin-bottom:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid.three{grid-template-columns:1fr 1fr 150px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.checks{display:flex;flex-wrap:wrap;gap:10px 16px;margin:15px 0 23px}.checks label,.inline{flex-direction:row;align-items:center;gap:8px}.tbd{margin:20px 0}.manage-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px}.manage-layout aside label{margin-bottom:20px}.manage-layout small{display:block;color:var(--muted);font-size:.75rem;margin-top:7px}.manage-layout table td{padding:14px}.manage-layout details{border-top:1px solid var(--line);padding:14px 0}.manage-layout summary{cursor:pointer;font-size:.875rem;margin-bottom:12px}.manage-layout h3:not(:first-child){margin-top:28px}.windows-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.window-region{margin-left:10px;color:#a8abb3;font-size:.75rem}.windows-bar .tabs button.active{border-left:2px solid var(--red)}.connection{font-size:.8125rem;color:#9cbaaa}.broadcast-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.outputs>h3{margin-top:2px}.outputs>p{margin-top:-7px}.command{border:1px solid var(--line);background:#17191c;border-radius:4px;padding:16px;margin-bottom:12px}.command h4{margin:0;color:#e87982;font-family:ui-monospace,monospace}.command .section-heading{margin-bottom:12px}.command button{font-size:.75rem;padding:5px 11px}.command pre{font-family:ui-monospace,SFMono-Regular,monospace;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.8125rem;line-height:1.65;color:#c1c4cc;margin:0}.map-head,.map-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(100px,.7fr) 66px 66px;gap:10px;align-items:end}.map-head{font-size:.75rem;color:#858994;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:13px}.map-row{margin:12px 0}.map-row label>span:not(.sr-only){font-size:.75rem;color:var(--muted)}.map-row input,.map-row select{font-size:.875rem;padding:9px 8px}.form-error{color:#ff9da5;font-size:.875rem;line-height:1.6;white-space:pre-wrap}.form-error:empty{display:none}.conflict{border:1px solid #8d753f;background:#2d281d;color:#e8cc8c;padding:16px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:.875rem}.bottom-save{padding-top:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#343c36;border:1px solid #6a8c70;border-radius:4px;box-shadow:0 8px 28px #0008;max-width:90vw;display:none;font-size:.875rem;z-index:10}#notice.visible{display:block}#notice.error{background:#45272b;border-color:#be6972}[hidden]{display:none!important}@media(min-width:1500px){main{padding-left:30px;padding-right:30px}}@media(max-width:1050px){.broadcast-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.manage-layout{grid-template-columns:1fr}.manage-layout aside{max-width:700px}.form-grid.three{grid-template-columns:1fr 1fr}.form-grid.three>label:last-child{grid-column:1/-1}.map-head,.map-row{grid-template-columns:minmax(110px,1fr) 95px 55px 55px;gap:6px}}@media(max-width:800px){.broadcast-layout{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column;gap:16px}.search{width:100%}.form-grid.three{grid-template-columns:1fr 1fr}.page-heading{align-items:flex-start}h1{font-size:1.6rem}.section-heading{flex-wrap:wrap}.conflict{align-items:flex-start;flex-direction:column}}@media(max-width:540px){header{padding:0 18px;height:68px}.brand{font-size:1.05rem}.mark{width:25px;height:25px}.year{padding-left:8px}nav{gap:15px}nav a{height:68px;font-size:.8125rem}nav button{padding:5px;font-size:.75rem}main{padding:30px 18px 45px}.page-heading{gap:12px}.page-heading button{padding:9px}.page-heading .connection{max-width:110px}.tabs button{padding:9px 11px}.panel{padding:16px}.form-grid,.form-grid.three{grid-template-columns:1fr}.form-grid.three>label:last-child{grid-column:auto}.windows-bar{align-items:stretch;flex-direction:column}.window-region{display:none}td,th{padding:12px 14px;white-space:nowrap}.team-name{min-width:180px}.map-head,.map-row{grid-template-columns:minmax(90px,1fr) 76px 44px 44px}.map-row select{padding:9px 3px}.map-row input{padding:9px 4px}footer{flex-direction:column;gap:8px;padding:20px 18px}.inline{font-size:.8125rem}.login-wrap{margin:20px auto}}
/* Compact directory and broadcast controls. */
header{height:68px}.brand{color:#df535e;font-size:1.15rem;font-weight:600;letter-spacing:0}nav a{height:68px}main{padding-top:26px}.directory-toolbar{margin-bottom:28px}.directory-filters{display:flex;align-items:center;gap:22px}.partner-toggle{display:inline-flex;align-items:center;gap:9px;padding:7px 0;background:transparent;border:0;color:#b9bcc3}.partner-toggle:hover{background:transparent;color:white}.partner-toggle[aria-pressed=true]{background:transparent;color:#e7e8eb;border:0}.toggle-track{display:inline-block;width:29px;height:16px;border-radius:9px;background:#3a3d43;position:relative;transition:background .15s}.toggle-track::after{content:"";position:absolute;width:10px;height:10px;left:3px;top:3px;background:#b7bac2;border-radius:50%;transition:transform .15s}.partner-toggle[aria-pressed=true] .toggle-track{background:#aa3541}.partner-toggle[aria-pressed=true] .toggle-track::after{transform:translateX(13px);background:#fff}footer{justify-content:center;color:#a5a8ae;font-size:.875rem;padding:20px}.workspace-status{display:flex;gap:18px;align-items:center}.manage-tabs{margin-bottom:20px}.caster-groups,.tournament-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}fieldset{min-width:0;border:1px solid var(--line);border-radius:3px;padding:14px;margin:0}legend{font-size:.8125rem;color:var(--muted);padding:0 5px}fieldset>.inline{margin:8px 0;line-height:1.5}.caster-groups .checks{margin:0}.tournament-groups{grid-template-columns:repeat(4,minmax(0,1fr))}#tournament-form>label{max-width:420px;margin-bottom:24px}#tournament-form h3{margin:20px 0 14px}.panel .section-heading:has(>span:empty){margin-bottom:14px}#window-form>.section-heading{justify-content:flex-end}#window-form>.section-heading>span:empty{display:none}.outputs>.command:first-child{margin-top:0}@media(max-width:1000px){.directory-toolbar{align-items:stretch;flex-direction:column}.directory-filters{justify-content:space-between}.tournament-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){header{height:auto;min-height:68px;flex-wrap:wrap;padding-top:12px;padding-bottom:5px;gap:4px}.brand{font-size:1.1rem}nav a{height:40px}nav{gap:16px}.directory-filters{gap:15px;align-items:center}.directory-filters .search{flex:1;min-width:0}.search input{font-size:.8125rem}.workspace-status{justify-content:space-between;gap:12px}.tournament-groups,.caster-groups{grid-template-columns:1fr}.manage-tabs button{font-size:.8125rem}.region-section .team-name{min-width:145px}footer{align-items:center}}
@media(max-width:540px){.region-section table{table-layout:fixed}.region-section td,.region-section th{white-space:normal;overflow-wrap:anywhere;padding:12px 9px}.region-section .team-name{min-width:0;width:48%}.region-section th:first-child{width:48%}.windows-bar{margin-bottom:14px}}
#undo-filter{margin-bottom:16px}

.managed-region { margin-top: 24px; }
.managed-region > h3 { padding-bottom: 10px; border-bottom: 1px solid var(--border, #36383d); }

.command-name-toggle { margin: 14px 0 10px; }
.combination-row > button { margin-top: 12px; }

/* Balanced command panels; controls reflow instead of squeezing on phones. */
.broadcast-layout > *, .manage-layout > *, .form-grid > * { min-width: 0; }
.broadcast-layout .form-grid.three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.broadcast-layout .form-grid.three > label:last-child { grid-column: 1 / -1; }
.round-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.managed-region td:first-child { overflow-wrap: anywhere; }
.managed-region td small { display: block; margin-top: 6px; color: var(--muted); }
@media (max-width: 1000px) {
  .broadcast-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 540px) {
  main { padding-left: 12px; padding-right: 12px; }
  button, input, select { min-height: 44px; }
  input, select, textarea, .search input, .map-row input, .map-row select { font-size: 16px; }
  input[type=checkbox], input[type=radio] { min-height: 0; }
  .checks label, fieldset > .inline { min-height: 44px; }
  .directory-filters { flex-direction: column; align-items: stretch; gap: 8px; }
  .directory-filters .search { flex: auto; }
  .partner-toggle { align-self: flex-start; }
  .broadcast-layout .form-grid.three { grid-template-columns: minmax(0, 1fr); }
  .broadcast-layout .form-grid.three > label:last-child { grid-column: auto; }
  .map-head { display: none; }
  .map-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding-top: 16px; border-top: 1px solid var(--line); margin-top: 18px; }
  .map-row select, .map-row input { padding: 10px 8px; }
  .round-label { position: static; width: auto; height: auto; overflow: visible; clip-path: none; }
  .tabs button { white-space: normal; overflow-wrap: anywhere; text-align: left; }
  .workspace-status { flex-wrap: wrap; }
  .managed-region table, .managed-region tbody, .managed-region tr, .managed-region td { display: block; width: 100%; }
  .managed-region thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .managed-region tr { padding: 14px; border-top: 1px solid var(--line); }
  .managed-region tr:first-child { border-top: 0; }
  .manage-layout .managed-region td { padding: 4px 0; border: 0; white-space: normal; }
  .managed-region td[data-label]::before { content: attr(data-label) ": "; color: var(--muted); }
  .managed-region .actions { margin-top: 8px; }
  .command button { min-width: 60px; }
}

/* Directory key and hidden roster entries remain legible at every size. */
.partner-legend { margin: 0 0 20px; color: var(--muted); font-size: .875rem; }
.section-heading > .partner-legend { margin: 0; }
.partner-legend .star { margin-left: 0; }
.managed-region tr.hidden-team { background: #23262b; }
.managed-region tr.hidden-team:hover { background: #292c32; }
/* Desktop-only density changes preserve the phone layout. */
@media (min-width: 1100px) {
  main { max-width: 1760px; padding-left: 32px; padding-right: 32px; }
  #team-list:has(> .region-section:nth-child(2)) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; align-items: start; }
  #team-list > .region-section { min-width: 0; }
  .region-section table { table-layout: fixed; }
  .region-section th:first-child { width: 44%; }
  .region-section td, .region-section th { overflow-wrap: anywhere; padding: 15px 14px; }
  .region-section table, .region-section .subregion h3 { font-size: 1rem; }
  #app:has(#manage-tabs) label, #app:has(#manage-tabs) button, #app:has(#manage-tabs) table,
  #app:has(#manage-tabs) textarea, #app:has(#manage-tabs) summary { font-size: 1rem; }
  #app:has(#manage-tabs) .muted, #app:has(#manage-tabs) small, #app:has(#manage-tabs) legend { font-size: .875rem; }
  #window-form .command pre { font-size: .9375rem; }
  #window-form h4 { font-size: 1rem; }
  #window-form .map-row label > span:not(.sr-only), #window-form .map-head { font-size: .875rem; }
  #window-form .map-row input, #window-form .map-row select { font-size: 1rem; }
}

.caster-groups.caster-list { display: block; }
#window-form .swap-teams { font-size: .8125rem; padding: 7px 10px; }
.game > .section-heading h3 { margin-bottom: 0; }
@media (min-width: 1100px) {
  main:has(#manage-tabs) { max-width: none; padding-left: 3%; padding-right: 3%; }
  #app:has(#manage-tabs) label, #app:has(#manage-tabs) button, #app:has(#manage-tabs) table,
  #app:has(#manage-tabs) input, #app:has(#manage-tabs) select, #app:has(#manage-tabs) textarea,
  #app:has(#manage-tabs) summary { font-size: 1.125rem; }
  #window-form .command pre, #window-form h4 { font-size: 1.0625rem; }
  #app:has(#manage-tabs) h3 { font-size: 1.25rem; }
  #window-form .map-row label > span:not(.sr-only), #window-form .map-head,
  #app:has(#manage-tabs) legend { font-size: 1rem; }
  #window-form .map-head, #window-form .map-row { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) 72px 72px; }
  #window-form > .form-grid.three { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 220px; }
  #window-form > .form-grid.three > label { align-self: end; }
  #window-form .command { padding: 20px; }
  #app:has(#manage-tabs) .swap-teams { font-size: .875rem; }
}

/* Bingo shares the site palette; the board stays five columns at every width. */
#bingo-create { margin-bottom: 24px; }
#bingo-create-form { margin-top: 16px; display: grid; gap: 18px; }
#bingo-create-form button { justify-self: start; }
.bingo-toolbar, .bingo-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.bingo-toolbar > label { flex: 1; max-width: 540px; }
#bingo-identity { display: flex; align-items: end; gap: 12px; }
.bingo-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr); gap: 24px; align-items: start; }
.bingo-layout > * { min-width: 0; }
.bingo-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); grid-template-rows: repeat(5, minmax(0, 1fr)); aspect-ratio: 1; width: 100%; gap: 3px; }
.bingo-grid .bingo-tile { min-width: 0; min-height: 0; border: 1px solid #44474e; border-radius: 2px; padding: 12px 8px; display: flex; flex-direction: column; justify-content: center; gap: 8px; text-align: center; overflow-wrap: anywhere; color: #fff; background: #1b1d21; line-height: 1.2; white-space: normal; position: relative; overflow: hidden; }
.bingo-grid button:disabled { opacity: 1; cursor: default; }
.bingo-grid button:not(:disabled):hover { outline: 2px solid #ddd; outline-offset: -3px; }
.bingo-tile > span { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; width: 100%; flex-shrink: 0; line-height: 1.2; }
.bingo-tile.preview-active { outline: 2px solid #ddd; outline-offset: -3px; }
.bingo-detail { overflow-wrap: anywhere; margin: 14px 0 0; color: #c3c5cb; line-height: 1.5; }
.bingo-colors { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.bingo-colors [data-color] { width: 48px; height: 48px; min-height: 48px; padding: 0; border: 1px solid #777; }
.bingo-colors button[aria-pressed=true] { outline: 2px solid white; outline-offset: 2px; }
.bingo-chat h3 { margin-bottom: 16px; }
#bingo-feed { height: 540px; overflow-y: auto; overflow-wrap: anywhere; padding-right: 10px; margin-bottom: 18px; }
#bingo-feed p { line-height: 1.5; margin: 0 0 12px; }
#bingo-feed time { color: var(--muted); font-size: .8em; }
.bingo-activity { color: #b9bdc6; }
#bingo-chat { display: flex; align-items: end; gap: 10px; }
#bingo-chat label { flex: 1; min-width: 0; }
.bingo-live { display: flex; align-items: center; gap: 10px; }
.bingo-live span { color: #ec4455; }
#public-bingo { max-width: 1300px; margin: auto; }
#public-bingo h2 { margin: 24px 0; overflow-wrap: anywhere; }
#public-board-picker { max-width: 500px; }
@media (max-width: 1000px) {
  .bingo-layout { grid-template-columns: minmax(0, 1fr); }
  #bingo-feed { height: 320px; }
}
@media (max-width: 540px) {
  .bingo-toolbar, .bingo-heading { align-items: stretch; flex-direction: column; gap: 14px; }
  #bingo-identity label { min-width: 0; flex: 1; }
  #bingo-identity button { max-width: 110px; white-space: normal; }
  .bingo-grid { gap: 2px; }
  .bingo-grid .bingo-tile, #public-bingo .bingo-tile { padding: 4px 3px; line-height: 1.2; }
  .bingo-colors { gap: 7px; }
  #bingo-room h2 { overflow-wrap: anywhere; }
}
