:root{--ink: #17352d;--ink-soft: #66756f;--forest: #173e34;--forest-2: #245b4b;--mint: #d9eee6;--cream: #f4f2ec;--surface: #fffefa;--line: #dedfd8;--coral: #d96955;--coral-soft: #f8e4df;--gold: #f1b96b;--shadow: 0 18px 50px rgba(36, 58, 50, .1);color:var(--ink);font-family:Aptos,Segoe UI,system-ui,-apple-system,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{background:var(--cream);scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:var(--cream)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid rgba(217,105,85,.4);outline-offset:3px}.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;height:74px;padding:0 clamp(24px,5vw,76px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:#fffefaf0;border-bottom:1px solid rgba(23,62,52,.11);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:inline-flex;align-items:center;gap:12px;color:inherit;text-decoration:none;justify-self:start}.brand-button{padding:0;text-align:left;background:transparent;border:0}.brand-mark{width:40px;height:40px;display:grid;place-items:center;color:#fff;background:var(--forest);border-radius:12px 12px 12px 4px}.brand>span:last-child{display:grid}.brand strong{font-size:15px;line-height:1.15;letter-spacing:-.01em}.brand small{margin-top:3px;color:var(--ink-soft);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.main-nav{display:flex;align-items:center;gap:6px;padding:5px;background:#e9e8e2;border-radius:13px}.nav-item{display:flex;align-items:center;gap:8px;min-height:38px;padding:0 17px;border:0;border-radius:9px;color:#6e7773;background:transparent;font-size:14px;font-weight:650}.nav-item.active{color:var(--forest);background:var(--surface);box-shadow:0 2px 10px #19332b12}.login-button{justify-self:end;display:flex;align-items:center;gap:8px;min-height:40px;padding:0 18px;color:#fff;background:var(--forest);border:0;border-radius:11px;font-size:14px;font-weight:700;box-shadow:0 8px 20px #173e342b}.account-area{position:relative;justify-self:end}.profile-button{display:flex;align-items:center;gap:9px;padding:4px 7px 4px 4px;color:var(--ink);background:transparent;border:0;border-radius:12px}.profile-button>span:last-child{display:grid;text-align:left}.profile-button small{color:var(--ink-soft);font-size:9px}.profile-button strong{max-width:100px;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.avatar{width:36px;height:36px;display:grid;place-items:center;color:#fff;background:var(--forest-2);border-radius:10px;font-size:11px;font-weight:800}.profile-menu{position:absolute;z-index:40;top:calc(100% + 10px);right:0;width:230px;padding:16px;display:grid;gap:5px;background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:0 18px 45px #1a302933}.profile-menu>strong{font-size:12px}.profile-menu>small{padding-bottom:10px;overflow:hidden;color:var(--ink-soft);font-size:10px;text-overflow:ellipsis;border-bottom:1px solid var(--line)}.profile-menu button{margin-top:5px;padding:8px 0 0;display:flex;align-items:center;gap:7px;color:var(--coral);background:transparent;border:0;font-size:11px;font-weight:700}.page-wrap{width:min(1530px,calc(100% - 48px));margin:0 auto;padding:48px 0 64px}.page-intro{display:flex;justify-content:space-between;align-items:end;gap:48px;margin-bottom:34px}.eyebrow{display:inline-flex;align-items:center;gap:7px;margin-bottom:12px;color:var(--coral);font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.page-intro h1{margin:0;color:var(--forest);font-family:Georgia,Times New Roman,serif;font-size:clamp(37px,4vw,59px);font-weight:500;line-height:.99;letter-spacing:-.045em}.page-intro p{width:min(390px,38vw);margin:0 0 5px;color:var(--ink-soft);font-size:15px;line-height:1.65}.system-notice{margin:-10px 0 18px;padding:11px 14px;display:flex;align-items:center;gap:9px;color:#765342;background:#fff4e9;border:1px solid #ecd7c1;border-radius:11px;font-size:11px}.system-notice svg{flex:0 0 auto;color:var(--coral)}.system-notice button{margin-left:auto;display:flex;align-items:center;gap:5px;color:var(--forest);background:transparent;border:0;font-size:10px;font-weight:750}.workspace{display:grid;grid-template-columns:310px minmax(0,1fr);gap:18px;align-items:start}.room-panel,.schedule-panel{background:var(--surface);border:1px solid rgba(23,62,52,.09);box-shadow:var(--shadow)}.room-panel{padding:22px;border-radius:18px 6px 6px 18px}.schedule-panel{min-width:0;border-radius:6px 18px 18px 6px;overflow:hidden}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:17px}.section-heading span,.step-label{color:var(--coral);font-size:9px;font-weight:850;letter-spacing:.15em}.section-heading h2,.schedule-top h2{margin:4px 0 0;font-size:19px;letter-spacing:-.02em}.section-heading .room-count{color:var(--ink-soft);font-size:11px;font-weight:600;letter-spacing:0}.room-list{display:grid;gap:12px}.room-card{width:100%;padding:0;overflow:hidden;text-align:left;color:inherit;background:#fff;border:1px solid var(--line);border-radius:14px;transition:border-color .2s,transform .2s,box-shadow .2s}.room-card:hover{transform:translateY(-2px);border-color:#9eb8ad;box-shadow:0 12px 28px #2141361a}.room-card.selected{border:2px solid var(--forest-2);box-shadow:0 10px 24px #245b4b21}.room-image-wrap{position:relative;display:block;height:112px;overflow:hidden}.room-image-wrap:after{content:"";position:absolute;top:55%;right:0;bottom:0;left:0;background:linear-gradient(transparent,#0b231c4d)}.room-image-wrap img{width:100%;height:100%;object-fit:cover}.selected-badge{position:absolute;z-index:1;top:10px;right:10px;display:flex;align-items:center;gap:4px;padding:5px 8px;color:#fff;background:var(--forest);border-radius:20px;font-size:9px;font-weight:750}.room-copy{display:grid;gap:5px;padding:12px 13px 13px}.room-name-row{display:flex;justify-content:space-between;align-items:center}.room-name-row strong{font-size:15px}.room-copy>small{color:var(--ink-soft);font-size:11px}.room-meta{display:flex;align-items:center;gap:5px;margin-top:4px;color:#52645d;font-size:10px;font-weight:600}.room-meta i{width:3px;height:3px;margin:0 3px;background:#a9b0ad;border-radius:50%}.room-note{display:flex;gap:10px;align-items:flex-start;margin-top:17px;padding:13px;color:#53645e;background:#f0efe9;border-radius:11px}.room-note svg{flex:0 0 auto;margin-top:1px;color:var(--coral)}.room-note span{display:grid;gap:3px}.room-note strong{color:var(--ink);font-size:10px}.room-note small{font-size:10px}.schedule-top{display:flex;align-items:center;justify-content:space-between;min-height:88px;padding:19px 24px;border-bottom:1px solid var(--line)}.schedule-top p{margin:4px 0 0;color:var(--ink-soft);font-size:11px}.week-controls{display:flex;align-items:center;gap:5px}.week-controls button{height:36px;min-width:36px;display:grid;place-items:center;color:var(--forest);background:#fff;border:1px solid var(--line);border-radius:9px}.week-controls .today-button{padding:0 13px;color:var(--surface);background:var(--forest);border-color:var(--forest);font-size:11px;font-weight:700}.legend{display:flex;align-items:center;gap:17px;min-height:45px;padding:0 24px;color:#55645f;background:#faf9f5;border-bottom:1px solid var(--line);font-size:10px}.legend span{display:flex;align-items:center;gap:6px}.legend small{margin-left:auto;color:#89918e}.dot{display:inline-block;width:7px;height:7px;border-radius:50%}.dot.available{background:#4d9f7a;box-shadow:0 0 0 3px #e4f2eb}.dot.occupied{background:var(--coral);box-shadow:0 0 0 3px var(--coral-soft)}.dot.past{background:#aeb5b2;box-shadow:0 0 0 3px #eef0ef}.calendar-scroll{max-height:min(760px,calc(100vh - 190px));overflow:auto}.week-grid{min-width:760px;display:grid;grid-template-columns:repeat(5,minmax(145px,1fr))}.day-column{min-width:0;border-right:1px solid var(--line)}.day-column:last-child{border-right:0}.day-column>header{position:sticky;z-index:4;top:0;height:92px;padding:14px 15px;display:grid;grid-template-columns:1fr auto;align-items:center;color:var(--ink-soft);background:var(--surface);border-bottom:1px solid var(--line)}.day-column>header span{font-size:9px;font-weight:850;letter-spacing:.15em}.day-column>header strong{grid-row:1 / 3;grid-column:2;font-family:Georgia,serif;color:var(--ink);font-size:34px;font-weight:500}.day-column>header small{align-self:start;font-size:10px}.day-column>header.today{color:var(--coral);background:#fff8f4;box-shadow:inset 0 3px var(--coral)}.day-summary{position:sticky;z-index:3;top:92px;min-height:31px;padding:0 11px;display:flex;align-items:center;justify-content:space-between;color:#4e846c;background:#f8f8f3;border-bottom:1px solid var(--line);font-size:9px;font-weight:750}.day-summary small{color:#a9776d;font-size:9px;font-weight:650}.slots{padding:10px;display:grid;gap:7px}.time-slot{min-height:55px;padding:9px 10px;display:grid;align-content:center;gap:3px;text-align:left;color:var(--ink);background:#f4f8f5;border:1px solid #dceae3;border-radius:9px;transition:transform .15s,border-color .15s,background .15s}.time-slot span{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:760}.time-slot small{padding-left:15px;color:#769185;font-size:9px}.time-slot.available:hover{transform:translateY(-1px);background:#eaf5ef;border-color:#83b59f}.time-slot.occupied{cursor:not-allowed;background:#fcf1ee;border-color:#f1d6d0;opacity:1}.time-slot.occupied small{color:#a7756c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time-slot.past{cursor:not-allowed;color:#919b97;background:#f4f4f1;border-color:#e7e7e2;opacity:1}.time-slot.past small{color:#a0a7a4}.schedule-loading,.empty-state{min-height:390px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--ink-soft)}.schedule-loading span{font-size:11px}.empty-state h3,.empty-state p{margin:0}.empty-state h3{color:var(--ink);font-size:15px}.empty-state p{font-size:11px}.bookings-page{width:min(1050px,calc(100% - 48px))}.bookings-heading{margin-bottom:28px;display:flex;justify-content:space-between;align-items:end;gap:28px}.bookings-heading h1{margin:0;color:var(--forest);font-family:Georgia,Times New Roman,serif;font-size:clamp(36px,4vw,52px);font-weight:500;line-height:1;letter-spacing:-.04em}.bookings-heading p{margin:12px 0 0;color:var(--ink-soft);font-size:13px}.secondary-action{min-height:41px;padding:0 16px;display:flex;align-items:center;gap:8px;color:var(--forest);background:transparent;border:1px solid #aebdb6;border-radius:10px;font-size:11px;font-weight:750}.auth-empty{min-height:390px;padding:38px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--surface);border:1px solid rgba(23,62,52,.09);border-radius:18px;box-shadow:var(--shadow)}.empty-icon{width:60px;height:60px;display:grid;place-items:center;color:var(--forest-2);background:var(--mint);border-radius:18px}.auth-empty h2{margin:18px 0 7px;font-family:Georgia,serif;font-size:23px;font-weight:500}.auth-empty p{max-width:370px;margin:0 0 22px;color:var(--ink-soft);font-size:12px;line-height:1.6}.bookings-loader{min-height:340px;background:var(--surface);border-radius:18px;box-shadow:var(--shadow)}.booking-list{display:grid;gap:12px}.booking-item{min-height:132px;padding:13px;display:grid;grid-template-columns:150px 62px 1fr auto;gap:20px;align-items:center;background:var(--surface);border:1px solid rgba(23,62,52,.09);border-radius:15px;box-shadow:0 10px 30px #243a3212}.booking-item>img{width:150px;height:104px;object-fit:cover;border-radius:10px}.booking-item.cancelled{opacity:.72;box-shadow:none}.booking-date{display:grid;justify-items:center;padding-right:18px;border-right:1px solid var(--line)}.booking-date strong{font-family:Georgia,serif;font-size:31px;font-weight:500;line-height:1}.booking-date small{margin-top:4px;color:var(--coral);font-size:9px;font-weight:800;text-transform:uppercase}.booking-details h2{margin:5px 0 8px;font-size:15px}.booking-details p{margin:3px 0;display:flex;align-items:center;gap:7px;color:var(--ink-soft);font-size:10px}.status-pill{padding:3px 7px;color:#397359;background:#e4f3ea;border-radius:20px;font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.status-pill.cancelled{color:#8d6e67;background:#f2e8e5}.cancel-button{align-self:end;padding:8px 10px;display:flex;align-items:center;gap:6px;color:#a65345;background:#fff4f1;border:1px solid #efd4cd;border-radius:8px;font-size:10px;font-weight:700}.modal-open{overflow:hidden}.modal-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;padding:20px;display:grid;place-items:center;background:#0c1c17a3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade-in .16s ease-out}.modal-card{width:min(100%,480px);overflow:hidden;background:var(--surface);border:1px solid rgba(255,255,255,.28);border-radius:18px;box-shadow:0 30px 90px #06161157;animation:modal-in .2s ease-out}.modal-header{padding:21px 22px 17px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--line)}.modal-header h2{margin:0;font-family:Georgia,serif;font-size:24px;font-weight:500;letter-spacing:-.02em}.modal-header p{margin:5px 0 0;color:var(--ink-soft);font-size:10px}.icon-button{width:34px;height:34px;display:grid;place-items:center;color:var(--ink-soft);background:#f0efe9;border:0;border-radius:9px}.modal-body{padding:20px 22px 23px}.form-stack{display:grid;gap:15px}.form-stack label{display:grid;gap:7px}.form-stack label>span{color:#394a44;font-size:10px;font-weight:800}.form-stack label em{color:#929996;font-size:9px;font-style:normal;font-weight:500}.form-stack input,.form-stack select,.form-stack textarea{width:100%;padding:11px 12px;color:var(--ink);background:#fff;border:1px solid #cfd6d2;border-radius:9px;font-size:12px;outline:none;transition:border-color .15s,box-shadow .15s}.form-stack input:focus,.form-stack select:focus,.form-stack textarea:focus{border-color:var(--forest-2);box-shadow:0 0 0 3px #245b4b1f}.form-stack textarea{resize:vertical}.privacy-note{margin:-3px 0 0;color:#7a8581;font-size:9px;line-height:1.5}.form-alert{padding:10px 11px;display:flex;align-items:flex-start;gap:8px;color:#8b4135;background:#fff0ec;border:1px solid #f0d1ca;border-radius:9px;font-size:10px;line-height:1.45}.form-alert svg{flex:0 0 auto}.primary-action{min-height:44px;padding:0 17px;display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;background:var(--forest);border:0;border-radius:10px;font-size:11px;font-weight:800;box-shadow:0 10px 22px #173e342b}.primary-action.compact{min-height:41px}.primary-action:disabled{cursor:wait;opacity:.65}.booking-summary{padding:8px;display:flex;align-items:center;gap:12px;background:#f0efe9;border-radius:11px}.booking-summary img{width:60px;height:50px;object-fit:cover;border-radius:8px}.booking-summary span{display:grid;gap:3px}.booking-summary strong{font-size:12px}.booking-summary small{color:var(--ink-soft);font-size:10px}.toast{position:fixed;z-index:120;right:24px;bottom:24px;max-width:min(360px,calc(100vw - 32px));padding:12px 15px;display:flex;align-items:center;gap:9px;color:#fff;background:var(--forest);border:1px solid rgba(255,255,255,.18);border-radius:11px;box-shadow:0 18px 45px #0c241c40;font-size:11px;font-weight:700;animation:modal-in .2s ease-out}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.985)}}@media(max-width:950px){.topbar{grid-template-columns:1fr auto}.main-nav{position:fixed;z-index:30;left:16px;right:16px;bottom:14px;justify-content:center;box-shadow:0 10px 30px #15302833}.page-wrap{width:min(100% - 28px,760px);padding-top:34px;padding-bottom:100px}.page-intro{align-items:start}.workspace{grid-template-columns:1fr}.room-panel,.schedule-panel{border-radius:17px}.room-list{grid-template-columns:repeat(2,minmax(0,1fr))}.room-note{display:none}.calendar-scroll{max-height:none}.bookings-page{width:min(100% - 28px,760px)}}@media(max-width:620px){.topbar{height:66px;padding:0 16px}.brand small{display:none}.brand-mark{width:36px;height:36px}.login-button{width:40px;padding:0;justify-content:center}.login-button:not(:focus){font-size:0;gap:0}.profile-button>span:last-child{display:none}.page-intro{display:block}.page-intro h1{font-size:39px}.page-intro p{width:auto;margin-top:18px}.room-panel{padding:17px}.room-list{grid-template-columns:1fr}.room-image-wrap{height:135px}.schedule-top{align-items:end;padding:17px}.legend{padding:0 17px}.legend small{display:none}.system-notice{align-items:flex-start}.system-notice button{font-size:0}.bookings-heading{display:grid}.booking-item{grid-template-columns:76px 1fr;gap:12px}.booking-item>img{width:76px;height:86px}.booking-date{display:none}.cancel-button{grid-column:1 / -1;justify-self:stretch;justify-content:center}.toast{right:16px;bottom:90px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
