:root{--green:#176b50;--dark:#17251f;--orange:#d56c4b;--muted:#6f7973;--cream:#f3f0e8;--line:#dde1dc}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fafaf7;color:var(--dark);font-family:Arial,sans-serif}button,input,select{font:inherit}button,a{touch-action:manipulation}.site-header{height:78px;padding:0 7vw;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;background:#fafaf7;border-bottom:1px solid #e7e5dd}.brand{display:flex;align-items:center;gap:10px;color:var(--green);font:700 18px/1.1 Georgia,serif;text-decoration:none}.brand img{width:36px;height:36px;object-fit:contain}.site-header nav{display:flex;gap:8px}.site-header nav>a{padding:11px 15px;border-radius:999px;color:#52605a;font-size:12px;font-weight:700;text-decoration:none;transition:.2s}.site-header nav>a:hover,.site-header nav>a.active{color:var(--green);background:#e8f2ec;box-shadow:0 7px 18px #176b5017;transform:translateY(-1px)}.user{display:flex;align-items:center;gap:10px;font-size:12px}.user i{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e8f2ec;color:var(--green);font-style:normal}.user form{margin:0}.user button,.mobile-logout button{height:34px;padding:0 13px;border:1px solid #d6d9d3;background:#fff;color:var(--green);border-radius:3px;font-size:10px;font-weight:700;cursor:pointer}.menu-toggle,.mobile-logout{display:none}.page{padding:32px 7vw 48px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}.page-heading h1{margin:0;font:500 42px/1 Georgia,serif}.page-heading p{margin:0;color:var(--muted);font-size:12px}.flash{margin:15px 7vw 0;padding:12px 15px;border-left:4px solid var(--green);background:#eaf5ef;color:var(--green);font-size:12px}.flash.error,.notice.error{border-color:#b84435;background:#fff0ed;color:#9d3125}.calendar-overview{display:grid;grid-template-columns:minmax(220px,.62fr) minmax(0,2.38fr);gap:18px;align-items:stretch}.room-statuses{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:10px}.room-statuses article{min-width:0;padding:16px 15px;border:1px solid #cbdcd3;background:#f7fbf8;display:grid;grid-template-columns:1fr auto;align-content:center;gap:7px 10px;box-shadow:0 8px 22px #173d2b0c}.room-statuses article>span{grid-column:1/3;font:700 13px/1.2 Georgia,serif}.room-statuses strong{display:flex;align-items:center;gap:6px;color:var(--green);font-size:8px;letter-spacing:.08em;text-transform:uppercase}.room-statuses strong i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #176b5012}.room-statuses small{align-self:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;font-size:7px;color:var(--muted)}.room-statuses .in-use{border-color:#dfaaa1;background:#fff3f0}.room-statuses .in-use strong{color:#a43b2d}.room-statuses .in-use strong i{background:#c74c3c;box-shadow:0 0 0 4px #c74c3c18;animation:pulse 1.5s infinite}.room-statuses .meeting-count{background:#fff}.room-statuses .meeting-count strong{gap:5px}.room-statuses .meeting-count b{font:700 22px/1 Georgia,serif}.calendar-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.month-card{min-width:0;background:#fff;border:1px solid var(--line);box-shadow:0 18px 50px #1c3c2c0d;padding:17px}.month-title{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid #e8eae5}.month-title small{font-size:8px;font-weight:700;letter-spacing:.16em;color:var(--green)}.month-title h3{margin:5px 0 0;font:24px Georgia,serif}.month-title>span{padding:7px 9px;border-radius:20px;background:#edf5f0;color:var(--muted);font-size:9px}.weekday-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday-row{padding:11px 0 6px}.weekday-row span{text-align:center;color:#7a847f;font-size:8px;font-weight:700}.weekday-row .weekend-label{color:#b53b31}.calendar-grid button,.calendar-blank{min-height:53px}.calendar-grid button{position:relative;padding:5px;border:1px solid #e4e6e1;border-radius:4px;background:#fff;color:var(--dark);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;cursor:pointer;transition:.15s}.calendar-grid button:hover{border-color:var(--green);background:#f4faf6;transform:translateY(-1px)}.calendar-grid button b{font:17px Georgia,serif}.calendar-grid button em{padding:4px 6px;border-radius:12px;background:#e6f2eb;color:var(--green);font-size:7px;font-style:normal;font-weight:700;white-space:nowrap}.calendar-grid button.today{box-shadow:inset 0 0 0 2px var(--orange)}.calendar-grid button.weekend{border-color:#efc4be;background:#fff1ef;color:#a63229}.calendar-grid button.holiday{border-color:#df8e84;background:#fee3df;color:#8f241c}.calendar-grid button.cancelled-day{background:#f9d7d3;border-color:#d98178}.holiday-name{display:none;font-size:6px;line-height:1.2;font-weight:700;color:#a63229;text-align:left}.calendar-grid button.holiday .holiday-name{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.login-page{height:100dvh;min-height:680px;display:grid;grid-template-columns:minmax(0,64%) minmax(420px,36%);overflow:hidden}.login-panel{padding:38px 5vw 26px;display:grid;grid-template-rows:auto 1fr auto;justify-items:center;align-items:center;text-align:center;background:var(--cream);position:relative;overflow:hidden}.company-logo{width:205px;height:238px;object-fit:contain;position:relative;z-index:1}.login-copy{width:100%;position:relative;z-index:1}.login-copy h1{margin:0;color:#050706;font:700 clamp(58px,5vw,92px)/1.02 Arial,sans-serif;letter-spacing:-.035em}.login-copy h1 em{display:block;margin-top:25px;color:#177255;font:400 .88em/1 Georgia,serif;letter-spacing:-.02em}.brand-family{width:min(840px,88%);display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:center;gap:28px;position:relative;z-index:1}.brand-family img{display:block;width:100%;height:88px;object-fit:contain}.brand-family img:first-child{height:52px}.login-panel:after{content:"";position:absolute;width:420px;height:420px;border:1px solid #d7d1c4;border-radius:50%;right:-210px;bottom:-250px;box-shadow:0 0 0 65px #ffffff18,0 0 0 130px #ffffff16}.login-box{padding:56px clamp(42px,5vw,92px);display:flex;align-items:center;justify-content:center;background:#fff}.login-box form{width:min(526px,100%)}.login-heading{margin-bottom:45px}.login-heading>span{display:block;margin-bottom:22px;color:var(--green);font-size:10px;font-weight:700;letter-spacing:.3em}.login-heading p{margin:0;color:var(--muted);font-size:14px}.login-box label,.booking-form label{display:flex;flex-direction:column;gap:9px}.login-box label{margin-bottom:24px}.login-box label>span,.booking-form label>span,.form-grid label>span{color:#6e7772;font-size:9px;font-weight:700;letter-spacing:.15em}.login-box input{height:66px;padding:0 17px;border:1px solid #d8dad4;border-radius:3px;font-size:18px;outline:none}.login-box input:focus,.booking-form input:focus,.booking-form select:focus{border-color:var(--green);box-shadow:0 0 0 4px #176b5012}.primary{height:56px;border:0;border-radius:3px;background:var(--green);color:#fff;font-size:12px;font-weight:700;cursor:pointer}.login-box .primary{width:100%;height:65px}.back-link{display:block;margin-top:24px;color:var(--green);font-size:12px;font-weight:700;text-align:center;text-decoration:none}.notice{padding:10px;border-left:4px solid var(--green)}.today-summary{display:grid;grid-template-columns:minmax(250px,.78fr) minmax(0,1.7fr);gap:16px}.total-card{min-height:152px;padding:20px;border:1px solid var(--line);background:#fff;text-align:left;cursor:pointer}.total-card>span{display:block;margin-bottom:13px;font-size:12px;font-weight:700}.total-card>div{display:flex;align-items:flex-end;gap:12px}.total-card b{font:68px Georgia,serif;color:var(--green)}.total-card strong{margin-bottom:11px;font:20px Georgia,serif}.total-card small{display:block;margin-top:3px;color:var(--muted)}.today-date{grid-column:1;min-height:60px;padding:14px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;font:21px Georgia,serif;text-align:center}.live-status{grid-column:2;grid-row:1/3;padding:18px;border:1px solid var(--line);background:#fff}.live-title{display:flex;justify-content:space-between;align-items:center;padding-bottom:13px;border-bottom:1px solid #e7e9e5}.live-title small{color:var(--green);font-size:8px;font-weight:700;letter-spacing:.14em}.live-title h2{margin:5px 0 0;font:22px Georgia,serif}.live-title time{font:25px Georgia,serif}.live-title time span{font:9px Arial,sans-serif;color:var(--muted)}.live-rooms{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:14px}.live-rooms article{min-height:120px;padding:14px;border:1px solid #cbdcd3;background:#f7fbf8;display:grid;grid-template-columns:15px 1fr;gap:10px}.live-rooms article>i{width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px #176b5014}.live-rooms .occupied{background:#fff3f0;border-color:#dfaaa1}.live-rooms .occupied>i{background:#c74c3c;animation:pulse 1.5s infinite}.live-rooms h3{margin:0 0 5px;font:18px Georgia,serif}.live-rooms strong{font-size:8px;color:var(--green)}.live-rooms p,.live-rooms small{font-size:9px;color:var(--muted)}.meeting-list{margin-top:16px;border:1px solid var(--line);background:#fff}.list-head{padding:18px 22px;border-bottom:1px solid var(--line)}.list-head h2{margin:0 0 4px;font:23px Georgia,serif}.list-head span{font-size:10px;color:var(--muted)}.meeting-row{min-height:78px;padding:10px 20px;display:grid;grid-template-columns:4px 75px 1.5fr 1fr auto;gap:15px;align-items:center;border-bottom:1px solid #eceee9}.meeting-row .bar{height:48px;background:var(--green)}.meeting-time{display:flex;flex-direction:column}.meeting-time b{font:21px Georgia,serif}.meeting-time span{font-size:9px;color:var(--muted)}.meeting-row h3{margin:0 0 5px;font:18px Georgia,serif}.meeting-row p,.meeting-room{margin:0;color:var(--muted);font-size:10px}.meeting-row.cancelled{background:#f9d7d3}.meeting-row.cancelled h3{text-decoration:line-through}.cancel-badge{padding:7px 10px;border:1px solid #c85a50;border-radius:999px;background:#ffe3df;color:#9c2f27;font-size:8px}.cancel-button{padding:8px 11px;border:1px solid #d78f84;background:#fff;color:#a72e24;border-radius:3px;cursor:pointer}.empty{padding:35px;text-align:center;color:var(--muted)}.booking-form{padding:28px;border:1px solid var(--line);background:#fff;box-shadow:0 18px 50px #1c3c2c0d}.booking-form>.full{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid #ecece7}.booking-form input,.booking-form select{height:46px;padding:0 13px;border:1px solid #d8dad4;border-radius:3px;background:#fafaf7;outline:none}.room-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:24px}.room-option{position:relative;min-height:105px;padding:18px;border:1px solid #d8dad4;background:#fff;cursor:pointer}.room-option:has(input:checked){border:2px solid var(--green);background:#f5faf7}.room-option input{position:absolute;opacity:0}.room-option span{display:flex;flex-direction:column;gap:6px}.room-option small{color:var(--green);font-size:8px;font-weight:700;letter-spacing:.14em}.room-option b{font:19px Georgia,serif}.room-option em{font-style:normal;color:var(--muted);font-size:10px}.form-grid{display:grid;grid-template-columns:1.3fr 1.1fr 1fr .8fr .65fr .65fr auto;gap:11px;align-items:end}.form-grid .primary{min-width:125px}.modal{position:fixed;inset:0;z-index:100;padding:22px;background:#10261db8;display:grid;place-items:center;backdrop-filter:blur(3px)}.modal[hidden]{display:none}.modal-card{width:min(620px,100%);max-height:90vh;padding:25px;background:#fff;overflow:auto;box-shadow:0 30px 90px #06130d66}.modal-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:18px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font:24px Georgia,serif}.modal-head button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:24px;cursor:pointer}.modal-meeting{margin-top:12px;padding:15px;border:1px solid var(--line);border-left:4px solid var(--green);background:#fafcfb}.modal-meeting.cancelled{border-left-color:#c33127;background:#f9d7d3}.modal-meeting h3{margin:0 0 8px;font:19px Georgia,serif}.modal-meeting p{margin:5px 0;color:#59645f;font-size:10px}.modal-row-actions{display:flex;gap:8px;margin-top:10px}.modal-row-actions a,.modal-row-actions button{padding:8px 10px;border:1px solid var(--line);background:#fff;color:var(--green);font-size:10px;text-decoration:none;cursor:pointer}.modal-row-actions button{border-color:#d78f84;color:#a72e24}.modal-empty{padding:34px;text-align:center;color:var(--muted)}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-top:17px}.modal-actions>button{height:44px;border:1px solid #ccd7d0;background:#fff;color:var(--green);cursor:pointer}.button-link{height:44px;display:grid;place-items:center;text-decoration:none}@keyframes pulse{50%{opacity:.45;transform:scale(.8)}}
@media(max-width:1100px){.form-grid{grid-template-columns:repeat(3,1fr)}.form-grid .primary{width:100%}.login-page{grid-template-columns:60% 40%}.login-copy h1{font-size:55px}.brand-family{gap:12px}.login-box{padding:45px 35px}}
@media(max-width:900px){.site-header{padding:0 24px}.site-header nav{display:none;position:absolute;top:78px;left:24px;right:24px;padding:12px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 45px #173d2b24;flex-direction:column}.site-header nav.open{display:flex}.site-header nav>a{border-radius:4px}.user{display:none}.menu-toggle{width:44px;height:44px;border:1px solid #cdd7d1;background:#fff;border-radius:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.menu-toggle span{width:21px;height:2px;background:var(--green)}.mobile-logout{display:block}.mobile-logout button{width:100%;height:42px}.calendar-overview{grid-template-columns:1fr}.room-statuses{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:1fr}.calendar-months{grid-template-columns:1fr}.login-page{height:auto;min-height:100dvh;grid-template-columns:1fr;grid-template-rows:auto 1fr;overflow:auto}.login-panel{min-height:340px;padding:22px 28px 18px}.company-logo{width:82px;height:95px}.login-copy h1{font-size:43px}.login-copy h1 em{margin-top:9px}.brand-family{width:min(650px,92%);gap:10px}.brand-family img{height:54px}.login-box{padding:34px 24px 42px}.login-box form{width:min(500px,100%)}.login-heading{margin-bottom:26px}.login-heading>span{margin-bottom:14px}.login-box label{margin-bottom:16px}.login-box input,.login-box .primary{height:52px;font-size:15px}.today-summary{grid-template-columns:1fr}.today-date,.live-status{grid-column:1;grid-row:auto}.meeting-row{grid-template-columns:4px 65px 1fr auto}.meeting-room{grid-column:3}.form-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.site-header{padding:0 16px}.brand{font-size:13px}.brand img{width:28px;height:28px}.site-header nav{left:16px;right:16px}.page{padding:28px 16px 40px}.page-heading{display:block}.page-heading h1{font-size:34px}.page-heading p{margin-top:8px}.room-statuses{grid-template-columns:1fr}.calendar-grid button,.calendar-blank{min-height:49px}.calendar-grid button{padding:4px}.calendar-grid button em{width:7px;height:7px;padding:0;font-size:0}.month-card{padding:14px}.month-title h3{font-size:21px}.login-panel{min-height:252px;padding:14px}.company-logo{width:58px;height:67px}.login-copy h1{font-size:clamp(25px,8vw,34px)}.login-copy h1 em{margin-top:6px}.brand-family{width:100%;gap:4px}.brand-family img{height:38px}.brand-family img:first-child{height:20px}.login-box{padding:25px 18px 32px}.login-heading{margin-bottom:20px}.login-heading p{font-size:11px}.login-box input,.login-box .primary{height:48px;font-size:14px}.today-summary{display:block}.today-date,.live-status{margin-top:12px}.live-title,.live-rooms{display:block}.live-title time{display:block;margin-top:10px}.live-rooms article{margin-top:10px}.meeting-row{grid-template-columns:4px 58px 1fr}.meeting-row form,.meeting-row .cancel-badge{grid-column:3}.room-options,.form-grid{grid-template-columns:1fr}.modal-actions{grid-template-columns:1fr}.modal-card{padding:18px}}

/* Latest booking-form layout and edit history. */
.date-day-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid #ecece7}
.room-options{gap:18px}.room-option{min-height:128px;padding:22px 24px}.room-option span{gap:7px}.room-option small{font-size:9px}.room-option b{font-size:22px}.room-option em{font-size:11px}
.meeting-name-field{display:flex;margin-bottom:14px}.meeting-detail-row{display:grid;grid-template-columns:1.5fr 1.1fr .7fr .7fr 1fr;gap:11px;align-items:end}.meeting-detail-row .primary{width:100%}
.edit-audit{display:block;margin-top:7px;color:#7b5d31;font-size:8px;line-height:1.4}.modal-audit{margin:11px 0 2px!important;padding:9px 11px;border-left:3px solid #c99a43;background:#fff8e9;display:flex;flex-direction:column;gap:3px}.modal-audit strong{font-size:9px}.modal-audit span{font-size:8px;color:#8a7148}
.meeting-actions{display:flex;align-items:center;gap:7px}.meeting-actions form{margin:0}.meeting-actions a{padding:8px 11px;border:1px solid #cddbd3;border-radius:3px;background:#fff;color:var(--green);font-size:10px;font-weight:700;text-decoration:none}
@media(max-width:1000px){.meeting-detail-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.date-day-row,.meeting-detail-row{grid-template-columns:1fr}.room-option{min-height:122px;padding:20px}.meeting-row .meeting-actions{grid-column:3}.meeting-actions{flex-wrap:wrap}}
