.capacity-page{padding:54px 0 80px}.capacity-intro{margin-bottom:36px}.capacity-intro h1{font-size:clamp(2.4rem,4.6vw,4.7rem);line-height:1.08;margin:24px 0}.capacity-intro>p:last-child{max-width:720px;font-size:1.1rem}.capacity-board{border:1px solid var(--line);border-radius:22px;padding:30px;background:var(--surface);box-shadow:0 12px 40px #0b2e6307}.capacity-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.capacity-toolbar h2{font-size:1.8rem;margin:0 0 4px}.capacity-toolbar p{margin:0;font-size:.9rem}.capacity-toolbar form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.capacity-toolbar label{display:grid;gap:5px;font-size:.8rem;font-weight:700}.capacity-toolbar input{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:10px;font:inherit;font-size:1rem;min-width:0;max-width:100%}.capacity-toolbar .icon-button{width:44px;height:44px}.capacity-toolbar button:disabled{opacity:.4;cursor:default}.capacity-legend{display:flex;flex-wrap:wrap;gap:12px 22px;margin:28px 0 20px;font-size:.85rem}.capacity-legend>span{display:flex;gap:8px;align-items:center}.capacity-dot{display:inline-flex;align-items:center;justify-content:center;flex:0 0 23px;width:23px;height:23px;border-radius:6px;font-style:normal;font-weight:700}.capacity-date-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin:24px 0 12px}.capacity-date-heading h3{font-size:1.2rem;margin:0}.capacity-date-heading span,.capacity-scroll-hint,.capacity-anonymous{font-size:.8rem}.capacity-scroll-hint{display:none}.capacity-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;scrollbar-width:thin;max-width:100%}.capacity-table{width:100%;min-width:830px;border-collapse:separate;border-spacing:0;table-layout:fixed}.capacity-table th,.capacity-table td{padding:8px;text-align:center;border-bottom:1px solid var(--line);vertical-align:middle}.capacity-table th:first-child{width:122px;text-align:left;position:sticky;left:0;z-index:1;background:var(--surface);font:600 .85rem/1.4 var(--font-sans,Arial,sans-serif);box-shadow:1px 0 0 var(--line)}.capacity-table thead th{font-size:.85rem;font-weight:600;background:var(--bg);padding:16px 8px}.capacity-table th span{display:block;font-size:.75rem;font-weight:400}.capacity-table tr:last-child>*{border-bottom:0}.capacity-table .capacity-summary>*{border-bottom:2px solid var(--line);padding-top:13px;padding-bottom:13px}.capacity-cell{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:100%;min-height:69px;border-radius:9px;border:1px solid transparent;font:600 .75rem/1.25 Arial,sans-serif;cursor:pointer;padding:9px 4px;transition:transform .15s,border-color .15s}.capacity-cell>span{font-size:1.2rem;line-height:1}.capacity-cell.past{background:var(--bg);color:var(--muted);font-weight:400}.capacity-cell:hover{transform:translateY(-2px);border-color:currentColor}.capacity-cell[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:2px}.capacity-page :focus-visible{outline:3px solid #1680c9;outline-offset:3px}.capacity-detail{display:flex;align-items:flex-start;gap:15px;border:1px solid var(--line);background:var(--bg);padding:20px;border-radius:12px;margin-top:18px}.capacity-detail[hidden],#capacity-result[hidden]{display:none}.capacity-detail h3{font-size:1.1rem;margin:0 0 6px}.capacity-detail p{margin:0}.capacity-detail-icon{font-size:1.5rem}.capacity-bottom{display:flex;gap:24px;align-items:center;justify-content:space-between;padding-top:24px;margin-top:20px;border-top:1px solid var(--line)}.capacity-bottom p{margin:0;max-width:670px;font-size:.9rem}.capacity-bottom .button{flex-shrink:0}.capacity-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding-top:35px}.capacity-notes h2{font-size:1.3rem;margin-bottom:12px}.capacity-notes p{font-size:.9rem}.capacity-teaser{margin-top:28px;padding:22px 26px;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;justify-content:space-between;align-items:center;gap:24px}.capacity-teaser p{margin:4px 0 0;max-width:660px}.capacity-teaser>a{flex-shrink:0}.capacity-page #capacity-message[data-error=true]{border:1px solid currentColor;border-radius:8px;padding:14px;color:var(--ink)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:950px){.capacity-board{padding:22px}.capacity-scroll-hint{display:block}.capacity-notes{grid-template-columns:1fr}.capacity-bottom,.capacity-teaser{align-items:flex-start;flex-direction:column}.capacity-table th:first-child{width:100px}.capacity-toolbar{gap:18px}}
@media(max-width:500px){.capacity-page{padding-top:28px}.capacity-board{border-radius:14px;padding:15px}.capacity-toolbar form{gap:7px;width:100%}.capacity-toolbar label{flex:1;min-width:0}.capacity-toolbar input{width:100%}.capacity-toolbar #capacity-refresh{width:100%;justify-content:center}.capacity-table{min-width:760px}.capacity-table th,.capacity-table td{padding:6px}.capacity-table th:first-child{width:88px}.capacity-legend{gap:10px;font-size:.8rem}.capacity-date-heading span{display:block}.capacity-bottom .button{width:100%;justify-content:center}.capacity-page p,.capacity-page h1,.capacity-page h2,.capacity-page h3{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.capacity-cell{transition:none}.capacity-cell:hover{transform:none}}

/* Status is expressed through color, symbol and wording together. */
.capacity-page{--capacity-open-bg:#176347;--capacity-open-ink:#fff;--capacity-limited-bg:#ffe0a0;--capacity-limited-ink:#684000;--capacity-busy-bg:#873b54;--capacity-busy-ink:#fff;--capacity-unknown-bg:#edf0f4;--capacity-unknown-ink:#485568}
[data-theme=dark] .capacity-page{--capacity-open-bg:#164b38;--capacity-open-ink:#d9ffec;--capacity-limited-bg:#594113;--capacity-limited-ink:#ffe3a9;--capacity-busy-bg:#542b3c;--capacity-busy-ink:#ffe0eb;--capacity-unknown-bg:#14273e;--capacity-unknown-ink:#c3cfdd}
.capacity-cell.open,.capacity-dot.open{background:var(--capacity-open-bg);color:var(--capacity-open-ink);border-color:#398769}
.capacity-cell.limited,.capacity-dot.limited{background:var(--capacity-limited-bg);color:var(--capacity-limited-ink);border-color:#b68b39}
.capacity-cell.busy,.capacity-dot.busy{background:var(--capacity-busy-bg);color:var(--capacity-busy-ink);border-color:#ad657d}
.capacity-cell.unknown,.capacity-dot.unknown{background:var(--capacity-unknown-bg);color:var(--capacity-unknown-ink);border-color:var(--line)}
.capacity-legend{gap:12px 24px;font-size:.875rem;padding-bottom:22px;border-bottom:1px solid var(--line)}
.capacity-dot{border:1px solid transparent;width:26px;height:26px;flex-basis:26px}
.capacity-overview-heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px 20px;flex-wrap:wrap;margin:26px 0 14px}
.capacity-overview-heading h3{font:700 1rem/1.4 var(--font-sans,Arial,sans-serif);margin:0}.capacity-overview-heading p{font-size:.875rem;margin:0}
.capacity-overview{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.capacity-slot{min-height:148px;gap:12px;padding:16px 8px;text-align:center;border-radius:12px}
.capacity-slot .capacity-slot-time{font-size:.875rem;white-space:nowrap;line-height:1.3;font-weight:700}
.capacity-slot .capacity-symbol{font-size:1.6rem;line-height:1}
.capacity-cell small{font:inherit;font-size:.8rem;line-height:1.35}
.capacity-slot.past{border:1px dashed var(--line)}
.capacity-summary-note{font-size:.85rem;line-height:1.6;margin:16px 0 0;max-width:820px}
.capacity-drivers{margin-top:26px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.capacity-drivers summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;padding:20px 0;font-size:.95rem;font-weight:700;list-style:none;color:var(--ink)}
.capacity-drivers summary::-webkit-details-marker{display:none}.capacity-drivers summary small{display:block;font-weight:400;font-size:.8rem;margin-top:5px;color:var(--muted)}
.capacity-drivers summary>span:first-child{font:inherit;color:inherit;transform:none;transition:none}.capacity-drivers summary::after{display:none}
.capacity-expand{font:400 1.5rem/1 Arial;transition:transform .18s}.capacity-drivers[open] .capacity-expand{transform:rotate(45deg)}
.capacity-drivers .capacity-scroll{margin-bottom:20px}.capacity-anonymous{max-width:780px;margin:0 0 18px;line-height:1.6}
.capacity-drivers[hidden]{display:none}.capacity-detail{border-left:4px solid var(--line);background:transparent}.capacity-detail[data-state=open]{border-left-color:#398769}.capacity-detail[data-state=limited]{border-left-color:#b68b39}.capacity-detail[data-state=busy]{border-left-color:#ad657d}
.capacity-cell:focus-visible{outline-color:var(--ink)}
@media(max-width:1100px){.capacity-overview{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){.capacity-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.capacity-slot{min-height:132px}.capacity-slot:last-child{grid-column:1/-1;min-height:100px}.capacity-overview-heading{margin-top:22px}.capacity-legend{display:grid;grid-template-columns:1fr;gap:10px}.capacity-detail{padding:16px 12px;gap:10px}.capacity-detail h3{font-size:1rem}.capacity-intro h1{font-size:clamp(2.1rem,8.5vw,3rem)}}
@media(prefers-reduced-motion:reduce){.capacity-expand{transition:none}}
