:root{--ink:#17221e;--muted:#64716b;--paper:#f5f4ef;--card:#ffffff;--line:#dce2de;--green:#16875f;--green-dark:#0b6243;--red:#d94a4a;--navy:#101917}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper)}button,input,select{font:inherit;min-height:48px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--green-dark)}h1,h2,p{margin-top:0}label{display:grid;grid-gap:7px;gap:7px;font-size:14px;font-weight:700;color:#3b4742}input,select{width:100%;border:1px solid #cbd4cf;border-radius:10px;padding:10px 12px;color:var(--ink);background:white}button:focus-visible,input:focus,select:focus{outline:3px solid rgba(22,135,95,.22);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.eyebrow,.room-kicker{display:block;color:var(--green);font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}.notice-card button,.primary-button,.row-actions button,.secondary-button,.text-button{border:0;border-radius:10px;padding:11px 18px;font-weight:750}.primary-button{color:white;background:var(--green)}.primary-button:hover{background:var(--green-dark)}.secondary-button{color:var(--ink);background:#e8ece9}.text-button{color:var(--muted);background:transparent}.danger-button{color:#a12c2c!important;background:#fdeaea!important}.error-message,.success-message{margin:14px 0 0;padding:12px 14px;border-radius:9px;font-size:14px}.success-message{color:#075b3e;background:#dcf6ea}.error-message{color:#8c2727;background:#ffe6e6}.empty-state{color:var(--muted);margin:8px 0 0}.centered-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card,.notice-card{width:min(460px,100%);padding:28px;border:1px solid var(--line);border-radius:18px;background:white;box-shadow:0 18px 45px rgba(34,50,44,.08)}.public-page{min-height:100vh;display:grid;grid-template-columns:minmax(280px,.85fr) minmax(460px,1.15fr);grid-gap:clamp(30px,7vw,110px);gap:clamp(30px,7vw,110px);align-items:center;max-width:1220px;margin:0 auto;padding:56px 40px}.public-intro h1{max-width:620px;font-size:clamp(42px,6vw,78px);line-height:.98;letter-spacing:-.055em;margin-bottom:26px}.public-intro p{max-width:530px;color:var(--muted);font-size:18px;line-height:1.6}.event-date{display:inline-flex;margin-top:10px;padding:11px 14px;border:1px solid #b9c9c1;border-radius:999px;font-weight:700}.form-card{padding:clamp(22px,4vw,38px);border-radius:24px;background:var(--card);box-shadow:0 24px 80px rgba(37,56,48,.12)}.booking-form{display:grid;grid-gap:18px;gap:18px}.booking-form h2{margin-bottom:0;font-size:28px}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.slot-fieldset{margin:0;padding:0;border:0}.slot-fieldset legend{margin-bottom:10px;color:#3b4742;font-size:14px;font-weight:700}.slot-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.slot-option{min-height:48px;display:grid;place-items:center;border:1px solid #cdd8d2;border-radius:9px;font-size:15px;font-weight:750;cursor:pointer}.slot-option.selected,.slot-option:hover{border-color:var(--green)}.slot-option.selected{color:white;background:var(--green)}.slot-option input{position:absolute;opacity:0;width:1px;min-height:1px}.room-page{min-height:100vh;padding:clamp(24px,4vw,54px);color:#f7fbf9;background:radial-gradient(circle at 80% 0,#223a32 0,#101917 46%,#090f0d 100%);display:grid;grid-template-columns:minmax(270px,.8fr) minmax(390px,1.2fr);grid-template-rows:auto 1fr auto;grid-gap:28px 48px;gap:28px 48px}.room-loading{display:grid;place-items:center;font-size:24px}.room-header{grid-column:1/-1;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:20px}.room-header h1{font-size:clamp(30px,4vw,54px);margin:0;letter-spacing:-.035em}.room-header time{font-size:clamp(24px,3vw,40px);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700}.room-kicker{color:#8fa69e}.room-status{min-height:310px;align-self:stretch;display:flex;align-items:center;gap:25px;padding:clamp(24px,4vw,48px);border-radius:26px;border:1px solid rgba(255,255,255,.1)}.room-status.free{background:linear-gradient(145deg,rgba(21,155,105,.3),rgba(12,81,57,.14))}.room-status.busy{background:linear-gradient(145deg,rgba(217,74,74,.3),rgba(111,29,29,.14))}.status-dot{width:24px;height:24px;flex:0 0 auto;border-radius:50%;background:#30d696;box-shadow:0 0 0 11px rgba(48,214,150,.14);align-self:flex-start;margin-top:21px}.busy .status-dot{background:#ff6666;box-shadow:0 0 0 11px rgba(255,102,102,.14)}.room-status p{color:#aab9b4;font-size:18px;margin-bottom:8px}.room-status strong{display:block;color:#38e4a3;font-size:clamp(52px,5.4vw,76px);letter-spacing:-.055em;line-height:.95}.room-status.busy strong{color:#ff7373}.room-status small{display:block;margin-top:18px;font-size:clamp(20px,2.5vw,32px)}.room-schedule{align-self:stretch;padding:5px 0}.room-schedule h2{color:#bac7c2;font-size:18px;letter-spacing:.03em}.timeline{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px}.timeline-slot{min-height:70px;display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-radius:12px;background:rgba(255,255,255,.07);border-left:5px solid #33d498;width:100%;color:inherit;border-top:0;border-right:0;border-bottom:0;text-align:left}.timeline-slot.bookable:hover{background:rgba(51,212,152,.14);transform:translateY(-1px)}.timeline-slot.bookable:focus-visible{outline-color:rgba(63,224,165,.65)}.timeline-slot.occupied{border-left-color:#ef5d5d}.timeline-slot.past{opacity:.45}.timeline-slot b{font-size:22px}.timeline-slot span{color:#a8b8b2}.room-book-button{grid-column:1/-1;min-height:74px;border:0;border-radius:16px;color:#07271b;background:#3fe0a5;font-size:24px;font-weight:850}.room-book-button:hover{background:#62edba}.connection-error{position:fixed;top:16px;left:50%;z-index:5;transform:translateX(-50%);padding:10px 16px;border-radius:8px;color:white;background:#a73333}.empty-state.dark{color:#aab9b4}.admin-login-page{background:#eef1ee}.login-card{display:grid;grid-gap:18px;gap:18px}.login-card h1{margin-bottom:4px}.admin-page{max-width:1380px;min-height:100vh;margin:0 auto;padding:40px}.admin-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:30px}.admin-header h1{margin-bottom:6px;font-size:46px;letter-spacing:-.04em}.admin-header p{color:var(--muted);margin:0}.admin-header-actions{display:flex;align-items:center;gap:8px}.admin-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:16px}.admin-toolbar label{width:min(300px,100%)}.admin-toolbar span{color:var(--muted)}.table-card{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:white}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}td,th{padding:16px 14px;border-bottom:1px solid #e7ebe8;text-align:left;vertical-align:middle}th{color:var(--muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase;background:#f7f8f6}tbody tr:last-child td{border-bottom:0}.row-actions{display:flex;justify-content:flex-end;gap:7px}.row-actions button{min-height:42px;color:#255142;background:#edf4f0;white-space:nowrap}.empty-admin{padding:60px 25px;color:var(--muted);text-align:center}.form-context{color:var(--muted);margin:-6px 0 2px}.button-row{display:flex;justify-content:flex-end;gap:10px}.modal-backdrop{position:fixed;inset:0;z-index:20;overflow-y:auto;display:grid;place-items:center;padding:24px;background:rgba(3,10,8,.72)}.modal-card{position:relative;width:min(620px,100%);max-height:calc(100vh - 48px);overflow-y:auto;padding:32px;border-radius:20px;color:var(--ink);background:white;box-shadow:0 30px 90px rgba(0,0,0,.35)}.close-button{position:absolute;top:14px;right:14px;z-index:2;min-width:48px;border:0;border-radius:50%;color:#53625c;background:#edf0ee;font-size:28px}.room-modal{width:min(720px,100%)}@media (max-width:850px){.public-page{grid-template-columns:1fr;align-items:start;padding:34px 20px;gap:30px}.public-intro h1{font-size:clamp(42px,13vw,66px)}.room-page{grid-template-columns:1fr;grid-template-rows:auto auto auto auto;padding:24px;gap:20px}.room-header{grid-column:1}.room-status{min-height:220px}.room-book-button{grid-column:1}.admin-page{padding:24px 16px}.admin-header{align-items:flex-start}.admin-header h1{font-size:36px}table,tbody,td,th,thead,tr{display:block}thead{display:none}tbody tr{padding:13px 14px;border-bottom:1px solid var(--line)}tbody tr:last-child{border-bottom:0}td{display:grid;grid-template-columns:105px 1fr;padding:6px 0;border:0}td:before{content:attr(data-label);color:var(--muted);font-size:12px;text-transform:uppercase}td.row-actions{display:flex;justify-content:stretch;padding-top:12px}.row-actions button{flex:1 1}}@media (max-width:560px){.form-row,.slot-grid,.timeline{grid-template-columns:repeat(2,1fr)}.form-card,.modal-card{padding:22px 18px;border-radius:16px}.public-page{padding-inline:14px}.admin-header{display:grid}.admin-header-actions{width:100%;justify-content:space-between}.admin-toolbar{align-items:stretch;flex-direction:column}.admin-toolbar label{width:100%}.room-header time{font-size:21px}.room-status strong{font-size:60px}.timeline-slot{padding:12px;display:grid;grid-gap:4px;gap:4px}}