:root{color-scheme:light;--bg:#faf6f0;--surface:#ffffff;--surface-alt:#f2eade;--ink:#2a1f16;--ink-soft:#5e5044;--line:#e7dccc;--brand:#6b4224;--brand-hover:#522f17;--brand-tint:#f0e5da;--on-brand:#ffffff;--accent:#a2451f;--accent-tint:#fbeade;--problem:#9c1f18;--problem-tint:#fce8e5;--note:#6f5600;--note-tint:#fbf1d4;--focus:#0b5fd0;--radius:8px;--radius-lg:12px;--shadow-sm:0 1px 2px rgba(42,31,22,0.05);--measure:62ch;--font-body:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;--font-display:Georgia,"Iowan Old Style","Palatino Linotype",serif}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.15;text-wrap:balance;letter-spacing:-.012em;margin:0 0 .5em}h1{font-size:clamp(1.7rem,1.35rem + 1.5vw,2.35rem)}h2{font-size:clamp(1.2rem,1.05rem + .7vw,1.45rem)}h3{font-size:1rem}p{margin:0 0 1em;max-width:var(--measure)}a{color:var(--brand);text-underline-offset:.18em}a:hover{color:var(--brand-hover)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}.kicker{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.wrap{width:min(78rem,100% - 2.5rem);margin-inline:auto}.skip{position:absolute;left:-9999px;top:0;background:var(--surface);color:var(--ink);padding:.6rem 1rem;z-index:10;border-radius:0 0 var(--radius) 0}.skip:focus{left:0}.demo-banner{background:var(--accent-tint);border-bottom:1px solid var(--line);font-size:.875rem;color:var(--ink);padding:.5rem 0}.demo-banner p{margin:0;max-width:none}.demo-banner strong{color:var(--accent)}.site-header{background:var(--surface);border-bottom:1px solid var(--line)}.site-header__inner{flex-wrap:wrap;gap:.9rem;padding:1rem 0}.brand,.site-header__inner{display:flex;align-items:center}.brand{gap:.7rem}.brand__name{font-family:var(--font-display);font-size:1.2rem;font-weight:600;letter-spacing:-.01em;line-height:1.1}.brand__where{display:block;margin-top:.15rem;font-family:var(--font-body);font-weight:600}.site-header__spacer{flex:1 1 auto}.intro{padding:2.25rem 0 1.5rem}.intro h1{margin:.3rem 0 .4rem}.intro__summary{color:var(--ink-soft);margin:0}.figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));grid-gap:1px;gap:1px;margin-top:1.5rem;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.figure{background:var(--surface);padding:.9rem 1.1rem}.figure__value{display:block;font-family:var(--font-display);font-size:1.65rem;line-height:1.1;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.figure__label{display:block;margin-top:.2rem;font-size:.8125rem;color:var(--ink-soft)}.figure--problem{background:var(--problem-tint)}.figure--problem .figure__value{color:var(--problem)}.figure--note{background:var(--note-tint)}.figure--note .figure__value{color:var(--note)}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1.25rem}.controls__note{flex:1 1 18rem;margin:0;font-size:.875rem;color:var(--ink-soft)}.button{font:inherit;font-size:.9375rem;font-weight:600;line-height:1.2;padding:.65rem 1.1rem;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}.button:hover{border-color:var(--brand);color:var(--brand)}.button--go{background:var(--brand);border-color:var(--brand);color:var(--on-brand);padding-inline:1.4rem}.button--go:hover{background:var(--brand-hover);border-color:var(--brand-hover);color:var(--on-brand)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:1.5rem;overflow:hidden}.panel__head{padding:1.1rem 1.25rem .9rem;border-bottom:1px solid var(--line)}.panel__head h2{margin:0}.panel__head p{margin:.4rem 0 0;color:var(--ink-soft);font-size:.9375rem}.panel__body{padding:1.25rem}.scroller{position:relative;overflow-x:auto}.rota{border-collapse:separate;border-spacing:0;width:100%;min-width:60rem}.rota td,.rota th{vertical-align:top;padding:.6rem .7rem;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.rota tr>:last-child{border-right:0}.rota tbody tr:last-child>*{border-bottom:0}.rota thead th{background:var(--surface-alt);text-align:left;font-size:.9375rem;white-space:nowrap}.rota thead th .kicker{display:block;margin-top:.1rem;font-size:.6875rem}.rota tbody th,.rota thead th:first-child{position:-webkit-sticky;position:sticky;left:0;z-index:2;background:var(--surface-alt);text-align:left;font-size:.9375rem;white-space:nowrap;width:8rem}.rota td.is-weekend{background:var(--bg)}.rota__shut{background:repeating-linear-gradient(135deg,var(--bg),var(--bg) 6px,var(--surface-alt) 6px,var(--surface-alt) 12px)}.rota__shut span{position:absolute;width:1px;height:1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.cell__time{display:block;font-size:.75rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.01em;color:var(--ink-soft);margin-bottom:.45rem}.rota td.cell--problem,.rota td.cell--problem.is-weekend{background:var(--problem-tint)}.wanted{margin:0;max-width:none;font-size:.875rem;color:var(--ink-soft)}.wanted__note{display:block;font-size:.6875rem;letter-spacing:.02em}.cell__people{list-style:none;margin:0;padding:0;flex-direction:column}.cell__people,.who{display:flex;gap:.45rem}.who{align-items:flex-start;font-size:.875rem;line-height:1.3}.who__mark{margin-top:-.05rem;flex:0 0 auto;display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:999px;background:var(--brand-tint);color:var(--brand);font-size:.6875rem;font-weight:700;letter-spacing:.02em}.who--keys .who__mark{background:var(--brand);color:var(--on-brand)}.who__name{min-width:0}.who__holds{display:block;font-size:.6875rem;line-height:1.3;letter-spacing:.02em;color:var(--ink-soft)}.empty{display:flex;align-items:center;gap:.45rem;font-size:.8125rem;color:var(--problem);font-weight:600}.empty__mark{flex:0 0 auto;width:1.7rem;height:1.7rem;border-radius:999px;border:1.5px dashed var(--problem)}@keyframes land{0%{background-color:var(--brand-tint);transform:translateY(-2px)}to{background-color:transparent;transform:none}}.rota td.is-landing{animation:land .62s ease-out backwards}.scroller.is-sweeping .rota thead th{animation:land .4s ease-out}@media (prefers-reduced-motion:reduce){.rota td.is-landing,.scroller.is-sweeping .rota thead th{animation:none}}.legend{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;list-style:none;margin:0;padding:.9rem 1.25rem;border-top:1px solid var(--line);background:var(--bg);font-size:.8125rem;color:var(--ink-soft)}.legend li{display:flex;align-items:center;gap:.45rem}.legend__swatch{flex:0 0 auto;width:1.15rem;height:1.15rem;border-radius:999px}.legend__swatch--keys{background:var(--brand)}.legend__swatch--plain{background:var(--brand-tint)}.legend__swatch--empty{border:1.5px dashed var(--problem)}.legend__swatch--problem{border-radius:4px;background:var(--problem-tint);border:1px solid var(--problem)}.legend__swatch--shut{border-radius:4px;background:repeating-linear-gradient(135deg,var(--bg),var(--bg) 4px,var(--surface-alt) 4px,var(--surface-alt) 8px);border:1px solid var(--line)}.warning-group+.warning-group{margin-top:1.5rem}.warning-group__head{display:flex;align-items:baseline;gap:.5rem;margin:0 0 .7rem}.warning-group__head h3{margin:0;font-family:var(--font-body);font-size:.8125rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.warning-group--problem .warning-group__head h3{color:var(--problem)}.warning-group--note .warning-group__head h3{color:var(--note)}.warning-group__count{font-size:.8125rem;color:var(--ink-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.warnings{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.warning{display:flex;gap:.75rem;align-items:flex-start;padding:.7rem .9rem;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg);font-size:.9375rem}.warning--problem{background:var(--problem-tint);border-color:var(--problem)}.warning--note{background:var(--note-tint)}.warning__mark{flex:0 0 auto;display:inline-grid;place-items:center;width:1.4rem;height:1.4rem;border-radius:999px;font-size:.8125rem;font-weight:700;margin-top:.15rem}.warning--problem .warning__mark{background:var(--problem);color:var(--surface)}.warning--note .warning__mark{background:var(--note);color:var(--surface)}.warning__body{min-width:0}.warning__kind{display:block;font-size:.6875rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;margin-bottom:.1rem}.warning--problem .warning__kind{color:var(--problem)}.warning--note .warning__kind{color:var(--note)}.warning__text{margin:0;max-width:none;color:var(--ink)}.nothing{color:var(--ink-soft);margin:0}.hours{border-collapse:collapse;width:100%;min-width:30rem}.hours td,.hours th{text-align:left;padding:.6rem;border-bottom:1px solid var(--line);font-size:.9375rem}.hours thead th{font-size:.75rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft)}.hours tbody tr:last-child td,.hours tbody tr:last-child th{border-bottom:0}.hours__role{display:block;font-size:.8125rem;color:var(--ink-soft);font-weight:400}.hours__num,.hours__off{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.hours__off{color:var(--note);font-weight:600}.hours__off--none{color:var(--ink-soft);font-weight:400}.hours__bar{width:35%;min-width:5rem}.bar{position:relative;height:.55rem;background:var(--surface-alt);overflow:hidden}.bar,.bar__fill{border-radius:999px}.bar__fill{position:absolute;inset:0 auto 0 0;background:var(--brand)}.bar__fill--over{background:var(--note);background-image:repeating-linear-gradient(-45deg,rgba(255,255,255,.45) 0 3px,rgba(255,255,255,0) 3px 7px)}.next{display:flex;gap:.85rem;align-items:flex-start;padding:1rem 1.25rem;border:1px dashed var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink-soft);font-size:.9375rem}.next p{margin:0}.next__mark{flex:0 0 auto;display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:999px;background:var(--brand-tint);color:var(--brand);font-weight:700;font-size:.875rem}.banner{margin:0 0 1.5rem;max-width:none;padding:.8rem 1rem;border-radius:var(--radius);border:1px solid var(--line);font-size:.9375rem}.banner--ok{background:var(--brand-tint);border-color:var(--brand);color:var(--brand)}.banner--error{background:var(--problem-tint);border-color:var(--problem);color:var(--problem)}.panel__foot{display:flex;flex-wrap:wrap;gap:.6rem;padding:1rem 1.25rem;border-top:1px solid var(--line);background:var(--bg)}.button--danger{color:var(--problem);border-color:var(--line)}.button--danger:hover{border-color:var(--problem);color:var(--problem)}.button[disabled]{opacity:.55;cursor:not-allowed}.button[disabled]:hover{border-color:var(--line);color:var(--ink)}a.button{display:inline-block;text-decoration:none}a.button.button--go{color:var(--on-brand)}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));grid-gap:1rem;gap:1rem;align-items:start}.field{margin:0;max-width:none;display:flex;flex-direction:column;gap:.3rem}.field label,.field legend{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding:0}.field input[type=checkbox]{accent-color:var(--brand);width:1rem;height:1rem}.field input[type=number],.field input[type=text]{font:inherit;font-size:.9375rem;padding:.5rem .6rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);width:100%}.field--number input{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;max-width:8rem}.field__hint{font-size:.75rem;color:var(--ink-soft)}.field--skills{border:0;margin:0;padding:0}.field .check{display:flex;align-items:center;gap:.45rem;font-size:.9375rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink);margin-top:.35rem}.availability{border-collapse:separate;border-spacing:0;width:100%;min-width:52rem;border-top:1px solid var(--line)}.availability td,.availability th{padding:.5rem;border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:middle}.availability tr>:last-child{border-right:0}.availability tbody tr:last-child>*{border-bottom:0}.availability tbody th,.availability thead th{background:var(--surface-alt);text-align:left;font-size:.875rem;white-space:nowrap}.availability tbody th{position:-webkit-sticky;position:sticky;left:0;z-index:2;width:8rem}.answer{font:inherit;font-size:.875rem;padding:.35rem .4rem;width:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink)}.answer--yes{background:var(--brand-tint);border-color:var(--brand)}.answer--if-needed{background:var(--note-tint);border-color:var(--note)}.answer--no{background:var(--bg);color:var(--ink-soft)}.site-footer{border-top:1px solid var(--line);margin-top:2.5rem;padding:1.75rem 0 3rem;color:var(--ink-soft);font-size:.875rem}.site-footer p{max-width:var(--measure)}.site-footer p:last-child{margin-bottom:0}@media (max-width:40rem){.intro{padding-top:1.5rem}.panel__body{padding:1rem}.figure{padding:.75rem .9rem}}