:root{--ink:#29251f;--espresso:#342a22;--cream:#f4efe7;--paper:#fffdf9;--line:#ddd2c5;--muted:#776e65;--sand:#c49a6c;--available:#f8f5ef;--occupied:#8da8a2;--pending:#d5aa72;--maintenance:#8b8178}*{box-sizing:border-box}body{background:var(--cream);color:var(--ink);margin:0;font:16px/1.45 DM Sans,sans-serif}.topbar{background:#f3efeb;border-bottom:1px solid #342a221f;justify-content:space-between;align-items:center;height:82px;padding:0 clamp(18px,4vw,58px);display:flex}.logo{width:190px;height:68px;display:flex}.logo img{object-fit:contain;width:100%}.top-actions{align-items:center;gap:18px;display:flex}.prototype{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem}.new-booking{background:var(--espresso);color:#fff;opacity:.48;cursor:not-allowed;border:0;padding:12px 18px;font:600 .82rem DM Sans}main{max-width:1500px;margin:auto;padding:52px clamp(16px,4vw,58px) 70px}.page-heading{justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:34px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.2em;color:#8d694b;margin:0 0 10px;font-size:.68rem;font-weight:600}.page-heading h1,.calendar-toolbar h2,dialog h2{font-family:Italiana,serif;font-weight:400}.page-heading h1{margin:0;font-size:clamp(2.5rem,5vw,4.8rem);line-height:1}.intro{color:var(--muted);margin:14px 0 0}.week-controls{border:1px solid var(--line);background:var(--paper);display:flex}.week-controls button{border:0;border-right:1px solid var(--line);min-width:48px;color:var(--ink);cursor:pointer;background:0 0;padding:11px 14px;font:600 .85rem DM Sans}.week-controls button:last-child{border-right:0}.week-controls button:hover{background:#eee6db}.summary{background:var(--paper);border:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin-bottom:22px;display:grid}.summary article{border-right:1px solid var(--line);justify-content:space-between;align-items:center;padding:22px 24px;display:flex}.summary article:last-child{border:0}.summary span{color:var(--muted);font-size:.8rem}.summary strong{font:400 2rem Italiana,serif}.calendar-card{background:var(--paper);border:1px solid var(--line);box-shadow:0 22px 55px #342a2212}.calendar-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:25px;padding:24px 28px;display:flex}.calendar-toolbar h2{margin:0;font-size:2rem}.legend{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:15px 20px;font-size:.74rem;display:flex}.legend span{align-items:center;gap:7px;display:flex}.legend i{border:1px solid #0000001a;border-radius:50%;width:11px;height:11px;display:inline-block}.legend .available{background:var(--available)}.legend .occupied{background:var(--occupied)}.legend .pending{background:var(--pending)}.legend .maintenance{background:var(--maintenance)}.calendar-scroll{overflow:auto}.calendar{grid-template-columns:190px repeat(7,minmax(120px,1fr));min-width:1040px;display:grid}.cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:58px;padding:8px}.cell:nth-child(8n){border-right:0}.head{z-index:2;text-align:center;background:#f7f2eb;min-height:70px;padding:14px 8px;position:sticky;top:0}.head:first-child{z-index:3;left:0}.head strong{font-size:.86rem;display:block}.head span{color:var(--muted);font-size:.72rem}.room{z-index:1;background:var(--paper);flex-direction:column;justify-content:center;padding:10px 16px;display:flex;position:sticky;left:0}.room strong{font-size:.86rem}.room span{color:var(--muted);font-size:.68rem}.slot{background:var(--available);position:relative}.booking{text-align:left;color:#fff;cursor:pointer;border:0;width:100%;height:100%;min-height:40px;padding:7px 9px;font:500 .72rem DM Sans}.booking small{opacity:.8;margin-top:2px;font-size:.62rem;display:block}.booking.occupied{background:var(--occupied)}.booking.pending{background:var(--pending);color:#382b1e}.booking.maintenance{background:var(--maintenance)}.today-col{box-shadow:inset 0 3px 0 var(--sand)}.phase-note{color:var(--muted);text-align:center;margin:22px 0 0;font-size:.75rem}dialog{background:var(--paper);border:0;width:min(92vw,440px);padding:36px;box-shadow:0 30px 90px #19141059}dialog::backdrop{background:#1c1713b8}dialog h2{margin:0 0 25px;font-size:2.4rem}dialog .close{cursor:pointer;background:0 0;border:0;font-size:1.4rem;position:absolute;top:14px;right:16px}dl{border-top:1px solid var(--line);margin:0}dl div{border-bottom:1px solid var(--line);justify-content:space-between;gap:25px;padding:13px 0;display:flex}dt{color:var(--muted);font-size:.8rem}dd{text-align:right;margin:0;font-size:.84rem;font-weight:600}.footer-links{gap:24px;display:flex}@media (width<=850px){.topbar{height:70px}.logo{width:150px;height:56px}.prototype{display:none}main{padding-top:36px}.page-heading{flex-direction:column;align-items:flex-start}.summary{grid-template-columns:1fr 1fr}.summary article:nth-child(2){border-right:0}.summary article:nth-child(-n+2){border-bottom:1px solid var(--line)}.calendar-toolbar{flex-direction:column;align-items:flex-start}.legend{justify-content:flex-start}.calendar{grid-template-columns:150px repeat(7,112px)}}@media (width<=520px){.page-heading h1{font-size:2.65rem}.new-booking{padding:10px 12px}.summary article{padding:16px}.summary span{font-size:.72rem}.summary strong{font-size:1.6rem}}.new-booking{opacity:1;cursor:pointer}.form-dialog{width:min(94vw,720px);max-height:92vh;overflow:auto}.form-dialog h2{margin-bottom:24px}.form-grid{grid-template-columns:1fr 1fr;gap:17px 20px;display:grid}.form-grid label{color:var(--muted);flex-direction:column;gap:7px;font-size:.78rem;font-weight:600;display:flex}.form-grid .wide{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#faf7f2;padding:11px 12px;font:16px DM Sans}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:2px solid var(--sand);outline-offset:1px}.form-actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.form-actions button{cursor:pointer;padding:12px 18px;font:600 .82rem DM Sans}.form-actions .cancel{border:1px solid var(--line);color:var(--ink);background:0 0}.form-actions .save{background:var(--espresso);border:1px solid var(--espresso);color:#fff}.form-error{color:#9b3f35;min-height:20px;margin:12px 0 0;font-size:.8rem}.toast{background:var(--espresso);color:#fff;opacity:0;z-index:20;padding:14px 19px;transition:all .25s;position:fixed;bottom:24px;right:24px;transform:translateY(100px);box-shadow:0 15px 45px #00000038}.toast.show{opacity:1;transform:none}@media (width<=520px){.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.form-dialog{padding:30px 20px}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}}.contents{display:contents}.system-error{color:#8e342b;background:#fff1ef;border:1px solid #e4b8b2;padding:12px 16px}.modal-backdrop{z-index:50;background:#1c1713b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-backdrop .form-dialog{background:var(--paper);padding:36px;position:relative;box-shadow:0 30px 90px #19141059}.access-denied{text-align:center;place-content:center;min-height:100vh;padding:24px;display:grid}.access-denied h1{margin:0;font:400 clamp(2.5rem,6vw,5rem) Italiana,serif}.access-denied p{color:var(--muted)}.access-denied a{color:#8d694b;text-decoration:underline}.pms-main{flex-direction:column;display:flex}.pms-main>.staff-tasks-card{order:10}.pms-main>.room-service-panel{order:11}.pms-main>.pricing-admin-panel{order:12}.pms-main>.user-admin-panel{order:13}.connection-status{color:#285b36;white-space:nowrap;background:#edf6ef;border:1px solid #cce4d1;border-radius:999px;align-items:center;gap:6px;margin:0;padding:6px 9px;display:flex}.connection-status.offline{color:#7b4d12;background:#fff5e8;border-color:#ecd2ad}.connection-status i{background:#4f9c63;border-radius:50%;width:7px;height:7px}.connection-status.offline i{background:#c47c22}.connection-status strong{font-size:.7rem;line-height:1}.connection-status span{color:#fff;background:currentColor;border-radius:999px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:.62rem;line-height:1;display:grid}.sync-message{color:#54483c;background:#f2ede5;border-radius:10px;max-width:1180px;margin:10px auto 0;padding:10px 14px}.policy-pending-status,.policy-accepted-status{border-radius:10px;grid-column:1/-1;margin:0;padding:10px 14px;font-size:.86rem}.policy-pending-status{color:#6f4f22;background:#fff5df}.policy-accepted-status{color:#285b36;background:#edf6ef}.policy-page{color:#332b25;background:#f4efe7;min-height:100vh;padding:32px 16px 64px;font-family:Arial,sans-serif}.policy-header{text-align:center;margin:0 auto 24px}.policy-header img{object-fit:contain;width:min(230px,62vw);height:auto;margin:0 auto;display:block}.policy-card{background:#fff;border:1px solid #ded2c4;border-radius:18px;max-width:720px;margin:auto;padding:clamp(24px,5vw,48px);box-shadow:0 18px 50px #3d2d2114}.policy-card h2{margin:5px 0 10px;font-family:Georgia,serif;font-size:clamp(1.7rem,5vw,2.4rem);font-weight:500}.policy-eyebrow{text-transform:uppercase;letter-spacing:.16em;color:#8a715c;font-size:.76rem;font-weight:700}.policy-intro{color:#685b50;margin-bottom:28px;line-height:1.65}.policy-card section{border-top:1px solid #eee5dc;padding:18px 0}.policy-card section h3{margin:0 0 7px;font-size:1rem}.policy-card section p{color:#5f554d;margin:0;line-height:1.6}.policy-action{background:#f7f2eb;border-radius:14px;margin-top:26px;padding:20px}.policy-action label{align-items:flex-start;gap:12px;font-weight:600;line-height:1.5;display:flex}.policy-action input{accent-color:#4d6f58;flex:none;width:22px;height:22px}.policy-action button{color:#fff;background:#4d6f58;border:0;border-radius:10px;width:100%;margin-top:18px;padding:14px;font-size:1rem;font-weight:700}.policy-action button:disabled{opacity:.45}.policy-success{color:#285b36;background:#eaf4ec;border-radius:14px;gap:5px;margin-top:26px;padding:20px;display:grid}.policy-card footer{color:#8b8077;margin-top:24px;font-size:.78rem}.policy-message{text-align:center}@media (width<=700px){.top-actions{gap:8px}.connection-status{padding:6px}.connection-status strong{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.offline-pending{background:#fffaf3;border:1px solid #e4d3bb;border-radius:12px;max-width:1180px;margin:10px auto 0;padding:12px 16px}.offline-pending summary{cursor:pointer;color:#6d4b22;font-weight:700}.offline-pending article{border-top:1px solid #eadfce;justify-content:space-between;gap:16px;padding:10px 0;display:flex}.offline-pending article:first-of-type{margin-top:10px}.offline-pending span{color:#6b6259}.collapsible-card{border:1px solid var(--line);background:var(--paper);margin-top:22px}.collapsible-card>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;list-style:none;display:flex}.collapsible-card>summary::-webkit-details-marker{display:none}.collapsible-card>summary span{flex-direction:column;gap:2px;display:flex}.collapsible-card>summary small{color:#8d694b;text-transform:uppercase;letter-spacing:.14em;font-size:.65rem}.collapsible-card>summary strong{font:400 1.65rem Italiana,serif}.collapsible-card>summary b{min-width:30px;height:30px;color:var(--espresso);background:#eee6db;border-radius:50%;place-items:center;font-size:.78rem;display:grid}.collapsible-card>summary:after{content:"+";color:var(--muted);font-size:1.4rem}.collapsible-card[open]>summary:after{content:"−"}.collapsible-card[open]>summary{border-bottom:1px solid var(--line)}.collapsible-card>.payments-card,.collapsible-card>.room-service-card{box-shadow:none;border:0;margin-top:0}.collapsible-note{color:var(--muted);margin:0 0 18px}.compact-details>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:20px;display:flex}.compact-details>summary span{font-weight:700}.compact-details>summary small{color:var(--muted)}.compact-details>.cleaning-summary{margin-top:18px}.season-indicator{border:1px solid var(--line);background:#f7f2eb;border-radius:999px;align-self:flex-start;align-items:center;gap:9px;margin-bottom:18px;padding:7px 11px;display:flex}.season-indicator.high{background:#fff1df;border-color:#d3a36b}.season-indicator span{color:var(--muted);font-size:.72rem}.season-indicator strong{font-size:.78rem}.season-settings{justify-content:space-between;align-items:center;gap:20px;padding:22px;display:flex}.season-settings>div{gap:3px;display:grid}.season-settings span,.season-settings small{color:var(--muted);font-size:.78rem}.season-settings strong{font:400 1.35rem Italiana,serif}.season-settings button{background:var(--ink);color:#fff;cursor:pointer;border:0;padding:11px 15px;font-weight:700}@media (width<=620px){.season-settings{flex-direction:column;align-items:flex-start}.season-settings button{width:100%}}.policy-summary-title{margin:0 0 12px;font-family:Georgia,serif;font-size:1.25rem}.policy-summary{grid-template-columns:1fr 1fr;gap:10px;display:grid}.policy-card .policy-summary section{background:#faf7f2;border:1px solid #e9ded2;border-radius:12px;padding:15px}.policy-summary section h3{font-size:.92rem}.policy-summary section p{font-size:.9rem;line-height:1.45}.policy-details{border:1px solid #ded2c4;border-radius:12px;margin-top:22px;overflow:hidden}.policy-details>summary{cursor:pointer;background:#f2ebe3;padding:17px 19px;font-weight:700;list-style-position:inside}.policy-details>div{padding:0 19px 5px}.policy-details section:first-child{border-top:0}.policy-details section p{font-size:.96rem}.policy-action{position:sticky;bottom:10px;box-shadow:0 8px 28px #3d2d2124}@media (width<=620px){.policy-summary{grid-template-columns:1fr}.policy-card{padding:24px 18px}.policy-header h1{font-size:2.1rem}.policy-action{position:static}}.logout-button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;padding:10px 14px;font:600 .78rem DM Sans}.logout-button:hover{background:#e9e1d7}.login-page{background:linear-gradient(#f4efe7e0,#f4efe7f5),#e8dfd3;place-items:center;min-height:100vh;padding:28px;display:grid}.login-card{border:1px solid var(--line);background:#f3f0eb;width:min(100%,440px);padding:38px;box-shadow:0 28px 80px #342a222e}.login-card>img{object-fit:contain;width:220px;max-height:90px;margin:0 auto 24px;display:block}.login-card h1{text-align:center;margin:0 0 10px;font:400 2.5rem/1.05 Italiana,serif}.login-card>p{color:var(--muted);text-align:center;margin:0 0 26px}.login-form{gap:17px;display:grid}.login-form label{color:var(--muted);gap:7px;font-size:.78rem;font-weight:600;display:grid}.login-form input{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;padding:12px 13px}.login-form input:focus{border-color:var(--sand);outline:2px solid #c49a6c59}.login-form button{background:var(--espresso);color:#fff;cursor:pointer;border:0;padding:13px 18px;font:600 .85rem DM Sans}.login-form button:disabled{opacity:.6;cursor:wait}.login-form small{color:var(--muted)}.setup-link{color:#7a5639;text-align:center;text-underline-offset:3px;margin-top:20px;font-size:.9rem;font-weight:600;text-decoration:underline;display:block}.form-error{color:#8a2e24;background:#fff0ed;border:1px solid #efc8c2;padding:10px 12px;font-size:.8rem}@media (width<=620px){.top-actions{gap:8px}.logout-button{padding:9px 10px}.login-card{padding:28px 22px}}.edit-actions{align-items:center}.edit-actions span{flex:1}.form-actions .delete{color:#923c32;background:0 0;border:1px solid #b85c50}@media (width<=620px){.edit-actions span{display:none}}.payments-card{background:var(--paper);border:1px solid var(--line);margin-top:28px;box-shadow:0 22px 55px #342a220d}.today-board{background:var(--paper);border:1px solid var(--line);margin-top:28px;margin-bottom:28px;box-shadow:0 22px 55px #342a220d}.today-board-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:20px;padding:22px 26px;display:flex}.today-board-heading h2{margin:0;font:400 2rem Italiana,serif}.today-board-heading>span{color:var(--muted);text-transform:capitalize;font-size:.82rem}.today-columns{grid-template-columns:repeat(4,1fr);display:grid}.today-columns article{border-right:1px solid var(--line);min-width:0;padding:18px}.today-columns article:last-child{border-right:0}.today-columns article>header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.today-columns article>header span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;font-weight:700}.today-columns article>header strong{font:400 1.6rem Italiana,serif}.today-columns article>button,.today-cleaning{border:0;border-top:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:0 0;gap:3px;padding:11px 0;display:grid}.today-columns article>button{cursor:pointer}.today-columns article>button:hover{color:#7a5639}.today-columns article small,.today-columns article>p{color:var(--muted);font-size:.75rem}.today-columns article>p{margin:12px 0 0}@media (width<=900px){.today-columns{grid-template-columns:1fr 1fr}.today-columns article:nth-child(2){border-right:0}.today-columns article:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media (width<=560px){.today-board-heading{flex-direction:column;align-items:flex-start}.today-columns{grid-template-columns:1fr}.today-columns article{border-right:0;border-bottom:1px solid var(--line)}.today-columns article:last-child{border-bottom:0}}.payments-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:24px;padding:25px 28px;display:flex}.payments-heading h2{margin:0;font:400 2rem Italiana,serif}.payments-heading>p{color:var(--muted);margin:0;font-size:.82rem}.payment-summary{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.payment-summary article{border-right:1px solid var(--line);padding:20px 24px}.payment-summary article:last-child{border-right:0}.payment-summary span{color:var(--muted);margin-bottom:5px;font-size:.76rem;display:block}.payment-summary strong{font:400 1.65rem Italiana,serif}.payments-scroll{overflow-x:auto}.payments-table{border-collapse:collapse;width:100%;min-width:860px}.payments-table th{color:var(--muted);text-align:left;text-transform:uppercase;letter-spacing:.08em;background:#f7f2eb;padding:13px 16px;font-size:.7rem}.payments-table td{border-top:1px solid var(--line);padding:15px 16px;font-size:.82rem}.payments-table tbody tr{cursor:pointer}.payments-table tbody tr:hover{background:#faf6f0}.payments-table td small{color:var(--muted);margin-top:3px;display:block}.balance-due{color:#923c32;font-weight:700}.balance-paid{color:#46705f;font-weight:700}.empty-payments{text-align:center;color:var(--muted);padding:32px!important}@media (width<=700px){.payments-heading{flex-direction:column;align-items:flex-start}.payment-summary{grid-template-columns:1fr}.payment-summary article{border-right:0;border-bottom:1px solid var(--line)}.payment-summary article:last-child{border-bottom:0}}.payment-requirement{border:1px solid var(--line);background:#f7f2eb;gap:4px;padding:16px;display:grid}.payment-requirement strong{font:400 1.55rem Italiana,serif}.payment-requirement small{color:var(--muted)}.whatsapp-confirmation{color:#fff;background:#2f6b52;justify-content:center;margin-top:8px;padding:12px 16px;font-weight:700;text-decoration:none;display:inline-flex}.whatsapp-confirmation:hover{background:#245641}.paid-label{color:#245641;background:#e3f0e9;width:fit-content;margin-top:6px;padding:7px 10px;font-weight:700;display:inline-flex}.booking.paid{color:#fff;background:#2f6b52}.legend i.paid{background:#2f6b52}.booking.checked_in_paid{color:#fff;background:#2f6b52}.booking.checked_in_balance{color:#fff;background:#9a6335}.stay-action-card{border:1px solid var(--line);background:#fbf8f3;gap:12px;margin-top:20px;padding:18px;display:grid}.stay-action-card h3{margin:0;font:400 1.35rem Italiana,serif}.stay-action-card p{margin:0}.stay-action-card label{gap:6px;font-size:.78rem;display:grid}.stay-action-card input{border:1px solid var(--line);background:#fff;padding:11px}.housekeeping-page{background:#f6f0e8;min-height:100vh;padding:24px}.housekeeping-page header{justify-content:space-between;align-items:center;max-width:900px;margin:0 auto 40px;display:flex}.housekeeping-page header img{width:150px}.housekeeping-page header div{align-items:center;gap:14px;display:flex}.housekeeping-page header button{border:1px solid var(--line);background:#fff;padding:10px 14px}.housekeeping-page section{max-width:900px;margin:auto}.housekeeping-page h1{font:400 2.4rem Italiana,serif}.cleaning-list{gap:12px;display:grid}.cleaning-list article,.cleaning-empty{border:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:20px;padding:22px;display:flex}.cleaning-list article div,.cleaning-empty{gap:5px;display:grid}.cleaning-list article span,.cleaning-empty span{color:var(--muted)}.cleaning-list article button{color:#fff;background:#2f6b52;border:0;padding:13px 18px;font-weight:700}@media (width<=600px){.housekeeping-page header,.cleaning-list article{flex-direction:column;align-items:flex-start}.cleaning-list article button{width:100%}}.housekeeping-extra-tasks{margin-top:42px}.housekeeping-extra-tasks h2{margin:0 0 18px;font:400 2rem Italiana,serif}.staff-task-list article.urgent-task{background:#fff5f2;border-left:5px solid #9a493c}.all-clear-message{color:#245641;text-align:center;background:#e7f1eb;margin:30px 0 0;padding:18px;font-weight:700}.staff-completed-history{border:1px solid var(--line);background:#fff;margin-top:30px}.staff-completed-history summary{cursor:pointer;padding:16px 18px;font-weight:700}.staff-completed-history>div{padding:0 18px 16px}.staff-completed-history article{border-top:1px solid var(--line);gap:4px;padding:13px 0;display:grid}.staff-completed-history span,.staff-completed-history small,.staff-completed-history p{color:var(--muted)}.staff-tasks-card{background:var(--paper);border:1px solid var(--line);margin-top:28px;box-shadow:0 22px 55px #342a220d}.staff-tasks-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:20px;padding:22px 26px;display:flex}.staff-tasks-heading h2{margin:0;font:400 2rem Italiana,serif}.staff-tasks-heading>p{color:var(--muted);margin:0;font-size:.88rem}.staff-task-form{background:#f7f2eb;grid-template-columns:.8fr 1fr 1.5fr auto auto;align-items:end;gap:14px;padding:20px 26px;display:grid}.staff-task-form label{color:var(--muted);gap:7px;font-size:.875rem;font-weight:600;display:grid}.staff-task-form input,.staff-task-form select{border:1px solid var(--line);min-width:0;min-height:46px;color:var(--ink);background:#fff;padding:11px 12px;font:400 1rem DM Sans,sans-serif}.staff-task-form .task-urgent{white-space:nowrap;align-items:center;min-height:46px;display:flex}.staff-task-form .task-urgent input{width:auto;min-height:0}.staff-task-form>button{background:var(--ink);color:#fff;cursor:pointer;border:0;min-height:46px;padding:11px 18px;font-weight:700}.admin-task-list{padding:0 26px 20px}.admin-task-list article{border-width:0 0 1px;margin:0;padding:16px 0}.admin-task-list article.urgent-task{border-left-width:5px;margin:8px -10px 0;padding:14px 10px}.admin-task-list article div{gap:3px;display:grid}.admin-task-list small{color:var(--muted)}.private-staff-history{border-top:1px solid var(--line);background:#fbf8f3;padding:24px 26px}.private-staff-history h3{margin:0 0 14px;font:400 1.65rem Italiana,serif}.cleaning-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.cleaning-summary article{border:1px solid var(--line);background:#fff;gap:5px;padding:14px;display:grid}.cleaning-summary span,.cleaning-summary>p{color:var(--muted);font-size:.85rem}@media (width<=1000px){.staff-task-form{grid-template-columns:1fr 1fr}.staff-task-form .task-description,.staff-task-form>button{grid-column:1/-1}}@media (width<=620px){.staff-tasks-heading{flex-direction:column;align-items:flex-start}.staff-task-form,.cleaning-summary{grid-template-columns:1fr}.staff-task-form .task-description,.staff-task-form>button{grid-column:auto}.admin-task-list article{flex-direction:column;align-items:flex-start}.admin-task-list article button{width:100%}}.guest-search{border:1px solid var(--line);background:#fff;min-width:240px;padding:11px 13px}.cancelled-history{border:1px solid var(--line);background:var(--paper);margin-top:28px}.cancelled-history summary{cursor:pointer;justify-content:space-between;align-items:center;padding:18px 22px;font-weight:700;display:flex}.cancelled-history summary span{min-width:28px;color:var(--muted);text-align:center;background:#f1e9df;border-radius:20px;padding:3px 8px;font-size:.78rem}.cancelled-list{padding:0 22px 18px}.cancelled-list article{border-top:1px solid var(--line);grid-template-columns:.8fr .8fr 1.6fr;gap:18px;padding:14px 0;display:grid}.cancelled-list article>div{gap:3px;display:grid}.cancelled-list small,.cancelled-list p,.cancelled-empty{color:var(--muted);font-size:.75rem}.cancelled-list p{white-space:pre-line;margin:0}@media (width<=700px){.cancelled-list article{grid-template-columns:1fr;gap:8px}}.guest-list{padding:0 26px 24px}.guest-list article{border-bottom:1px solid var(--line);grid-template-columns:1.2fr .55fr .85fr .8fr 1.4fr auto;align-items:center;gap:16px;padding:16px 0;display:grid}.guest-list article>div{gap:3px;display:grid}.guest-list article span,.guest-list article small{color:var(--muted);font-size:.75rem}.guest-list article.guest-blocked{background:#fff2ef;border-left:3px solid #923c32;margin:0 -12px;padding:16px 12px}.guest-alert-cell b{color:#923c32;font-size:.78rem}.guest-list button{padding:9px 11px}@media (width<=900px){.guest-list article{grid-template-columns:1fr 1fr}.guest-alert-cell,.guest-list button{grid-column:1/-1}.guest-search{width:100%;min-width:0}}.season-control{border:1px solid var(--line);background:#f7f2eb;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;padding:18px 22px;display:flex}.season-control.high{background:#fff1df;border-color:#d3a36b}.season-control>div{gap:3px;display:grid}.season-control span,.season-control small{color:var(--muted);font-size:.78rem}.season-control strong{font:400 1.35rem Italiana,serif}.season-control button{background:var(--ink);color:#fff;border:0;padding:11px 15px;font-weight:700}.price-breakdown{border:1px solid var(--line);background:#f7f2eb;gap:5px;padding:14px;display:grid}.price-breakdown span,.price-breakdown small{color:var(--muted);font-size:.75rem}@media (width<=620px){.season-control{flex-direction:column;align-items:flex-start}.season-control button{width:100%}}.payment-ledger{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.payment-ledger h3,.user-create-form h3{margin:0 0 15px;font:400 1.35rem Italiana,serif}.payment-entry{border-top:1px solid var(--line);grid-template-columns:1fr 1fr auto;align-items:center;gap:15px;padding:13px 0;display:grid}.payment-entry>div{gap:3px;display:grid}.payment-entry span,.payment-entry small{color:var(--muted);font-size:.75rem}.payment-entry.verified{border-left:3px solid #46705f;padding-left:12px}.payment-entry.rejected{opacity:.6}.payment-review{grid-template-columns:auto auto;gap:8px!important;display:flex!important}.payment-review button,.user-list button{padding:9px 12px}.payment-form{background:#f7f2eb;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px;padding:18px;display:grid}.payment-form label,.user-create-form label{gap:6px;font-size:.78rem;display:grid}.payment-form input,.payment-form select,.user-create-form input,.user-create-form select{border:1px solid var(--line);background:#fff;padding:11px}.proof-check{align-items:center;display:flex!important}.proof-check input{width:auto}.user-admin-grid{grid-template-columns:1.4fr 1fr;gap:28px;padding:26px;display:grid}.user-list article{border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:13px 0;display:grid}.user-list article>div{gap:3px;display:grid}.user-list small{color:var(--muted)}.user-active{color:#46705f}.user-inactive{color:#923c32}.user-create-form{background:#f7f2eb;gap:12px;padding:20px;display:grid}.user-password-note{color:var(--muted);margin:-4px 0 2px;font-size:.82rem;line-height:1.4}@media (width<=700px){.payment-entry,.payment-form,.user-admin-grid{grid-template-columns:1fr}.user-list article{grid-template-columns:1fr auto}.user-list article button{grid-column:1/-1}}.date-jump{border-right:1px solid var(--line);white-space:nowrap;align-items:center;gap:8px;padding:6px 10px;display:flex}.calendar-title-group{gap:16px;display:grid}.room-grouping{flex-wrap:wrap;align-items:center;gap:12px;font-size:.875rem;font-weight:600;display:flex}.room-grouping select{border:1px solid var(--line);background:var(--paper);min-height:42px;color:var(--ink);font:inherit;cursor:pointer;padding:8px 34px 8px 12px}.room-grouping select:focus-visible{outline:2px solid var(--espresso);outline-offset:2px}.calendar-title-group .week-controls{width:fit-content}.calendar-group{border-bottom:1px solid var(--line);color:var(--espresso);background:#e9dfd3;grid-column:1/-1;padding:12px 16px;font-size:.88rem;font-weight:700}.legend i.cleaning{background:#8b8178}.booking.cleaning{cursor:default;background:#8b8178;display:block}.legend i.out-of-service{background:#7e4b42}.booking.out-of-service{color:#fff;cursor:default;background:#7e4b42;display:block;overflow:hidden}.booking.out-of-service small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.date-jump span{color:var(--muted);font-size:.78rem;font-weight:600}.date-jump input{border:1px solid var(--line);width:138px;color:var(--ink);background:#fff;padding:7px 8px;font:600 .82rem DM Sans,sans-serif}@media (width<=520px){.week-controls{flex-wrap:wrap;width:100%}.date-jump{border-top:1px solid var(--line);border-right:0;order:4;width:100%}.date-jump input{flex:1;width:auto}}.room-service-card{background:var(--paper);border:1px solid var(--line);margin-top:28px;box-shadow:0 22px 55px #342a220d}.room-service-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:20px;padding:22px 26px;display:flex}.room-service-heading h2{margin:0;font:400 2rem Italiana,serif}.room-service-heading>p{color:var(--muted);margin:0;font-size:.88rem}.room-service-form{background:#f7f2eb;grid-template-columns:1.1fr .85fr 1fr 1.35fr auto;align-items:end;gap:14px;padding:20px 26px;display:grid}.room-service-form label{color:var(--muted);gap:7px;font-size:.875rem;font-weight:600;display:grid}.room-service-form input,.room-service-form select{border:1px solid var(--line);min-width:0;min-height:46px;color:var(--ink);background:#fff;padding:11px 12px;font:400 1rem DM Sans,sans-serif}.room-service-form button{color:#fff;cursor:pointer;background:#7e4b42;border:0;min-height:46px;padding:11px 16px;font-weight:700}.room-service-list{padding:0 26px 20px}.room-service-list article{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.4fr auto;align-items:center;gap:18px;padding:15px 0;display:grid}.room-service-list article>div{gap:3px;display:grid}.room-service-list span,.room-service-list p,.room-service-empty{color:var(--muted);font-size:.85rem}.room-service-list p{margin:0}.room-service-list button{border:1px solid var(--line);min-height:40px;color:var(--ink);cursor:pointer;background:#fff;padding:9px 12px;font-weight:700}.room-service-empty{margin:20px 0 0}@media (width<=1050px){.room-service-form{grid-template-columns:1fr 1fr}.room-service-form button{grid-column:1/-1}}@media (width<=620px){.room-service-heading{flex-direction:column;align-items:flex-start}.room-service-form{grid-template-columns:1fr}.room-service-form button{grid-column:auto}.room-service-list article{grid-template-columns:1fr;gap:8px}.room-service-list button{width:100%}}.form-dialog{width:min(94vw,780px)}.reservation-dialog{flex-direction:column;display:flex}.reservation-dialog .reservation-finance-summary,.reservation-dialog .reservation-error{order:1}.reservation-dialog .payment-ledger{order:2}.reservation-dialog .security-deposit-card{order:3}.reservation-dialog .stay-action-card{order:4}.reservation-dialog .booking-details{order:5}.reservation-finance-summary{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(4,1fr);gap:1px;margin-top:4px;display:grid}.reservation-finance-summary article{background:#f7f2eb;gap:5px;padding:14px;display:grid}.reservation-finance-summary article span{color:var(--muted);font-size:.82rem}.reservation-finance-summary article strong{font-size:1rem}.reservation-finance-summary>p{color:#6f4f22;background:#fff5df;grid-column:1/-1;margin:0;padding:11px 14px;font-size:.86rem}.reservation-finance-summary .whatsapp-confirmation{grid-column:1/-1;margin:0}.booking-details{border-top:1px solid var(--line);margin-top:24px}.booking-details>summary{cursor:pointer;color:#7a5639;padding:17px 0;font-size:.9rem;font-weight:700}.booking-details[open]>summary{margin-bottom:10px}.security-deposit-card{background:#fffaf0;border:1px solid #d8c5a3;gap:14px;margin-top:24px;padding:18px;display:grid}.security-deposit-card.held{background:#fff7e8;border-color:#c99c58}.security-deposit-card.returned{background:#f3faf6;border-color:#9bbcac}.security-deposit-card.partial,.security-deposit-card.retained{background:#fff6f4;border-color:#c89e98}.security-deposit-card p{color:var(--muted);margin:0;font-size:.875rem;line-height:1.5}.security-deposit-heading{justify-content:space-between;align-items:center;gap:18px;display:flex}.security-deposit-heading div{gap:3px;display:grid}.security-deposit-heading span{color:#856541;letter-spacing:.04em;text-transform:uppercase;font-size:.75rem;font-weight:700}.security-deposit-heading h3{margin:0;font:400 1.35rem Italiana,serif}.security-deposit-heading>strong{color:#7a4d20;white-space:nowrap;font-size:1.15rem}.security-deposit-form,.security-deposit-resolution{grid-template-columns:1fr 1fr;align-items:end;gap:12px;display:grid}.security-deposit-form label,.security-deposit-resolution label{color:var(--ink);gap:7px;font-size:.84rem;display:grid}.security-deposit-form input,.security-deposit-form select,.security-deposit-resolution input,.security-deposit-resolution select,.security-deposit-resolution textarea{border:1px solid var(--line);background:#fff;min-height:44px;padding:11px 12px;font:400 .94rem/1.35 DM Sans,sans-serif}.security-deposit-form button{grid-column:1/-1}.security-deposit-form button,.security-deposit-resolution button{cursor:pointer;border:0;min-height:44px;padding:10px 14px;font-weight:700}.security-deposit-resolution .wide,.security-deposit-resolution>p{grid-column:1/-1}.security-deposit-resolution textarea{resize:vertical}.security-deposit-resolution .deposit-retain{color:#fff;background:#7e4b42}.security-deposit-status,.security-deposit-result{gap:4px;display:grid}.security-deposit-status span,.security-deposit-status small,.security-deposit-result small{color:var(--muted);font-size:.8rem}.security-deposit-result{border-top:1px solid #563a232e;grid-template-columns:1fr 1fr;padding-top:12px}.security-deposit-result p,.security-deposit-result small{grid-column:1/-1}.stay-action-card.guarantee-required{background:#fff8e9;border-color:#d4b275}@media (width<=620px){.reservation-finance-summary{grid-template-columns:1fr 1fr}.security-deposit-heading{flex-direction:column;align-items:flex-start;gap:8px}.security-deposit-form,.security-deposit-resolution{grid-template-columns:1fr}.security-deposit-form button,.security-deposit-resolution .wide,.security-deposit-resolution>p{grid-column:auto}}.form-grid{gap:20px 24px}.form-grid label,.login-form label,.stay-action-card label,.payment-form label,.user-create-form label{gap:8px;font-size:.875rem;line-height:1.4}.form-grid input,.form-grid select,.form-grid textarea,.login-form input,.stay-action-card input,.payment-form input,.payment-form select,.user-create-form input,.user-create-form select,.guest-search{min-height:46px;padding:13px 14px;font:400 1rem/1.35 DM Sans,sans-serif}.form-grid textarea{min-height:96px}.price-breakdown span,.price-breakdown small,.payment-entry span,.payment-entry small,.guest-list article span,.guest-list article small,.season-control span,.season-control small{font-size:.84rem;line-height:1.45}.payments-table td{font-size:.875rem}.payments-table th,.payment-summary span{font-size:.78rem}.form-actions button,.login-form button,.season-control button,.payment-review button,.user-list button{min-height:44px;font-size:.875rem}@media (width<=520px){.form-dialog{padding:30px 22px}.form-grid{gap:18px}}
