:root{--navy:#14243a;--navy2:#244a70;--gold:#d4aa62;--ink:#172033;--muted:#747b86;--line:#dedbd4;--bg:#f2f0eb;--green:#17835a;--red:#ae3939}*{box-sizing:border-box}html{color:var(--ink);background:var(--bg);font-family:Segoe UI,system-ui,sans-serif}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{background:radial-gradient(circle at 8% 4%,#4abe8e21,#0000 25%),radial-gradient(circle at 92% 2%,#f0a24c29,#0000 29%),linear-gradient(#f7f8fb,#f2f0eb 52%,#eef4f2);min-height:100vh}.topbar{color:#fff;background:linear-gradient(110deg,#101b2c,#172b43 56%,#243952);align-items:center;height:76px;padding:0 clamp(18px,3vw,48px);display:flex;box-shadow:0 12px 34px #111c2d38}.brand-logo{color:#fff;background:linear-gradient(145deg,#e1b96f,#a8732c);border-radius:17px;place-items:center;width:58px;height:58px;font:800 32px Georgia,serif;display:grid;box-shadow:0 10px 28px #b58b4a45}.brand-logo.small{border-radius:12px;width:42px;height:42px;margin-right:12px;font-size:24px}.eyebrow{color:#d5ad68;letter-spacing:.16em;margin:0;font-size:11px;font-weight:800}.topbar strong{font:18px Georgia,serif}.top-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.top-actions button,.live{color:#d7dee7;background:#ffffff08;border:1px solid #ffffff20;border-radius:10px;padding:8px 11px;font-size:12px}.live{align-items:center;gap:7px;display:flex}.live i{background:#4fd396;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #4fd39622}.workspace{max-width:1640px;margin:auto;padding:30px clamp(16px,3vw,48px) 48px}.hero{justify-content:space-between;align-items:flex-end;gap:26px;margin-bottom:24px;display:flex}.property{color:#8b642b;letter-spacing:.08em;background:#ffffffb8;border:1px solid #b58b4a44;border-radius:99px;padding:6px 10px;font-size:11px;font-weight:800;display:inline-flex}.date{text-transform:capitalize;color:#8b6c3a;margin:9px 0 5px;font-size:13px;font-weight:650}.hero h1{margin:0;font:40px/1 Georgia,serif}.hero>div>p:last-child{color:var(--muted);margin:9px 0 0;font-size:14px}.summary{gap:10px;display:flex}.summary>button{border:1px solid var(--line);text-align:left;background:#fff;border-radius:15px;align-items:center;gap:11px;min-width:142px;padding:11px 14px;display:flex;box-shadow:0 8px 25px #2632440a}.summary>button.active{border-color:#b58b4a;transform:translateY(-2px)}.summary>button>strong{font:25px Georgia,serif}.summary small{color:#777f8a;margin-top:4px;font:12px Segoe UI,sans-serif;display:block}.summary-icon{border-radius:10px;place-items:center;width:35px;height:35px;font-weight:900;display:grid}.summary-icon.free{color:#116d48;background:#c9f3df}.summary-icon.busy{color:#a52626;background:#ffd7d3}.occupancy{border-left:1px solid #d8d4cc;width:150px;padding:12px 14px}.occupancy>span{color:var(--muted);font-size:12px}.occupancy>b{float:right;font:20px Georgia,serif}.occupancy>div{clear:both;background:#ddd9d1;border-radius:9px;height:5px;margin-top:12px;overflow:hidden}.occupancy i{background:linear-gradient(90deg,#e6a438,#f2c96f);height:100%;display:block}.content-grid{grid-template-columns:minmax(0,1fr) 310px;gap:18px;display:grid}.rooms-panel,.activity{background:#fff;border:1px solid #d5dedb;border-radius:20px;box-shadow:0 22px 65px #1d30451c}.panel-head{border-bottom:1px solid #ece9e3;justify-content:space-between;align-items:center;gap:16px;padding:15px 18px;display:flex}.filter-stack{gap:9px;display:grid}.filters,.type-filters{flex-wrap:wrap;gap:4px;display:flex}.filters button{color:#717985;background:0 0;border:0;border-radius:9px;padding:9px 12px;font-size:13px;font-weight:700}.filters button span,.type-filters span{color:#9ba0a8;margin-left:4px}.filters button.active{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;box-shadow:0 6px 16px #172b4333}.type-row{align-items:center;gap:10px;display:flex}.type-row>b{color:#9a7b47;letter-spacing:.12em;font-size:10px}.type-filters button{color:#626b77;background:#f8f7f4;border:1px solid #e0ddd6;border-radius:99px;padding:5px 10px;font-size:11px;font-weight:800}.type-filters button.active{color:#815b22;background:linear-gradient(135deg,#fff8e9,#f5e5c5);border-color:#c49a55}.search{width:245px;position:relative}.search>span{color:#858c97;font-size:22px;position:absolute;top:8px;left:12px}.search input{background:#f8f7f4;border:1px solid #d9d5cd;border-radius:11px;width:100%;height:40px;padding:0 32px 0 38px}.search button{color:#858c97;background:0 0;border:0;font-size:18px;position:absolute;top:8px;right:8px}.room-grid{grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;padding:18px;display:grid}.room{text-align:left;border:1px solid;border-radius:15px;flex-direction:column;min-height:165px;padding:14px;transition:all .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 6px 16px #1f29370f}.room:before{content:"";height:5px;position:absolute;inset:0 0 auto}.room:hover{transform:translateY(-4px);box-shadow:0 16px 30px #1f293729}.room.available{color:#126746;background:linear-gradient(150deg,#fff,#e8fff4);border-color:#8bd8b4}.room.available:before{background:linear-gradient(90deg,#20a86d,#62d6a3)}.room.occupied{color:#922e2e;background:linear-gradient(150deg,#fff,#ffe9e7);border-color:#eaa7a1}.room.occupied:before{background:linear-gradient(90deg,#d94b47,#f28670)}.room.soon{background:linear-gradient(150deg,#fff,#fff1d8);border-color:#e8a435}.room.over{background:linear-gradient(150deg,#fff,#ffdfe1);border-color:#df3f47}.room-top{letter-spacing:.14em;justify-content:space-between;align-items:center;font-size:10px;font-weight:800;display:flex}.room-top>span:first-child{opacity:.62}.room-meta{align-items:center;gap:8px;display:flex}.room-meta b{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#f4d28f;letter-spacing:.04em;text-align:center;border:1px solid #d3a95f;border-radius:99px;min-width:42px;padding:4px 9px;font-size:13px;box-shadow:0 5px 13px #172b4333}.room-meta i{background:#45ad7b;border-radius:50%;width:8px;height:8px}.occupied .room-meta i{background:#c44c4c}.room-number{margin-top:4px;font:700 32px Georgia,serif}.room-bottom{margin-top:auto}.state{letter-spacing:.1em;background:#ffffffbd;border-radius:7px;padding:3px 7px;font-size:12px;display:inline-flex}.room-bottom p{white-space:nowrap;text-overflow:ellipsis;opacity:.78;margin:4px 0 0;font-size:12px;overflow:hidden}.room-bottom small{opacity:.78;margin-top:5px;font-size:11px;line-height:1.3;display:block}.activity{background:linear-gradient(#fff,#fffaf2);padding:20px}.activity h2{border-bottom:1px solid #ece9e3;margin:3px 0 16px;padding-bottom:16px;font:25px Georgia,serif}.activity article{border-bottom:1px solid #eeeae4;grid-template-columns:34px 1fr;gap:10px;padding:12px 0;display:grid}.activity article>i{color:#217455;background:#e7f5ee;border-radius:9px;place-items:center;width:32px;height:32px;font-style:normal;display:grid}.activity article>i.checkout{color:#a83f3f;background:#f8e8e8}.activity article p{color:#707782;margin:2px 0;font-size:11px}.activity article small{color:#a0a4ac;font-size:10px}.no-activity{text-align:center;color:#8b919a;padding:60px 10px}footer{color:#838995;justify-content:space-between;padding:22px 4px 0;font-size:11px;display:flex}footer b{color:#8b6c3a;letter-spacing:.16em}.skeleton{background:linear-gradient(90deg,#eeeae4,#f8f6f2,#eeeae4) 0 0/200%;border-radius:15px;height:165px;animation:1.3s infinite pulse}.empty{color:#878d96;place-items:center;min-height:250px;display:grid}@keyframes pulse{to{background-position:-200%}}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0d1726a8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:20px;width:min(440px,100%);padding:26px;position:relative;box-shadow:0 30px 90px #11182766}.close{color:#7b818a;background:0 0;border:0;font-size:25px;position:absolute;top:12px;right:14px}.modal h2{margin:10px 0 5px;font:27px Georgia,serif}.modal>form>p,.modal>div>p{color:#767d87;font-size:13px}.dialog-room{color:#217455;letter-spacing:.1em;background:#e7f5ee;border-radius:7px;padding:6px 9px;font-size:11px;font-weight:800;display:inline-flex}.dialog-room.occupied{color:#a83f3f;background:#f8e8e8}.modal label,.login-card label{color:#4d5560;gap:6px;margin-top:14px;font-size:13px;font-weight:700;display:grid}.modal input,.modal select,.login-card input{background:#faf9f7;border:1px solid #d8d4cc;border-radius:10px;width:100%;height:43px;padding:0 12px}.modal-buttons{grid-template-columns:1fr 1fr;gap:9px;margin-top:20px;display:grid}.modal-buttons button,.login-card form>button{color:#fff;background:linear-gradient(135deg,#c49347,#e0b764);border:0;border-radius:10px;height:43px;font-weight:800}.modal-buttons .secondary{color:#505865;background:#fff;border:1px solid #d8d4cc}.modal-buttons .danger{background:#b93b3b}.time-alert{color:#8a6122;background:#fffaf0;border:1px solid #e5d6b9;border-radius:12px;align-items:center;gap:12px;margin:14px 0;padding:13px;display:flex}.time-alert>span{font-size:23px}.time-alert small,.time-alert strong{display:block}.time-alert strong{margin-top:3px}.details{gap:8px;display:grid}.details p{background:#faf9f7;border:1px solid #e5e1da;border-radius:11px;justify-content:space-between;margin:0;padding:12px;display:flex}.toast{z-index:50;color:#75531e;background:#fffaf0;border:1px solid #d6b576;border-radius:12px;align-items:center;gap:16px;max-width:360px;padding:13px 15px;font-weight:700;display:flex;position:fixed;top:92px;right:22px;box-shadow:0 16px 40px #1f293733}.toast span{font-size:18px}.login-page,.splash{background:radial-gradient(circle at 20% 10%,#284a70,#0000 35%),linear-gradient(145deg,#0e1929,#1b304a);place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:#fffffff2;border:1px solid #ffffff20;border-radius:24px;width:min(410px,100%);padding:38px;box-shadow:0 30px 90px #0006}.login-card .brand-logo{margin:0 auto 20px}.login-card .eyebrow{text-align:center;color:#9a7133}.login-card h1{text-align:center;margin:7px 0;font:31px Georgia,serif}.login-copy{text-align:center;color:#757c86}.login-card form>button{width:100%;margin-top:20px}.login-card small{text-align:center;color:#8a9098;margin-top:20px;display:block}.form-error{color:#b73333;margin:10px 0 0;font-size:13px}.splash{color:#fff;align-content:center;gap:16px}.splash span{color:#d6dde6}@media (max-width:1200px){.room-grid{grid-template-columns:repeat(4,1fr)}.content-grid{grid-template-columns:1fr}.activity{display:none}}@media (max-width:760px){.topbar{height:auto;min-height:68px;padding-block:12px}.topbar>div:nth-child(2){display:none}.top-actions{gap:5px}.top-actions button{padding:8px}.live{display:none}.workspace{padding-top:22px}.hero{flex-direction:column;align-items:flex-start}.hero h1{font-size:34px}.summary{width:100%}.summary>button{flex:1;min-width:0}.occupancy{display:none}.panel-head{flex-direction:column;align-items:stretch}.type-row{flex-direction:column;align-items:flex-start;gap:6px}.search{width:100%}.room-grid{grid-template-columns:repeat(2,1fr);padding:12px}.room{min-height:155px}footer{flex-direction:column;align-items:flex-start;gap:5px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.summary-icon.offline{color:#566273;background:#e3e7ec}.room.out_of_service{color:#586371;background:linear-gradient(150deg,#f8f9fb,#e8ebef);border-color:#aab2bd}.room.out_of_service:before{background:linear-gradient(90deg,#6f7b89,#aeb6c0)}.room.out_of_service .room-meta i{background:#7d8794}.dialog-room.offline{color:#596472;background:#e8ebef}.modal-buttons.three{grid-template-columns:1fr 1fr 1fr}.modal-buttons .offline-action{color:#fff;background:#667382}.modal-buttons button,.top-actions button,.filters button,.type-filters button{letter-spacing:-.01em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;font-weight:700}.modal-buttons button{min-height:46px;padding-inline:12px;font-size:14px;line-height:1.15}@media (max-width:760px){.summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.summary>button{width:100%;min-width:0;padding:10px 8px}.summary>button>strong{font-size:21px}.summary-icon{display:none}.summary small{font-size:10px}.modal-backdrop{align-items:end;padding:0}.modal{width:100%;max-height:92dvh;padding:26px 20px calc(22px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;overflow-y:auto}.modal h2{padding-right:24px;font-size:28px;line-height:1.08}.modal input,.modal select{min-height:48px;font-size:16px}.modal-buttons{gap:8px}.modal-buttons.three{grid-template-columns:1fr 1fr}.modal-buttons.three button:last-child{grid-column:1/-1}.room-grid{gap:8px}.room{padding:12px}.room-number{font-size:29px}.room-meta b{min-width:38px;padding:4px 7px;font-size:12px}}@media (max-width:390px){.workspace,.topbar{padding-inline:10px}.top-actions{gap:3px}.top-actions button{padding-inline:7px;font-size:11px}.room-grid{padding:9px}.room{min-height:148px}.state{font-size:10px}}.room.has-reservation{border-color:#8b73cf;min-height:190px;box-shadow:0 10px 28px #5b3fa329}.room.has-reservation:before{background:linear-gradient(90deg,#6650b8,#a889ed)}.reservation-ribbon{color:#59429f;letter-spacing:.07em;background:linear-gradient(135deg,#eee9ff,#e2d8ff);border:1px solid #674eb438;border-radius:7px;align-self:flex-start;margin-top:5px;padding:5px 8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;font-size:9px;font-weight:800}.reservation-date{color:#513b91;text-transform:capitalize;font-weight:750}.reservation-countdown{color:#775dbd;font-weight:700}@media (max-width:760px){.room.has-reservation{min-height:185px}.reservation-ribbon{letter-spacing:.04em;padding-inline:6px;font-size:8px}}.date-range{grid-template-columns:1fr 1fr;gap:10px;display:grid}.date-range label{min-width:0}.date-range input[type=date]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (max-width:560px){.date-range{grid-template-columns:1fr;gap:0}}.reservation-list{border-top:1px solid #e7e2da;margin-top:22px;padding-top:18px}.reservation-list h3{color:#364152;margin:0 0 10px;font-size:14px}.reservation-list article{background:#faf8ff;border:1px solid #ddd6ef;border-radius:11px;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding:11px;display:flex}.reservation-list article div{gap:3px;display:grid}.reservation-list article span,.reservation-list article small{color:#716687;font-size:11px}.reservation-list article button{color:#a43c38;background:#fff;border:1px solid #e0aaa7;border-radius:8px;flex:none;padding:8px 10px;font-size:11px;font-weight:750}.reservation-empty{color:#8a9098;font-size:12px}@media (max-width:560px){.reservation-list article{flex-direction:column;align-items:stretch}.reservation-list article button{width:100%;min-height:40px}}.room.over{color:#155a9c;background:linear-gradient(150deg,#f7fbff,#dceeff);border-color:#4a90d9;box-shadow:0 12px 30px #2471b833}.room.over:before{background:linear-gradient(90deg,#1f70bd,#64aef1)}.room.over .room-meta i{background:#287fc9}.expired-label{color:#0f5faa;letter-spacing:.035em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;font-size:17px;font-weight:900;line-height:1.1;display:block}.notification-button{position:relative}.notification-button b{color:#fff;background:#e34d4d;border-radius:99px;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;display:grid;position:absolute;top:-7px;right:-5px}.notification-center{max-height:88dvh;overflow-y:auto}.notification-tools{gap:8px;margin:14px 0;display:flex}.notification-tools button{color:#4e5867;background:#fff;border:1px solid #d8d4cc;border-radius:9px;flex:1;min-height:38px;font-size:11px;font-weight:750}.notification-history{gap:8px;display:grid}.notification-history article{border:1px solid #e1ddd6;border-radius:11px;grid-template-columns:9px 1fr auto;align-items:center;gap:10px;padding:11px;display:grid}.notification-history article.unread{background:#f0f7ff;border-color:#9ec5ec}.notification-history article.read{opacity:.76;background:#faf9f7}.notification-dot{background:#277dcc;border-radius:50%;width:8px;height:8px}.notification-history article.read .notification-dot{background:#a9afb7}.notification-history article div{gap:4px;display:grid}.notification-history article strong{font-size:12px}.notification-history article small{color:#858c96;font-size:10px}.notification-history article>button{color:#b03b3b;background:0 0;border:0;font-size:11px;font-weight:750}@media (max-width:560px){.expired-label{font-size:14px}.notification-tools{flex-direction:column}}.content-grid{grid-template-columns:minmax(0,1fr)}.room-grid{grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px}.room{min-height:185px;padding:17px}.room.has-reservation{min-height:205px}.history-modal{max-height:88dvh;overflow-y:auto}.history-list{gap:8px;margin-top:16px;display:grid}.history-list article{background:#faf9f7;border:1px solid #e4e0d9;border-radius:12px;grid-template-columns:38px 1fr;gap:11px;padding:12px;display:grid}.history-list article>i{color:#217455;background:#e8f5ee;border-radius:10px;place-items:center;width:36px;height:36px;font-style:normal;font-weight:800;display:grid}.history-list article>i.checkout{color:#a83f3f;background:#f8e8e8}.history-list article>i.reservation{color:#6047aa;background:#eee9ff}.history-list article p{color:#6f7782;margin:3px 0;font-size:12px}.history-list article small{color:#989da5;text-transform:capitalize;font-size:10px}@media (max-width:1200px){.room-grid{grid-template-columns:repeat(4,minmax(140px,1fr))}}@media (max-width:760px){.room-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.room{min-height:165px;padding:13px}.room.has-reservation{min-height:190px}.top-actions button{width:36px;padding-inline:0;font-size:0}.top-actions button:before{font-size:16px}.top-actions button:first-of-type:before{content:"📅"}.top-actions button:nth-of-type(2):before{content:"↺"}.top-actions button:nth-of-type(3):before{content:"🔔"}.top-actions button:nth-of-type(4):before{content:"↻"}.top-actions button:nth-of-type(5):before{content:"⇥"}}.summary-icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px;display:block}.reservation-backdrop{overflow:hidden}.reservation-modal{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;max-height:min(90dvh,880px);overflow-y:auto!important}.reservation-modal .reservation-list{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;max-height:330px;padding-right:4px;overflow-y:auto}.reservation-modal .reservation-list::-webkit-scrollbar{width:7px}.reservation-modal .reservation-list::-webkit-scrollbar-thumb{background:#c6b7e8;border-radius:99px}.reservation-modal .reservation-list::-webkit-scrollbar-track{background:#f4f0fb}@media (max-width:760px){.reservation-modal{height:92dvh;max-height:92dvh;padding-bottom:calc(24px + env(safe-area-inset-bottom))}.reservation-modal .reservation-list{max-height:36dvh;padding-bottom:10px}}
