:root{--green:#155b43;--dark:#123b2d;--ink:#243d35;--line:#d9e3dc;--paper:#f4f6ef;--amber:#9a6513}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,-apple-system,sans-serif}header{background:var(--dark);color:#fff;padding:32px max(24px,calc((100vw - 1320px)/2));display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;gap:22px;align-items:center}.crest{width:76px;height:90px;border:2px solid #c8d9a6;border-radius:16px 16px 36px 36px;display:grid;place-items:center;font-size:24px;font-weight:900;color:#d8e7b1;letter-spacing:2px}h1{font-size:clamp(26px,3vw,38px);line-height:1.2;margin:5px 0 9px}h2{font-size:24px;margin:0 0 16px}h3{font-size:18px;margin:0 0 12px}header p{margin:0;color:#d0ded5}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700}main{max-width:1368px;margin:auto;padding:24px}.topline{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.badge{background:#f1dba4;color:#68480d;padding:5px 12px;border-radius:30px;font-weight:700;font-size:13px}.badge.confirmed{background:#d7e8d4;color:var(--green)}#updated{font-size:12px;color:#587066}.intro{white-space:pre-line;max-width:1050px;margin:20px 0 24px}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);background:white;color:var(--green);border-radius:9px;padding:10px 15px;cursor:pointer;font-size:14px;font-weight:650}button:hover{background:#edf3e9}button:disabled{opacity:.5;cursor:default}button.light{background:#d8e7b1;color:var(--dark);border:0;white-space:nowrap}button.active,form>button[type=submit]{background:var(--green);color:#fff;border-color:var(--green)}nav{display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:18px;flex-wrap:wrap}section{padding-top:25px}label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:650;color:#587066}input,select,textarea{background:white;border:1px solid #bfcdc3;border-radius:8px;padding:10px 12px;color:var(--ink);font-size:14px}textarea{resize:vertical}.toolbar{display:flex;gap:18px;align-items:end;justify-content:space-between;flex-wrap:wrap;margin-bottom:20px}.toolbar h2{margin-bottom:4px}.weekControl{display:flex;align-items:end;gap:8px}.weekControl label{min-width:230px}.legend{display:flex;gap:18px;font-size:11px;margin-bottom:15px;flex-wrap:wrap}.amber{color:var(--amber)}.muted{color:#819188}.hint{font-size:12px;background:#e7edde;border-radius:8px;padding:12px;margin:12px 0 18px}.hint:empty{display:none}.calendar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.day h2{font-size:15px;margin-bottom:14px}.day h2 span{display:block;color:#718478;font-size:12px;font-weight:400}.slot{background:#fff;border:1px solid var(--line);border-top:3px solid var(--green);border-radius:10px;padding:15px;margin-bottom:12px;min-height:150px}.slot.provisorisch{border-top-color:#c38b35;background:#fffaf0}.slot.geschlossen,.slot.frei{border-top-color:#b6bfb7;background:#edf0e9;color:#708177}.hall{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#718478;margin-bottom:8px}.slot time{font-size:13px;font-weight:600}.team{font-weight:800;font-size:20px;margin:9px 0}.slotStatus{font-size:11px;color:#60756a}.slotNote{font-size:12px;white-space:pre-line;margin:9px 0}.slot button{padding:6px 10px;margin-top:12px;font-size:12px}.small{font-size:12px;color:#718478}.empty{font-size:13px;color:#7d8e82;padding:12px 0}.totals{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}.total{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}.total strong{display:block;font-size:28px;color:var(--green)}.total span{font-size:12px}.tableWrap{overflow:auto;background:white;border-radius:12px;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:14px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:11px;background:#e5eddf}tr.highlight{background:#f0f5e9}.rules{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.rules article{background:white;padding:22px;border-radius:12px;border:1px solid var(--line)}.rules p{font-size:14px;margin-bottom:0}a{color:var(--green)}footer{border-top:1px solid var(--line);margin-top:32px;padding-top:20px;display:flex;justify-content:space-between;gap:18px;align-items:center;font-size:12px;color:#718478}footer>div{display:flex;gap:8px;flex-wrap:wrap}details{border:1px solid var(--line);background:white;border-radius:12px;padding:18px}summary{cursor:pointer;font-weight:650}details details{margin-top:20px;background:#f4f6ef}.adminGrid{display:grid;grid-template-columns:1.4fr 1fr;gap:36px;margin:24px 0}form label{margin-bottom:16px}#message{padding:12px 16px;border-radius:8px;background:#dcebd8;font-size:14px;margin-bottom:15px}#message:empty{display:none}#message.error,.error{color:#9c342c}#message.error{background:#f9e5e0}dialog{width:min(570px,calc(100% - 32px));border:0;border-radius:18px;padding:26px;box-shadow:0 20px 90px #0003;color:var(--ink)}dialog::backdrop{background:#123b2d99}.dialogTitle{display:flex;justify-content:space-between;align-items:start}.close{font-size:24px;border:0;padding:0 8px;line-height:1.2}.historyItem{padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.historyItem strong{display:block}.historyItem span{white-space:pre-line}[hidden]{display:none!important}:focus-visible{outline:3px solid #a9c85c;outline-offset:3px}@media(max-width:1000px){.calendar{grid-template-columns:repeat(3,minmax(0,1fr))}.rules{grid-template-columns:repeat(2,1fr)}header{padding:25px}.crest{display:none}}@media(max-width:650px){header{display:block;padding:24px}header button{margin-top:20px}main{padding:20px 14px}.toolbar{justify-content:start;gap:12px}.calendar{grid-template-columns:1fr}.day{border-bottom:1px solid var(--line);padding-bottom:8px}.slot{min-height:0}.weekControl{width:100%}.weekControl label{flex:1;min-width:0}.toolbar>label{flex:1;min-width:130px}.rules,.adminGrid,.totals{grid-template-columns:1fr}.totals{gap:8px}.total{padding:14px}.total strong{font-size:24px}footer{display:block}footer>div{margin-top:14px}}@media print{header{background:white;color:black;padding:0}.crest,header>button,nav,.toolbar,.legend,footer,button,#admin,#statsView,#rulesView,dialog{display:none!important}header p{color:#555}body{background:white;font-size:10px}main{padding:10px}.calendar{grid-template-columns:repeat(5,1fr);gap:5px}.slot{padding:7px;min-height:0;break-inside:avoid}.team{font-size:14px}.hall{font-size:8px}.intro{font-size:10px;margin:10px 0}h1{font-size:22px}section{padding-top:10px}}

.slotAdmin{margin-top:22px}.slotAdmin>p{font-size:14px}.slotAdmin .adminGrid{margin-top:20px}.slotAdmin textarea{min-height:95px}

.jointTeams{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:18px 0}.jointTeams label{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:14px}.jointTeams input{width:18px;height:18px}.jointTeams+label{margin-top:20px}

.quickSwapBar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#e7edde;border:1px solid #bfcdc3;border-radius:10px;padding:12px;margin-bottom:18px;position:sticky;top:8px;z-index:2}.quickSwapBar span{flex:1;min-width:180px;font-size:13px}.swapClickable{cursor:pointer}.swapClickable:hover{box-shadow:0 0 0 2px #155b43}.swapSelected{outline:4px solid #155b43;outline-offset:2px;background:#e5f0dc!important}#quickSwapToggle[aria-pressed="true"]{background:var(--green);color:white}#quickSwapFromEdit{margin:0 0 18px}@media print{.quickSwapBar{display:none!important}.swapSelected{outline:none}}

.calendarModes{display:flex;gap:8px;margin:0 0 20px}.calendarViewport{overflow-x:auto;padding:5px}.monthCalendar{grid-template-columns:repeat(7,minmax(145px,1fr));gap:9px;min-width:1100px}.monthCalendar .day{border:1px solid var(--line);border-radius:8px;padding:7px;background:#eef2e9}.monthCalendar .day h2{font-size:12px;margin-bottom:9px}.monthCalendar .slot{padding:8px;min-height:0;margin-bottom:8px}.monthCalendar .slot time{font-size:11px}.monthCalendar .team{margin:5px 0;font-size:14px}.monthCalendar .teamBadge{font-size:13px}.monthCalendar .hall{font-size:9px}.monthCalendar .slotStatus{font-size:10px}.monthCalendar .empty{font-size:10px}.monthCalendar .outsideMonth{opacity:.35}.monthDetails{margin-top:7px;padding:5px;border-radius:5px;background:#fff8;font-size:10px}.monthDetails summary{font-size:10px}.monthDetails .slotNote{font-size:10px}.monthCalendar .slot button{font-size:11px;padding:5px 7px}.monthCalendar .slot.swapClickable details{cursor:auto}@media print{.calendarModes{display:none!important}.calendarViewport{overflow:visible;padding:0}.monthCalendar{min-width:0;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.monthCalendar .day{padding:3px}.monthCalendar .slot{padding:3px}.monthCalendar .hall,.monthCalendar .slotStatus,.monthCalendar .day h2 span{font-size:7px}.monthCalendar .teamBadge,.monthCalendar .slot time{font-size:8px}.monthDetails{display:none}.monthCalendar .day h2{font-size:8px}}

/* Compact calendar cards, with readable times and team names. */
.calendar{gap:10px}.slot{padding:10px;margin-bottom:8px;min-height:0}.slot .hall{margin-bottom:4px}.slot .team{font-size:16px;margin:5px 0}.slot .teamBadge{font-size:15px;padding:1px 5px;margin:1px 3px 1px 0}.slot .slotNote{font-size:11px;margin:5px 0}.slot button{margin-top:7px;padding:4px 8px;font-size:11px}.day h2{margin-bottom:9px}.calendarViewport{padding:4px}
.monthCalendar{gap:5px;min-width:980px;grid-template-columns:repeat(7,minmax(132px,1fr))}.monthCalendar .day{padding:4px}.monthCalendar .day h2{font-size:11px;margin-bottom:5px}.monthCalendar .day h2 span{font-size:10px}.monthCalendar .slot{padding:5px 6px;margin-bottom:5px;border-radius:6px;min-height:0}.monthCalendar .hall{font-size:8px;letter-spacing:0;margin-bottom:2px;line-height:1.25}.monthCalendar .slot time{display:block;font-size:11px;line-height:1.3}.monthCalendar .slot .team{font-size:12px;margin:3px 0}.monthCalendar .slot .teamBadge{font-size:12px;padding:0 4px;border-left-width:3px;margin:0 2px 1px 0}.monthCalendar .slotStatus{font-size:9px;line-height:1.25}.monthCalendar .slot button{font-size:10px;margin-top:4px;padding:3px 6px;min-height:26px}.monthCalendar .monthDetails{margin-top:4px;padding:3px 4px;border:0;line-height:1.25}.monthCalendar .monthDetails summary{font-size:9px}.monthCalendar .empty{padding:4px 0;margin:0;font-size:9px}.monthCalendar .outsideMonth{background:transparent}.monthCalendar .slot.swapSelected{outline-width:3px}
@media(max-width:650px){.monthCalendar{min-width:980px}.monthCalendar .slot button{min-height:30px}.slot{padding:10px}.monthCalendar .slot{padding:5px 6px}}
@media print{.calendar{gap:4px}.slot{padding:5px}.monthCalendar{min-width:0;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.monthCalendar .day{padding:3px}.monthCalendar .slot{padding:3px}.monthCalendar .slot .teamBadge,.monthCalendar .slot time{font-size:8px}.monthCalendar .slotStatus,.monthCalendar .hall{font-size:7px}}

/* Dense month tiles: two information rows plus expandable details. */
.monthCalendar{min-width:820px;max-width:1050px;grid-template-columns:repeat(5,minmax(130px,1fr)) repeat(2,minmax(60px,.45fr));gap:4px}.monthCalendar .day{padding:3px}.monthCalendar .slot{padding:4px 5px;margin-bottom:4px;border-top-width:2px}.monthSlotTop{display:flex;align-items:center;justify-content:space-between;gap:3px;flex-wrap:wrap}.monthCalendar .slot .monthSlotTop .team{margin:0;font-size:11px;line-height:1.15}.monthCalendar .slot .monthSlotTop .teamBadge{font-size:11px;padding:0 3px;margin:0;border-left-width:2px}.monthCalendar .slot .monthSlotTop time{font-size:10px;white-space:nowrap}.monthSlotMeta{display:flex;justify-content:space-between;align-items:center;gap:3px;margin-top:3px;flex-wrap:wrap}.monthCalendar .monthSlotMeta .hall{margin:0;font-size:8px;text-transform:none}.monthCalendar .monthSlotMeta .slotStatus{font-size:8px}.monthCalendar .slot .monthDetails{padding:0;margin:3px 0 0;background:transparent}.monthCalendar .slot .monthDetails summary{font-size:9px;padding:0;line-height:1.2}.monthCalendar .slot .monthDetails[open]{padding-top:3px}.monthCalendar .slot .monthDetails button{margin:4px 0 1px;min-height:28px}.monthCalendar .day h2{font-size:10px;margin-bottom:4px}.monthCalendar .day h2 span{font-size:9px}.monthCalendar .empty{font-size:8px}.monthCalendar .outsideMonth{min-height:35px}@media(max-width:650px){.monthCalendar{min-width:820px}}@media print{.monthCalendar{min-width:0;max-width:none;grid-template-columns:repeat(7,minmax(0,1fr))}.monthCalendar .slot .monthSlotTop .teamBadge,.monthCalendar .slot .monthSlotTop time{font-size:8px}.monthCalendar .monthSlotMeta .hall,.monthCalendar .monthSlotMeta .slotStatus{font-size:7px}}

/* Month: weekly blocks, one day per row, three halls side by side. */
.monthCalendar.monthHallCalendar{display:block;min-width:660px;max-width:none}.monthHallCalendar .monthWeek{padding:0;margin:0 0 20px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.monthWeekTitle{margin:0;padding:9px 12px;background:#dfe9d7;font-size:13px}.monthHallHeads,.monthHallCalendar .monthDayRow{display:grid;grid-template-columns:100px repeat(3,minmax(170px,1fr));gap:0}.monthHallHeads{background:#eef3e8;font-size:12px;font-weight:700}.monthHallHeads>span{padding:8px}.monthHallCalendar .monthDayRow{border:0;border-top:1px solid var(--line);border-radius:0;padding:0;background:#fff}.monthHallCalendar .monthDayRow>h2{padding:9px 7px;margin:0;font-size:12px;background:#f3f6ee}.monthHallCalendar .monthDayRow>h2 span{font-size:10px;margin-top:3px}.monthHallCell{padding:5px;min-width:0;border-left:1px solid var(--line)}.monthHallCalendar .monthHallCell .slot{margin:0 0 4px;padding:5px 7px}.monthHallCell .slot:last-child{margin-bottom:0}.monthHallCalendar .monthHallCell .hall{display:none}.monthHallCalendar .monthSlotTop{flex-wrap:nowrap}.monthHallCalendar .monthSlotMeta{margin-top:3px}.monthHallCalendar .empty{padding:3px;color:#819188}.monthHallCalendar .monthDetails{max-width:100%}@media print{.monthCalendar.monthHallCalendar{min-width:0;display:block}.monthHallHeads,.monthHallCalendar .monthDayRow{grid-template-columns:65px repeat(3,minmax(0,1fr))}.monthHallCalendar .monthWeek{overflow:visible;break-inside:auto;margin-bottom:12px}.monthHallCalendar .monthDayRow{break-inside:avoid}.monthWeekTitle{font-size:10px;padding:5px;break-after:avoid}.monthHallHeads{font-size:9px}.monthHallCalendar .monthDayRow>h2{font-size:9px;padding:5px}.monthHallCell{padding:3px}.monthHallCalendar .monthSlotTop{flex-wrap:wrap}}

/* Week blocks with weekday columns at the top, three halls within each day. */
.monthCalendar.monthHallCalendar{min-width:1240px;max-width:none}.monthHallCalendar .monthWeek{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;gap:0}.monthHallCalendar .monthWeekTitle{grid-column:1/-1}.monthHallCalendar .monthDayRow{grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;border-right:1px solid var(--line);border-top:0;min-width:0}.monthHallCalendar .monthDayRow>h2{grid-column:1/-1;text-align:center;border-bottom:1px solid var(--line);padding:7px 3px;font-size:12px}.monthHallCalendar .monthDayRow>h2 span{font-size:10px}.monthHallCalendar .monthHallCell{padding:3px;overflow-wrap:anywhere;min-height:80px}.dayHallTitle{font-size:9px;font-weight:750;text-align:center;line-height:1.25;margin:1px 0 6px;min-height:23px}.monthHallCalendar .monthHallCell .slot{padding:4px 3px;border-left-width:3px}.monthHallCalendar .monthSlotTop{flex-direction:column;align-items:start;gap:3px;flex-wrap:wrap}.monthHallCalendar .slot .monthSlotTop .teamBadge{font-size:10px;padding:0 2px}.monthHallCalendar .slot .monthSlotTop time{font-size:9px;white-space:normal}.monthHallCalendar .monthSlotMeta .slotStatus{font-size:8px}.monthHallCalendar .slot .monthDetails summary{font-size:8px}.monthHallCalendar .slot .monthDetails button{font-size:9px;padding:3px;max-width:100%;white-space:normal}@media print{.monthCalendar.monthHallCalendar{min-width:0}.monthHallCalendar .monthWeek{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));break-inside:auto}.monthHallCalendar .monthDayRow{grid-template-columns:repeat(3,minmax(0,1fr))}.monthHallCalendar .monthWeekTitle{grid-column:1/-1}.monthHallCalendar .monthHallCell{padding:1px}.dayHallTitle{font-size:6px}.monthHallCalendar .slot .monthSlotTop .teamBadge,.monthHallCalendar .slot .monthSlotTop time{font-size:6px}.monthHallCalendar .monthSlotMeta .slotStatus{font-size:6px}}

.monthHallCalendar .monthWeek>.monthDayRow.monthDayColumn0{grid-column:1}.monthHallCalendar .monthWeek>.monthDayRow.monthDayColumn1{grid-column:2}.monthHallCalendar .monthWeek>.monthDayRow.monthDayColumn2{grid-column:3}.monthHallCalendar .monthWeek>.monthDayRow.monthDayColumn3{grid-column:4}.monthHallCalendar .monthWeek>.monthDayRow.monthDayColumn4{grid-column:5}
/* Omit hall columns without an allocated time on this date. */
.monthHallCalendar .monthDayRow.hallCount1{grid-template-columns:minmax(0,1fr)}.monthHallCalendar .monthDayRow.hallCount2{grid-template-columns:repeat(2,minmax(0,1fr))}.monthHallCalendar .monthDayRow.hallCount3{grid-template-columns:repeat(3,minmax(0,1fr))}.monthHallCalendar .monthDayRow.hallCount0{grid-template-columns:minmax(0,1fr)}

/* A small, independent allocation summary next to every week. */
.monthHallCalendar .monthWeek{grid-template-columns:repeat(5,minmax(0,1fr)) 205px;position:relative}.monthHallCalendar .monthWeekTitle{grid-column:1/-1}.weeklyBalance{grid-column:6;grid-row:2;align-self:stretch;border-left:1px solid var(--line);padding:7px;background:#f5f8f0;min-width:0}.weeklyBalance h4{font-size:12px;margin:0 0 6px}.weeklyBalance table{font-size:10px;width:100%;table-layout:auto}.weeklyBalance th,.weeklyBalance td{padding:3px 2px;white-space:nowrap;text-align:right;border-bottom:1px solid #dfe5db;font-size:10px}.weeklyBalance th:first-child,.weeklyBalance td:first-child{text-align:left}.weeklyBalance .teamBadge{font-size:9px;padding:0 3px;border-left-width:3px;margin:0}.weeklyBalance th{background:#e5eddf;font-size:9px}.weeklyBalance .noWeeklySlot{background:#fff0dc}.weeklyBalance .noWeeklySlot td{color:#80510e}.weeklyBalance .onlyProvisional{color:#80510e}.weeklyBalanceNote{font-size:9px;line-height:1.3;margin:6px 0 0;color:#596d60}.monthHallCalendar .monthDayRow{grid-row:2}.monthCalendar.monthHallCalendar{min-width:1370px}@media print{.monthHallCalendar .monthWeek{grid-template-columns:repeat(5,minmax(0,1fr)) 125px}.weeklyBalance{padding:3px}.weeklyBalance th,.weeklyBalance td{font-size:7px;padding:2px 1px}.weeklyBalance .teamBadge{font-size:6px;padding:0 1px}.weeklyBalanceNote{font-size:6px}.monthCalendar.monthHallCalendar{min-width:0}.weeklyBalance h4{font-size:8px}}

/* Keep the complete weekly summary inside the calendar instead of clipping it. */
.monthCalendar.monthHallCalendar{min-width:0;width:100%;max-width:none}.monthHallCalendar .monthWeek{grid-template-columns:repeat(5,minmax(0,1fr)) 225px;overflow:visible}.weeklyBalance{width:100%;min-width:0;box-sizing:border-box}.weeklyBalance table{table-layout:fixed;width:100%;max-width:100%}.weeklyBalance th:first-child,.weeklyBalance td:first-child{width:47%}.weeklyBalance th:not(:first-child),.weeklyBalance td:not(:first-child){width:17.666%;padding-left:1px;padding-right:1px}.weeklyBalance .teamBadge{max-width:100%;white-space:normal;overflow-wrap:anywhere}.weeklyBalanceNote{overflow-wrap:anywhere}.monthHallCalendar .monthSlotTop{min-width:0}.monthHallCalendar .slot .monthSlotTop .teamBadge{max-width:100%;white-space:normal;overflow-wrap:anywhere}.monthHallCalendar .monthHallCell{min-width:0}.monthHallCalendar .dayHallTitle{overflow-wrap:anywhere}.calendarViewport{max-width:100%;box-sizing:border-box}
@media(max-width:1100px){.monthHallCalendar .monthWeek{grid-template-columns:repeat(5,minmax(0,1fr))}.monthHallCalendar .weeklyBalance{grid-column:1/-1;grid-row:3;border-left:0;border-top:1px solid var(--line);padding:10px}.weeklyBalance table{max-width:460px}.weeklyBalanceNote{max-width:460px}.monthHallCalendar .slot .monthSlotTop time{font-size:9px}.monthHallCalendar .monthDayRow{min-width:0}}
@media(max-width:700px){.monthCalendar.monthHallCalendar{min-width:620px}.monthHallCalendar .monthWeek{grid-template-columns:repeat(5,minmax(0,1fr))}.monthHallCalendar .weeklyBalance{grid-column:1/-1;grid-row:3}.monthHallCalendar .monthDayRow.hallCount3{grid-template-columns:minmax(0,1fr)}.monthHallCalendar .monthHallCell{border-bottom:1px solid var(--line)}.monthHallCalendar .dayHallTitle{min-height:0;margin:1px 0 3px}}
@media print{.monthHallCalendar .monthWeek{grid-template-columns:repeat(5,minmax(0,1fr))}.monthHallCalendar .weeklyBalance{grid-column:1/-1;grid-row:3;max-width:none;border-left:0;border-top:1px solid var(--line)}.weeklyBalance table{max-width:420px}.monthCalendar.monthHallCalendar{min-width:0}}

.monthHallCalendar .monthDayRow.adjacentMonth>h2{background:#e4e9e2;border-top:3px solid #819188}.adjacentMonthLabel{display:block;font-size:9px;font-weight:500;color:#53695f;margin-top:2px}.monthHallCalendar .adjacentMonth .slot{opacity:1}

.balanceToggle{display:block;background:transparent;color:var(--ink);padding:0;margin:0 0 6px;border:0;font-size:12px;font-weight:750;text-align:left;cursor:default}.balanceToggle:hover{background:transparent}.balanceToggle::before{content:''}.balanceContent{display:block}
@media(max-width:1100px){.balanceToggle{cursor:pointer;width:100%;padding:8px 3px;margin:0;min-height:40px}.balanceToggle::before{content:'▸ ';display:inline}.balanceToggle[aria-expanded="true"]::before{content:'▾ '}.weeklyBalance .balanceContent{display:none}.weeklyBalance.balanceOpen .balanceContent{display:block}.weeklyBalance .balanceToggle{font-size:13px}}
@media print{.weeklyBalance .balanceToggle{display:block!important;min-height:0;padding:0;margin-bottom:4px;font-size:8px}.balanceToggle::before{content:''}.weeklyBalance .balanceContent{display:block!important}}

#teamLegend button.teamBadge{cursor:pointer;font-size:12px;min-height:34px;padding:3px 8px;transition:box-shadow .12s}#teamLegend button[aria-pressed="true"]{outline:2px solid var(--team-ink,#155b43);outline-offset:2px;box-shadow:0 0 0 3px #fff}#teamLegend button.teamBadge:hover{background:var(--team-bg);box-shadow:0 0 0 2px var(--team-ink)}#teamLegend .teamFilterAll{font-size:12px;min-height:34px;padding:3px 8px}#teamLegend .teamFilterAll[aria-pressed="true"]{background:#155b43;color:#fff}

.weeklyBalance th{white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:auto;line-height:1.3;vertical-align:bottom}.weeklyBalance th:first-child,.weeklyBalance td:first-child{width:34%}.weeklyBalance th:not(:first-child),.weeklyBalance td:not(:first-child){width:22%}.weeklyBalance table{table-layout:fixed}.weeklyBalance th:last-child{overflow-wrap:anywhere}@media(min-width:1101px){.monthHallCalendar .monthWeek{grid-template-columns:repeat(5,minmax(0,1fr)) 270px}}

.brand .clubLogo{display:block;width:80px;height:120px;object-fit:contain;flex-shrink:0}.brand>div{min-width:0}@media(max-width:650px){.brand{gap:14px}.brand .clubLogo{width:56px;height:84px}}@media print{.brand .clubLogo{display:block;width:40px;height:60px}}

#teamAccessBar p{margin:7px 0 10px}#teamAccessBar button{margin:3px 4px 0 0}@media print{#teamAccessBar{display:none!important}}

.applicationStrip{font-size:10px;font-weight:700;background:#fff9;border:1px solid #c4d3bb;border-radius:4px;padding:3px;margin:4px 0;line-height:1.3}.applicationReviewCard{background:#f4f7ef;border:1px solid var(--line);border-radius:8px;padding:12px;margin:12px 0}.applicationReviewCard p{margin:7px 0}.applicationReviewCard button{margin-right:7px}
