*{box-sizing:border-box}body{margin:0;background:#f4f5f2;color:#21342e;font:15px 'Segoe UI',sans-serif}aside{position:fixed;width:220px;height:100vh;background:#193c33;color:#e9f2ec;padding:32px 24px}.brand{font-size:40px;font-weight:750;letter-spacing:-2px}.brand span{display:block;font-size:13px;letter-spacing:1px;font-weight:400}aside p{font-size:11px;letter-spacing:2px;color:#9eb6aa;margin-top:58px}aside b{display:block;padding:15px;background:#31564b;border-radius:8px}.aside-bottom{position:absolute;bottom:30px;line-height:1.8}.aside-bottom small{color:#acc3b7}main{margin-left:220px;padding:36px;max-width:1800px}header{display:flex;justify-content:space-between;align-items:center}small{color:#72837b}header small{letter-spacing:2px;font-size:11px}h1{font-size:32px;margin:8px 0 24px;letter-spacing:-1px}button{border:0;border-radius:8px;background:#24664f;color:white;padding:12px 18px;font:inherit;font-weight:600;cursor:pointer}button:hover{filter:brightness(.94)}.secondary{background:#fff;color:#284339;border:1px solid #d6dfd8}.notice{background:#eaf0e7;color:#53654e;padding:14px 18px;border:1px solid #dce6d5;border-radius:9px;font-size:13px}.toolbar,.dates{display:flex;align-items:center;gap:8px}.toolbar{margin:24px 0;gap:20px;flex-wrap:wrap}.zone{margin-left:auto;color:#7c8981;font-size:12px}input,select,textarea{border:1px solid #d6dfd8;border-radius:7px;padding:11px;background:white;color:#243d31;font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid #77a98d}.metrics{display:flex;gap:16px;margin-bottom:24px}.metrics>div{background:white;border:1px solid #e0e5de;border-radius:10px;padding:18px 22px;flex:1}.metrics strong{display:block;font-size:27px;margin-top:8px}.panel{background:white;border:1px solid #dde4db;border-radius:12px;overflow:hidden}.panel-title{display:flex;justify-content:space-between;align-items:center;padding:15px 22px}.panel-title h2{font-size:18px}.panel-title span{font-size:12px;color:#748277}i{display:inline-block;width:10px;height:10px;background:#abd2be;border-radius:3px}i.clean{background:#e7d9b7}.scroll{overflow:auto;max-height:620px}#calendar{min-width:1515px}.row{display:grid;grid-template-columns:220px 1fr;border-top:1px solid #e9ede7;min-height:86px}.row.head{min-height:44px;background:#f7f9f5;position:sticky;top:0;z-index:4}.room{padding:17px 20px;background:#fff;position:sticky;left:0;z-index:3;border-right:1px solid #e1e7de}.room strong{display:block;font-size:14px}.room small{display:block;margin-top:5px;font-size:11px}.hours{display:grid;grid-template-columns:repeat(24,1fr);position:relative}.hour{border:0;border-right:1px solid #edf0eb;background:none;border-radius:0;padding:0;min-width:52px;color:#7e8d81;font-size:11px;font-weight:400}.row:not(.head) .hour:hover{background:#f0f6ec}.booking{position:absolute;top:12px;height:60px;background:#d6eadd;color:#224b38;border:1px solid #9dc7ad;border-left:4px solid #39815d;overflow:hidden;text-align:left;padding:7px;font-size:12px;min-width:8px;z-index:2;white-space:nowrap}.booking small{display:block;color:#416951;font-size:11px}.cleanup{position:absolute;top:12px;height:60px;background:repeating-linear-gradient(135deg,#f3ecd9,#f3ecd9 5px,#e8dfc7 5px,#e8dfc7 7px);pointer-events:none}.hint{font-size:12px;color:#78867c;line-height:1.8}dialog{width:560px;max-width:95vw;border:0;border-radius:15px;padding:26px;box-shadow:0 20px 90px #12332540}dialog::backdrop{background:#17362a66}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.modal-head h2{margin:0}label{display:flex;flex-direction:column;gap:6px;margin:14px 0;font-size:13px}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}textarea{resize:vertical}footer{display:flex;justify-content:space-between;gap:12px;margin-top:22px}.danger{background:#faece7;color:#a44937}#quote{padding:12px;background:#f0f5ec;border-radius:8px;font-size:13px}#form-error,#error{color:#a73e31;margin-top:12px} @media(max-width:850px){aside{display:none}main{margin-left:0;padding:18px}.metrics{gap:8px}.metrics>div{padding:12px}.metrics strong{font-size:20px}header{gap:12px}h1{font-size:26px}.zone{margin-left:0}.two{grid-template-columns:1fr}}

.slot span{font-size:11px;color:#637c68;white-space:nowrap}.slot.selected{background:#c3e0cb!important;box-shadow:inset 0 -3px #286b4c}#selection:not([hidden]){display:flex;justify-content:space-between;align-items:center;gap:16px;background:#e1efdf;border:1px solid #a5c5a0;border-radius:10px;padding:16px;margin-bottom:16px}#selection-text{font-weight:650}#quote strong{display:block;font-size:30px;margin:8px 0}#quote div{margin:5px 0}#quote small{display:block}button:disabled{opacity:.45;cursor:not-allowed}.hour{min-width:62px}#calendar{min-width:1720px}

.search-panel{background:white;border:1px solid #dde4db;border-radius:10px;padding:18px;margin-bottom:20px}.search-panel summary{cursor:pointer;font-weight:600}#search-form{display:flex;gap:12px;flex-wrap:wrap;align-items:end}#search-form button{margin-bottom:14px}.search-result{margin:8px 8px 0 0}
@media(max-width:600px){.row{grid-template-columns:135px 1fr}.room{padding:14px 10px}.room strong{font-size:12px}.room small{font-size:10px}#calendar{min-width:1635px}#selection:not([hidden]){align-items:stretch;flex-direction:column}.metrics{flex-wrap:wrap}.metrics>div{min-width:110px}.dates{flex-wrap:wrap}}

#selection:not([hidden]){position:sticky;top:8px;z-index:8;box-shadow:0 6px 22px #193c3317}#selection-price{display:block;font-size:28px;margin-top:6px;color:#17452e}.room-open{padding:0;background:transparent;color:#21342e;text-align:left;font-size:14px}.room-open:hover{text-decoration:underline}.booking-list{margin-top:22px}.day-booking{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;background:white;color:#254330;border-radius:0;padding:16px 22px;border-top:1px solid #e1e8df;text-align:left;font-weight:400}.day-booking small{display:block;margin-top:6px}.day-booking strong{white-space:nowrap}.empty{padding:0 22px 20px;color:#7c897e}#quote{position:sticky;top:-26px;z-index:2;margin:12px 0 18px;border:1px solid #bdd4b8}#quote div{font-size:12px}#quote strong{font-size:32px}@media(max-width:600px){.room-open{font-size:12px}#selection:not([hidden]){padding:12px;gap:8px}#selection-price{font-size:25px}#selection-text{font-size:12px}#selection button{padding:9px 12px;font-size:13px}}

.booking.status-arrived{background:#f1e3bc;border-color:#c6a958;color:#6b5011}.booking.status-completed{background:#e4e7e3;border-color:#aab3a9;color:#526151}.remaining{border-top:1px solid #b9cdb0;padding-top:8px;font-weight:650}
.promo-banner{display:flex;flex-direction:column;gap:6px;background:#fff0ce;border:1px solid #e1ca8a;border-radius:9px;padding:14px 18px;margin-top:14px}.promo-banner span{font-size:12px;color:#786639}.gift-line,#selection-promo{color:#24664f;font-weight:650;font-size:12px;margin-top:8px}#form-gift{margin-bottom:8px}
#auth-screen{display:none}.locked>aside,.locked>main{display:none}.locked #auth-screen{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:22px;background:#eaf0e7}.auth-card{width:440px;max-width:100%;background:#fff;padding:30px;border-radius:18px;box-shadow:0 10px 60px #193c3312}.auth-card h1{margin-top:15px}.auth-card p{line-height:1.6;color:#63786a}.auth-card form{margin:24px 0}.auth-card button{width:100%}#auth-error{color:#a73e31}.account-bar{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-bottom:20px;font-size:13px}.account-bar button{padding:7px 12px;font-size:12px}#staff-form{max-width:440px}.staff-row,.audit-row{padding:12px 0;border-bottom:1px solid #e2e9df}.staff-row span,.audit-row span,.audit-row small{display:block;color:#738273;font-size:12px;margin-top:5px}#audit-list{max-height:400px;overflow:auto}

.slot.unavailable{opacity:1;background:#edf0eb;color:#879087;cursor:not-allowed}.slot.unavailable span{font-size:9px;color:#899287}.cleanup{z-index:2;cursor:not-allowed}#conflict-message:not([hidden]){padding:13px;border:1px solid #e4b39e;background:#fff0e8;color:#97422c;border-radius:8px;margin-bottom:16px;font-size:13px}.slot.selected.unavailable{background:#f0d8ce!important;box-shadow:inset 0 -3px #b8654c}
[hidden]{display:none!important}

.view-tabs{display:flex;gap:8px;margin-bottom:28px}.view-tabs a{padding:11px 18px;text-decoration:none;color:#42634e;border:1px solid #cad8c9;border-radius:8px}.view-tabs a.active{background:#24664f;color:white;border-color:#24664f}.guest-page main{margin:0 auto;max-width:1050px}.guest-page header p{color:#6b7e70;margin-top:-10px;margin-bottom:25px}.guest-filters{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin-top:15px}.guest-filters label{flex:1;min-width:120px}.guest-filters button{margin-bottom:14px}.guest-room{background:white;padding:24px;border:1px solid #dce4d8;border-radius:14px;margin:20px 0}.guest-room h2{margin:0 0 6px}.guest-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:10px;margin-top:20px}.guest-slot{background:#edf6e9;color:#244d32;border:1px solid #bcd1b5;padding:14px;text-align:left}.guest-slot span{display:block;margin-top:8px}.guest-slot small{display:block;font-size:11px;margin-top:6px;color:#39724b}#guest-quote{padding:16px;background:#eef5e9;border:1px solid #c5d7bb;border-radius:10px}#guest-quote h3{margin:0}#guest-quote strong{display:block;font-size:30px;margin:12px 0}#guest-quote div{font-size:12px;margin-top:5px}#gift-choice{display:block;padding:12px;background:#fff0ce;border-radius:8px}#guest-error{color:#a73e31;margin:12px 0}.guest-access-link{display:block;font-size:13px;color:#24664f;margin:14px 0;line-height:1.6}@media(max-width:500px){.guest-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.guest-slot{padding:12px 8px;font-size:13px}.guest-room{padding:16px}.view-tabs a{padding:10px;font-size:13px}}
.guest-timeline-scroll{overflow:auto}.timeline-row{display:grid;width:max-content;min-height:92px;border-top:1px solid #e1e7dc}.timeline-head{min-height:48px;background:#f4f7f0}.timeline-room{position:sticky;left:0;z-index:3;background:#fff;padding:18px 12px;border-right:1px solid #d7e1d2}.timeline-room small{display:block;font-size:11px;margin-top:8px}.timeline-hour{text-align:center;font-size:12px;color:#6d7c6c;padding:12px 2px}.timeline-hour small{display:block;font-size:9px}.timeline-cell{border-radius:0;border:1px solid #c1d8b6;border-right-width:0;background:#e5f2de;color:#386037;padding:2px;font-size:10px;user-select:none;touch-action:pan-x pan-y}.timeline-cell:hover{background:#cbe3bf}.timeline-cell.chosen{background:#286a46;color:white;box-shadow:inset 0 -4px #a4c88b}.timeline-gap{background:#f9faf7;border-right:1px solid #edf0e8}#guest-selection:not([hidden]){display:flex;justify-content:space-between;gap:15px;align-items:center;padding:16px;background:#dfedd6;border:1px solid #b4cba5;border-radius:10px;position:sticky;top:6px;z-index:8;margin:15px 0}#guest-selection-total{display:block;font-size:28px;margin:6px 0}#guest-selection-note{font-size:12px;color:#546d48}#guest-selection-time{font-size:14px;font-weight:600}@media(max-width:600px){#guest-selection:not([hidden]){flex-direction:column;align-items:stretch}#guest-selection-total{font-size:24px}.timeline-room{padding:18px 9px}}
@media(max-width:600px){.timeline-row{grid-template-columns:110px repeat(var(--timeline-count),62px)!important}}

.timeline-cell.planned-cleanup,.timeline-gap.planned-cleanup{background:repeating-linear-gradient(135deg,#eadcb6,#eadcb6 5px,#f6efd9 5px,#f6efd9 10px);box-shadow:inset 0 0 0 2px #b49e68}.planned-cleanup::after{content:"Уборка";display:block;color:#7d692f;font-size:9px}#timeline-promo{margin:4px 0}

.timeline-cell.planned-cleanup span{visibility:hidden}

#promo-dialog{padding:28px;background:#fffdf6}#promo-dialog h2{font-size:27px;line-height:1.2;letter-spacing:-.7px;margin:18px 0 12px}.offer-badge{display:inline-block;color:#81601d;background:#ffedb7;border-radius:6px;padding:8px 10px;font-size:10px;font-weight:750;letter-spacing:.6px}.offer-intro{color:#627366;line-height:1.6}.offer-time{font-weight:650;margin:18px 0 10px}.price-card{padding:16px;background:#f2f7ec;border:1px solid #b8cfaa;border-radius:10px;margin:12px 0}.price-duration{font-size:17px;font-weight:750;color:#234b32}.price-before{color:#798475;margin:12px 0 8px}.price-before s{font-size:21px;margin-left:6px}.price-pay-label{font-size:12px;color:#5f7458;margin-top:10px}.price-pay,#guest-quote .price-pay{display:block;font-size:38px;font-weight:800;line-height:1.2;margin:5px 0 10px;color:#194e2c}.price-saving{background:#dceccf;padding:9px;border-radius:6px;color:#326429;font-size:13px;font-weight:650;line-height:1.5}.offer-extra{font-size:14px;line-height:1.7;color:#4e6549}#promo-accept,#promo-decline{display:block;width:100%;margin-top:10px}#promo-accept{background:#256344;padding:15px}#promo-decline{font-size:13px;color:#63745e}#guest-selection:not([hidden]){position:relative;top:auto}#guest-price-card .price-card{margin:9px 0}#guest-price-card .price-pay{font-size:34px}@media(max-width:600px){#promo-dialog{padding:20px}#promo-dialog h2{font-size:24px}.price-pay,#guest-quote .price-pay{font-size:34px}}
#promo-dialog h2:focus{outline:none}

#guest-inline-offer{margin-top:16px;border:2px solid #e1bb5f;border-radius:12px;background:#fff5d8;padding:18px}#guest-inline-details>b{display:block;font-size:21px;color:#5b4215}#guest-inline-details p{font-size:14px;line-height:1.5}#guest-inline-details strong{display:block;font-size:29px;color:#1e592e;margin:10px 0}#guest-inline-accept{width:100%;margin-top:14px}

/* Compact guest booking layout */
.guest-page main{max-width:1300px;padding:18px 24px}.guest-page .view-tabs{margin-bottom:12px}.guest-page header h1{font-size:26px;margin:5px 0}.guest-page header p{margin:6px 0}.guest-page .notice{padding:8px 12px;margin:8px 0;font-size:12px}.guest-page .promo-banner{padding:9px 12px;margin-top:8px}.guest-page .promo-banner span{font-size:12px}.guest-page .guest-filters{margin:10px 0;gap:12px}.guest-page .guest-filters label{margin:0}.guest-page input{padding:8px 10px}.guest-page button{padding:9px 14px}.guest-page .hint{margin:8px 0;line-height:1.4}.guest-page #guest-status{margin:8px 0;font-size:13px}.guest-page .panel-title{padding:10px 16px}.guest-page .panel-title h2{font-size:20px;margin:0}.guest-page .timeline-row{min-height:64px}.guest-page .timeline-head{min-height:36px}.guest-page .timeline-room{padding:10px 12px}.guest-page .timeline-room small{margin-top:4px}.guest-page .timeline-hour{padding:9px 2px}
.guest-page #guest-selection{padding:12px 14px;margin:10px 0;gap:12px;align-items:flex-start}.guest-page #guest-selection>div:first-child{flex:1;min-width:0}.guest-page #guest-selection>div:last-child{display:flex;gap:6px;align-self:flex-start;flex-wrap:wrap;justify-content:flex-end}.guest-page #guest-selection-time{font-weight:700;font-size:15px}.guest-page #guest-selection small{font-size:10px}.guest-page #guest-price-card .price-card{display:flex;flex-wrap:wrap;align-items:center;gap:5px 12px;padding:8px 10px;margin:7px 0}.guest-page #guest-price-card .price-duration{font-size:14px}.guest-page #guest-price-card .price-pay-label{margin:0;font-size:11px}.guest-page #guest-price-card .price-pay{font-size:26px;margin:0;line-height:1.15}.guest-page #guest-price-card .price-before{margin:0;font-size:12px}.guest-page #guest-price-card .price-before s{font-size:16px}.guest-page #guest-price-card .price-saving{margin:0;padding:4px 7px;font-size:12px}.guest-page #guest-selection-note{font-size:12px;line-height:1.4}.guest-page #guest-inline-offer{padding:9px 11px;margin-top:8px;display:flex;align-items:center;gap:12px}.guest-page #guest-inline-details{flex:1}.guest-page #guest-inline-details>b{font-size:15px}.guest-page #guest-inline-details p{font-size:12px;line-height:1.4;margin:4px 0 0}.guest-page #guest-inline-details strong{font-size:18px}.guest-page #guest-inline-accept{width:auto;margin:0;font-size:12px;flex-shrink:0}.guest-page #timeline-promo{display:none}
.guest-page dialog{max-height:90vh;overflow:auto;padding:18px}.guest-page dialog .price-card{padding:10px;margin:8px 0}.guest-page dialog .price-pay{font-size:30px;margin:4px 0}.guest-page dialog h2{font-size:22px}.guest-page #promo-dialog{padding:20px}.guest-page #promo-dialog h2{font-size:23px;margin:12px 0}.guest-page .offer-intro,.guest-page .offer-extra{font-size:13px;line-height:1.4;margin:8px 0}
@media(max-width:650px){.guest-page main{padding:12px}.guest-page #guest-selection{flex-direction:column}.guest-page #guest-selection>div:last-child{align-self:stretch}.guest-page #guest-inline-offer{flex-direction:column;align-items:stretch}.guest-page #guest-inline-accept{width:100%}.guest-page header h1{font-size:23px}}

.guest-page #promo-dialog{width:340px;padding:12px;border-radius:12px}.guest-page #promo-dialog h2{font-size:18px;line-height:1.2;margin:8px 0}.guest-page #promo-dialog .offer-badge{font-size:9px}.guest-page #promo-dialog .offer-intro{font-size:12px;margin:6px 0}.guest-page #promo-dialog .price-card{padding:8px;margin:6px 0}.guest-page #promo-dialog .price-duration{font-size:13px}.guest-page #promo-dialog .price-before{margin:5px 0;font-size:11px}.guest-page #promo-dialog .price-before s{font-size:14px}.guest-page #promo-dialog .price-pay-label{font-size:10px;margin:3px 0}.guest-page #promo-dialog .price-pay{font-size:24px;line-height:1.1;margin:3px 0}.guest-page #promo-dialog .price-saving{font-size:11px;padding:5px;margin:4px 0}.guest-page #promo-dialog .offer-extra{font-size:11px;margin:6px 0}.guest-page #promo-dialog button{font-size:12px;padding:8px 10px;margin-top:6px}.guest-page #guest-inline-offer{padding:6px 8px;gap:8px;margin-top:6px}.guest-page #guest-inline-details>b{font-size:13px}.guest-page #guest-inline-details p{font-size:11px;margin-top:3px}.guest-page #guest-inline-details strong{font-size:15px}.guest-page #guest-inline-accept{font-size:11px;padding:7px 9px}

.guest-page .timeline-cell{scroll-margin-left:160px;scroll-margin-right:8px}@media(max-width:600px){.guest-page .timeline-cell{scroll-margin-left:115px}}

.call-guest{display:inline-block;background:#245f4b;color:#fff;padding:11px 16px;border-radius:7px;text-decoration:none;font-weight:600}.call-guest:focus-visible{outline:3px solid #a2cbae;outline-offset:2px}.day-booking-row{display:flex;align-items:center;gap:10px;margin:8px 0}.day-booking-row .day-booking{flex:1;min-width:0}.day-booking-row .call-guest{flex-shrink:0}@media(max-width:600px){.day-booking-row{flex-direction:column;align-items:stretch}.day-booking-row .day-booking{width:100%}.day-booking-row .call-guest{text-align:center}}
