@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');
:root{--ink:#2f1f16;--muted:#6f6259;--canvas:#FFF7ED;--paper:#fffaf4;--line:#FED7AA;--green:#F97316;--green-2:#FFEDD5;--green-3:#FDBA74;--red:#B42318;--red-2:#FEE4E2;--grey:#706761;--grey-2:#EFEAE5;--amber:#C2410C;--amber-2:#FFF1E6;--blue:#B45309;--shadow:0 18px 45px rgba(194,65,12,.1);--r:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--canvas);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-weight:500}.icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:22px 18px;background:#fff4e8;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:3px 8px 26px}.brandmark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--green);color:white;font:bold 20px Manrope;box-shadow:0 8px 18px rgba(249,115,22,.24)}.brand b{font:800 16px Manrope;display:block}.brand small{color:var(--muted)}.nav-label{font-size:10px;letter-spacing:.14em;font-weight:800;color:#9b8170;padding:12px 12px 7px}.nav{display:flex;flex-direction:column;gap:4px}.nav button{border:0;background:transparent;color:#6d5546;display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border-radius:12px;font:700 13px inherit;text-align:left;cursor:pointer}.nav button:hover{background:#FFEDD5;color:var(--dark-orange,#C2410C)}.nav button.active{background:var(--green-2);color:#C2410C;box-shadow:inset 3px 0 0 var(--green)}.nav button .pill{margin-left:auto;background:var(--red-2);color:var(--red);font-size:10px;padding:2px 6px;border-radius:20px}.property{margin-top:auto;padding:13px;background:white;border:1px solid var(--line);border-radius:16px;display:flex;gap:10px;align-items:center}.property img{width:42px;height:42px;object-fit:cover;border-radius:12px}.property b{font-size:12px;display:block}.property small{font-size:10px;color:var(--muted)}.main{min-width:0;padding:0 34px 46px}.topbar{height:78px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(255,247,237,.92);backdrop-filter:blur(14px);z-index:15}.mobile-menu{display:none}.search{height:42px;min-width:220px;max-width:380px;flex:1;display:flex;align-items:center;gap:9px;padding:0 13px;background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:13px;color:var(--muted)}.search input{border:0;outline:0;background:transparent;width:100%;font:inherit;color:var(--ink)}.top-spacer{flex:1}.role-switch{display:flex;background:#FFEDD5;border-radius:12px;padding:3px}.role-switch button{border:0;background:transparent;padding:7px 10px;border-radius:9px;font:800 11px inherit;color:#7c5d49;cursor:pointer}.role-switch button.active{background:white;color:var(--green);box-shadow:0 2px 8px rgba(0,0,0,.06)}.icon-btn{width:42px;height:42px;border:1px solid var(--line);background:white;border-radius:13px;display:grid;place-items:center;color:var(--ink);cursor:pointer;position:relative}.dot{position:absolute;top:8px;right:8px;width:7px;height:7px;background:var(--red);border:2px solid white;border-radius:50%}.avatar{width:42px;height:42px;border-radius:13px;background:#FDBA74;color:#7C2D12;display:grid;place-items:center;font:800 12px Manrope}.content{max-width:1450px;margin:auto}.intro{display:flex;align-items:end;justify-content:space-between;padding:30px 0 22px;gap:20px}.eyebrow{margin:0 0 6px;color:var(--green);font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.intro h1{margin:0;font:800 clamp(24px,3vw,34px)/1.1 Manrope}.intro p{margin:8px 0 0;color:var(--muted);font-size:13px}.primary{border:0;background:var(--green);color:white;padding:12px 16px;border-radius:13px;font:800 12px inherit;cursor:pointer;box-shadow:0 10px 22px rgba(249,115,22,.24);display:flex;align-items:center;gap:8px}.primary:hover{background:#C2410C;transform:translateY(-1px);box-shadow:0 12px 26px rgba(194,65,12,.28)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:17px 18px;box-shadow:0 8px 24px rgba(194,65,12,.06);position:relative;overflow:hidden}.stat:after{content:"";position:absolute;width:56px;height:56px;border-radius:50%;right:-18px;top:-20px;background:var(--tint,var(--green-2))}.stat-top{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;font-weight:800}.stat-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--tint,var(--green-2));color:var(--accent,var(--green))}.stat strong{display:block;font:800 25px Manrope;margin-top:9px}.trend{font-size:10px;font-weight:800;color:#C2410C;margin-top:3px}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:16px}.calendar-panel .calendar{width:min(calc(100% - 40px),500px);max-width:500px;margin:0 20px 22px;padding:16px 18px 18px;background:#fffaf4;border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 26px rgba(194,65,12,.07)}.calendar-panel .panel-head{padding-bottom:12px}.calendar-panel .dates span:not(.muted){cursor:pointer}.dates .selected{background:var(--green);border-color:var(--green);color:white;font-weight:800;box-shadow:0 0 0 3px rgba(249,115,22,.16)}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.panel-head{padding:20px 20px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head h2{font:800 16px Manrope;margin:0}.panel-head p{margin:4px 0 0;font-size:11px;color:var(--muted)}.filters{display:flex;gap:7px;flex-wrap:wrap}.filter{border:1px solid var(--line);background:#fff;border-radius:10px;padding:7px 9px;font:800 10px inherit;color:#765848;cursor:pointer}.filter.active{background:var(--green);border-color:var(--green);color:white;box-shadow:0 6px 14px rgba(249,115,22,.2)}.legend{padding:0 20px 15px;display:flex;gap:14px;flex-wrap:wrap;font-size:10px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:5px}.swatch{width:8px;height:8px;border-radius:3px}.floors{padding:0 14px 16px;display:flex;flex-direction:column;gap:9px}.floor{border:1px solid #FED7AA;border-radius:16px;padding:12px;background:#fffaf4}.floor-top{display:flex;align-items:center;gap:9px;margin-bottom:10px}.floor-title{font:800 12px Manrope}.floor-meta{margin-left:auto;color:var(--muted);font-size:10px}.floor-book{border:1px solid var(--green-3);background:#FFF7ED;color:#C2410C;border-radius:9px;padding:7px 9px;font:800 9px inherit;cursor:pointer}.floor-book:hover{background:var(--green-2);border-color:var(--green);color:#C2410C}.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.room{border:2px solid transparent;padding:0;border-radius:13px;background:var(--status-bg);color:var(--status);overflow:hidden;text-align:left;cursor:pointer;display:grid;grid-template-columns:62px 1fr;min-height:62px;transition:.2s;position:relative}.room:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(194,65,12,.16)}.room.available{--status:#16A34A;--status-bg:#DCFCE7}.room.occupied{--status:var(--red);--status-bg:var(--red-2)}.room.blocked{--status:#6d7470;--status-bg:var(--grey-2)}.room.selected{border-color:var(--green);box-shadow:0 0 0 3px rgba(249,115,22,.16)}.room.filtered{display:none}.room img{width:62px;height:100%;object-fit:cover}.room-copy{padding:9px 8px;min-width:0}.room b{display:block;font:800 11px Manrope;color:var(--ink);white-space:nowrap}.room small{display:block;margin-top:3px;font-size:9px;font-weight:700;text-transform:capitalize}.guest{font-size:8px!important;color:#8d524d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-stack{display:grid;grid-template-columns:1fr;gap:16px}.calendar{padding:0 18px 18px}.month{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font:800 13px Manrope}.month button{width:32px;height:32px;border:1px solid var(--line);background:white;border-radius:10px;color:#C2410C;cursor:pointer;font:800 15px Manrope}.month button:hover{background:var(--green-2);border-color:var(--green-3)}.days,.dates{display:grid;grid-template-columns:repeat(7,42px);justify-content:center;text-align:center}.days{gap:6px;margin-bottom:8px}.dates{gap:7px}.days span{height:20px;display:grid;place-items:center;font-size:9px;font-weight:800;color:#a98d7a}.dates span{width:42px;height:42px;display:grid;place-items:center;border:1px solid transparent;border-radius:12px;background:rgba(255,255,255,.72);font-size:11px;font-weight:800;color:#5f4a3d;transition:.18s}.dates span:not(.muted):hover{background:#FFF7ED;border-color:var(--green-3);color:#C2410C;transform:translateY(-1px)}.dates .muted{color:#c5b7ad;background:transparent}.dates .available{background:#DCFCE7;border-color:#86EFAC;color:#166534;font-weight:800}.dates .occupied{background:var(--red-2);border-color:#FECACA;color:var(--red);font-weight:800}.dates .blocked{background:var(--grey-2);border-color:#d8d2cb;color:#6d7470;font-weight:800}.dates .today{box-shadow:inset 0 0 0 2px rgba(249,115,22,.25)}.source-list{padding:0 18px 20px;display:flex;flex-direction:column;gap:12px}.source-row{display:grid;grid-template-columns:70px 1fr 32px;align-items:center;gap:9px;font-size:10px}.bar{height:7px;border-radius:10px;background:#FFEDD5;overflow:hidden}.bar i{display:block;height:100%;border-radius:10px;background:var(--c)}.source-row b{text-align:right;font-size:9px}.lower{display:grid;grid-template-columns:1.18fr .82fr;gap:16px;margin-top:16px}.bookings{padding:0 18px 14px}.booking{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:11px 0;border-top:1px solid #FED7AA}.mini-avatar{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--bg);color:var(--fg);font:800 10px Manrope}.booking b{display:block;font-size:11px;font-weight:800}.booking small{font-size:9px;color:var(--muted)}.amount{text-align:right}.amount b{font-size:11px;font-weight:800}.tag{display:inline-block;border-radius:20px;padding:3px 6px;font-size:8px;font-weight:800;background:var(--green-2);color:var(--green)}.tag.walk{background:var(--amber-2);color:var(--amber)}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:0 16px 16px}.quick{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;text-align:left;cursor:pointer;color:var(--ink);min-height:72px}.quick:hover{border-color:var(--green-3);background:#FFF7ED;box-shadow:0 8px 18px rgba(194,65,12,.08)}.quick .qicon{width:28px;height:28px;border-radius:9px;background:var(--green-2);color:var(--green);display:grid;place-items:center;margin-bottom:8px}.quick b{display:block;font-size:10px;font-weight:800}.quick small{color:var(--muted);font-size:8px}.full-panel{margin-top:16px;padding:24px;display:none}.full-panel.show{display:block}.feature-hero{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:center}.feature-hero h2{font:800 25px Manrope;margin:0}.feature-hero p{color:var(--muted);line-height:1.7}.mini-flow{background:#FFF1E6;border-radius:18px;padding:18px}.flow-step{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid #FED7AA}.flow-step:last-child{border:0}.num{width:27px;height:27px;flex:0 0 auto;border-radius:9px;background:var(--green);color:white;display:grid;place-items:center;font:800 10px Manrope}.modal-backdrop{position:fixed;inset:0;background:rgba(67,38,20,.38);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;padding:20px;z-index:50}.modal-backdrop.open{display:flex}.modal{background:var(--paper);width:min(760px,100%);max-height:92vh;overflow:auto;border-radius:26px;box-shadow:0 30px 80px rgba(124,45,18,.24)}.modal-head{padding:22px 24px 15px;display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line)}.modal-head h2{font:800 20px Manrope;margin:0}.close{border:0;background:#FFEDD5;color:#7C2D12;width:34px;height:34px;border-radius:11px;cursor:pointer}.steps{display:flex;gap:6px;margin-top:10px}.step-dot{height:5px;width:42px;border-radius:10px;background:#FED7AA}.step-dot.on{background:var(--green)}.modal-body{padding:22px 24px}.modal-room{display:grid;grid-template-columns:180px 1fr;gap:18px;background:#FFF1E6;padding:12px;border-radius:16px}.modal-room img{width:180px;height:118px;object-fit:cover;border-radius:12px}.modal-room h3{font:800 17px Manrope;margin:8px 0 4px}.modal-room p{color:var(--muted);font-size:11px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}.field label{display:block;font-size:9px;font-weight:800;color:#7C4A2D;margin:0 0 5px 2px;text-transform:uppercase;letter-spacing:.06em}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:white;border-radius:11px;padding:11px 12px;font:600 11px inherit;outline:0}.field textarea{min-height:86px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(249,115,22,.14)}.field.wide{grid-column:1/-1}.shift-btn{margin-top:6px;border:1px solid var(--green-3);background:#FFF7ED;color:#C2410C;border-radius:9px;padding:7px 9px;font:800 9px inherit;cursor:pointer}.shift-btn:hover{background:var(--green-2);border-color:var(--green)}.booking-details{grid-column:2/4;display:grid;gap:7px;font-size:9px;color:var(--muted);padding-bottom:2px}.booking-details b{font-size:9px}.timeline{display:flex;gap:6px;flex-wrap:wrap}.timeline span{background:#FFF7ED;border:1px solid #FED7AA;border-radius:999px;padding:4px 7px;font-weight:800;color:#7C4A2D}.shift-indicator{color:#C2410C!important;font-weight:800!important}.login-error{min-height:16px;margin:12px 2px 0;color:var(--red);font:800 11px inherit}.modal-foot{padding:14px 24px 22px;display:flex;align-items:center;justify-content:space-between}.secondary{border:1px solid var(--green-3);background:white;color:#C2410C;padding:11px 14px;border-radius:12px;font:800 11px inherit;cursor:pointer}.payment-card{border:1px solid var(--green-3);background:#FFF7ED;padding:18px;border-radius:17px;text-align:center}.payment-card strong{font:800 32px Manrope;display:block}.methods{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:12px}.method{background:white;border:1px solid var(--line);border-radius:9px;padding:8px 11px;font:800 9px inherit;color:#7C2D12}.success{text-align:center;padding:16px}.success-mark{width:64px;height:64px;border-radius:50%;background:var(--green-2);color:var(--green);display:grid;place-items:center;margin:0 auto 14px;font-size:30px}.toast{position:fixed;right:24px;bottom:24px;background:#7C2D12;color:white;padding:13px 16px;border-radius:13px;box-shadow:var(--shadow);font:700 11px inherit;transform:translateY(90px);opacity:0;transition:.25s;z-index:70}.toast.show{transform:translateY(0);opacity:1}.manager .finance-only{display:none!important}.manager .stats{grid-template-columns:repeat(3,1fr)}.manager .stat.finance-only{display:none}.room-check{position:absolute;right:7px;top:7px;width:17px;height:17px;border-radius:50%;background:white;display:none;place-items:center;color:var(--green);font-size:10px}.room.selected .room-check{display:grid}.selected-tray{position:fixed;left:50%;bottom:18px;transform:translate(-50%,120px);background:var(--ink);color:white;padding:9px 10px 9px 16px;border-radius:15px;display:flex;gap:15px;align-items:center;z-index:30;box-shadow:0 16px 40px rgba(124,45,18,.28);transition:.25s}.selected-tray.show{transform:translate(-50%,0)}.selected-tray span{font-size:11px}.selected-tray button{border:0;background:var(--green-3);color:#7C2D12;padding:9px 12px;border-radius:10px;font:800 10px inherit;cursor:pointer}
/* Typography readability pass */
body{font-size:15.5px;line-height:1.5}.brand b{font:700 18px/1.25 Manrope}.brand small,.property small{font-size:14px;line-height:1.35}.nav-label{font-size:12px;font-weight:700}.nav button{font:600 16px/1.35 inherit}.nav button .pill{font-size:13px;font-weight:600}.role-switch button,.primary,.secondary,.filter,.floor-book,.shift-btn,.selected-tray button{font-size:15px;font-weight:600;line-height:1.25}.intro h1{font:700 clamp(34px,3vw,38px)/1.15 Manrope}.intro p,.feature-hero p{font-size:16px;line-height:1.55}.eyebrow{font-size:14px;font-weight:700;line-height:1.35}.panel-head h2{font:700 25px/1.2 Manrope}.panel-head p{font-size:15px;line-height:1.45}.stat-top{font-size:15px;font-weight:600;line-height:1.35}.stat strong{font:700 36px/1.08 Manrope}.trend,.legend,.floor-meta,.source-row,.booking small,.quick small,.modal-room p,.method,.selected-tray span{font-size:14px;line-height:1.4}.floor-title,.booking b,.room b,.quick b{font-size:16px;font-weight:600;line-height:1.3}.room small,.guest{font-size:14px!important;line-height:1.3}.amount b{font-size:16px;font-weight:600}.tag{font-size:13px;font-weight:600}.quick{font-size:15px;line-height:1.45}.feature-hero h2{font:700 34px/1.2 Manrope}.month{font:700 20px/1.25 Manrope}.month button{font-size:18px}.days span{font-size:14px;font-weight:600}.dates span{font-size:16px;font-weight:600}.modal-head h2{font:700 26px/1.2 Manrope}.modal-room h3{font:600 20px/1.25 Manrope}.field label{font-size:14px;font-weight:600;line-height:1.35}.field input,.field select,.field textarea{font-size:15px;font-weight:500;line-height:1.4}.payment-card strong{font:700 38px/1.1 Manrope}.booking-details,.booking-details b,.timeline span{font-size:14px;line-height:1.4}.source-row b{font-size:14px}.toast{font-size:15px;line-height:1.4}.shell{grid-template-columns:286px minmax(0,1fr)}.sidebar .brand-copy{min-width:0}.sidebar .brand b{font:700 28px/1.05 Manrope;white-space:nowrap}.sidebar .brand small{font-size:15px;font-weight:500;line-height:1.35}.sidebar .nav-label{font-size:14px;font-weight:700;letter-spacing:.16em}.sidebar .nav button{font:600 16.5px/1.35 inherit;align-items:center}.sidebar .property b{font-size:16px;font-weight:600;line-height:1.3}.sidebar .property small{font-size:14px;font-weight:500;line-height:1.35}@media(max-width:1100px){.shell{grid-template-columns:78px minmax(0,1fr)}.sidebar{padding:20px 10px}.brand{padding-left:7px}.brand-copy,.nav-label,.nav button span,.nav button .pill,.property div{display:none}.nav button{justify-content:center}.property{padding:8px;justify-content:center}.main{padding:0 22px 40px}.dashboard-grid{grid-template-columns:1fr}.side-stack{grid-template-columns:1fr}.lower{grid-template-columns:1fr}}
.sidebar{overflow-y:auto;overscroll-behavior:contain}
.field select,.operation-room select{display:block;min-height:46px;text-align:left;text-align-last:left}
.field select option,.operation-room select option{text-align:left}
@media(max-width:720px){.calendar-panel .calendar{width:100%;max-width:none;margin:0 0 16px;padding:14px}.days,.dates{grid-template-columns:repeat(7,minmax(0,1fr))}.dates span{width:100%;height:auto;aspect-ratio:1;max-width:42px;justify-self:center}.shell{display:block}.sidebar{position:fixed;left:-270px;width:250px;transition:.25s}.sidebar.open{left:0;box-shadow:0 0 0 100vw rgba(67,38,20,.25)}.brand-copy,.nav-label,.nav button span,.nav button .pill,.property div{display:block}.nav button{justify-content:flex-start}.main{padding:0 14px 32px}.topbar{height:65px}.mobile-menu{display:grid}.search{display:none}.role-switch{margin-left:auto}.top-spacer{display:none}.intro{padding-top:22px}.intro .primary{display:none}.stats{grid-template-columns:1fr 1fr}.stat{padding:14px}.stat strong{font-size:30px}.panel-head{align-items:flex-start;flex-direction:column}.room-grid{grid-template-columns:1fr}.room{grid-template-columns:84px 1fr}.room img{width:84px}.side-stack,.lower{display:flex;flex-direction:column}.feature-hero{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}.modal-room{grid-template-columns:1fr}.modal-room img{width:100%;height:170px}.selected-tray{width:calc(100% - 28px);justify-content:space-between}.manager .stats{grid-template-columns:1fr 1fr}}

.dates .outside-month:not(.muted):not(.available):not(.occupied):not(.blocked):not(.selected){color:#b8aa9f}
.room.room-unavailable{cursor:not-allowed}
.room.room-unavailable:hover{transform:none;box-shadow:none}
.room .room-copy .guest b{font:inherit;color:inherit}
.room-note{font-weight:700!important;color:#8d524d}
.floor-book.disabled,.floor-book[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
.search{position:relative}
.search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;display:none;flex-direction:column;gap:0;max-height:340px;overflow:auto;background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px rgba(124,45,18,.12);padding:6px;z-index:40}
.search-results.show{display:flex}
.search-results button{border:0;background:transparent;border-radius:10px;padding:10px 11px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;color:var(--ink);cursor:pointer}
.search-results button:hover{background:#FFF7ED}
.search-results button span{display:block;min-width:0}
.search-results button b,.search-results button small{display:block}
.search-results button b{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-results button small{font-size:12px;line-height:1.35;color:var(--muted);margin-top:3px}
.search-empty{padding:14px 12px;color:var(--muted);font-size:13px}
.mobile-menu{display:grid}
.shell,.sidebar,.nav button,.property{transition:.25s ease}
.shell.sidebar-collapsed{grid-template-columns:78px minmax(0,1fr)}
.shell.sidebar-collapsed .sidebar{padding:20px 10px}
.shell.sidebar-collapsed .brand{padding-left:7px}
.shell.sidebar-collapsed .brand-copy,.shell.sidebar-collapsed .nav-label,.shell.sidebar-collapsed .nav button span,.shell.sidebar-collapsed .nav button .pill,.shell.sidebar-collapsed .property div{display:none}
.shell.sidebar-collapsed .nav button{justify-content:center}
.shell.sidebar-collapsed .property{padding:8px;justify-content:center}

/* Domain 2 feature workspaces */
.manager .admin-only{display:none!important}.feature-page-head{padding:2px 0 20px}.feature-page-head h2{font:700 34px/1.2 Manrope;margin:0}.feature-page-head p:last-child{max-width:760px;color:var(--muted);font-size:16px;margin:8px 0 0}.feature-workspace{display:flex;flex-direction:column;gap:16px}.workspace-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.workspace-toolbar h3,.report-head h3{font:700 20px/1.25 Manrope;margin:0}.workspace-toolbar p,.report-head p{font-size:14px;color:var(--muted);margin:3px 0 0}.toolbar-actions,.workspace-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.workspace-tabs{padding:4px;background:#FFEDD5;border-radius:13px}.workspace-tabs button{border:0;background:transparent;color:#765848;border-radius:10px;padding:9px 12px;font:600 14px inherit;cursor:pointer}.workspace-tabs button.active{background:white;color:var(--green);box-shadow:0 2px 8px rgba(0,0,0,.06)}.workspace-search{height:42px;display:flex;align-items:center;gap:8px;background:white;border:1px solid var(--line);border-radius:12px;padding:0 12px}.workspace-search input{border:0;outline:0;background:transparent;font:500 14px inherit}.summary-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:16px;background:white;overflow:hidden}.summary-strip span{padding:15px 18px;color:var(--muted);font-size:13px;border-right:1px solid var(--line)}.summary-strip span:last-child{border:0}.summary-strip b{display:block;color:var(--ink);font:700 24px Manrope}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:16px}.data-table{width:100%;border-collapse:collapse;min-width:780px}.data-table th{text-align:left;padding:12px 14px;background:#FFF1E6;color:#7C4A2D;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.data-table td{padding:13px 14px;border-top:1px solid var(--line);font-size:14px;vertical-align:middle}.data-table td small,.table-link small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.table-link{border:0;background:transparent;padding:0;text-align:left;color:var(--ink);font:inherit;cursor:pointer}.table-link:hover b{color:var(--green)}.row-action{border:1px solid var(--green-3);background:#FFF7ED;color:#C2410C;border-radius:9px;padding:7px 9px;font:600 12px inherit;cursor:pointer}.status-badge{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;background:#FFF1E6;color:#C2410C;white-space:nowrap}.status-paid,.status-confirmed,.status-checked-in,.status-active{background:#DCFCE7;color:#166534}.status-pending,.status-upcoming{background:#FFF1E6;color:#C2410C}.status-cancelled,.status-refunded{background:#FEE4E2;color:#B42318}.status-checked-out{background:#EFEAE5;color:#6d7470}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.detail-card{padding:14px;border:1px solid var(--line);background:white;border-radius:13px;display:flex;flex-direction:column;gap:4px}.detail-card.wide{grid-column:1/-1}.detail-card span{font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:700}.detail-card b{font-size:15px}.detail-card small{font-size:12px;color:var(--muted)}.section-title{font:700 17px Manrope;margin:20px 0 10px}.history-timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:8px 0}.history-event{position:relative;padding:22px 8px 0;border-top:2px solid #FED7AA}.history-event i{position:absolute;top:-7px;left:8px;width:12px;height:12px;border-radius:50%;background:#FED7AA;border:2px solid white}.history-event.done{border-color:var(--green)}.history-event.done i{background:var(--green)}.history-event b,.history-event small{display:block;font-size:12px}.history-event small{color:var(--muted);margin-top:3px}.document-placeholder{display:flex;align-items:center;gap:12px;margin-top:16px;padding:14px;border:1px dashed var(--green-3);background:#FFF7ED;border-radius:13px}.document-placeholder div{flex:1}.document-placeholder b,.document-placeholder small{display:block}.document-placeholder small{font-size:12px;color:var(--muted)}.customer-profile-head{display:flex;align-items:center;gap:14px;padding:15px;background:#FFF1E6;border-radius:16px}.customer-profile-head h3,.customer-profile-head p{margin:0}.customer-profile-head small{color:var(--muted)}.profile-avatar{width:54px;height:54px;border-radius:16px;background:var(--green);color:white;display:grid;place-items:center;font:700 17px Manrope}.compact-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:13px;overflow:hidden}.compact-list button{border:0;border-top:1px solid var(--line);background:white;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.compact-list button:first-child{border-top:0}.compact-list b,.compact-list small{display:block}.compact-list small{color:var(--muted);font-size:12px}.notes-field{margin-top:16px}.field-hint{display:block;color:var(--muted);font-size:11px;margin:5px 2px}.link-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.link-card,.empty-card{background:white;border:1px solid var(--line);border-radius:16px;padding:17px}.link-card-head{display:flex;align-items:center;justify-content:space-between}.link-card h3{font:700 17px Manrope;margin:13px 0 5px}.link-card>code{display:block;margin:12px 0;background:#FFF1E6;padding:9px;border-radius:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#7C2D12}.link-actions,.share-grid{display:flex;gap:7px;flex-wrap:wrap}.link-actions button,.share-grid button{border:1px solid var(--line);background:white;border-radius:9px;padding:7px 9px;color:#7C2D12;font:600 12px inherit;cursor:pointer}.empty-card{grid-column:1/-1;text-align:center;padding:40px}.generated-link{display:flex;align-items:center;gap:10px;background:#FFF1E6;border-radius:12px;padding:11px;margin-bottom:12px}.generated-link code{flex:1;overflow:hidden;text-overflow:ellipsis}.feature-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.feature-summary-grid article{background:white;border:1px solid var(--line);border-radius:16px;padding:17px}.feature-summary-grid span,.feature-summary-grid small{display:block;color:var(--muted);font-size:12px}.feature-summary-grid strong{display:block;font:700 25px Manrope;margin:6px 0}.report-panel{background:white;border:1px solid var(--line);border-radius:16px;padding:18px}.report-head{display:flex;justify-content:space-between;gap:12px}.report-chart{height:260px;display:flex;align-items:end;justify-content:space-around;gap:12px;padding:40px 10px 0}.chart-column{height:100%;flex:1;max-width:90px;display:grid;grid-template-rows:20px 1fr 25px;text-align:center}.chart-value{font-size:11px;font-weight:700;color:#7C4A2D}.chart-bar{display:flex;align-items:end;justify-content:center}.chart-bar i{display:block;width:min(52px,75%);background:linear-gradient(180deg,var(--green),#FDBA74);border-radius:9px 9px 3px 3px;min-height:8px}.chart-column span{font-size:11px;color:var(--muted);padding-top:6px}.report-table{margin-top:0}.mini-progress{height:7px;background:#FFEDD5;border-radius:8px;overflow:hidden}.mini-progress i{display:block;height:100%;background:var(--green);border-radius:8px}.notification-list{display:flex;flex-direction:column;gap:8px}.notification-list>button{border:1px solid var(--line);background:white;border-radius:13px;padding:12px;display:flex;gap:11px;text-align:left;cursor:pointer}.notification-list>button.unread{background:#FFF7ED;border-color:var(--green-3)}.notification-list>button>span:last-child{flex:1}.notification-list b,.notification-list small,.notification-list em{display:block}.notification-list small{font-size:12px;color:var(--muted);margin-top:3px}.notification-list em{font-style:normal;font-size:10px;color:#a98d7a;margin-top:5px}.notification-icon{width:36px;height:36px;flex:0 0 auto;border-radius:11px;background:var(--green-2);color:var(--green);display:grid;place-items:center}.notification-icon.type-cancelled{background:var(--red-2);color:var(--red)}.room-operations{display:flex;flex-direction:column;gap:10px}.operation-floor{border:1px solid var(--line);border-radius:16px;background:white;padding:13px}.operation-floor-head{display:flex;justify-content:space-between;margin-bottom:10px}.operation-floor-head small{color:var(--muted)}.operation-room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.operation-room{display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:12px;padding:11px;background:#FFF7ED;border-left:4px solid var(--green)}.operation-room.status-room-occupied{background:var(--red-2);border-color:var(--red)}.operation-room.status-room-blocked{background:var(--grey-2);border-color:#8a817a}.operation-room b,.operation-room small{display:block}.operation-room small{font-size:11px;color:var(--muted)}.operation-room select{max-width:106px;border:1px solid var(--line);border-radius:8px;background:white;padding:6px;font:600 11px inherit}.dashboard-booking{cursor:pointer}.dashboard-booking:hover{background:#FFF7ED}.empty-state{text-align:center;color:var(--muted);padding:25px!important}

[hidden]{display:none!important}.role-badge{display:inline-flex;align-items:center;min-height:38px;border:1px solid var(--line);background:white;color:#7C2D12;border-radius:12px;padding:0 12px;font:700 14px/1.2 inherit}.top-logout{min-height:38px;padding:9px 13px}.auth-screen{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:linear-gradient(135deg,#FFF7ED 0%,#FFF1E6 48%,#FFFFFF 100%)}.auth-screen.open{display:flex}.auth-card{width:min(440px,100%);background:white;border:1px solid #FED7AA;border-radius:24px;padding:28px;box-shadow:0 24px 70px rgba(124,45,18,.16)}.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:22px}.auth-brand b{display:block;font:700 25px/1.1 Manrope;color:var(--ink)}.auth-brand small{display:block;margin-top:3px;color:var(--muted);font-size:14px}.auth-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-role-btn{min-height:64px;border:1px solid var(--line);background:#FFF7ED;color:#7C2D12;border-radius:16px;padding:14px;display:flex;align-items:center;justify-content:center;gap:10px;font:700 16px/1.2 inherit;cursor:pointer;box-shadow:0 8px 20px rgba(194,65,12,.08)}.auth-role-btn:hover{border-color:var(--green-3);background:#FFEDD5;transform:translateY(-1px)}.auth-role-btn .icon{width:22px;height:22px}.auth-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.auth-footer .primary,.auth-footer .secondary{justify-content:center;min-width:112px}
@media(max-width:720px){.role-badge{display:none}.top-logout{padding:9px 11px}.auth-screen{padding:16px}.auth-card{padding:22px;border-radius:20px}.auth-actions{grid-template-columns:1fr}.auth-role-btn{min-height:58px}.auth-footer{align-items:stretch;flex-direction:column-reverse}.auth-footer .primary,.auth-footer .secondary{width:100%}}
@media(max-width:900px){.summary-strip,.feature-summary-grid{grid-template-columns:repeat(2,1fr)}.operation-room-grid{grid-template-columns:1fr 1fr}.link-grid{grid-template-columns:1fr}.history-timeline{grid-template-columns:1fr;padding-left:8px}.history-event{border-top:0;border-left:2px solid #FED7AA;padding:3px 0 18px 22px}.history-event i{left:-7px;top:3px}}
@media(max-width:720px){.feature-page-head h2{font-size:27px}.workspace-toolbar{align-items:stretch;flex-direction:column}.toolbar-actions{width:100%}.toolbar-actions>*{flex:1;justify-content:center}.workspace-tabs{overflow:auto;flex-wrap:nowrap}.workspace-tabs button{white-space:nowrap}.summary-strip,.feature-summary-grid,.detail-grid,.operation-room-grid{grid-template-columns:1fr}.summary-strip span{border-right:0;border-bottom:1px solid var(--line)}.report-chart{height:220px;padding-left:0;padding-right:0}.chart-value{font-size:9px}.operation-room{align-items:flex-start}.generated-link{align-items:stretch;flex-direction:column}}

.link-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:stretch;min-width:0}.link-card{min-width:0;display:flex;flex-direction:column;gap:8px}.link-card h3,.link-card b,.link-card small{overflow-wrap:anywhere}.link-card>code,.generated-link code{white-space:normal;overflow-wrap:anywhere;word-break:break-word;min-width:0}.link-actions{align-items:center}.link-actions button{flex:1 1 92px;min-width:0}.public-booking-page{background:var(--canvas);min-height:100vh;overflow-y:auto;overflow-x:hidden}.public-booking-shell{min-height:100vh;display:grid;place-items:start center;padding:32px 16px}.public-booking-card{width:min(820px,100%)}.public-booking-card .modal-body{padding-top:8px}
.settings-panel{padding:20px}.settings-toggle-list{display:grid;gap:12px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 2px;color:#7C4A2D;font-weight:700;cursor:pointer}.setting-row input{position:absolute;opacity:0;pointer-events:none}.setting-switch{width:46px;height:25px;border-radius:999px;background:#EFEAE5;position:relative;flex:0 0 auto;transition:.18s}.setting-switch:before{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:white;box-shadow:0 2px 6px rgba(0,0,0,.16);transition:.18s}.setting-row input:checked+.setting-switch{background:var(--green)}.setting-row input:checked+.setting-switch:before{transform:translateX(21px)}.logout-modal{width:min(420px,calc(100% - 32px));border-radius:20px}.logout-modal .modal-head{padding:18px 20px 10px}.logout-modal .modal-body{padding:14px 20px}.logout-modal .modal-foot{padding:8px 20px 18px;justify-content:flex-end;gap:10px}.logout-message{margin:0;color:var(--muted);font-size:15px}
.proof-preview img{width:76px;height:76px;object-fit:cover;border-radius:12px;border:1px solid var(--line);display:block}.proof-preview>a{flex:0 0 auto}.modal-head{position:sticky;top:0;z-index:5;background:var(--paper);border-radius:26px 26px 0 0}.public-booking-card{max-width:100%;overflow:visible}.public-booking-card .form-grid,.public-booking-card .detail-grid{min-width:0}.public-booking-card .field,.public-booking-card .detail-card{min-width:0}.public-booking-card .primary{justify-content:center}@media(max-width:720px){.public-booking-shell{padding:12px}.public-booking-card .modal-body{padding:16px}.public-booking-card .panel-head{padding:16px}.public-booking-card .primary{width:100%}.public-booking-card input,.public-booking-card select,.public-booking-card textarea{font-size:16px}}
.detail-status-select{width:100%;min-height:40px;margin-top:5px;padding:8px 34px 8px 11px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);font:500 14px/1.2 inherit}.detail-update-button{width:max-content;margin-top:5px;padding:7px 10px;border:1px solid var(--green-3);border-radius:9px;background:#FFF7ED;color:#C2410C;font:600 12px/1.2 inherit;cursor:pointer}
.modal{overscroll-behavior:contain;scroll-behavior:auto;touch-action:pan-y}
.booking-details-modal{scrollbar-width:none;-ms-overflow-style:none}.booking-details-modal::-webkit-scrollbar{display:none}.booking-details-modal .modal-body{padding-left:24px;padding-right:24px}.booking-details-modal .notes-normal b{font-weight:400}

.link-grid{display:flex;flex-direction:column;gap:10px;min-width:0}.booking-link-row{position:relative;display:grid;grid-template-columns:max-content minmax(150px,1.1fr) minmax(90px,.55fr) minmax(90px,.55fr) minmax(155px,.9fr) 42px;align-items:center;gap:14px;width:100%;min-width:0;padding:12px 14px}.booking-link-row .status-used{background:#DCFCE7;color:#166534}.booking-link-row .status-expired{background:#EFEAE5;color:#6d7470}.booking-link-stay,.booking-link-amount{min-width:0}.booking-link-stay b,.booking-link-stay small{display:block}.booking-link-stay small,.booking-link-expiry{color:var(--muted);font-size:12px}.booking-link-amount b{font-size:15px}.booking-link-short{color:#C2410C;font-size:13px;font-weight:700;text-decoration:none;width:max-content}.booking-link-short:hover{text-decoration:underline}.booking-link-menu-wrap{position:relative;justify-self:end}.booking-link-menu-button{width:38px;height:38px;border:1px solid var(--line);background:white;color:#7C2D12;border-radius:10px;font:700 22px/1 inherit;cursor:pointer;display:grid;place-items:center}.booking-link-menu-button:hover,.booking-link-menu-button[aria-expanded="true"]{background:#FFEDD5}.booking-link-menu{position:absolute;right:0;top:44px;z-index:30;display:none;width:190px;padding:6px;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 36px rgba(124,45,18,.18)}.booking-link-menu.open{display:flex;flex-direction:column}.booking-link-menu button{border:0;background:transparent;color:var(--ink);border-radius:8px;padding:9px 10px;text-align:left;font:600 13px/1.25 inherit;cursor:pointer}.booking-link-menu button:hover{background:#FFF1E6;color:#C2410C}.booking-link-modal-open{overflow:hidden}.booking-link-detail-modal{width:min(720px,100%);max-height:min(90vh,760px);overflow:auto}.booking-link-detail-modal .modal-head{position:sticky;top:0;z-index:2;background:var(--paper)}.booking-link-detail-grid{min-width:0}.booking-link-url a{color:#C2410C;overflow-wrap:anywhere;word-break:break-word}.booking-link-detail-modal .modal-foot{position:sticky;bottom:0;background:var(--paper)}
@media(max-width:900px){.booking-link-row{grid-template-columns:max-content minmax(150px,1fr) minmax(90px,.55fr) minmax(140px,.8fr) 42px}.booking-link-short{display:none}}
@media(max-width:720px){.booking-link-row{grid-template-columns:max-content minmax(0,1fr) 42px;gap:8px 10px;padding:12px}.booking-link-status{grid-column:1}.booking-link-stay{grid-column:2}.booking-link-menu-wrap{grid-column:3;grid-row:1/3;align-self:start}.booking-link-amount{grid-column:1/2}.booking-link-expiry{grid-column:2/3;min-width:0;overflow-wrap:anywhere}.booking-link-menu{position:fixed;right:14px;bottom:14px;top:auto;width:min(220px,calc(100vw - 28px))}.booking-link-detail-modal{max-height:94vh}.booking-link-detail-modal .modal-body{padding:16px}.booking-link-detail-grid{grid-template-columns:1fr}}

.booking-link-row .status-used{background:#E8EEF6;color:#3F5873}.calendar-picker{position:relative;display:inline-flex;margin:0 6px}.calendar-picker-toggle{width:auto!important;min-width:94px;padding:0 10px;font-size:12px!important;white-space:nowrap}.calendar-picker-popover{position:absolute;z-index:12;top:39px;left:50%;transform:translateX(-50%);width:230px;padding:10px;background:#fffaf4;border:1px solid var(--line);border-radius:13px;box-shadow:0 14px 32px rgba(124,45,18,.18);display:grid;grid-template-columns:1.25fr .9fr .65fr;gap:7px}.calendar-picker-popover[hidden]{display:none}.calendar-picker-popover label{display:grid;gap:3px;color:#7C4A2D;font:700 9px/1.2 inherit;text-transform:uppercase}.calendar-picker-popover select{min-width:0;width:100%;padding:7px 5px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);font:600 11px inherit}.calendar-picker-apply{grid-column:1/-1;width:100%!important;height:32px!important;background:var(--green)!important;border-color:var(--green)!important;color:white!important;font-size:11px!important}.month>span:first-of-type{min-width:0;text-align:center}.month{justify-content:center;gap:5px}
@media(max-width:720px){.calendar-picker-popover{position:fixed;top:auto;left:14px;right:14px;bottom:14px;transform:none;width:auto}.calendar-picker-toggle{min-width:82px;padding:0 7px}.month{gap:3px}.month>span:first-of-type{font-size:15px}}

.room-summary{display:grid;grid-template-columns:88px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px;background:#FFF1E6;border-radius:16px}.room-summary img{width:88px;height:68px;object-fit:cover;border-radius:11px}.room-summary-location,.room-summary-amount{display:flex;flex-direction:column;gap:3px}.room-summary-location small,.room-summary-amount small{color:var(--muted);font-size:12px}.room-summary-amount{text-align:right}.room-summary-amount b{font:700 19px Manrope;color:var(--ink)}
@media(max-width:520px){.room-summary{grid-template-columns:72px minmax(0,1fr)}.room-summary img{width:72px;height:62px}.room-summary-amount{grid-column:2;text-align:left}}

@media(max-width:720px){
  .intro h1{font-size:clamp(28px,8vw,32px);line-height:1.15}
  .feature-page-head h2{font-size:clamp(24px,7vw,28px);line-height:1.2}
  .topbar{gap:10px}.topbar .role-badge{display:inline-flex;margin-left:auto;max-width:132px;min-height:36px;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .role-switch{display:none!important}
  .summary-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:0;background:transparent;overflow:visible}.summary-strip span{min-width:0;min-height:88px;padding:14px;border:1px solid var(--line)!important;border-radius:14px;background:white;display:flex;flex-direction:column;justify-content:center}.summary-strip b{font-size:24px}
  #sidebar{position:fixed;top:0;bottom:0;left:0;width:min(88vw,320px);height:100dvh;overflow-y:auto;transform:translateX(-105%);transition:transform .22s ease;z-index:41}#sidebar.open{left:0;transform:translateX(0);box-shadow:none}#sidebarBackdrop{position:fixed;inset:0;z-index:40;background:rgba(45,36,30,.58);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}#sidebarBackdrop.open{opacity:1;visibility:visible;pointer-events:auto}.mobile-drawer-open{overflow:hidden}
  #sidebar>nav.nav+.nav-label,#sidebar>nav.nav+.nav-label+nav.nav,#manageNav,#manageLabel{max-height:0;margin:0;padding-top:0;padding-bottom:0;opacity:0;overflow:hidden;pointer-events:none;transform:translateY(10px);transition:max-height .2s ease,opacity .16s ease,transform .2s ease,padding .2s ease}#sidebar.manage-expanded #manageNav{max-height:240px;opacity:1;pointer-events:auto;transform:none}#sidebar.manage-expanded #manageLabel{max-height:40px;padding-top:12px;padding-bottom:7px;opacity:1;pointer-events:auto;transform:none}#propertyCardToggle{cursor:pointer;flex:0 0 auto}#propertyCardToggle:focus-visible{outline:2px solid var(--green);outline-offset:2px}
}

/* Reports: mobile-only containment and controls. */
@media(max-width:720px){
  .reports-workspace,.reports-toolbar,.reports-tabs,.reports-panel,.reports-table{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
  .reports-workspace{overflow-x:hidden}
  .reports-toolbar{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:10px}
  .reports-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;overflow:visible;padding:6px}
  .reports-tabs button{width:100%;min-width:0;white-space:normal;text-align:center;line-height:1.25;padding:9px 6px}
  .reports-export{width:100%;max-width:100%;justify-content:center}
  .reports-panel{overflow:hidden;padding:16px}
  .reports-panel .report-head,.reports-panel .report-head>div{min-width:0;max-width:100%}
  .reports-panel .report-head p{overflow-wrap:anywhere}
  .reports-panel .report-chart{width:100%;max-width:100%;min-width:0;gap:4px;padding:36px 0 0;overflow:hidden}
  .reports-panel .chart-column{flex:1 1 0;min-width:0;max-width:none}
  .reports-panel .chart-value{font-size:8px;overflow-wrap:anywhere}
  .reports-panel .chart-column span{min-width:0;white-space:normal;overflow-wrap:anywhere;font-size:9px;line-height:1.15}
  .reports-table{overflow-x:auto;overscroll-behavior-inline:contain}
}

/* Dashboard summary-card decoration: bottom-right corner only. */
.stat:after{width:38px;height:38px;right:0;top:auto;bottom:0;border-radius:38px 0 0 0;opacity:.68;z-index:0;pointer-events:none}
.stat>*{position:relative;z-index:1}
.link-room-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:white}.link-room-options label{display:flex;align-items:center;gap:7px;color:var(--ink);font-size:13px;text-transform:none}.link-room-options input{width:auto;margin:0}.link-room-options label.link-room-unavailable{color:var(--red);background:var(--red-2);border:1px solid #fecaca;border-radius:8px;padding:6px;cursor:not-allowed}.link-room-options label.link-room-unavailable input{cursor:not-allowed}@media(max-width:720px){.link-room-options{grid-template-columns:1fr 1fr}}
#linkSingleRoomField[hidden],#linkFloorField[hidden],#linkMultipleField[hidden]{display:none!important}
.required-mark{color:var(--red,#d92d20);font-weight:800}
.manager .stats{grid-template-columns:repeat(4,1fr)}.manager .stats .stat.finance-only{display:block!important}@media(max-width:720px){.manager .stats{grid-template-columns:1fr 1fr}}
.dashboard-date-filter{display:flex;flex-direction:column;gap:6px;min-width:190px}.dashboard-date-filter span{font-size:13px;font-weight:700;color:var(--muted)}.dashboard-date-filter input{min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);font:600 15px inherit;outline:0}.dashboard-date-filter input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(249,115,22,.14)}@media(max-width:720px){.intro{align-items:stretch;flex-direction:column}.dashboard-date-filter{width:100%}}
.data-table td:has(.toolbar-actions button[onclick^="shiftBooking"]){min-width:270px}.toolbar-actions:has(button[onclick^="shiftBooking"]){display:grid;grid-template-columns:repeat(2,minmax(112px,1fr));gap:9px;width:100%;align-items:stretch}.toolbar-actions:has(button[onclick^="shiftBooking"])>button{width:100%;min-height:40px;margin:0;display:flex;align-items:center;justify-content:center;padding:8px 10px;white-space:nowrap}.toolbar-actions:has(button[onclick^="shiftBooking"])>.primary{box-shadow:0 7px 16px rgba(249,115,22,.18)}@media(max-width:720px){.data-table td:has(.toolbar-actions button[onclick^="shiftBooking"]){min-width:230px}.toolbar-actions:has(button[onclick^="shiftBooking"]){grid-template-columns:1fr}}
@keyframes closeAttention{0%,100%{transform:scale(1);box-shadow:none}25%{transform:scale(1.18) rotate(-8deg);box-shadow:0 0 0 5px rgba(249,115,22,.2)}50%{transform:scale(1.18) rotate(8deg);background:var(--green);color:#fff}75%{transform:scale(1.18) rotate(-5deg)}}.close.close-attention{animation:closeAttention .65s ease}
.multi-room-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:0 20px 12px}.multi-room-controls .filter.active{background:var(--green);color:white}.multi-room-controls .primary{padding:8px 15px}.room-multi-check{position:absolute;right:9px;top:9px;width:20px;height:20px;border:2px solid var(--green);border-radius:6px;background:white;color:var(--green);display:grid;place-items:center;font:800 12px/1 inherit}.room.selected .room-multi-check{background:var(--green);color:white}.room.multi-selecting .room-check{display:none}
.property{display:none!important}.topbar{position:sticky}.role-badge.account-menu-trigger{cursor:pointer}.role-badge.account-menu-trigger:after{content:' ▾';font-size:11px}.admin-account-menu{position:absolute;right:0;top:62px;z-index:35;width:180px;padding:7px;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 34px rgba(124,45,18,.18)}.admin-account-menu[hidden]{display:none}.admin-account-menu button{width:100%;border:0;background:transparent;padding:10px 11px;border-radius:8px;text-align:left;color:var(--ink);font:600 14px inherit;cursor:pointer}.admin-account-menu button:hover:not(:disabled){background:var(--green-2);color:#C2410C}.admin-account-menu button:disabled{color:var(--green);cursor:default}
@media(max-width:720px){#manageNav,#manageLabel,#sidebar>nav.nav+.nav-label,#sidebar>nav.nav+.nav-label+nav.nav{max-height:none!important;margin:initial!important;opacity:1!important;overflow:visible!important;pointer-events:auto!important;transform:none!important}#manageLabel{padding:12px 12px 7px!important}#sidebarBackdrop{display:none!important}.mobile-drawer-open{overflow:auto!important}.admin-account-menu{right:14px;top:56px}}
.field input.shift-static-field{cursor:not-allowed;background:#fff}.field input.shift-static-field:focus{border-color:var(--line);box-shadow:none}
.field input[readonly],.field input:disabled,.field select:disabled,.field textarea[readonly],.field textarea:disabled{cursor:not-allowed;background:#fff;color:var(--muted);border-color:var(--line);box-shadow:none}.field input[readonly]:focus,.field input:disabled:focus,.field select:disabled:focus,.field textarea[readonly]:focus,.field textarea:disabled:focus{border-color:var(--line);box-shadow:none}
#roomBookingDays{background:transparent!important}
.source-list{padding:0 20px 22px}.source-chart-wrap{display:grid;grid-template-columns:minmax(150px,210px) minmax(0,1fr);align-items:center;gap:24px}.source-pie{width:min(100%,210px);aspect-ratio:1;border-radius:50%;position:relative;margin:auto;box-shadow:inset 0 0 0 1px rgba(124,45,18,.08),0 10px 24px rgba(124,45,18,.10)}.source-pie:after{content:"";position:absolute;inset:28%;border-radius:50%;background:var(--paper);box-shadow:0 0 0 1px rgba(124,45,18,.06)}.source-pie-total{position:absolute;inset:28%;z-index:1;display:grid;place-content:center;text-align:center}.source-pie-total b{font:700 27px/1 Manrope}.source-pie-total span{margin-top:4px;color:var(--muted);font-size:12px}.source-legend{display:flex;flex-direction:column;gap:10px}.source-legend-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:9px}.source-dot{width:12px;height:12px;border-radius:4px;background:var(--source-color)}.source-name{overflow:hidden;text-overflow:ellipsis;font-size:14px}.source-count{min-width:32px;text-align:right;font:700 16px Manrope}.source-empty{padding:18px 0 24px;text-align:center;color:var(--muted)}@media(max-width:650px){.source-chart-wrap{grid-template-columns:1fr}.source-pie{max-width:190px}}
.source-chart-wrap{grid-template-columns:minmax(0,1fr) minmax(150px,210px)}.source-pie{grid-column:2;grid-row:1;justify-self:end;margin:0}.source-legend{grid-column:1;grid-row:1;align-items:flex-start}.source-legend-row{grid-template-columns:12px auto auto;width:max-content;max-width:100%;column-gap:10px}.source-name{max-width:280px}.source-count{min-width:24px;margin-left:14px;text-align:left}@media(max-width:650px){.source-pie{grid-column:1;grid-row:2;justify-self:center}.source-legend{grid-column:1;grid-row:1}}
.dashboard-date-range{display:flex;align-items:flex-end;gap:10px}.dashboard-date-range .dashboard-date-filter{min-width:170px}@media(max-width:650px){.dashboard-date-range{width:100%;display:grid;grid-template-columns:1fr 1fr}.dashboard-date-range .dashboard-date-filter{min-width:0}.source-chart-wrap{display:flex;flex-direction:column;align-items:stretch;gap:22px}.source-legend{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.source-legend-row{width:100%;grid-template-columns:12px minmax(0,1fr) auto}.source-name{max-width:none;white-space:nowrap}.source-count{margin-left:0;text-align:right}.source-pie{order:2;width:min(62vw,190px);align-self:center;justify-self:auto}.source-pie-total b{font-size:24px}.source-pie-total span{font-size:11px}}
.report-filters{display:flex;align-items:end;gap:12px;padding:16px 18px;background:#FFF7ED;border:1px solid var(--line);border-radius:16px}.report-filters .field{width:min(220px,100%)}.report-filters .primary{min-height:42px;justify-content:center}.report-summary strong{font-size:22px}.report-summary article:first-child strong{font-size:17px;line-height:1.35}.report-record-count{align-self:flex-start;border-radius:999px;padding:6px 10px;background:#FFF1E6;color:#C2410C;font-size:12px;font-weight:700;white-space:nowrap}@media(max-width:720px){.report-filters{align-items:stretch;flex-direction:column}.report-filters .field{width:100%}.report-summary{grid-template-columns:1fr}}
.calendar-panel .dates .capacity-green:not(.selected){background:#DCFCE7;border-color:#86EFAC;color:#166534}.calendar-panel .dates .capacity-orange:not(.selected){background:#FFEDD5;border-color:#FDBA74;color:#C2410C}.calendar-panel .dates .capacity-red:not(.selected){background:#FEE2E2;border-color:#FCA5A5;color:#B91C1C}.calendar-panel .dates .capacity-full:not(.selected){background:#E7E5E4;border-color:#D6D3D1;color:#78716C}
.topbar{background:#fff7ed;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 1px 0 var(--line)}

/* Responsive booking, dashboard, and room-operation refinements */
.role-badge{gap:7px;cursor:default}
.role-badge small{font-size:10px;font-weight:600;line-height:1;color:var(--muted);letter-spacing:.02em}
.role-badge strong{font:700 14px/1.1 Manrope;color:#7C2D12}
.role-badge.account-menu-trigger:after{content:none}
.admin-account-menu{display:none!important}

.bookings-summary{grid-template-columns:repeat(5,1fr)}
.bookings-table tbody tr:nth-child(odd)>td{background:#fff}
.bookings-table tbody tr:nth-child(even)>td{background:#fff7ed}
.bookings-table tbody tr:hover>td{background:#ffedd5}
.booking-row-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}
.icon-action{width:34px;height:34px;padding:0;display:inline-grid;place-items:center}
.icon-action .icon{width:17px;height:17px}
.row-action.danger.icon-action{color:#b42318;border-color:#fecaca;background:#fff5f4}
.row-action.danger.icon-action:hover{background:#fee4e2;border-color:#fda29b}

.dashboard-date-filter{position:relative}
.dashboard-date-input{position:relative;display:flex;align-items:center;width:100%}
.dashboard-date-input:after{content:"";position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:34px;border-radius:9px;pointer-events:none;background:#f97316 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M8 3v4M16 3v4M3 10h18'/%3E%3C/svg%3E") center/18px 18px no-repeat;box-shadow:0 5px 12px rgba(249,115,22,.25)}
.dashboard-date-input input{width:100%}
.dashboard-date-filter input{padding-right:50px!important;background:linear-gradient(135deg,#fff 0%,#fffaf4 100%)!important;font:700 14px/1.2 Manrope!important;letter-spacing:.01em;box-shadow:0 5px 16px rgba(124,45,18,.06)}
.dashboard-date-filter input::-webkit-calendar-picker-indicator{opacity:0;width:40px;height:34px;cursor:pointer}

.side-stack{width:min(100%,640px);align-self:start}
.side-stack .panel-head{padding:15px 16px 8px}
.side-stack .panel-head h2{font-size:19px}
.side-stack .panel-head p{font-size:13px}
.side-stack .source-list{padding:0 16px 15px}
.side-stack .source-chart-wrap{grid-template-columns:minmax(0,1fr) 124px;gap:16px}
.side-stack .source-pie{width:124px}
.side-stack .source-pie-total b{font-size:21px}
.side-stack .source-pie-total span{font-size:10px}
.side-stack .source-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 15px;width:100%}
.side-stack .source-legend-row{width:100%;grid-template-columns:10px minmax(0,1fr) auto}
.side-stack .source-dot{width:10px;height:10px}
.side-stack .source-name{font-size:12px;white-space:nowrap}
.side-stack .source-count{font-size:13px;margin-left:0;text-align:right}

.availability-panel .legend{align-items:center}
.availability-panel .legend .multi-room-controls{margin-left:auto;padding:0}
.availability-panel .legend .multi-room-controls .filter{padding:7px 11px}

.close{width:42px;height:42px;display:grid;place-items:center;font:800 25px/1 Manrope}

.operation-room select.room-status-select{appearance:none;-webkit-appearance:none;min-width:132px;max-width:none;min-height:42px;padding:8px 40px 8px 35px;border:1px solid #fed7aa;border-radius:999px;color:#7c2d12;font:700 13px/1.2 Manrope;background-color:#fff;background-image:radial-gradient(circle at 18px 50%,#16a34a 0 4px,transparent 4.5px),linear-gradient(45deg,transparent 50%,#c2410c 50%),linear-gradient(135deg,#c2410c 50%,transparent 50%);background-position:0 0,calc(100% - 17px) 18px,calc(100% - 12px) 18px;background-size:auto,5px 5px,5px 5px;background-repeat:no-repeat;box-shadow:0 5px 14px rgba(124,45,18,.08);cursor:pointer}
.operation-room select.status-select-occupied{background-image:radial-gradient(circle at 17px 50%,#dc2626 0 4px,transparent 4.5px),linear-gradient(45deg,transparent 50%,#c2410c 50%),linear-gradient(135deg,#c2410c 50%,transparent 50%)}
.operation-room select.status-select-blocked{background-image:radial-gradient(circle at 17px 50%,#78716c 0 4px,transparent 4.5px),linear-gradient(45deg,transparent 50%,#c2410c 50%),linear-gradient(135deg,#c2410c 50%,transparent 50%)}
.operation-room select.room-status-select:focus{outline:0;border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.16)}
.operation-room{overflow:visible}
.room-status-menu{position:relative;flex:0 0 auto;min-width:142px;z-index:1}.room-status-display{min-width:142px;min-height:44px;padding:9px 14px 9px 15px;border:1px solid #fed7aa;border-radius:999px;background:#fff;color:#7c2d12;display:flex;align-items:center;gap:10px;font:700 13px/1.2 Manrope;box-shadow:0 5px 14px rgba(124,45,18,.08)}
.room-status-menu.open{z-index:30}
.room-status-trigger{width:100%;min-height:44px;padding:9px 14px 9px 15px;border:1px solid #fed7aa;border-radius:999px;background:#fff;color:#7c2d12;display:grid;grid-template-columns:12px 1fr 10px;align-items:center;gap:10px;text-align:left;font:700 13px/1.2 Manrope;box-shadow:0 5px 14px rgba(124,45,18,.08);cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}
.room-status-trigger:hover{border-color:#fb923c;box-shadow:0 7px 18px rgba(124,45,18,.12)}
.room-status-trigger:focus-visible{outline:0;border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.18)}
.room-status-dot{width:10px;height:10px;border-radius:50%;background:#16a34a}
.status-select-occupied .room-status-trigger .room-status-dot,.status-option-occupied .room-status-dot{background:#dc2626}
.status-select-blocked .room-status-trigger .room-status-dot,.status-option-blocked .room-status-dot{background:#78716c}
.room-status-caret{width:8px;height:8px;border-right:2px solid #c2410c;border-bottom:2px solid #c2410c;transform:translateY(-2px) rotate(45deg);transition:transform .18s}
.room-status-menu.open .room-status-caret{transform:translateY(2px) rotate(225deg)}
.room-status-options{position:absolute;top:calc(100% + 7px);right:0;width:100%;padding:6px;border:1px solid #fed7aa;border-radius:17px;background:#fff;box-shadow:0 16px 34px rgba(67,38,20,.18);opacity:0;visibility:hidden;transform:translateY(-5px) scale(.98);transform-origin:top right;transition:opacity .16s,transform .16s,visibility .16s}
.room-status-menu.open .room-status-options{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.room-status-options button{width:100%;min-height:38px;padding:8px 9px;border:0;border-radius:11px;background:transparent;color:#7c2d12;display:grid;grid-template-columns:12px 1fr 14px;align-items:center;gap:9px;text-align:left;font:600 13px/1.2 Manrope;cursor:pointer}
.room-status-options button:hover,.room-status-options button:focus-visible{outline:0;background:#fff1e6;color:#9a3412}
.room-status-options button.active{background:#ffedd5;color:#9a3412;font-weight:800}
.room-status-check{color:#16a34a;font-size:13px;text-align:right}

@media(max-width:900px) and (min-width:721px){
  .bookings-summary{grid-template-columns:repeat(5,1fr)}
}

@media(max-width:720px){
  #sidebar { /* Fit the hamburger menu within the screen height */
    width: min(66vw, 240px);
    height: 100dvh;
    padding: clamp(8px, 1.8dvh, 14px) 10px;
    overflow-y: hidden;
  }
  #sidebar .brand { /* Reduce the Vic Homestay branding */
    gap: 8px;
    padding: 0 5px clamp(8px, 2dvh, 14px);
  }
  #sidebar .brandmark {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    font-size: 16px;
    flex: 0 0 34px;
  }

  #sidebar .brand-copy {
    display: block;
    min-width: 0;
    overflow: hidden;
  }

  #sidebar .brand b {
    font-size: 18px;
    line-height: 1.1;
    white-space: nowrap;
  }

  #sidebar .brand small {
    display: block;
    margin-top: 2px;
    font-size: 11px;
    line-height: 1.2;
    white-space: nowrap;
  }

  #sidebar .nav-label { /* Reduce section-heading spacing */
    padding: clamp(4px, 1dvh, 7px) 8px 3px !important;
    font-size: 10px;
    line-height: 1.1;
  }

  #sidebar .nav { /* Reduce navigation-option height */
    gap: 2px;
  }

  #sidebar .nav button {
    min-height: 0;
    padding: clamp(6px, 1.2dvh, 8px) 8px;
    gap: 9px;
    border-radius: 10px;
    font-size: clamp(12px, 1.8dvh, 14px);
    line-height: 1.2;
  }

  #sidebar .nav button .icon {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
  }
  #sidebar.open {box-shadow: 16px 0 40px rgba(67, 38, 20, 0.28);}
  .topbar .role-badge{max-width:150px;gap:5px;padding:0 9px}
  .topbar .role-badge small{font-size:8px}
  .topbar .role-badge strong{font-size:12px;overflow:hidden;text-overflow:ellipsis}
  .bookings-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bookings-summary span:last-child{grid-column:1/-1}
  .bookings-table-wrap{position:relative}
  .bookings-table th:nth-child(2),.bookings-table td:nth-child(2){position:sticky;left:0;z-index:2;min-width:155px;box-shadow:7px 0 10px -10px rgba(67,38,20,.65)}
  .bookings-table thead th:nth-child(2){z-index:4;background:#fff1e6}
  .bookings-table tbody tr:nth-child(odd)>td:nth-child(2){background:#fff}
  .bookings-table tbody tr:nth-child(even)>td:nth-child(2){background:#fff7ed}
  .bookings-table tbody tr:hover>td:nth-child(2){background:#ffedd5}
  .availability-panel .legend{display:grid;grid-template-columns:repeat(3,max-content);gap:9px 12px;padding:0 14px 12px;overflow:visible}
  .availability-panel .legend>span:nth-child(4){grid-column:1;grid-row:2}
  .availability-panel .legend .multi-room-controls{grid-column:2/4;grid-row:2;margin:0;display:flex;align-items:center}
  .availability-panel .legend .multi-room-controls .filter{font-size:11px;padding:6px 8px;white-space:nowrap}
  .availability-panel .legend .multi-room-controls .primary{font-size:11px;padding:7px 10px}
  .floor-top{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:5px 7px}
  .floor-title{font-size:13px!important}
  .floor-meta{grid-column:2;margin:0;font-size:11px!important;line-height:1.2}
  .floor-book{grid-column:3;grid-row:1/3;padding:5px 7px!important;max-width:78px;font-size:10px!important;line-height:1.15!important}
  .close{width:42px;height:42px;font-size:27px}
  .side-stack{width:100%}
  .side-stack .source-chart-wrap{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:12px}
  .side-stack .source-pie{grid-column:2;grid-row:1;width:112px;align-self:center}
  .side-stack .source-legend{grid-column:1;grid-row:1;grid-template-columns:1fr}
  .operation-room{align-items:center}
  .operation-room select.room-status-select{min-width:126px;font-size:12px}
}

/* Customer table and reporting-period refinements */
.customers-table tbody tr:nth-child(odd)>td{background:#fff}
.customers-table tbody tr:nth-child(even)>td{background:#fff7ed}
.customers-table tbody tr:hover>td{background:#ffedd5}
.customer-row-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}
.customer-action{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.customer-action .icon{width:16px;height:16px}
.customer-action.delete-action{color:#b42318;border-color:#fecaca;background:#fff5f4}
.customer-action.delete-action:hover{background:#fee4e2;border-color:#fda29b}

.dashboard-date-range{display:grid;grid-template-columns:repeat(2,minmax(150px,172px));align-items:end;gap:10px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.dashboard-date-range .dashboard-date-filter{min-width:0;gap:5px}
.dashboard-date-range .dashboard-date-filter>span:not(.dashboard-date-input){padding-left:2px;color:#9a6342;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.dashboard-date-input:after{right:13px;top:50%;bottom:auto;transform:translateY(-50%);width:28px;height:28px;border-radius:9px;background-color:#7c2d12;background-size:14px 14px;box-shadow:0 4px 10px rgba(124,45,18,.18)}
.dashboard-date-filter input{min-height:44px!important;padding:10px 43px 10px 12px!important;border-color:#fed7aa!important;border-radius:12px!important;background:#fff!important;color:#4c2d1c!important;font:700 12px/1.2 Manrope!important;box-shadow:0 4px 12px rgba(124,45,18,.05)!important}
.dashboard-date-filter input:hover{border-color:#fb923c!important}
.dashboard-date-filter input:focus{border-color:#f97316!important;box-shadow:0 0 0 3px rgba(249,115,22,.15)!important}

@media(max-width:720px){
  .customers-table-wrap{position:relative}
  .customers-table th:first-child,.customers-table td:first-child{position:sticky;left:0;z-index:2;min-width:165px;box-shadow:7px 0 10px -10px rgba(67,38,20,.65)}
  .customers-table thead th:first-child{z-index:4;background:#fff1e6}
  .customers-table tbody tr:nth-child(odd)>td:first-child{background:#fff}
  .customers-table tbody tr:nth-child(even)>td:first-child{background:#fff7ed}
  .customers-table tbody tr:hover>td:first-child{background:#ffedd5}
  .customer-row-actions{gap:8px}
  .customer-action{width:38px;height:38px;padding:0;border-radius:11px}
  .customer-action .icon{width:18px;height:18px}
  .customer-action span{display:none}
  .dashboard-date-range{width:100%;grid-template-columns:1fr 1fr;gap:9px;padding:0}
  .dashboard-date-filter input{font-size:11px!important;padding-left:10px!important;padding-right:38px!important}
  .dashboard-date-input:after{right:11px;top:50%;bottom:auto;width:27px;height:27px}
}

@media(max-width:390px){
  .dashboard-date-range{grid-template-columns:1fr}
}

.role-badge{min-height:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;gap:5px;align-items:baseline}
.role-badge small{font-size:11px;line-height:1;color:#9a7b68}
.role-badge strong{font-size:14px;line-height:1;color:#7c2d12}
@media(max-width:720px){
  .topbar .role-badge{min-height:auto;max-width:155px;padding:0;border:0;background:transparent;gap:4px;align-items:baseline}
  .topbar .role-badge small{font-size:8px}
  .topbar .role-badge strong{font-size:12px}
  .bookings-toolbar-actions{width:auto;display:flex;align-items:center;justify-content:flex-start;gap:7px;flex-wrap:wrap}
  .bookings-toolbar-actions>*{flex:0 0 auto;width:auto;min-height:36px;padding:8px 10px;font-size:11px;line-height:1.15}
  .bookings-toolbar-actions .primary .icon{width:16px;height:16px}
}

/* Dashboard and mobile interaction refinements */
:root{
  --orange-gradient:linear-gradient(135deg,#fb923c 0%,#f97316 48%,#c2410c 100%);
  --orange-gradient-hover:linear-gradient(135deg,#f97316 0%,#ea580c 52%,#9a3412 100%);
}
.topbar{background:var(--canvas);border-bottom-color:transparent;box-shadow:none}
.primary,.filter.active,.calendar-picker-apply,.dates .selected{
  background-color:#f97316!important;
  background-image:var(--orange-gradient)!important;
  border-color:#f97316!important;
}
.primary:hover,.filter.active:hover,.calendar-picker-apply:hover{
  background-color:#ea580c!important;
  background-image:var(--orange-gradient-hover)!important;
}
.room.available{--status-bg:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 48%,#bbf7d0 100%)}
.room.occupied{--status-bg:linear-gradient(135deg,#fff5f5 0%,#fee4e2 48%,#fecaca 100%)}
.room.blocked{--status-bg:linear-gradient(135deg,#fafaf9 0%,#efeae5 52%,#d6d3d1 100%)}
.operation-room{background:linear-gradient(135deg,#f0fdf4,#dcfce7 55%,#bbf7d0)}
.operation-room.status-room-occupied{background:linear-gradient(135deg,#fff5f5,#fee4e2 55%,#fecaca)}
.operation-room.status-room-blocked{background:linear-gradient(135deg,#fafaf9,#efeae5 55%,#d6d3d1)}

.dashboard-date-filter input{cursor:pointer}
.dashboard-date-filter input::placeholder{color:#a98d7a;opacity:1}
.dashboard-picker-backdrop{position:fixed;inset:0;z-index:85;display:grid;place-items:center;padding:18px;background:rgba(67,38,20,.34);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.dashboard-picker-backdrop[hidden]{display:none}
.dashboard-custom-picker{position:relative;width:min(380px,100%);overflow:hidden;padding:20px;border:1px solid rgba(251,146,60,.5);border-radius:26px;background:linear-gradient(155deg,#fff 0%,#fffaf4 48%,#ffedd5 100%);box-shadow:0 30px 80px rgba(67,38,20,.28)}
.dashboard-picker-accent{position:absolute;inset:0 0 auto;height:5px;background:var(--orange-gradient)}
.dashboard-picker-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:10px;margin:4px 0 18px}
.dashboard-picker-head strong{text-align:center;font:700 20px/1.2 Manrope;color:#4c2d1c}
.dashboard-picker-head button{width:42px;height:42px;border:1px solid #fed7aa;border-radius:14px;background:#fff;color:#c2410c;font:800 22px/1 Manrope;cursor:pointer;box-shadow:0 6px 15px rgba(124,45,18,.08)}
.dashboard-picker-head button:hover{border-color:#fb923c;background:#fff7ed}
.dashboard-picker-week,.dashboard-picker-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}
.dashboard-picker-week{margin-bottom:7px;color:#9a7b68;font:700 11px/1.2 Manrope}
.dashboard-picker-days>span,.dashboard-picker-days>button{aspect-ratio:1;display:grid;place-items:center}
.dashboard-picker-days>button{border:0;border-radius:12px;background:rgba(255,255,255,.76);color:#5f4a3d;font:700 13px/1 Manrope;cursor:pointer;transition:transform .16s,box-shadow .16s,background .16s}
.dashboard-picker-days>button:hover:not(:disabled){transform:translateY(-2px);background:#ffedd5;box-shadow:0 6px 14px rgba(124,45,18,.12)}
.dashboard-picker-days>button.today{box-shadow:inset 0 0 0 2px #fdba74}
.dashboard-picker-days>button.selected{color:#fff;background:var(--orange-gradient);box-shadow:0 7px 16px rgba(249,115,22,.26)}
.dashboard-picker-days>button:disabled{opacity:.32;cursor:not-allowed}
.dashboard-picker-foot{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:17px}
.dashboard-picker-foot button{min-height:38px;padding:8px 13px}

.calendar-picker-popover{padding:16px;border-radius:20px;background:linear-gradient(155deg,#fff,#fff7ed);border-color:#fdba74;box-shadow:0 22px 52px rgba(67,38,20,.24)}
.calendar-picker-popover select{min-height:40px;padding:8px;border-radius:12px;border-color:#fdba74;background:#fffaf4}
.calendar-picker-apply{min-height:40px!important;border-radius:12px!important}

.mobile-room-filter{display:none}
.dashboard-room-filter-menu{position:relative;min-width:142px;z-index:8}
.dashboard-room-filter-trigger{width:100%;min-height:42px;padding:8px 13px;border:1px solid #fed7aa;border-radius:999px;background:#fff;color:#7c2d12;display:grid;grid-template-columns:12px 1fr 10px;align-items:center;gap:9px;text-align:left;font:700 12px/1.2 Manrope;box-shadow:0 5px 14px rgba(124,45,18,.08);cursor:pointer}
.dashboard-room-filter-menu .room-status-dot{background:linear-gradient(135deg,#f97316,#c2410c)}
.dashboard-room-filter-menu.filter-is-available .dashboard-room-filter-trigger .room-status-dot,.filter-option-available .room-status-dot{background:#16a34a}
.dashboard-room-filter-menu.filter-is-occupied .dashboard-room-filter-trigger .room-status-dot,.filter-option-occupied .room-status-dot{background:#dc2626}
.dashboard-room-filter-menu.filter-is-blocked .dashboard-room-filter-trigger .room-status-dot,.filter-option-blocked .room-status-dot{background:#78716c}
.dashboard-room-filter-options{position:absolute;top:calc(100% + 7px);right:0;width:100%;padding:6px;border:1px solid #fed7aa;border-radius:17px;background:#fff;box-shadow:0 16px 34px rgba(67,38,20,.2);opacity:0;visibility:hidden;transform:translateY(-5px) scale(.98);transform-origin:top right;transition:.16s}
.dashboard-room-filter-menu.open .dashboard-room-filter-options{opacity:1;visibility:visible;transform:none}
.dashboard-room-filter-menu.open .room-status-caret{transform:translateY(2px) rotate(225deg)}
.dashboard-room-filter-options button{width:100%;min-height:38px;padding:8px 9px;border:0;border-radius:11px;background:transparent;color:#7c2d12;display:grid;grid-template-columns:12px 1fr 14px;align-items:center;gap:9px;text-align:left;font:600 12px/1.2 Manrope;cursor:pointer}
.dashboard-room-filter-options button:hover,.dashboard-room-filter-options button.active{background:#ffedd5;color:#9a3412}

.source-filters{display:flex;align-items:center;gap:8px;padding:0 16px 8px}
.source-filter-control{position:relative;z-index:9}
.source-filter-control.open{z-index:32}
.source-filter-trigger{min-width:112px;min-height:38px;padding:8px 12px;border:1px solid #fed7aa;border-radius:999px;background:#fff;color:#7c2d12;display:grid;grid-template-columns:1fr 9px;align-items:center;gap:9px;text-align:left;font:700 12px/1.2 Manrope;cursor:pointer}
.source-filter-popover{position:absolute;top:calc(100% + 7px);left:0;width:190px;max-height:260px;overflow:auto;padding:7px;border:1px solid #fed7aa;border-radius:17px;background:#fff;box-shadow:0 18px 42px rgba(67,38,20,.2);opacity:0;visibility:hidden;transform:translateY(-5px) scale(.98);transition:.16s}
.source-filter-control.open .source-filter-popover{opacity:1;visibility:visible;transform:none}
.source-filter-control.open .room-status-caret{transform:translateY(2px) rotate(225deg)}
.source-filter-popover-head{position:sticky;top:-7px;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:8px;background:#fff;border-bottom:1px solid #ffedd5}
.source-filter-popover-head b{font-size:12px;text-transform:capitalize}
.source-filter-popover-head button{border:0;border-radius:8px;background:#fff1e6;color:#c2410c;padding:5px 8px;font:700 10px inherit;cursor:pointer}
.source-filter-popover label{display:flex;align-items:center;gap:8px;padding:8px;border-radius:10px;color:#5f4a3d;font-size:12px;cursor:pointer}
.source-filter-popover label:hover{background:#fff7ed}
.source-filter-popover input{accent-color:#f97316}
.source-chart-annotated{display:block!important;width:100%;padding:0!important}
.source-pie-svg{display:block;width:min(100%,300px);height:auto;margin:auto;overflow:visible}
.source-pie-svg circle{filter:drop-shadow(0 5px 8px rgba(67,38,20,.10))}
.source-pie-svg text{fill:#6f6259;font:700 11px Manrope}
.source-pie-svg .source-pie-total-number{fill:#2f1f16;font:700 28px Manrope}
.source-pie-svg .source-pie-total-label{fill:#8f7767;font:600 11px Manrope}

.bookings-tabs{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;width:min(100%,430px);overflow:hidden}
.bookings-tabs:before{content:"";position:absolute;z-index:0;top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/3);border-radius:10px;background:#fff;box-shadow:0 3px 10px rgba(67,38,20,.1);transform:translateX(var(--booking-tab-offset,0%));transition:transform .28s cubic-bezier(.22,.61,.36,1)}
.bookings-tabs button{position:relative;z-index:1;min-width:0;text-align:center;background:transparent!important;box-shadow:none!important}
.bookings-tabs button.active{background:transparent!important}

#bookingsList{display:flex;flex-direction:column;gap:5px}
#bookingsList .booking{border-top:0;border-radius:12px;padding:11px 10px}
#bookingsList .booking:nth-child(odd){background:#fff}
#bookingsList .booking:nth-child(even){background:#fff1e6}

@media(max-width:720px){
  .dashboard-date-range{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
  .dashboard-date-range .dashboard-date-filter{width:auto;min-width:0}
  .dashboard-date-filter input{min-width:0;font-size:10.5px!important;padding-left:9px!important;padding-right:35px!important}
  .dashboard-date-range .dashboard-date-filter>span:not(.dashboard-date-input){font-size:9px}
  .dashboard-date-input:after{right:8px;width:26px;height:26px;background-size:13px 13px}
  .dashboard-custom-picker{padding:18px 14px 16px;border-radius:25px 25px 0 0}
  .dashboard-picker-backdrop{place-items:end center;padding:0}
  .dashboard-picker-head strong{font-size:18px}
  .dashboard-picker-days>button{border-radius:10px}

  .availability-panel .panel-head .filters{display:none}
  .mobile-room-filter{display:flex;align-items:center;justify-content:flex-end;gap:7px;padding:0 14px 11px;color:#8f7767;font-size:11px}
  .dashboard-room-filter-menu{min-width:132px}

  .availability-panel .legend{display:flex!important;align-items:center;justify-content:space-between;gap:8px;padding:0 14px 12px!important}
  .availability-panel .legend>span:nth-child(-n+3){display:none}
  .availability-panel .legend>span:nth-child(4){display:flex;grid-column:auto;grid-row:auto;flex:0 0 auto}
  .availability-panel .legend .multi-room-controls{display:flex;align-items:center;justify-content:flex-end;gap:6px;grid-column:auto;grid-row:auto;margin-left:auto}
  .availability-panel .legend .multi-room-controls #multiRoomToggle{flex:0 0 136px;width:136px;min-width:136px;padding:7px 7px;font-size:10px}
  .availability-panel .legend .multi-room-controls #multiRoomNext{flex:0 0 64px;width:64px;min-width:64px;max-width:64px;padding:7px 5px;font-size:10px;justify-content:center;white-space:nowrap}
  .availability-panel .legend .multi-room-controls #multiRoomNext:disabled{opacity:.45;box-shadow:none}

  .calendar-panel{overflow:hidden;border:0;background:transparent;box-shadow:none}
  .calendar-panel .panel-head{padding:12px 3px 10px}
  .calendar-panel .calendar{width:100%;max-width:none;margin:0;padding:15px 13px 17px;border-radius:22px;border-color:#fed7aa;background:linear-gradient(155deg,#fffaf4,#fff7ed);box-shadow:0 12px 28px rgba(124,45,18,.09)}
  .calendar-picker-popover{left:12px;right:12px;bottom:12px;padding:18px;border-radius:24px}

  .side-stack .source-filters{padding:0 14px 8px}
  .source-filter-control{flex:1}
  .source-filter-trigger{width:100%;min-width:0}
  .source-filter-popover{left:0;width:min(205px,78vw)}
  .source-chart-annotated{display:block!important}
  .source-pie-svg{width:min(88vw,290px)}

  .lower>section:first-child .panel-head{display:flex;flex-direction:row;align-items:center;justify-content:space-between}
  .lower>section:first-child .panel-head>div{min-width:0}
  .lower>section:first-child .panel-head .filter{flex:0 0 auto;margin-left:auto;white-space:nowrap}
  #bookingsList .booking{grid-template-columns:32px minmax(0,1fr) auto;gap:8px;padding:9px 8px}
  #bookingsList .booking small{font-size:10px!important;line-height:1.25}
  #bookingsList .booking .amount b{font-size:12px}
  #bookingsList .shift-btn{min-height:26px;margin-top:3px;padding:4px 6px;font-size:9px!important;border-radius:7px}

  .bookings-workspace>.workspace-toolbar{align-items:center}
  .bookings-tabs{width:min(100%,360px);margin:0 auto;padding:4px}
  .bookings-tabs:before{top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/3)}
  .bookings-tabs button{padding:8px 4px;font-size:10.5px;white-space:nowrap}
}

@media(max-width:360px){
  .availability-panel .legend{padding-left:10px!important;padding-right:10px!important}
  .availability-panel .legend .multi-room-controls #multiRoomToggle{flex-basis:124px;width:124px;min-width:124px;font-size:9px}
  .availability-panel .legend .multi-room-controls #multiRoomNext{flex-basis:58px;width:58px;min-width:58px;max-width:58px}
}

/* Sticky dashboard context and edge-mounted mobile navigation */
.drawer-edge-toggle{display:none}
.topbar-booking-context{min-width:0;display:flex;align-items:center;gap:15px}
.topbar-booking-context>span{flex:0 0 auto;padding:6px 10px;border-radius:999px;background:#fff1e6;color:#9a3412;font:800 10px/1.1 Manrope;letter-spacing:.07em;white-space:nowrap}
.topbar-booking-context>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.topbar-booking-context strong{overflow:hidden;color:#2f1f16;font:700 17px/1.15 Manrope;text-overflow:ellipsis;white-space:nowrap}
.topbar-booking-context small{overflow:hidden;color:#6f6259;font-size:11px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}

@media(max-width:720px){
  #sidebar{overflow:visible}
  #sidebar .drawer-edge-toggle{position:absolute;top:14px;right:-44px;z-index:45;width:44px;height:46px;display:grid;border:1px solid #fed7aa;border-left:0;border-radius:0 15px 15px 0;background:linear-gradient(145deg,#fffaf4,#ffedd5);color:#c2410c;box-shadow:10px 5px 24px rgba(67,38,20,.2)}
  #sidebar .drawer-edge-toggle:hover{background:linear-gradient(145deg,#ffedd5,#fed7aa)}
  #sidebar .drawer-arrow{width:22px;height:22px;transition:transform .22s ease}
  #sidebar.open .drawer-arrow{transform:rotate(180deg)}
  .topbar-booking-context{display:none!important}

  #dashboardView .intro{position:sticky;top:65px;z-index:14;margin:0 -14px;padding:18px 14px 14px;background:linear-gradient(180deg,var(--canvas) 0%,rgba(255,247,237,.97) 88%,rgba(255,247,237,.92) 100%);transition:padding .22s ease,box-shadow .22s ease}
  #dashboardView .dashboard-intro-copy{min-width:0;transition:transform .22s ease}
  #dashboardView .dashboard-intro-copy h1{font-size:clamp(24px,7.2vw,29px);transition:font-size .22s ease,line-height .22s ease}
  #dashboardView .dashboard-intro-copy>p:last-child{max-width:100%;font-size:12px;transition:font-size .22s ease,margin .22s ease}
  #dashboardView .dashboard-date-range{max-height:120px;overflow:hidden;opacity:1;transition:max-height .22s ease,opacity .16s ease,margin .22s ease}
  #dashboardView .intro.is-compact{padding-top:7px;padding-bottom:7px;box-shadow:0 9px 22px rgba(67,38,20,.1)}
  #dashboardView .intro.is-compact .dashboard-intro-copy{transform:translateY(-1px)}
  #dashboardView .intro.is-compact .eyebrow{margin-bottom:2px;font-size:8px;letter-spacing:.08em}
  #dashboardView .intro.is-compact .dashboard-intro-copy h1{font-size:18px;line-height:1.08}
  #dashboardView .intro.is-compact .dashboard-intro-copy>p:last-child{margin-top:3px;overflow:hidden;font-size:10px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
  #dashboardView .intro.is-compact .dashboard-date-range{max-height:0;margin:0;opacity:0;pointer-events:none}
}

/* Final dashboard layout and interaction overrides */
.dashboard-summary-section{padding:18px;margin:0 0 24px}
.dashboard-summary-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}
.dashboard-summary-head>h2{max-width:520px;margin:0;color:var(--ink);font:700 20px/1.3 Manrope}
.dashboard-summary-section>.stats{margin:0}
.dashboard-date-input{position:relative;overflow:visible}
.dashboard-picker-backdrop{position:absolute;inset:auto;top:calc(100% + 7px);z-index:85;display:block;width:min(300px,calc(100vw - 24px));padding:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.dashboard-picker-backdrop.align-left{left:0;right:auto}
.dashboard-picker-backdrop.align-right{right:0;left:auto}
.dashboard-custom-picker{width:100%;padding:12px;border-radius:16px;box-shadow:0 18px 42px rgba(67,38,20,.22)}
.dashboard-picker-head{grid-template-columns:32px minmax(0,1fr) 32px;gap:7px;margin:2px 0 10px}
.dashboard-picker-head strong{font-size:15px;white-space:nowrap}
.dashboard-picker-head button{width:32px;height:32px;border-radius:10px;font-size:18px}
.dashboard-picker-week,.dashboard-picker-days{gap:3px}
.dashboard-picker-week{margin-bottom:4px;font-size:9px}
.dashboard-picker-days>button{border-radius:8px;font-size:11px}
.dashboard-picker-foot{gap:6px;margin-top:9px}
.dashboard-picker-foot button{min-height:32px;padding:6px 9px;font-size:10px}
.calendar .month{display:grid;grid-template-columns:36px minmax(150px,1fr) 36px;align-items:center;gap:8px}
.calendar .month>span{display:block;min-width:0;text-align:center;white-space:nowrap}
.topbar-booking-context>strong{padding-right:15px;border-right:1px solid var(--line)}
.topbar-booking-context>small{max-width:390px}
.bookings-tabs:before{will-change:transform;transition:transform .42s cubic-bezier(.2,.8,.2,1)}
.bookings-table tbody{opacity:1;transition:opacity .18s ease}
.bookings-table tbody.is-changing{opacity:.55}

@media(max-width:720px){
  #dashboardView .intro{top:65px;margin:0 -14px;padding:9px 14px 7px;transition:padding .26s ease,box-shadow .26s ease}
  #dashboardView .intro.is-compact{padding:5px 14px}
  #dashboardView .dashboard-intro-copy h1{font-size:24px}
  #dashboardView .intro.is-compact .dashboard-intro-copy h1{font-size:18px}
  .dashboard-summary-section{margin:0 0 18px;padding:13px;border-radius:18px}
  .dashboard-summary-head{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;margin-bottom:11px}
  .dashboard-summary-head>h2{font-size:15px;line-height:1.35}
  .dashboard-summary-section .dashboard-date-range{max-height:none!important;margin:0!important;overflow:visible!important;opacity:1!important;pointer-events:auto!important}
  .dashboard-date-range{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dashboard-picker-backdrop{position:absolute;inset:auto;top:calc(100% + 6px);display:block;padding:0}
  .dashboard-picker-backdrop.align-left{left:0;right:auto}
  .dashboard-picker-backdrop.align-right{right:0;left:auto}
  .dashboard-custom-picker{padding:11px;border-radius:15px}
  .calendar .month{grid-template-columns:34px minmax(130px,1fr) 34px}
}

@media(max-width:390px){
  .dashboard-date-range{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Unified availability controls, buttons, and popup scrolling */
:root{
  --light-button-gradient:linear-gradient(145deg,#fffdf8 0%,#fff7ed 48%,#ffedd5 100%);
  --light-button-gradient-hover:linear-gradient(145deg,#fffaf4 0%,#ffedd5 46%,#fed7aa 100%);
}
.availability-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 20px 15px;flex-wrap:nowrap}
.mobile-room-filter{display:flex;align-items:center;justify-content:flex-start;gap:7px;padding:0;color:#8f7767;font-size:12px}
.availability-toolbar .multi-room-controls{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin-left:auto}
.dashboard-room-filter-options{left:0;right:auto;transform-origin:top left}

.secondary,
.filter:not(.active),
.icon-btn,
.quick,
.floor-book,
.month button,
.dashboard-picker-head button,
.dashboard-room-filter-trigger,
.source-filter-trigger,
.row-action,
.booking-link-menu-button,
.close,
#multiRoomToggle,
.dashboard-picker-foot [data-picker-clear]{
  background-color:#fff7ed;
  background-image:var(--light-button-gradient);
  border-color:#fed7aa;
}
.dashboard-picker-foot [data-picker-clear]{color:#7c4a2d}
#multiRoomToggle.active{
  color:#7c2d12!important;
  background-color:#ffedd5!important;
  background-image:var(--light-button-gradient-hover)!important;
  border-color:#fdba74!important;
}
button{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,filter .18s ease,background-color .18s ease}
button:not(:disabled):hover{
  transform:translateY(-2px);
  filter:brightness(1.025);
  box-shadow:0 10px 24px rgba(67,38,20,.18),0 2px 7px rgba(67,38,20,.10);
}
button:not(:disabled):focus-visible{outline:2px solid #fb923c;outline-offset:3px;box-shadow:0 0 0 5px rgba(251,146,60,.16)}
.secondary:hover,
.filter:not(.active):hover,
#multiRoomToggle:hover,
.dashboard-picker-foot [data-picker-clear]:hover{background-image:var(--light-button-gradient-hover)}
#multiRoomNext:not(:disabled):hover{box-shadow:0 12px 28px rgba(234,88,12,.32),0 3px 8px rgba(124,45,18,.16)}
#multiRoomNext:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}

body:has(.modal-backdrop.open){overflow:hidden}
.modal{display:flex;flex-direction:column;overflow:hidden!important}
.modal-head,.modal-foot{flex:0 0 auto}
.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.modal-body{scrollbar-width:thin;scrollbar-color:#c2410c #ffedd5}
.modal-body::-webkit-scrollbar{width:10px}
.modal-body::-webkit-scrollbar-track{margin:8px 0;border-radius:999px;background:#ffedd5}
.modal-body::-webkit-scrollbar-thumb{border:2px solid #ffedd5;border-radius:999px;background:linear-gradient(180deg,#fb923c,#c2410c)}
.modal-body::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#f97316,#9a3412)}

@keyframes dashboardPickerIn{
  from{opacity:0;transform:translateY(-10px) scale(.965)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes popupBackdropIn{
  from{opacity:0;backdrop-filter:blur(0)}
  to{opacity:1;backdrop-filter:blur(5px)}
}
@keyframes popupPanelIn{
  from{opacity:0;transform:translateY(22px) scale(.955)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes popupBackdropOut{
  from{opacity:1}
  to{opacity:0}
}
@keyframes popupPanelOut{
  from{opacity:1;transform:translateY(0) scale(1)}
  to{opacity:0;transform:translateY(16px) scale(.97)}
}
.dashboard-picker-backdrop:not([hidden]) .dashboard-custom-picker{animation:dashboardPickerIn .26s cubic-bezier(.22,.8,.3,1) both;transform-origin:top center}
.modal-backdrop.open{animation:popupBackdropIn .24s ease-out both}
.modal-backdrop.open>.modal{animation:popupPanelIn .3s cubic-bezier(.2,.8,.2,1) both}
.modal-backdrop.open.is-closing{pointer-events:none;animation:popupBackdropOut .2s ease-in both}
.modal-backdrop.open.is-closing>.modal{animation:popupPanelOut .2s ease-in both}
.auth-screen.open .auth-card{animation:popupPanelIn .3s cubic-bezier(.2,.8,.2,1) both}

.room{width:100%;background:var(--status-bg)!important;background-clip:border-box}
.room.available:not(.selected){border-color:#86efac}
.room.occupied:not(.selected){border-color:#fecaca}
.room.blocked:not(.selected){border-color:#d6d3d1}
.floor-book,#multiRoomToggle{white-space:nowrap}

@media(max-width:720px){
  .availability-toolbar{align-items:center;padding:0 14px 12px}
  .mobile-room-filter{display:flex;justify-content:flex-start;padding:0;font-size:11px}
  .availability-toolbar .multi-room-controls{gap:6px}
  .availability-toolbar .dashboard-room-filter-menu{min-width:112px}
  .availability-toolbar #multiRoomToggle{flex:0 0 122px;width:122px;min-width:122px;padding:7px 6px;font-size:9.5px;white-space:nowrap}
  .availability-toolbar #multiRoomToggle.active{flex-basis:58px;width:58px;min-width:58px}
  .availability-toolbar #multiRoomNext{flex:0 0 64px;width:64px;min-width:64px;max-width:64px;padding:7px 5px;font-size:10px;justify-content:center;white-space:nowrap}
  .floor-book{max-width:94px!important;font-size:9px!important;white-space:nowrap}
  .bookings-table th:nth-child(2),.bookings-table td:nth-child(2){min-width:132px}
  .customers-table th:first-child,.customers-table td:first-child{min-width:132px}
}

@media(max-width:430px){
  .availability-toolbar{align-items:center;gap:7px;flex-wrap:nowrap}
  .mobile-room-filter{gap:5px}
  .availability-toolbar .multi-room-controls{margin-left:auto}
}

/* Filter persistence, password visibility, and mobile motion tuning */
.source-filter-control[data-source-filter="months"] .source-filter-popover{
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.source-filter-control[data-source-filter="months"] .source-filter-popover::-webkit-scrollbar{display:none}
#multiRoomToggle{
  min-height:44px;
  padding:10px 16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:center;
  font-size:12px;
  line-height:1;
}
.password-control{position:relative}
.password-control input{padding-right:48px!important}
.password-toggle{
  position:absolute;
  top:50%;
  right:7px;
  width:36px;
  height:36px;
  padding:0;
  border:0;
  border-radius:10px;
  display:grid;
  place-items:center;
  transform:translateY(-50%);
  background:transparent;
  color:#7c4a2d;
  cursor:pointer;
}
.password-toggle:hover{transform:translateY(-50%)!important}
.password-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.password-toggle .eye-slash{opacity:0;transition:opacity .16s ease}
.password-toggle.is-visible .eye-slash{opacity:1}

@media(max-width:720px){
  #sidebar{transition:left .36s cubic-bezier(.22,.61,.36,1),transform .36s cubic-bezier(.22,.61,.36,1)}
  #sidebar .drawer-arrow{transition:transform .34s ease}
  #sidebarBackdrop{transition:opacity .3s ease,visibility .3s ease}
  #sidebar .nav{gap:7px}
  #sidebar .nav button{margin:1px 0}
  .availability-toolbar #multiRoomToggle{flex-basis:138px;width:138px;min-width:138px;min-height:42px;padding:9px 8px;font-size:10.5px}
  .availability-toolbar #multiRoomToggle.active{flex-basis:60px;width:60px;min-width:60px}
}

/* Consistent pill controls and smooth section disclosure */
:root{interpolate-size:allow-keywords}
.availability-toolbar,.mobile-room-filter,.availability-toolbar .multi-room-controls{min-height:44px}
.mobile-room-filter{align-items:center}
#multiRoomToggle,.floor-book{
  border-radius:999px;
  background-color:#fff7ed;
  background-image:var(--light-button-gradient);
  border:1px solid #fed7aa;
  color:#7c2d12;
  box-shadow:0 5px 14px rgba(124,45,18,.08);
}
#multiRoomToggle{position:relative;top:0}
.floor-book{
  min-height:36px;
  padding:8px 13px;
  font-size:11px;
  line-height:1;
}
.panel,.feature-workspace,.source-list,.report-panel,.settings-panel{
  transition:height .32s cubic-bezier(.22,.8,.3,1),max-height .32s cubic-bezier(.22,.8,.3,1),opacity .24s ease,transform .28s ease;
}
.dashboard-room-filter-options,.source-filter-popover,.admin-account-menu,.booking-link-menu{
  transition-duration:.24s;
  transition-timing-function:cubic-bezier(.22,.8,.3,1);
}

@media(max-width:720px){
  .availability-toolbar{align-items:center}
  .availability-toolbar .multi-room-controls{align-items:center}
  .floor-book{
    min-width:108px;
    max-width:112px!important;
    min-height:40px;
    padding:8px 10px!important;
    font-size:10.5px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .panel,.feature-workspace,.source-list,.report-panel,.settings-panel,
  .dashboard-room-filter-options,.source-filter-popover,.admin-account-menu,.booking-link-menu{
    transition-duration:.01ms!important;
  }
}

/* Dashboard calendar, embedded availability, and consistent control motion. */
.calendar-panel > .calendar {
  margin: 0 auto 22px;
}

.calendar-panel > .availability-panel {
  margin: 0 14px 16px;
  overflow: visible;
  border-top: 1px solid #fed7aa;
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(255,251,245,.9), rgba(255,244,227,.72));
}

.calendar-panel > .availability-panel > .panel-head {
  padding: 20px 20px 14px;
}

.calendar-panel .dates .selected:hover,
.dates .selected:hover {
  color: #fff !important;
  border-color: #f97316 !important;
  background-color: #f97316 !important;
  background-image: var(--orange-gradient) !important;
}

.availability-panel .mobile-room-filter {
  color: #2f1f16;
}

#multiRoomNext.multi-room-next {
  color: #7c2d12;
  border: 1px solid #fdba74;
  border-radius: 999px;
  background-color: #ffedd5;
  background-image: var(--light-button-gradient-hover);
  box-shadow: 0 5px 12px rgba(117,70,28,.12);
}

#multiRoomNext.multi-room-next:not(:disabled):hover {
  color: #572306;
  border-color: #e9b880;
  background: linear-gradient(145deg, #fffdf7, #f4d6ad);
  box-shadow: 0 9px 20px rgba(117,70,28,.24);
  transform: translateY(-1px);
}

.room-multi-check {
  visibility: hidden;
  opacity: 0;
  transform: scale(.62) rotate(-8deg);
  transform-origin: center;
  pointer-events: none;
  transition: visibility 0s linear .24s, opacity .2s ease, transform .26s cubic-bezier(.22,1,.36,1), background-color .2s ease, border-color .2s ease;
}

.availability-panel.multi-selection-active .room.available .room-multi-check {
  visibility: visible;
  opacity: 1;
  transform: scale(1) rotate(0);
  pointer-events: auto;
  transition-delay: 0s;
}

button {
  text-transform: capitalize;
}

@keyframes popup-error-in {
  from { opacity: 0; transform: translateY(-6px) }
  to { opacity: 1; transform: translateY(0) }
}

.modal .login-error,
.auth-card .login-error {
  overflow: hidden;
  transition: max-height .26s ease, min-height .26s ease, margin .26s ease, opacity .2s ease, transform .26s ease;
}

.modal .login-error:empty,
.auth-card .login-error:empty {
  max-height: 0;
  min-height: 0;
  margin-top: 0;
  opacity: 0;
  transform: translateY(-6px);
}

.modal .login-error:not(:empty),
.auth-card .login-error:not(:empty) {
  max-height: 80px;
  min-height: 16px;
  opacity: 1;
  animation: popup-error-in .28s cubic-bezier(.22,1,.36,1);
}

@media(max-width:720px) {
  .calendar-panel {
    overflow: visible;
  }

  .calendar-panel > .availability-panel {
    margin-inline: 8px;
  }

  .calendar-panel > .availability-panel > .panel-head {
    padding: 16px 14px 12px;
  }
}

/* Final mobile layout stabilization: keep page chrome, cards, and controls inside the viewport. */
@media(max-width:720px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  .shell,
  .main,
  .content,
  #dashboardView,
  #featureView,
  .dashboard-grid,
  .dashboard-summary-section,
  .calendar-panel,
  .side-stack,
  .lower,
  .full-panel,
  .feature-workspace,
  .workspace-toolbar,
  .panel,
  .report-panel,
  .settings-panel {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .main {
    padding: 0 12px 28px;
  }

  .topbar {
    width: 100%;
    min-width: 0;
  }

  .topbar .role-badge {
    min-width: 0;
    max-width: calc(100vw - 72px);
  }

  #sidebarBackdrop {
    display: block !important;
  }

  body.mobile-drawer-open {
    overflow: hidden !important;
  }

  #sidebar {
    left: 0;
    width: min(66vw,240px);
    max-width: calc(100vw - 52px);
    transform: translateX(-105%);
  }

  #sidebar.open {
    transform: translateX(0);
    box-shadow: 16px 0 40px rgba(67,38,20,.28);
  }

  #dashboardView .intro {
    margin-inline: -12px;
    padding-inline: 12px;
  }

  .dashboard-summary-section {
    padding: 12px;
  }

  .stats {
    gap: 9px;
  }

  .stat {
    min-width: 0;
    padding: 12px;
  }

  .stat strong {
    font-size: 27px;
  }

  .dashboard-grid {
    gap: 14px;
    margin-top: 14px;
  }

  .calendar-panel {
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .calendar-panel > .panel-head {
    padding: 10px 2px 9px;
  }

  .calendar-panel > .panel-head h2 {
    font-size: 20px;
  }

  .calendar-panel > .calendar {
    width: 100%;
    max-width: 100%;
    margin: 0 0 14px;
    padding: 12px 8px 14px;
  }

  .calendar .month {
    grid-template-columns: 32px minmax(0,1fr) 32px;
    gap: 6px;
  }

  .calendar .month > span {
    overflow: hidden;
    font-size: 16px;
    text-overflow: ellipsis;
  }

  .days,
  .dates {
    width: 100%;
    grid-template-columns: repeat(7,minmax(0,1fr));
    gap: clamp(2px,1.2vw,5px);
  }

  .dates span {
    width: 100%;
    max-width: 39px;
    font-size: 14px;
  }

  .calendar-panel > .availability-panel {
    width: 100%;
    max-width: 100%;
    margin: 0;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: linear-gradient(145deg,#fffaf4,#fff7ed);
    box-shadow: 0 10px 25px rgba(124,45,18,.08);
  }

  .calendar-panel > .availability-panel > .panel-head {
    padding: 15px 12px 10px;
  }

  .calendar-panel > .availability-panel > .panel-head h2 {
    font-size: 18px;
  }

  .availability-toolbar {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    gap: 6px;
    width: 100%;
    min-height: 44px;
    padding: 0 10px 12px;
  }

  .mobile-room-filter {
    min-width: 0;
    gap: 3px;
    padding: 0;
    font-size: 10px;
    white-space: nowrap;
  }

  .availability-toolbar .dashboard-room-filter-menu {
    width: 82px;
    min-width: 82px;
  }

  .availability-toolbar .dashboard-room-filter-trigger {
    min-height: 38px;
    padding: 7px 9px;
    grid-template-columns: 9px 1fr 8px;
    gap: 5px;
    font-size: 10px;
  }

  .availability-toolbar .room-status-dot {
    width: 8px;
    height: 8px;
  }

  .availability-toolbar .multi-room-controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
    min-width: 0;
    min-height: 40px;
    padding: 0;
  }

  .availability-toolbar #multiRoomToggle {
    flex: 0 0 118px;
    width: 118px;
    min-width: 118px;
    min-height: 40px;
    padding: 8px 6px;
    font-size: 9px;
  }

  .availability-toolbar #multiRoomToggle.active {
    flex-basis: 50px;
    width: 50px;
    min-width: 50px;
  }

  .availability-toolbar #multiRoomNext {
    flex: 0 0 54px;
    width: 54px;
    min-width: 54px;
    max-width: 54px;
    min-height: 40px;
    padding: 7px 4px;
    font-size: 9px;
  }

  .floors {
    width: 100%;
    padding: 0 10px 12px;
  }

  .floor {
    min-width: 0;
    padding: 10px;
  }

  .floor-top {
    grid-template-columns: 26px minmax(0,1fr) auto;
    gap: 5px 6px;
  }

  .floor-title {
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: 12px !important;
  }

  .floor-book {
    min-width: 100px;
    max-width: 104px !important;
    min-height: 38px;
    padding: 7px 8px !important;
    font-size: 9px !important;
  }

  .room-grid,
  .operation-room-grid {
    width: 100%;
    min-width: 0;
    grid-template-columns: 1fr;
  }

  .room {
    min-width: 0;
    grid-template-columns: 76px minmax(0,1fr);
  }

  .room img {
    width: 76px;
  }

  .side-stack,
  .lower {
    gap: 14px;
  }

  .panel-head {
    padding: 16px 14px 11px;
  }

  .panel-head h2,
  .workspace-toolbar h3,
  .report-head h3 {
    font-size: 19px;
  }

  .full-panel.show {
    margin-top: 14px;
    padding: 14px;
  }

  .feature-page-head {
    padding-bottom: 15px;
  }

  .feature-page-head h2 {
    font-size: 25px;
  }

  .feature-page-head p:last-child {
    font-size: 14px;
  }

  .workspace-toolbar,
  .toolbar-actions {
    min-width: 0;
  }

  .toolbar-actions > * {
    min-width: 0;
  }

  .table-wrap,
  .bookings-table-wrap,
  .customers-table-wrap,
  .reports-table {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .modal-backdrop {
    padding: 10px;
  }

  .modal {
    width: 100%;
    max-width: 100%;
    max-height: calc(100dvh - 20px);
    border-radius: 20px;
  }

  .modal-head {
    padding: 16px 16px 12px;
    border-radius: 20px 20px 0 0;
  }

  .modal-head h2 {
    font-size: 21px;
  }

  .modal-body {
    padding: 16px;
  }

  .modal-foot {
    gap: 8px;
    padding: 12px 16px 16px;
    flex-wrap: wrap;
  }
}

@media(max-width:340px) {
  .main {
    padding-inline: 9px;
  }

  #dashboardView .intro {
    margin-inline: -9px;
    padding-inline: 9px;
  }

  .availability-toolbar {
    padding-inline: 8px;
  }

  .mobile-room-filter > span:last-child {
    display: none;
  }

  .availability-toolbar #multiRoomToggle {
    flex-basis: 110px;
    width: 110px;
    min-width: 110px;
  }
}

/* Shared header, section surfaces, pagination, and application-wide motion. */
.topbar-booking-context {
  display: flex !important;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.topbar-booking-context > span {
  flex: 0 0 auto;
}

.topbar-booking-context > strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#dashboardView > .intro {
  display: none;
}

.panel,
.dashboard-summary-section,
.calendar-panel > .calendar,
.calendar-panel > .availability-panel,
.floor,
.feature-summary-grid article,
.report-panel,
.settings-panel,
.manager-table-section,
.quick,
.mini-flow,
.detail-card {
  background-color: #fff7ed;
  background-image: linear-gradient(145deg,#fffdf8 0%,#fff7ed 52%,#ffedd5 100%);
}

.modal {
  background-color: #fff7ed;
  background-image: linear-gradient(145deg,#fffdf8 0%,#fff7ed 55%,#ffedd5 100%);
}

.stat {
  background-color: #fff7ed !important;
  background-image: linear-gradient(145deg,#fffdf8 0%,#fff7ed 52%,#ffedd5 100%) !important;
  border-color: var(--line);
}

.calendar-panel .dates span:not(.selected):not(.muted) {
  color: #166534 !important;
  border-color: #86efac !important;
  background-color: #dcfce7 !important;
  background-image: linear-gradient(145deg,#f0fdf4 0%,#dcfce7 55%,#bbf7d0 100%) !important;
}

.floor-book {
  margin-left: auto;
}

button,
a,
input,
select,
textarea,
.panel,
.stat,
.floor,
.room,
.table-wrap,
.data-table tbody,
.data-table tbody tr,
.feature-workspace,
.modal,
.modal-backdrop {
  transition-property: color,background-color,background-image,border-color,box-shadow,opacity,transform,filter,max-height;
  transition-duration: .24s;
  transition-timing-function: cubic-bezier(.22,.8,.3,1);
}

@keyframes page-content-enter {
  from { opacity: 0; transform: translateY(10px) }
  to { opacity: 1; transform: translateY(0) }
}

#featureView.page-entering > .feature-page-head,
#featureView.page-entering > .feature-workspace {
  animation: page-content-enter .32s cubic-bezier(.22,.8,.3,1) both;
}

#featureView.page-entering > .feature-workspace {
  animation-delay: .045s;
}

#dashboardView.dashboard-entering > .dashboard-summary-section,
#dashboardView.dashboard-entering > .dashboard-grid {
  animation: page-content-enter .32s cubic-bezier(.22,.8,.3,1) both;
}

#dashboardView.dashboard-entering > .dashboard-grid {
  animation-delay: .045s;
}

.table-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  color: var(--muted);
  background: linear-gradient(145deg,#fffdf8,#ffedd5);
  font-size: 12px;
}

.table-pagination[hidden] {
  display: none;
}

.table-pagination > div {
  display: flex;
  align-items: center;
  gap: 8px;
}

.table-pagination button {
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: #7c2d12;
  background: var(--light-button-gradient);
  font: 700 11px/1 inherit;
  cursor: pointer;
}

.table-pagination button:disabled {
  opacity: .42;
  cursor: not-allowed;
}

.table-pagination strong {
  color: var(--ink);
  font-size: 11px;
  white-space: nowrap;
}

.manager-table-section {
  overflow: hidden;
}

.manager-table-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px 12px;
}

.manager-table-heading h3,
.manager-table-heading p {
  margin: 0;
}

.manager-table-heading h3 {
  font: 700 18px/1.25 Manrope;
}

.manager-table-heading p {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}

.manager-table-heading > span {
  min-width: 34px;
  padding: 6px 9px;
  border-radius: 999px;
  color: #166534;
  background: linear-gradient(145deg,#f0fdf4,#bbf7d0);
  text-align: center;
  font-weight: 800;
}

.manager-table-section .table-wrap {
  border-inline: 0;
  border-bottom: 0;
  border-radius: 0;
}

.modal-foot-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  width: 100%;
  margin-left: auto;
}

#managerFormSave:disabled {
  opacity: .42;
  filter: saturate(.45);
  box-shadow: none;
  cursor: not-allowed;
}

@media(max-width:720px) {
  .topbar {
    padding-left: 30px;
  }

  .topbar-booking-context {
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 3px;
  }

  .topbar-booking-context > span {
    padding: 0;
    border-radius: 0;
    background: transparent;
    font-size: 8px;
  }

  .topbar-booking-context > strong {
    width: 100%;
    padding: 0;
    border: 0;
    font-size: 13px;
  }

  .floor-book {
    margin-left: 0;
  }

  .table-pagination {
    align-items: stretch;
    flex-direction: column;
    padding: 9px;
  }

  .table-pagination > div {
    justify-content: space-between;
  }

  .manager-table-heading {
    padding: 14px 14px 10px;
  }

  .manager-table-heading h3 {
    font-size: 16px;
  }

  .modal-foot-actions > button {
    flex: 0 0 auto;
  }
}

@media(prefers-reduced-motion:reduce) {
  #featureView.page-entering > .feature-page-head,
  #featureView.page-entering > .feature-workspace {
    animation-duration: .01ms !important;
    animation-delay: 0s !important;
  }
}

/* Universal table zebra striping (banded rows). */
.data-table tbody tr:nth-child(odd) > td {
  background-color: #fffdf9;
  background-image: linear-gradient(145deg,#fff 0%,#fffaf4 100%);
}

.data-table tbody tr:nth-child(even) > td {
  background-color: #fff1e6;
  background-image: linear-gradient(145deg,#fff7ed 0%,#ffedd5 100%);
}

.data-table tbody tr:hover > td {
  background-color: #ffedd5;
  background-image: linear-gradient(145deg,#ffedd5 0%,#fed7aa 100%);
}

/* Reports and payments use the same animated segmented-control treatment as Bookings. */
.sliding-tabs {
  --segment-index: 0;
  position: relative;
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 0;
  overflow: hidden;
  isolation: isolate;
}

.sliding-tabs::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 4px auto 4px 4px;
  width: calc((100% - 8px) / 4);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 3px 11px rgba(88,53,32,.12);
  transform: translateX(calc(var(--segment-index) * 100%));
  transition: transform .34s cubic-bezier(.22,1,.36,1),box-shadow .25s ease;
}

.sliding-tabs button,
.sliding-tabs button.active {
  position: relative;
  z-index: 1;
  min-width: 0;
  background: transparent;
  box-shadow: none;
  transition: color .28s ease,transform .28s ease;
}

.sliding-tabs button.active {
  color: var(--green);
}

.feature-workspace {
  transition: opacity .22s ease,transform .22s ease;
}

.feature-workspace.is-switching {
  opacity: .72;
  transform: translateY(3px);
}

/* Booking-style date fields on Reports. */
.report-date-filter label {
  margin-bottom: 7px;
  color: #9a4b25;
  font: 800 11px/1.2 Manrope;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.report-date-input {
  position: relative;
  display: block;
}

.report-date-input input {
  width: 100%;
  min-height: 48px;
  padding: 0 54px 0 15px;
  border: 1px solid #fdba74;
  border-radius: 14px;
  outline: 0;
  background: linear-gradient(145deg,#fffdf9,#fff7ed);
  color: var(--ink);
  font: 700 14px/1 Manrope;
  transition: border-color .22s ease,box-shadow .22s ease,transform .22s ease;
}

.report-date-input input:focus {
  border-color: #f97316;
  box-shadow: 0 0 0 3px rgba(249,115,22,.12),0 8px 18px rgba(124,45,18,.10);
}

.report-date-input::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 8px;
  width: 32px;
  height: 32px;
  border-radius: 10px;
  pointer-events: none;
  transform: translateY(-50%);
  background: linear-gradient(145deg,#9a3412,#7c2d12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M8 3v4M16 3v4M3 10h18'/%3E%3C/svg%3E") center/16px 16px no-repeat;
  box-shadow: 0 5px 12px rgba(124,45,18,.2);
}

.report-date-input input::-webkit-calendar-picker-indicator {
  width: 36px;
  height: 36px;
  margin-right: -46px;
  cursor: pointer;
  opacity: 0;
}

.table-action-icon {
  display: none;
}

.manager-heading-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  margin-left: 5px;
  padding: 4px 8px;
  border-radius: 999px;
  color: #166534;
  background: linear-gradient(145deg,#f0fdf4,#bbf7d0);
  font: 800 12px/1 Manrope;
  vertical-align: 2px;
}

.manager-table-heading > span {
  display: none;
}

/* The extra breathing room keeps Manrope descenders (such as “g”) visible. */
.topbar-booking-context > strong {
  overflow: visible;
  padding-block: 2px;
  line-height: 1.35;
  text-overflow: clip;
}

@media(max-width:720px) {
  .reports-tabs,
  .payments-tabs {
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 0;
    padding: 4px;
  }

  .reports-tabs button,
  .payments-tabs button {
    padding: 8px 3px;
    font-size: 10px;
    line-height: 1.2;
  }

  .data-table .mobile-icon-action {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    min-width: 36px;
    padding: 0;
    border-radius: 11px;
  }

  .data-table .mobile-icon-action .table-action-label {
    display: none;
  }

  .data-table .mobile-icon-action .icon,
  .data-table .mobile-icon-action .table-action-icon {
    display: block;
    width: 17px;
    height: 17px;
  }

  .topbar-booking-context > strong {
    line-height: 1.4;
  }
}

@media(prefers-reduced-motion:reduce) {
  .sliding-tabs::before,
  .feature-workspace {
    transition-duration: .01ms !important;
  }
}

/* Reuse the Bookings sliding-pill graphic without treating tabs as buttons. */
.booking-style-tabs {
  --booking-tab-count: 4;
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--booking-tab-count),minmax(0,1fr));
  gap: 0;
  width: min(100%,480px);
  padding: 4px;
  overflow: hidden;
  isolation: isolate;
}

.booking-style-tabs::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 4px;
  bottom: 4px;
  left: 4px;
  width: calc((100% - 8px) / var(--booking-tab-count));
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 3px 10px rgba(67,38,20,.1);
  transform: translateX(var(--booking-tab-offset,0%));
  will-change: transform;
  transition: transform .42s cubic-bezier(.2,.8,.2,1);
}

.booking-style-tabs button,
.booking-style-tabs button.active,
.booking-style-tabs button:hover,
.booking-style-tabs button:focus-visible {
  position: relative;
  z-index: 1;
  min-width: 0;
  border: 0;
  background: transparent !important;
  box-shadow: none !important;
  text-align: center;
}

.booking-style-tabs button:hover {
  color: #c2410c;
}

.payments-tabs button,
.reports-tabs button {
  white-space: nowrap;
}

#paymentsTable tbody {
  opacity: 1;
  transition: opacity .18s ease;
}

#paymentsTable tbody.is-changing {
  opacity: .55;
}

/* Reports tabs and automatic date filters share one compact toolbar. */
.reports-controls {
  flex-wrap: nowrap;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(145deg,#fffdf8 0%,#fff7ed 52%,#ffedd5 100%);
}

.reports-controls .reports-tabs {
  flex: 1 1 430px;
}

.reports-controls .report-filters {
  flex: 0 1 330px;
  display: grid;
  grid-template-columns: repeat(2,minmax(130px,1fr));
  align-items: end;
  gap: 8px;
  padding: 0;
  border: 0;
  background: transparent;
}

.reports-controls .report-filters .field {
  width: auto;
  min-width: 0;
}

.reports-controls .report-date-input input {
  min-height: 44px;
  font-size: 12px;
}

.reports-controls .reports-export {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 7px 10px;
  font-size: 10px;
  white-space: nowrap;
}

/* Every compact cream action now follows Select Multiple Rooms. */
.secondary,
.filter:not(.active),
.icon-btn,
.floor-book,
.month button,
.dashboard-picker-head button,
.dashboard-room-filter-trigger,
.source-filter-trigger,
.row-action,
.booking-link-menu-button,
.close,
#multiRoomToggle,
.dashboard-picker-foot [data-picker-clear] {
  border: 1px solid #fed7aa;
  border-radius: 999px;
  background-color: #fff7ed;
  background-image: var(--light-button-gradient);
  color: #7c2d12;
  box-shadow: 0 5px 14px rgba(124,45,18,.08);
}

.secondary:not(:disabled):hover,
.filter:not(.active):not(:disabled):hover,
.icon-btn:not(:disabled):hover,
.floor-book:not(:disabled):hover,
.month button:not(:disabled):hover,
.dashboard-picker-head button:not(:disabled):hover,
.dashboard-room-filter-trigger:not(:disabled):hover,
.source-filter-trigger:not(:disabled):hover,
.row-action:not(:disabled):hover,
.booking-link-menu-button:not(:disabled):hover,
.close:not(:disabled):hover,
#multiRoomToggle:not(:disabled):hover,
.dashboard-picker-foot [data-picker-clear]:not(:disabled):hover {
  background-image: var(--light-button-gradient-hover);
  border-color: #fdba74;
  box-shadow: 0 9px 20px rgba(124,45,18,.15);
}

@media(max-width:1100px) {
  .reports-controls {
    flex-wrap: wrap;
  }
}

@media(max-width:720px) {
  .reports-controls {
    align-items: stretch;
    flex-direction: column;
  }

  .reports-controls .reports-tabs,
  .reports-controls .report-filters {
    flex: none;
    width: 100%;
  }

  .reports-controls .report-filters {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }

  .reports-controls .reports-export {
    align-self: flex-end;
  }
}

@media(prefers-reduced-motion:reduce) {
  .booking-style-tabs::before {
    transition-duration: .01ms !important;
  }

  #dashboardView.dashboard-entering > .dashboard-summary-section,
  #dashboardView.dashboard-entering > .dashboard-grid {
    animation-duration: .01ms !important;
    animation-delay: 0s !important;
  }
}

/* Shared Dashboard/Reports date icon and logout action sizing. */
.dashboard-date-input::after {
  background-color: #f97316 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M8 3v4M16 3v4M3 10h18'/%3E%3C/svg%3E"),linear-gradient(145deg,#fb923c 0%,#f97316 48%,#c2410c 100%) !important;
  background-position: center,center !important;
  background-repeat: no-repeat !important;
  background-size: 14px 14px,100% 100% !important;
  box-shadow: 0 5px 12px rgba(234,88,12,.26) !important;
}

.logout-modal .modal-foot > button {
  display: inline-flex;
  flex: 0 0 88px;
  align-items: center;
  width: 88px;
  min-width: 88px;
  height: 40px;
  min-height: 40px;
  padding: 0 14px;
  justify-content: center;
}

/* Keep the Dashboard date popover above Availability Dates. */
#dashboardView > .dashboard-summary-section {
  position: relative;
  z-index: 2;
  overflow: visible;
}

#dashboardView > .dashboard-summary-section:has(.dashboard-picker-backdrop:not([hidden])) {
  z-index: 20;
}

#dashboardView > .dashboard-grid {
  position: relative;
  z-index: 1;
}

/* Booking Source month options only need room for the longest month name. */
.source-filter-control[data-source-filter="months"] .source-filter-popover {
  width: 160px;
}

@media(max-width:720px) {
  .lower > section:first-child .panel-head .filter {
    min-height: 28px;
    padding: 5px 9px;
    font-size: 9px;
    line-height: 1;
  }
}

/* Room status triggers should remain visually steady on pointer hover. */
.room-status-trigger:not(:disabled):hover {
  border-color: #fed7aa;
  background: #fff;
  box-shadow: 0 5px 14px rgba(124,45,18,.08);
  filter: none;
  transform: none;
}

@media(max-width:720px) {
  /* Compact mobile tables with the identifying column held in place. */
  #paymentsTable {
    min-width: 610px;
  }

  #paymentsTable th,
  #paymentsTable td,
  #enquiriesTable th,
  #enquiriesTable td {
    padding: 8px 9px;
    font-size: 10px;
  }

  #paymentsTable td small,
  #enquiriesTable td small {
    font-size: 9px;
    line-height: 1.25;
  }

  #paymentsTable th:nth-child(2),
  #paymentsTable td:nth-child(2) {
    position: sticky;
    left: 0;
    z-index: 3;
    min-width: 122px;
    max-width: 122px;
    box-shadow: 7px 0 10px -10px rgba(67,38,20,.65);
  }

  #paymentsTable thead th:nth-child(2) {
    z-index: 5;
    background: #fff1e6;
  }

  #enquiriesTable {
    min-width: 540px;
  }

  #enquiriesTable th:first-child,
  #enquiriesTable td:first-child {
    position: sticky;
    left: 0;
    z-index: 3;
    min-width: 116px;
    max-width: 116px;
    box-shadow: 7px 0 10px -10px rgba(67,38,20,.65);
  }

  #enquiriesTable thead th:first-child {
    z-index: 5;
    background: #fff1e6;
  }

  /* The three-column Reports table fits the viewport without horizontal drift. */
  .reports-table table.data-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
  }

  .reports-table th,
  .reports-table td {
    padding: 8px 6px;
    font-size: 9px;
    overflow-wrap: anywhere;
  }

  .reports-table th:nth-child(1) { width: 42%; }
  .reports-table th:nth-child(2) { width: 23%; }
  .reports-table th:nth-child(3) { width: 35%; }

  /* Keep the booking-link action compact rather than stretching full width. */
  .workspace-toolbar:has(+ .link-grid) .primary {
    align-self: flex-end;
    width: max-content;
    min-height: 34px;
    padding: 7px 10px;
    font-size: 10px;
    white-space: nowrap;
  }

  /* Give Manager Search the flexible space and keep Add Manager compact. */
  .feature-workspace:has(#activeManagersTable) > .workspace-toolbar .toolbar-actions {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 8px;
    width: 100%;
  }

  .feature-workspace:has(#activeManagersTable) .workspace-search {
    width: 100%;
  }

  .feature-workspace:has(#activeManagersTable) .workspace-toolbar .primary {
    min-height: 38px;
    padding: 8px 11px;
    font-size: 10px;
    white-space: nowrap;
  }

  #sidebar .drawer-edge-toggle {
    top: 14px;
    right: -44px;
    width: 44px;
    height: 46px;
    border-radius: 0 15px 15px 0;
  }

  #sidebar .drawer-arrow {
    width: 22px;
    height: 22px;
  }

  .reports-tabs.booking-style-tabs {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 4px;
  }

  .reports-tabs.booking-style-tabs::before {
    top: 4px;
    bottom: auto;
    width: calc((100% - 12px) / 2);
    height: calc((100% - 12px) / 2);
  }

  .reports-tabs:has(button:nth-child(1).active)::before {
    transform: translate(0,0);
  }

  .reports-tabs:has(button:nth-child(2).active)::before {
    transform: translate(calc(100% + 4px),0);
  }

  .reports-tabs:has(button:nth-child(3).active)::before {
    transform: translate(0,calc(100% + 4px));
  }

  .reports-tabs:has(button:nth-child(4).active)::before {
    transform: translate(calc(100% + 4px),calc(100% + 4px));
  }
}
 
/* Keep the public booking link page scrollable on the page surface. */
html:has(body.public-booking-page),
body.public-booking-page {
  min-height: 100%;
  height: auto;
  overflow-y: auto !important;
  overflow-x: hidden;
  touch-action: pan-y;
}

body.public-booking-page .public-booking-shell {
  min-height: 100dvh;
  height: auto;
  display: block;
}

body.public-booking-page .public-booking-card {
  margin-inline: auto;
}

body.public-booking-page .public-booking-card .modal-body {
  display: block;
  flex: none;
  min-height: 0;
  height: auto;
  max-height: none;
  overflow: visible;
  overscroll-behavior: auto;
  touch-action: auto;
}