@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Playfair+Display:ital,wght@0,600;0,700;1,600&display=swap";:root{color:#252a2b;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f5f0;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{background:#f5f5f0;min-height:100vh;padding-top:72px}.auth-shell{background:#fffefb;min-height:100vh;display:grid}.auth-aside{color:#f7f8f3;background:#344b3a linear-gradient(145deg,#182a1f1f,#7a946740);flex-direction:column;justify-content:space-between;min-height:310px;padding:26px 22px;display:flex}.auth-aside .brand{color:#fff}.auth-aside-copy{max-width:490px;margin:auto 0;padding:38px 0}.auth-aside .eyebrow{color:#c4d2b8}.auth-aside h1{letter-spacing:-1.8px;max-width:480px;margin:0;font:600 clamp(35px,9vw,65px)/1.02 Playfair Display,serif}.auth-aside-copy>p:last-child{color:#d8e1d2;max-width:355px;margin:18px 0 0;font-size:15px;line-height:1.55}.auth-building{color:#c4d2b8;letter-spacing:1.2px;margin:0;font:10px DM Mono,monospace}.auth-panel{align-items:center;padding:44px 22px;display:grid}.auth-panel-inner{width:100%;max-width:410px;margin:0 auto}.auth-panel h2{color:#283b30;letter-spacing:-1px;margin:0;font:600 clamp(30px,6vw,42px)/1.1 Playfair Display,serif}.auth-description{color:#717c70;margin:12px 0 27px;font-size:14px;line-height:1.55}.auth-form{gap:15px;display:grid}.auth-form label{color:#637060;gap:7px;font-size:11px;display:grid}.auth-form .form-grid{gap:10px}.auth-message{color:#69532b;background:#f7f2e7;border-left:3px solid #a78952;margin:0;padding:10px 12px;font-size:12px;line-height:1.45}.forgot-password-button{color:#405b3e;background:0 0;border:0;justify-self:start;margin:-6px 0 0;padding:0;font-size:12px;font-weight:700;text-decoration:underline}.code-fieldset{border:0;gap:10px;margin:0;padding:0;display:grid}.code-fieldset legend{color:#637060;padding:0;font-size:11px}.code-inputs{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.code-inputs input{color:#283b30;text-align:center;background:#fff;border:1px solid #dce1d9;border-radius:8px;width:100%;height:60px;padding:0;font:600 22px DM Mono,monospace;transition:border-color .15s,background-color .15s}.code-inputs input:focus{outline-offset:1px;border-color:#405b3e;outline:2px solid #405b3e33}.code-inputs.is-error input{color:#8b3a2f;background:#fdf4f2;border-color:#b85447;animation:.35s code-shake}.code-inputs.is-error input:focus{outline-color:#b8544740}@keyframes code-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.auth-switch{color:#788176;text-align:center;margin:3px 0 0;font-size:12px}.auth-switch button{color:#405b3e;background:0 0;border:0;margin-left:6px;padding:0;font-weight:700;text-decoration:underline}.demo-access{color:#899287;text-align:center;margin:1px 0 0;font:10px DM Mono,monospace}.topbar{z-index:4;background:#fffefb;border-bottom:1px solid #d9ddd6;justify-content:space-between;align-items:center;height:72px;padding:0 20px;display:flex;position:fixed;top:0;left:0;right:0}.auth-panel{position:relative}.auth-language-picker{position:absolute;top:22px;right:22px}.brand{color:#26382f;letter-spacing:-.8px;align-items:center;gap:8px;font-family:Playfair Display,serif;font-size:24px;font-weight:700;text-decoration:none;display:flex}.brand img{width:33px;height:33px}.topbar-actions{align-items:center;gap:17px;display:flex}.language-picker select{color:#405b3e;letter-spacing:.7px;background-color:#f7f9f4;border-color:#cfd6ca;border-radius:16px;width:auto;height:32px;padding:0 26px 0 9px;font:500 11px DM Mono,monospace}.user-menu{position:relative}.profile-button{touch-action:manipulation;background:0 0;border:0;border-radius:50%;place-items:center;width:44px;height:44px;padding:6px;display:grid}.profile-button:hover,.profile-button[aria-expanded=true]{background:#e5ebdf}.avatar{color:#fff;background:#687b55;border-radius:50%;place-items:center;width:32px;height:32px;font:11px DM Mono,monospace;display:grid}.user-menu-popover{z-index:6;background:#fffefb;border:1px solid #dce1d8;border-radius:7px;min-width:150px;padding:5px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 24px #2b372a24}.user-menu-popover button{color:#40523f;text-align:left;background:0 0;border:0;border-radius:4px;min-height:36px;padding:0 10px;font-size:12px;font-weight:600}.user-menu-popover button:hover{color:#fff;background:#526b49}.user-menu-popover .logout-button{color:#8a5046}.user-menu-popover .logout-button:hover{color:#fff}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.intro{background:#e7ece1;padding:55px 20px 42px;position:relative}.approval-banner{z-index:3;color:#8b3a2f;text-align:center;background:#fdf4f2;border-bottom:1px solid #e5d5d0;justify-content:center;align-items:center;gap:10px;padding:12px 20px;font-size:13px;line-height:1.4;display:flex;position:sticky;top:72px;box-shadow:0 4px 10px #8b3a2f14}.approval-banner-dot{background:#b85447;border-radius:50%;flex:none;width:8px;height:8px}@media (width>=760px){.approval-banner{top:78px}}.eyebrow{color:#6b8061;letter-spacing:1.25px;margin:0 0 9px;font:500 10px DM Mono,monospace}.intro h1{z-index:1;color:#26382f;letter-spacing:-1.4px;max-width:680px;margin:0;font:600 clamp(33px,10vw,54px)/1.08 Playfair Display,serif;position:relative}.intro-copy{color:#5d685e;max-width:410px;margin:19px 0 22px;font-size:15px;line-height:1.55}.booking-layout{gap:20px;max-width:1090px;margin:0 auto;padding:28px 20px;display:grid}.calendar-panel,.reservation-card,.my-booking{background:#fffefb;border:1px solid #e1e4dd;box-shadow:0 12px 30px #2b372a0b}.calendar-panel{padding:22px 16px}.section-heading,.card-title{justify-content:space-between;align-items:center;display:flex}.section-heading h2,.card-title h2,.my-booking h2,.account-modal h2{color:#283b30;letter-spacing:-.6px;margin:0;font:600 23px Playfair Display,serif}.month-picker{position:relative}.month-title{color:#283b30;letter-spacing:-.6px;text-transform:capitalize;cursor:pointer;background:0 0;border:0;padding:0;font:600 23px Playfair Display,serif}.month-options{z-index:2;background:#fffefb;border:1px solid #dce1d8;border-radius:8px;grid-template-columns:repeat(3,minmax(78px,1fr));gap:4px;width:275px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 12px 24px #2b372a24}.month-options button{color:#516353;text-transform:capitalize;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:8px 4px;font-size:11px}.month-options button:hover,.month-options button[aria-selected=true]{color:#fff;background:#526b49}.month-options button:disabled,.month-button:disabled{cursor:not-allowed;opacity:.35}.month-options button:disabled:hover{color:#516353;background:0 0}.calendar-navigation{gap:7px;display:flex}.month-button{color:#516353;cursor:pointer;background:0 0;border:1px solid #dce1d8;border-radius:50%;width:34px;height:34px;font-size:18px}.day-strip{grid-template-columns:repeat(7,1fr);gap:5px;margin:24px 0;display:grid}.day-button{color:#758071;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:6px;min-height:62px;display:flex}.day-button span{text-transform:uppercase;font:10px DM Mono,monospace}.day-button strong{color:#304033;font-size:15px}.day-button.selected{color:#fff;background:#526b49}.day-button.selected strong{color:#fff}.hours-label{color:#7a8179;margin:0 0 10px;font-size:12px}.slots{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.slot{color:#39473c;text-align:left;background:#fff;border:1px solid #e1e5dd;border-radius:5px;min-height:56px;padding:6px}.slot span,.slot small{display:block}.slot span{font:500 13px DM Mono,monospace}.slot small{color:#78906b;margin-top:3px;font-size:9px}.slot.active{color:#fff;background:#647e59;border-color:#647e59}.slot.active small{color:#e1eadb}.slot.reserved{cursor:not-allowed;color:#a4a7a1;background:#f0f1ed}.slot.reserved small{color:#a4a7a1}.legend{color:#7a8179;gap:16px;margin-top:19px;font-size:11px;display:flex}.legend span{align-items:center;gap:5px;display:flex}.dot{border-radius:50%;width:7px;height:7px}.available{background:#789264}.occupied{background:#b8bcb5}.reservation-card{padding:23px 20px}.calendar-icon{color:#6d835e;font:18px DM Mono,monospace}.time-row{grid-template-columns:1fr 18px 1fr;align-items:end;gap:8px;margin:25px 0 18px;display:grid}.time-row label,.occasion-label,.account-modal label{color:#697267;gap:7px;font-size:11px;display:grid}.to{color:#8c9289;text-align:center;padding-bottom:12px}select,input{color:#304033;background:#fff;border:1px solid #dce1d9;border-radius:4px;outline-color:#718966;width:100%;height:42px;padding:0 10px;font-size:13px}.notice{background:#f0f3ea;border-left:3px solid #9cad78;margin:18px 0;padding:12px 13px}.notice strong{color:#49613d;font-size:11px}.notice p{color:#707b6b;margin:4px 0 0;font-size:11px;line-height:1.45}.message{color:#496c3c;margin:0 0 12px;font-size:12px;line-height:1.4}.message.error{color:#a74738}.primary-button{color:#fff;background:#405b3e;border:0;justify-content:space-between;align-items:center;width:100%;min-height:47px;padding:0 16px;font-size:13px;font-weight:600;display:flex}.primary-button:hover{background:#304b30}.primary-button span{font-size:19px}.my-booking{border-top:3px solid #879d6b;max-width:1090px;margin:0 20px 35px;padding:21px 20px}.my-booking>.eyebrow{margin-bottom:16px}.my-booking p{color:#757d73;margin:7px 0 0;font-size:12px}.my-booking h2{font-size:19px}.my-booking-list{gap:12px;display:grid}.my-booking-item{border-top:1px solid #e8ebe5;flex-direction:column;gap:16px;padding-top:16px;display:flex}.my-booking-item:first-child{border-top:0;padding-top:0}.booking-actions{gap:10px;display:flex}.booking-actions button{color:#455a44;background:0 0;border:1px solid #d4dbd0;min-width:80px;height:37px;font-size:12px}.booking-actions .delete{color:#9b5349;border-color:#e5d5d0}.modal-backdrop{z-index:10;background:#222d237a;align-items:end;display:grid;position:fixed;inset:0}.account-modal{width:100%;max-height:100dvh;padding:28px 20px calc(32px + env(safe-area-inset-bottom));background:#fffefb;position:relative;overflow-y:auto;box-shadow:0 -10px 30px #0000001f}.account-modal h2{margin-bottom:8px}.modal-copy{color:#737c72;margin:0 0 22px;font-size:13px;line-height:1.45}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.account-modal>label{margin-top:13px}.close{color:#748070;background:0 0;border:0;font-size:21px;position:absolute;top:16px;right:16px}.admin-button,.secondary-button{color:#405b3e;letter-spacing:.5px;background:#f7f9f4;border:1px solid #bfcdb8;border-radius:4px;min-height:32px;padding:0 10px;font:500 10px DM Mono,monospace}.admin-modal{width:100%;max-height:100dvh;padding:28px 20px calc(32px + env(safe-area-inset-bottom));background:#fffefb;position:relative;overflow-y:auto;box-shadow:0 -10px 30px #0000001f}.admin-modal h2{color:#283b30;letter-spacing:-.6px;margin:0 0 18px;font:600 27px Playfair Display,serif}.admin-modal h3{color:#40523f;margin:0;font-size:13px}.admin-modal label{color:#697267;gap:7px;font-size:11px;display:grid}.admin-message{color:#496c3c;background:#f0f3ea;border-left:3px solid #799362;margin:0 0 18px;padding:10px 12px;font-size:12px;line-height:1.4}.admin-message.error{color:#8a2f2f;background:#fff0f0;border-left-color:#b34747}.building-form{background:#f8faf5;border:1px solid #e1e5dd;gap:13px;padding:17px;display:grid}.building-form .secondary-button{justify-self:start}.admin-section{margin-top:25px}.admin-section-heading{justify-content:space-between;align-items:center;margin-bottom:9px;display:flex}.admin-section-heading span{color:#fff;background:#718966;border-radius:50%;place-items:center;min-width:22px;height:22px;font:10px DM Mono,monospace;display:grid}.resident-list{border:1px solid #e1e5dd}.resident-row{border-bottom:1px solid #e8ebe5;justify-content:space-between;align-items:center;gap:12px;padding:13px;display:flex}.resident-row:last-child{border-bottom:0}.resident-row.pending{background:#f5f7ef}.resident-row strong{color:#314233;font-size:13px}.resident-row p,.empty-state{color:#7b8479;margin:3px 0 0;font-size:11px;line-height:1.4}.empty-state{padding:14px}.resident-actions{gap:6px;display:flex}.approve,.remove{border-radius:3px;min-height:30px;padding:0 9px;font-size:11px}.approve{color:#fff;background:#647e59;border:1px solid #799362}.remove{color:#9b5349;background:snow;border:1px solid #e4d1cb}.common-space-item+.common-space-item{border-top:1px solid #e8ebe5}.common-space-item>.resident-row{border-bottom:0;align-items:flex-start}.common-space-item>.resident-row .resident-actions{flex-wrap:wrap;justify-content:flex-end}.common-space-reservations{background:#f8faf5;padding:0 13px 13px}.common-space-reservations .resident-list{background:#fffefb}.manage-building-link{color:#405b3e;background:#f7f9f4;border:1px solid #bfcdb8;justify-content:space-between;align-items:center;width:100%;min-height:44px;margin:18px 0 12px;padding:0 14px;font-size:13px;font-weight:600;display:flex}.manage-building-link span{font-size:18px}.admin-page{background:#edf1e9;border-top:1px solid #dce1d8;margin-top:0;padding:34px 20px 54px}.admin-page-inner{max-width:900px;margin:0 auto}.admin-page-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.admin-page h2{color:#283b30;letter-spacing:-.8px;margin:0;font:600 clamp(27px,5vw,38px) Playfair Display,serif}.admin-page h3{color:#40523f;margin:0;font-size:13px}.close-admin{color:#405b3e;background:#f7f9f4;border:1px solid #bfcdb8;min-height:35px;padding:0 12px;font-size:12px}.building-form label,.building-selector{color:#697267;gap:7px;font-size:11px;display:grid}.form-hint{color:#737c72;margin:0;font-size:12px;line-height:1.4}.building-selector{max-width:500px;margin-top:22px}.admin-page .admin-section{margin-top:25px}.admin-search{background:#fffefb;margin:0 0 9px}.building-form-actions,.building-management-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.building-management-actions{margin-top:10px}.text-button{color:#526b49;background:0 0;border:0;min-height:32px;padding:0 6px;font-size:11px;text-decoration:underline}@media (width>=760px){.auth-shell{grid-template-columns:minmax(390px,1.06fr) minmax(430px,.94fr)}.auth-aside{min-height:100vh;padding:38px 6vw}.auth-panel{padding:60px 7vw}.app-shell{padding-top:78px}.topbar{height:78px;padding:0 6vw}.intro{padding:70px max(6vw,50vw - 545px) 62px}.booking-layout{grid-template-columns:1.12fr .88fr;align-items:start;padding-top:42px}.calendar-panel{padding:30px}.reservation-card{padding:31px 28px}.my-booking{width:calc(100% - 40px);margin:0 auto 50px;padding:24px 28px}.my-booking-item{flex-direction:row;justify-content:space-between;align-items:center}.modal-backdrop{align-items:center}.account-modal{max-width:540px;margin:auto;padding:36px}.admin-modal{max-width:720px;margin:auto;padding:36px}.slots{grid-template-columns:repeat(3,1fr)}}.slot.occupied,.slot.past{cursor:help}.slot.occupied{color:#8b4d35;background:#fff;border-color:#d7b8a6}.slot.occupied small{color:#9b624b}.slot.past{color:#8a9187;background:#fff;border-style:dashed}.slot.past small{color:#8a9187}.slot.occupied:hover,.slot.past:hover,.slot.occupied:focus-visible,.slot.past:focus-visible{outline-offset:2px;outline:2px solid #8a694d}.dot.past{background:#9ba198}.slot.available:not(.active){background:#fff}.account-modal input[readonly],.account-modal input[readonly]:focus{background:#fff;border-color:#dce1d9;outline:none}.confirmation-modal{background:#fffefb;width:min(100%,440px);margin:auto;padding:28px 24px;box-shadow:0 12px 30px #0000002e}.confirmation-modal h2{color:#283b30;letter-spacing:-.6px;margin:0 0 10px;font:600 27px Playfair Display,serif}.confirmation-modal p{color:#687267;margin:0;font-size:13px;line-height:1.5}.confirmation-actions{justify-content:flex-end;gap:9px;margin-top:24px;display:flex}.confirmation-actions .remove{min-height:32px}.undo-toast{z-index:11;color:#fff;background:#304b30;align-items:center;gap:14px;max-width:calc(100% - 32px);padding:12px 14px;font-size:12px;display:flex;position:fixed;bottom:16px;right:16px;overflow:hidden;box-shadow:0 10px 24px #222d233d}.undo-toast button{color:#e2edce;background:0 0;border:0;padding:4px 0;font-weight:700;text-decoration:underline}.undo-toast-progress{transform-origin:0;background:#e2edce;height:3px;animation:5s linear forwards undo-toast-countdown;position:absolute;bottom:0;left:0;right:0}@keyframes undo-toast-countdown{to{transform:scaleX(0)}}.password-input-wrapper{display:block;position:relative}.password-input-wrapper input{padding-right:44px}.password-toggle{color:#405b3e;cursor:pointer;background:#eef2e8;border:0;border-radius:4px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.password-toggle svg{width:18px;height:18px}.password-toggle:hover{background:#dfe5d4}.password-toggle:focus-visible{outline-offset:1px;outline:2px solid #405b3e}.password-toggle[aria-pressed=true]{color:#fff;background:#526b49}.password-toggle[aria-pressed=true]:hover{background:#43583a}.building-selector label{color:#697267;font-size:11px}.building-search{background:#fffefb;margin:0 0 9px}.building-search-results{background:#fffefb;border:1px solid #e1e5dd;border-radius:4px;gap:4px;max-height:220px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.building-search-results li{margin:0}.building-search-option{color:#314233;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:3px;gap:2px;width:100%;padding:9px 12px;font-size:12px;display:grid}.building-search-option:hover,.building-search-option:focus-visible{background:#f0f3ea;outline:none}.building-search-option.selected{color:#fff;background:#526b49}.building-search-option.selected span{color:#ffffffd9}.building-search-option strong{color:inherit;font-size:13px}.building-search-option span{color:#7b8479;font-size:11px}.building-search-results .empty-state{border:0;padding:12px 14px}.qr-modal{text-align:center;gap:14px;width:min(100% - 24px,920px);max-width:920px;max-height:calc(100dvh - 24px);display:grid;overflow-y:auto}.qr-modal h2,.qr-modal p{margin:0}.qr-poster-preview{background:#fffefb;border:1px solid #d9ded5;border-radius:8px;margin:4px auto 6px;overflow:hidden;box-shadow:0 8px 24px #283b301a}.qr-poster-preview svg{width:100%;height:auto;display:block}.qr-url{word-break:break-all;color:#687267;margin:0;font:10px/1.4 DM Mono,monospace}.auth-readonly-field{background:#f7f9f4;border:1px solid #dce1d9;border-radius:6px;gap:7px;padding:11px 13px;display:grid}.auth-readonly-label{color:#637060;font-size:11px}.auth-readonly-value{color:#283b30;font-size:14px;font-weight:600}.space-selector{scrollbar-width:thin;background:#fffefb;border:1px solid #e1e4dd;border-radius:7px;gap:5px;width:calc(100% - 40px);max-width:1050px;margin:28px auto 0;padding:6px;display:flex;overflow-x:auto;box-shadow:0 12px 30px #2b372a0b}.space-tab{color:#516353;letter-spacing:.35px;background:0 0;border:1px solid #0000;border-radius:4px;flex:1 0 auto;min-height:40px;padding:0 16px;font:500 11px DM Mono,monospace;transition:color .15s,background-color .15s,border-color .15s}.space-tab:hover{background:#f0f3ea;border-color:#dce1d8}.space-tab.selected{color:#fff;background:#526b49;border-color:#526b49}.space-tab:focus-visible{outline-offset:2px;outline:2px solid #405b3e}.space-selector+.booking-layout{padding-top:20px}@media (width>=760px){.space-selector{margin-top:42px}.space-selector+.booking-layout{padding-top:20px}}
