:root{color-scheme:light;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#162d27;background:#f2f3ed;font-synthesis:none}*{box-sizing:border-box}body{margin:0}main{max-width:680px;margin:auto;padding:30px 22px max(32px,env(safe-area-inset-bottom))}header,.row{display:flex;align-items:center;justify-content:space-between;gap:16px}header{margin-bottom:30px}h1{font-size:28px;margin:5px 0 0;letter-spacing:-1px}h2{font-size:23px;letter-spacing:-.6px;margin:10px 0}p{line-height:1.5;color:#52645c}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px}.panel{padding:26px;background:white;border:1px solid #dce1d7;border-radius:22px;margin:20px 0}.booking-card{padding:28px;background:#fff;border:1px solid #dce1d7;border-radius:22px;margin:20px 0}.booking-card h2{font-size:clamp(26px,5.4vw,36px);line-height:1.2;letter-spacing:-1px;margin:12px 0 0;font-variant-numeric:tabular-nums}.booking-card .eyebrow[hidden]+h2{margin-top:0}.booking-card p{font-size:19px;margin:10px 0 0;color:inherit}.booking-card.clear{background:#d0edcc;border-color:#a5d69e}.booking-card.soon{background:#ffe3a3;border-color:#edc36d;color:#785115}.booking-card.busy{background:#facbc3;border-color:#eaa096;color:#8b302e}.booking-card ol{margin-top:22px}.booking-card li{align-items:center;border-color:currentColor;border-top-color:#dce1d7;padding:15px 0 0}.booking-card li span{color:inherit;font-size:15px}.booking-card .arrival{font-size:13px;white-space:nowrap}.footnote{font-size:12px;line-height:1.6}.lights-panel{display:grid;grid-template-columns:1fr auto;align-items:center}.lights-panel p{margin-bottom:0}.lights-panel>p{grid-column:1/-1}.switch{width:74px;height:44px;border:0;border-radius:30px;background:#71817b;padding:5px;cursor:pointer}.switch span{display:block;background:white;width:34px;height:34px;border-radius:50%;transition:transform .2s}.switch[aria-checked=true]{background:#155d43}.switch[aria-checked=true] span{transform:translateX(30px)}.switch:disabled{opacity:.5;cursor:wait}.quiet{border:0;background:transparent;color:#1b5944;font-size:14px;padding:10px 0;cursor:pointer}button,input{font:inherit}button:focus-visible,input:focus-visible{outline:3px solid #c98a2a;outline-offset:4px}button:disabled{opacity:.5}label{display:block;font-size:14px;font-weight:650;margin-top:24px}input{display:block;width:100%;padding:15px;border:1px solid #b9c4bb;border-radius:10px;margin:10px 0 14px}.primary{width:100%;border:0;border-radius:12px;background:#173e30;color:white;padding:16px;font-weight:650;cursor:pointer}#login-error{color:#96332d}ol{list-style:none;margin:18px 0 0;padding:0}li{display:flex;justify-content:space-between;gap:16px;padding:18px 0;border-top:1px solid #e7eae2}li b{display:block;margin-bottom:5px}li span{font-size:14px;color:#52645c}li .arrival{color:#1b5944;text-align:right}footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:11px;color:#62736b;margin:26px 0}[hidden]{display:none!important}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media(max-width:400px){main{padding:24px 16px}.panel,.clearance{padding:23px}li{flex-direction:column;gap:5px}li .arrival{text-align:left}}

main:has(#login:not([hidden])){max-width:440px;padding-top:clamp(48px,12vh,112px)}
.login-panel label{margin-top:0}
#login-error:empty{display:none}
.staff-brand{display:flex;align-items:center;gap:12px}
.staff-logo{display:block;width:52px;height:52px;flex-shrink:0;object-fit:contain}

#lights-message:empty{display:none}
.lights-panel h2{margin:0}
.lights-panel #lights-state{margin-top:8px;font-size:14px}
footer{align-items:center}
@media(max-width:400px){.booking-card{padding:23px}.staff-logo{width:44px;height:44px}.staff-brand{gap:9px}header h1{font-size:25px}header>.quiet{font-size:12px}.booking-card li{flex-direction:row}}
main{max-width:520px}
.switch[data-locked=true]{cursor:not-allowed}
.lights-unavailable{display:flex;align-items:center;justify-content:center;width:74px;height:44px;color:#8b302e}

.login-panel label:not(:first-child){margin-top:20px}
.login-panel .remember{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:400;margin:20px 0}
.remember input{width:18px;height:18px;flex-shrink:0;padding:0;margin:0;accent-color:#173e30}
