.fo-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem}.fo-header,.fo-toolbar{display:flex;gap:1rem;flex-wrap:wrap}.fo-toolbar{align-items:flex-end;margin-bottom:1rem}.fo-toolbar--split{align-items:center;justify-content:space-between;margin-bottom:.85rem}.fo-toolbar-title{margin:0;font-size:1rem}.fo-toolbar-field{margin:0;width:auto;min-width:0;flex-shrink:0}.fo-toolbar-field label{font-size:.72rem;font-weight:600;letter-spacing:.02em;color:var(--muted);margin-bottom:.3rem}.fo-filter-select{min-width:9.5rem;padding:.45rem 2rem .45rem .65rem;font-family:inherit;font-size:.8125rem;color:var(--text);background-color:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.fo-rack-card{margin-bottom:1.25rem}.fo-rack-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem 1.25rem;flex-wrap:wrap;margin-bottom:.85rem}.fo-rack-heading{min-width:0}.fo-rack-meta{margin:.35rem 0 0;font-size:.8125rem;color:var(--muted)}.fo-rack-hint{margin:.35rem 0 0;font-size:.75rem;color:var(--ph-secondary)}.fo-rack-filters{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-end;gap:.65rem .75rem}.fo-rack-density{display:inline-flex;align-items:stretch;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg)}.fo-density-btn{border:none;background:transparent;padding:.45rem .65rem;font-family:inherit;font-size:.75rem;font-weight:500;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}.fo-density-btn+.fo-density-btn{border-left:1px solid var(--border)}.fo-density-btn:hover{color:var(--text);background:var(--ph-surface-container-low)}.fo-density-btn.active{background:var(--accent-soft);color:var(--ph-secondary);font-weight:600}.room-rack-scroll{max-height:min(28rem,55vh);overflow:auto;overscroll-behavior:contain;padding-right:.15rem;margin-right:-.15rem}.room-rack-empty{color:var(--muted);text-align:center;margin:1rem 0}.room-rack-grid--compact{grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.4rem}.room-rack-grid--compact .room-rack-tile{min-height:4.75rem;padding:.45rem .5rem;gap:.25rem}.room-rack-grid--compact .room-rack-status-badge{font-size:.58rem;padding:.1rem .35rem}.room-rack-status-badge{font-size:.65rem}.room-rack-departure{font-size:.7rem;color:var(--muted)}.room-rack-action-btn{padding:.25rem .5rem;font-size:.7rem;margin:0}@media (max-width:720px){.fo-rack-header{flex-direction:column;align-items:stretch}.fo-rack-filters{justify-content:stretch}.fo-rack-density{width:100%}.fo-density-btn{flex:1 1}}@media (max-width:520px){.fo-toolbar--split{flex-direction:column;align-items:stretch}.fo-filter-select,.fo-toolbar-field{width:100%}}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.75rem;gap:.75rem;margin-bottom:1.25rem}.ops-page-lead{margin:.35rem 0 0;font-size:.8125rem;color:var(--muted);max-width:52ch;line-height:1.45}.reservations-list-card{overflow:hidden}.reservations-list-card.is-fetching{opacity:.92}.reservations-list-card.is-fetching .table-scroll{pointer-events:none}.data-table-skeleton{padding:1rem 1.25rem 1.25rem}.data-table-skeleton .skeleton--table-row:last-child{margin-bottom:0}.metric-row{grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:.75rem}.admin-stat-row,.metric-row{display:grid;gap:.75rem;margin-bottom:1.25rem}.admin-stat-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:.75rem}.metric-row .metric-card{padding:.85rem 1rem;box-shadow:var(--shadow-sm)}.metric-row .metric-value{font-size:1.35rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metric-row .metric-label{font-size:.6875rem;line-height:1.35}@media (max-width:900px){.metric-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.metric-row,.stat-row{grid-template-columns:1fr}}.filter-chip-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.filter-chip{padding:.35rem .75rem;font-size:.75rem;font-weight:600;letter-spacing:.03em;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--ph-surface-container);color:var(--ph-on-secondary-container);cursor:pointer;font-family:var(--font);transition:background .15s,border-color .15s,color .15s}.filter-chip:hover{border-color:var(--ph-outline);color:var(--text)}.filter-chip.active{background:var(--accent-soft);border-color:var(--ph-secondary);color:var(--ph-secondary)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;text-align:left;cursor:pointer;font-family:inherit;color:var(--text);transition:border-color .15s,background .15s}.stat-card:hover{border-color:var(--ph-secondary);background:var(--ph-surface-container-low)}.stat-card-active{border-color:var(--ph-secondary);background:var(--accent-soft)}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.15rem}.metric-label{display:block;font-size:.72rem;color:var(--muted);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.04em}.metric-value{display:block;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--text);line-height:1.1}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem;padding:3rem 1.5rem;color:var(--muted)}.loading-spinner{width:28px;height:28px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.empty-state{text-align:center;padding:2.5rem 1.5rem}.empty-state-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--bg-subtle);color:var(--muted);margin-bottom:.85rem}.empty-state-title{margin:0 0 .35rem;font-weight:600;color:var(--text)}.empty-state-desc{margin:0 auto;max-width:40ch;font-size:.875rem;color:var(--muted);line-height:1.5}.inv-override-panel{margin-top:1.25rem;padding:1rem 1.1rem;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius)}.inv-override-panel-title{margin:0 0 .75rem;font-size:.9rem;font-weight:600}.stat-value{display:block;font-size:1.65rem;font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--text)}.stat-label{display:block;font-size:.78rem;color:var(--muted);margin-top:.25rem;font-weight:500}.data-table-shell,.table-wrap{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-sm)}.data-table-shell--flush{border:none;border-radius:0;box-shadow:none;border-top:1px solid var(--border);margin-top:.85rem}.data-table-toolbar{display:flex;flex-direction:column;gap:.85rem;padding:1rem 1rem 0}.data-table-toolbar .filter-chip-row,.data-table-toolbar .search-row{margin-bottom:0}.data-table-toolbar--reservations{padding:.85rem 1.25rem;border-bottom:1px solid var(--border);background:var(--ph-surface-container-low)}.reservations-toolbar-main{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem 1rem}.reservations-toolbar-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;flex:1 1 420px;min-width:0}.reservations-toolbar-filters .filter-chip{display:inline-flex;align-items:center;min-height:2rem;padding-inline:.7rem;white-space:nowrap}.reservations-toolbar-search{display:flex;align-items:center;gap:.5rem;flex:0 1 320px;min-width:min(100%,240px)}.reservations-toolbar-search input{flex:1 1;min-width:0;height:2rem;padding:0 .75rem;font-size:.875rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-family:inherit;color:var(--text);transition:var(--form-control-transition)}.reservations-toolbar-search input:hover:not(:disabled){border-color:var(--form-control-border-hover)}.reservations-toolbar-search input:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--form-control-focus-ring)}.reservations-search-clear{flex-shrink:0;padding:.35rem .55rem;font-size:.75rem;font-weight:600;font-family:inherit;color:var(--muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:color .15s,background .15s}.reservations-search-clear:hover{color:var(--text);background:var(--ph-surface-container)}.reservations-list-card .data-table-shell--flush{margin-top:0;border-top:none}.data-table--reservations td,.data-table--reservations th{padding:.72rem .9rem}.data-table--reservations td.col-booked,.data-table--reservations th.col-booked{min-width:6.25rem;white-space:nowrap}.data-table--reservations td.col-total,.data-table--reservations th.col-total{min-width:9rem;text-align:right}.reservation-total-payment,.reservation-total-subline{display:block;margin-top:.16rem;font-size:.72rem;line-height:1.25}.reservation-total-subline{color:var(--primary);font-weight:600}.reservation-total-payment{color:var(--muted);text-transform:capitalize}.data-table--reservations td:first-child,.data-table--reservations th:first-child{min-width:8.5rem}.data-table--reservations td:nth-child(4),.data-table--reservations th:nth-child(4){min-width:10.5rem}.data-table-date{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-secondary)}.data-table-amount,.data-table-date{font-size:.8125rem;white-space:nowrap}.data-table-amount{display:inline-block;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text)}@media (max-width:768px){.reservations-page{min-width:0}.reservations-page .booking-page-header{margin-bottom:.85rem}.reservations-page .booking-page-header-row{align-items:stretch;gap:.85rem}.reservations-page .page-header-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.reservations-page .page-header-actions .btn{width:100%}.reservations-page .metric-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-bottom:1rem}.reservations-page .metric-row .metric-card,.reservations-page .metric-row .stat-card{padding:.8rem}.reservations-page .metric-row .metric-value,.reservations-page .metric-row .stat-value{font-size:1.25rem}.data-table-toolbar--reservations{padding:.75rem}.reservations-toolbar-main{flex-direction:column;align-items:stretch;gap:.75rem}.reservations-toolbar-filters{flex-wrap:wrap;flex:0 0 auto;gap:.45rem;max-width:100%;overflow:visible}.reservations-toolbar-filters .filter-chip{flex:0 1 auto;max-width:100%;min-height:2.3rem;padding-inline:.85rem}.reservations-toolbar-search{flex:1 1 auto;max-width:none;width:100%}.reservations-toolbar-search input{height:2.4rem;font-size:1rem}.reservations-toolbar-search .btn{min-height:2.4rem;padding-inline:.85rem}}@media (max-width:520px){.reservations-page .page-header-actions{grid-template-columns:1fr}.reservations-toolbar-filters .filter-chip{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 0.45rem);justify-content:center;text-align:center}.reservations-toolbar-search{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:.5rem;gap:.5rem}.reservations-toolbar-search input{grid-column:1/-1}.reservations-search-clear{min-height:2.35rem;padding-inline:.75rem;border:1px solid var(--border);background:var(--surface)}}@media (max-width:380px){.reservations-page .metric-row{grid-template-columns:1fr}}.table-wrap{overflow-x:auto}.data-table-shell .table-scroll{overflow-x:auto;max-height:min(70vh,720px)}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem}.data-table th{position:-webkit-sticky;position:sticky;top:0;z-index:2;text-align:left;padding:.6rem .85rem;font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;background:var(--ph-surface-container-low);font-weight:600}.data-table td{padding:.65rem .85rem;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);vertical-align:middle;background:var(--surface)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background-color .12s ease}.data-table tbody tr:hover td,.data-table-code{background:var(--ph-surface-container-low)}.data-table-code{display:inline-block;padding:.18rem .45rem;font-family:var(--mono);font-size:.8125rem;font-weight:600;line-height:1.35;letter-spacing:.02em;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text)}.data-table-guest{display:flex;align-items:center;gap:.6rem;min-width:0}.data-table-guest-avatar{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-full);background:var(--accent-soft);color:var(--ph-secondary);font-size:.6875rem;font-weight:700;letter-spacing:.02em}.data-table-guest-name{font-weight:600;color:var(--text);line-height:1.35}.fo-loyalty-member-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:6px}.fo-loyalty-member-badge,.fo-loyalty-tier{display:inline-flex;align-items:center;min-height:20px;border-radius:var(--radius-full);padding:2px 8px;font-size:.72rem;font-weight:800;line-height:1.2;white-space:nowrap}.fo-loyalty-member-badge{border:1px solid rgba(14,165,233,.28);background:rgba(14,165,233,.1);color:#075985}.fo-loyalty-tier{border:1px solid rgba(148,163,184,.32);background:rgba(248,250,252,.9);color:var(--muted)}.data-table-room-type{font-weight:500;color:var(--text);line-height:1.35}.data-table-room-code{display:inline-block;margin-top:.12rem;font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.data-table-room-number{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text)}.data-table-unassigned{display:inline-block;padding:.12rem .4rem;font-size:.75rem;font-style:italic;color:var(--muted);background:var(--ph-surface-container-low);border-radius:var(--radius-sm)}.data-table-stay{display:flex;flex-direction:column;gap:.15rem}.data-table-stay-dates{display:inline-flex;align-items:center;gap:.35rem;font-size:.8125rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap}.data-table-stay-arrow{color:var(--muted);font-size:.7rem;line-height:1}.data-table-action-link{display:inline-flex;align-items:center;justify-content:center;min-height:2rem;padding:.3rem .75rem;font-size:.8125rem;font-weight:600;font-family:inherit;line-height:1.25;color:var(--ph-secondary);background:transparent;border:1px solid color-mix(in srgb,var(--ph-secondary) 35%,var(--border));border-radius:var(--radius-sm);text-decoration:none;white-space:nowrap;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.data-table-action-link:hover{background:var(--accent-soft);border-color:var(--ph-secondary);color:var(--ph-secondary)}.data-table-action-link:focus-visible{outline:2px solid var(--ph-primary);outline-offset:2px}.table-pagination{margin:0;padding:.7rem .85rem;border-top:1px solid var(--border);background:var(--surface-hover)}.table-pagination-inner{display:flex;align-items:center;justify-content:space-between;gap:.75rem 1.25rem;flex-wrap:wrap}.table-pagination-info{margin:0;font-size:.8125rem;color:var(--muted);line-height:1.4}.table-pagination-controls{display:inline-flex;align-items:center;gap:.5rem;margin-left:auto}.table-pagination-page{font-size:.8125rem;font-weight:500;color:var(--text-secondary);padding:0 .35rem;white-space:nowrap}.table-pagination-btn{display:inline-flex;align-items:center;justify-content:center;min-height:2rem;padding:.35rem .75rem;font-size:.8rem;font-weight:500;font-family:inherit;line-height:1.25;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.table-pagination-btn:hover:not(:disabled){background:var(--bg-elevated);border-color:var(--text-secondary)}.table-pagination-btn:focus-visible{outline:2px solid var(--ph-primary);outline-offset:2px}.table-pagination-btn:disabled{opacity:.45;cursor:not-allowed}.data-table--actions .data-table td:last-child,.data-table--actions .data-table th:last-child,.data-table--reservations .data-table td:last-child,.data-table--reservations .data-table th:last-child{width:1%;white-space:nowrap;text-align:right}.data-table--actions .data-table td,.data-table--reservations .data-table td{vertical-align:middle}.data-table-shell--list>:not(.table-pagination){min-width:0}.data-table-action-group{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-end}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.data-table-primary-line{display:block;white-space:nowrap}.cell-muted{font-size:.78rem;color:var(--muted);margin-top:.15rem}.cell-muted-sm{font-size:.72rem;margin-top:.25rem}.mono-code{font-family:var(--mono);font-size:.85rem;color:var(--text-secondary)}.success-panel{text-align:center;padding:2rem 1.5rem}.success-panel h2{color:var(--success);margin-top:0}.room-rack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:.6rem;gap:.6rem}.room-rack-tile{padding:.65rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);display:flex;flex-direction:column;gap:.35rem;min-height:88px;box-shadow:var(--shadow-sm)}.room-rack-tile-header{display:flex;justify-content:space-between;align-items:baseline}.room-rack-guest{font-size:.72rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-rack-actions{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:auto}.rack-vacant-clean{border-color:rgba(16,185,129,.35);background:rgba(16,185,129,.1)}.rack-vacant-dirty{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.12)}.rack-occupied{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.1)}.rack-out-of-order{border-color:rgba(100,116,139,.35);background:rgba(100,116,139,.1);opacity:.95}.rack-vacant-inspected{border-color:rgba(16,185,129,.45);background:rgba(16,185,129,.14)}.search-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:1rem}.search-row .field{flex:1 1;min-width:200px;margin:0}.confirm-dialog-root{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.25rem}.confirm-dialog-backdrop{position:absolute;inset:0;border:none;background:rgba(27,28,29,.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer;animation:confirm-fade-in .18s ease-out}.confirm-dialog-panel{position:relative;z-index:1;width:min(100%,28rem);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:confirm-slide-in .22s ease-out}.confirm-dialog-body{display:flex;gap:.85rem;padding:1.25rem 1.25rem .5rem}.confirm-dialog-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px}.confirm-dialog-icon--default{background:var(--info-bg);color:var(--info-text);border:1px solid var(--info-border)}.confirm-dialog-icon--warning{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}.confirm-dialog-icon--danger{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.confirm-dialog-content{min-width:0}.confirm-dialog-title{margin:0 0 .35rem;font-size:1.05rem;font-weight:600;line-height:1.35;color:var(--text)}.confirm-dialog-description{margin:0;font-size:.9rem;color:var(--muted);line-height:1.5}.confirm-dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.5rem;padding:.85rem 1.25rem 1.25rem}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 1px 2px rgba(185,28,28,.2)}.btn-danger:hover:not(:disabled){background:#991b1b;color:#fff}.btn-warning{background:var(--warning);color:#fff;box-shadow:0 1px 2px rgba(180,83,9,.2)}.btn-warning:hover:not(:disabled){background:#92400e;color:#fff}@keyframes confirm-fade-in{0%{opacity:0}to{opacity:1}}@keyframes confirm-slide-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.sidebar-footer{padding:.85rem 1rem;border-top:1px solid var(--sidebar-border)}.sidebar-cta{width:100%;justify-content:center;font-weight:600;border-radius:var(--radius)}.dash-page{display:flex;flex-direction:column;gap:var(--space-md)}.dash-search-form{display:flex;align-items:center;gap:.5rem;min-width:0}.dash-search-form .dash-search-wrap{flex:1 1;min-width:0}.dash-search-clear{flex-shrink:0;padding:.45rem .65rem;font-size:.75rem;font-weight:600;font-family:inherit;color:var(--muted);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.dash-search-clear:hover{color:var(--text);border-color:var(--ph-outline);background:var(--ph-surface-container-low)}.dash-search-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:.65rem 1rem;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--ph-secondary) 25%,var(--border));border-radius:var(--radius-md);font-size:.8125rem;color:var(--ph-secondary)}.dash-search-banner strong{color:var(--text);font-weight:600}.dash-skeleton-table{padding:1rem 1.25rem 1.5rem}.dash-toolbar{display:grid;grid-template-columns:1fr auto auto;align-items:center;grid-gap:var(--space-md);gap:var(--space-md);padding:var(--space-md);background:var(--ph-surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.dash-search-wrap{position:relative;min-width:0}.dash-search-icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;display:inline-flex}.dash-search-input{width:100%;padding:.65rem .85rem .65rem 2.5rem;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--ph-surface-container-low);font-size:.9rem;font-family:inherit;color:var(--text);transition:var(--form-control-transition)}.dash-search-input:hover:not(:disabled){border-color:var(--form-control-border-hover)}.dash-search-input:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--form-control-focus-ring)}.dash-tabs{display:flex;align-items:center;gap:.15rem;padding:.2rem;background:var(--ph-surface-container-low);border-radius:var(--radius);border:1px solid var(--border)}.dash-tab{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;border:none;border-radius:calc(var(--radius) - 2px);background:transparent;color:var(--muted);font-size:.8125rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s,color .15s}.dash-tab:hover{color:var(--text)}.dash-tab.active{background:var(--ph-primary);color:#fff}.dash-tab-count{font-size:.72rem;font-weight:600;opacity:.85}.dash-toolbar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.revenue-overview-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem;background:linear-gradient(135deg,var(--ph-surface-card),var(--ph-surface-container-low));border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.revenue-overview-title{margin:0 0 .4rem;color:var(--text);font-size:1.5rem;font-weight:600;letter-spacing:-.01em;line-height:1.25}.revenue-overview-lead{margin:0;color:var(--muted);font-size:.9rem;max-width:56ch;line-height:1.55}.revenue-overview-controls{display:flex;align-items:center;gap:.75rem;padding:.45rem;background:color-mix(in srgb,var(--ph-surface-card) 88%,transparent);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-sm)}.revenue-forecast-control,.revenue-forecast-model-control,.revenue-period-control{display:inline-flex;align-items:center;gap:.55rem}.revenue-forecast-model-tabs .revenue-period-tab{min-width:4.8rem}.revenue-control-label{color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.revenue-switch{position:relative;width:2.5rem;height:1.35rem;padding:0;border:none;border-radius:var(--radius-full);background:var(--border-strong);cursor:pointer;transition:background-color .2s ease,box-shadow .2s ease}.revenue-switch span{position:absolute;top:.18rem;left:.18rem;width:.98rem;height:.98rem;border-radius:var(--radius-full);background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.25);transition:transform .2s ease}.revenue-switch.is-on{background:var(--ph-secondary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ph-secondary) 14%,transparent)}.revenue-switch.is-on span{transform:translateX(1.15rem)}.revenue-period-tab:focus-visible,.revenue-switch:focus-visible{outline:2px solid var(--ph-primary);outline-offset:2px}.revenue-control-divider{align-self:stretch;width:1px;min-height:1.6rem;background:var(--border)}.revenue-period-icon{flex-shrink:0;color:var(--muted)}.revenue-period-tabs{display:inline-flex;align-items:center;gap:.2rem;padding:.18rem;background:var(--ph-surface-container-low);border:1px solid var(--border);border-radius:var(--radius-full)}.revenue-period-tab{display:inline-flex;align-items:center;justify-content:center;min-height:1.85rem;padding:.35rem .75rem;border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-secondary);font-family:inherit;font-size:.8125rem;font-weight:650;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.revenue-period-tab:hover{color:var(--text)}.revenue-period-tab.is-active{background:var(--ph-secondary);color:var(--ph-on-secondary);box-shadow:var(--shadow-sm)}.revenue-bottom-grid{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.95fr);grid-gap:var(--space-md);gap:var(--space-md);align-items:start}.revenue-forecast-stack{gap:var(--space-md)}.revenue-forecast-stack,.revenue-room-types-panel{display:flex;flex-direction:column}.revenue-room-types-header{border-bottom:none;padding-bottom:.5rem}.revenue-room-types-count{margin:0;padding:.3rem .6rem;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--ph-surface-container-low);font-weight:600}.revenue-room-types-note{margin:0;padding:0 1.25rem 1rem;border-bottom:1px solid var(--border);line-height:1.55}.revenue-room-types-table-wrap{overflow-x:auto}.revenue-room-types-table{width:100%;min-width:42rem;table-layout:auto;border-collapse:collapse}.revenue-room-types-table thead{background:var(--ph-surface-container-low);border-bottom:1px solid var(--border)}.revenue-room-types-col{padding:.85rem 1rem;font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.revenue-room-types-col--type{width:34%}.revenue-room-types-col--value{width:20%;white-space:nowrap}.revenue-room-types-col--occupancy{width:16%}.revenue-room-types-col--trend{width:10%}.revenue-room-types-col--align-end{text-align:right}.revenue-room-types-col--align-center{text-align:center}.revenue-room-types-row{border-bottom:1px solid var(--border);transition:background-color .15s ease}.revenue-room-types-row:hover{background:var(--ph-surface-container-lowest)}.revenue-room-types-cell{padding:1rem;color:var(--text);font-size:.9rem;vertical-align:middle}.revenue-room-types-cell--type{min-width:0}.revenue-room-types-cell--value{font-size:.95rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.revenue-room-types-cell--align-end{text-align:right}.revenue-room-types-cell--align-center{text-align:center}.revenue-room-type-identity{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.45rem;min-width:0}.revenue-room-type-name{color:var(--text);font-size:.95rem;font-weight:700;line-height:1.35}.revenue-room-type-code{display:inline-flex;align-items:center;padding:.12rem .45rem;border-radius:var(--radius-full);background:var(--ph-surface-container-low);border:1px solid var(--border);color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.revenue-room-types-badge{display:inline-flex;align-items:center;justify-content:center;min-width:4.25rem;padding:.4rem .7rem;border-radius:var(--radius-full);font-size:.78rem;font-weight:800;line-height:1}.revenue-room-types-badge.is-high{background:var(--success-bg);color:var(--success)}.revenue-room-types-badge.is-mid{background:var(--warning-bg);color:var(--warning)}.revenue-room-types-badge.is-low,.revenue-room-types-badge.is-overbooked{background:var(--danger-bg);color:var(--danger)}.revenue-room-types-trend{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-full)}.revenue-room-types-trend.is-up{background:var(--success-bg);color:var(--success)}.revenue-room-types-trend.is-down{background:var(--danger-bg);color:var(--danger)}.revenue-room-types-empty{padding:2rem 1rem;text-align:center;color:var(--muted)}.dash-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--space-md);gap:var(--space-md)}.dash-kpi-card{padding:1.1rem 1.25rem;background:var(--ph-surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.dash-kpi-card--accent .dash-kpi-value{color:var(--ph-status-available)}.dash-kpi-label{display:block;font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem}.dash-kpi-value{display:block;font-size:1.85rem;font-weight:700;letter-spacing:-.02em;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text)}.dash-kpi-meta{display:block;margin-top:.35rem;font-size:.75rem;color:var(--muted)}.dash-kpi-progress{margin-top:.65rem;height:6px;border-radius:var(--radius-full);background:var(--ph-surface-container);overflow:hidden}.dash-kpi-progress span{display:block;height:100%;border-radius:inherit;background:var(--ph-secondary);transition:width .3s ease}.dash-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:var(--space-md);gap:var(--space-md);align-items:start}.dash-main{padding:0;overflow:hidden}.dash-main .empty-state,.dash-main .loading-state{padding:2.5rem 1.5rem}.dash-panel-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.1rem 1.25rem;border-bottom:1px solid var(--border)}.dash-panel-title{margin:0;font-size:1rem;font-weight:600;color:var(--text)}.dash-filter-chips{display:flex;flex-wrap:wrap;gap:.35rem}.dash-filter-chips .filter-chip{min-height:1.85rem}.dash-table-wrap{overflow-x:auto}.dash-table{width:100%;border-collapse:collapse;font-size:.875rem}.dash-table th{text-align:left;padding:.75rem 1.25rem;font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:var(--ph-surface-container-low);white-space:nowrap}.dash-table td,.dash-table th{border-bottom:1px solid var(--border)}.dash-table td{padding:.85rem 1.25rem;vertical-align:middle}.dash-table tbody tr:last-child td{border-bottom:none}.dash-table tbody tr:hover td{background:var(--ph-surface-container-low)}.dash-guest-cell{display:flex;align-items:center;gap:.75rem}.dash-guest-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-soft);color:var(--ph-secondary);font-size:.72rem;justify-content:center;flex-shrink:0}.dash-guest-avatar,.dash-readiness{font-weight:700;display:inline-flex;align-items:center}.dash-readiness{gap:.35rem;padding:.22rem .55rem;border-radius:var(--radius-full);font-size:.65rem;letter-spacing:.04em}.dash-readiness-dot{width:6px;height:6px;border-radius:50%}.dash-readiness--ready{background:rgba(16,185,129,.12);color:#047857}.dash-readiness--ready .dash-readiness-dot{background:var(--ph-status-available)}.dash-readiness--not-ready{background:rgba(245,158,11,.14);color:#92400e}.dash-readiness--not-ready .dash-readiness-dot{background:var(--ph-status-cleaning)}.dash-readiness--pending{background:var(--ph-surface-container);color:var(--muted)}.dash-readiness--pending .dash-readiness-dot{background:var(--ph-status-maintenance)}.dash-view-all{padding:.85rem 1.25rem;text-align:center;border-top:1px solid var(--border)}.dash-view-all a{font-size:.875rem;font-weight:600;color:var(--ph-secondary)}.dash-aside{display:flex;flex-direction:column;gap:var(--space-md)}.dash-quick-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:.65rem;gap:.65rem}.dash-action-card{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem 1.1rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--ph-surface-card);color:var(--text);text-decoration:none;box-shadow:var(--shadow-sm);transition:border-color .15s,background .15s}.dash-action-card:hover{border-color:var(--ph-secondary);text-decoration:none;color:var(--text)}.dash-action-card--primary{background:var(--ph-primary);border-color:var(--ph-primary);color:#fff}.dash-action-card--primary:hover{background:var(--ph-primary-container);border-color:var(--ph-primary-container);color:#fff}.dash-action-label{font-size:.8125rem;font-weight:600;line-height:1.3}.dash-action-icon{font-size:1.1rem;opacity:.85}.dash-action-icon--plus{font-size:1.35rem;font-weight:300}.dash-widget{padding:1rem 1.1rem}.dash-widget-title{margin:0 0 .85rem;font-size:.9rem;font-weight:600;color:var(--text)}.dash-widget-link{display:inline-block;margin-top:.75rem;font-size:.8125rem;font-weight:600}.dash-activity-card{padding:1rem 1.1rem .85rem}.dash-activity-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.85rem}.dash-activity-header .dash-widget-title{margin:0}.dash-activity-live{display:inline-flex;align-items:center;gap:.35rem}.dash-activity-live-dot{width:8px;height:8px;border-radius:50%;background:var(--ph-status-available);box-shadow:0 0 0 3px rgba(16,185,129,.2)}.dash-activity-list{margin:0;padding:0;list-style:none}.dash-activity-item{display:flex;gap:.75rem;padding:.85rem 0;border-bottom:1px solid var(--border)}.dash-activity-item:last-child{border-bottom:none;padding-bottom:0}.dash-activity-icon{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg-subtle);color:var(--muted)}.dash-activity-icon--success{background:rgba(16,185,129,.12);color:#047857}.dash-activity-icon--payment{background:rgba(239,68,68,.1);color:#b91c1c}.dash-activity-icon--reservation{background:rgba(59,130,246,.1);color:#1d4ed8}.dash-activity-icon--warning{background:rgba(245,158,11,.12);color:#92400e}.dash-activity-icon--audit{background:rgba(0,106,97,.1);color:var(--ph-secondary)}.dash-activity-body{min-width:0;flex:1 1}.dash-activity-text{margin:0;font-size:.8125rem;line-height:1.45;color:var(--text-secondary)}.dash-activity-text strong{color:var(--text);font-weight:600}.dash-activity-meta{margin:.25rem 0 0;font-size:.72rem;color:var(--muted)}.dash-activity-empty,.dash-activity-error{margin:0;font-size:.8125rem;color:var(--muted);line-height:1.5}.dash-activity-error{color:var(--danger);margin-bottom:.5rem}.dash-activity-see-all{display:inline-block;margin-top:.85rem;font-size:.8125rem;font-weight:600;color:var(--ph-secondary)}.dash-activity-see-all:hover{text-decoration:underline}.activity-log-page{padding:1rem 1.1rem 1.1rem}.activity-log-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.85rem 1.25rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.activity-log-filters{display:flex;flex-wrap:wrap;gap:.75rem 1rem;flex:1 1 280px}.activity-log-filter-field{min-width:10.5rem;margin:0}.activity-log-filter-field--time{min-width:7rem}.activity-log-filter-field--time input[type=time]{width:100%;padding:.55rem .75rem;background-color:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.9rem;font-family:inherit}.activity-log-filter-field--time input[type=time]:disabled{background:var(--input-disabled-bg);color:var(--text-secondary);cursor:not-allowed;opacity:1}.activity-log-filter-actions{display:flex;flex-wrap:wrap;gap:.5rem}.activity-log-count{margin:0 0 .75rem;font-size:.75rem;color:var(--muted)}.dash-room-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:.45rem;gap:.45rem}.dash-room-tile{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid transparent;font-size:.78rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dash-room-num{line-height:1}.dash-room--available{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.35);color:#047857}.dash-room--occupied{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.35);color:#b91c1c}.dash-room--dirty{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.35);color:#92400e}.dash-room--maintenance{background:rgba(100,116,139,.12);border-color:rgba(100,116,139,.35);color:#475569}.dash-room-legend{display:flex;flex-wrap:wrap;gap:.5rem .85rem;margin:.85rem 0 0;padding:0;list-style:none;font-size:.68rem;color:var(--muted)}.dash-room-legend li{display:inline-flex;align-items:center;gap:.3rem}.dash-legend-dot{width:8px;height:8px;border-radius:50%}.dash-legend-dot--available{background:var(--ph-status-available)}.dash-legend-dot--occupied{background:var(--ph-status-occupied)}.dash-legend-dot--dirty{background:var(--ph-status-cleaning)}.dash-legend-dot--maintenance{background:var(--ph-status-maintenance)}.dash-room-empty{margin:0;font-size:.8125rem;color:var(--muted);text-align:center}.dash-quick-search{padding:1rem 1.1rem;background:var(--ph-primary);border-color:var(--ph-primary);color:#fff}.dash-quick-search-title{margin:0 0 .75rem;font-size:.9rem;font-weight:600;color:#fff}.dash-quick-search-label{display:block;font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.65);margin-bottom:.35rem}.dash-quick-search-row{display:flex;gap:.4rem}.dash-quick-search-row input{flex:1 1;min-width:0;padding:.5rem .75rem;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);background:rgba(255,255,255,.08);color:#fff;font-size:.875rem;font-family:inherit}.dash-quick-search-row input::placeholder{color:rgba(255,255,255,.45)}.dash-quick-search-row input:focus{outline:none;border-color:var(--ph-secondary-container)}.dash-quick-search-actions{display:flex;gap:.5rem;margin-top:.75rem}.dash-quick-search-actions .btn-secondary{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:#fff}.dash-quick-search-actions .btn-secondary:hover:not(:disabled){background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.35);color:#fff}@media (max-width:1100px){.dash-toolbar,.revenue-bottom-grid{grid-template-columns:1fr}.revenue-overview-header{align-items:stretch}.revenue-overview-controls{width:100%;justify-content:space-between}.dash-tabs{overflow-x:auto}.dash-kpi-row{grid-template-columns:repeat(2,1fr)}.dash-body{grid-template-columns:1fr}}@media (max-width:640px){.revenue-overview-header{padding:1rem}.revenue-overview-title{font-size:1.45rem}.revenue-overview-lead{font-size:.9rem}.revenue-overview-controls{flex-direction:column;align-items:stretch;border-radius:var(--radius-lg)}.revenue-forecast-control,.revenue-forecast-model-control,.revenue-period-control{justify-content:space-between;width:100%}.revenue-control-divider{width:100%;min-height:1px}.revenue-period-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;border-radius:var(--radius-lg)}.revenue-forecast-model-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.revenue-forecast-model-tabs .revenue-period-tab{min-width:0}.revenue-period-tab{padding-inline:.45rem}.revenue-room-types-header{gap:.65rem;align-items:flex-start}.revenue-room-types-note{padding:0 1rem .9rem}.revenue-room-types-table{min-width:36rem}.revenue-room-types-cell,.revenue-room-types-col{padding-inline:.8rem}.dash-kpi-row,.dash-quick-actions{grid-template-columns:1fr}.dash-room-grid{grid-template-columns:repeat(3,1fr)}}.dash-allotment-mini{padding:.85rem 1rem}.dash-allotment-mini-header{margin-bottom:0}.dash-allotment-mini-nav{display:flex;align-items:center;gap:.3rem;width:100%;margin:.5rem 0 .35rem}.dash-allotment-mini-nav-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.65rem;height:1.65rem;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--ph-surface-card);color:var(--text-secondary);font-size:.8rem;line-height:1;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.dash-allotment-mini-nav-btn:hover:not(:disabled){border-color:var(--ph-secondary);color:var(--ph-secondary);background:rgba(0,106,97,.06)}.dash-allotment-mini-nav-btn:disabled{opacity:.45;cursor:not-allowed}.dash-allotment-mini-range{flex:1 1;min-width:0;font-size:.6875rem;font-weight:600;color:var(--muted);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-allotment-mini-today{flex-shrink:0;padding:.15rem .45rem;border:none;border-radius:var(--radius-sm);background:rgba(0,106,97,.08);color:var(--ph-secondary);font-size:.625rem;font-weight:600;font-family:inherit;line-height:1.3;cursor:pointer;white-space:nowrap}.dash-allotment-mini-today:hover:not(:disabled){background:rgba(0,106,97,.14)}.dash-allotment-mini-today:disabled{opacity:.45;cursor:not-allowed}.dash-allotment-mini-desc{margin:0 0 .65rem;font-size:.72rem;color:var(--muted);line-height:1.35}.dash-allotment-mini-scroll{overflow-x:auto;margin-bottom:.5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--ph-surface-container-low)}.dash-allotment-mini-scroll.is-loading{opacity:.65}.dash-allotment-mini-table{width:100%;border-collapse:collapse;font-size:.72rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dash-allotment-mini-table td,.dash-allotment-mini-table th{border:1px solid var(--border);padding:.25rem .2rem;text-align:center;vertical-align:middle}.dash-allotment-mini-room-col{position:-webkit-sticky;position:sticky;left:0;z-index:1;min-width:2.5rem;max-width:3rem;text-align:left!important;padding-left:.4rem!important;font-weight:700;font-size:.68rem;background:var(--ph-surface);box-shadow:1px 0 0 var(--border)}.dash-allotment-mini-date-col{min-width:1.65rem;font-weight:600;background:var(--ph-surface-container)}.dash-allotment-mini-cell.is-business-date,.dash-allotment-mini-date-col.is-business-date{box-shadow:inset 0 0 0 2px rgba(59,130,246,.4)}.dash-allotment-mini-date-day{display:block;line-height:1.1}.dash-allotment-mini-cell span{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;min-height:1.25rem;border-radius:2px;font-weight:600}.dash-allotment-mini-cell.avail-high span{background:rgba(34,197,94,.18);color:rgb(21,128,61)}.dash-allotment-mini-cell.avail-low span{background:rgba(245,158,11,.18);color:rgb(180,83,9)}.dash-allotment-mini-cell.avail-none span{background:rgba(239,68,68,.14);color:var(--danger)}.dash-allotment-mini-cell.stop-sales span{text-decoration:line-through;opacity:.75}.dash-allotment-mini-links{display:flex;flex-wrap:wrap;gap:.65rem 1rem;margin-bottom:.25rem}.dash-allotment-mini-footnote{margin:0}