.admin-login-shell,.admin-dashboard{min-height:100svh;color:var(--coal);background:var(--paper)}.admin-login-shell{background:radial-gradient(circle at 82% 12%, #e0a51beb 0 12rem, transparent 12.1rem), linear-gradient(135deg, var(--blue-deep), #0b1c3c 62%, var(--coal));place-items:center;padding:6rem 1.25rem 3rem;display:grid;position:relative}.admin-back-link{color:var(--bone);letter-spacing:.1em;text-transform:uppercase;font-size:.875rem;font-weight:800;position:absolute;top:1.5rem;left:clamp(1.25rem,5vw,4rem)}.admin-login-card{background:var(--bone);border:1px solid #11111233;border-radius:2.5rem .8rem;width:min(100%,33rem);padding:clamp(2rem,5vw,4rem);box-shadow:0 2rem 6rem #00000047}.admin-login-card>img{width:10rem;margin-bottom:2.5rem}.admin-kicker{color:var(--blue);letter-spacing:.17em;text-transform:uppercase;margin:0 0 .75rem;font-size:.875rem;font-weight:800}.admin-login-card h1,.admin-dashboard h1,.admin-dashboard h2{font-family:var(--display);text-transform:uppercase}.admin-login-card h1{letter-spacing:-.065em;margin:0;font-size:clamp(2.8rem,9vw,5rem);line-height:1}.admin-login-copy{color:#111112ad;margin:1.5rem 0 2.2rem;font-size:1rem;line-height:1.55}.admin-login-card form{gap:1rem}.admin-login-card label{letter-spacing:.1em;text-transform:uppercase;font-size:.875rem;font-weight:800}.admin-login-card input{width:100%;color:var(--coal);background:0 0;border:0;border-bottom:2px solid #11111259;outline:none;padding:1rem .2rem}.admin-login-card input:focus{border-bottom-color:var(--blue)}.admin-login-card form>button:not(.admin-text-button){min-height:3.5rem;color:var(--bone);background:var(--coal);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border:0;border-radius:999px;margin-top:.7rem;font-size:.875rem;font-weight:800}.admin-login-card button:disabled{opacity:.5;cursor:not-allowed}.admin-code-input{font:800 2rem/1 var(--display);letter-spacing:.35em;text-align:center}.admin-text-button{color:var(--blue-deep);cursor:pointer;background:0 0;border:0;justify-self:center;padding:.4rem;font-size:.875rem;font-weight:700}.admin-message,.admin-status{margin:1.2rem 0 0;font-size:.875rem;line-height:1.5}.admin-dashboard{padding:clamp(1.25rem,4vw,4rem)}.admin-dashboard-header{border-bottom:1px solid #11111233;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(1rem,3vw,2.5rem);padding-bottom:2rem;display:grid}.admin-dashboard-header>a{background:var(--coal);border-radius:1.2rem .4rem;width:clamp(7rem,13vw,10rem);padding:.7rem}.admin-dashboard-header h1{letter-spacing:-.065em;margin:0;font-size:clamp(2.8rem,7vw,6rem);line-height:1}.admin-logout{color:var(--coal);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #11111259;border-radius:999px;padding:.75rem 1rem;font-size:.875rem;font-weight:800}.admin-toolbar{grid-template-columns:1fr auto auto;align-items:center;gap:1.25rem;margin:2rem 0;display:grid}.admin-summary{align-items:baseline;gap:.45rem;display:flex}.admin-summary strong{color:var(--ember);font:800 2rem/1 var(--display)}.admin-summary span{color:#11111294;text-transform:uppercase;margin-right:1rem;font-size:.875rem;font-weight:700}.admin-filter{background:#11111212;border-radius:999px;padding:.25rem;display:flex}.admin-filter button{color:#1111129e;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.65rem .85rem;font-size:.875rem;font-weight:800}.admin-filter button.is-active{color:var(--bone);background:var(--blue-deep)}.admin-primary-button,.admin-new-reservation button[type=submit]{min-height:3rem;color:var(--coal);background:var(--mustard);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:0;border-radius:999px;padding:.75rem 1.1rem;font-size:.875rem;font-weight:800}.admin-new-reservation{color:var(--bone);background:var(--blue-deep);border-radius:1.8rem .6rem;margin-bottom:2rem;padding:clamp(1.25rem,3vw,2.25rem)}.admin-new-reservation h2{margin:0 0 1.4rem;font-size:clamp(2rem,4vw,3.5rem);line-height:.9}.admin-new-reservation form{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.admin-new-reservation label{color:#f2e7d5b8;letter-spacing:.1em;text-transform:uppercase;gap:.4rem;min-width:0;font-size:.875rem;font-weight:800;display:grid}.admin-new-reservation input,.admin-new-reservation select,.admin-new-reservation textarea{width:100%;min-width:0;color:var(--bone);background:#11111259;border:1px solid #f2e7d54d;border-radius:.6rem;padding:.8rem}.admin-new-reservation .admin-notes-field{grid-column:1/-2}.admin-new-reservation button[type=submit]{align-self:end}.admin-dashboard-message{color:var(--blue-deep);border-left:.3rem solid var(--mustard);background:#e0a51b33;padding:.9rem 1rem;font-size:.875rem}.admin-closures{border:1px solid #11111233;border-radius:1.8rem .6rem;margin:0 0 2rem;padding:clamp(1.25rem,3vw,2.25rem)}.admin-closures-heading{justify-content:space-between;align-items:center;gap:2rem;display:flex}.admin-closures h2{margin:0;font-size:clamp(2rem,4vw,3.5rem);line-height:1}.admin-closures-heading>p{max-width:36rem;margin:0;font-size:1rem;line-height:1.5}.admin-closures form{grid-template-columns:auto minmax(10rem,18rem) auto;justify-content:start;align-items:center;gap:1rem;margin:1.5rem 0}.admin-closures label{font-size:.875rem;font-weight:800}.admin-closures input{width:100%;min-width:0;color:var(--coal);background:0 0;border:1px solid #1111124d;border-radius:.6rem;padding:.8rem;font-size:1rem}.admin-closures button:disabled{opacity:.5;cursor:not-allowed}.admin-closures-empty{color:#111112a6;margin:1rem 0 0}.admin-closed-dates{gap:.5rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.admin-closed-dates li{border-top:1px solid #11111226;grid-template-columns:1fr 1fr auto;align-items:center;gap:1rem;padding:1rem;display:grid}.admin-closed-dates strong{text-transform:capitalize;font-size:1rem}.admin-closed-dates span{color:var(--ember);font-size:.875rem}.admin-calendar{border:1px solid #11111233;border-radius:1.8rem .6rem;margin-top:2rem;padding:clamp(1rem,3vw,2.25rem)}.admin-calendar-heading{justify-content:space-between;align-items:center;gap:2rem;display:flex}.admin-calendar-heading h2{margin:0;font-size:clamp(2rem,4vw,3.5rem);line-height:1}.admin-calendar-heading>p{max-width:33rem;margin:0;font-size:1rem;line-height:1.5}.admin-calendar-navigation{grid-template-columns:3rem 1fr 3rem;align-items:center;gap:.75rem;margin:2rem 0 1rem;display:grid}.admin-calendar-navigation h3{font:800 clamp(1.5rem, 4vw, 2.4rem)/1.2 var(--display);text-align:center;text-transform:capitalize;margin:0}.admin-calendar-nav{width:3rem;height:3rem;color:var(--blue-deep);cursor:pointer;background:0 0;border:1px solid #11111240;border-radius:50%;place-items:center;padding:0;display:grid}.admin-calendar-status{min-height:1.5rem;font-size:.875rem}.admin-calendar-weekdays,.admin-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(.25rem,1vw,.75rem);display:grid}.admin-calendar-weekdays{color:#111112a6;text-align:center;margin-bottom:.5rem;font-size:.875rem;font-weight:800}.admin-calendar-day{min-width:0;min-height:6.5rem;color:var(--coal);text-align:left;cursor:pointer;background:#11111206;border:1px solid #1111121f;border-radius:.8rem;flex-direction:column;align-items:flex-start;gap:.3rem;padding:clamp(.5rem,1vw,1rem);display:flex;position:relative}.admin-calendar-day>strong{font:800 1.35rem/1 var(--display)}.admin-calendar-day.has-reservations{background:#e0a51b24;border-color:#e0a51ba6}.admin-calendar-day.is-closed{color:var(--ember);border-color:var(--ember);border-style:dashed}.admin-calendar-day.is-today>strong{text-underline-offset:.2rem;text-decoration:underline}.admin-calendar-day.is-expanded{color:var(--bone);background:var(--blue-deep);border-color:var(--blue-deep)}.admin-calendar-day:hover:not(:disabled){border-color:var(--blue);box-shadow:0 .2rem .6rem #1111121a}.admin-calendar-day:disabled{opacity:.5;cursor:wait}.admin-calendar-day-count,.admin-calendar-day-seats{font-size:.875rem;line-height:1.2}.admin-calendar-day-count{color:var(--coal);background:var(--mustard);border-radius:999px;margin-top:auto;padding:.15rem .35rem;font-weight:800}.admin-calendar-cancelled-mark{background:var(--ember);border-radius:50%;width:.45rem;height:.45rem;position:absolute;top:.6rem;right:.6rem}.admin-calendar-closed-mark{font:800 1.3rem/1 sans-serif;position:absolute;bottom:.5rem;right:.6rem}.admin-calendar-legend{flex-wrap:wrap;gap:.7rem 1.25rem;margin:1rem 0 0;font-size:.875rem;display:flex}.admin-calendar-legend>span{align-items:center;gap:.4rem;display:inline-flex}.admin-calendar-legend i{border-radius:50%;width:.55rem;height:.55rem;display:inline-block}.admin-calendar-legend i.has-reservations{background:var(--mustard)}.admin-calendar-legend i.is-cancelled{background:var(--ember)}.admin-calendar-legend i.is-closed{border:1px dashed var(--ember);border-radius:.2rem;width:.8rem;height:.8rem}.admin-calendar-detail{color:var(--bone);background:var(--blue-deep);border-radius:1rem .4rem;margin-top:1.5rem;padding:clamp(1rem,2vw,1.5rem)}.admin-calendar-detail[hidden]{display:none}.admin-calendar-detail>header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.admin-calendar-detail .admin-kicker{color:var(--mustard);font-size:.75rem}.admin-calendar-detail h3{font:800 clamp(1.5rem, 3vw, 2.1rem)/1.2 var(--display);text-transform:capitalize;margin:0}.admin-calendar-detail .admin-logout{color:var(--bone);border-color:#f2e7d580}.admin-calendar-day-summary,.admin-calendar-closed-notice{margin:1.25rem 0;font-size:.95rem;line-height:1.5}.admin-calendar-closed-notice{color:var(--mustard)}.admin-calendar-bookings{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.admin-calendar-bookings li{background:#f2e7d514;border-radius:.5rem;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:1rem;padding:1rem;display:grid}.admin-calendar-bookings strong{overflow-wrap:anywhere;font-size:1.1rem}.admin-calendar-bookings small{color:var(--coal);background:var(--mustard);border-radius:999px;padding:.2rem .5rem;font-size:.75rem;font-weight:800}.admin-calendar-bookings li.is-cancelled{opacity:.75}.admin-calendar-bookings li.is-cancelled small{color:var(--bone);background:0 0;border:1px solid}.admin-calendar-empty{margin:0;font-size:1rem}.admin-reservation-actions{flex-wrap:wrap;gap:.5rem;display:flex}.admin-delete-confirmation{border:1px solid var(--ember);border-radius:.75rem;padding:1rem}.admin-delete-confirmation p{overflow-wrap:anywhere;margin:0 0 1rem;font-size:1rem;line-height:1.5}.admin-edit-dialog{width:min(48rem,100vw - 2rem);max-height:calc(100dvh - 2rem);color:var(--coal);background:var(--bone);border:1px solid #1111124d;border-radius:1.8rem .6rem;margin:auto;padding:clamp(1.25rem,3vw,2.25rem);overflow-y:auto}.admin-edit-dialog::backdrop{background:#0b1c3cbf}.admin-cancellation-dialog{max-width:34rem}.admin-cancellation-dialog h2{margin:0 0 1.5rem;font-size:clamp(1.8rem,5vw,3rem);line-height:1.1}.admin-cancellation-dialog p{overflow-wrap:anywhere;font-size:1rem;line-height:1.5}.admin-edit-dialog>header{justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1.5rem;display:flex}.admin-edit-dialog h2{font:800 clamp(2rem, 5vw, 3rem)/1 var(--display);text-transform:uppercase;margin:0}.admin-edit-form fieldset{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;min-width:0;margin:0;padding:0;display:grid}.admin-edit-form label{gap:.4rem;min-width:0;font-size:.875rem;font-weight:800;display:grid}.admin-edit-form input,.admin-edit-form select,.admin-edit-form textarea{width:100%;min-width:0;color:var(--coal);font:inherit;background:0 0;border:1px solid #1111124d;border-radius:.6rem;padding:.8rem;font-size:1rem}.admin-edit-form .admin-edit-wide,.admin-edit-help,.admin-edit-form .admin-edit-notify{grid-column:1/-1}.admin-edit-help{color:#111112b3;margin:0;font-size:.875rem;line-height:1.5}.admin-edit-form .admin-edit-notify{align-items:center;gap:.65rem;line-height:1.4;display:flex}.admin-edit-notify input{width:1.2rem;height:1.2rem;accent-color:var(--blue-deep);flex:none}.admin-edit-message{color:var(--ember);margin:1rem 0;font-size:.95rem;line-height:1.5}.admin-edit-actions{flex-wrap:wrap;justify-content:end;gap:.75rem;margin-top:1.5rem;display:flex}.admin-edit-dialog button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.admin-edit-dialog button:disabled{opacity:.5;cursor:not-allowed}.admin-reservation-list,.admin-reservation-group{gap:.75rem;display:grid}.admin-reservation-group-past{border-top:2px solid #11111229;margin-top:2.5rem;padding-top:2rem}.admin-group-heading{justify-content:space-between;align-items:end;gap:1rem;padding:0 .2rem .7rem;display:flex}.admin-group-heading .admin-kicker{margin-bottom:.45rem}.admin-group-heading h2{letter-spacing:-.035em;margin:0;font-size:clamp(1.8rem,4vw,3rem);line-height:1}.admin-group-heading>span{min-width:2.5rem;min-height:2.5rem;color:var(--bone);background:var(--blue-deep);border-radius:999px;place-items:center;padding:.35rem;font-weight:800;display:grid}.admin-group-empty{color:#1111129e;border:1px dashed #11111240;border-radius:1rem;padding:2rem 1.25rem;font-size:1rem}.admin-reservation-card{border:1px solid #1111122e;border-radius:1.2rem .4rem;grid-template-columns:minmax(12rem,.9fr) minmax(12rem,1fr) minmax(15rem,1.4fr) auto;align-items:center;gap:1.25rem;padding:1.25rem;display:grid}.admin-reservation-date,.admin-reservation-person,.admin-reservation-contact{min-width:0}.admin-reservation-date{gap:.25rem;display:grid}.admin-reservation-date>span{width:fit-content;color:var(--bone);background:var(--blue);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:.28rem .45rem;font-size:.875rem;font-weight:800}.admin-reservation-date strong{text-transform:capitalize;font-size:.95rem}.admin-reservation-date small{color:#1111128c}.admin-reservation-person h2{letter-spacing:-.03em;margin:0;font-size:1.45rem;line-height:1}.admin-reservation-person p,.admin-reservation-contact p{color:#111112a1;margin:.35rem 0 0;font-size:.875rem}.admin-reservation-contact{gap:.25rem;font-size:.875rem;display:grid}.admin-reservation-contact a{overflow-wrap:anywhere;text-underline-offset:.2em;-webkit-text-decoration:underline #11111247;text-decoration:underline #11111247}.admin-cancel-button{color:var(--ember);text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #d63b2273;border-radius:999px;padding:.7rem .9rem;font-size:.875rem;font-weight:800}.admin-empty{text-align:center;border:1px dashed #11111240;border-radius:1.5rem;place-content:center;gap:.5rem;min-height:18rem;display:grid}.admin-empty strong{font:800 1.4rem/1 var(--display);text-transform:uppercase}.admin-empty span{color:#11111299;font-size:.875rem}@media (width<=900px){.admin-calendar-bookings li{grid-template-columns:minmax(0,1fr) auto}.admin-calendar-heading,.admin-closures-heading{gap:1rem;display:grid}.admin-toolbar{grid-template-columns:1fr}.admin-filter{width:fit-content}.admin-new-reservation form{grid-template-columns:1fr 1fr}.admin-new-reservation .admin-notes-field{grid-column:1/-1}.admin-reservation-card{grid-template-columns:1fr 1fr}.admin-reservation-contact{grid-column:1/-1}.admin-cancel-button{justify-self:start}}@media (width<=560px){.admin-edit-form fieldset{grid-template-columns:1fr}.admin-edit-dialog>header{flex-wrap:wrap}.admin-calendar-day{border-radius:.5rem;min-height:3.75rem;padding:.35rem}.admin-calendar-day>strong{font-size:1.05rem}.admin-calendar-day-count{font-size:.875rem}.admin-calendar-count-word,.admin-calendar-day-seats{display:none}.admin-calendar-weekdays{font-size:.75rem}.admin-calendar-cancelled-mark{width:.3rem;height:.3rem;top:.25rem;right:.25rem}.admin-calendar-closed-mark{font-size:.9rem;bottom:.25rem;right:.25rem}.admin-calendar-detail>header{flex-direction:column;align-items:flex-start}.admin-calendar-detail .admin-logout{align-self:flex-start}.admin-calendar-bookings li{grid-template-columns:minmax(0,1fr) auto;gap:.5rem}.admin-calendar-bookings small{grid-column:1/-1;width:fit-content}.admin-closures form,.admin-closed-dates li{grid-template-columns:1fr}.admin-closed-dates button{justify-self:start}.admin-login-shell{align-items:start}.admin-login-card{border-radius:1.7rem .5rem;margin-top:2rem;padding:1.6rem}.admin-dashboard-header{grid-template-columns:auto 1fr}.admin-dashboard-header>div{min-width:0}.admin-dashboard-header h1{font-size:2.45rem}.admin-logout{grid-column:1/-1;justify-self:end}.admin-summary{flex-wrap:wrap}.admin-filter{width:100%}.admin-filter button{flex:1}.admin-new-reservation form,.admin-reservation-card{grid-template-columns:1fr}.admin-new-reservation .admin-notes-field,.admin-reservation-contact{grid-column:1}}.admin-login-card form,.admin-new-reservation form{display:grid}.admin-code-recipient{overflow-wrap:anywhere;font-size:1rem}.admin-login-card input{font-size:1rem}.admin-login-card button:focus-visible,.admin-dashboard button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
