:root{
  --v7-bg:#aeb7c3;
  --v7-shell:#f7f6f1;
  --v7-canvas:#fbfaf6;
  --v7-card:#fffefa;
  --v7-sidebar:#0c5653;
  --v7-sidebar-2:#084743;
  --v7-gold:#f4b51c;
  --v7-gold-2:#e3a10c;
  --v7-gold-soft:#fff7df;
  --v7-green:#499c6b;
  --v7-green-soft:#eef8ef;
  --v7-blue:#4b91e5;
  --v7-blue-soft:#eff6ff;
  --v7-purple:#8f5bd6;
  --v7-purple-soft:#f5effc;
  --v7-red:#e45858;
  --v7-red-soft:#fff0ef;
  --v7-amber:#f3a51d;
  --v7-amber-soft:#fff5dd;
  --v7-text:#171a22;
  --v7-text-2:#485264;
  --v7-muted:#7b8492;
  --v7-line:#e8e3da;
  --v7-line-2:#d9d3c9;
  --v7-shadow:0 18px 48px rgba(29,38,51,.12),0 4px 14px rgba(29,38,51,.05);
  --v7-card-shadow:0 8px 24px rgba(31,39,53,.045);
  --v7-radius:18px;
  --v7-radius-lg:26px;

  --bg:var(--v7-canvas);--sur:var(--v7-card);--sur2:#f7f4ee;--txt:var(--v7-text);--txt2:var(--v7-text-2);--txt3:var(--v7-muted);--brd:var(--v7-line);--brd2:var(--v7-line-2);--gold:var(--v7-gold);--gold-d:var(--v7-gold-2);--green:var(--v7-green);--gbg:var(--v7-green-soft);--red:var(--v7-red);--rbg:var(--v7-red-soft);--blue:var(--v7-blue);--bbg:var(--v7-blue-soft);--yellow:#9c680c;--ybg:var(--v7-amber-soft);--orange:var(--v7-amber);--purple:var(--v7-purple);--r:18px;--rs:12px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--v7-text);background:var(--v7-bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}body{overflow:hidden}
.shell{display:grid;grid-template-columns:260px minmax(0,1fr);gap:0;width:min(1540px,calc(100vw - 44px));height:calc(100vh - 36px);margin:18px auto;background:var(--v7-shell);border-radius:28px;box-shadow:0 30px 70px rgba(37,47,60,.22);overflow:hidden}
.sb{min-width:0;background:linear-gradient(180deg,var(--v7-sidebar),var(--v7-sidebar-2));color:#fff;padding:24px 16px 18px;display:flex;flex-direction:column;gap:14px;overflow:hidden}.main{min-width:0;background:var(--v7-canvas);display:flex;flex-direction:column;position:relative;overflow:hidden;border-radius:24px 0 0 24px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:28px 34px 16px;flex:0 0 auto}.con{padding:0 30px 20px;overflow:auto;min-height:0;flex:1}.no-print{}
.v7-brand{display:flex;align-items:center;gap:12px;padding:0 8px 10px}.v7-brand__seal{width:52px;height:52px;border:2px solid #d4ae54;border-radius:50%;display:grid;place-items:center;color:#d4ae54;font-family:Georgia,serif;font-size:28px;position:relative}.v7-brand__seal:after{content:"";position:absolute;inset:5px;border:1px solid rgba(212,174,84,.55);border-radius:50%}.v7-brand strong{font-family:Georgia,serif;font-size:25px;letter-spacing:.12em;font-weight:500}.v7-brand span{display:block;font-size:9px;letter-spacing:.35em;margin-top:2px;color:rgba(255,255,255,.78)}
.v7-side-search{height:42px;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.05);color:#fff;border-radius:10px;display:flex;align-items:center;gap:9px;padding:0 11px;text-align:left}.v7-side-search span:nth-child(2){flex:1}.v7-side-search kbd{font-size:9px;color:rgba(255,255,255,.58);background:rgba(255,255,255,.07);padding:3px 6px;border-radius:5px}
.sb-nav{display:flex;flex-direction:column;gap:3px;overflow:auto;min-height:0}.ni{display:flex;align-items:center;gap:11px;padding:10px 11px;border:1px solid rgba(255,255,255,.13);border-radius:9px;color:rgba(255,255,255,.9);font-size:13px;transition:.18s ease}.ni:hover{background:rgba(255,255,255,.07);transform:translateX(2px)}.ni.active{background:rgba(255,255,255,.15);border-color:rgba(244,181,28,.65);box-shadow:inset 2px 0 var(--v7-gold)}.v7-nav__icon{width:22px;text-align:center;font-size:15px}
.v7-quick{padding:4px 6px}.v7-quick header{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:8px}.v7-quick button{width:100%;display:flex;align-items:center;gap:9px;background:transparent;border:0;color:rgba(255,255,255,.9);padding:6px 2px;text-align:left;font-size:12px}.v7-quick button:hover{color:#fff}.v7-quick i{font-style:normal;width:18px;height:18px;border-radius:5px;background:var(--v7-gold);color:#20302d;display:grid;place-items:center;font-weight:800;font-size:9px}
.v7-calendar{margin-top:auto;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:12px}.v7-cal__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.v7-cal__head strong{font-size:12px}.v7-cal__head button{border:0;background:transparent;color:#fff}.v7-cal__week,.v7-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.v7-cal__week{font-size:9px;color:rgba(255,255,255,.65);margin-bottom:4px}.v7-cal__day{font-size:10px;height:21px;display:grid;place-items:center;border-radius:50%}.v7-cal__day.muted{opacity:.38}.v7-cal__day.today{background:var(--v7-gold);color:#1d2c29;font-weight:800}
.v7-user{display:flex;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:9px;margin-top:4px}.v7-user__avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#f2f0e8;color:#0c5653;font-weight:800}.v7-user>div:nth-child(2){flex:1;min-width:0}.v7-user strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v7-user span{display:block;font-size:9px;color:rgba(255,255,255,.66);margin-top:2px}.v7-user button{border:0;background:transparent;color:#fff}
.v7-top-left{display:grid;gap:7px}.v7-breadcrumb{display:flex;align-items:center;gap:7px;color:var(--v7-muted);font-size:11px}.v7-breadcrumb strong{color:var(--v7-text-2)}.v7-breadcrumb i{font-style:normal;color:#b7b0a5}.v7-page-title{margin:0;font-size:33px;line-height:1.1;letter-spacing:-.035em;font-weight:500}.v7-page-subtitle{margin:0;color:var(--v7-muted);font-size:12px}.v7-top-actions{display:flex;gap:7px}.v7-top-actions button{width:38px;height:38px;border:1px solid var(--v7-line);border-radius:9px;background:#fff;color:var(--v7-text);box-shadow:var(--v7-card-shadow)}
.v7-dock{margin:0 30px 18px;border:1px solid var(--v7-line);background:#fffdf8;border-radius:15px;display:grid;grid-template-columns:1.35fr repeat(3,1fr) auto;align-items:center;min-height:62px;overflow:hidden}.v7-dock>div{display:flex;align-items:center;gap:10px;padding:10px 15px;border-right:1px solid var(--v7-line)}.v7-dock>div>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--v7-line)}.v7-dock .sun{font-size:20px}.v7-dock .green{color:var(--v7-green);background:var(--v7-green-soft)}.v7-dock .blue{color:var(--v7-blue);background:var(--v7-blue-soft)}.v7-dock p{margin:0}.v7-dock strong{display:block;font-size:11px}.v7-dock small{display:block;font-size:9px;color:var(--v7-muted);margin-top:2px}.v7-dock button{margin:0 12px;height:36px;padding:0 18px;border:0;border-radius:9px;background:#ffcb4c;color:#252219;font-weight:700}
.v7-card{background:var(--v7-card);border:1px solid var(--v7-line);border-radius:var(--v7-radius);box-shadow:var(--v7-card-shadow)}.v7-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 17px 12px}.v7-card__head small{font-size:9px;letter-spacing:.09em;color:var(--v7-muted)}.v7-card__head h3{margin:3px 0 0;font-size:14px}.v7-more,.v7-dot-btn{border:0;background:#fff;border:1px solid var(--v7-line);border-radius:50%;width:28px;height:28px}.v7-pill{font-size:10px;padding:6px 9px;background:#fff;border:1px solid var(--v7-line);border-radius:8px}.v7-link{border:0;background:transparent;color:var(--v7-text-2);font-size:10px;padding:10px 16px;text-align:left}
.v7-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.v7-stat{min-height:124px;border:1px solid var(--v7-line);border-radius:17px;background:#fff;padding:17px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;text-align:left;box-shadow:var(--v7-card-shadow);transition:.2s ease}.v7-stat:hover{transform:translateY(-2px);box-shadow:0 14px 26px rgba(28,38,51,.08)}.v7-stat--amber{background:linear-gradient(135deg,#fff9eb,#fff3d0);border-color:#f3db9a}.v7-stat--green{background:linear-gradient(135deg,#f6fbf5,#eaf5e8);border-color:#d5e7d1}.v7-stat--purple{background:linear-gradient(135deg,#fbf8fd,#f1e9f8);border-color:#e3d8ef}.v7-stat--blue{background:linear-gradient(135deg,#f8fbff,#eaf3fd);border-color:#d6e5f5}.v7-stat__icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.95);box-shadow:0 4px 12px rgba(0,0,0,.04);font-size:20px}.v7-stat small,.v7-stat em{display:block;font-style:normal}.v7-stat small{font-size:10px;color:var(--v7-text-2)}.v7-stat strong{display:block;font-size:23px;font-weight:600;line-height:1.2;margin:3px 0}.v7-stat em{font-size:9px;color:var(--v7-muted)}.v7-stat>i{font-style:normal;color:var(--v7-text-2)}
.v7-bento{display:grid;gap:14px;margin-bottom:14px}.v7-bento--mid{grid-template-columns:1.2fr 1fr 1.05fr}.v7-bento--bottom{grid-template-columns:2fr 1fr}.v7-activity-card,.v7-occupancy-card,.v7-status-card{min-height:270px}.v7-timeline{padding:0 14px}.v7-timeline__item{display:grid;grid-template-columns:42px 34px 1fr 12px;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid var(--v7-line)}.v7-timeline__item time{font-size:9px;color:var(--v7-muted)}.v7-timeline__icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center}.v7-timeline__icon.is-green{background:var(--v7-green-soft);color:var(--v7-green)}.v7-timeline__icon.is-blue{background:var(--v7-blue-soft);color:var(--v7-blue)}.v7-timeline__icon.is-purple{background:var(--v7-purple-soft);color:var(--v7-purple)}.v7-timeline__item strong{font-size:10px}.v7-timeline__item p{margin:2px 0 0;color:var(--v7-muted);font-size:9px;line-height:1.35}
.v7-ring{--value:0;width:180px;height:180px;border-radius:50%;margin:4px auto 0;background:conic-gradient(var(--v7-gold) calc(var(--value)*1%),#f5ead1 0);display:grid;place-items:center;position:relative}.v7-ring:before{content:"";position:absolute;inset:18px;background:var(--v7-card);border-radius:50%}.v7-ring>div{position:relative;text-align:center}.v7-ring strong{display:block;font-size:28px;font-weight:500}.v7-ring span,.v7-ring small{display:block;color:var(--v7-muted);font-size:9px;margin-top:3px}.v7-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:9px 15px 0;border-top:1px solid var(--v7-line);padding-top:10px}.v7-mini-stats div{text-align:center;border-right:1px solid var(--v7-line)}.v7-mini-stats div:last-child{border:0}.v7-mini-stats strong{display:block;font-size:18px}.v7-mini-stats span{font-size:9px;color:var(--v7-muted)}
.v7-status-bars{display:grid;grid-template-columns:repeat(4,1fr);align-items:end;height:190px;padding:10px 18px 16px;gap:8px}.v7-status-bars>div{height:100%;display:grid;grid-template-rows:20px 1fr 20px 18px;align-items:end;text-align:center}.v7-status-bars span,.v7-status-bars small{font-size:8px;color:var(--v7-muted)}.v7-status-bars strong{font-size:10px}.v7-status-bar{height:var(--h);border-radius:9px 9px 2px 2px;min-height:12px}.v7-status-bar.is-blue{background:#f0b72c}.v7-status-bar.is-green{background:#75a77d}.v7-status-bar.is-amber{background:#eb6f69}.v7-status-bar.is-gray{background:#a9aeb1}
.v7-chart-card{padding-bottom:8px}.v7-legend{display:flex;gap:12px;font-size:9px}.v7-legend .is-amber{color:var(--v7-gold-2)}.v7-legend .is-teal{color:var(--v7-sidebar)}.v7-line-chart{width:100%;height:180px;padding:0 12px}.v7-line-chart line{stroke:var(--v7-line)}.v7-line-chart .v7-line{fill:none;stroke-width:2.5}.v7-line-chart .is-amber{stroke:var(--v7-gold)}.v7-line-chart .is-teal{stroke:var(--v7-sidebar)}.v7-line-chart text{font-size:9px;fill:var(--v7-muted)}.v7-channel-list{padding:0 15px 12px}.v7-channel-list>div{display:grid;grid-template-columns:28px 1fr auto 28px;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--v7-line)}.v7-channel-logo{width:25px;height:25px;border-radius:7px;display:grid;place-items:center;color:#fff;font-weight:800;background:#2e61b8}.v7-channel-logo.is-1{background:#e7687b}.v7-channel-logo.is-2{background:#46ac72}.v7-channel-logo.is-3{background:#f2bc24;color:#222}.v7-channel-list strong{font-size:10px}.v7-channel-list b{font-size:10px}.v7-connected{font-size:8px;background:#e8f5e8;color:#488559;padding:3px 6px;border-radius:6px}
.v7-toolbar{background:#fff;border:1px solid var(--v7-line);border-radius:14px;display:flex;align-items:center;gap:10px;padding:10px;margin-bottom:14px;box-shadow:var(--v7-card-shadow)}.v7-toolbar__group{display:flex;align-items:center;gap:6px}.v7-toolbar__group label{font-size:10px;color:var(--v7-muted)}input,select,textarea{border:1px solid var(--v7-line-2);background:#fff;border-radius:9px;min-height:38px;padding:7px 10px;color:var(--v7-text);outline:none}input:focus,select:focus,textarea:focus{border-color:#c8a34d;box-shadow:0 0 0 3px rgba(244,181,28,.12)}.v7-quick-days{display:flex;gap:4px}.v7-quick-days button,.v7-segment button,.v7-ci-tabs button,.v7-subtabs button{border:1px solid var(--v7-line);background:#fff;color:var(--v7-text-2);border-radius:9px;padding:8px 12px;font-size:10px}.v7-quick-days button.active,.v7-segment button.active,.v7-ci-tabs button.active,.v7-subtabs button.active{background:var(--v7-gold-soft);border-color:#f0cf79;color:#6c4a00}.v7-room-legend{display:flex;gap:10px;margin-left:auto;font-size:9px}.v7-room-legend span{display:flex;align-items:center;gap:4px}.v7-room-legend .is-available{color:#4e9e70}.v7-room-legend .is-occupied{color:#4d91dc}.v7-room-legend .is-dirty{color:#e0a22f}.v7-room-legend .is-ooo{color:#8a8f96}.v7-primary,.v7-gold,.v7-primary-sm,.v7-warning-sm,.v7-secondary{border:1px solid var(--v7-line);border-radius:9px;min-height:38px;padding:0 13px;font-size:10px;font-weight:700}.v7-primary{background:var(--v7-sidebar);border-color:var(--v7-sidebar);color:#fff}.v7-gold{background:#ffcb4c;border-color:#ffcb4c;color:#2b2518}.v7-secondary{background:#fff;color:var(--v7-text)}.v7-primary-sm{min-height:30px;background:var(--v7-sidebar);border-color:var(--v7-sidebar);color:#fff}.v7-warning-sm{min-height:30px;background:#ffca3f;border-color:#ffca3f;color:#443514}

.v7-segment-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.v7-segment{display:flex}.v7-segment button{border-radius:0;margin-left:-1px}.v7-segment button:first-child{border-radius:9px 0 0 9px;margin-left:0}.v7-segment button:last-child{border-radius:0 9px 9px 0}.v7-segment--right{margin-left:auto}.v7-segment b{display:inline-block;margin-left:4px}.v7-book-toolbar{padding:12px}.v7-search{display:flex;align-items:center;gap:7px;border:1px solid var(--v7-line-2);background:#fff;border-radius:9px;padding:0 10px;min-height:38px;min-width:240px}.v7-search input{border:0!important;box-shadow:none!important;padding:0;min-height:auto;width:100%}.v7-date-range{display:flex;align-items:center;gap:5px}.v7-select{min-width:150px}.v7-selection-summary:empty{display:none}.v7-selection-summary{padding:8px 12px;background:var(--v7-blue-soft);border:1px solid #d6e5f6;border-radius:9px;font-size:10px;margin-bottom:10px}.v7-table-card{background:#fff;border:1px solid var(--v7-line);border-radius:15px;overflow:auto;box-shadow:var(--v7-card-shadow)}.v7-table-wrap{overflow:auto}.v7-table{width:100%;border-collapse:separate;border-spacing:0;min-width:768px}.v7-table th{font-size:8px;text-transform:uppercase;color:var(--v7-muted);font-weight:600;background:#f7f4ef;padding:10px 9px;border-bottom:1px solid var(--v7-line);text-align:left;white-space:nowrap}.v7-table td{font-size:9px;padding:11px 9px;border-bottom:1px solid var(--v7-line);vertical-align:middle}.v7-table tr:last-child td{border-bottom:0}.v7-table tbody tr:hover{background:#fffdf8}.v7-table td small{display:block;color:var(--v7-muted);font-size:8px;margin-top:2px}.v7-book-id small{display:block;color:var(--v7-muted)}.v7-book-id strong{display:block;margin:2px 0}.v7-book-id span{color:var(--v7-muted);font-size:8px}.v7-guest-cell{display:flex;align-items:center;gap:7px}.v7-avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#e9eeec;color:var(--v7-sidebar);font-weight:800;flex:0 0 auto}.v7-status{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#f0f1f2;color:#626870;font-size:8px;white-space:nowrap}.v7-status.is-staying,.v7-status.is-occ,.v7-status.is-ci{background:#eaf6ea;color:#3e8055}.v7-status.is-booked,.v7-status.is-reserved{background:#eaf3fd;color:#3a74b6}.v7-status.is-checkout{background:#f0f0f0;color:#777}.v7-status.is-cancelled,.v7-status.is-noshow,.v7-status.is-over{background:#fff0ef;color:#bb504c}.v7-status.is-dirty,.v7-status.is-mdirty,.v7-status.is-cleaning{background:#fff4df;color:#a46b0d}.v7-status.is-inspected{background:#f2ecfb;color:#7650a7}.v7-due{color:#e2673e}.v7-paid{color:var(--v7-green)}.v7-note{border:0;background:transparent;padding:0;text-align:left;max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9px;color:var(--v7-text-2)}.v7-note.expanded{white-space:normal}.v7-row-actions{display:flex;gap:4px;white-space:nowrap}.v7-row-actions button{width:26px;height:26px;border:1px solid var(--v7-line);border-radius:7px;background:#fff;font-size:10px}.v7-row-actions .danger{color:var(--v7-red)}.pager{display:flex;align-items:center;justify-content:center;gap:5px;padding:12px}.pager-btn{border:1px solid var(--v7-line);background:#fff;border-radius:8px;min-width:28px;height:28px}.pager-btn.active{background:var(--v7-gold-soft);border-color:#efce78}.pager-info{font-size:9px;color:var(--v7-muted);margin-left:6px}.v7-history-foot{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:10px;font-size:9px;color:var(--v7-muted)}.v7-mobile-bookings{display:none}
.v7-ci-tabs{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:12px;border:1px solid var(--v7-line);border-radius:12px;overflow:hidden}.v7-ci-tabs button{border:0;border-radius:0;border-right:1px solid var(--v7-line);min-height:44px;background:#fff}.v7-ci-tabs button:last-child{border-right:0}.v7-ci-tabs button.active{background:#fff8e5;box-shadow:inset 0 -2px var(--v7-gold)}.v7-ci-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:14px}.v7-ci-search{width:100%;margin-bottom:10px}.v7-ci-list{display:grid;gap:9px}.v7-ci-card{background:#fff;border:1px solid var(--v7-line);border-radius:13px;padding:12px;display:grid;grid-template-columns:48px minmax(150px,1.4fr) 1fr 1fr auto auto;gap:12px;align-items:center;box-shadow:var(--v7-card-shadow)}.v7-ci-avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#e9efec;color:#0b5954;font-weight:800}.v7-ci-guest h3{margin:0 0 3px;font-size:12px}.v7-ci-guest strong,.v7-ci-guest span,.v7-ci-time small,.v7-ci-time span,.v7-ci-balance small,.v7-ci-balance span{display:block;font-size:8px;color:var(--v7-muted);margin-top:2px}.v7-ci-time strong,.v7-ci-balance strong{font-size:13px}.v7-ci-actions{display:grid;gap:5px}.v7-ci-actions button{min-width:82px;height:28px;border:1px solid var(--v7-line);border-radius:7px;background:#fff;font-size:9px}.v7-ci-summary{display:grid;gap:10px;align-content:start}.v7-ci-summary>h3{font-size:12px;margin:0 0 2px}.v7-ci-summary>button{border:1px solid var(--v7-line);border-radius:13px;padding:12px;background:#fff;display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:9px;text-align:left}.v7-ci-summary>button>span{width:36px;height:36px;border-radius:50%;display:grid;place-items:center}.v7-ci-summary .is-green{background:#f1f8f0}.v7-ci-summary .is-green>span{background:#e5f3e7;color:var(--v7-green)}.v7-ci-summary .is-amber{background:#fff8e9}.v7-ci-summary .is-amber>span{background:#fff0c7;color:#b57b12}.v7-ci-summary .is-purple{background:#f8f2fb}.v7-ci-summary .is-purple>span{background:#efe5f8;color:var(--v7-purple)}.v7-ci-summary .is-blue{background:#eff7ff}.v7-ci-summary .is-blue>span{background:#e4f0fb;color:var(--v7-blue)}.v7-ci-summary small{display:block;color:var(--v7-muted);font-size:8px}.v7-ci-summary strong{display:block;font-size:17px;margin-top:2px}
.v7-services-head{display:flex;gap:10px;align-items:center;margin-bottom:12px}.v7-services-head .v7-search{margin-left:auto}.v7-service-catalog{margin-bottom:12px}.v7-service-list{padding:0 14px 8px}.v7-service-item{display:grid;grid-template-columns:42px 1fr auto 28px;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--v7-line)}.v7-service-item:last-child{border-bottom:0}.v7-service-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#fff4dd;color:#c98b15}.v7-service-icon.is-transfer{background:#eef7ef;color:#569d6b}.v7-service-icon.is-food{background:#f5effb;color:#8b5dc4}.v7-service-icon.is-other{background:#eef5fd;color:#4d8ad0}.v7-service-item strong{font-size:10px}.v7-service-item small{display:block;color:var(--v7-muted);font-size:8px;margin-top:3px}.v7-service-item>b{font-size:10px}.v7-service-item>button{border:0;background:transparent}
.v7-guests-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:14px}.v7-guest-toolbar{padding:12px;margin-bottom:12px}.v7-guest-toolbar>.v7-search{margin:10px 0 0}.v7-guest-toolbar>.v7-primary{float:right;margin-top:-38px}.v7-guest-directory .v7-table{min-width:820px}.v7-guest-cell>div strong{display:block}.v7-guest-cell>div small{display:block;color:var(--v7-muted);font-size:8px}.v7-crm-aside{display:grid;gap:12px;align-content:start}.v7-insight-list,.v7-key-list{padding:0 14px 13px}.v7-insight-list>div{position:relative;display:grid;grid-template-columns:1fr auto;gap:4px;padding:8px 0 12px}.v7-insight-list span,.v7-key-list span{font-size:9px}.v7-insight-list strong,.v7-key-list strong{font-size:9px}.v7-insight-list i{position:absolute;left:0;bottom:5px;width:var(--w);height:3px;background:var(--v7-purple);border-radius:3px}.v7-donut{width:120px;height:120px;border-radius:50%;margin:2px auto 10px;background:conic-gradient(var(--v7-purple) 0 calc(var(--a)*1%),var(--v7-gold) 0 calc((var(--a) + var(--b))*1%),var(--v7-green) 0 72%,var(--v7-blue) 0 88%,#d8dadd 0);display:grid;place-items:center;position:relative}.v7-donut:before{content:"";position:absolute;inset:25px;background:#fff;border-radius:50%}.v7-donut strong,.v7-donut span{position:absolute}.v7-donut strong{font-size:18px;transform:translateY(-6px)}.v7-donut span{font-size:8px;color:var(--v7-muted);transform:translateY(10px)}.v7-key-list>div{display:grid;grid-template-columns:8px 1fr auto;gap:7px;align-items:center;padding:4px 0}.v7-key-list i{width:6px;height:6px;border-radius:50%;background:var(--v7-purple)}.v7-key-list i.is-1{background:var(--v7-gold)}.v7-key-list i.is-2{background:var(--v7-green)}.v7-key-list i.is-3{background:var(--v7-blue)}.v7-key-list i.is-4{background:#8b9299}
.v7-finance-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}.v7-finance-kpis article{min-height:115px;border-radius:14px;padding:15px;display:flex;gap:12px;align-items:center;border:1px solid var(--v7-line)}.v7-finance-kpis article>span{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.75);font-size:18px}.v7-finance-kpis small,.v7-finance-kpis em{display:block;font-style:normal}.v7-finance-kpis small{font-size:9px}.v7-finance-kpis strong{font-size:19px;display:block;margin:4px 0}.v7-finance-kpis em{font-size:8px;color:var(--v7-muted)}.v7-finance-kpis .is-amber{background:#fff8e8}.v7-finance-kpis .is-green{background:#f0f8ef}.v7-finance-kpis .is-purple{background:#f7f1fa}.v7-finance-kpis .is-blue{background:#eef6fe}.v7-subtabs{display:flex;gap:5px;margin-bottom:12px}.v7-revenue-grid{display:grid;grid-template-columns:1.7fr .95fr 1.1fr;gap:12px;margin-bottom:12px}.v7-revenue-line{width:100%;height:230px;padding:0 12px 10px}.v7-revenue-line line{stroke:var(--v7-line)}.v7-revenue-line polygon{fill:rgba(244,181,28,.10)}.v7-revenue-line polyline{fill:none;stroke:var(--v7-gold);stroke-width:2.5}.v7-revenue-line circle{fill:var(--v7-gold);stroke:#fff;stroke-width:2}.v7-donut.revenue{width:150px;height:150px}.v7-progress-list{padding:4px 16px 14px}.v7-progress-list>div{margin-bottom:12px}.v7-progress-list>div>div{display:flex;justify-content:space-between;font-size:9px}.v7-progress-list i{display:block;height:5px;background:#f0ede7;border-radius:5px;margin-top:5px;overflow:hidden}.v7-progress-list b{display:block;width:var(--w);height:100%;background:var(--v7-gold)}.v7-progress-list b.is-1{background:var(--v7-green)}.v7-progress-list b.is-2{background:var(--v7-purple)}.v7-progress-list b.is-3{background:var(--v7-blue)}.v7-progress-list b.is-4{background:#9aa0a5}.v7-revenue-bottom{display:grid;grid-template-columns:1fr 1.7fr;gap:12px}.v7-metric-quads{display:grid;grid-template-columns:1fr 1fr}.v7-metric-quads>div{padding:18px;display:flex;gap:10px;border-right:1px solid var(--v7-line);border-bottom:1px solid var(--v7-line)}.v7-metric-quads>div:nth-child(even){border-right:0}.v7-metric-quads>div:nth-child(n+3){border-bottom:0}.v7-metric-quads>div>span{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#eef7ef;color:var(--v7-green)}.v7-metric-quads .is-blue{background:#edf5fd;color:var(--v7-blue)}.v7-metric-quads .is-purple{background:#f4eefb;color:var(--v7-purple)}.v7-metric-quads p{margin:0;font-size:9px}.v7-metric-quads strong{display:block;font-size:14px;margin:4px 0}.v7-metric-quads small{font-size:8px;color:var(--v7-muted)}.v7-expense-list{padding:0 16px 12px}.v7-expense-list>div{display:grid;grid-template-columns:1fr auto 45px;gap:10px;padding:6px 0;border-bottom:1px solid var(--v7-line);font-size:9px}.v7-expense-list footer{display:flex;justify-content:space-between;padding:11px 0 2px;font-size:10px;font-weight:700}
.v7-settings-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}.v7-setting-card{padding:14px;display:flex;flex-direction:column}.v7-setting-card>header{display:flex;gap:9px;align-items:flex-start;margin-bottom:12px}.v7-setting-card>header>span{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#fff4df;color:#c78a16}.v7-setting-card>header>span.is-green{background:#edf7ee;color:var(--v7-green)}.v7-setting-card>header>span.is-purple{background:#f4edfb;color:var(--v7-purple)}.v7-setting-card>header>span.is-blue{background:#eef6fd;color:var(--v7-blue)}.v7-setting-card h3{font-size:11px;margin:0}.v7-setting-card p{font-size:8px;color:var(--v7-muted);margin:3px 0 0}.v7-setting-fields{display:grid;gap:8px}.v7-setting-fields label{font-size:8px;color:var(--v7-text-2)}.v7-setting-fields input{display:block;width:100%;margin-top:4px}.v7-setting-card footer{margin-top:auto;padding-top:12px;text-align:right}.v7-system-lines>div{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--v7-line);font-size:8px}.v7-system-lines>div span{color:var(--v7-muted)}.v7-settings-lower{display:grid;grid-template-columns:1.3fr 1fr;gap:12px;margin-bottom:12px}.v7-setting-actions{padding:0 14px 14px;display:grid;gap:8px}.v7-setting-actions button,.v7-setting-actions label{border:1px solid var(--v7-line);background:#fff;border-radius:9px;min-height:36px;padding:8px 10px;text-align:left;font-size:9px}.v7-setting-actions input{display:block;margin-top:7px;width:100%}.v7-audit-card{padding-bottom:14px}.v7-audit-card>p{padding:0 17px;color:var(--v7-muted);font-size:9px}
.v7-empty{padding:25px;text-align:center;color:var(--v7-muted);font-size:10px}.v7-enter{animation:v7Enter .38s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--v7-delay,0ms)}@keyframes v7Enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* Legacy operations, report and modal components normalized into this design system */
.ops-hero,.ops-kpis,.hk-kanban,.shift-flow,.ooo-list{font-family:inherit}.ops-hero{background:#fff;border:1px solid var(--v7-line);border-radius:15px;padding:14px;display:flex;justify-content:space-between;gap:20px;margin-bottom:12px}.ops-hero h2{font-size:15px;margin:3px 0}.ops-hero p{font-size:9px;color:var(--v7-muted);margin:0}.ops-hero-eyebrow{font-size:8px;color:var(--v7-muted);letter-spacing:.08em}.ops-tabs{display:flex;gap:5px}.btab,.tab,.fpill,.dq{border:1px solid var(--v7-line)!important;background:#fff!important;color:var(--v7-text-2)!important;border-radius:9px!important;padding:8px 10px!important}.btab.active,.tab.active,.fpill.active,.dq.active{background:var(--v7-gold-soft)!important;border-color:#efce78!important;color:#6c4a00!important}.ops-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}.ops-kpi{background:#fff;border:1px solid var(--v7-line);border-radius:12px;padding:12px}.ops-kpi strong{font-size:18px}.ops-kpi span{display:block;font-size:8px;color:var(--v7-muted)}.hk-kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.hk-kanban-col{background:#f8f6f1;border:1px solid var(--v7-line);border-radius:12px;padding:10px}.hk-kanban-head{display:flex;justify-content:space-between;font-size:9px;font-weight:700;margin-bottom:8px}.hk-kanban-title{display:flex;align-items:center;gap:6px}.hk-kanban-dot{width:6px;height:6px;border-radius:50%}.hk-card{background:#fff;border:1px solid var(--v7-line);border-radius:10px;padding:10px;margin-bottom:8px}.hk-card-head{display:flex;justify-content:space-between}.hk-card-head strong{font-size:14px}.hk-card-head span,.hk-meta,.hk-progress{font-size:8px;color:var(--v7-muted)}.hk-actions{display:flex;gap:5px;margin-top:8px}.ops-empty{font-size:8px;color:var(--v7-muted);padding:12px}.btn{border:1px solid var(--v7-line);background:#fff;color:var(--v7-text);border-radius:9px;min-height:36px;padding:0 12px;font-weight:600}.btn.sm{min-height:28px;padding:0 8px;font-size:9px}.btn.primary{background:var(--v7-sidebar);border-color:var(--v7-sidebar);color:#fff}.btn.success{background:var(--v7-green);border-color:var(--v7-green);color:#fff}.btn.danger{background:#fff;color:var(--v7-red);border-color:#f0c9c7}.ab{border:1px solid var(--v7-line);background:#fff;border-radius:7px}.tw,.setting-card,.dash-section,.rooms-toolbar{background:#fff;border:1px solid var(--v7-line);border-radius:14px;box-shadow:var(--v7-card-shadow)}.th-row,.ds-head,.setting-title{padding:12px 14px;border-bottom:1px solid var(--v7-line);background:#fff}.badge,.r-state,.r-src,.r-nights,.r-mbadge,.r-fin-badge{border-radius:999px}.alert{padding:12px;border-radius:10px;border:1px solid var(--v7-line);background:#fff}.alert.err{background:var(--v7-red-soft);color:var(--v7-red)}
.ov{position:fixed;inset:0;background:rgba(25,31,40,.34);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;padding:18px;z-index:1000}.ov.show{display:flex}.modal{background:#fffdf9;border:1px solid var(--v7-line);border-radius:18px;box-shadow:0 26px 70px rgba(20,29,42,.22);max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:hidden;display:flex;flex-direction:column}.mh{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--v7-line)}.mt{font-size:14px;font-weight:700}.mc{width:30px;height:30px;border-radius:50%;border:1px solid var(--v7-line);background:#fff}.mb{padding:16px 18px;overflow:auto}.mf{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--v7-line);background:#fffdf9}.fr{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.fr.one{grid-template-columns:1fr}.fg{display:flex;flex-direction:column;gap:5px}.fg label{font-size:9px;color:var(--v7-text-2);font-weight:600}.inv-box{border:1px solid var(--v7-line);border-radius:11px;background:#fff;padding:10px}.inv-r{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:9px}.inv-r.tot{font-weight:800}.chip-room{border:1px solid var(--v7-line);border-radius:8px;background:#fff;padding:7px 9px}.chip-room.avail{background:#eff8ef}.chip-room.sel{background:var(--v7-sidebar);color:#fff}.pin-box{background:#fffdf9!important;border-radius:18px!important;box-shadow:0 24px 60px rgba(20,29,42,.2)!important}.book-column-panel{position:fixed;right:20px;top:100px;width:300px;background:#fff;border:1px solid var(--v7-line);border-radius:14px;box-shadow:var(--v7-shadow);display:none;z-index:1200}.book-column-panel.show{display:block}.book-column-panel-head,.book-column-panel-foot{padding:12px;border-bottom:1px solid var(--v7-line)}.book-column-panel-foot{border-bottom:0;border-top:1px solid var(--v7-line)}.book-column-options{padding:10px;max-height:420px;overflow:auto}.book-column-group-title{font-size:9px;color:var(--v7-muted);margin:8px 0}.book-column-option{display:flex;gap:7px;align-items:center;font-size:9px;padding:5px}.book-column-option small{margin-left:auto;color:var(--v7-muted)}
@media(max-width:1250px){.shell{width:calc(100vw - 20px);height:calc(100vh - 20px);margin:10px auto}.v7-settings-grid{grid-template-columns:repeat(2,1fr)}.v7-bento--mid{grid-template-columns:1fr 1fr}.v7-status-card{grid-column:1/-1}.v7-revenue-grid{grid-template-columns:1.5fr 1fr}.v7-revenue-grid>article:last-child{grid-column:1/-1}.v7-stat strong{font-size:19px}}
@media(max-width:768px){body{background:var(--v7-canvas)}.shell{display:block;width:100%;height:100dvh;min-height:0;margin:0;border-radius:0;box-shadow:none}.sb{position:fixed;left:0;right:0;bottom:0;z-index:900;height:auto;padding:8px;background:var(--v7-sidebar);display:block}.v7-brand,.v7-side-search,.v7-quick,.v7-calendar,.v7-user{display:none}.sb-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.ni{justify-content:center;flex-direction:column;gap:2px;padding:6px 3px;border-radius:8px;font-size:8px}.main{border-radius:0;min-height:100vh}.topbar{padding:18px 16px 12px}.con{padding:0 14px 120px;overflow-y:auto;overflow-x:hidden}.v7-dock{display:none}.v7-page-title{font-size:26px}.v7-stat-grid{grid-template-columns:1fr 1fr}.v7-bento--mid,.v7-bento--bottom,.v7-guests-layout,.v7-ci-layout,.v7-settings-lower,.v7-revenue-bottom{grid-template-columns:1fr}.v7-revenue-grid{grid-template-columns:1fr}.v7-floor{grid-template-columns:1fr}.v7-floor>header{display:flex;justify-content:space-between}.v7-room-toolbar,.v7-services-head,.v7-book-toolbar,.v7-segment-row{flex-wrap:wrap}.v7-room-legend{margin-left:0;flex-wrap:wrap}.v7-segment--right{margin-left:0}.v7-search{min-width:0;flex:1}.v7-table-card.booking-desktop-table{display:none}.v7-mobile-bookings{display:grid;gap:10px}.v7-book-card{background:#fff;border:1px solid var(--v7-line);border-radius:13px;padding:12px}.v7-book-card header{display:flex;justify-content:space-between;gap:10px}.v7-book-card h3{font-size:13px;margin:3px 0}.v7-book-card header small,.v7-book-card header span{font-size:8px;color:var(--v7-muted)}.v7-book-card__stay,.v7-book-card__money{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;margin-top:10px}.v7-book-card__money{grid-template-columns:repeat(4,1fr)}.v7-book-card__money div,.v7-book-card__stay div{background:#f8f6f1;border-radius:8px;padding:8px}.v7-book-card__money small,.v7-book-card__stay small{font-size:7px;color:var(--v7-muted);display:block}.v7-book-card__money strong,.v7-book-card__stay strong{font-size:10px}.v7-book-card__stay span{font-size:8px;color:var(--v7-muted)}.v7-book-card__note{font-size:9px;color:var(--v7-text-2);background:#fff9e8;padding:8px;border-radius:8px}.v7-book-card footer{display:flex;gap:5px;flex-wrap:wrap}.v7-book-card footer button{height:30px;border:1px solid var(--v7-line);border-radius:7px;background:#fff;font-size:8px}.v7-ci-card{grid-template-columns:42px 1fr auto}.v7-ci-time,.v7-ci-balance,.v7-ci-state{display:none}.v7-ci-actions{grid-column:1/-1;display:flex}.v7-ci-summary{grid-template-columns:1fr 1fr}.v7-crm-aside{grid-template-columns:1fr 1fr}.v7-finance-kpis{grid-template-columns:1fr 1fr}.v7-settings-grid{grid-template-columns:1fr}.hk-kanban{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.hk-kanban-col{min-width:82%;scroll-snap-align:start}.fr{grid-template-columns:1fr}}
@media(max-width:520px){.v7-stat-grid{grid-template-columns:1fr}.v7-bento--mid{grid-template-columns:1fr}.v7-crm-aside{grid-template-columns:1fr}.v7-finance-kpis{grid-template-columns:1fr}.v7-ci-summary{grid-template-columns:1fr}.v7-services-head .v7-segment{overflow:auto;width:100%}.v7-page-title{font-size:23px}.v7-top-actions button{width:34px;height:34px}.sb-nav{grid-template-columns:repeat(5,1fr)}.ni:nth-child(n+6){display:flex}.v7-book-card__money{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Booking wizard — redesigned as the reference 3-step reservation flow */
#ov-book{align-items:stretch;justify-content:flex-end;padding:14px}#ov-book .booking-stepper-modal{width:min(1080px,calc(100vw - 28px));height:calc(100vh - 28px);margin-left:auto;border-radius:22px}#ov-book .mh{padding:16px 22px}#ov-book .mb{padding:18px 22px 110px}.book-stepper{display:grid;grid-template-columns:1fr 70px 1fr 70px 1fr;align-items:center;margin-bottom:18px}.book-step-indicator{display:flex;align-items:center;gap:11px;border:1px solid var(--v7-line);border-radius:14px;padding:12px 14px;background:#fff;min-height:66px}.book-step-indicator.active{background:#fff9e8;border-color:#f0cb70}.book-step-indicator.done{background:#f2f8f0;border-color:#d8e8d2}.book-step-num{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#efede8;font-weight:700;font-size:12px}.book-step-indicator.active .book-step-num{background:var(--v7-gold);color:#342710}.book-step-indicator.done .book-step-num{background:var(--v7-green);color:#fff}.book-step-copy strong{display:block;font-size:10px}.book-step-copy small{display:block;font-size:8px;color:var(--v7-muted);margin-top:3px}.book-step-line{height:1px;background:var(--v7-line-2);position:relative}.book-step-line:after{content:"";position:absolute;right:-2px;top:-2px;width:5px;height:5px;border-radius:50%;background:var(--v7-line-2)}.book-step-error{display:none;background:var(--v7-red-soft);color:var(--v7-red);border:1px solid #f0c9c7;border-radius:9px;padding:8px 10px;font-size:9px;margin-bottom:10px}.book-step-panel{display:grid;grid-template-columns:1fr;gap:12px}.book-step-panel[hidden]{display:none}.book-section{border:1px solid var(--v7-line);border-radius:14px;background:#fff;padding:14px}.book-section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--v7-line)}.book-section-title span:first-child{font-size:11px;font-weight:700}.book-section-help{font-size:8px;color:var(--v7-muted)}.book-step-review{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.book-step-review>div{background:#f8f6f1;border:1px solid var(--v7-line);border-radius:10px;padding:10px}.book-step-review span{display:block;font-size:8px;color:var(--v7-muted)}.book-step-review strong{display:block;font-size:10px;margin-top:4px}.book-step-fin-intro{display:flex;gap:10px;align-items:flex-start;background:#f1f8ef;border:1px solid #d5e8d1;padding:11px 12px;border-radius:11px;font-size:9px;color:var(--v7-text-2);margin-bottom:12px}.book-step-fin-intro>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--v7-green);color:#fff}.booking-sticky-summary{position:absolute;left:22px;right:22px;bottom:62px;background:#fff8e4;border:1px solid #f0d285;border-radius:12px;display:grid;grid-template-columns:1.5fr repeat(3,1fr);box-shadow:0 10px 25px rgba(62,52,28,.08);z-index:3}.booking-sticky-summary>div{padding:9px 12px;border-right:1px solid #efdba6}.booking-sticky-summary>div:last-child{border-right:0}.booking-sticky-summary small{display:block;font-size:7px;color:#8c7845}.booking-sticky-summary strong{display:block;font-size:10px;margin-top:3px}.booking-sticky-summary.is-paid{background:#eff8ef;border-color:#d5e8d1}.rrow{display:grid;grid-template-columns:1.1fr 90px 1fr 90px auto;gap:8px;align-items:end;border:1px solid var(--v7-line);background:#faf8f3;padding:10px;border-radius:10px;margin-bottom:8px}.rr-type,.rr-qty,.rr-price,.rr-guests{width:100%}.draft-banner,.v67-add-room-wrap,.v67-group-info,.v67-add-room-preview,.v67-add-room-warning{border-radius:10px}.v67-add-room-wrap{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#eff8ef;border:1px solid #d5e8d1;padding:10px;margin-bottom:9px}.v67-add-room-wrap strong{font-size:10px}.v67-add-room-wrap div div{font-size:8px;color:var(--v7-muted);margin-top:2px}.v510-calc-hint,.v510-guest-note,.v511-extra-help{font-size:8px!important;color:var(--v7-muted)!important}.v511-name-head{display:flex;align-items:center;justify-content:space-between}.v511-add-guest{min-width:28px}.v511-excess-val{color:var(--v7-gold-2);font-weight:700}
/* Common modal-specific cleanups */
#ov-payment .modal,#ov-mpay .modal,#ov-refund .modal,#ov-adjust .modal,#ov-extend .modal,#ov-svc .modal,#ov-add-group-room .modal{width:min(520px,calc(100vw - 24px))!important}.v67-add-room-modal{width:min(640px,calc(100vw - 24px))!important}.v67-group-info{background:#f8f6f1;border:1px solid var(--v7-line);padding:10px;margin-bottom:10px}.v67-add-room-preview{background:#fff8e6;border:1px solid #f0d284;padding:10px;margin-top:8px}.v67-add-room-warning{background:#f5f3ee;border:1px solid var(--v7-line);padding:9px;color:var(--v7-muted);font-size:8px;margin-top:8px}
@media(max-width:768px){#ov-book{padding:0}#ov-book .booking-stepper-modal{width:100%;height:100dvh;max-width:none;max-height:none;border-radius:0}#ov-book .mb{padding:14px 14px 125px}.book-stepper{grid-template-columns:1fr 22px 1fr 22px 1fr}.book-step-indicator{padding:8px;min-height:56px}.book-step-copy small{display:none}.book-step-num{width:28px;height:28px}.book-step-review{grid-template-columns:1fr 1fr}.booking-sticky-summary{left:10px;right:10px;bottom:64px;grid-template-columns:1fr 1fr}.booking-sticky-summary>div{border-bottom:1px solid #efdba6}.rrow{grid-template-columns:1fr 72px;}.rrow>*:nth-child(n+3){grid-column:span 1}}
.v7-legacy-status{font-size:8px;color:rgba(255,255,255,.55);white-space:pre-line;padding:2px 9px 0;max-height:28px;overflow:hidden}.v7-runtime-status,.v7-runtime-role,#btn-logout{display:none!important}
/* Command center */
.v5-command-backdrop{position:fixed;inset:0;background:rgba(19,29,38,.34);backdrop-filter:blur(6px);display:none;align-items:flex-start;justify-content:center;padding-top:11vh;z-index:1500}.v5-command-backdrop.show{display:flex}.v5-command{width:min(680px,calc(100vw - 24px));background:#fffdf9;border:1px solid var(--v7-line);border-radius:17px;box-shadow:0 26px 70px rgba(22,30,40,.25);overflow:hidden}.v5-command-head{display:grid;grid-template-columns:28px 1fr 32px;align-items:center;gap:7px;padding:11px 13px;border-bottom:1px solid var(--v7-line)}.v5-command-head input{border:0!important;box-shadow:none!important;font-size:13px}.v5-command-close{width:30px;height:30px;border:1px solid var(--v7-line);background:#fff;border-radius:50%}.v5-command-body{max-height:52vh;overflow:auto;padding:8px}.v5-command-label{font-size:8px;color:var(--v7-muted);padding:8px 9px 4px;text-transform:uppercase;letter-spacing:.08em}.v5-command-item{width:100%;display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center;text-align:left;border:0;background:transparent;border-radius:10px;padding:8px}.v5-command-item:hover,.v5-command-item.active{background:#fff7df}.v5-command-item .ci{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#f2f0eb}.v5-command-item .ct{display:block;font-size:10px;font-weight:700}.v5-command-item .cs{display:block;font-size:8px;color:var(--v7-muted);margin-top:2px}.v5-command-item .key{font-size:8px;color:var(--v7-muted)}.v5-command-foot{display:flex;gap:14px;padding:9px 12px;border-top:1px solid var(--v7-line);font-size:8px;color:var(--v7-muted)}.v5-command-foot kbd{background:#f3f0ea;border:1px solid var(--v7-line);border-radius:5px;padding:2px 4px}.v5-command-empty{padding:22px;text-align:center;color:var(--v7-muted);font-size:9px}

/* =====================================================================
   V7.1 FIXED CORE — AUTH GATE + DESKTOP OVERFLOW HARDENING
   ===================================================================== */
body.auth-locked{overflow:hidden!important}
body.auth-locked .shell{visibility:hidden!important;pointer-events:none!important;user-select:none!important}
#pin-lock{position:fixed!important;inset:0!important;z-index:10000!important;display:none!important;place-items:center!important;padding:24px!important;overflow:auto!important;background:radial-gradient(circle at 74% 22%,rgba(244,181,28,.18),transparent 28%),linear-gradient(135deg,#0a4b49 0%,#0c5b57 42%,#083f3c 100%)!important}
#pin-lock.show{display:grid!important}
#pin-lock:not(.show){display:none!important}
#pin-lock::before{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.10);border-radius:30px;pointer-events:none}
#pin-lock .v6-login-box{position:relative!important;width:min(440px,calc(100vw - 32px))!important;margin:0!important;padding:36px 34px 30px!important;border-radius:24px!important;border:1px solid rgba(255,255,255,.88)!important;background:#fffdf8!important;box-shadow:0 30px 90px rgba(3,27,28,.34)!important;color:var(--v7-text)!important}
#pin-lock .v6-login-box::before{content:"H";display:grid;place-items:center;width:66px;height:66px;margin:0 auto 14px;border:2px solid #c79b37;outline:1px solid rgba(199,155,55,.38);outline-offset:-7px;border-radius:50%;color:#b88824;font:500 32px/1 Georgia,serif}
#pin-lock .pin-brand{text-align:center!important;font:500 28px/1.1 Georgia,serif!important;letter-spacing:.18em!important;color:#0c5653!important}
#pin-lock .pin-sub{text-align:center!important;margin:7px 0 26px!important;color:var(--v7-muted)!important;font-size:11px!important}
#pin-lock #v6-login-form{display:grid!important;gap:8px!important}
#pin-lock .v6-login-label{display:block!important;margin-top:4px!important;font-size:10px!important;font-weight:700!important;color:var(--v7-text-2)!important}
#pin-lock input{width:100%!important;min-height:46px!important;border:1px solid #dcd6cc!important;border-radius:11px!important;background:#fff!important;padding:0 13px!important;color:var(--v7-text)!important;box-shadow:none!important}
#pin-lock input:focus{border-color:#c8a34d!important;box-shadow:0 0 0 4px rgba(244,181,28,.12)!important}
#pin-lock #v6-login-btn{min-height:46px!important;margin-top:10px!important;border:0!important;border-radius:11px!important;background:#0c5653!important;color:#fff!important;font-weight:800!important;box-shadow:0 10px 20px rgba(12,86,83,.16)!important}
#pin-lock #v6-login-btn:hover{background:#084743!important;transform:translateY(-1px)}
#pin-lock #v6-login-btn:disabled{opacity:.65;cursor:wait;transform:none}
#pin-lock .v6-reset-link{display:block!important;margin:12px auto 0!important;padding:5px 8px!important;border:0!important;background:transparent!important;color:#0c5653!important;font-size:10px!important;font-weight:700!important}
#pin-lock .v6-login-error{min-height:0!important;margin-top:8px!important;border-radius:9px!important;color:#b84e49!important;font-size:10px!important;line-height:1.45!important;text-align:center!important}
#pin-lock .v6-login-error:not(:empty){padding:9px 10px!important;background:#fff0ef!important;border:1px solid #f0c9c7!important}
#pin-lock .v6-login-note{margin-top:16px!important;padding-top:14px!important;border-top:1px solid var(--v7-line)!important;color:var(--v7-muted)!important;font-size:9px!important;line-height:1.55!important;text-align:center!important}
html,body{width:100%;height:100%;overflow:hidden}
.shell{max-width:calc(100vw - 36px);max-height:calc(100vh - 28px)}
.main,.con,#con,.v7-room-page,.v7-floor-stack,.v7-floor,.v7-room-grid{min-width:0;max-width:100%}
.con{overflow-y:auto!important;overflow-x:hidden!important;scrollbar-gutter:stable}
@media (min-width:769px){
  .sb{overflow:hidden!important}
  .sb-nav{flex:0 0 auto!important;overflow:visible!important;min-height:auto!important;gap:3px!important}
  .ni{padding:8px 10px!important;min-height:36px!important}
  .v7-quick{padding-top:0!important;padding-bottom:0!important}
  .v7-calendar{margin-top:auto!important}
}
@media (min-width:769px) and (max-height:820px){.v7-calendar{display:none!important}.v7-quick{margin-top:auto!important}}
.v7-room-toolbar{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:8px!important;width:100%!important;overflow:hidden!important}
.v7-room-toolbar>*{min-width:0!important;max-width:100%}
.v7-room-toolbar>.v7-select{flex:0 0 132px!important;min-width:132px!important}
.v7-room-toolbar>.v7-search{flex:1 1 260px!important;min-width:220px!important;max-width:520px!important}
.v7-room-toolbar>.v7-toolbar__group{flex:0 1 auto!important}
.v7-room-toolbar>.v7-quick-days{flex:1 1 430px!important;min-width:0!important;max-width:100%!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:thin;padding-bottom:2px}
.v7-room-toolbar>.v7-quick-days button{flex:0 0 auto!important;white-space:nowrap!important}
.v7-room-toolbar>.v7-room-legend{flex:1 1 320px!important;margin-left:0!important;min-width:0!important;flex-wrap:wrap!important}
.v7-room-toolbar>.v7-secondary{flex:0 0 auto!important}
.v7-floor{grid-template-columns:78px minmax(0,1fr)!important;overflow:hidden!important}


@media(max-width:1250px) and (min-width:769px){
  .shell{width:calc(100vw - 20px)!important;height:calc(100vh - 20px)!important;margin:10px auto!important}

  .v7-room-toolbar>.v7-quick-days{flex-basis:100%!important;order:5}
  .v7-room-toolbar>.v7-room-legend{order:6}
  .v7-room-toolbar>.v7-secondary{order:7}
}
@media(max-width:768px){
  body.auth-locked .shell{display:none!important}
  #pin-lock{padding:14px!important}
  #pin-lock .v6-login-box{padding:28px 20px 24px!important;border-radius:20px!important}

  .v7-floor{grid-template-columns:1fr!important}
  .v7-room-toolbar>.v7-select,.v7-room-toolbar>.v7-search,.v7-room-toolbar>.v7-toolbar__group,.v7-room-toolbar>.v7-quick-days,.v7-room-toolbar>.v7-room-legend{flex:1 1 100%!important;max-width:none!important}
}

/* =====================================================================
   V7.2 — RESPONSIVE MODALS + BOOKING EDIT 1->N UX
   ===================================================================== */
/* Booking modal: summary participates in layout; never overlaps footer/content */
#ov-book{padding:12px!important;align-items:center!important;justify-content:center!important}
#ov-book .booking-stepper-modal{
  width:min(1160px,calc(100vw - 24px))!important;
  height:min(860px,calc(100dvh - 24px))!important;
  max-height:calc(100dvh - 24px)!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto auto!important;
  overflow:hidden!important;
  margin:0!important;
  border-radius:20px!important;
}
#ov-book .mh{min-height:54px!important;padding:12px 18px!important}
#ov-book .mb{min-height:0!important;overflow:auto!important;padding:14px 18px 12px!important;scrollbar-gutter:stable}
#ov-book .mf{position:relative!important;z-index:4!important;min-height:56px!important;padding:10px 18px!important;background:#fffdf9!important}
#ov-book .booking-sticky-summary{
  position:static!important;left:auto!important;right:auto!important;bottom:auto!important;
  margin:0 18px 8px!important;z-index:2!important;
  flex:0 0 auto!important;
}
#ov-book #room-rows .rrow{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(180px,1.5fr) 80px 110px minmax(140px,1.15fr) 38px!important;
  gap:8px!important;align-items:end!important;
}
#ov-book #room-rows .rr-avail{grid-column:1/-1!important;min-width:0!important;white-space:normal!important}
#ov-book #assign-room-wrap,#ov-book #assign-multi-wrap{max-width:100%!important}
#ov-book .book-section{overflow:hidden!important}
#ov-book .fr>*{min-width:0!important}
#ov-book input,#ov-book select,#ov-book textarea{max-width:100%!important}

/* Check-in V2: restore the intended 3-column desktop layout */
#ov-checkin-v2{padding:12px!important;align-items:center!important;justify-content:center!important}
#ov-checkin-v2 .ci2-modal{
  width:min(1180px,calc(100vw - 24px))!important;
  height:min(820px,calc(100dvh - 24px))!important;
  max-height:calc(100dvh - 24px)!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto auto!important;
  overflow:hidden!important;
  border-radius:20px!important;
}
#ov-checkin-v2 .mh{min-height:54px!important;padding:12px 18px!important}
#ov-checkin-v2 .ci2-body{
  min-height:0!important;overflow:auto!important;scrollbar-gutter:stable;
  padding:14px 16px!important;
  display:grid!important;grid-template-columns:1fr 1.05fr .95fr!important;gap:12px!important;
  align-items:start!important;
}
#ov-checkin-v2 .ci2-col{
  min-width:0!important;background:#fff!important;border:1px solid var(--v7-line)!important;
  border-radius:14px!important;padding:12px!important;
}
#ov-checkin-v2 .ci2-col-head{
  display:flex!important;align-items:center!important;min-height:28px!important;
  margin:0 0 9px!important;padding-bottom:8px!important;border-bottom:1px solid var(--v7-line)!important;
  font-size:11px!important;font-weight:800!important;color:var(--v7-text)!important;
}
#ov-checkin-v2 .fg{margin-bottom:8px!important;gap:4px!important}
#ov-checkin-v2 .fg label{font-size:9px!important;color:var(--v7-text-2)!important}
#ov-checkin-v2 input,#ov-checkin-v2 select,#ov-checkin-v2 textarea{width:100%!important;min-width:0!important;min-height:38px!important;font-size:11px!important}
#ov-checkin-v2 textarea{min-height:64px!important;resize:vertical!important}
#ov-checkin-v2 .ci2-info-grid{display:grid!important;gap:0!important;border:1px solid var(--v7-line)!important;border-radius:10px!important;overflow:hidden!important;background:#faf8f3!important}
#ov-checkin-v2 .ci2-ig-row{display:grid!important;grid-template-columns:minmax(90px,.9fr) minmax(0,1.1fr)!important;gap:8px!important;align-items:center!important;padding:7px 9px!important;border-bottom:1px solid var(--v7-line)!important;font-size:9px!important}
#ov-checkin-v2 .ci2-ig-row:last-child{border-bottom:0!important}
#ov-checkin-v2 .ci2-ig-row span{color:var(--v7-muted)!important}
#ov-checkin-v2 .ci2-ig-row strong{min-width:0!important;text-align:right!important;font-size:10px!important;overflow-wrap:anywhere!important}
#ov-checkin-v2 .ci2-fin-box{border:1px solid #eadfbf!important;background:#fff9e8!important;border-radius:11px!important;padding:9px 10px!important}
#ov-checkin-v2 .ci2-fin-row{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px!important;padding:5px 0!important;font-size:9px!important;line-height:1.35!important}
#ov-checkin-v2 .ci2-fin-row span:last-child{font-weight:700!important;text-align:right!important}
#ov-checkin-v2 .ci2-fin-row.tot{border-top:1px solid #eadfbf!important;margin-top:4px!important;padding-top:8px!important;font-weight:800!important}
#ov-checkin-v2 .ci2-fin-row.outstanding{border-top:1px dashed #e5c56c!important;margin-top:4px!important;padding-top:8px!important;color:#b16817!important;font-weight:800!important}
#ov-checkin-v2 .ci2-pay-toggle{display:flex!important;align-items:center!important;gap:8px!important;margin-top:10px!important;padding:9px 10px!important;border:1px solid var(--v7-line)!important;border-radius:10px!important;background:#faf8f3!important;font-size:10px!important;font-weight:700!important}
#ov-checkin-v2 .ci2-pay-toggle input{width:16px!important;height:16px!important;min-height:0!important;flex:0 0 auto!important}
#ov-checkin-v2 .chip-room.ci2-chip{min-width:44px!important;min-height:36px!important;display:grid!important;place-items:center!important;font-size:11px!important;font-weight:700!important;padding:6px 10px!important}
#ov-checkin-v2 .chip-room.ci2-chip.selected{background:var(--v7-sidebar)!important;color:#fff!important;border-color:var(--v7-sidebar)!important}
#ov-checkin-v2 #ci2-error{margin:0 16px 8px!important;font-size:10px!important}
#ov-checkin-v2 .mf{min-height:56px!important;padding:10px 16px!important;position:relative!important;z-index:4!important}

/* Short laptop screens: compact chrome before sacrificing content */
@media (min-width:769px) and (max-height:760px){
  #ov-book .booking-stepper-modal,#ov-checkin-v2 .ci2-modal{height:calc(100dvh - 12px)!important;max-height:calc(100dvh - 12px)!important}
  #ov-book{padding:6px!important}#ov-checkin-v2{padding:6px!important}
  #ov-book .book-stepper{margin-bottom:10px!important}
  #ov-book .book-step-indicator{min-height:50px!important;padding:8px 10px!important}
  #ov-book .book-step-num{width:28px!important;height:28px!important}
  #ov-book .book-section{padding:10px!important}
  #ov-book .mb{padding-top:10px!important}
  #ov-checkin-v2 .ci2-body{padding:10px 12px!important;gap:8px!important}
  #ov-checkin-v2 .ci2-col{padding:9px!important}
}

/* Tablet: booking rows reorganize cleanly; check-in becomes 2-column */
@media (max-width:768px){
  #ov-book{padding:0!important}
  #ov-book .booking-stepper-modal{
    width:100%!important;height:100dvh!important;max-width:none!important;max-height:none!important;
    border-radius:0!important;grid-template-rows:auto minmax(0,1fr) auto auto!important;
  }
  #ov-book .mh{padding:10px 12px!important;min-height:50px!important}
  #ov-book .mb{padding:10px 12px 8px!important}
  #ov-book .book-stepper{grid-template-columns:1fr 14px 1fr 14px 1fr!important;margin-bottom:10px!important}
  #ov-book .book-step-indicator{min-height:48px!important;padding:6px 7px!important;gap:6px!important}
  #ov-book .book-step-copy strong{font-size:8px!important;line-height:1.25!important}
  #ov-book .book-step-copy small{display:none!important}
  #ov-book .book-step-num{width:25px!important;height:25px!important;font-size:10px!important;flex:0 0 auto!important}
  #ov-book .book-section{padding:10px!important;border-radius:11px!important}
  #ov-book .book-section-title{margin-bottom:8px!important}
  #ov-book #room-rows .rrow{grid-template-columns:minmax(0,1fr) 72px!important;padding:9px!important;padding-right:42px!important}
  #ov-book #room-rows .rr-type-wrap{grid-column:1/-1!important}
  #ov-book #room-rows .rr-qty-wrap{grid-column:1!important}
  #ov-book #room-rows .rr-guests-wrap{grid-column:2!important}
  #ov-book #room-rows .rr-price-wrap{grid-column:1/-1!important}
  #ov-book #room-rows .rr-remove{position:absolute!important;right:8px!important;top:8px!important;margin:0!important;width:30px!important;height:30px!important;padding:0!important}
  #ov-book #room-rows .rr-avail{grid-column:1/-1!important}
  #ov-book .booking-sticky-summary{margin:0 8px 6px!important;grid-template-columns:1fr 1fr!important;border-radius:10px!important}
  #ov-book .booking-sticky-summary>div{padding:6px 9px!important;border-right:1px solid #efdba6!important;border-bottom:1px solid #efdba6!important}
  #ov-book .booking-sticky-summary>div:nth-child(2n){border-right:0!important}
  #ov-book .booking-sticky-summary>div:nth-last-child(-n+2){border-bottom:0!important}
  #ov-book .mf{padding:8px 10px!important;gap:6px!important;flex-wrap:wrap!important}
  #ov-book .mf .btn{min-height:38px!important;padding:0 10px!important;font-size:10px!important}

  #ov-checkin-v2{padding:0!important;align-items:stretch!important}
  #ov-checkin-v2 .ci2-modal{width:100%!important;height:100dvh!important;max-width:none!important;max-height:none!important;border-radius:0!important}
  #ov-checkin-v2 .ci2-body{grid-template-columns:1fr 1fr!important;padding:10px!important;gap:8px!important}
  #ov-checkin-v2 .ci2-col:nth-child(3){grid-column:1/-1!important}
}

/* Phones: one readable column, fixed header/footer, no horizontal clipping */
@media (max-width:640px){
  #ov-book .mt,#ov-checkin-v2 .mt{font-size:13px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  #ov-book .mc,#ov-checkin-v2 .mc{flex:0 0 30px!important}
  #ov-book .fr{grid-template-columns:1fr!important;gap:0!important;margin-bottom:0!important}
  #ov-book .fg{margin-bottom:8px!important}
  #ov-book .book-step-review{grid-template-columns:1fr 1fr!important}
  #ov-book .booking-sticky-summary small{font-size:7px!important}
  #ov-book .booking-sticky-summary strong{font-size:9px!important}
  #ov-book .mf{justify-content:flex-end!important}
  #ov-book #book-prev-btn{margin-right:auto!important}

  #ov-checkin-v2 .mh{padding:9px 10px!important;min-height:48px!important}
  #ov-checkin-v2 #ci2-bookcode{font-size:8px!important;max-width:92px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
  #ov-checkin-v2 .ci2-body{grid-template-columns:1fr!important;padding:8px 8px 10px!important;gap:8px!important}
  #ov-checkin-v2 .ci2-col,#ov-checkin-v2 .ci2-col:nth-child(3){grid-column:1!important;padding:10px!important;border-radius:11px!important}
  #ov-checkin-v2 .ci2-col-head{font-size:10px!important;margin-bottom:7px!important}
  #ov-checkin-v2 input,#ov-checkin-v2 select,#ov-checkin-v2 textarea{font-size:16px!important;min-height:42px!important} /* prevents iOS zoom */
  #ov-checkin-v2 .fg label{font-size:10px!important}
  #ov-checkin-v2 .ci2-ig-row{grid-template-columns:minmax(92px,.9fr) minmax(0,1.1fr)!important;font-size:9px!important;padding:6px 8px!important}
  #ov-checkin-v2 .ci2-ig-row strong{font-size:10px!important}
  #ov-checkin-v2 .ci2-fin-row{font-size:10px!important}
  #ov-checkin-v2 .chip-room.ci2-chip{min-width:50px!important;min-height:38px!important;font-size:12px!important}
  #ov-checkin-v2 .mf{padding:8px!important;gap:6px!important}
  #ov-checkin-v2 .mf .btn{min-height:40px!important;padding:0 10px!important;font-size:11px!important}
  #ov-checkin-v2 #ci2-print-btn{display:none!important}
}

@media (max-width:380px){
  #ov-book .book-step-copy{display:none!important}
  #ov-book .book-stepper{grid-template-columns:30px 1fr 30px 1fr 30px!important}
  #ov-book .book-step-indicator{padding:2px!important;justify-content:center!important;border-radius:999px!important;min-height:32px!important}
  #ov-book .book-step-num{width:28px!important;height:28px!important}
  #ov-book .booking-sticky-summary{grid-template-columns:1fr 1fr!important}
  #ov-checkin-v2 .ci2-ig-row{grid-template-columns:1fr!important;gap:2px!important}
  #ov-checkin-v2 .ci2-ig-row strong{text-align:left!important}
}

/* =====================================================================
   V7.3 UI AUDIT — CANONICAL RESPONSIVE LAYOUT
   Fixes: remove sidebar calendar, iPhone vertical scroll, bottom-nav access,
   viewport/safe-area conflicts, nested overflow and mobile modal scrolling.
   ===================================================================== */
.v7-calendar{display:none!important}
@media (min-width:769px){
  .v7-user{margin-top:auto!important}
}

/* Prevent wide dynamic children from forcing the application canvas wider. */
#con,#con>*,.v7-card,.v7-table-card,.v7-table-wrap,.v7-room-page,.v7-room-toolbar,
.v7-floor-stack,.v7-floor,.v7-room-grid,.v7-guests-page,.v7-guests-layout,
.v7-revenue-page,.v7-settings-page,.v7-ci-layout,.v7-services-page,.ops-hero,
.ops-kpis,.hk-kanban{min-width:0;max-width:100%}
.v7-table-wrap,.v7-table-card,[style*="overflow-x:auto"]{-webkit-overflow-scrolling:touch}

@media (max-width:768px){
  :root{--v7-mobile-nav-h:108px}
  html,body{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    background:var(--v7-canvas)!important;
  }
  body{position:relative!important}
  .shell{
    display:block!important;
    width:100%!important;
    height:100dvh!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:hidden!important;
  }
  .main{
    width:100%!important;
    height:100dvh!important;
    min-height:0!important;
    max-height:100dvh!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    border-radius:0!important;
  }
  .topbar{
    flex:0 0 auto!important;
    min-width:0!important;
    padding:14px 14px 10px!important;
  }
  .con,#con{
    position:relative!important;
    flex:1 1 auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
    scrollbar-gutter:auto!important;
    padding:0 12px calc(var(--v7-mobile-nav-h) + 18px + env(safe-area-inset-bottom))!important;
  }
  .con>*{max-width:100%!important}

  /* The bottom navigation is the only mobile sidebar surface. All 9 modules
     remain accessible in two rows instead of hiding modules 6-9. */
  .sb{
    position:fixed!important;
    left:0!important;right:0!important;bottom:0!important;
    z-index:900!important;
    width:100%!important;
    height:calc(var(--v7-mobile-nav-h) + env(safe-area-inset-bottom))!important;
    min-height:0!important;
    padding:6px 8px calc(6px + env(safe-area-inset-bottom))!important;
    background:var(--v7-sidebar)!important;
    display:block!important;
    overflow:hidden!important;
    border-radius:18px 18px 0 0!important;
    box-shadow:0 -8px 24px rgba(14,50,53,.18)!important;
  }
  .v7-brand,.v7-side-search,.v7-quick,.v7-calendar,.v7-user,.v7-legacy-status{display:none!important}
  .sb-nav{
    width:100%!important;height:100%!important;
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    grid-template-rows:repeat(2,minmax(0,1fr))!important;
    gap:5px!important;
    overflow:hidden!important;
    min-height:0!important;
  }
  .ni,.ni:nth-child(n+6){
    display:flex!important;
    min-width:0!important;min-height:0!important;height:100%!important;
    align-items:center!important;justify-content:center!important;
    flex-direction:column!important;gap:2px!important;
    padding:4px 2px!important;
    border-radius:8px!important;
    font-size:8px!important;line-height:1.12!important;
    text-align:center!important;
    white-space:normal!important;
  }
  .v7-nav__icon{width:auto!important;font-size:13px!important;line-height:1!important}

  /* Canonical mobile page grids. */
  .v7-bento--mid,.v7-bento--bottom,.v7-guests-layout,.v7-ci-layout,
  .v7-settings-lower,.v7-revenue-bottom,.v7-revenue-grid{grid-template-columns:1fr!important}
  .v7-settings-grid{grid-template-columns:1fr!important}
  .v7-finance-kpis,.ops-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .v7-crm-aside{grid-template-columns:1fr!important}
  .v7-ci-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .v7-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}

  .v7-floor{grid-template-columns:1fr!important;overflow:visible!important}

  .v7-book-card__money{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .v7-segment,.v7-subtabs,.ops-tabs{max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important}
  .v7-segment::-webkit-scrollbar,.v7-subtabs::-webkit-scrollbar,.ops-tabs::-webkit-scrollbar{display:none!important}

  /* Wide data is allowed to scroll horizontally inside its own wrapper,
     while the page itself keeps vertical touch scrolling. */
  .v7-table-wrap,.v7-table-card{overflow-x:auto!important;overflow-y:visible!important;touch-action:pan-x pan-y!important}
  .v7-table{min-width:720px!important}
  .v7-guest-directory .v7-table{min-width:760px!important}

  /* Housekeeping keeps horizontal Kanban swipe without blocking page scroll. */
  .hk-kanban{display:flex!important;overflow-x:auto!important;overflow-y:visible!important;scroll-snap-type:x proximity!important;touch-action:pan-x pan-y!important;-webkit-overflow-scrolling:touch!important}
  .hk-kanban-col{min-width:min(82vw,330px)!important;scroll-snap-align:start!important}

  /* Generic modal body scrolling on iOS. Specific booking/check-in modal
     rules below continue to control their grid layout. */
  .ov{overscroll-behavior:contain!important}
  .modal{max-height:100dvh!important}
  .mb,.ci2-body{
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
  }
}

@media (max-width:520px){
  :root{--v7-mobile-nav-h:104px}
  .v7-page-title{font-size:22px!important}
  .v7-stat-grid{grid-template-columns:1fr!important}
  .v7-finance-kpis,.ops-kpis{grid-template-columns:1fr 1fr!important}
  .v7-ci-summary{grid-template-columns:1fr!important}

  .v7-services-head{align-items:stretch!important}
  .v7-services-head .v7-search{width:100%!important;margin-left:0!important}
}

@media (max-width:370px){
  :root{--v7-mobile-nav-h:102px}
  .con,#con{padding-left:9px!important;padding-right:9px!important}
  .v7-finance-kpis,.ops-kpis{grid-template-columns:1fr!important}

  .ni,.ni:nth-child(n+6){font-size:7.5px!important}
}

/* =====================================================================
   V7.4 PRINT UI FIX — TYPOGRAPHY + CLASSIC BOOKING SLIP + INVOICE
   One controlled type scale for runtime UI. Printable documents are scoped.
   ===================================================================== */
:root{
  --v7-fs-2xs:9px;
  --v7-fs-xs:10px;
  --v7-fs-sm:11px;
  --v7-fs-body:12px;
  --v7-fs-md:13px;
  --v7-fs-lg:15px;
  --v7-fs-title:30px;
}
/* Runtime typography normalization — avoid 7/8/9px jumps in normal desktop UI. */
@media (min-width:769px){
  .ni{font-size:12px!important;line-height:1.25!important}
  .v7-nav__icon,.ni-ic{font-size:14px!important}
  .v7-quick header{font-size:12px!important}.v7-quick button{font-size:11px!important}
  .v7-breadcrumb{font-size:10px!important}.v7-page-title{font-size:30px!important;line-height:1.12!important}.v7-page-subtitle{font-size:11px!important}
  .v7-toolbar,.v7-book-toolbar,.v7-guest-toolbar{font-size:11px!important}
  .v7-toolbar__group label{font-size:10px!important}
  .v7-quick-days button,.v7-segment button,.v7-ci-tabs button,.v7-subtabs button,.v7-primary,.v7-gold,.v7-secondary{font-size:10.5px!important}
  .v7-table th{font-size:10.5px!important;line-height:1.3!important;padding:11px 9px!important;letter-spacing:.01em!important}
  .v7-table td{font-size:11.5px!important;line-height:1.4!important;padding:12px 9px!important}
  .v7-table td small,.v7-book-id span,.v7-book-id small,.v7-guest-cell>div small{font-size:10px!important;line-height:1.35!important}
  .v7-status{font-size:10px!important;line-height:1.2!important}
  .v7-note{font-size:11px!important;line-height:1.4!important}
  .v7-row-actions button{font-size:12px!important}
  .pager-info,.v7-history-foot{font-size:9.5px!important}
  .v7-card__head small,.v7-timeline__item time,.v7-timeline__item p,.v7-ring span,.v7-ring small,.v7-mini-stats span,.v7-legend{font-size:9.5px!important}
  .v7-card__head h3{font-size:14px!important}.v7-timeline__item strong{font-size:10.5px!important}
  .fg label{font-size:10px!important}.inv-r{font-size:10.5px!important}.btn.sm{font-size:10px!important}
  .ops-hero p,.ops-hero-eyebrow,.ops-kpi span,.hk-card-head span,.hk-meta,.hk-progress,.ops-empty{font-size:9.5px!important}
}

/* ---------------- Classic booking confirmation from user's old slip ---------------- */
#ov-booking-confirm{padding:18px!important}
#ov-booking-confirm .bc-modal{
  width:min(760px,calc(100vw - 28px))!important;
  max-height:calc(100dvh - 28px)!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
  overflow:hidden!important;
}
#ov-booking-confirm .bc-modal>.mb{min-height:0!important;overflow:auto!important;padding:18px!important;background:#eef0ef!important;-webkit-overflow-scrolling:touch!important}
#ov-booking-confirm .bc-stage{display:flex!important;justify-content:center!important;align-items:flex-start!important;min-width:0!important}
#ov-booking-confirm .bc-toolbar-note{margin-right:auto;max-width:310px;font-size:10px;color:var(--v7-muted);line-height:1.4}
#ov-booking-confirm .bc-slip.slip{
  --bc-ink:#143a2f;--bc-ink-2:#0d271f;--bc-paper:#faf6ec;--bc-paper-2:#f3ecdb;--bc-gold:#b08a4a;--bc-gold-soft:#cda969;--bc-text:#2c2823;--bc-text-2:#6f685c;--bc-line:#e3dac4;
  width:100%;max-width:640px;background:var(--bc-paper);color:var(--bc-text);border-radius:6px;position:relative;overflow:hidden;
  font-family:'Be Vietnam Pro',Inter,-apple-system,BlinkMacSystemFont,sans-serif;
  box-shadow:0 28px 60px -30px rgba(0,0,0,.48),0 0 0 1px rgba(0,0,0,.04);
}
#ov-booking-confirm .slip-head{background:linear-gradient(165deg,var(--bc-ink),var(--bc-ink-2));color:var(--bc-paper);padding:38px 44px 30px;text-align:center;position:relative}
#ov-booking-confirm .slip-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,transparent,var(--bc-gold),var(--bc-gold-soft),var(--bc-gold),transparent)}
#ov-booking-confirm .crest{margin:0 auto 14px;display:flex;align-items:center;justify-content:center}
#ov-booking-confirm .crest img{height:74px;width:auto;display:block;filter:drop-shadow(0 4px 10px rgba(0,0,0,.28))}
#ov-booking-confirm .hotel-name{font-family:'Be Vietnam Pro',sans-serif;font-size:34px!important;font-weight:700!important;letter-spacing:7px!important;margin:0!important;color:#fbf7ec!important;display:flex;align-items:center;justify-content:center;gap:16px;text-indent:7px;line-height:1.15!important}
#ov-booking-confirm .hotel-name::before,#ov-booking-confirm .hotel-name::after{content:"";height:1px;width:34px;background:linear-gradient(90deg,transparent,var(--bc-gold-soft))}
#ov-booking-confirm .hotel-name::after{background:linear-gradient(90deg,var(--bc-gold-soft),transparent)}
#ov-booking-confirm .hotel-tag{font-size:10.5px!important;letter-spacing:4px;text-transform:uppercase;color:var(--bc-gold-soft);margin:7px 0 0!important}
#ov-booking-confirm .doc-title{margin:22px 0 0!important;font-size:24px!important;letter-spacing:1.5px;text-transform:uppercase;color:#f4ede0;font-weight:700!important;line-height:1.2!important}
#ov-booking-confirm .doc-sub{font-style:italic;font-size:15px!important;color:var(--bc-gold-soft);margin:3px 0 0!important;letter-spacing:.5px}
#ov-booking-confirm .slip-body{padding:30px 44px 10px}
#ov-booking-confirm .meta{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid var(--bc-line);margin-bottom:24px;gap:16px;flex-wrap:wrap}
#ov-booking-confirm .code-lbl,#ov-booking-confirm .iss-lbl,#ov-booking-confirm .f .k{font-size:10.5px!important;letter-spacing:1.4px;text-transform:uppercase;color:var(--bc-text-2);font-weight:500}#ov-booking-confirm .code-lbl,#ov-booking-confirm .iss-lbl{letter-spacing:1.8px}#ov-booking-confirm .note .nk{font-size:9.5px!important;letter-spacing:1.6px;text-transform:uppercase;color:var(--bc-text-2);font-weight:500}
#ov-booking-confirm .code-val{font-size:25px!important;font-weight:700!important;color:var(--bc-ink);letter-spacing:.8px;line-height:1.1}
#ov-booking-confirm .issued{text-align:right}
#ov-booking-confirm .iss-val{font-size:17px!important;font-weight:600!important;color:var(--bc-ink);letter-spacing:.3px;line-height:1.1}
#ov-booking-confirm .field-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 26px;margin-bottom:26px}
#ov-booking-confirm .field-grid .f:nth-child(2n){text-align:right}
#ov-booking-confirm .f{min-width:0}
#ov-booking-confirm .f .k{margin-bottom:6px}
#ov-booking-confirm .f .v{font-size:16px!important;color:var(--bc-text);font-weight:500;overflow-wrap:anywhere;line-height:1.3}
#ov-booking-confirm .f .v.big{font-size:18px!important;font-weight:700!important;color:var(--bc-ink);line-height:1.3}
#ov-booking-confirm .stay{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;background:var(--bc-paper-2);border:1px solid var(--bc-line);border-radius:10px;padding:18px 22px;margin-bottom:24px}
#ov-booking-confirm .stay .leg{text-align:center}
#ov-booking-confirm .stay .lab{font-size:9.5px!important;letter-spacing:1.6px;text-transform:uppercase;color:var(--bc-text-2);margin-bottom:5px}
#ov-booking-confirm .stay .day{font-size:24px!important;font-weight:600!important;color:var(--bc-ink);line-height:1}
#ov-booking-confirm .stay .time{font-size:11px!important;color:var(--bc-text-2);margin-top:4px}
#ov-booking-confirm .stay .mid{text-align:center;color:var(--bc-gold)}
#ov-booking-confirm .stay .arrow{font-size:18px!important;line-height:1}
#ov-booking-confirm .stay .nights{font-size:10px!important;letter-spacing:1px;text-transform:uppercase;color:var(--bc-text-2);margin-top:5px;white-space:nowrap}
#ov-booking-confirm .pay{border:1px solid var(--bc-line);border-radius:10px;overflow:hidden;margin-bottom:8px}
#ov-booking-confirm .pay-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 22px;font-size:14px!important;border-bottom:1px solid var(--bc-line)}
#ov-booking-confirm .pay-row:last-child{border-bottom:none}
#ov-booking-confirm .pay-row .lab{color:var(--bc-text-2);letter-spacing:.2px}
#ov-booking-confirm .pay-row .amt{font-weight:500;white-space:nowrap;color:var(--bc-text);font-variant-numeric:tabular-nums}
#ov-booking-confirm .pay-row.deposit .amt{color:#2f7d52}
#ov-booking-confirm .pay-row.remain{background:var(--bc-paper-2)}
#ov-booking-confirm .pay-row.remain .lab{color:var(--bc-ink);font-weight:600}
#ov-booking-confirm .pay-row.remain .amt{color:#a23a2e;font-weight:600;font-size:16px!important}
#ov-booking-confirm .pay-row.total{background:linear-gradient(180deg,var(--bc-ink),var(--bc-ink-2))}
#ov-booking-confirm .pay-row.total .lab{color:#e9f0ea;letter-spacing:1px;text-transform:uppercase;font-size:11px!important}
#ov-booking-confirm .pay-row.total .amt{color:var(--bc-gold-soft);font-size:22px!important;font-weight:600}
#ov-booking-confirm .note{margin:20px 0 0;font-size:13px!important;line-height:1.6;color:var(--bc-text-2)}
#ov-booking-confirm .note .nk{margin-bottom:4px}
#ov-booking-confirm .note .nv{color:var(--bc-text);font-style:italic;white-space:pre-wrap}
#ov-booking-confirm .slip-foot{margin-top:26px;padding:22px 44px 30px;border-top:1px solid var(--bc-line);display:flex;justify-content:space-between;align-items:center;gap:20px}
#ov-booking-confirm .foot-contact{font-size:11.5px!important;color:var(--bc-text-2);line-height:1.7;min-width:0}
#ov-booking-confirm .foot-contact strong{color:var(--bc-ink);font-weight:600;display:block;font-size:15px!important;letter-spacing:.5px}
#ov-booking-confirm .foot-sign{text-align:center;flex-shrink:0}
#ov-booking-confirm .stamp{transform:rotate(-4deg);margin:0 auto 4px;padding:9px 8px 8px;border:2.5px solid #c0392b;border-radius:3px;color:#c0392b;opacity:.9;position:relative;width:208px}
#ov-booking-confirm .stamp::before{content:"";position:absolute;inset:3px;border:1px solid #c0392b;border-radius:2px}
#ov-booking-confirm .stamp-inner{position:relative;text-align:center;line-height:1.25}
#ov-booking-confirm .s-name{font-size:13px!important;font-weight:800;letter-spacing:.3px;text-transform:uppercase;margin-bottom:3px}
#ov-booking-confirm .s-line{font-size:8.5px!important;font-weight:600;letter-spacing:.1px;overflow-wrap:anywhere}
#ov-booking-confirm .thanks{text-align:center;font-style:italic;font-size:16px!important;color:var(--bc-gold);padding:0 44px 26px;margin:0!important;letter-spacing:.5px}

/* ---------------- Invoice display repaired and scoped ---------------- */
#ov-inv{padding:18px!important}
#ov-inv .inv-modal{width:min(720px,calc(100vw - 28px))!important;max-height:calc(100dvh - 28px)!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important;overflow:hidden!important}
#ov-inv .inv-modal>.mb{min-height:0!important;overflow:auto!important;padding:18px!important;background:#eef0ef!important;-webkit-overflow-scrolling:touch!important}
#ov-inv .hinv{width:100%;max-width:640px;margin:0 auto;background:#fff;border:1px solid #dce5e1;border-radius:16px;overflow:hidden;box-shadow:0 18px 42px -30px rgba(15,23,42,.38);color:#1f2937;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
#ov-inv .hinv-head{background:linear-gradient(150deg,#103b30,#0b2c24);padding:26px 26px 22px;color:#fff;text-align:center;border-bottom:3px solid #c7a15e}
#ov-inv .hinv-brand{font-family:Georgia,"Times New Roman",serif;font-size:31px!important;line-height:1;font-weight:600;letter-spacing:3px}
#ov-inv .hinv-tag{font-size:9px!important;letter-spacing:3px;text-transform:uppercase;color:#d3b475;margin-top:7px}
#ov-inv .hinv-title{font-size:14px!important;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;margin-top:17px}
#ov-inv .hinv-contact{font-size:10.5px!important;line-height:1.65;color:#d8e4df;margin-top:7px}
#ov-inv .hinv-docmeta{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px 22px;border-bottom:1px solid #e5ebe8;background:#fbfcfc}
#ov-inv .hinv-docmeta>div:last-child{text-align:right}
#ov-inv .hinv-k{font-size:9px!important;letter-spacing:1.2px;text-transform:uppercase;color:#718096;font-weight:700;margin-bottom:4px}
#ov-inv .hinv-v{font-size:12px!important;font-weight:700;color:#173b31;overflow-wrap:anywhere}
#ov-inv .hinv-guest{padding:17px 22px;border-bottom:1px solid #e5ebe8;display:grid;grid-template-columns:1fr 1fr;gap:13px 22px}
#ov-inv .hinv-guest .wide{grid-column:1/-1}
#ov-inv .hinv-guest .name{font-size:17px!important;font-weight:800;color:#143a2f;line-height:1.35;overflow-wrap:anywhere}
#ov-inv .hinv-guest .subguest{font-size:10.5px!important;color:#718096;margin-top:4px;line-height:1.4}
#ov-inv .hinv-lines{padding:10px 22px 4px}
#ov-inv .hinv-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start;padding:10px 0;border-bottom:1px solid #edf1ef;font-size:12px!important;line-height:1.45}
#ov-inv .hinv-line .desc{min-width:0;overflow-wrap:anywhere}
#ov-inv .hinv-line .money{font-weight:700;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
#ov-inv .hinv-line.discount .money{color:#17864c}
#ov-inv .hinv-total{margin:8px 22px 0;padding:15px 0;border-top:2px solid #153f34;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center}
#ov-inv .hinv-total .label{font-size:12px!important;font-weight:900;letter-spacing:1px;text-transform:uppercase;color:#12251f}
#ov-inv .hinv-total .money{font-size:20px!important;font-weight:900;color:#143a2f;white-space:nowrap;font-variant-numeric:tabular-nums}
#ov-inv .hinv-paid{margin:0 22px 18px;background:#f6f8f7;border:1px solid #e1e8e5;border-radius:12px;padding:6px 14px}
#ov-inv .hinv-paid .hinv-line:last-child{border-bottom:none}
#ov-inv .hinv-paid .paid .money{color:#159447}
#ov-inv .hinv-paid .due .money{color:#d62c2c;font-size:14px!important}
#ov-inv .hinv-paid .excess .money{color:#a56d12;font-size:14px!important}
#ov-inv .hinv-paid .settled .money{color:#159447}
#ov-inv .hinv-foot{text-align:center;padding:0 22px 22px;color:#64748b;font-size:10.5px!important;line-height:1.6}
#ov-inv .hinv-thanks{color:#a98243;font-style:italic;margin-top:4px}

@media(max-width:640px){
  #ov-booking-confirm,#ov-inv{padding:0!important;align-items:stretch!important}
  #ov-booking-confirm .bc-modal,#ov-inv .inv-modal{width:100%!important;height:100dvh!important;max-width:none!important;max-height:none!important;border-radius:0!important}
  #ov-booking-confirm .bc-modal>.mb,#ov-inv .inv-modal>.mb{padding:10px!important}
  #ov-booking-confirm .bc-modal>.mf,#ov-inv .inv-modal>.mf{padding:8px!important;gap:6px!important;flex-wrap:wrap!important}
  #ov-booking-confirm .bc-toolbar-note{display:none!important}
  #ov-booking-confirm .bc-slip.slip{max-width:100%;border-radius:8px;box-shadow:none}
  #ov-booking-confirm .slip-head{padding:30px 26px 26px}
  #ov-booking-confirm .crest img{height:64px}
  #ov-booking-confirm .hotel-name{font-size:27px!important;letter-spacing:4px!important;gap:10px}
  #ov-booking-confirm .hotel-name::before,#ov-booking-confirm .hotel-name::after{width:20px}
  #ov-booking-confirm .hotel-tag{font-size:9px!important;letter-spacing:2.5px}
  #ov-booking-confirm .doc-title{font-size:19px!important;letter-spacing:1px}
  #ov-booking-confirm .doc-sub{font-size:12px!important}
  #ov-booking-confirm .slip-body{padding:24px 26px 6px}
  #ov-booking-confirm .meta{margin-bottom:18px;padding-bottom:14px}
  #ov-booking-confirm .code-val{font-size:18px!important}#ov-booking-confirm .iss-val{font-size:14px!important}
  #ov-booking-confirm .field-grid{grid-template-columns:1fr;gap:14px;margin-bottom:22px}
  #ov-booking-confirm .field-grid .f:nth-child(2n){text-align:left}
  #ov-booking-confirm .f .v{font-size:13px!important}#ov-booking-confirm .f .v.big{font-size:15px!important}
  #ov-booking-confirm .stay{padding:16px;gap:10px;margin-bottom:20px}
  #ov-booking-confirm .stay .day{font-size:17px!important}#ov-booking-confirm .stay .time{font-size:9px!important}
  #ov-booking-confirm .pay-row{padding:10px 13px;font-size:11.5px!important;gap:8px}
  #ov-booking-confirm .pay-row.remain .amt{font-size:12px!important}#ov-booking-confirm .pay-row.total .amt{font-size:16px!important}
  #ov-booking-confirm .slip-foot{padding:20px 26px 26px;flex-direction:column;align-items:flex-start;gap:14px}
  #ov-booking-confirm .foot-sign{width:100%}#ov-booking-confirm .stamp{width:min(205px,100%)}
  #ov-booking-confirm .thanks{padding:0 26px 22px;font-size:14px!important}

  #ov-inv .hinv{max-width:100%;border-radius:8px;box-shadow:none}
  #ov-inv .hinv-head{padding:22px 16px 18px}
  #ov-inv .hinv-brand{font-size:27px!important}
  #ov-inv .hinv-docmeta{padding:13px 15px;gap:10px}
  #ov-inv .hinv-guest{padding:14px 15px;grid-template-columns:1fr;gap:10px}
  #ov-inv .hinv-guest .wide{grid-column:auto}
  #ov-inv .hinv-lines{padding-left:15px;padding-right:15px}
  #ov-inv .hinv-line{gap:10px;font-size:11px!important}
  #ov-inv .hinv-total{margin-left:15px;margin-right:15px}
  #ov-inv .hinv-total .money{font-size:17px!important}
  #ov-inv .hinv-paid{margin-left:15px;margin-right:15px}
  #ov-inv .hinv-foot{padding-left:15px;padding-right:15px}

  /* Mobile type rhythm: readable and consistent without changing information density. */
  .v7-book-card h3{font-size:14px!important;line-height:1.3!important}
  .v7-book-card header small,.v7-book-card header span{font-size:10px!important;line-height:1.3!important}
  .v7-book-card__money small,.v7-book-card__stay small{font-size:9.5px!important}
  .v7-book-card__money strong,.v7-book-card__stay strong{font-size:11.5px!important}
  .v7-book-card__stay span,.v7-book-card__note{font-size:10.5px!important}
  .v7-book-card footer button{font-size:10.5px!important}
}

/* =====================================================================
   V7.5 — IPHONE FIT + CLASSIC BOOKING CONFIRMATION
   - Exported confirmation keeps the old 640px layout on every device.
   - iPhone safe areas no longer overlap page/modal headers.
   - Toolbars, date ranges, cards and page canvases cannot exceed viewport.
   ===================================================================== */

/* Global width guardrails for all runtime pages. */
html,body,.shell,.main,.topbar,.con,#con{
  width:100%;
  max-width:100%;
}
#con>*,
.v7-dashboard,.v7-bookings,.v7-room-page,.v7-guests-page,.v7-revenue-page,
.v7-settings-page,.v7-services-page,.v7-checkin-page,.v7-operations-page,
.v7-toolbar,.v7-segment-row,.v7-mobile-bookings,.v7-book-card{
  width:100%;
  max-width:100%;
  min-width:0;
}
img,svg,canvas{max-width:100%}
input,select,textarea,button{max-width:100%}

/* Booking confirmation — match the former classic slip shown in image #2. */
#ov-booking-confirm .bc-classic-v75{
  width:100%!important;
  max-width:640px!important;
  background:#fbf7ee!important;
  border-radius:0!important;
  box-shadow:0 18px 42px -30px rgba(0,0,0,.38)!important;
}
#ov-booking-confirm .bc-classic-v75 .slip-head{
  padding:34px 38px 31px!important;
}
#ov-booking-confirm .bc-classic-v75 .crest{margin-bottom:12px!important}
#ov-booking-confirm .bc-classic-v75 .crest img{height:76px!important}
#ov-booking-confirm .bc-classic-v75 .hotel-name{
  font-size:37px!important;
  letter-spacing:7px!important;
  gap:0!important;
  text-indent:7px!important;
}
#ov-booking-confirm .bc-classic-v75 .hotel-name::before,
#ov-booking-confirm .bc-classic-v75 .hotel-name::after{display:none!important}
#ov-booking-confirm .bc-classic-v75 .hotel-tag{
  font-size:11px!important;
  letter-spacing:4.2px!important;
  margin-top:10px!important;
}
#ov-booking-confirm .bc-classic-v75 .doc-title{
  margin-top:25px!important;
  font-size:24px!important;
  letter-spacing:1.15px!important;
}
#ov-booking-confirm .bc-classic-v75 .doc-sub{
  margin-top:5px!important;
  font-size:15px!important;
}
#ov-booking-confirm .bc-classic-v75 .slip-body{
  padding:31px 26px 8px!important;
}
#ov-booking-confirm .bc-classic-v75 .meta{
  margin:0 0 27px!important;
  padding:0 0 25px!important;
  flex-wrap:nowrap!important;
  gap:16px!important;
}
#ov-booking-confirm .bc-classic-v75 .code-lbl,
#ov-booking-confirm .bc-classic-v75 .iss-lbl,
#ov-booking-confirm .bc-classic-v75 .guest-block .k,
#ov-booking-confirm .bc-classic-v75 .phone-row .k,
#ov-booking-confirm .bc-classic-v75 .info-card .k{
  font-size:11px!important;
  letter-spacing:1.65px!important;
  text-transform:uppercase!important;
  color:#716b61!important;
  font-weight:500!important;
}
#ov-booking-confirm .bc-classic-v75 .code-val{
  margin-top:7px!important;
  font-size:25px!important;
  line-height:1.1!important;
}
#ov-booking-confirm .bc-classic-v75 .iss-val{
  margin-top:7px!important;
  font-size:18px!important;
  line-height:1.1!important;
}
#ov-booking-confirm .bc-classic-v75 .guest-block{
  padding:0 0 23px!important;
  border-bottom:1px solid var(--bc-line)!important;
}
#ov-booking-confirm .bc-classic-v75 .guest-name{
  margin-top:8px!important;
  font-size:22px!important;
  line-height:1.2!important;
  font-weight:700!important;
  color:var(--bc-ink)!important;
  overflow-wrap:anywhere!important;
}
#ov-booking-confirm .bc-classic-v75 .phone-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:end!important;
  gap:18px!important;
  padding:23px 0 24px!important;
  border-bottom:1px solid var(--bc-line)!important;
}
#ov-booking-confirm .bc-classic-v75 .phone-value{
  font-size:18px!important;
  line-height:1.2!important;
  font-weight:700!important;
  color:#2c2823!important;
  text-align:right!important;
  overflow-wrap:anywhere!important;
}
#ov-booking-confirm .bc-classic-v75 .info-cards{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:14px!important;
  margin:24px 0 28px!important;
}
#ov-booking-confirm .bc-classic-v75 .info-card{
  min-width:0!important;
  padding:22px 15px 21px!important;
  border:1px solid var(--bc-line)!important;
  border-radius:12px!important;
  background:var(--bc-paper-2)!important;
  text-align:center!important;
}
#ov-booking-confirm .bc-classic-v75 .info-value{
  margin-top:10px!important;
  font-size:20px!important;
  line-height:1.15!important;
  font-weight:700!important;
  color:var(--bc-ink)!important;
  overflow-wrap:anywhere!important;
}
#ov-booking-confirm .bc-classic-v75 .stay{
  margin:0 0 28px!important;
  padding:19px 19px 18px!important;
  border-radius:12px!important;
  gap:10px!important;
}
#ov-booking-confirm .bc-classic-v75 .stay .lab{font-size:10px!important}
#ov-booking-confirm .bc-classic-v75 .stay .day{font-size:20px!important}
#ov-booking-confirm .bc-classic-v75 .stay .time{font-size:11px!important}
#ov-booking-confirm .bc-classic-v75 .stay .arrow{font-size:22px!important}
#ov-booking-confirm .bc-classic-v75 .stay .nights{font-size:10px!important}
#ov-booking-confirm .bc-classic-v75 .pay{
  margin:0 0 26px!important;
  border-radius:13px!important;
}
#ov-booking-confirm .bc-classic-v75 .pay-row{
  padding:14px 20px!important;
  font-size:14px!important;
}
#ov-booking-confirm .bc-classic-v75 .pay-row.remain .amt{font-size:16px!important}
#ov-booking-confirm .bc-classic-v75 .pay-row.total{padding-top:16px!important;padding-bottom:16px!important}
#ov-booking-confirm .bc-classic-v75 .pay-row.total .lab{font-size:12px!important}
#ov-booking-confirm .bc-classic-v75 .pay-row.total .amt{font-size:23px!important}
#ov-booking-confirm .bc-classic-v75 .note{
  margin:0 0 17px!important;
  padding:0 0 0!important;
  font-size:14px!important;
}
#ov-booking-confirm .bc-classic-v75 .note .nk{font-size:10px!important;margin-bottom:8px!important}
#ov-booking-confirm .bc-classic-v75 .note .nv{font-size:15px!important;color:#2c2823!important}
#ov-booking-confirm .bc-classic-v75 .slip-foot{
  display:block!important;
  margin-top:17px!important;
  padding:27px 26px 11px!important;
  text-align:center!important;
  border-top:1px solid var(--bc-line)!important;
}
#ov-booking-confirm .bc-classic-v75 .foot-contact{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:3px!important;
  font-size:12px!important;
  line-height:1.55!important;
  text-align:center!important;
}
#ov-booking-confirm .bc-classic-v75 .foot-contact strong{
  font-size:18px!important;
  margin-bottom:6px!important;
}
#ov-booking-confirm .bc-classic-v75 .thanks{
  padding:18px 26px 28px!important;
  font-size:16px!important;
}

@media(max-width:768px){
  /* Respect the iPhone status bar / Dynamic Island. */
  .topbar{
    padding-top:calc(12px + env(safe-area-inset-top))!important;
    padding-left:12px!important;
    padding-right:12px!important;
    padding-bottom:10px!important;
  }
  .v7-top-left{min-width:0!important;max-width:calc(100% - 86px)!important}
  .v7-page-title{overflow-wrap:anywhere!important}
  .v7-top-actions{flex:0 0 auto!important}
  .con,#con{
    padding-left:10px!important;
    padding-right:10px!important;
    overflow-x:hidden!important;
  }

  /* Every segment group uses the available width, no off-screen buttons. */
  .v7-segment-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:8px!important;
  }
  .v7-segment-row .v7-segment,
  .v7-segment-row .v7-segment--right{
    width:100%!important;
    margin-left:0!important;
    display:grid!important;
    grid-auto-flow:column!important;
    grid-auto-columns:minmax(0,1fr)!important;
    overflow:visible!important;
  }
  .v7-segment-row .v7-segment button{
    min-width:0!important;
    padding-left:7px!important;
    padding-right:7px!important;
    white-space:nowrap!important;
  }

  /* Booking filter toolbar: search + date range full width, controls fit 2 columns. */
  .v7-book-toolbar{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
    padding:10px!important;
    overflow:hidden!important;
  }
  .v7-book-toolbar>.v7-search,
  .v7-book-toolbar>.v7-date-range{
    grid-column:1/-1!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
  }
  .v7-book-toolbar>.v7-select,
  .v7-book-toolbar>button{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
  }
  .v7-date-range{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr)!important;
    align-items:center!important;
    gap:5px!important;
    min-width:0!important;
    max-width:100%!important;
  }
  .v7-date-range>span{text-align:center!important}
  .v7-date-range input{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    padding-left:7px!important;
    padding-right:7px!important;
  }

  /* Other generic runtime toolbars must wrap inside the viewport. */
  .v7-toolbar,.v7-services-head,.v7-guest-toolbar{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .v7-search{width:100%!important;max-width:100%!important;min-width:0!important}
  .v7-search input{min-width:0!important;max-width:100%!important}

  .v7-dashboard{overflow-x:hidden!important}
  .v7-stat-grid{gap:10px!important;margin-bottom:10px!important}
  .v7-stat{
    width:100%!important;
    min-width:0!important;
    min-height:112px!important;
    padding:14px!important;
    gap:10px!important;
    border-radius:15px!important;
  }
  .v7-stat__icon{width:44px!important;height:44px!important;font-size:18px!important}
  .v7-stat strong{font-size:21px!important}
  .v7-bento{gap:10px!important;margin-bottom:10px!important}
  .v7-card{max-width:100%!important;min-width:0!important;border-radius:15px!important}

  /* Bottom dock stays inside width and leaves enough room for page content. */
  .sb{max-width:100vw!important}
  .sb-nav{max-width:100%!important}
  .ni{min-width:0!important;overflow:hidden!important}

  /* Generic full-screen modal safe areas on iPhone. */
  .ov.show .modal>.mh{
    padding-top:calc(10px + env(safe-area-inset-top))!important;
  }
  .ov.show .modal>.mf{
    padding-bottom:calc(8px + env(safe-area-inset-bottom))!important;
  }
}

@media(max-width:640px){
  #ov-booking-confirm .bc-modal>.mb{padding:8px!important}
  #ov-booking-confirm .bc-classic-v75{max-width:100%!important;border-radius:0!important}
  #ov-booking-confirm .bc-classic-v75 .slip-head{padding:28px 20px 24px!important}
  #ov-booking-confirm .bc-classic-v75 .crest img{height:58px!important}
  #ov-booking-confirm .bc-classic-v75 .hotel-name{font-size:28px!important;letter-spacing:5px!important}
  #ov-booking-confirm .bc-classic-v75 .hotel-tag{font-size:9px!important;letter-spacing:3px!important}
  #ov-booking-confirm .bc-classic-v75 .doc-title{font-size:19px!important;margin-top:20px!important}
  #ov-booking-confirm .bc-classic-v75 .doc-sub{font-size:12px!important}
  #ov-booking-confirm .bc-classic-v75 .slip-body{padding:22px 18px 6px!important}
  #ov-booking-confirm .bc-classic-v75 .meta{margin-bottom:20px!important;padding-bottom:18px!important}
  #ov-booking-confirm .bc-classic-v75 .code-val{font-size:18px!important}
  #ov-booking-confirm .bc-classic-v75 .iss-val{font-size:14px!important}
  #ov-booking-confirm .bc-classic-v75 .guest-block{padding-bottom:17px!important}
  #ov-booking-confirm .bc-classic-v75 .guest-name{font-size:17px!important;margin-top:6px!important}
  #ov-booking-confirm .bc-classic-v75 .phone-row{padding:17px 0!important;gap:10px!important}
  #ov-booking-confirm .bc-classic-v75 .phone-value{font-size:14px!important}
  #ov-booking-confirm .bc-classic-v75 .info-cards{grid-template-columns:1fr 1fr!important;gap:8px!important;margin:18px 0 20px!important}
  #ov-booking-confirm .bc-classic-v75 .info-card{padding:16px 8px!important;border-radius:10px!important}
  #ov-booking-confirm .bc-classic-v75 .info-value{font-size:15px!important;margin-top:7px!important}
  #ov-booking-confirm .bc-classic-v75 .stay{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;padding:14px 8px!important;gap:6px!important;margin-bottom:20px!important}
  #ov-booking-confirm .bc-classic-v75 .stay .lab{font-size:8.5px!important;letter-spacing:1.2px!important}
  #ov-booking-confirm .bc-classic-v75 .stay .day{font-size:16px!important}
  #ov-booking-confirm .bc-classic-v75 .stay .time{font-size:8.5px!important;white-space:nowrap!important}
  #ov-booking-confirm .bc-classic-v75 .stay .arrow{font-size:18px!important}
  #ov-booking-confirm .bc-classic-v75 .stay .nights{font-size:8.5px!important}
  #ov-booking-confirm .bc-classic-v75 .pay{margin-bottom:20px!important}
  #ov-booking-confirm .bc-classic-v75 .pay-row{padding:11px 12px!important;font-size:11.5px!important}
  #ov-booking-confirm .bc-classic-v75 .pay-row.remain .amt{font-size:12px!important}
  #ov-booking-confirm .bc-classic-v75 .pay-row.total .lab{font-size:9.5px!important}
  #ov-booking-confirm .bc-classic-v75 .pay-row.total .amt{font-size:16px!important}
  #ov-booking-confirm .bc-classic-v75 .note{font-size:12px!important;margin-bottom:12px!important}
  #ov-booking-confirm .bc-classic-v75 .note .nv{font-size:12px!important}
  #ov-booking-confirm .bc-classic-v75 .slip-foot{padding:21px 18px 8px!important;margin-top:12px!important}
  #ov-booking-confirm .bc-classic-v75 .foot-contact{font-size:10.5px!important}
  #ov-booking-confirm .bc-classic-v75 .foot-contact strong{font-size:15px!important}
  #ov-booking-confirm .bc-classic-v75 .thanks{padding:14px 18px 22px!important;font-size:13px!important}
}

@media(max-width:380px){
  .v7-book-toolbar{grid-template-columns:1fr!important}
  .v7-book-toolbar>.v7-search,.v7-book-toolbar>.v7-date-range{grid-column:1!important}
  .v7-segment-row .v7-segment button{font-size:9.5px!important;padding-left:4px!important;padding-right:4px!important}
  #ov-booking-confirm .bc-classic-v75 .stay .day{font-size:14px!important}
  #ov-booking-confirm .bc-classic-v75 .stay .time{font-size:8px!important}
}

/* =====================================================================
   V7.6 — MOBILE-FIRST IPHONE / IOS WEBKIT HARDENING
   Canonical mobile breakpoint: 768px. iPhone UA fallback is applied early
   by index.html via html.is-mobile-ui so landscape iPhones keep this shell.
   ===================================================================== */
:root{
  --safe-top:env(safe-area-inset-top,0px);
  --safe-right:env(safe-area-inset-right,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
  --hestia-vvh:100dvh;
  --hestia-vvw:100vw;
  --v76-bottom-nav-h:64px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
img,svg,canvas,video{max-width:100%;height:auto}
button,a,input,select,textarea,[role="button"]{-webkit-tap-highlight-color:transparent}
button,.btn,[role="button"]{touch-action:manipulation;-webkit-user-select:none;user-select:none}
.mobile-sheet-handle,.mobile-more-nav,.mobile-more-overlay{display:none}

html.is-mobile-ui,html.is-mobile-ui body{
  width:100%!important;
  max-width:100%!important;
  min-height:100svh!important;
  min-height:100dvh!important;
  overscroll-behavior-y:contain!important;
  -webkit-overflow-scrolling:touch;
}
html.is-mobile-ui body{
  margin:0!important;
  overflow:hidden!important;
  background:var(--v7-canvas)!important;
  touch-action:pan-y!important;
}
html.is-mobile-ui .shell,
html.is-mobile-ui .main{
  width:100%!important;
  max-width:100%!important;
  height:var(--hestia-vvh,100dvh)!important;
  min-height:0!important;
  max-height:var(--hestia-vvh,100dvh)!important;
  margin:0!important;
  border-radius:0!important;
  overflow:hidden!important;
}
html.is-mobile-ui .main{display:flex!important;flex-direction:column!important}
html.is-mobile-ui .topbar{
  flex:0 0 auto!important;
  width:100%!important;
  min-width:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  padding-top:max(var(--safe-top),16px)!important;
  padding-right:max(var(--safe-right),12px)!important;
  padding-bottom:10px!important;
  padding-left:max(var(--safe-left),12px)!important;
  background:var(--v7-canvas)!important;
}
html.is-mobile-ui .v7-top-left{min-width:0!important;max-width:none!important}
html.is-mobile-ui .v7-breadcrumb{display:none!important}
html.is-mobile-ui .v7-page-title{
  margin:0!important;
  max-width:100%!important;
  font-size:clamp(20px,5.8vw,26px)!important;
  line-height:1.12!important;
  letter-spacing:-.025em!important;
  overflow-wrap:anywhere!important;
}
html.is-mobile-ui .v7-page-subtitle{margin-top:6px!important;font-size:12px!important;line-height:1.35!important}
html.is-mobile-ui .v7-top-actions{display:flex!important;align-items:center!important;gap:6px!important;min-width:0!important}
html.is-mobile-ui .v7-top-actions button,
html.is-mobile-ui .mc{
  width:44px!important;
  min-width:44px!important;
  height:44px!important;
  min-height:44px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
}
html.is-mobile-ui .con,
html.is-mobile-ui #con{
  position:relative!important;
  flex:1 1 auto!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y!important;
  padding:0 max(var(--safe-right),10px) calc(var(--v76-bottom-nav-h) + var(--safe-bottom) + 18px) max(var(--safe-left),10px)!important;
  scroll-padding-top:12px!important;
  scroll-padding-bottom:calc(var(--v76-bottom-nav-h) + var(--safe-bottom) + 22px)!important;
}
html.is-mobile-ui #con>*,
html.is-mobile-ui #con *{min-width:0}
html.is-mobile-ui #con>.v7-card,
html.is-mobile-ui #con>.v7-table-card,
html.is-mobile-ui .v7-card,
html.is-mobile-ui .v7-table-card,
html.is-mobile-ui .v7-table-wrap,
html.is-mobile-ui .v7-toolbar,
html.is-mobile-ui .v7-book-toolbar,
html.is-mobile-ui .v7-room-toolbar,
html.is-mobile-ui .v7-services-head,
html.is-mobile-ui .ops-hero,
html.is-mobile-ui .setting-card{width:100%!important;max-width:100%!important}

/* Five primary tabs. Secondary modules live in the More bottom sheet. */
html.is-mobile-ui .sb{
  position:fixed!important;
  left:0!important;right:0!important;bottom:0!important;
  z-index:900!important;
  width:100%!important;
  height:calc(var(--v76-bottom-nav-h) + var(--safe-bottom))!important;
  min-height:0!important;
  padding:5px max(var(--safe-right),7px) max(var(--safe-bottom),5px) max(var(--safe-left),7px)!important;
  display:block!important;
  overflow:hidden!important;
  border-radius:18px 18px 0 0!important;
  background:var(--v7-sidebar)!important;
  box-shadow:0 -8px 26px rgba(14,50,53,.20)!important;
}
html.is-mobile-ui .v7-brand,
html.is-mobile-ui .v7-side-search,
html.is-mobile-ui .v7-quick,
html.is-mobile-ui .v7-calendar,
html.is-mobile-ui .v7-user,
html.is-mobile-ui .v7-legacy-status{display:none!important}
html.is-mobile-ui .sb-nav{
  width:100%!important;
  height:100%!important;
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  grid-template-rows:1fr!important;
  gap:4px!important;
  overflow:visible!important;
}
html.is-mobile-ui .sb-nav>.ni:nth-child(n+5){display:none!important}
html.is-mobile-ui .sb-nav>.ni:nth-child(-n+4),
html.is-mobile-ui .mobile-more-nav{
  display:flex!important;
  min-width:44px!important;
  min-height:44px!important;
  height:100%!important;
  align-items:center!important;
  justify-content:center!important;
  flex-direction:column!important;
  gap:2px!important;
  padding:4px 2px!important;
  border:0!important;
  border-radius:10px!important;
  background:transparent!important;
  color:rgba(255,255,255,.82)!important;
  font-size:9px!important;font-weight:500!important;line-height:1.1!important;font-family:inherit!important;
  text-align:center!important;
}
html.is-mobile-ui .sb-nav>.ni.active,
html.is-mobile-ui .mobile-more-nav.active{
  color:#fff!important;
  background:rgba(255,255,255,.11)!important;
  outline:2px solid rgba(244,181,28,.9)!important;
  outline-offset:-2px!important;
}
html.is-mobile-ui .sb-nav .v7-nav__icon{font-size:15px!important;line-height:1!important}

/* iOS control reset: never let Safari zoom a focused form control. */
html.is-mobile-ui input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
html.is-mobile-ui select,
html.is-mobile-ui textarea{
  max-width:100%!important;
  min-height:44px!important;
  font-size:16px!important;
  line-height:1.25!important;
  touch-action:manipulation!important;
}
html.is-mobile-ui textarea{min-height:88px!important;resize:vertical!important}
html.is-mobile-ui .btn,
html.is-mobile-ui button:not(.mobile-more-nav){min-height:44px}
html.is-mobile-ui .v7-row-actions{display:flex!important;gap:6px!important;flex-wrap:wrap!important}
html.is-mobile-ui .v7-row-actions button{min-width:44px!important;width:44px!important;height:44px!important}

/* Toolbars always fit the 320–430px iPhone family. */
html.is-mobile-ui .v7-toolbar,
html.is-mobile-ui .v7-room-toolbar,
html.is-mobile-ui .v7-services-head,
html.is-mobile-ui .v7-segment-row{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  align-items:stretch!important;
  overflow:visible!important;
}
html.is-mobile-ui .v7-book-toolbar{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:9px!important;
  padding:10px!important;
  overflow:hidden!important;
}
html.is-mobile-ui .v7-book-toolbar>*{width:100%!important;max-width:100%!important;margin:0!important}
html.is-mobile-ui .v7-search{width:100%!important;min-width:0!important;max-width:none!important;min-height:46px!important}
html.is-mobile-ui .v7-date-range{
  width:100%!important;
  min-width:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr)!important;
  gap:5px!important;
  align-items:center!important;
}
html.is-mobile-ui .v7-date-range>*{min-width:0!important;max-width:100%!important}
html.is-mobile-ui .v7-segment,
html.is-mobile-ui .v7-subtabs,
html.is-mobile-ui .ops-tabs{
  width:100%!important;
  max-width:100%!important;
  display:flex!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-x:contain!important;
  scrollbar-width:none!important;
}
html.is-mobile-ui .v7-segment::-webkit-scrollbar,
html.is-mobile-ui .v7-subtabs::-webkit-scrollbar,
html.is-mobile-ui .ops-tabs::-webkit-scrollbar{display:none!important}
html.is-mobile-ui .v7-segment button,
html.is-mobile-ui .v7-subtabs button,
html.is-mobile-ui .ops-tabs button{flex:1 0 auto!important;min-width:74px!important;white-space:nowrap!important}

/* Convert data tables to stacked cards/list rows on mobile. Labels are injected
   from the desktop TH text by js/ui/mobile-ui.js. */
html.is-mobile-ui .v7-table-card,
html.is-mobile-ui .v7-table-wrap{overflow:visible!important}
html.is-mobile-ui .v7-table.mobile-card-table{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  border-collapse:separate!important;
}
html.is-mobile-ui .v7-table.mobile-card-table thead{display:none!important}
html.is-mobile-ui .v7-table.mobile-card-table tbody{display:grid!important;gap:10px!important;width:100%!important}
html.is-mobile-ui .v7-table.mobile-card-table tbody tr{
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:10px 12px!important;
  border:1px solid var(--v7-line)!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:var(--v7-card-shadow)!important;
}
html.is-mobile-ui .v7-table.mobile-card-table tbody td{
  display:grid!important;
  grid-template-columns:minmax(86px,34%) minmax(0,1fr)!important;
  align-items:start!important;
  gap:9px!important;
  width:100%!important;
  max-width:100%!important;
  padding:8px 0!important;
  border:0!important;
  border-bottom:1px solid #f0ece5!important;
  white-space:normal!important;
  overflow:visible!important;
  overflow-wrap:anywhere!important;
  font-size:12px!important;
}
html.is-mobile-ui .v7-table.mobile-card-table tbody td:last-child{border-bottom:0!important}
html.is-mobile-ui .v7-table.mobile-card-table tbody td::before{
  content:attr(data-label);
  display:block;
  color:var(--v7-muted);
  font-size:10px;
  font-weight:700;
  line-height:1.35;
  text-transform:uppercase;
  letter-spacing:.045em;
}
html.is-mobile-ui .v7-table.mobile-card-table tbody td[colspan]{display:block!important}
html.is-mobile-ui .v7-table.mobile-card-table tbody td[colspan]::before{display:none!important}

/* Every traditional centered overlay becomes an iPhone bottom sheet. */
html.is-mobile-ui .ov{
  align-items:flex-end!important;
  justify-content:center!important;
  padding:0!important;
  padding-top:max(var(--safe-top),8px)!important;
  overflow:hidden!important;
  overscroll-behavior:contain!important;
}
html.is-mobile-ui .ov.show{display:flex!important}
html.is-mobile-ui .ov.show>.modal{
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  max-height:calc(var(--hestia-vvh,100dvh) - max(var(--safe-top),8px))!important;
  margin:0!important;
  border-radius:20px 20px 0 0!important;
  border-bottom:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  transform:translate3d(0,0,0);
  animation:v76-sheet-in .22s ease-out both;
  will-change:transform;
}
html.is-mobile-ui .ov.show>.modal.is-dragging{animation:none!important;transition:none!important}
@keyframes v76-sheet-in{from{transform:translate3d(0,28px,0);opacity:.96}to{transform:translate3d(0,0,0);opacity:1}}
html.is-mobile-ui .mobile-sheet-handle{
  display:grid!important;
  place-items:center!important;
  flex:0 0 24px!important;
  height:24px!important;
  width:100%!important;
  background:#fffdf9!important;
  touch-action:none!important;
  cursor:grab!important;
}
html.is-mobile-ui .mobile-sheet-handle span{
  display:block!important;
  width:42px!important;
  height:5px!important;
  border-radius:999px!important;
  background:#d8d4cc!important;
}
html.is-mobile-ui .modal>.mh{
  position:relative!important;
  flex:0 0 auto!important;
  min-height:52px!important;
  padding:6px 12px 10px!important;
  background:#fffdf9!important;
  z-index:3!important;
}
html.is-mobile-ui .modal>.mb,
html.is-mobile-ui .ci2-body{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y!important;
  padding-left:12px!important;
  padding-right:12px!important;
}
html.is-mobile-ui .modal>.mf{
  position:relative!important;
  flex:0 0 auto!important;
  z-index:4!important;
  display:flex!important;
  flex-wrap:wrap!important;
  gap:7px!important;
  padding:9px max(var(--safe-right),10px) max(var(--safe-bottom),10px) max(var(--safe-left),10px)!important;
  background:#fffdf9!important;
}
html.is-mobile-ui .modal>.mf .btn{flex:1 1 120px!important;justify-content:center!important}

/* Large workflow sheets use most of the visual viewport, but keep rounded top
   corners and a visible dismiss handle instead of reverting to full-screen. */
html.is-mobile-ui #ov-book .booking-stepper-modal,
html.is-mobile-ui #ov-checkin-v2 .ci2-modal,
html.is-mobile-ui #ov-booking-confirm .bc-modal,
html.is-mobile-ui #ov-inv .inv-modal,
html.is-mobile-ui #ov-import .modal{
  height:min(94dvh,calc(var(--hestia-vvh,100dvh) - max(var(--safe-top),8px)))!important;
  max-height:min(94dvh,calc(var(--hestia-vvh,100dvh) - max(var(--safe-top),8px)))!important;
  border-radius:20px 20px 0 0!important;
}
html.is-mobile-ui #ov-book .mb{padding-bottom:150px!important}
html.is-mobile-ui #ov-book .booking-sticky-summary{
  left:8px!important;right:8px!important;
  bottom:calc(62px + max(var(--safe-bottom),8px))!important;
  grid-template-columns:1fr 1fr!important;
}
html.is-mobile-ui #ov-checkin-v2 .ci2-body{padding-bottom:14px!important}
html.is-mobile-ui #ov-booking-confirm .bc-modal>.mb,
html.is-mobile-ui #ov-inv .inv-modal>.mb{padding:8px!important}

/* More menu bottom sheet */
html.is-mobile-ui .mobile-more-overlay{display:none}
html.is-mobile-ui .mobile-more-overlay.show{display:flex!important}
html.is-mobile-ui .mobile-more-modal{max-height:min(72dvh,560px)!important}
html.is-mobile-ui .mobile-more-grid{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:9px!important;
  padding-bottom:4px!important;
}
html.is-mobile-ui .mobile-more-grid button{
  min-width:0!important;
  min-height:72px!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding:12px!important;
  border:1px solid var(--v7-line)!important;
  border-radius:13px!important;
  background:#fff!important;
  color:var(--v7-text)!important;
  text-align:left!important;
}
html.is-mobile-ui .mobile-more-grid button span{font-size:21px!important}
html.is-mobile-ui .mobile-more-grid button strong{font-size:12px!important}
html.is-mobile-ui .mobile-more-grid button.active{border-color:#e5b83f!important;background:var(--v7-gold-soft)!important}

/* Compact iPhone SE safeguards. */
@media(max-width:380px){
  :root{--v76-bottom-nav-h:62px}
  html.is-mobile-ui .topbar{gap:6px!important;padding-left:max(var(--safe-left),9px)!important;padding-right:max(var(--safe-right),9px)!important}
  html.is-mobile-ui .v7-page-title{font-size:20px!important}
  html.is-mobile-ui .v7-page-subtitle{font-size:11px!important}
  html.is-mobile-ui .v7-top-actions{gap:4px!important}
  html.is-mobile-ui .v7-top-actions button{width:42px!important;min-width:42px!important;height:42px!important;min-height:42px!important}
  html.is-mobile-ui .con,html.is-mobile-ui #con{padding-left:max(var(--safe-left),8px)!important;padding-right:max(var(--safe-right),8px)!important}
  html.is-mobile-ui .mobile-more-grid{grid-template-columns:1fr!important}
  html.is-mobile-ui .v7-table.mobile-card-table tbody td{grid-template-columns:78px minmax(0,1fr)!important}
}

/* Canonical viewport breakpoint requested by the mobile spec. The early
   is-mobile-ui class makes the same rules available to landscape iPhones. */
@media(max-width:768px){
  html:not(.is-mobile-ui){--hestia-vvh:100dvh}
}

/* =====================================================================
   V7.7 ROOM CARD V2 — CANONICAL ROOM MATRIX COMPONENT
   Presentation-only. No booking, finance or Firestore rules are changed.
   ===================================================================== */
.v7-floor-stack{display:grid;gap:12px}
.v7-floor{
  display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;
  padding:12px 14px;border:1px solid var(--v7-line);background:#fffdf9;border-radius:15px;
  overflow:visible;
}
.v7-floor>header{padding:5px 1px;min-width:0}
.v7-floor h3{margin:0;font-size:14px;line-height:1.2;font-weight:700}
.v7-floor header span{display:block;margin-top:4px;font-size:9.5px;color:var(--v7-muted)}
.v7-room-grid{
  min-width:0;max-width:100%;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(180px,210px));
  justify-content:start;align-items:stretch;gap:10px;overflow:visible;
}
.v7-room{
  position:relative;width:100%;max-width:210px;min-width:0;min-height:158px;
  padding:11px 12px 10px;border:1px solid var(--v7-line);border-radius:12px;
  background:#fff;color:var(--v7-text);text-align:left;display:flex;flex-direction:column;
  box-shadow:0 2px 8px rgba(31,39,53,.025);cursor:pointer;outline:none;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease;
}
.v7-room:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(31,39,53,.08)}
.v7-room:focus-visible{box-shadow:0 0 0 3px rgba(244,181,28,.25),0 8px 20px rgba(31,39,53,.08)}
.v7-room.is-available{background:#ECFDF5;border-color:#A7F3D0}
.v7-room.is-occupied{background:#EFF6FF;border-color:#BFDBFE}
.v7-room.is-arrival{background:#FFF8E7;border-color:#FDE68A}
.v7-room.is-checkout-today,.v7-room.is-today{background:#FFF5E8;border-color:#F6C76D}
.v7-room.is-soon{background:#FFF3DE;border-color:#E9A52E;box-shadow:inset 3px 0 #E9A52E}
.v7-room.is-overdue{background:#FFF1F0;border-color:#F0AAA4;box-shadow:inset 3px 0 #D9534F}
.v7-room.is-dirty{background:#FEF3C7;border-color:#FDE68A}
.v7-room.is-ooo{background:#F1F5F9;border-color:#E2E8F0}
.v7-room__top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;min-width:0}
.v7-room__top>strong{font-size:18px;line-height:1;font-weight:800;letter-spacing:-.02em;color:#0f172a}
.v7-room__status{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:0;max-width:60%}
.v7-room__status b{
  min-width:0;max-width:100%;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.72);
  border:1px solid rgba(148,163,184,.2);font-size:7.5px;line-height:1.15;font-weight:800;
  color:var(--v7-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.v7-room__dot{flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:#10B981}
.v7-room.is-occupied .v7-room__dot{background:#3B82F6}.v7-room.is-arrival .v7-room__dot{background:#F59E0B}
.v7-room.is-checkout-today .v7-room__dot,.v7-room.is-today .v7-room__dot,.v7-room.is-soon .v7-room__dot{background:#F59E0B}
.v7-room.is-overdue .v7-room__dot{background:#DC2626}.v7-room.is-dirty .v7-room__dot{background:#D97706}.v7-room.is-ooo .v7-room__dot{background:#64748B}
.v7-room__guest{min-width:0;margin-top:9px;font-size:11.5px;line-height:1.25;font-weight:750;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v7-room__source{min-width:0;margin-top:2px;font-size:9px;line-height:1.2;color:var(--v7-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v7-room__divider{height:1px;margin:8px 0 7px;background:rgba(100,116,139,.14)}
.v7-room__timing{display:grid;gap:2px;min-width:0;font-size:9.5px;line-height:1.25;color:#475569}
.v7-room__timing span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v7-room__timing .is-warning,.v7-room__timing.is-warning{color:#B45309;font-weight:750}
.v7-room.is-overdue .v7-room__timing,.v7-room.is-overdue .v7-room__timing .is-warning{color:#B42318;font-weight:800}
.v7-room__meta-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:6px;min-width:0;font-size:9px;color:var(--v7-text-2)}
.v7-room__meta-row>span:first-child{white-space:nowrap}
.v7-room__alert{min-width:0;max-width:68%;padding:2px 5px;border-radius:999px;background:#fff;border:1px solid rgba(148,163,184,.24);font-size:7.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v7-room__alert.is-tomorrow{color:#9A6700;background:#FFF8E1;border-color:#F2D38B}
.v7-room__alert.is-today,.v7-room__alert.is-soon{color:#A15C00;background:#FFF2D5;border-color:#F0C36A}
.v7-room__alert.is-overdue{color:#B42318;background:#FFF0EE;border-color:#F0AAA4}
.v7-room__next{display:grid;gap:2px;min-width:0;color:#92400E}.v7-room__next strong{font-size:9px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v7-room__next span{font-size:8.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v7-room__next.is-today strong{color:#B45309}.v7-room__ready{font-size:9.5px;color:#047857;font-weight:700}
.v7-room__foot{margin-top:auto;padding-top:8px;display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0}
.v7-room__finance,.v7-room__hk{min-width:0;font-size:9px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v7-room__finance.is-due{color:#B45309;font-weight:800}.v7-room__finance.is-paid{color:#047857;font-weight:700}.v7-room__finance.is-excess{color:#7C5A14;font-weight:750}.v7-room__hk{color:var(--v7-muted)}
.v7-room__menu{
  flex:0 0 28px;width:28px;height:28px;min-width:28px;min-height:28px;padding:0;border:1px solid rgba(148,163,184,.26);
  border-radius:50%;background:rgba(255,255,255,.86);color:#475569;display:grid;place-items:center;font-size:11px;line-height:1;letter-spacing:1px;
}
.v7-room__menu:hover{background:#fff;border-color:#cbd5e1}
.v77-room-actions{
  position:fixed;z-index:4000;width:184px;padding:6px;background:#fff;border:1px solid var(--v7-line);
  border-radius:12px;box-shadow:0 16px 38px rgba(15,23,42,.16);display:grid;gap:2px;
}
.v77-room-actions[hidden]{display:none!important}
.v77-room-actions button{min-height:34px;padding:7px 9px;border:0;border-radius:8px;background:transparent;color:var(--v7-text);font-size:10.5px;font-weight:600;text-align:left}
.v77-room-actions button:hover{background:#f7f6f2}.v77-room-actions button.is-danger{color:#B42318}.v77-room-actions button.is-danger:hover{background:#fff0ef}

@media(max-width:1250px) and (min-width:769px){
  .v7-room-grid{grid-template-columns:repeat(auto-fill,minmax(176px,200px));gap:9px}
  .v7-room{max-width:200px}
}

@media(max-width:768px){
  .v7-floor-stack{gap:9px}
  .v7-floor{grid-template-columns:1fr;gap:8px;padding:10px;border-radius:13px}
  .v7-floor>header{display:flex;justify-content:space-between;align-items:center;padding:1px 2px}
  .v7-floor header span{margin-top:0}
  .v7-room-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));justify-content:stretch;gap:8px;overflow:visible}
  .v7-room{max-width:none;min-height:146px;padding:10px;border-radius:11px}
  .v7-room__top>strong{font-size:17px}
  .v7-room__status{max-width:64%}.v7-room__status b{font-size:7px;padding:3px 5px}
  .v7-room__guest{margin-top:8px;font-size:10.5px}.v7-room__source{display:none}
  .v7-room__divider{margin:7px 0 6px}
  .v7-room__timing{font-size:9.5px}.v7-room__checkin{display:none}
  .v7-room__meta-row{font-size:8.5px;margin-top:5px}.v7-room__alert{font-size:7px;max-width:70%}
  .v7-room__finance,.v7-room__hk{font-size:9px}
  .v7-room__menu{flex-basis:34px;width:34px;height:34px;min-width:34px;min-height:34px}
  .v77-room-actions{width:min(190px,calc(100vw - 20px))}
}

@media(max-width:360px){
  .v7-room-grid{grid-template-columns:1fr}
  .v7-room{min-height:122px}
  .v7-room__source{display:block}
  .v7-room__timing{grid-template-columns:1fr auto;gap:8px}.v7-room__timing .v7-room__checkin{display:none}
  .v7-room__meta-row{margin-top:5px}
}

/* V7.10.4 — booking source is visible beneath the room summary. */
.v7-book-id .v7-book-source{
  display:block;
  max-width:140px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#4d625d;
  font-size:8px;
  font-weight:600;
}
.v7-book-id .v7-book-type{
  display:block;
  margin-top:1px;
  color:var(--v7-muted);
  font-size:7px;
}
@media(max-width:768px){
  .v7-book-card header>div{min-width:0}
  .v7-book-card__room,.v7-book-card__source{display:block!important;max-width:min(66vw,260px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .v7-book-card__source{margin-top:2px;color:#4d625d!important;font-weight:600}
}
