:root{font-family:Arial,Helvetica,sans-serif;color:#243c32;background:#f6f5ef;font-size:16px;line-height:1.5;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,.button{font:inherit}button,.button{cursor:pointer;border:1px solid #d4d9ce;background:transparent;color:inherit;border-radius:8px;padding:10px 16px;text-decoration:none}button:hover,.button:hover{background:#e6eadf}button:disabled{cursor:wait;opacity:.6}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #749747;outline-offset:3px}[hidden]{display:none!important}header{max-width:1280px;margin:auto;padding:28px 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d9dfd4;gap:20px}.brand{text-decoration:none;font-weight:900;letter-spacing:-2px;font-size:30px;line-height:1}.brand span{color:#6c8057}.brand small{display:block;font-size:10px;letter-spacing:2px;margin-top:9px}#account{display:flex;align-items:center;gap:12px;font-size:14px;flex-wrap:wrap}main{max-width:1280px;padding:52px 48px;margin:auto}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:38px}.eyebrow{font-size:12px;letter-spacing:1.8px;font-weight:700;margin:0 0 10px;color:#67795b}h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(36px,5vw,64px);letter-spacing:-2px;line-height:1.12;margin:0 0 18px}h2{font-size:23px;font-weight:600;letter-spacing:-.5px;margin:0}p{margin:12px 0}.intro p:last-child{color:#6d7569}.room-mark{border:1px solid #cbd3c1;width:136px;height:136px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;transform:rotate(-8deg);background:#e8edd9}.room-mark span{font-family:Georgia,serif;font-size:58px;line-height:1}.room-mark small{font-size:10px;letter-spacing:2px;margin-top:12px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:28px}.agenda{background:#fff;border:1px solid #dce1d6;border-radius:14px;overflow:hidden;padding:28px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.subtle{font-size:14px;padding:9px 12px}.date-controls{display:flex;align-items:center;justify-content:space-between;margin:28px 0 20px;gap:12px}.date-controls label{display:flex;align-items:center;gap:12px;font-size:14px}.square{padding:8px 14px}.legend{display:flex;justify-content:space-between;border-top:1px solid #e9ece4;padding:18px 0;color:#788171;font-size:13px;gap:12px}.legend i{display:inline-block;width:8px;height:8px;border-radius:3px;background:#e0ba70;margin-right:5px}.day{display:grid;grid-template-columns:110px minmax(0,1fr);border-top:1px solid #e9ece4;padding:19px 0;gap:15px}.day-date{font-size:14px}.day-date strong{display:block;font-size:18px}.day-slots{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.slot{background:#faf1df;color:#785a25;border:1px solid #efe0bd;border-radius:7px;padding:7px 12px;font-size:14px}.empty-day{color:#6d7e60;font-size:14px}.reservation{background:#234c3d;color:#fff;border-radius:14px;padding:28px}.reservation .eyebrow{color:#ceddac}.reservation h2{font-family:Georgia,serif;font-size:30px;font-weight:400;margin-bottom:22px}.reservation p{color:#d5e0d5;font-size:14px}.reservation .metadata{color:#c3d1ba}.reservation label{display:block;font-size:14px;margin-bottom:15px}.reservation input{display:block;width:100%;margin-top:6px;background:#fff;color:#243c32}.times{display:grid;grid-template-columns:1fr 1fr;gap:12px}input{border:1px solid #d6dccf;padding:10px;border-radius:6px;min-width:0}input[type=date]{color-scheme:light}.primary{display:flex;justify-content:space-between;align-items:center;background:#dcec9c;color:#213e31;border:0;font-weight:600;width:100%;margin-top:20px;gap:10px}.primary:hover{background:#e8f5b6}.access-note{display:flex;gap:15px;padding:20px 10px;color:#737d6c;font-size:14px}.note-symbol{font-size:25px}.access-note p{margin:0}.metadata{font-size:12px;color:#7b8375}#sync{margin-bottom:0}.notice{border:1px solid #d5dfbd;background:#e9eedc;padding:14px 20px;border-radius:8px;margin-bottom:20px}.error{color:#9a3d2d;background:#faebe6}.admin{background:#fff;border:1px solid #dce1d6;border-radius:14px;padding:28px;margin-top:30px}.user-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid #e9ece4}.user-row small{display:block;color:#737d6c;font-size:13px}.user-actions{display:flex;gap:8px}.user-row strong{overflow-wrap:anywhere}.admin p{color:#737d6c}footer{max-width:1184px;margin:20px auto 0;padding:24px 0;border-top:1px solid #d9dfd4;display:flex;justify-content:space-between;font-size:13px;color:#737d6c}footer a{text-decoration:none}.state-box{padding:34px 15px;text-align:center;background:#f7f8f3;border-radius:8px}.state-box strong{display:block;margin-bottom:8px}.state-box p{font-size:14px;color:#737d6c}.reservation a{color:inherit}.reservation .primary{color:#213e31;text-decoration:none}.help{font-size:14px}#booking-message:empty{display:none}@media(max-width:900px){header{padding:24px}main{padding:35px 24px}.layout{grid-template-columns:minmax(0,1fr) 300px;gap:18px}.agenda,.reservation{padding:20px}.room-mark{width:100px;height:100px}.room-mark span{font-size:42px}footer{margin:20px 24px 0}}@media(max-width:720px){.layout{grid-template-columns:1fr}.intro{gap:12px}.room-mark{display:none}.intro p:last-child{max-width:290px}header{align-items:flex-start}.brand{font-size:26px}.brand small{font-size:9px}.section-head{align-items:flex-start;flex-wrap:wrap}.day{grid-template-columns:92px minmax(0,1fr)}.date-controls label{gap:7px;flex-wrap:wrap}.date-controls{gap:6px}.user-row{align-items:flex-start;flex-direction:column}footer{gap:20px;flex-wrap:wrap}h2{font-size:21px}}@media(prefers-reduced-motion:no-preference){button,.button{transition:background .15s ease}}
:root{--calendar-hour:40px}
.calendar-viewport{height:560px;max-width:100%;overflow:auto;border:1px solid #dce1d6;border-radius:9px;scrollbar-gutter:stable}
.calendar-grid{min-width:780px}
.calendar-header,.calendar-body{display:grid;grid-template-columns:58px repeat(7,minmax(0,1fr))}
.calendar-header{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid #dce1d6;min-height:64px}
.calendar-zone{display:flex;align-items:center;justify-content:center;font-size:12px;color:#788171}
.calendar-day-heading{padding:10px 4px;text-align:center;border-left:1px solid #e5e9df;font-size:14px}
.calendar-day-heading span{display:block;text-transform:capitalize;color:#6d7569}
.calendar-day-heading strong{display:block;font-size:16px}
.calendar-day-heading.is-today{background:#e8eedc;color:#234c3d}
.calendar-body{height:960px}
.calendar-hours{position:relative;background:#fbfcf8}
.calendar-hours span{position:absolute;right:7px;font-size:12px;color:#737d6c;padding-top:2px}
.calendar-column{position:relative;border-left:1px solid #e5e9df;background:repeating-linear-gradient(to bottom,transparent 0,transparent 19px,#f0f2eb 19px,#f0f2eb 20px,transparent 20px,transparent 39px,#dfe5d9 39px,#dfe5d9 40px)}
.calendar-column.is-today{background-color:#f8faf2}
.calendar-event{position:absolute;left:3px;right:3px;overflow:hidden;background:#f5e4be;border:1px solid #e2bf77;border-left:3px solid #c1933e;border-radius:5px;padding:2px 4px;color:#6e4e18;font-size:12px;line-height:1.25;z-index:1}
.calendar-event strong{display:block;font-size:13px}
.calendar-event:focus{outline:2px solid #234c3d;outline-offset:1px;z-index:2;min-height:40px;overflow:visible}
.calendar-empty{position:absolute;top:328px;left:0;right:0;text-align:center;color:#738564;font-size:13px;background:#ffffffb0;padding:3px}
@media(max-width:720px){.calendar-viewport{height:480px}.calendar-grid{min-width:760px}.agenda{min-width:0}.calendar-viewport:focus-visible{outline:3px solid #749747;outline-offset:2px}}
.layout.admin-layout{grid-template-columns:minmax(0,1fr)}
.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 20px;padding-bottom:12px;border-bottom:1px solid #dce1d6}
.admin-tabs button[aria-selected=true]{background:#234c3d;color:white;border-color:#234c3d}
.admin-tabs span{margin-left:4px;font-weight:700}
[role=tabpanel]{min-width:0}
[role=tabpanel] .user-actions{flex-wrap:wrap}
.calendar-column.is-closed{background-color:#ecefe8}
.calendar-column:not(.is-closed){background-image:linear-gradient(to bottom,#e9ede580 0,#e9ede580 360px,transparent 360px,transparent 720px,#e9ede580 720px,#e9ede580 960px),repeating-linear-gradient(to bottom,transparent 0,transparent 19px,#f0f2eb 19px,#f0f2eb 20px,transparent 20px,transparent 39px,#dfe5d9 39px,#dfe5d9 40px)}
select{font:inherit;border:1px solid #d6dccf;padding:10px;border-radius:6px;min-width:0}
.reservation select{display:block;width:100%;margin-top:6px;background:#fff;color:#243c32}
select:focus-visible{outline:3px solid #749747;outline-offset:3px}
.calendar-column:not(.is-closed){background-image:linear-gradient(to bottom,#d2d5d0 0,#d2d5d0 360px,transparent 360px,transparent 740px,#d2d5d0 740px,#d2d5d0 960px),repeating-linear-gradient(to bottom,transparent 0,transparent 19px,#f0f2eb 19px,#f0f2eb 20px,transparent 20px,transparent 39px,#dfe5d9 39px,#dfe5d9 40px)}
.calendar-column.is-closed{background-color:#d2d5d0}
.legend .closed-key{background:#d2d5d0;border:1px solid #b4bbb1}
.legend{flex-wrap:wrap}
.calendar-viewport{height:auto;overflow-x:auto;overflow-y:hidden;scrollbar-gutter:auto}
.calendar-header{position:static}
.calendar-body{height:400px;grid-template-rows:380px}
.calendar-column{overflow:hidden}
.calendar-column:not(.is-closed){background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 19px,#f0f2eb 19px,#f0f2eb 20px,transparent 20px,transparent 39px,#dfe5d9 39px,#dfe5d9 40px)}
.calendar-empty{top:8px}
.calendar-day-picker{display:none}
@media(max-width:720px){
  header{padding:18px 16px;gap:12px;flex-wrap:wrap}
  main{padding:28px 16px}
  .intro{margin-bottom:24px}
  .agenda,.reservation,.admin{padding:18px 14px}
  .layout{gap:18px}
  #account{max-width:100%;overflow-wrap:anywhere}
  button,.button,input,select{min-height:44px}
  input,select{font-size:16px}
  .calendar-day-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin-bottom:12px}
  .calendar-day-picker button{padding:6px 0;border-radius:7px;font-size:12px;line-height:1.4}
  .calendar-day-picker span,.calendar-day-picker strong{display:block}
  .calendar-day-picker strong{font-size:16px}
  .calendar-day-picker button[aria-pressed=true]{background:#234c3d;color:white;border-color:#234c3d}
  .calendar-grid{min-width:0;width:100%}
  .calendar-header,.calendar-body{grid-template-columns:54px minmax(0,1fr)}
  .calendar-day-heading:not(.active-day),.calendar-column:not(.active-day){display:none}
  .calendar-viewport{height:auto;overflow:hidden}
  .calendar-event{font-size:14px;padding-left:8px}
  .calendar-event strong{font-size:14px}
  .calendar-day-heading strong{font-size:18px}
  .date-controls{flex-wrap:wrap}
  .date-controls label{justify-content:center;flex:1;min-width:0}
  .date-controls input{max-width:100%}
  .admin-tabs{gap:6px}
  .admin-tabs button{flex:1;padding:10px 8px;font-size:14px}
  .user-actions{width:100%}
  .user-actions button{flex:1;min-width:100px}
  footer{margin:16px 16px 0}
}
