@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600;700&family=Cormorant+Garamond:wght@400;500;600&display=swap";.sidebar{width:var(--sidebar-w);background:var(--navy);z-index:100;border-right:1px solid var(--navy-border);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:8px 0 24px #0d1b2a1f}.sidebar-brand{border-bottom:1px solid var(--navy-border);align-items:center;gap:12px;padding:20px 20px 18px;display:flex}.brand-icon{width:34px;height:34px;color:var(--gold);background:#c9913d14;border:1px solid #e8b56a59;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-family:Cormorant Garamond,serif;font-size:20px;font-weight:700;display:flex}.brand-name{color:var(--white);letter-spacing:.3px;font-family:Cormorant Garamond,serif;font-size:17px;font-weight:600;line-height:1.2}.brand-sub{color:#ffffff59;letter-spacing:.6px;text-transform:uppercase;margin-top:1px;font-size:10px}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:16px 12px;display:flex}.nav-section-label{letter-spacing:1px;text-transform:uppercase;color:#ffffff40;margin-bottom:8px;padding:0 8px;font-size:9.5px;font-weight:700}.nav-item{color:#ffffff8c;transition:all var(--t);border-radius:8px;align-items:center;gap:11px;padding:11px 12px;font-size:13.5px;font-weight:500;display:flex;position:relative}.nav-item:hover{color:#ffffffd9;background:#ffffff0f;transform:translate(2px)}.nav-item--active{color:var(--gold-light);background:#c9913d29;box-shadow:inset 0 0 0 1px #e8b56a14}.nav-item--active:before{content:"";background:var(--gold);border-radius:0 2px 2px 0;width:3px;height:20px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.nav-icon{color:#ffffff8f;letter-spacing:.4px;text-align:center;background:#ffffff0f;border-radius:7px;justify-content:center;align-items:center;width:28px;height:24px;font-size:10px;font-weight:700;display:flex}.nav-item--active .nav-icon{color:var(--gold-light);background:#c9913d38}.sidebar-footer{border-top:1px solid var(--navy-border);padding:16px 20px}.sidebar-footer-info{color:#ffffff6b;background:#ffffff0a;border:1px solid #ffffff0f;border-radius:999px;align-items:center;gap:8px;padding:8px 10px;font-size:11px;display:flex}.footer-dot{background:var(--green);width:7px;height:7px;box-shadow:0 0 6px var(--green);border-radius:50%;flex-shrink:0}@media (width<=768px){.sidebar{display:none}}.header{top:0;left:var(--sidebar-w);height:var(--header-h);background:var(--white);border-bottom:1px solid var(--border);z-index:90;box-shadow:0 1px 0 var(--border);justify-content:space-between;align-items:center;padding:0 32px;display:flex;position:fixed;right:0}.header-left{align-items:center;gap:16px;display:flex}.header-title{color:var(--text-primary);font-family:Cormorant Garamond,serif;font-size:18px;font-weight:600}.header-date{color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:20px;padding:3px 10px;font-size:12px}.header-right{align-items:center;gap:16px;display:flex}.header-user{cursor:pointer;align-items:center;gap:10px;display:flex}.user-avatar{background:linear-gradient(135deg, var(--navy) 0%, var(--navy-light) 100%);width:34px;height:34px;color:var(--gold-light);border:2px solid var(--gold-muted);border-radius:50%;justify-content:center;align-items:center;font-family:Cormorant Garamond,serif;font-size:14px;font-weight:700;display:flex}.user-info{flex-direction:column;display:flex}.user-name{color:var(--text-primary);font-size:13px;font-weight:600;line-height:1.2}.user-role{color:var(--text-muted);font-size:11px}@media (width<=768px){.header{padding:0 16px;left:0}.header-date{display:none}}.dash-welcome{justify-content:space-between;align-items:flex-end;margin-bottom:24px;display:flex}.dash-heading{color:var(--text-primary);letter-spacing:-.3px;font-family:Cormorant Garamond,serif;font-size:30px;font-weight:600}.dash-sub{color:var(--text-secondary);margin-top:3px;font-size:13px}.dash-total-guests{color:var(--text-muted);background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:20px;padding:6px 16px;font-size:13px}.dash-total-guests span{color:var(--navy);font-family:Cormorant Garamond,serif;font-size:16px;font-weight:700}.stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.stat-grid--ops{grid-template-columns:repeat(6,1fr)}.stat-card{background:var(--white);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);transition:box-shadow var(--t), transform var(--t);align-items:center;gap:16px;padding:20px;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex}.stat-card--navy .stat-icon{background:var(--navy);color:var(--gold-light)}.stat-card--green .stat-icon{background:var(--green-bg);color:var(--green)}.stat-card--gold .stat-icon{background:var(--gold-muted);color:var(--gold)}.stat-card--blue .stat-icon{background:var(--blue-bg);color:var(--blue)}.stat-value{color:var(--text-primary);font-family:Cormorant Garamond,serif;font-size:32px;font-weight:600;line-height:1}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;margin-top:3px;font-size:12px;font-weight:600}.stat-sub{color:var(--text-muted);margin-top:2px;font-size:11px}.dash-bottom{grid-template-columns:1fr 320px;gap:20px;display:grid}.ops-today-grid{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;display:grid}.dash-card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.dash-card-title{color:var(--text-primary);font-size:14px;font-weight:600}.dash-card-link{color:var(--gold);transition:color var(--t);font-size:12px;font-weight:500}.dash-card-link:hover{color:var(--gold-light)}.res-id{color:var(--text-muted);font-family:DM Mono,monospace;font-size:12px}.room-status-list{max-height:360px;padding:8px 0;overflow-y:auto}.room-status-row{border-bottom:1px solid var(--border);transition:background var(--t);justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.room-status-row:last-child{border-bottom:none}.room-status-row:hover{background:var(--surface-2)}.room-status-left{align-items:center;gap:10px;display:flex}.room-num{color:var(--text-primary);min-width:36px;font-size:13px;font-weight:600}.room-type-sm{color:var(--text-muted);font-size:11.5px}.ops-list{padding:8px 0}.ops-row,.activity-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.ops-row:last-child,.activity-row:last-child{border-bottom:none}.ops-row strong,.ops-row span{display:block}.ops-row span{color:var(--text-muted);font-size:12px}.ops-empty{color:var(--text-muted);padding:18px 20px;font-size:13px}.activity-card{margin-top:20px}.activity-action{color:var(--text-primary);font-size:12px;font-weight:700}.activity-message{color:var(--text-secondary);margin-top:2px;font-size:13px}.activity-meta{text-align:right;color:var(--text-muted);min-width:150px;font-size:11.5px}.activity-meta span,.activity-meta time{display:block}@media (width<=1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.dash-bottom{grid-template-columns:1fr}.stat-grid--ops,.ops-today-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.stat-grid{grid-template-columns:1fr}.dash-welcome{flex-direction:column;align-items:flex-start;gap:12px}.stat-grid--ops,.ops-today-grid{grid-template-columns:1fr}.activity-row{flex-direction:column;align-items:flex-start}.activity-meta{text-align:left}}.toolbar-count{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:12px}.price-cell{color:var(--text-primary);font-weight:600}.price-cell span{color:var(--text-muted);margin-left:1px;font-size:12px;font-weight:400}.room-board{padding:20px}.floor-section+.floor-section{margin-top:22px}.floor-header{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.floor-header h2{color:var(--text-primary);font-size:15px}.floor-header span{color:var(--text-muted);font-size:12px}.room-card-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.room-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:14px}.room-card-top,.room-card-details,.room-card-footer{justify-content:space-between;gap:10px;display:flex}.room-card-top{align-items:flex-start;margin-bottom:12px}.room-card-number{color:var(--text-primary);font-weight:700;display:block}.room-card-type,.room-card-details{color:var(--text-secondary);font-size:12.5px}.room-status-dot{background:var(--gray);border-radius:50%;width:10px;height:10px;margin-top:4px}.room-card--available .room-status-dot{background:var(--green)}.room-card--booked .room-status-dot{background:var(--blue)}.room-card--occupied .room-status-dot{background:var(--yellow)}.room-card--cleaning .room-status-dot{background:var(--gold)}.room-card--maintenance .room-status-dot{background:var(--gray)}.room-card-footer{border-top:1px solid var(--border);align-items:center;margin-top:12px;padding-top:12px}.availability-panel{margin-bottom:22px;padding:20px}.availability-form{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.availability-form .form-group{min-width:190px}.availability-summary{grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:18px;display:grid}.availability-summary>div,.availability-room-card,.availability-empty{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow)}.availability-summary>div{padding:14px 16px}.summary-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;font-size:11px;display:block}.availability-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.availability-room-card{padding:16px}.availability-room-top,.availability-room-meta,.availability-price{justify-content:space-between;gap:10px;display:flex}.availability-room-top{align-items:center;margin-bottom:12px}.room-number{color:var(--text-primary);font-weight:700}.availability-room-meta{color:var(--text-secondary);margin-bottom:14px;font-size:13px}.availability-price{border-top:1px solid var(--border);color:var(--text-secondary);padding-top:12px}.availability-price strong{color:var(--gold)}.availability-empty{color:var(--text-secondary);padding:28px}@media (width<=700px){.availability-form{flex-direction:column;align-items:stretch}.availability-summary{grid-template-columns:1fr}}.res-stats{gap:12px;margin-bottom:20px;display:flex}.res-stat{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);box-shadow:var(--shadow);align-items:center;gap:10px;padding:10px 20px;font-size:12.5px;display:flex}.res-stat-val{font-family:Cormorant Garamond,serif;font-size:22px;font-weight:600;line-height:1}.res-stat-blue{color:var(--blue)}.res-stat-green{color:var(--green)}.res-stat-red{color:var(--red)}.res-id-cell{color:var(--text-muted);letter-spacing:.3px;font-family:monospace;font-size:12px}.price-cell{font-weight:600}.reservation-estimate{background:var(--gold-muted);border-radius:var(--radius-sm);color:var(--text-secondary);border:1px solid #c9913d40;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;display:flex}.estimate-total strong{color:var(--gold);font-size:15px}.customer-name-cell{align-items:center;gap:12px;display:flex}.customer-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:flex}.customer-name{color:var(--text-primary);font-size:13.5px;font-weight:600}.customer-id{color:var(--text-muted);margin-top:1px;font-size:11px}.email-cell{color:var(--text-secondary);font-size:13px}.res-count-badge{background:var(--gold-muted);color:var(--gold);border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.action-btns{gap:6px;display:flex}:root{--navy:#0d1b2a;--navy-light:#162539;--navy-border:#1e3049;--gold:#c9913d;--gold-light:#e8b56a;--gold-muted:#c9913d26;--white:#fff;--bg:#f4f5f7;--surface:#fff;--surface-2:#f8f9fb;--text-primary:#1a2332;--text-secondary:#5a6a7e;--text-muted:#8a9ab0;--border:#e4e8ed;--border-strong:#cdd3db;--green:#27ae60;--green-bg:#eafaf1;--red:#e74c3c;--red-bg:#fdedec;--yellow:#f39c12;--yellow-bg:#fef9e7;--blue:#2980b9;--blue-bg:#ebf5fb;--gray:#7f8c8d;--gray-bg:#f2f3f4;--sidebar-w:240px;--header-h:64px;--radius:10px;--radius-sm:6px;--shadow:0 1px 4px #00000014, 0 4px 16px #0000000a;--shadow-md:0 4px 12px #0000001a, 0 8px 32px #0000000f;--t:.18s ease}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:DM Sans,sans-serif;font-size:14px;line-height:1.5}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.app-layout{min-height:100vh;display:flex}.main-content{margin-left:var(--sidebar-w);padding-top:var(--header-h);min-height:100vh;transition:margin-left var(--t);flex:1}.page-content{max-width:1280px;padding:28px 32px}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h1{color:var(--text-primary);letter-spacing:-.3px;font-family:Cormorant Garamond,serif;font-size:28px;font-weight:600}.page-header p{color:var(--text-secondary);margin-top:2px;font-size:13px}.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow)}.btn{border-radius:var(--radius-sm);transition:all var(--t);white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;display:inline-flex}.btn-primary{background:var(--navy);color:var(--white);border-color:var(--navy)}.btn-primary:hover{background:var(--navy-light);border-color:var(--navy-light);box-shadow:0 2px 8px #0d1b2a40}.btn-gold{background:var(--gold);color:var(--white);border-color:var(--gold)}.btn-gold:hover{background:var(--gold-light);border-color:var(--gold-light);box-shadow:0 2px 8px #c9913d4d}.btn-outline{color:var(--text-secondary);border-color:var(--border-strong);background:0 0}.btn-outline:hover{background:var(--surface-2);color:var(--text-primary);border-color:var(--border-strong)}.btn-danger{background:var(--red-bg);color:var(--red);border-color:#e74c3c33}.btn-danger:hover{background:var(--red);color:#fff}.btn-icon{padding:6px 10px}.btn-sm{padding:5px 11px;font-size:12px}.btn:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.table-container{overflow-x:auto}table{border-collapse:collapse;width:100%}thead tr{border-bottom:1px solid var(--border)}thead th{text-align:left;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);white-space:nowrap;padding:11px 16px;font-size:11px;font-weight:600}tbody tr{border-bottom:1px solid var(--border);transition:background var(--t)}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--surface-2)}tbody td{color:var(--text-primary);padding:13px 16px;font-size:13.5px}.badge{letter-spacing:.2px;border-radius:20px;align-items:center;gap:5px;padding:3px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.badge-dot{border-radius:50%;width:6px;height:6px}.badge-available{background:var(--green-bg);color:var(--green)}.badge-active{background:var(--blue-bg);color:var(--blue)}.badge-completed{background:var(--green-bg);color:var(--green)}.badge-occupied{background:var(--yellow-bg);color:var(--yellow)}.badge-booked{background:var(--blue-bg);color:var(--blue)}.badge-cleaning{background:var(--gold-muted);color:var(--gold)}.badge-maintenance{background:var(--gray-bg);color:var(--gray)}.badge-cancelled{background:var(--red-bg);color:var(--red)}.badge-single{background:var(--blue-bg);color:var(--blue)}.badge-double{background:var(--gold-muted);color:var(--gold)}.badge-suite{color:#8e44ad;background:#9b59b61f}.form-group{flex-direction:column;gap:5px;display:flex}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;font-size:12px;font-weight:600}.form-group input,.form-group select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-primary);background:var(--white);transition:border-color var(--t), box-shadow var(--t);outline:none;padding:9px 12px;font-size:13.5px}.form-group input:focus,.form-group select:focus{border-color:var(--navy);box-shadow:0 0 0 3px #0d1b2a14}.toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:16px 20px;display:flex}.search-wrap{flex:1;min-width:180px;max-width:320px;position:relative}.search-wrap .search-icon{color:var(--text-muted);pointer-events:none;font-size:15px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-wrap input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);width:100%;color:var(--text-primary);transition:border-color var(--t), background var(--t);outline:none;padding:8px 12px 8px 34px;font-size:13px}.search-wrap input:focus{background:var(--white);border-color:var(--navy);box-shadow:0 0 0 3px #0d1b2a12}.filter-select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-primary);cursor:pointer;transition:border-color var(--t);outline:none;padding:8px 12px;font-size:13px}.filter-select:focus{border-color:var(--navy)}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;background:#0a121c8c;justify-content:center;align-items:center;padding:20px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--white);width:100%;max-width:520px;max-height:90vh;box-shadow:var(--shadow-md);border-radius:14px;animation:.2s slideUp;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-header h2{color:var(--text-primary);font-family:Cormorant Garamond,serif;font-size:21px;font-weight:600}.modal-close{color:var(--text-muted);cursor:pointer;transition:color var(--t), background var(--t);background:0 0;border:none;border-radius:4px;padding:4px;font-size:20px}.modal-close:hover{color:var(--text-primary);background:var(--surface-2)}.modal-body{flex-direction:column;gap:16px;padding:20px 24px;display:flex}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.loading-state{color:var(--text-muted);justify-content:center;align-items:center;gap:10px;padding:60px 20px;font-size:13px;display:flex}.empty-state{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:60px 20px;display:flex}.empty-state .empty-icon{opacity:.4;font-size:36px}.empty-state p{font-size:14px}.error-state,.form-error{background:var(--red-bg);color:var(--red);border-radius:var(--radius-sm);border:1px solid #e74c3c33}.error-state{margin:16px 20px;padding:12px 14px;font-size:13px}.form-error{padding:10px 12px;font-size:12.5px}@media (width<=768px){:root{--sidebar-w:0px}.main-content{margin-left:0}.page-content{padding:20px 16px}.form-row{grid-template-columns:1fr}}
