:root{--color-bg:#0f0f0f;--color-bg-surface:#1a1a1a;--color-bg-surface-raised:#232323;--color-border:#2f2f2f;--color-gold:#d4af37;--color-gold-light:#e8c862;--color-gold-muted:#a3872b;--color-green:#2d3e2c;--color-green-light:#3f5540;--color-text-primary:#f5f5f0;--color-text-secondary:#a3a3a3;--color-text-muted:#6b6b6b;--color-success:#4a7c59;--color-warning:#d4af37;--color-danger:#a8402f;--font-sans:"Inter", system-ui, sans-serif;--radius-sm:6px;--radius-md:10px;--radius-lg:16px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}button{cursor:pointer;font-family:inherit}input{font-family:inherit}.app-loading{min-height:100vh;color:var(--color-text-secondary);justify-content:center;align-items:center;display:flex}@media print{.sidebar,.topbar,.no-print{display:none!important}.dashboard-main{margin-left:0!important}.dashboard-content{padding:0!important}.print-area{color:#000!important}}.install-banner{background:var(--color-bg-surface);border:1px solid var(--color-gold-muted);border-radius:var(--radius-md);z-index:500;align-items:center;gap:.75rem;max-width:420px;margin:0 auto;padding:.9rem 1rem;display:flex;position:fixed;bottom:1rem;left:1rem;right:1rem;box-shadow:0 8px 24px #0006}.install-banner-text{flex-direction:column;flex:1;gap:.15rem;display:flex}.install-banner-text strong{color:var(--color-text-primary);font-size:.85rem}.install-banner-text span{color:var(--color-text-secondary);font-size:.72rem}.install-banner-actions{align-items:center;gap:.5rem;display:flex}.install-banner-btn-primary{background:var(--color-gold);color:#1a1a0a;border-radius:var(--radius-sm);white-space:nowrap;border:none;padding:.5rem .9rem;font-size:.8rem;font-weight:600}.install-banner-btn-dismiss{color:var(--color-text-muted);background:0 0;border:none;padding:.2rem .4rem;font-size:1.1rem}.ios-install-steps{color:var(--color-text-secondary);flex-direction:column;gap:.6rem;margin-bottom:1rem;padding-left:1.2rem;font-size:.88rem;display:flex}@media (width<=600px){.install-banner{flex-direction:column;align-items:stretch;gap:.5rem;max-width:none;padding:.75rem;left:.5rem;right:.5rem}.install-banner-text{text-align:center}.install-banner-actions{flex-wrap:wrap;justify-content:center}.install-banner-btn-primary{text-align:center;flex:1;padding:.5rem 1rem}.install-banner-btn-dismiss{background:var(--color-bg-surface);border-radius:50%;padding:.25rem .5rem;font-size:1.3rem;line-height:1;position:absolute;top:.25rem;right:.5rem}.modal-card{max-width:95vw;margin:1rem auto;padding:1rem}.ios-install-steps{gap:.4rem;font-size:.8rem}}.login-screen{background:radial-gradient(circle at top,#1a1a1a 0%,#0f0f0f 70%);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:380px;padding:2.5rem 2rem}.login-brand{text-align:center;margin-bottom:2rem}.login-brand h1{color:var(--color-gold);letter-spacing:.02em;font-size:1.75rem}.login-brand p{color:var(--color-text-secondary);margin-top:.25rem;font-size:.875rem}.login-form{flex-direction:column;gap:1.25rem;display:flex}.login-form label{color:var(--color-text-secondary);flex-direction:column;gap:.4rem;font-size:.85rem;display:flex}.login-form input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);outline:none;padding:.7rem .85rem;font-size:.95rem;transition:border-color .15s}.login-form input:focus{border-color:var(--color-gold)}.login-form button{background:var(--color-gold);color:#1a1a0a;border-radius:var(--radius-sm);border:none;margin-top:.5rem;padding:.75rem;font-size:.95rem;font-weight:600;transition:background .15s}.login-form button:hover:not(:disabled){background:var(--color-gold-light)}.login-form button:disabled{opacity:.6;cursor:not-allowed}.login-error{color:var(--color-danger);font-size:.85rem}.sidebar{background:var(--color-bg-surface);border-right:1px solid var(--color-border);z-index:40;flex-direction:column;width:260px;height:100vh;transition:transform .2s;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.sidebar-overlay{display:none}.sidebar-brand{border-bottom:1px solid var(--color-border);align-items:center;gap:.75rem;padding:1.5rem 1.25rem;display:flex}.sidebar-brand-mark{border-radius:var(--radius-sm);background:var(--color-gold);color:#1a1a0a;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.85rem;font-weight:700;display:flex}.sidebar-brand-name{color:var(--color-text-primary);font-size:.95rem;font-weight:600}.sidebar-brand-sub{color:var(--color-text-muted);font-size:.7rem}.sidebar-nav{flex:1;padding:1rem .75rem}.sidebar-section{margin-bottom:1.25rem}.sidebar-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:.4rem;padding:0 .5rem;font-size:.7rem}.sidebar-link{border-radius:var(--radius-sm);color:var(--color-text-secondary);align-items:center;gap:.65rem;padding:.55rem .6rem;font-size:.875rem;text-decoration:none;transition:background .12s,color .12s;display:flex}.sidebar-link:hover{background:var(--color-bg-surface-raised);color:var(--color-text-primary)}.sidebar-link-active{background:var(--color-green);color:var(--color-gold-light)}.sidebar-icon{text-align:center;width:1.25rem;font-size:1rem}@media (width<=900px){.sidebar{transform:translate(-100%)}.sidebar-open{transform:translate(0)}.sidebar-overlay{z-index:30;background:#00000080;display:block;position:fixed;inset:0}}.topbar{border-bottom:1px solid var(--color-border);background:var(--color-bg-surface);z-index:20;align-items:center;height:64px;padding:0 1.5rem;display:flex;position:sticky;top:0}.topbar-menu-btn{color:var(--color-text-primary);background:0 0;border:none;font-size:1.25rem;display:none}.topbar-spacer{flex:1}.topbar-install-btn{border:1px solid var(--color-gold-muted);color:var(--color-gold-light);border-radius:var(--radius-sm);white-space:nowrap;background:0 0;margin-right:1rem;padding:.45rem .85rem;font-size:.8rem}.topbar-install-btn:hover{border-color:var(--color-gold);color:var(--color-gold)}.topbar-user{align-items:center;gap:1rem;display:flex}.topbar-user-info{text-align:right}.topbar-user-name{color:var(--color-text-primary);font-size:.85rem;font-weight:500}.topbar-user-role{color:var(--color-gold-muted);font-size:.7rem}.topbar-signout{border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-sm);background:0 0;padding:.45rem .85rem;font-size:.8rem;transition:border-color .12s,color .12s}.topbar-signout:hover{border-color:var(--color-danger);color:var(--color-danger)}@media (width<=900px){.topbar-menu-btn{display:block}.topbar-install-btn span{display:none}}@media (width<=600px){.topbar{height:56px;padding:0 .75rem}.topbar-menu-btn{font-size:1.5rem}.topbar-install-btn{margin-right:.5rem;padding:.4rem .6rem;font-size:.75rem}.topbar-user{gap:.5rem}.topbar-user-name{display:none}.topbar-user-role{color:var(--color-gold);font-size:.78rem}.topbar-signout{padding:.4rem .65rem;font-size:.75rem}}@media (width<=400px){.topbar{padding:0 .5rem}.topbar-install-btn{margin-right:.3rem;padding:.35rem .5rem;font-size:.7rem}.topbar-signout{padding:.35rem .5rem;font-size:.7rem}.topbar-user-role{font-size:.68rem}.modal-card{max-width:95vw;margin:.5rem auto;padding:1rem}}.dashboard-shell{min-height:100vh;display:flex}.dashboard-main{flex-direction:column;flex:1;min-width:0;margin-left:260px;display:flex}.dashboard-content{flex:1;padding:1.75rem}@media (width<=900px){.dashboard-main{margin-left:0}}@media (width<=600px){.dashboard-content{padding:1rem .75rem}}@media (width>=601px) and (width<=900px){.dashboard-content{padding:1.25rem}}.skeleton-block{background:linear-gradient(90deg, var(--color-bg-surface-raised) 0%, #2c2c2c 50%, var(--color-bg-surface-raised) 100%);background-size:200% 100%;animation:1.4s ease-in-out infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.page-title{color:var(--color-text-primary);font-size:1.5rem}.page-subtitle{color:var(--color-text-secondary);margin-top:.25rem;margin-bottom:1.75rem;font-size:.9rem}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.1rem 1.25rem}.stat-card-label{color:var(--color-text-secondary);margin-bottom:.5rem;font-size:.78rem}.stat-card-value{color:var(--color-gold);font-size:1.5rem;font-weight:600}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.25rem;display:grid}.chart-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem 1.25rem .75rem}.chart-card-title{color:var(--color-text-secondary);margin-bottom:.75rem;font-size:.85rem;font-weight:500}.dashboard-note{color:var(--color-text-muted);margin-top:1.75rem;font-size:.8rem;font-style:italic}.chart-empty-note{color:var(--color-text-muted);text-align:center;padding:2rem 0;font-size:.85rem;font-style:italic}.stat-card-subtitle{color:var(--color-text-muted);margin-top:.35rem;font-size:.68rem}@media (width<=600px){.stat-grid{grid-template-columns:1fr;gap:.75rem}.chart-grid{grid-template-columns:1fr}.stat-card{padding:1rem}.stat-card-value{font-size:1.3rem}.page-title{font-size:1.25rem}.page-subtitle{margin-bottom:1.25rem;font-size:.8rem}.dashboard-note{font-size:.75rem}}@media (width>=601px) and (width<=1024px){.stat-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}}@media (width>=1400px){.chart-grid{grid-template-columns:repeat(auto-fit,minmax(450px,1fr))}}.status-badge{letter-spacing:.02em;border-radius:999px;align-items:center;padding:.25rem .65rem;font-size:.72rem;font-weight:600;display:inline-flex}.status-vacant{color:#6fbd85;background:#4a7c5926}.status-occupied{color:var(--color-gold-light);background:#d4af3726}.status-reserved{color:var(--color-gold-muted);background:#a3872b26}.status-cleaning{color:var(--color-text-secondary);background:#a3a3a326}.status-out{color:#e0705c;background:#a8402f26}.status-paid{color:#6fbd85;background:#4a7c592e;border:1px solid #6fbd8559}.status-default{color:var(--color-text-secondary);background:#a3a3a326}.room-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:.5rem;padding:1.1rem;display:flex}.room-card-header{justify-content:space-between;align-items:center;display:flex}.room-card-number{color:var(--color-gold);font-size:1.15rem;font-weight:700}.room-card-type{color:var(--color-text-secondary);font-size:.85rem}.room-card-price{color:var(--color-text-primary);font-size:.95rem;font-weight:500}.room-card-meta{border-top:1px solid var(--color-border);justify-content:space-between;margin-top:.5rem;padding-top:.75rem;font-size:.75rem;display:flex}.room-card-meta div{flex-direction:column;gap:.2rem;display:flex}.room-card-meta-label{color:var(--color-text-muted)}.room-card-edit-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-sm);background:0 0;margin-top:.6rem;padding:.5rem;font-size:.82rem;transition:border-color .12s,color .12s}.room-card-edit-btn:hover{border-color:var(--color-gold);color:var(--color-gold)}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:420px;padding:1.5rem}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.modal-header h2{color:var(--color-gold);font-size:1.1rem}.modal-close{color:var(--color-text-secondary);background:0 0;border:none;font-size:1.4rem;line-height:1}.modal-form{flex-direction:column;gap:1rem;display:flex}.modal-form label{color:var(--color-text-secondary);flex-direction:column;gap:.4rem;font-size:.85rem;display:flex}.modal-form input,.modal-form select{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);outline:none;padding:.6rem .75rem;font-size:.9rem}.modal-form input:focus,.modal-form select:focus{border-color:var(--color-gold)}.modal-error{color:var(--color-danger);font-size:.82rem}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.modal-btn-secondary{border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-sm);background:0 0;padding:.55rem 1rem;font-size:.85rem}.modal-btn-primary{background:var(--color-gold);color:#1a1a0a;border-radius:var(--radius-sm);border:none;padding:.55rem 1.1rem;font-size:.85rem;font-weight:600}.modal-btn-primary:disabled{opacity:.6}.rooms-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.75rem;display:flex}.rooms-filter{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);outline:none;padding:.55rem .85rem;font-size:.85rem}.rooms-filter:focus{border-color:var(--color-gold)}.rooms-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.rooms-error{color:var(--color-danger);margin-bottom:1rem;font-size:.85rem}.rooms-empty{color:var(--color-text-muted);grid-column:1/-1;font-size:.9rem}.countdown-badge{white-space:nowrap;border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.68rem;font-weight:600;display:inline-flex}.countdown-normal{color:var(--color-text-secondary);background:#a3a3a326}.countdown-warning{color:var(--color-gold-light);background:#d4af372e}.countdown-overdue{color:#e0705c;background:#a8402f33}.modal-card-wide{max-width:640px;max-height:90vh;overflow-y:auto}.reservation-form{flex-direction:column;gap:.5rem;display:flex}.form-section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-gold-muted);margin-top:.75rem;margin-bottom:.5rem;font-size:.78rem}.form-grid{grid-template-columns:1fr 1fr;gap:.9rem;display:grid}.form-grid label{color:var(--color-text-secondary);flex-direction:column;gap:.35rem;font-size:.82rem;display:flex}.form-grid input,.form-grid select{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);outline:none;padding:.55rem .7rem;font-size:.88rem}.form-grid input:focus,.form-grid select:focus{border-color:var(--color-gold)}@media (width<=600px){.form-grid{grid-template-columns:1fr}}.availability-hint{color:var(--color-text-muted);margin-bottom:.5rem;font-size:.85rem;font-style:italic}.calendar-wrapper{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:1.75rem;padding:1.25rem}.calendar-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.calendar-range-label{color:var(--color-text-secondary);font-size:.85rem;font-weight:500}.calendar-legend{color:var(--color-text-secondary);flex-wrap:wrap;gap:1.25rem;margin-bottom:1rem;font-size:.75rem;display:flex}.calendar-legend span{align-items:center;gap:.4rem;display:flex}.legend-dot{background:var(--color-bg);border:1px solid var(--color-border);border-radius:3px;width:10px;height:10px;display:inline-block}.calendar-scroll{overflow-x:auto}.calendar-table{border-collapse:collapse;width:100%;min-width:900px}.calendar-room-col{background:var(--color-bg-surface);z-index:2;text-align:left;border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);min-width:70px;padding:.5rem .75rem;position:sticky;left:0}.calendar-room-label{color:var(--color-gold);font-size:.85rem;font-weight:600}.calendar-date-col{text-align:center;border-bottom:1px solid var(--color-border);min-width:62px;padding:.4rem .25rem;font-weight:400}.calendar-date-weekday{color:var(--color-text-muted);text-transform:uppercase;font-size:.65rem}.calendar-date-day{color:var(--color-text-primary);font-size:.85rem}.calendar-cell{border-bottom:1px solid var(--color-border);text-align:center;vertical-align:middle;border-right:1px solid #ffffff08;height:40px;padding:0 4px;font-size:.65rem}.calendar-guest-name{text-overflow:ellipsis;white-space:nowrap;color:#1a1a0a;max-width:60px;font-weight:600;display:inline-block;overflow:hidden}.cal-cell-occupied{background:var(--color-gold)}.cal-cell-paid{background:#4a7c59}.cal-cell-paid .calendar-guest-name{color:#eafaf0}.cal-cell-reserved{background:var(--color-gold-muted)}.cal-cell-pending{background:#a3a3a366}.calendar-departure-chip{white-space:nowrap;text-overflow:ellipsis;border-radius:4px;margin-top:1px;padding:1px 4px;font-size:.58rem;display:block;overflow:hidden}.departure-normal{color:var(--color-text-secondary);background:#a3a3a340}.departure-warning{color:var(--color-gold-light);background:#d4af374d}.departure-overdue{color:#ff9b85;background:#a8402f59}.receipt-overlay{z-index:200;background:#000000b3;flex-direction:column;align-items:center;padding:2rem 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.receipt-toolbar{gap:.75rem;margin-bottom:1.5rem;display:flex}.receipt-paper{color:#111;background:#fff;border-radius:4px;width:320px;padding:1.5rem 1.25rem;font-family:Courier New,monospace;font-size:.8rem}.receipt-header{text-align:center;margin-bottom:.5rem}.receipt-header h2{letter-spacing:.05em;font-size:1.1rem}.receipt-divider{text-align:center;color:#666;margin:.5rem 0;font-size:.7rem}.receipt-section-title{margin-bottom:.3rem;font-weight:700}.receipt-row{justify-content:space-between;gap:.5rem;padding:.15rem 0;display:flex}.receipt-total{font-weight:700}.receipt-footer{text-align:center;margin-top:.75rem}.receipt-footer-small{color:#666;font-size:.7rem}@media print{.no-print{display:none!important}.receipt-overlay{background:0 0;padding:0;position:static}.receipt-paper{box-shadow:none;width:100%}}.detail-grid{border-bottom:1px solid var(--color-border);grid-template-columns:repeat(2,1fr);gap:.9rem;margin-bottom:1.25rem;padding-bottom:1.25rem;display:grid}.detail-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;display:block}.detail-value{color:var(--color-text-primary);text-transform:capitalize;margin-top:.2rem;font-size:.9rem;display:block}.detail-actions{flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;display:flex}.detail-section{margin-bottom:1.5rem}.detail-section h3{color:var(--color-gold-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.6rem;font-size:.82rem}.detail-list{color:var(--color-text-secondary);flex-direction:column;gap:.4rem;margin-bottom:.75rem;font-size:.85rem;list-style:none;display:flex}.detail-list li{background:var(--color-bg);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:.4rem .6rem;display:flex}.detail-list-amount{color:var(--color-gold);font-weight:500}.detail-list-date{color:var(--color-text-muted);white-space:nowrap;margin-left:auto;margin-right:.75rem;font-size:.72rem}.detail-list-empty{color:var(--color-text-muted);font-style:italic;background:0 0!important;padding:.2rem .6rem!important}.inline-form{flex-wrap:wrap;gap:.5rem;display:flex}.inline-form select,.inline-form input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);outline:none;padding:.5rem .65rem;font-size:.82rem}.inline-form input[type=text]{flex:1;min-width:120px}.inline-form button{background:var(--color-green);color:var(--color-gold-light);border-radius:var(--radius-sm);border:none;padding:.5rem 1rem;font-size:.82rem;font-weight:500}.detail-summary{border-top:1px solid var(--color-border);flex-direction:column;gap:.4rem;padding-top:1rem;font-size:.88rem;display:flex}.detail-summary>div{color:var(--color-text-secondary);justify-content:space-between;display:flex}.balance-due span:last-child{color:var(--color-danger);font-weight:600}.balance-clear span:last-child{color:var(--color-success);font-weight:600}.pending-notice{color:var(--color-gold-light);border-radius:var(--radius-sm);background:#d4af371a;border:1px solid #d4af374d;margin-bottom:1.25rem;padding:.7rem .9rem;font-size:.82rem}.res-filter-bar{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.1rem;display:flex}.res-filter-search{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:220px;color:var(--color-text-primary);outline:none;flex:1;padding:.6rem .85rem;font-size:.85rem}.res-filter-search:focus{border-color:var(--color-gold)}.res-filter-select{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);outline:none;padding:.6rem .75rem;font-size:.85rem}.res-filter-select:focus{border-color:var(--color-gold)}.res-filter-date-label{color:var(--color-text-muted);flex-direction:column;gap:.3rem;font-size:.72rem;display:flex}.res-filter-date{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);outline:none;padding:.55rem .65rem;font-size:.82rem}.res-filter-date:focus{border-color:var(--color-gold)}.res-filter-clear{border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-sm);white-space:nowrap;background:0 0;padding:.6rem .9rem;font-size:.8rem}.res-filter-clear:hover{border-color:var(--color-danger);color:var(--color-danger)}@media (width<=700px){.res-filter-bar{flex-direction:column;align-items:stretch}}.res-filter-count{color:var(--color-text-muted);margin-bottom:.85rem;font-size:.78rem}@media (width<=600px){.res-filter-search,.res-filter-select,.res-filter-date-label,.res-filter-date{box-sizing:border-box;width:100%}.res-filter-date-label{gap:.2rem}.res-filter-clear{text-align:center;width:100%;padding:.6rem .9rem}.res-filter-bar{gap:.6rem;padding:.85rem}}@media (width<=400px){.res-filter-date-label{flex-direction:column;align-items:flex-start}}.page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.75rem;display:flex}.primary-btn{background:var(--color-gold);color:#1a1a0a;border-radius:var(--radius-sm);border:none;padding:.65rem 1.15rem;font-size:.88rem;font-weight:600}.primary-btn:hover{background:var(--color-gold-light)}.table-wrapper{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:auto hidden}.data-table{border-collapse:collapse;width:100%;font-size:.85rem}.data-table th{text-align:left;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border);padding:.85rem 1rem;font-size:.75rem;font-weight:500}.data-table td{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);padding:.85rem 1rem}.data-table tr:last-child td{border-bottom:none}.table-capitalize{text-transform:capitalize}.table-empty{text-align:center;color:var(--color-text-muted);padding:2rem 1rem!important}.table-action-btn{border:1px solid var(--color-border);color:var(--color-gold-muted);border-radius:var(--radius-sm);background:0 0;padding:.4rem .85rem;font-size:.78rem}.table-action-btn:hover{border-color:var(--color-gold);color:var(--color-gold)}.checklist-progress{color:var(--color-gold-muted);margin-bottom:1rem;font-size:.82rem}.checklist-section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-top:1rem;margin-bottom:.6rem;font-size:.75rem}.checklist-grid{grid-template-columns:repeat(2,1fr);gap:.5rem;display:grid}.checklist-item{color:var(--color-text-secondary);border-radius:var(--radius-sm);background:var(--color-bg);cursor:pointer;align-items:center;gap:.6rem;padding:.4rem .5rem;font-size:.85rem;display:flex}.checklist-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-gold)}.checklist-damage-notes{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;color:var(--color-text-primary);resize:vertical;outline:none;margin-top:.6rem;padding:.6rem;font-family:inherit;font-size:.85rem}.checklist-damage-notes:focus{border-color:var(--color-gold)}@media (width<=600px){.checklist-grid{grid-template-columns:1fr}}.hk-assign-wrapper{flex-direction:column;gap:.3rem;display:flex}.hk-assign-label-text{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.68rem}.hk-assign-select{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);outline:none;width:100%;padding:.45rem .55rem;font-size:.8rem;transition:border-color .12s}.hk-assign-select:hover{border-color:var(--color-gold-muted)}.hk-assign-select:focus{border-color:var(--color-gold)}.hk-assigned-label{color:var(--color-text-secondary);padding:.45rem 0;font-size:.8rem}.duty-list{flex-direction:column;gap:.6rem;list-style:none;display:flex}.duty-list-item{background:var(--color-bg);border-radius:var(--radius-sm);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem .9rem;display:flex}.duty-list-main{flex:1;align-items:flex-start;gap:.6rem;min-width:200px;display:flex}.duty-status-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;margin-top:.35rem}.duty-status-pending{background:var(--color-gold-muted)}.duty-status-done{background:#6fbd85}.duty-list-area{color:var(--color-text-primary);font-size:.88rem;font-weight:500}.duty-list-housekeeper{color:var(--color-text-secondary);font-weight:400}.duty-list-notes{color:var(--color-text-secondary);margin-top:.15rem;font-size:.78rem}.duty-list-completed-meta{color:#6fbd85;margin-top:.25rem;font-size:.72rem}.duty-list-actions{flex-wrap:wrap;gap:.5rem;display:flex}.duty-complete-form{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.duty-complete-form input{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);outline:none;min-width:140px;padding:.4rem .6rem;font-size:.78rem}.duty-calendar-wrapper{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem}.duty-calendar-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.duty-calendar-month-label{color:var(--color-gold);font-size:.95rem;font-weight:600}.duty-calendar-hint{color:var(--color-text-muted);margin-bottom:1rem;font-size:.78rem}.duty-calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.duty-calendar-weekday{text-align:center;color:var(--color-text-muted);text-transform:uppercase;padding-bottom:.4rem;font-size:.7rem}.duty-calendar-cell{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);flex-direction:column;gap:.25rem;min-height:84px;padding:.35rem;display:flex}.duty-calendar-cell-empty{background:0 0;border:none}.duty-calendar-cell-clickable{cursor:pointer;transition:border-color .12s}.duty-calendar-cell-clickable:hover{border-color:var(--color-gold)}.duty-calendar-cell-today{border-color:var(--color-gold);box-shadow:inset 0 0 0 1px var(--color-gold)}.duty-calendar-day-num{color:var(--color-text-secondary);font-size:.75rem;font-weight:500}.duty-calendar-entries{flex-direction:column;gap:2px;display:flex;overflow:hidden}.duty-calendar-chip{white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:1px 5px;font-size:.62rem;overflow:hidden}.duty-chip-scheduled{color:var(--color-gold-muted);background:#a3872b33}.duty-chip-done{color:#6fbd85;background:#4a7c5933}.duty-calendar-more{color:var(--color-text-muted);font-size:.6rem}.duty-calendar-loading{text-align:center;color:var(--color-text-muted);grid-column:1/-1;padding:2rem 0}@media (width<=700px){.duty-calendar-cell{min-height:60px}.duty-calendar-chip{display:none}}.hk-tabs{border-bottom:1px solid var(--color-border);gap:.5rem;margin:1.25rem 0 1.75rem;display:flex}.hk-tab{color:var(--color-text-secondary);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.65rem 1rem;font-size:.85rem;font-weight:500}.hk-tab:hover{color:var(--color-text-primary)}.hk-tab-active{color:var(--color-gold);border-bottom-color:var(--color-gold)}.hk-section{margin-bottom:2rem}.hk-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}.hk-room-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:.75rem;padding:1rem;display:flex}.hk-priority{border-color:var(--color-gold-muted)}.hk-room-header{justify-content:space-between;align-items:center;display:flex}.hk-room-number{color:var(--color-gold);font-size:1.1rem;font-weight:700}.hk-room-meta{color:var(--color-text-muted);font-size:.78rem}.hk-empty{color:var(--color-text-muted);grid-column:1/-1;font-size:.9rem}.hk-type-badge{border-radius:999px;padding:.2rem .55rem;font-size:.68rem;font-weight:600;display:inline-flex}.hk-type-duty{color:var(--color-gold-muted);background:#a3872b26}.hk-type-cleaning{color:#6fbd85;background:#4a7c5926}.hk-timing-good{color:#6fbd85;font-size:.78rem;font-weight:500}.hk-timing-late{color:var(--color-text-muted);font-size:.78rem}.staff-role-select{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);outline:none;padding:.4rem .6rem;font-size:.8rem}.staff-role-select:focus{border-color:var(--color-gold)}.staff-status-active{color:var(--color-success);font-size:.8rem;font-weight:500}.staff-status-inactive{color:var(--color-danger);font-size:.8rem;font-weight:500}.staff-credentials-box{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.85rem 1rem}.inventory-alerts{flex-direction:column;gap:.6rem;margin-bottom:1.5rem;display:flex}.inventory-alert{border-radius:var(--radius-sm);padding:.7rem 1rem;font-size:.82rem}.inventory-alert-low{color:#e0705c;background:#a8402f1f;border:1px solid #a8402f4d}.inventory-alert-expiry{color:var(--color-gold-light);background:#d4af371f;border:1px solid #d4af374d}.date-range-filter{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:.5rem;width:fit-content;padding:.35rem;display:flex}.date-range-btn{color:var(--color-text-secondary);border-radius:var(--radius-sm);background:0 0;border:none;padding:.5rem 1rem;font-size:.82rem;font-weight:500}.date-range-btn:hover{color:var(--color-text-primary)}.date-range-btn-active{background:var(--color-gold);color:#1a1a0a}.custom-range-row{gap:1rem;margin-top:.85rem;display:flex}.custom-range-row label{color:var(--color-text-secondary);flex-direction:column;gap:.35rem;font-size:.78rem;display:flex}.custom-range-row input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);outline:none;padding:.5rem .7rem;font-size:.85rem}.custom-range-row input:focus{border-color:var(--color-gold)}@media (width<=600px){.date-range-filter{flex-wrap:wrap;justify-content:flex-start;width:100%}.date-range-btn{padding:.4rem .75rem;font-size:.78rem}.custom-range-row{flex-direction:column;gap:.75rem}.custom-range-row label{width:100%}}.activity-feed{flex-direction:column;gap:.1rem;max-height:420px;display:flex;overflow-y:auto}.activity-row{border-bottom:1px solid var(--color-border);gap:.75rem;padding:.65rem .25rem;display:flex}.activity-dot{background:var(--color-gold);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:.4rem}.activity-title{color:var(--color-text-primary);text-transform:capitalize;font-size:.85rem}.activity-meta{color:var(--color-text-muted);margin-top:.15rem;font-size:.75rem}.activity-empty{color:var(--color-text-muted);text-align:center;padding:1.5rem 0;font-size:.85rem;font-style:italic}.hk-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--color-gold-muted);margin-bottom:.85rem;font-size:.85rem}.stat-card-change{margin-top:.4rem;font-size:.72rem;font-weight:500}.top-performers-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1rem;display:grid}.print-only-title,.print-only-subtitle{display:none}@media print{.print-only-title{color:#000;margin-bottom:.25rem;font-size:1.3rem;display:block}.print-only-subtitle{color:#444;margin-bottom:1rem;font-size:.9rem;display:block}.stat-card,.chart-card{break-inside:avoid;color:#000!important;background:#fff!important;border:1px solid #ccc!important}.stat-card-label,.chart-card-title{color:#555!important}}.audit-filter-bar{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.1rem;display:flex}.audit-details-cell{background:var(--color-bg)!important;padding:0!important}.audit-details-json{color:var(--color-text-secondary);white-space:pre-wrap;word-break:break-word;margin:0;padding:1rem 1.5rem;font-family:Courier New,monospace;font-size:.78rem}.audit-pagination{justify-content:center;align-items:center;gap:1rem;margin-top:1.25rem;display:flex}.audit-page-label{color:var(--color-text-secondary);font-size:.82rem}.account-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem}@media (width<=600px){.detail-grid{grid-template-columns:1fr;gap:1rem}.modal-form{max-width:100%!important}.modal-btn-primary{text-align:center;width:100%}.account-card{padding:1rem}.page-title{font-size:1.35rem}}@media (width>=601px) and (width<=900px){.detail-grid{grid-template-columns:repeat(2,1fr)}}
