.admin-dashboard,.admin-login-shell{min-height:100svh;color:var(--coal);background:var(--paper)}.admin-login-shell{position:relative;display:grid;place-items:center;padding:6rem 1.25rem 3rem;background:radial-gradient(circle at 82% 12%,rgba(224,165,27,.92) 0 12rem,transparent 12.1rem),linear-gradient(135deg,var(--blue-deep),#0b1c3c 62%,var(--coal))}.admin-back-link{position:absolute;top:1.5rem;left:clamp(1.25rem,5vw,4rem);color:var(--bone);font-size:.875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.admin-login-card{width:min(100%,33rem);padding:clamp(2rem,5vw,4rem);background:var(--bone);border:1px solid rgba(17,17,18,.2);border-radius:2.5rem .8rem 2.5rem .8rem;box-shadow:0 2rem 6rem rgba(0,0,0,.28)}.admin-login-card>img{width:10rem;margin-bottom:2.5rem}.admin-kicker{margin:0 0 .75rem;color:var(--blue);font-size:.875rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase}.admin-dashboard h1,.admin-dashboard h2,.admin-login-card h1{font-family:var(--display);text-transform:uppercase}.admin-login-card h1{margin:0;font-size:clamp(2.8rem,9vw,5rem);line-height:1;letter-spacing:-.065em}.admin-login-copy{margin:1.5rem 0 2.2rem;color:rgba(17,17,18,.68);font-size:1rem;line-height:1.55}.admin-login-card form{gap:1rem}.admin-login-card label{font-size:.875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.admin-login-card input{width:100%;padding:1rem .2rem;color:var(--coal);background:transparent;border:0;border-bottom:2px solid rgba(17,17,18,.35);outline:none}.admin-login-card input:focus{border-bottom-color:var(--blue)}.admin-login-card form>button:not(.admin-text-button){min-height:3.5rem;margin-top:.7rem;color:var(--bone);background:var(--coal);border:0;border-radius:999px;font-size:.875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.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{justify-self:center;padding:.4rem;color:var(--blue-deep);background:transparent;border:0;font-size:.875rem;font-weight:700;cursor:pointer}.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{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(1rem,3vw,2.5rem);align-items:center;padding-bottom:2rem;border-bottom:1px solid rgba(17,17,18,.2)}.admin-dashboard-header>a{width:clamp(7rem,13vw,10rem);padding:.7rem;background:var(--coal);border-radius:1.2rem .4rem 1.2rem .4rem}.admin-dashboard-header h1{margin:0;font-size:clamp(2.8rem,7vw,6rem);line-height:1;letter-spacing:-.065em}.admin-logout{padding:.75rem 1rem;color:var(--coal);background:transparent;border:1px solid rgba(17,17,18,.35);border-radius:999px;font-size:.875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.admin-toolbar{display:grid;grid-template-columns:1fr auto auto;gap:1.25rem;align-items:center;margin:2rem 0}.admin-summary{display:flex;align-items:baseline;gap:.45rem}.admin-summary strong{color:var(--ember);font:800 2rem/1 var(--display)}.admin-summary span{margin-right:1rem;color:rgba(17,17,18,.58);font-size:.875rem;font-weight:700;text-transform:uppercase}.admin-filter{display:flex;padding:.25rem;background:rgba(17,17,18,.07);border-radius:999px}.admin-filter button{padding:.65rem .85rem;color:rgba(17,17,18,.62);background:transparent;border:0;border-radius:999px;font-size:.875rem;font-weight:800;text-transform:uppercase;cursor:pointer}.admin-filter button.is-active{color:var(--bone);background:var(--blue-deep)}.admin-new-reservation button[type=submit],.admin-primary-button{min-height:3rem;padding:.75rem 1.1rem;color:var(--coal);background:var(--mustard);border:0;border-radius:999px;font-size:.875rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.admin-new-reservation{margin-bottom:2rem;padding:clamp(1.25rem,3vw,2.25rem);color:var(--bone);background:var(--blue-deep);border-radius:1.8rem .6rem 1.8rem .6rem}.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{display:grid;gap:.4rem;min-width:0;color:rgba(242,231,213,.72);font-size:.875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.admin-new-reservation input,.admin-new-reservation select,.admin-new-reservation textarea{width:100%;min-width:0;padding:.8rem;color:var(--bone);background:rgba(17,17,18,.35);border:1px solid rgba(242,231,213,.3);border-radius:.6rem}.admin-new-reservation .admin-notes-field{grid-column:1/-2}.admin-new-reservation button[type=submit]{align-self:end}.admin-dashboard-message{padding:.9rem 1rem;color:var(--blue-deep);background:rgba(224,165,27,.2);border-left:.3rem solid var(--mustard);font-size:.875rem}.admin-closures{margin:0 0 2rem;padding:clamp(1.25rem,3vw,2.25rem);border:1px solid rgba(17,17,18,.2);border-radius:1.8rem .6rem 1.8rem .6rem}.admin-closures-heading{display:flex;justify-content:space-between;align-items:center;gap:2rem}.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;align-items:center;justify-content:start;gap:1rem;margin:1.5rem 0}.admin-closures label{font-size:.875rem;font-weight:800}.admin-closures input{width:100%;min-width:0;padding:.8rem;font-size:1rem;border:1px solid rgba(17,17,18,.3);border-radius:.6rem;color:var(--coal);background:transparent}.admin-closures button:disabled{opacity:.5;cursor:not-allowed}.admin-closures-empty{margin:1rem 0 0;color:rgba(17,17,18,.65)}.admin-closed-dates{display:grid;gap:.5rem;margin:1.5rem 0 0;padding:0;list-style:none}.admin-closed-dates li{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:1rem;padding:1rem;border-top:1px solid rgba(17,17,18,.15)}.admin-closed-dates strong{font-size:1rem;text-transform:capitalize}.admin-closed-dates span{color:var(--ember);font-size:.875rem}.admin-calendar{margin-top:2rem;padding:clamp(1rem,3vw,2.25rem);border:1px solid rgba(17,17,18,.2);border-radius:1.8rem .6rem 1.8rem .6rem}.admin-calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:2rem}.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{display:grid;grid-template-columns:3rem 1fr 3rem;align-items:center;gap:.75rem;margin:2rem 0 1rem}.admin-calendar-navigation h3{margin:0;font:800 clamp(1.5rem,4vw,2.4rem)/1.2 var(--display);text-align:center;text-transform:capitalize}.admin-calendar-nav{width:3rem;height:3rem;display:grid;place-items:center;padding:0;color:var(--blue-deep);background:transparent;border:1px solid rgba(17,17,18,.25);border-radius:50%;cursor:pointer}.admin-calendar-status{min-height:1.5rem;font-size:.875rem}.admin-calendar-grid,.admin-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(.25rem,1vw,.75rem)}.admin-calendar-weekdays{margin-bottom:.5rem;color:rgba(17,17,18,.65);font-size:.875rem;font-weight:800;text-align:center}.admin-calendar-day{position:relative;min-width:0;min-height:6.5rem;display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;padding:clamp(.5rem,1vw,1rem);color:var(--coal);background:rgba(17,17,18,.025);border:1px solid rgba(17,17,18,.12);border-radius:.8rem;text-align:left;cursor:pointer}.admin-calendar-day>strong{font:800 1.35rem/1 var(--display)}.admin-calendar-day.has-reservations{background:rgba(224,165,27,.14);border-color:rgba(224,165,27,.65)}.admin-calendar-day.is-closed{color:var(--ember);border-color:var(--ember);border-style:dashed}.admin-calendar-day.is-today>strong{text-decoration:underline;text-underline-offset:.2rem}.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 rgba(17,17,18,.1)}.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{margin-top:auto;padding:.15rem .35rem;color:var(--coal);background:var(--mustard);border-radius:999px;font-weight:800}.admin-calendar-cancelled-mark{position:absolute;top:.6rem;right:.6rem;width:.45rem;height:.45rem;border-radius:50%;background:var(--ember)}.admin-calendar-closed-mark{position:absolute;bottom:.5rem;right:.6rem;font:800 1.3rem/1 sans-serif}.admin-calendar-legend{display:flex;flex-wrap:wrap;gap:.7rem 1.25rem;margin:1rem 0 0;font-size:.875rem}.admin-calendar-legend>span{display:inline-flex;align-items:center;gap:.4rem}.admin-calendar-legend i{width:.55rem;height:.55rem;display:inline-block;border-radius:50%}.admin-calendar-legend i.has-reservations{background:var(--mustard)}.admin-calendar-legend i.is-cancelled{background:var(--ember)}.admin-calendar-legend i.is-closed{width:.8rem;height:.8rem;border:1px dashed var(--ember);border-radius:.2rem}.admin-calendar-detail{margin-top:1.5rem;padding:clamp(1rem,2vw,1.5rem);color:var(--bone);background:var(--blue-deep);border-radius:1rem .4rem 1rem .4rem}.admin-calendar-detail[hidden]{display:none}.admin-calendar-detail>header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.admin-calendar-detail .admin-kicker{color:var(--mustard);font-size:.75rem}.admin-calendar-detail h3{margin:0;font:800 clamp(1.5rem,3vw,2.1rem)/1.2 var(--display);text-transform:capitalize}.admin-calendar-detail .admin-logout{color:var(--bone);border-color:rgba(242,231,213,.5)}.admin-calendar-closed-notice,.admin-calendar-day-summary{margin:1.25rem 0;font-size:.95rem;line-height:1.5}.admin-calendar-closed-notice{color:var(--mustard)}.admin-calendar-bookings{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.admin-calendar-bookings li{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:1rem;padding:1rem;background:rgba(242,231,213,.08);border-radius:.5rem}.admin-calendar-bookings strong{font-size:1.1rem;overflow-wrap:anywhere}.admin-calendar-bookings small{padding:.2rem .5rem;color:var(--coal);background:var(--mustard);border-radius:999px;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:transparent;border:1px solid}.admin-calendar-empty{margin:0;font-size:1rem}.admin-reservation-actions{display:flex;flex-wrap:wrap;gap:.5rem}.admin-delete-confirmation{padding:1rem;border:1px solid var(--ember);border-radius:.75rem}.admin-delete-confirmation p{margin:0 0 1rem;font-size:1rem;line-height:1.5;overflow-wrap:anywhere}.admin-edit-dialog{width:min(48rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);margin:auto;padding:clamp(1.25rem,3vw,2.25rem);color:var(--coal);background:var(--bone);border:1px solid rgba(17,17,18,.3);border-radius:1.8rem .6rem 1.8rem .6rem;overflow-y:auto}.admin-edit-dialog::backdrop{background:rgba(11,28,60,.75)}.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{font-size:1rem;line-height:1.5;overflow-wrap:anywhere}.admin-edit-dialog>header{display:flex;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1.5rem}.admin-edit-dialog h2{margin:0;font:800 clamp(2rem,5vw,3rem)/1 var(--display);text-transform:uppercase}.admin-edit-form fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;min-width:0;margin:0;padding:0;border:0}.admin-edit-form label{display:grid;gap:.4rem;min-width:0;font-size:.875rem;font-weight:800}.admin-edit-form input,.admin-edit-form select,.admin-edit-form textarea{width:100%;min-width:0;padding:.8rem;color:var(--coal);background:transparent;border:1px solid rgba(17,17,18,.3);border-radius:.6rem;font:inherit;font-size:1rem}.admin-edit-form .admin-edit-notify,.admin-edit-form .admin-edit-wide,.admin-edit-help{grid-column:1/-1}.admin-edit-help{margin:0;color:rgba(17,17,18,.7);font-size:.875rem;line-height:1.5}.admin-edit-form .admin-edit-notify{display:flex;align-items:center;gap:.65rem;line-height:1.4}.admin-edit-notify input{width:1.2rem;height:1.2rem;flex:0 0 auto;accent-color:var(--blue-deep)}.admin-edit-message{margin:1rem 0;color:var(--ember);font-size:.95rem;line-height:1.5}.admin-edit-actions{display:flex;flex-wrap:wrap;justify-content:end;gap:.75rem;margin-top:1.5rem}.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-group,.admin-reservation-list{display:grid;gap:.75rem}.admin-reservation-group-past{margin-top:2.5rem;padding-top:2rem;border-top:2px solid rgba(17,17,18,.16)}.admin-group-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;padding:0 .2rem .7rem}.admin-group-heading .admin-kicker{margin-bottom:.45rem}.admin-group-heading h2{margin:0;font-size:clamp(1.8rem,4vw,3rem);line-height:1;letter-spacing:-.035em}.admin-group-heading>span{display:grid;place-items:center;min-width:2.5rem;min-height:2.5rem;padding:.35rem;color:var(--bone);background:var(--blue-deep);border-radius:999px;font-weight:800}.admin-group-empty{padding:2rem 1.25rem;color:rgba(17,17,18,.62);border:1px dashed rgba(17,17,18,.25);border-radius:1rem;font-size:1rem}.admin-reservation-card{display:grid;grid-template-columns:minmax(12rem,.9fr) minmax(12rem,1fr) minmax(15rem,1.4fr) auto;gap:1.25rem;align-items:center;padding:1.25rem;border:1px solid rgba(17,17,18,.18);border-radius:1.2rem .4rem 1.2rem .4rem}.admin-reservation-contact,.admin-reservation-date,.admin-reservation-person{min-width:0}.admin-reservation-date{display:grid;gap:.25rem}.admin-reservation-date>span{width:fit-content;padding:.28rem .45rem;color:var(--bone);background:var(--blue);border-radius:999px;font-size:.875rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.admin-reservation-date strong{font-size:.95rem;text-transform:capitalize}.admin-reservation-date small{color:rgba(17,17,18,.55)}.admin-reservation-person h2{margin:0;font-size:1.45rem;line-height:1;letter-spacing:-.03em}.admin-reservation-contact p,.admin-reservation-person p{margin:.35rem 0 0;color:rgba(17,17,18,.63);font-size:.875rem}.admin-reservation-contact{display:grid;gap:.25rem;font-size:.875rem}.admin-reservation-contact a{overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:rgba(17,17,18,.28);text-underline-offset:.2em}.admin-cancel-button{padding:.7rem .9rem;color:var(--ember);background:transparent;border:1px solid rgba(214,59,34,.45);border-radius:999px;font-size:.875rem;font-weight:800;text-transform:uppercase;cursor:pointer}.admin-empty{min-height:18rem;display:grid;place-content:center;gap:.5rem;text-align:center;border:1px dashed rgba(17,17,18,.25);border-radius:1.5rem}.admin-empty strong{font:800 1.4rem/1 var(--display);text-transform:uppercase}.admin-empty span{color:rgba(17,17,18,.6);font-size:.875rem}@media (max-width:900px){.admin-calendar-bookings li{grid-template-columns:minmax(0,1fr) auto}.admin-calendar-heading,.admin-closures-heading{display:grid;gap:1rem}.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 (max-width:560px){.admin-edit-form fieldset{grid-template-columns:1fr}.admin-edit-dialog>header{flex-wrap:wrap}.admin-calendar-day{min-height:3.75rem;padding:.35rem;border-radius:.5rem}.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{top:.25rem;right:.25rem;width:.3rem;height:.3rem}.admin-calendar-closed-mark{right:.25rem;bottom:.25rem;font-size:.9rem}.admin-calendar-detail>header{align-items:flex-start;flex-direction:column}.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{width:fit-content;grid-column:1/-1}.admin-closed-dates li,.admin-closures form{grid-template-columns:1fr}.admin-closed-dates button{justify-self:start}.admin-login-shell{align-items:start}.admin-login-card{margin-top:2rem;padding:1.6rem;border-radius:1.7rem .5rem 1.7rem .5rem}.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{font-size:1rem;overflow-wrap:anywhere}.admin-login-card input{font-size:1rem}.admin-dashboard button:focus-visible,.admin-login-card button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}