@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,0&display=swap";:root{color:#172033;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f7fb;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}.material-symbols-outlined{font-size:21px;line-height:1}:root{--nav:0px;--top:68px;--blue:#1959d1;--ink:#182033;--muted:#6d768a;--line:#e1e5ec}.app-shell{min-height:100vh;color:var(--ink);background:#f6f8fb}.side-nav{width:var(--nav);z-index:30;color:#fff;background:#10182b;flex-direction:column;padding:15px 10px;transition:width .25s;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden;box-shadow:10px 0 30px #0d162b14}.side-nav:hover{width:226px}.brand{white-space:nowrap;align-items:center;height:40px;margin:0 7px 25px;display:flex}.brand-mark{background:linear-gradient(145deg,#3478f6,#1848ac);border-radius:12px;flex:0 0 40px;place-items:center;width:40px;height:40px;display:grid;box-shadow:0 8px 18px #1a59d159}.brand-copy{opacity:0;flex-direction:column;margin-left:12px;transition:all .15s;display:flex}.side-nav:hover .brand-copy{opacity:1}.brand-copy strong{font-size:15px}.brand-copy span{color:#8792a9;text-transform:uppercase;letter-spacing:.12em;font-size:10px}.side-nav ul{flex-direction:column;flex:1;gap:6px;margin:0;padding:0;list-style:none;display:flex}.side-nav li.settings{margin-top:auto}.side-nav li button{color:#98a4ba;white-space:nowrap;background:0 0;border:0;border-radius:11px;align-items:center;width:100%;height:44px;padding:0 16px;transition:all .18s;display:flex}.side-nav li button.active{color:#fff;background:#245fc8;box-shadow:0 8px 20px #0000002e}.side-nav li button span:last-child{opacity:0;margin-left:18px;font-size:13px;font-weight:600;transition:all .15s}.side-nav:hover li button span:last-child{opacity:1}.avatar{color:#fff;white-space:nowrap;background:0 0;border:0;align-items:center;margin:15px 5px 0;padding:0;display:flex}.avatar>span:first-child{color:#5d2c18;background:linear-gradient(145deg,#ffd7ae,#d7875f);border:2px solid #ffffff26;border-radius:50%;flex:0 0 42px;place-items:center;width:42px;height:42px;font-weight:700;display:grid}.profile-copy{opacity:0;flex-direction:column;align-items:flex-start;margin-left:12px;font-size:12px;font-weight:600;display:flex}.profile-copy small{color:#8792a9;font-weight:400}.side-nav:hover .profile-copy{opacity:1}.top-bar{z-index:20;top:0;left:var(--nav);height:var(--top);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);background:#fffffff0;justify-content:space-between;align-items:center;padding:0 28px;display:flex;position:fixed;right:0}.search{align-items:center;width:min(410px,45vw);display:flex;position:relative}.search .material-symbols-outlined{color:#8992a5;position:absolute;left:13px}.search input{width:100%;height:40px;color:var(--ink);background:#f5f7fa;border:1px solid #e1e5ec;border-radius:10px;outline:0;padding:0 16px 0 42px;transition:all .2s}.search input:focus{background:#fff;border-color:#7ea6ef;box-shadow:0 0 0 3px #1959d119}.top-actions{align-items:center;gap:8px;display:flex}.icon-button{color:#687287;background:0 0;border:0;border-radius:10px;place-items:center;width:38px;height:38px;display:grid;position:relative}.icon-button:hover{background:#f0f3f8}.notification-dot{background:#ef5350;border:2px solid #fff;border-radius:50%;width:7px;height:7px;position:absolute;top:7px;right:7px}.primary-button{color:#fff;background:var(--blue);border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 17px;font-size:12px;font-weight:700;transition:all .18s;display:inline-flex;box-shadow:0 5px 14px #1959d138}.primary-button:hover{background:#124bb8;transform:translateY(-1px)}.primary-button:disabled{box-shadow:none;cursor:not-allowed;background:#a8afbb;transform:none}.main-content{padding:var(--top) 0 50px var(--nav);flex-direction:column;height:100vh;display:flex;overflow:hidden}.toolbar{border-bottom:1px solid var(--line);z-index:5;background:#fff;grid-template-columns:1fr auto auto;align-items:center;gap:28px;min-height:102px;padding:17px 28px;display:grid}.eyebrow{color:#8290a8;letter-spacing:.13em;text-transform:uppercase;margin:0 0 5px;font-size:10px;font-weight:700;line-height:1.2}.toolbar h1{letter-spacing:-.03em;margin:0;font-size:21px}.toolbar h1 span{color:#747f91;font-size:15px;font-weight:500}.availability{color:#707a8c;align-items:center;gap:7px;font-size:12px;display:flex}.availability strong{color:#3e485b}.pulse-dot{background:#27ad78;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #e1f6ee}.controls{align-items:center;gap:20px;display:flex}.floor-picker{background:#eff2f6;border-radius:9px;padding:3px;display:flex}.floor-picker button{color:#687287;background:0 0;border:0;border-radius:7px;width:34px;height:31px;font-size:12px;font-weight:600}.floor-picker button.active{color:var(--blue);background:#fff;box-shadow:0 2px 8px #16213a1a}.filters{align-items:center;gap:6px;display:flex}.filters>span{color:#8a93a3;text-transform:uppercase;letter-spacing:.08em;margin-right:2px;font-size:9px;font-weight:700}.filters button{color:#687287;background:#fff;border:1px solid #dfe4eb;border-radius:99px;height:31px;padding:0 12px;font-size:10px;font-weight:600}.filters button.active{color:#fff;background:#1b2538;border-color:#1b2538}.plan-scroll{background-color:#f5f7fa;background-image:linear-gradient(#e7eaf0 1px,#0000 1px),linear-gradient(90deg,#e7eaf0 1px,#0000 1px);background-size:24px 24px;flex:1;justify-content:center;align-items:center;min-height:0;padding:28px;display:flex;overflow:auto}.plan-card{background:#fff;border:1px solid #cfd5df;width:900px;min-width:900px;height:560px;padding:54px;position:relative;box-shadow:0 14px 35px #141f3414}.plan-card:before{content:"";pointer-events:none;border:1px solid #eef0f4;position:absolute;inset:8px}.wing-label{letter-spacing:.15em;color:#8e97a7;text-transform:uppercase;font-size:9px;font-weight:700;position:absolute;top:20px;left:24px}.wing-label span{color:#28aa79;margin:0 4px}.top-rooms,.bottom-rooms{grid-template-columns:repeat(5,1fr);gap:26px;display:grid;position:absolute;left:54px;right:54px}.top-rooms{top:55px}.bottom-rooms{bottom:55px}.room{min-width:0;height:112px;color:var(--ink);text-align:left;background:#fff;border:1px solid #dce1e8;flex-direction:column;padding:14px 13px 11px;transition:all .2s;display:flex;position:relative;overflow:hidden}.room:hover{z-index:2;border-color:#b6c1d1;transform:translateY(-3px);box-shadow:0 10px 24px #19253b1f}.room-hidden{opacity:.16;filter:grayscale();pointer-events:none}.status-bar{background:#98a0ad;height:4px;position:absolute;inset:0 0 auto}.status-available .status-bar,.legend-dot.status-available{background:#21ae78}.status-occupied .status-bar,.legend-dot.status-occupied{background:#7c8797}.status-reserved .status-bar,.legend-dot.status-reserved{background:#8b5bd7}.status-maintenance .status-bar,.legend-dot.status-maintenance{background:#e49a38}.room-top{justify-content:space-between;align-items:center;display:flex}.room-top strong{font-size:14px}.room-top .material-symbols-outlined{color:#7e8999;font-size:17px}.room-note{text-overflow:ellipsis;white-space:nowrap;color:#727d90;margin-top:10px;font-size:10px;overflow:hidden}.room-bottom{justify-content:space-between;align-items:center;margin-top:auto;display:flex}.status-pill{color:#687287;background:#f0f2f5;border-radius:5px;width:fit-content;padding:3px 7px;font-size:9px;font-weight:700;display:inline-flex}.status-available .status-pill{color:#178458;background:#e5f7ef}.status-reserved .status-pill{color:#7244ba;background:#f0eafa}.status-maintenance .status-pill{color:#a86613;background:#fff2df}.room-arrow{opacity:0;color:var(--blue);font-size:15px;transition:all .2s;transform:translate(-5px)}.room:hover .room-arrow{opacity:1;transform:none}.corridor{color:#9ba3b2;text-transform:uppercase;letter-spacing:.24em;background:#f1f3f6;border-block:1px solid #dce1e7;place-items:center;height:104px;font-size:9px;font-weight:700;display:grid;position:absolute;top:218px;left:54px;right:54px}.wayfinding{color:#b0b6c1;letter-spacing:.08em;justify-content:space-between;font-size:8px;display:flex;position:absolute;left:18px;right:18px}.lobby{z-index:1;border:1px solid #d5dbe4;color:#737e91;background:#fafbfc;border-top:0;flex-direction:column;justify-content:center;align-items:center;width:150px;height:90px;display:flex;position:absolute;top:320px;left:50%;transform:translate(-50%)}.lobby .material-symbols-outlined{margin-bottom:4px}.lobby span{font-size:10px;font-weight:700}.lobby small{color:#a2a9b4;margin-top:2px;font-size:8px}.stairs{text-align:center;color:#778295;background:repeating-linear-gradient(0deg,#fafbfc 0 10px,#e2e6ec 11px,#fafbfc 12px);border:1px solid #d5dbe4;place-content:center;gap:4px;height:112px;display:grid}.stairs span{text-transform:uppercase;background:#fafbfce6;padding:2px 5px;font-size:9px;font-weight:700}.legend{left:var(--nav);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);z-index:6;color:#657084;background:#ffffffe6;align-items:center;gap:24px;height:50px;padding:0 28px;font-size:10px;display:flex;position:fixed;bottom:0;right:0}.legend>span{color:#929aaa;text-transform:uppercase;letter-spacing:.12em;font-weight:700}.legend div{align-items:center;gap:7px;display:flex}.legend-dot{border-radius:3px;width:9px;height:9px}.empty-state{text-align:center;color:#7d8798;flex:1;place-content:center;display:grid}.empty-state>.material-symbols-outlined{color:#abb4c2;font-size:48px}.empty-state h2{color:var(--ink);margin:14px 0 5px}.empty-state p{margin:0 0 18px}.secondary-button{color:#40506b;background:#fff;border:1px solid #d6dce5;border-radius:9px;height:38px;margin:auto;padding:0 14px;font-size:11px;font-weight:700}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c142384;place-items:center;padding:20px;animation:.18s fade;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:18px;width:min(400px,100%);padding:28px;animation:.22s pop;position:relative;box-shadow:0 24px 70px #030c1d40}.modal-close{color:#6b7586;background:#f1f3f6;border:0;border-radius:9px;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:17px;right:17px}.modal-icon{width:48px;height:48px;color:var(--blue);background:#edf3ff;border-radius:13px;place-items:center;margin-bottom:20px;display:grid}.modal h2{letter-spacing:-.04em;margin:0 0 10px;font-size:24px}.room-meta{grid-template-columns:1fr 1fr;gap:10px;margin:23px 0;display:grid}.room-meta>div{background:#f5f7fa;border-radius:10px;align-items:center;gap:9px;padding:13px;font-size:11px;display:flex}.room-meta small{color:#929aaa;font-size:9px;display:block}.booking-note{color:#6f788a;background:#faf5eb;border:1px solid #f0dfbe;border-radius:9px;align-items:center;gap:8px;padding:10px;font-size:11px;display:flex}.modal-action{width:100%;margin-top:20px}.booking-form label{color:#5d687a;text-transform:uppercase;letter-spacing:.06em;flex-direction:column;gap:7px;margin-top:17px;font-size:10px;font-weight:700;display:flex}.booking-form input,.booking-form select{height:42px;color:var(--ink);text-transform:none;letter-spacing:0;background:#fff;border:1px solid #dce1e8;border-radius:9px;outline:0;padding:0 11px;font-size:12px}.booking-form input:focus,.booking-form select:focus{border-color:#79a1e8;box-shadow:0 0 0 3px #edf3ff}.selected-booking-room{background:#f6f8fa;border:1px solid #dbe2ea;border-radius:13px;min-height:116px;margin-top:18px;position:relative;overflow:hidden}.selected-room-copy{z-index:2;flex-direction:column;justify-content:center;align-items:flex-start;width:62%;min-height:116px;padding:18px;display:flex;position:relative}.selected-booking-room:not(.has-image) .selected-room-copy{width:100%}.selected-room-copy>span{color:#7e8ca2;letter-spacing:.12em;text-transform:uppercase;font-size:8px;font-weight:700}.selected-room-copy>strong{color:#172338;letter-spacing:-.04em;margin-top:7px;font-size:19px}.selected-room-copy>small{color:#657389;margin-top:5px;font-size:9px;line-height:1.5}.selected-room-image{width:58%;position:absolute;inset:0 0 0 auto}.selected-room-image img{object-fit:cover;width:100%;height:100%;display:block}.selected-room-image:after{content:"";background:linear-gradient(90deg,#f6f8fa 0%,#f6f8fae0 20%,#f6f8fa2e 65%,#0000 100%);position:absolute;inset:0}.booking-form .modal-action,.success-modal .modal-action{background:#19975e;box-shadow:0 7px 17px #19975e40}.booking-form .modal-action:hover,.success-modal .modal-action:hover{background:#137f4e}.form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.success-modal{text-align:center}.success-check{color:#16875c;background:#e1f7ed;border-radius:50%;place-items:center;width:54px;height:54px;margin:0 auto 20px;display:grid}.success-check .material-symbols-outlined{font-size:30px}.success-modal p:not(.eyebrow){color:#798397;font-size:12px}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}@media (width<=1050px){.availability{display:none}.toolbar{grid-template-columns:1fr auto}.plan-scroll{justify-content:flex-start}.user-button{display:none}}@media (width<=720px){:root{--nav:58px;--top:60px}.side-nav{width:var(--nav);padding-inline:7px}.side-nav:hover,.side-nav:focus-within{width:var(--nav)}.brand{margin-inline:2px}.brand-mark{width:40px}.brand-copy,.profile-copy,.side-nav:hover .brand-copy,.side-nav:hover .profile-copy{display:none}.side-nav li button{padding:0 11px}.side-nav li button span:last-child{display:none}.avatar{margin-inline:1px}.top-bar{padding:0 12px}.search{flex:1;width:auto}.top-actions{margin-left:8px}.icon-button{display:none}.primary-button{padding:0 12px}.top-actions .primary-button span:not(.material-symbols-outlined){display:none}.toolbar{min-height:128px;padding:13px 15px;display:block}.toolbar h1{margin-bottom:14px}.controls{justify-content:space-between;gap:8px}.filters>span{display:none}.filters button{padding-inline:9px}.plan-scroll{align-items:flex-start;padding:16px}.legend{left:var(--nav);gap:10px;padding:0 12px;overflow-x:auto}.legend>span{display:none}.legend div{white-space:nowrap}.room-meta{grid-template-columns:1fr}}.error-popup{z-index:300;color:#7f1d1d;background:#fff1f2;border:2px solid #dc2626;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:start;gap:12px;width:min(560px,100vw - 28px);padding:16px 18px;display:grid;position:fixed;top:22px;left:50%;transform:translate(-50%);box-shadow:0 18px 50px #7f1d1d47}.error-popup>.material-symbols-outlined{color:#dc2626;font-size:25px}.error-popup strong{font-size:15px;display:block}.error-popup p{margin:4px 0 0;font-size:13px;line-height:1.45}.error-popup-details{gap:4px;margin-top:9px;font-size:12px;display:grid}.error-popup>button{color:#991b1b;cursor:pointer;background:0 0;border:0;padding:3px}.booked-card-modal{overscroll-behavior:contain;border-radius:15px;width:min(820px,100vw - 32px);max-height:calc(100dvh - 32px);padding:28px;overflow-y:auto}.booked-card-topbar{justify-content:space-between;align-items:center;min-height:34px;display:flex}.booked-card-modal .modal-close{position:static}.booked-back{color:#555;background:#f1f1ee;border:0;border-radius:7px;align-items:center;gap:5px;height:34px;padding:0 10px 0 7px;font-size:10px;font-weight:700;display:inline-flex}.booked-back .material-symbols-outlined{font-size:16px}.booked-card-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-top:18px;display:flex}.booked-card-header h2{color:#202020;letter-spacing:-.04em;margin:0;font-size:30px}.booked-card-header>div>p:last-child{color:#777;margin:5px 0 0;font-size:12px}.booked-status{color:#555;letter-spacing:.05em;text-transform:uppercase;background:#ededeb;border-radius:99px;padding:6px 9px;font-size:9px;font-weight:800}.booked-status.status-checked-in{color:#fff;background:#242424}.booked-status.status-checked-out{color:#386449;background:#e5f0e8}.booked-status.status-cancelled{color:#8a4545;background:#f4e8e8}.booking-stay-summary{background:#f4f4f1;border:1px solid #deded9;border-radius:9px;grid-template-columns:1fr auto 1fr .65fr;align-items:center;gap:14px;margin-top:22px;padding:15px;display:grid}.booking-stay-summary>div{flex-direction:column;gap:4px;display:flex}.booking-stay-summary span{color:#888;letter-spacing:.07em;text-transform:uppercase;font-size:8px;font-weight:750}.booking-stay-summary strong{color:#292929;font-size:11px}.booking-stay-summary>.material-symbols-outlined{color:#999;font-size:17px}.booking-rule-message,.items-locked-note,.booking-action-message{color:#6d4a24;background:#f5efe6;align-items:center;gap:9px;display:flex}.booked-status.status-overtime{color:#b91c1c;background:#fee2e2}.booking-edit-form{background:#f8f8f5;border:1px solid #d8d8d4;border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px;padding:16px;display:grid}.booking-edit-form label{color:#555;text-transform:uppercase;letter-spacing:.04em;gap:6px;min-width:0;font-size:9px;font-weight:750;display:grid}.booking-edit-form input,.booking-edit-form select{box-sizing:border-box;color:#252525;width:100%;min-width:0;height:40px;font:inherit;text-transform:none;letter-spacing:normal;background:#fff;border:1px solid #cfcfca;border-radius:8px;padding:0 10px;font-size:11px}.booking-edit-form .edit-field-wide,.booking-edit-actions{grid-column:1/-1}.booking-edit-actions{justify-content:flex-end;gap:8px;display:flex}.booking-edit-actions button{min-height:38px;padding:0 16px}.past-booking-warning,.early-checkout-note{color:#7a5425;background:#fff3d8;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:10px;line-height:1.4;display:flex}.past-booking-warning .material-symbols-outlined,.early-checkout-note .material-symbols-outlined{flex:none;font-size:17px}.early-checkout-note{color:#386449;background:#e5f0e8;margin-top:12px}.booking-action-message{color:#386449;background:#e5f0e8;border-radius:8px;margin-top:14px;padding:10px 12px;font-size:10px}.booking-action-message .material-symbols-outlined{flex:none;font-size:17px}.booking-rule-message{border-radius:8px;margin-top:14px;padding:11px 12px;font-size:10px;line-height:1.45}.booking-rule-message .material-symbols-outlined,.items-locked-note .material-symbols-outlined{flex:none;font-size:17px}.booking-items-section{margin-top:24px}.booking-section-heading{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.booking-section-heading h3{color:#252525;margin:0;font-size:17px}.booking-section-heading>strong{color:#242424;font-size:13px}.items-locked-note{color:#777;background:#f1f1ee;border-radius:7px;margin:12px 0 0;padding:8px 10px;font-size:9px}.booking-items-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.booking-item{background:#fafaf8;border:1px solid #dfdfdb;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:11px 10px 11px 12px;display:flex}.booking-item>div:first-child{flex-direction:column;gap:3px;min-width:0;display:flex}.booking-item>div:first-child strong{color:#2a2a2a;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.booking-item>div:first-child span{color:#888;font-size:8px}.item-quantity{border:1px solid #d8d8d4;border-radius:7px;flex:none;grid-template-columns:28px 28px 28px;align-items:center;display:grid;overflow:hidden}.item-quantity button{color:#333;background:#efefec;border:0;place-items:center;width:28px;height:28px;padding:0;display:grid}.item-quantity button:disabled{color:#b4b4b0;cursor:not-allowed}.item-quantity .material-symbols-outlined{font-size:15px}.item-quantity>strong{text-align:center;font-size:10px}.booked-card-actions{border-top:1px solid #e2e2de;flex-wrap:wrap;gap:8px;margin-top:24px;padding-top:16px;display:flex}.booked-action{color:#333;background:#f5f5f2;border:1px solid #d5d5d1;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:0 14px;font-size:10px;font-weight:750;display:inline-flex}.booked-action .material-symbols-outlined{font-size:17px}.booked-action:disabled{color:#aaa;cursor:not-allowed}.booked-action.action-check-in,.booked-action.action-check-out{color:#fff;background:#242424;border-color:#242424}.booked-action.action-cancel{color:#8b3f3f;margin-left:auto}.booked-action.action-cancel.is-confirming{color:#fff;background:#a23f3f;border-color:#a23f3f}.booking-complete-message{color:#666;align-items:center;gap:7px;min-height:42px;font-size:10px;display:flex}.booking-complete-message .material-symbols-outlined{color:#477057;font-size:18px}@media (width<=640px){.booked-card-modal{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);padding:20px 16px}.booking-stay-summary{grid-template-columns:1fr 1fr}.booking-stay-summary>.material-symbols-outlined{display:none}.booking-items-grid,.booking-edit-form{grid-template-columns:1fr}.booking-edit-form .edit-field-wide,.booking-edit-actions{grid-column:auto}.booked-card-actions{grid-template-columns:1fr;display:grid}.booked-action.action-cancel{margin-left:0}}.maintenance-panel{background:#fff;border:1px solid #deded9;border-radius:11px;height:100%;padding:28px;overflow-y:auto}.maintenance-panel header h2{margin:3px 0;font-size:30px}.maintenance-panel header>p:last-child{color:#777;font-size:12px}.maintenance-form{grid-template-columns:1fr 1fr;gap:14px;margin:24px 0;display:grid}.maintenance-form label{color:#555;gap:7px;font-size:11px;font-weight:750;display:grid}.maintenance-form input{min-height:44px;font:inherit;border:1px solid #ccc;border-radius:9px;padding:0 12px}.maintenance-note{grid-column:1/-1}.maintenance-form button{justify-content:center}.maintenance-error{color:#991b1b;background:#fef2f2;border-radius:9px;gap:6px;margin-bottom:18px;padding:13px;font-size:12px;display:grid}.maintenance-list{gap:9px;display:grid}.maintenance-list article{border:1px solid #e2e2de;border-radius:10px;justify-content:space-between;align-items:center;gap:18px;padding:14px;display:flex}.maintenance-list article>div:first-child{gap:3px;display:grid}.maintenance-list span,.maintenance-list small{color:#777;font-size:11px}.maintenance-list article>div:last-child{display:flex}.maintenance-list article button{cursor:pointer;background:0 0;border:0;padding:8px}.maintenance-empty{color:#777;place-content:center;justify-items:center;gap:8px;min-height:180px;display:grid}@media (width<=640px){.maintenance-panel{padding:70px 16px 20px}.maintenance-form{grid-template-columns:1fr}.maintenance-note{grid-column:auto}}.booking-modal{overscroll-behavior:contain;border-radius:14px;width:min(760px,100vw - 32px);max-height:calc(100dvh - 32px);padding:32px;overflow-y:auto}.modal.booking-modal.booking-modal-with-timeline{background:#e9e9e6;grid-template-columns:minmax(340px,.82fr) minmax(560px,1.18fr);gap:12px;width:min(1180px,100vw - 280px);height:min(820px,100dvh - 32px);padding:12px;display:grid;overflow:visible}.modal.booking-modal.booking-modal-queue-only{background:#e9e9e6;width:min(1180px,100vw - 280px);height:min(820px,100dvh - 32px);padding:12px;overflow:visible}.booking-modal-queue-only .booking-queue-card{height:100%}.booking-form-card{min-width:0}.booking-modal-with-timeline .booking-form-card,.room-timeline-card,.booking-queue-card{background:#fff;border:1px solid #deded9;border-radius:11px;min-height:0}.booking-modal-with-timeline .booking-form-card{overscroll-behavior:contain;padding:28px;overflow-y:auto}.booking-queue-card{overscroll-behavior:contain;min-width:0;padding:28px;overflow-y:auto}.booking-view-tabs{z-index:4;flex-direction:column;gap:7px;display:flex;position:absolute;top:112px;right:-132px}.booking-view-tabs button{color:#fff;text-align:left;background:#242424;border:1px solid #242424;border-left:0;border-radius:0 9px 9px 0;grid-template-columns:22px 1fr auto;align-items:center;gap:7px;width:132px;min-height:52px;padding:8px 12px;transition:color .16s,background .16s,transform .16s;display:grid;position:relative;box-shadow:6px 6px 18px #0000001a}.booking-view-tabs button:hover{color:#fff;background:#111;transform:translate(3px)}.booking-view-tabs button.is-active{color:#242424;background:#fff;border-color:#d6d6d1}.booking-view-tabs button.is-active:hover{color:#242424;background:#fff}.booking-view-tabs .material-symbols-outlined{font-size:21px}.booking-view-tabs button>span{font-size:11px;font-weight:750;line-height:1.2}.booking-view-tabs button>i{color:#333;background:#fff;border-radius:99px;place-items:center;min-width:18px;height:18px;padding-inline:4px;font-size:8px;font-style:normal;font-weight:800;display:grid}.booking-view-tabs button.is-active>i{color:#fff;background:#242424}.booking-queue-header{padding-right:50px}.booking-queue-kicker{justify-content:space-between;align-items:center;gap:12px;display:flex}.booking-queue-kicker .eyebrow{margin:0}.booking-queue-header h2{color:#202020;letter-spacing:-.04em;margin:0;font-size:30px}.booking-queue-header>p:last-child{color:#777;margin:6px 0 0;font-size:11px}.booking-queue-list{flex-direction:column;gap:8px;margin-top:24px;display:flex}.booking-queue-item{color:#333;text-align:left;background:#f8f8f6;border:1px solid #deded9;border-radius:9px;grid-template-columns:32px minmax(0,1fr) auto 20px;align-items:center;gap:10px;width:100%;min-height:70px;padding:11px 12px;transition:border-color .16s,background .16s,transform .16s;display:grid}.booking-queue-item:hover{background:#fff;border-color:#aaa;transform:translateY(-1px)}.queue-position{color:#aaa;font-variant-numeric:tabular-nums;font-size:10px;font-weight:800}.queue-booking-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.queue-booking-copy strong{color:#252525;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.queue-booking-copy small{color:#777;font-size:9px}.queue-status{color:#686868;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:#e9e9e6;border-radius:99px;padding:5px 7px;font-size:8px;font-weight:800}.queue-status.status-checked-in{color:#fff;background:#242424}.queue-status.is-overdue{color:#973e3e;background:#f2e4e4}.booking-queue-item>.material-symbols-outlined{color:#999;font-size:18px}.booking-queue-empty{color:#888;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:360px;display:flex}.booking-queue-empty .material-symbols-outlined{font-size:36px}.booking-queue-empty strong{color:#333;margin-top:12px;font-size:13px}.booking-queue-empty span{margin-top:4px;font-size:9px}.room-timeline-card{flex-direction:column;padding:28px 24px 24px;display:flex;overflow:hidden}.timeline-header h2{color:#202020;letter-spacing:-.035em;margin:0;font-size:24px}.timeline-header>p:last-child{color:#777;margin:7px 0 0;font-size:11px}.timeline-legend{color:#696969;background:#f4f4f1;border-radius:7px;flex-wrap:wrap;align-items:center;gap:18px;margin-top:18px;padding:10px 12px;font-size:10px;font-weight:650;display:flex}.timeline-booking-count{color:#444;white-space:nowrap;margin-left:auto;font-size:9px;font-weight:750}.timeline-legend span{align-items:center;gap:6px;display:flex}.timeline-legend i{border-radius:2px;width:8px;height:8px}.timeline-legend .maintenance-dot{background:#d97706}.booked-dot{background:#cf3e3e}.selection-dot{background:#fff;border:1px solid #292929}.day-timeline{overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none;flex:1;min-height:0;margin-top:26px;position:relative;overflow-y:auto}.day-timeline::-webkit-scrollbar{width:0;height:0;display:none}.day-timeline:focus-visible{outline-offset:3px;outline:2px solid #555}.timeline-content{height:3456px;margin-right:8px;position:relative}.timeline-cycle{height:1152px;position:relative}.timeline-tick{z-index:1;color:#8a8a8a;pointer-events:none;grid-template-columns:96px 1fr;align-items:center;font-size:9px;display:grid;position:absolute;left:0;right:0;transform:translateY(-50%)}.timeline-time-label{white-space:nowrap;align-items:center;gap:5px;display:flex}.timeline-time-label b{font-size:9px;font-weight:500}.timeline-time-label em{color:#555;letter-spacing:.01em;background:#ecece8;border-radius:4px;padding:2px 4px;font-size:7px;font-style:normal;font-weight:750}.timeline-tick i{background:#e8e8e4;height:1px}.timeline-half-hour{pointer-events:none;background:#f0f0ed;height:1px;position:absolute;left:102px;right:0}.timeline-track{border-left:2px solid #d7d7d2;position:absolute;inset:0 0 0 102px}.timeline-block{z-index:2;text-align:left;border-radius:6px;flex-direction:column;justify-content:center;min-height:18px;padding:6px 9px;font-size:9px;line-height:1.3;display:flex;position:absolute;left:12px;right:4px;overflow:hidden}.timeline-block.is-compact{justify-content:center;padding-block:2px}.timeline-block.is-compact span{display:none}.timeline-block.is-compact strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.timeline-block:before{content:"";border:2px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:50%;left:-17px;transform:translateY(-50%)}.timeline-block strong,.timeline-block span{position:relative}.timeline-block.is-booked{color:#fff;background:#cf3e3e;border:0;box-shadow:0 5px 14px #a220202e}.timeline-block.is-booked:hover{filter:brightness(.94)}.timeline-block.is-booked:focus-visible{outline-offset:2px;outline:2px solid #242424}.timeline-block.is-booked:before{background:#cf3e3e}.timeline-block.is-selection{z-index:3;color:#242424;pointer-events:none;background:#ffffffe6;border:1px solid #292929;left:44%;box-shadow:0 4px 12px #00000014}.timeline-block.is-maintenance{z-index:2;color:#fff;text-shadow:0 1px 2px #000;background:repeating-linear-gradient(135deg,#171717,#171717 8px,#facc15 8px 16px);border:0}.timeline-block.is-maintenance:before{background:#d97706}.timeline-block.is-selection:before{display:none}.timeline-block.continues-into-next{box-shadow:none;border-bottom-right-radius:0;border-bottom-left-radius:0}.timeline-block.continues-from-previous{border-top-left-radius:0;border-top-right-radius:0}.timeline-block.is-selection.continues-into-next{border-bottom:0}.timeline-block.is-selection.continues-from-previous{border-top:0}.booking-modal .modal-close{width:40px;height:40px;top:22px;right:22px}.booking-modal-with-timeline .modal-close,.booking-modal-queue-only .modal-close{z-index:5}.booking-form-header{padding-right:54px}.booking-form-header h2{text-wrap:balance;margin-bottom:6px;font-size:30px}.booking-form-header>p:last-child{color:#747474;text-wrap:pretty;max-width:58ch;margin:0;font-size:12px;line-height:1.55}.booking-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px;margin-top:24px;display:grid}.booking-form .booking-field{gap:7px;min-width:0;margin:0}.booking-field>span{color:#595959;letter-spacing:.07em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:10px;font-weight:750;display:flex}.booking-field>span i{color:#8a8a8a;letter-spacing:.04em;font-size:8px;font-style:normal;font-weight:650}.booking-form .booking-field input,.booking-form .booking-field select{border-radius:8px;height:50px;padding-inline:14px;font-size:14px}.field-span-2{grid-column:1/-1}.locked-room-field{color:#333;background:#efefec;border:1px solid #d8d8d5;border-radius:8px;grid-template-columns:auto auto 1fr;align-items:center;gap:9px;height:50px;padding:0 14px;display:grid}.locked-room-field .material-symbols-outlined{color:#777;font-size:16px}.locked-room-field strong{font-size:13px}.locked-room-field small{color:#777;text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.duration-input-wrap{background:#f7f7f5;border:1px solid #d8d8d5;border-radius:8px;grid-template-columns:48px minmax(0,1fr) auto 48px;align-items:center;height:50px;transition:border-color .16s,box-shadow .16s;display:grid;overflow:hidden}.booking-form .duration-input-wrap input{color:#202020;appearance:textfield;background:0 0;border:0;border-radius:0;outline:0;width:100%;height:48px;padding:0 8px 0 14px;font-size:14px;font-weight:700}.booking-form .duration-input-wrap input::-webkit-inner-spin-button{appearance:none;margin:0}.booking-form .duration-input-wrap input::-webkit-outer-spin-button{appearance:none;margin:0}.duration-input-wrap:focus-within{border-color:#777;box-shadow:0 0 0 3px #1e1e1e14}.duration-unit{color:#777;letter-spacing:.04em;text-transform:uppercase;pointer-events:none;font-size:11px;font-weight:650}.booking-form .duration-step-button{color:#333;background:#efefec;border:0;place-items:center;width:48px;height:48px;padding:0;transition:background .16s;display:grid}.booking-form .duration-step-button:first-child{border-right:1px solid #d8d8d5}.booking-form .duration-step-button:last-child{border-left:1px solid #d8d8d5}.booking-form .duration-step-button:hover:not(:disabled){background:#e4e4e0}.booking-form .duration-step-button:focus-visible{z-index:1;outline-offset:-3px;outline:2px solid #333;position:relative}.booking-form .duration-step-button:disabled{color:#aaa;cursor:not-allowed}.duration-step-button .material-symbols-outlined{font-size:18px}.booking-form .duration-label{color:#595959;letter-spacing:.07em;text-transform:uppercase;flex-direction:row;justify-content:space-between;align-items:center;margin:0;font-size:10px;font-weight:750;display:flex}.duration-label i{color:#8a8a8a;letter-spacing:.04em;font-size:8px;font-style:normal;font-weight:650}.booking-end-time{color:#777;font-size:10px;line-height:1.4}.field-error{color:#b91c1c;letter-spacing:0;text-transform:none;font-size:10px;font-weight:650;line-height:1.4}.booking-field input[aria-invalid=true]{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261f}.booking-modal .create-booking-button{border-radius:7px;height:50px;margin-top:24px;font-size:13px}.booking-success-modal{width:min(480px,100vw - 32px);padding:34px}.booking-confirmation-summary{color:#676767;background:#f2f2ef;border:1px solid #dededb;border-radius:8px;flex-direction:column;gap:5px;margin-top:20px;padding:16px;font-size:11px;line-height:1.5;display:flex}.booking-confirmation-summary strong{color:#222;font-size:14px}.booking-success-modal .manage-booking-button{width:100%;margin-top:8px}@media (width<=640px){.booking-modal{width:min(100%,100vw - 20px);max-height:calc(100dvh - 20px);padding:24px 18px}.booking-modal .modal-close{top:16px;right:16px}.booking-form-header h2{font-size:25px}.booking-form-grid{grid-template-columns:1fr;gap:15px}.field-span-2{grid-column:auto}}@media (width<=940px){.modal.booking-modal.booking-modal-with-timeline{width:min(760px,100vw - 20px);height:calc(100dvh - 20px);padding:10px;display:block;overflow-y:auto}.room-timeline-card{min-height:650px;margin-bottom:10px}.booking-modal-with-timeline .booking-form-card{padding:24px 18px;overflow:visible}.booking-queue-card{min-height:560px;padding:70px 18px 24px;overflow:visible}.modal.booking-modal.booking-modal-queue-only{width:min(760px,100vw - 20px);height:calc(100dvh - 20px);padding:10px}}@media (width>=941px) and (width<=1200px){.modal.booking-modal.booking-modal-with-timeline,.modal.booking-modal.booking-modal-queue-only{width:min(1000px,100vw - 32px);padding:12px}}@media (width<=1200px){.booking-view-tabs{flex-direction:row;top:22px;right:70px}.booking-view-tabs button{width:auto;min-height:36px;box-shadow:none;border-left:1px solid #d6d6d1;border-radius:8px;padding-block:6px}.booking-view-tabs button:hover{transform:translateY(-1px)}.booking-modal-with-timeline .booking-form-card,.booking-modal-with-timeline .booking-queue-card,.booking-modal-queue-only .booking-queue-card{padding-top:72px}}@media (width<=640px){.modal.booking-modal.booking-modal-with-timeline,.modal.booking-modal.booking-modal-queue-only{padding:8px}.room-timeline-card{min-height:620px;padding:24px 16px 20px}.timeline-header h2{font-size:21px}.locked-room-field{grid-template-columns:auto auto}.locked-room-field small{display:none}}@media (prefers-reduced-motion:reduce){.modal-backdrop,.modal{animation:none}}.app-shell .side-nav{z-index:40;visibility:hidden;opacity:0;pointer-events:none;width:min(254px,100vw - 28px);padding:18px 12px 16px;transition:transform .24s cubic-bezier(.16,1,.3,1),opacity .18s,visibility 0s linear .24s;transform:translate(-100%);box-shadow:12px 0 32px #0d162b29}.app-shell .side-nav.is-open{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s;transform:translate(0,0)}.app-shell .side-nav:hover,.app-shell .side-nav:focus-within{width:min(254px,100vw - 28px)}.side-nav .brand{height:44px;margin:0 8px 26px}.side-nav .brand-mark{width:44px;height:44px;box-shadow:none;background:#2865d0;border-radius:10px;flex-basis:44px}.side-nav .brand-copy,.side-nav:hover .brand-copy,.side-nav:focus-within .brand-copy{opacity:1;display:flex}.drawer-close{color:#aeb8ca;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:7px;place-items:center;width:34px;height:34px;margin-left:auto;transition:color .16s,background .16s,transform .12s;display:grid}.drawer-close:active{transform:scale(.94)}.side-nav li button{padding:0 15px}.side-nav li button span:last-child,.side-nav:hover li button span:last-child,.side-nav:focus-within li button span:last-child{opacity:1;display:inline}.side-nav .profile-copy,.side-nav:hover .profile-copy,.side-nav:focus-within .profile-copy{opacity:1;display:flex}.nav-backdrop{z-index:35;opacity:0;visibility:hidden;pointer-events:none;background:#10182b47;border:0;transition:opacity .18s,visibility 0s linear .18s;position:fixed;inset:0}.nav-backdrop.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}.app-shell .top-bar{gap:18px;height:72px;padding:0 18px;left:0}.app-shell{--top:72px}.top-leading{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.compact-map-title{white-space:nowrap;align-items:baseline;gap:8px;min-width:238px;display:flex}.compact-map-title h1{color:#182033;letter-spacing:-.025em;margin:0;font-size:17px;line-height:1}.compact-map-title span{color:#7a8596;font-size:11px;font-weight:600}.top-page-title{color:#182033;letter-spacing:-.035em;white-space:nowrap;min-width:112px;margin:0;font-size:20px;line-height:1}.top-leading .search{width:clamp(180px,21vw,320px)}.header-map-controls{white-space:nowrap;align-items:center;gap:10px;display:flex}.header-map-controls .availability{margin-right:4px;font-size:10px}.header-map-controls .floor-picker,.compact-filters{flex:none}.compact-filters button{border-radius:7px;height:30px;padding-inline:10px}.menu-trigger{color:#445268;background:#fff;border:1px solid #dde3ea;border-radius:8px;flex:0 0 40px;place-items:center;width:40px;height:40px;transition:color .16s,background .16s,transform .12s;display:grid}.menu-trigger:hover{color:#1f5eb5;background:#f3f6f9}.menu-trigger:active{transform:scale(.95)}.menu-trigger:focus-visible,.drawer-close:focus-visible{outline-offset:2px;outline:2px solid #6f98cf}.app-shell .main-content{padding-left:0}.app-shell .legend{left:0}@media (width<=720px){.app-shell .side-nav,.app-shell .side-nav:hover,.app-shell .side-nav:focus-within{width:min(292px,100vw - 24px);padding-inline:12px}.side-nav .brand{margin-inline:8px}.side-nav .brand-copy,.side-nav .profile-copy,.side-nav:hover .brand-copy,.side-nav:hover .profile-copy{display:flex}.side-nav li button{padding:0 15px}.side-nav li button span:last-child{display:inline}.top-leading{gap:8px}.compact-map-title{min-width:0}.compact-map-title h1{text-overflow:ellipsis;max-width:42vw;overflow:hidden}.top-page-title{min-width:auto;font-size:18px}.compact-map-title span,.top-leading .search,.header-map-controls,.top-actions .icon-button{display:none}.menu-trigger{flex-basis:38px;width:38px;height:38px}.app-shell .legend{left:0}}@media (width<=1380px){.header-map-controls .availability,.top-actions .user-button{display:none}}@media (width<=1120px){.top-leading .search,.top-actions .icon-button{display:none}}@media (width<=880px){.compact-filters{display:none}}.ops-page{background:#f5f7fa;flex:1;min-height:0;padding:28px;overflow:auto}.ops-page-header{justify-content:space-between;align-items:flex-end;margin-bottom:24px;display:flex}.ops-page-header p{color:#7e8ba1;letter-spacing:.14em;text-transform:uppercase;margin:0 0 6px;font-size:9px;font-weight:700}.ops-page-header h1{color:#172338;letter-spacing:-.04em;margin:0;font-size:25px}.ops-page-header span{color:#768297;margin-top:5px;font-size:11px;display:block}.ops-card{background:#fff;border:1px solid #dfe4eb;border-radius:13px;box-shadow:0 4px 12px #1522360d}.ops-card-toolbar{border-bottom:1px solid #e8ecf1;justify-content:space-between;align-items:center;min-height:67px;padding:0 20px;display:flex}.ops-card-toolbar h2{margin:0;font-size:14px}.ops-card-toolbar>div>span{color:#8a95a6;margin-top:3px;font-size:9px;display:block}.status-tabs{gap:4px;display:flex}.status-tabs button{color:#7c8797;background:0 0;border:0;border-radius:7px;height:30px;padding:0 10px;font-size:9px;font-weight:600}.status-tabs button.active{color:#245bb5;background:#eaf1fc}.booking-table-wrap{overflow-x:auto}.booking-table{border-collapse:collapse;text-align:left;width:100%;min-width:850px}.booking-table th{color:#8a95a6;letter-spacing:.08em;text-transform:uppercase;background:#fafbfc;height:39px;padding:0 15px;font-size:8px;font-weight:700}.booking-table td{color:#59677b;border-top:1px solid #eef1f4;height:63px;padding:9px 15px;font-size:10px}.booking-table td>strong,.guest-cell strong{color:#263247;font-size:10px;display:block}.booking-table td>small,.guest-cell small{color:#929cab;margin-top:3px;font-size:8px;display:block}.map-floor-navigator{z-index:5;background:#fffffff5;border:1px solid #d7dce3;border-radius:9px;width:72px;padding:10px 8px 9px;position:absolute;top:174px;left:18px;box-shadow:0 3px 12px #1b2b3e14}.floor-navigator-label{color:#8a94a2;letter-spacing:.12em;text-align:center;text-transform:uppercase;margin-bottom:9px;font-size:7px;font-weight:800;display:block}.floor-node-list{flex-direction:column;gap:7px;display:flex;position:relative}.floor-node-list:before{content:"";background:#d4d8de;width:1px;position:absolute;top:17px;bottom:17px;left:12px}.floor-node-list button{color:#747f8e;text-align:left;background:0 0;border:1px solid #0000;border-radius:7px;grid-template-columns:10px 1fr auto;align-items:center;gap:5px;width:54px;height:38px;padding:0 8px;transition:color .16s,border-color .16s,background .16s,transform .16s;display:grid;position:relative}.floor-node-list button:hover{color:#222;background:#f1f3f5;transform:translate(1px)}.floor-node-list button i{z-index:1;background:#aeb5bf;border:2px solid #fff;border-radius:50%;width:9px;height:9px;position:relative;box-shadow:0 0 0 1px #c5cad1}.floor-node-list button span{font-size:13px;font-weight:800}.floor-node-list button small{text-transform:uppercase;font-size:7px;font-weight:800}.floor-node-list button.is-active{color:#fff;background:#242424;border-color:#242424;box-shadow:0 4px 10px #00000029}.floor-node-list button.is-active i{background:#fff;box-shadow:0 0 0 1px #fff}.guest-cell{align-items:center;gap:9px;display:flex}.guest-cell>span{color:#38577e;background:#e8eef6;border-radius:9px;place-items:center;width:31px;height:31px;font-size:9px;font-weight:700;display:grid}.booking-status,.guest-status{color:#24714e;background:#e4f6ed;border-radius:99px;padding:5px 8px;font-size:8px;font-weight:700;display:inline-flex}.booking-status.checked-in{color:#2f63a5;background:#e8f0fb}.booking-status.overtime{color:#b91c1c;background:#fee2e2}.booking-status.due-out{color:#a76614;background:#fff0da}.table-more{color:#7c8797;background:0 0;border:0;border-radius:7px;place-items:center;width:28px;height:28px;display:grid}.bookings-empty{color:#7c8797;text-align:center;height:180px}.table-more:hover{background:#f0f3f7}@media (width<=720px){.ops-page{padding:18px 14px}.ops-page-header{align-items:flex-start;gap:14px}.status-tabs{overflow-x:auto}.ops-card-toolbar{flex-direction:column;align-items:flex-start;gap:10px;padding-block:12px}}.booking-list-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:18px;display:flex}.booking-date-filter{color:#64748b;align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.booking-date-filter input{color:#172033;min-height:38px;font:inherit;background:#fff;border:1px solid #dbe2ea;border-radius:9px;padding:0 10px}.bookings-load-error{color:#b91c1c;background:#fef2f2;border-top:1px solid #fecaca;margin:0;padding:10px 20px}.daily-schedule-page{background:#f5f7fa;flex:1;min-width:0;padding:22px;overflow:hidden}.schedule-toolbar{background:#fff;border:1px solid #dfe4eb;border-radius:13px 13px 0 0;justify-content:space-between;align-items:center;gap:16px;min-height:62px;padding:10px 16px;display:flex}.schedule-date-control,.schedule-floor-tabs,.schedule-legend{align-items:center;gap:8px;display:flex}.schedule-toolbar button,.schedule-toolbar input{color:#334155;min-height:36px;font:inherit;background:#fff;border:1px solid #dbe2ea;border-radius:8px;font-weight:700}.schedule-toolbar button{cursor:pointer;padding:0 12px}.schedule-toolbar input{padding:0 10px}.schedule-toolbar button.active,.schedule-toolbar .schedule-today{color:#fff;background:#242424;border-color:#242424}.schedule-error{color:#b91c1c;background:#fef2f2;border-inline:1px solid #fecaca;margin:0;padding:10px 16px}.schedule-legend{color:#64748b;background:#fff;border-inline:1px solid #dfe4eb;padding:10px 16px;font-size:11px}.schedule-legend span{align-items:center;gap:5px;display:flex}.schedule-legend i{border-radius:3px;width:10px;height:10px}.schedule-legend .booked{background:#8b5cf6}.schedule-legend .checked-in{background:#2563eb}.schedule-legend .overtime{background:#dc2626}.schedule-legend .maintenance{background:repeating-linear-gradient(135deg,#171717 0 4px,#facc15 4px 8px)}.schedule-scroll{background:#fff;border:1px solid #dfe4eb;border-radius:0 0 13px 13px;height:calc(100vh - 230px);min-height:420px;overflow:auto}.schedule-board{min-width:1840px;position:relative}.schedule-header-row{z-index:6;background:#f8fafc;grid-template-columns:112px 1fr;height:48px;display:grid;position:sticky;top:0}.schedule-corner{z-index:7;color:#64748b;background:#f8fafc;border-bottom:1px solid #dfe4eb;border-right:1px solid #dfe4eb;place-items:center;width:112px;height:48px;font-size:11px;font-weight:800;display:grid;position:sticky;left:0}.schedule-hours{background:#f8fafc;border-bottom:1px solid #dfe4eb;height:48px;position:relative}.schedule-hours span{color:#64748b;font-size:10px;font-weight:700;position:absolute;bottom:12px;transform:translate(-50%)}.schedule-row{grid-template-columns:112px 1fr;min-height:64px;display:grid}.schedule-room-label{z-index:4;background:#fff;border-bottom:1px solid #edf0f4;border-right:1px solid #dfe4eb;flex-direction:column;justify-content:center;padding:0 12px;display:flex;position:sticky;left:0}.schedule-room-label strong{color:#172033;font-size:15px}.schedule-room-label span{color:#94a3b8;font-size:8px;font-weight:700}.schedule-track{background-image:linear-gradient(90deg,#94a3b838 1px,#0000 1px),linear-gradient(90deg,#94a3b81a 1px,#0000 1px);background-size:4.16667% 100%,2.08333% 100%;border-bottom:1px solid #edf0f4;min-height:64px;position:relative}.schedule-block{z-index:2;color:#fff;text-align:left;white-space:nowrap;border:0;border-radius:6px;min-width:3px;height:46px;padding:5px 7px;position:absolute;top:9px;overflow:hidden}button.schedule-block{cursor:pointer}.schedule-block strong,.schedule-block span{text-overflow:ellipsis;display:block;overflow:hidden}.schedule-block strong{font-size:10px}.schedule-block span{opacity:.9;margin-top:3px;font-size:8px}.booking-block.status-booked{background:#7c3aed}.booking-block.status-checked-in{background:#2563eb}.booking-block.status-overtime{background:#dc2626}.maintenance-block{color:#fff;background:repeating-linear-gradient(135deg,#171717 0 8px,#d9a900 8px 16px)}.schedule-now-line{z-index:3;pointer-events:none;background:#ef4444;width:2px;position:absolute;top:0;bottom:0}.schedule-now-label{z-index:4;color:#dc2626;font-size:7px;font-style:normal;font-weight:900;position:absolute;top:3px;transform:translate(-50%)}@media (width<=720px){.daily-schedule-page{padding:12px}.schedule-toolbar{flex-direction:column;align-items:flex-start}.schedule-scroll{height:calc(100vh - 280px)}}.building-picker{background:#fff;border:1px solid #dde3eb;border-radius:9px;height:37px;padding:3px;display:flex}.building-picker button{color:#7a8495;background:0 0;border:0;border-radius:6px;padding:0 11px;font-size:10px;font-weight:700}.building-picker button.active{color:#174fae;background:#edf3fc}.floor-map-scroll{background-color:#eef3f9;background-image:linear-gradient(#dbe4ef 1px,#0000 1px),linear-gradient(90deg,#dbe4ef 1px,#0000 1px);background-size:28px 28px;flex:1;min-height:0;overflow:auto}.floor-map-content{width:min(100%,1080px);min-width:850px;margin:0 auto;padding:90px 30px 135px}.map-heading{color:#64738b;justify-content:space-between;align-items:center;margin-bottom:17px;font-size:13px;display:flex}.map-heading>div{align-items:center;gap:8px;display:flex}.map-heading svg{color:#52749c}.map-heading strong{color:#162338}.map-heading p{margin:0;font-size:11px}.map-heading p strong{font-variant-numeric:tabular-nums}.building-shell{background:#ffffffb8;border:2px solid #dae2ec;border-radius:14px;overflow:visible;box-shadow:0 3px 8px #2a394f14}.building-shell>.wing-header:first-child{border-radius:12px 12px 0 0}.building-shell>.building-footer:last-child{border-radius:0 0 12px 12px}.wing-header{background:#f8fafcdb;border-bottom:1px solid #e9edf2;justify-content:space-between;align-items:center;min-height:43px;padding:0 23px;display:flex}.wing-header>strong{color:#61748e;letter-spacing:.16em;text-transform:uppercase;font-size:10px}.landmarks{color:#65758d;align-items:center;gap:15px;font-size:10px;display:flex}.landmarks span{align-items:center;gap:5px;display:flex}.landmarks i{background:#f4f7fa;border:1px solid #ccd7e4;border-radius:8px;place-items:center;width:22px;height:22px;font-size:8px;font-style:normal;font-weight:700;display:grid}.landmarks .exit-marker{color:#e06165}.wing-rooms{flex-wrap:wrap;align-items:center;gap:13px;min-height:142px;padding:20px 23px;display:flex}.room-tile-anchor{flex:0 0 108px;width:108px;height:108px;position:relative}.room-tile-anchor:after{content:"";z-index:49;width:100%;height:14px;position:absolute;left:0}.room-tile-anchor.preview-top:after{bottom:100%}.room-tile-anchor.preview-bottom:after{top:100%}.room-tile-anchor:hover,.room-tile-anchor:focus-within{z-index:30}.hotel-room-tile{color:#172338;text-align:left;background:#f7f8fa;border:2px solid #d8dde5;border-radius:11px;outline:none;flex-direction:column;flex:0 0 108px;justify-content:space-between;align-items:stretch;width:108px;height:108px;padding:10px;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex;position:relative}.hotel-room-tile:hover{z-index:4;border-color:#aeb8c6;transform:translateY(-2px);box-shadow:0 8px 18px #1e2c4121}.hotel-room-tile:focus-visible{box-shadow:0 0 0 3px #2563eb3d}.hotel-room-tile.selected{border-color:#2563eb;box-shadow:0 7px 17px #2563eb29,0 0 0 3px #2563eb24}.hotel-room-tile.status-available{background:#edfcf3;border-color:#89edb5}.tile-status{color:#7d8796;align-items:center;gap:3px;display:flex;position:absolute;top:9px;right:8px}.tile-status i{background:#8c95a3;border-radius:50%;width:6px;height:6px}.status-available .tile-status{color:#1aaa64}.status-available .tile-status i{background:#1bbb67}.status-maintenance .tile-status,.status-reserved .tile-status{color:#9299a4}.status-maintenance .tile-status i,.status-reserved .tile-status i{background:#a9aeb7}.tile-heading{flex-direction:column;display:flex}.tile-heading strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:16px;line-height:1}.tile-heading small{color:#526178;margin-top:5px;font-size:9px;font-weight:700}.status-available .tile-heading small{color:#088341}.tile-guest,.tile-alert{color:#28354a;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:9px;line-height:1.2;overflow:hidden}.tile-alert{color:#7d715f;text-align:left}.tile-details{color:#61718a;justify-content:space-between;align-items:center;font-size:9px;display:flex}.tile-details span{align-items:center;gap:3px;display:flex}.room-hover-card{z-index:50;color:#172338;background:#fff;border:1px solid #c7d2dfe6;border-radius:16px;width:310px;height:172px;animation:.15s ease-out hover-card-in;position:absolute;top:auto;overflow:hidden;transform:none;box-shadow:0 18px 45px #17233833,0 4px 12px #1723381a}.preview-top .room-hover-card{bottom:calc(100% + 12px)}.preview-bottom .room-hover-card{top:calc(100% + 12px)}.preview-align-start .room-hover-card{left:0}.preview-align-center .room-hover-card{left:50%;transform:translate(-50%)}.preview-align-end .room-hover-card{right:0}.room-hover-card.no-photo{width:235px;height:158px}.hover-card-content{z-index:2;flex-direction:column;align-items:flex-start;width:61%;height:100%;padding:17px 10px 14px 17px;display:flex;position:relative}.no-photo .hover-card-content{width:100%;padding-right:17px}.hover-status{color:#687487;letter-spacing:.04em;text-transform:uppercase;background:#f0f2f5;border-radius:99px;align-items:center;gap:4px;min-height:20px;padding:0 7px;font-size:8px;font-weight:700;display:inline-flex}.hover-status.status-available{color:#107546;background:#dcf6e8}.hover-status.status-maintenance{color:#7d6a4e;background:#f5efe5}.hover-card-content h3{letter-spacing:-.04em;margin:9px 0 2px;font-size:18px;line-height:1.05}.hover-card-content>p{color:#66748a;margin:0;font-size:9px;font-weight:600}.hover-capacity{color:#8792a3;align-items:center;gap:4px;margin-top:7px;font-size:8px;display:flex}.hover-book-button{color:#fff;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-width:104px;height:30px;margin-top:auto;padding:0 11px;font-size:9px;font-weight:700;transition:transform .15s,background .15s;display:inline-flex}.hover-book-button.bookable{background:#1a9b61;box-shadow:0 5px 12px #1a9b6138}.hover-book-button.bookable:hover{background:#148452;transform:translateY(-1px)}.hover-book-button.unavailable{color:#7c8592;box-shadow:none;cursor:not-allowed;background:#e4e7eb}.hover-card-photo{z-index:1;width:58%;position:absolute;inset:0 0 0 auto}.hover-card-photo img{object-fit:cover;width:100%;height:100%;display:block}.hover-card-photo:after{content:"";background:linear-gradient(90deg,#fff 0%,#fffffff0 16%,#ffffff7a 47%,#ffffff0a 78%);position:absolute;inset:0}@keyframes hover-card-in{0%{opacity:0}}.hotel-corridor{color:#8aa0bd;letter-spacing:.16em;text-transform:uppercase;background:#f0f4f8;border-block:1px dashed #dce3ec;place-items:center;height:45px;margin:0 23px;font-size:9px;font-weight:600;display:grid;position:relative}.hotel-corridor i{background:#ccd5e0;border-radius:0 0 5px 5px;width:27px;height:6px;position:absolute;top:0}.hotel-corridor i.bottom-door{border-radius:5px 5px 0 0;top:auto;bottom:0}.bottom-wing-header{border-top:1px solid #edf0f4;justify-content:flex-start}.building-footer{color:#65758d;background:#f8fafcd1;border-top:1px solid #e8edf2;justify-content:space-between;align-items:center;min-height:39px;padding:0 23px;font-size:9px;display:flex}.building-footer span{align-items:center;gap:5px;display:flex}.no-rooms{color:#8a96a7;text-align:center;width:100%;margin:0;font-size:12px}@media (width<=1220px){.toolbar{grid-template-columns:auto 1fr;gap:12px}.availability{display:none}.controls{justify-content:flex-end;gap:10px}}@media (width<=850px){.toolbar{min-height:148px;display:block}.toolbar h1{margin-bottom:14px}.controls{justify-content:flex-start;overflow-x:auto}.building-picker,.floor-picker,.filters{flex:none}.floor-map-content{padding:90px 18px 135px}}.floor-map-scroll{background-color:#eef1f3;background-image:linear-gradient(#7d899412 1px,#0000 1px),linear-gradient(90deg,#7d899412 1px,#0000 1px);background-size:32px 32px;flex-direction:column;display:flex;position:relative;overflow:hidden}.map-viewport{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;outline:none;flex:1;min-height:0;position:relative;overflow:hidden}.map-viewport:focus-visible{box-shadow:inset 0 0 0 2px #245c918c}.map-viewport.is-dragging{cursor:grabbing}.map-camera{transform-origin:0 0;will-change:transform;position:absolute;inset:0}.floor-map-stage{transform-origin:0 0;width:calc(100% - 120px);min-width:850px;max-width:1440px;margin:34px auto 92px}.indoor-map-svg{filter:drop-shadow(0 6px 10px #26303a0b);width:100%;height:auto;display:block;overflow:visible}.floor-plate{fill:#f9faf9;stroke:#6f7a85;stroke-width:3px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.floor-atrium{fill:#e7eaec;stroke:#9aa4ae;stroke-width:1.5px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.floor-corridors .lobby,.floor-corridors .service{fill:#f4f5f4}.floor-walls path{fill:none;stroke:#8f9aa5;stroke-width:1.5px;vector-effect:non-scaling-stroke}.floor-zones rect{fill:#f1f2f1;stroke:#c6ccd1;stroke-width:1px;stroke-dasharray:6 6}.floor-zones text{fill:#9aa2aa;letter-spacing:.14em;text-anchor:middle;font-size:11px;font-weight:700}.map-stair rect,.map-escalator rect{fill:#f7f8f7;stroke:#8f9aa5;stroke-width:1.5px;vector-effect:non-scaling-stroke}.map-stair line,.map-stair path,.map-escalator line{fill:none;stroke:#9ba5af;stroke-width:1px;vector-effect:non-scaling-stroke}.floor-entrances circle{fill:#fff;stroke:#7b8792;stroke-width:1.5px}.floor-entrances text{fill:#68747f;font-size:9px;font-weight:650}.map-room{cursor:pointer;outline:none}.map-room-shape{fill:#fff;stroke:#7d8997;stroke-width:2px;vector-effect:non-scaling-stroke;transition:fill .15s,stroke .15s,opacity .15s}.map-room:hover .map-room-shape,.map-room:focus .map-room-shape,.map-room.is-selected .map-room-shape{stroke:#245c91;stroke-width:3px}.map-room.status-available .map-room-shape{fill:#edf5ef;stroke:#4a9b70}.map-room.status-occupied .map-room-shape{fill:#eef0f1;stroke:#7b8795}.map-room.status-reserved .map-room-shape{fill:#f1edf6;stroke:#8567ad}.map-room.status-maintenance .map-room-shape{fill:#f8f1e7;stroke:#c2883e}.map-room.has-safety-alert .map-room-shape{stroke:#dc2626;stroke-width:4px;stroke-dasharray:10 5}.room-safety-alert{color:#b91c1c;font-size:9px;font-weight:800;line-height:1.35}.map-room.is-filtered{pointer-events:none}.map-room.is-filtered .map-room-shape,.map-room.is-filtered text,.map-room.is-filtered circle{opacity:.18;filter:grayscale()}.map-room-number,.map-room-label{fill:#233247;pointer-events:none;text-anchor:middle}.map-room-number{letter-spacing:-.03em;font-size:18px;font-weight:800}.map-room-label{fill:#758396;letter-spacing:.08em;font-size:9px;font-weight:700}.map-room-status{fill:#7c8797;pointer-events:none}.map-room-current,.map-room-timing{text-anchor:middle;pointer-events:none;font-weight:750}.map-room-current{fill:#334155;font-size:8px}.map-room-timing{fill:#64748b;font-size:7px}.room-preview-timing{color:#334155;font-size:11px;font-weight:750}.status-available .map-room-status{fill:#21ae78}.status-reserved .map-room-status{fill:#8b5bd7}.status-maintenance .map-room-status{fill:#e49a38}.map-landmarks rect{fill:#fff;stroke:#b8c3cf;stroke-width:1.5px}.map-landmarks text{fill:#536579;font-weight:800}.landmark-icon{text-anchor:middle;font-size:11px}.landmark-label{font-size:8px}.map-zoom-controls{z-index:5;background:#fffffff5;border:1px solid #d9dfe5;border-radius:8px;flex-direction:column;width:40px;display:flex;position:absolute;top:18px;left:18px;overflow:hidden;box-shadow:0 3px 12px #1b2b3e14}.map-zoom-controls button{color:#55667a;background:#fff;border:0;border-bottom:1px solid #e2e7ed;place-items:center;width:38px;height:38px;transition:color .16s,background .16s,transform .12s;display:grid}.map-zoom-controls button:last-child{border-bottom:0}.map-zoom-controls button:active{transform:scale(.94)}.map-zoom-controls button:focus-visible{outline-offset:-3px;outline:2px solid #245c91}.map-zoom-controls output{color:#798594;font-variant-numeric:tabular-nums;background:#f8f9f9;border-bottom:1px solid #e2e7ed;place-items:center;height:25px;font-family:SF Mono,Geist Mono,monospace;font-size:8px;display:grid}.north-indicator{z-index:4;color:#5a697a;letter-spacing:.12em;flex-direction:column;align-items:center;width:34px;font-size:9px;font-weight:800;display:flex;position:absolute;top:28px;right:28px}.north-indicator i{filter:drop-shadow(0 2px 2px #14305333);border-bottom:25px solid #254f86;border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;margin-bottom:4px}.map-room-preview{z-index:12;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border:1px solid #cfd8e3f2;border-radius:14px;flex-direction:column;width:236px;padding:16px;animation:.14s ease-out hover-card-in;display:flex;position:absolute;bottom:67px;right:28px;box-shadow:0 16px 38px #19283b33}.map-gesture-hint{z-index:4;color:#707c89;letter-spacing:.02em;pointer-events:none;background:#ffffffeb;border:1px solid #d4dbe1f0;border-radius:6px;align-items:center;gap:7px;min-height:28px;padding:0 10px;font-size:8px;font-weight:650;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.map-gesture-hint span{background:#d7dde2;width:1px;height:10px}.map-viewport.is-dragging .map-room,.map-viewport.is-dragging .map-room-preview{pointer-events:none}.preview-status{color:#6e7b8d;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:5px;font-size:8px;font-weight:800;display:flex}.preview-status i{background:currentColor;border-radius:50%;width:7px;height:7px}.preview-status.status-available{color:#19965f}.preview-status.status-reserved{color:#8155bd}.preview-status.status-maintenance{color:#c47d27}.map-room-preview>strong{color:#19283d;margin-top:8px;font-size:18px}.map-room-preview>small{color:#748296;margin:3px 0 13px;font-size:9px}.map-room-preview button{color:#fff;background:#1959d1;border:0;border-radius:8px;height:32px;font-size:9px;font-weight:700}.map-room-preview button:disabled{color:#88919d;background:#e6e9ed}@media (width<=850px){.floor-map-stage{width:calc(100% - 52px);margin:24px 26px 90px}.map-room-preview{bottom:62px;right:14px}.map-gesture-hint{display:none}}.login-page{background:#f7f9fc;grid-template-columns:minmax(430px,1.08fr) minmax(400px,.92fr);width:100%;min-height:100vh;display:grid;overflow:hidden}.login-showcase{color:#fff;background:radial-gradient(circle at 84% 14%,#3779ea57,#0000 34%),linear-gradient(145deg,#10182b 0%,#172746 62%,#163354 100%);flex-direction:column;min-height:100vh;padding:34px 42px;display:flex;position:relative;overflow:hidden}.login-showcase:after{content:"";pointer-events:none;background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-size:32px 32px;position:absolute;inset:0}.login-brand,.login-message,.login-showcase footer{z-index:3;position:relative}.login-brand{align-items:center;gap:12px;display:flex}.login-brand>span{background:linear-gradient(145deg,#3478f6,#1848ac);border-radius:12px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 9px 22px #00000038}.login-brand div{flex-direction:column;display:flex}.login-brand strong{letter-spacing:-.02em;font-size:15px}.login-brand small{color:#96a8c3;letter-spacing:.12em;text-transform:uppercase;margin-top:2px;font-size:8px}.login-message{width:min(470px,86%);margin:auto 0;padding-bottom:62px}.login-message>p{color:#7fa9ee;letter-spacing:.18em;margin:0 0 13px;font-size:9px;font-weight:700}.login-message h1{letter-spacing:-.055em;margin:0;font-size:clamp(36px,4.2vw,57px);line-height:1.04}.login-message>span{color:#aebbd0;width:min(420px,100%);margin-top:17px;font-size:12px;line-height:1.7;display:block}.login-features{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:30px;display:grid}.login-features>div{color:#81aaf0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0e;border:1px solid #ffffff1a;border-radius:11px;align-items:flex-start;gap:9px;min-height:90px;padding:13px;display:flex}.login-features span{flex-direction:column;display:flex}.login-features strong{color:#eef4ff;font-size:9px}.login-features small{color:#8799b5;margin-top:5px;font-size:7px;line-height:1.45}.login-room-image{z-index:1;opacity:.58;border-radius:55% 0 0;width:48%;height:34%;position:absolute;bottom:-6%;right:-6%;overflow:hidden}.login-room-image:after{content:"";background:linear-gradient(135deg,#172746 0%,#0000 62%);position:absolute;inset:0}.login-room-image img{object-fit:cover;width:100%;height:100%}.login-showcase footer{color:#71849f;font-size:8px}.login-form-side{background:radial-gradient(circle at 95% 0,#2865c714,#0000 28%),#f8fafc;place-items:center;min-height:100vh;padding:34px;display:grid}.login-form{background:#fffffff0;border:1px solid #e1e6ec;border-radius:19px;width:min(390px,100%);padding:38px;box-shadow:0 22px 55px #1723381a}.demo-badge{color:#286744;letter-spacing:.08em;text-transform:uppercase;background:#e5f6ed;border-radius:99px;align-items:center;min-height:22px;padding:0 8px;font-size:8px;font-weight:700;display:inline-flex}.login-form>.eyebrow{margin-top:22px}.login-form h2{color:#172338;letter-spacing:-.045em;margin:0;font-size:27px}.login-description{color:#7e8a9d;margin:8px 0 25px;font-size:10px;line-height:1.6}.login-form>label{color:#526075;flex-direction:column;gap:7px;margin-top:15px;font-size:9px;font-weight:700;display:flex}.login-input{color:#8a95a5;background:#fbfcfd;border:1px solid #dce2e9;border-radius:10px;align-items:center;gap:9px;height:44px;padding:0 12px;transition:all .15s;display:flex}.login-input:focus-within{background:#fff;border-color:#75a0e7;box-shadow:0 0 0 3px #2865c71a}.login-input input{color:#172338;background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:11px}.login-input>button{color:#8994a4;background:0 0;border:0;place-items:center;width:27px;height:27px;padding:0;display:grid}.login-options{color:#7b8799;justify-content:space-between;align-items:center;margin:15px 0 21px;font-size:8px;display:flex}.login-options label{align-items:center;gap:6px;display:flex}.login-options button{color:#2865c7;background:0 0;border:0;padding:0;font-size:8px;font-weight:700}.login-submit{color:#fff;background:#19975e;border:0;border-radius:10px;justify-content:center;align-items:center;gap:9px;width:100%;height:45px;font-size:10px;font-weight:700;transition:all .16s;display:flex;box-shadow:0 8px 20px #19975e3d}.login-submit:hover{background:#137f4e;transform:translateY(-1px)}.login-hint{color:#98a2b1;text-align:center;margin-top:13px;font-size:8px;display:block}@media (width<=900px){.login-page{grid-template-columns:1fr}.login-showcase{min-height:250px;padding:25px}.login-message{width:76%;margin:42px 0 24px;padding:0}.login-message h1{font-size:34px}.login-message>span,.login-features,.login-showcase footer{display:none}.login-form-side{align-items:start;min-height:calc(100vh - 250px);padding:24px}}@media (width<=520px){.login-showcase{min-height:210px}.login-message{margin-top:30px}.login-message h1{font-size:28px}.login-form-side{min-height:calc(100vh - 210px);padding:15px}.login-form{padding:26px 22px}}.settings-page{flex:1;width:100%;min-height:0;padding:32px max(32px,50% - 600px);overflow-y:auto}.settings-page>header{margin-bottom:24px}.settings-page h1,.settings-page h2{margin:4px 0}.settings-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);align-items:start;gap:24px;display:grid}.settings-card{background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb);border-radius:18px;padding:24px;box-shadow:0 8px 30px #0f172a0d}.settings-heading{justify-content:space-between;align-items:start;display:flex}.settings-heading>span{color:#64748b;font-size:.85rem}.item-form{grid-template-columns:1fr;align-items:end;gap:12px;margin:22px 0;display:grid}.item-form label,.export-card label{color:#475569;gap:7px;font-size:.82rem;font-weight:700;display:grid}.item-form label,.item-form input,.item-form select,.item-form button{min-width:0}.item-form input,.export-card input{box-sizing:border-box;width:100%;min-height:42px;font:inherit;border:1px solid #cbd5e1;border-radius:10px;padding:0 12px}.item-form select{min-height:42px;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:0 10px}.user-form{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(110px,.4fr)}.user-form .primary-button{grid-column:1/-1;justify-self:start;min-width:min(220px,100%)}.catalog-list{gap:8px;display:grid}.catalog-list article{border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.catalog-list article>div{gap:3px;display:grid}.catalog-list span{color:#64748b;font-size:.85rem}.catalog-list article>div:last-child{display:flex}.catalog-list .account-actions{align-items:center;gap:8px;display:flex}.catalog-list button{color:#64748b;cursor:pointer;background:0 0;border:0;padding:8px}.catalog-list .account-status-button{background:#fff;border:1px solid #cbd5e1;border-radius:9px;flex:0 0 108px;justify-content:center;align-items:center;min-width:108px;height:36px;font-weight:700;line-height:1;display:inline-flex}.catalog-list .account-delete-button{color:#a83c3c;background:#fff7f7;border:1px solid #e9b3b3;border-radius:9px;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.catalog-list .account-status-button.is-inactive{color:#2f6b45;background:#edf7f0;border-color:#86b89a}.catalog-list .account-status-button.is-active{color:#a83c3c;background:#fff7f7;border-color:#e9b3b3}.catalog-list .account-status-button:hover{filter:brightness(.97)}.catalog-list .account-status-button:focus-visible{outline-offset:2px;outline:3px solid #2563eb38}.export-card{gap:16px;display:grid}.export-card>p{color:#64748b;line-height:1.5}.export-button{justify-content:center;margin-top:6px;text-decoration:none;display:flex}.settings-error{color:#b91c1c;background:#fef2f2;border-radius:10px;padding:12px}.settings-notice{color:#386449;background:#e5f0e8;border-radius:10px;padding:12px}.catalog-list button.confirm-delete{color:#b91c1c;background:#fef2f2;border-radius:8px}@media (width<=1050px){.settings-grid{grid-template-columns:1fr}.item-form{grid-template-columns:repeat(2,minmax(0,1fr))}.item-form .primary-button{grid-column:1/-1}.user-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.settings-page{padding:18px}.item-form,.user-form{grid-template-columns:1fr}.user-form .primary-button{grid-column:auto;width:100%}.catalog-list article{align-items:flex-start}.catalog-list .account-status-button{flex-basis:96px;min-width:96px}}:root{--blue:#202020;--ink:#1d1d1f;--muted:#707070;--line:#dededb}body,.app-shell,.ops-page{color:#202020;background:#f3f3f1}.top-bar{background:#fafaf8f5;border-color:#dededb}.compact-map-title h1,.toolbar h1,.modal h2,.ops-page-header h1{color:#1d1d1f}.compact-map-title span,.availability,.search .material-symbols-outlined,.icon-button,.eyebrow{color:#747474}.search input,.login-input,.booking-form input,.booking-form select{color:#242424;background:#f7f7f5;border-color:#dededb}.search input:focus,.login-input:focus-within,.booking-form input:focus,.booking-form select:focus{background:#fff;border-color:#666;box-shadow:0 0 0 3px #19191914}.menu-trigger,.icon-button{color:#4b4b4b;background:#fafaf8;border-color:#dededb}.menu-trigger:hover,.icon-button:hover{color:#171717;background:#ececea}.primary-button,.login-submit,.map-room-preview button,.booking-form .modal-action,.success-modal .modal-action{color:#fff;box-shadow:none;background:#202020}.primary-button:hover,.login-submit:hover,.map-room-preview button:hover,.booking-form .modal-action:hover,.success-modal .modal-action:hover{background:#3a3a3a}.notification-dot,.pulse-dot{background:#272727}.pulse-dot{box-shadow:0 0 0 4px #e3e3e0}.floor-picker{background:#e8e8e5}.floor-picker button{color:#6f6f6f}.floor-picker button.active,.filters button.active{color:#fff;box-shadow:none;background:#242424;border-color:#242424}.filters button{color:#626262;background:#fafaf8;border-color:#d9d9d6}.filters button:hover{color:#202020;border-color:#9b9b98}.app-shell .side-nav{color:#f5f5f3;background:#181818;box-shadow:12px 0 32px #00000026}.side-nav .brand-mark{color:#181818;background:#f1f1ef}.side-nav .brand-copy span,.side-nav .profile-copy small,.side-nav li button{color:#a6a6a6}.side-nav li button:hover{color:#fff;background:#2b2b2b}.side-nav li button.active{color:#181818;box-shadow:none;background:#f1f1ef}.drawer-close{color:#b9b9b9;background:#232323;border-color:#383838}.drawer-close:hover{color:#fff;background:#303030}.avatar>span:first-child{color:#252525;box-shadow:none;background:#d2d2cf;border-color:#8b8b8b}.nav-backdrop{background:#0a0a0a57}.floor-map-scroll{background-color:#eeeeeb;background-image:linear-gradient(#46464613 1px,#0000 1px),linear-gradient(90deg,#46464613 1px,#0000 1px)}.indoor-map-svg{filter:drop-shadow(0 5px 9px #0000000b)}.floor-plate{fill:#fafaf8;stroke:#555}.floor-atrium{fill:#dededb;stroke:#8b8b88}.floor-corridors rect{fill:#fdfdfb}.floor-corridors .lobby,.floor-corridors .service,.floor-zones rect{fill:#eeeeeb}.floor-walls path,.map-stair rect,.map-escalator rect{stroke:#777}.map-stair line,.map-stair path,.map-escalator line{stroke:#999}.floor-columns rect{fill:#555}.floor-zones rect{stroke:#b8b8b5}.floor-zones text,.floor-entrances text{fill:#777}.floor-entrances circle{fill:#fafaf8;stroke:#666}.app-shell .map-room-shape{fill:#f8f8f6;stroke:#666}.app-shell .map-room.status-available .map-room-shape{fill:#dcfce7;stroke:#16a34a}.app-shell .map-room.status-occupied .map-room-shape{fill:#dbeafe;stroke:#2563eb}.app-shell .map-room.status-reserved .map-room-shape{fill:#ede9fe;stroke:#7c3aed;stroke-dasharray:8 4}.app-shell .map-room.status-overtime .map-room-shape{fill:#fee2e2;stroke:#dc2626;stroke-width:3px}.app-shell .map-room.status-maintenance .map-room-shape{fill:url(#maintenance-stripes);stroke:#111;stroke-width:3px}.app-shell .map-room:hover .map-room-shape,.app-shell .map-room:focus .map-room-shape,.app-shell .map-room.is-selected .map-room-shape{stroke:#111;stroke-width:3.5px}.app-shell .map-room-number,.app-shell .map-room-label{fill:#282828}.app-shell .map-room-label{fill:#737373}.app-shell .map-room-status,.app-shell .map-room.status-available .map-room-status{fill:#16a34a}.app-shell .map-room.status-occupied .map-room-status{fill:#2563eb}.app-shell .map-room.status-reserved .map-room-status{fill:#7c3aed}.app-shell .map-room.status-overtime .map-room-status{fill:#dc2626}.app-shell .map-room.status-maintenance .map-room-status{fill:#d97706}.map-zoom-controls{background:#fafaf8f7;border-color:#d5d5d2;box-shadow:0 3px 12px #00000012}.map-zoom-controls button,.map-zoom-controls output{color:#555;background:#fafaf8;border-color:#dededb}.map-zoom-controls button:hover{color:#111;background:#e8e8e5}.map-floor-navigator{background:#fafaf8f7;border-color:#d5d5d2;box-shadow:0 3px 12px #00000012}.north-indicator{color:#444}.north-indicator i{filter:none;border-bottom-color:#242424}.map-gesture-hint,.map-room-preview{color:#555;background:#fafaf8f5;border-color:#d5d5d2;box-shadow:0 10px 28px #0000001a}.map-room-preview>strong{color:#202020}.app-shell .preview-status.status-available{color:#15803d}.app-shell .preview-status.status-occupied{color:#1d4ed8}.app-shell .preview-status.status-reserved{color:#6d28d9}.app-shell .preview-status.status-overtime{color:#b91c1c}.app-shell .preview-status.status-maintenance{color:#b45309}.legend{color:#666;background:#fafaf8f5;border-color:#dededb}.app-shell .legend-dot.status-available{background:#16a34a}.app-shell .legend-dot.status-occupied{background:#2563eb}.app-shell .legend-dot.status-reserved{background:#7c3aed}.app-shell .legend-dot.status-overtime{background:#dc2626}.app-shell .legend-dot.status-maintenance{background:repeating-linear-gradient(135deg,#171717 0 4px,#facc15 4px 8px)}.modal-backdrop{background:#0f0f0f7a}.modal,.ops-card{color:#232323;background:#fafaf8;border-color:#dededb}.modal-close{color:#555;background:#eeeeeb}.selected-booking-room,.booking-note{background:#f0f0ed;border-color:#dededb}.success-check{color:#fff;background:#242424}.booking-status,.booking-status.checked-in,.booking-status.due-out{color:#444;background:#e5e5e2}.login-page{background:#f3f3f1}.login-showcase{color:#f5f5f3;background:#191919}.login-showcase:after,.login-room-image:after{background:0 0}.login-brand>span{color:#181818;box-shadow:none;background:#f1f1ef}.login-features>div{background:#222;border-color:#3b3b3b}.login-form-side,.login-form{background:#fafaf8}.login-form{border-color:#dededb;box-shadow:0 16px 44px #00000014}.login-options input{accent-color:#222}
