@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Playfair+Display:wght@500;600;700;800&display=swap";
:root{--color-bg-primary:#f7f4ef;--color-bg-secondary:#fff;--color-bg-tertiary:#f0ece2;--color-bg-card:#fff;--color-bg-card-hover:#fbf9f4;--color-bg-glass:#ffffffd9;--color-bg-input:#fff;--color-border:#ede9e0;--color-border-hover:#d8d2c2;--color-border-focus:#af982d80;--color-text-primary:#1a1a1a;--color-text-secondary:#666;--color-text-muted:#aaa;--color-text-inverse:#fff;--color-sidebar-bg:#202e16;--color-sidebar-bg-2:#1a2412;--color-sidebar-border:#ffffff0f;--color-sidebar-text:#e8e2d2;--color-sidebar-text-mute:#9a9381;--color-sidebar-text-dim:#6e6857;--color-primary:#af982d;--color-primary-hover:#c2ab3a;--color-primary-bg:#af982d1a;--gradient-primary:linear-gradient(135deg, #af982d, #807333);--color-accent:#af982d;--color-accent-hover:#c2ab3a;--color-accent-muted:#af982d1f;--color-secondary:#a19551;--color-secondary-bg:#a195511a;--color-success:#27ae60;--color-success-bg:#27ae601a;--color-warning:#e67e22;--color-warning-bg:#e67e221a;--color-danger:#e74c3c;--color-danger-bg:#e74c3c1a;--color-info:#1565c0;--color-info-bg:#1565c01a;--color-purple:#9b6dff;--color-purple-bg:#9b6dff1a;--gradient-gold:linear-gradient(135deg, #c2ab3a 0%, #af982d 50%, #807333 100%);--gradient-card:linear-gradient(180deg, #fff 0%, #fbf9f4 100%);--gradient-sidebar:linear-gradient(180deg, #202e16 0%, #1a2412 100%);--gradient-header:linear-gradient(90deg, #af982d0f, transparent);--gradient-hero:linear-gradient(135deg, #af982d0f 0%, #202e160a 100%);--brand-forest:#202e16;--brand-forest-2:#2c3f1f;--brand-brass:#af982d;--brand-brass-soft:#a19551;--brand-brass-deep:#807333;--brand-cream:#f7f4ef;--brand-paper:#fff;--brand-border:#ede9e0;--brand-ink:#1a1a1a;--brand-ink-mute:#666;--brand-ink-dim:#aaa;--font-family:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-display:"Playfair Display", "Georgia", serif;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.5rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px #202e160d;--shadow-md:0 4px 12px #202e1612;--shadow-lg:0 8px 30px #202e161a;--shadow-xl:0 16px 50px #202e1624;--shadow-glow:0 0 16px #af982d33;--sidebar-width:220px;--sidebar-collapsed:64px;--topbar-height:52px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-bg-primary);min-height:100vh;line-height:1.6}a{color:var(--color-accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent-hover)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#202e162e}::-webkit-scrollbar-thumb:hover{background:#202e1652}.app-layout{min-height:100vh;display:flex}@media print{.print-no-show{display:none!important}body *{visibility:hidden}.print-invoice-template,.print-invoice-template *{visibility:visible}.print-invoice-template{color:#000;z-index:9999;background:#fff;width:100%;margin:0;padding:0;font-family:Inter,Arial,sans-serif;font-size:11pt;position:fixed;inset:0}.print-only-coupon,.print-only-coupon *{visibility:visible}.print-only-coupon{color:#000;z-index:9999;background:#fff;justify-content:center;align-items:center;width:100%;margin:0;padding:0;font-family:Inter,Arial,sans-serif;display:flex;position:fixed;inset:0}.print-invoice-template{visibility:visible!important;display:block!important}.print-invoice-template *{visibility:visible!important}body.voucher-print-mode .print-invoice-template{display:none!important}body.voucher-print-mode .print-only-coupon{z-index:9999;background:#fff;justify-content:center;align-items:center;position:fixed;inset:0;visibility:visible!important;display:flex!important}body.voucher-print-mode .print-only-coupon *{visibility:visible!important}}.print-invoice-template{display:none}@media print{.print-invoice-template{display:block}}.inv-page{color:#111;background:#fff;width:210mm;min-height:297mm;margin:0 auto;padding:12mm 14mm;font-family:Inter,Arial,sans-serif;font-size:9.5pt;line-height:1.5}.inv-header{border-bottom:2.5px solid #b45309;justify-content:space-between;align-items:flex-start;margin-bottom:14px;padding-bottom:10px;display:flex}.inv-hotel-name{color:#92400e;letter-spacing:-.5px;margin-bottom:4px;font-size:22pt;font-weight:900;line-height:1}.inv-hotel-sub{color:#555;letter-spacing:2px;text-transform:uppercase;margin-bottom:6px;font-size:8pt}.inv-hotel-contact{color:#444;font-size:7.5pt;line-height:1.6}.inv-title-block{text-align:right}.inv-title{color:#111;text-transform:uppercase;letter-spacing:1px;font-size:18pt;font-weight:800;line-height:1}.inv-title-sub{color:#777;text-transform:uppercase;letter-spacing:1px;margin-top:2px;font-size:7pt}.inv-meta-row{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.inv-meta-item{text-align:right}.inv-meta-label{color:#888;text-transform:uppercase;letter-spacing:.8px;font-size:6.5pt}.inv-meta-value{color:#111;font-size:9pt;font-weight:700}.inv-info-row{background:#fafafa;border:1px solid #e5e7eb;border-radius:6px;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;padding:10px 14px;display:grid}.inv-info-group{flex-direction:column;gap:3px;display:flex}.inv-info-section-label{text-transform:uppercase;letter-spacing:1px;color:#92400e;border-bottom:1px solid #fde68a;margin-bottom:4px;padding-bottom:3px;font-size:6.5pt;font-weight:700}.inv-info-line{gap:4px;font-size:8.5pt;display:flex}.inv-info-key{color:#666;flex-shrink:0;min-width:80px}.inv-info-val{color:#111;font-weight:600}.inv-table{border-collapse:collapse;width:100%;margin-bottom:14px;font-size:8.5pt}.inv-table thead tr{color:#fff;background:#92400e}.inv-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:#fff;border:none;padding:6px 8px;font-size:7.5pt;font-weight:700}.inv-table th.right,.inv-table td.right{text-align:right}.inv-table th.center,.inv-table td.center{text-align:center}.inv-table td{color:#222;border-bottom:1px solid #e5e7eb;padding:5px 8px;font-size:8.5pt}.inv-table tbody tr:last-child td{border-bottom:2px solid #b45309}.inv-table tbody tr:nth-child(2n) td{background:#fef3c7}.inv-totals{justify-content:flex-end;margin-bottom:14px;display:flex}.inv-totals-table{width:260px;font-size:8.5pt}.inv-totals-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:3px 0;display:flex}.inv-totals-row.total{color:#92400e;border-top:2px solid #b45309;border-bottom:2px solid #b45309;padding:6px 0;font-size:11pt;font-weight:800}.inv-totals-row.paid{color:#166534;font-weight:600}.inv-totals-row.balance{color:#dc2626;background:#fef2f2;border-radius:4px;padding:5px 8px;font-weight:800}.inv-totals-row.balance.settled{color:#166534;background:#f0fdf4}.inv-totals-label{color:#444}.inv-totals-value{font-variant-numeric:tabular-nums;text-align:right;font-weight:700}.inv-tax-box{background:#fffbeb;border:1px solid #fde68a;border-radius:6px;margin-bottom:14px;padding:8px 10px;font-size:8pt}.inv-tax-title{text-transform:uppercase;letter-spacing:1px;color:#92400e;margin-bottom:6px;font-size:7pt;font-weight:700}.inv-tax-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.inv-tax-cell{text-align:center}.inv-tax-cell-label{color:#666;text-transform:uppercase;font-size:6.5pt}.inv-tax-cell-value{color:#92400e;font-size:9pt;font-weight:700}.inv-payments{margin-bottom:14px}.inv-payments-title{text-transform:uppercase;letter-spacing:1px;color:#555;margin-bottom:4px;font-size:7pt;font-weight:700}.inv-payment-row{background:#f0fdf4;border-radius:3px;justify-content:space-between;margin-bottom:2px;padding:3px 6px;font-size:8pt;display:flex}.inv-words{color:#333;background:#f8f9fa;border-left:3px solid #b45309;margin-bottom:16px;padding:6px 10px;font-size:8pt;font-style:italic}.inv-footer{color:#555;border-top:1px solid #e5e7eb;grid-template-columns:1fr 1fr;gap:20px;margin-top:auto;padding-top:10px;font-size:7.5pt;display:grid}.inv-signature{text-align:right}.inv-signature-line{color:#333;border-top:1px solid #999;margin-top:30px;padding-top:4px;font-size:8pt;font-weight:700}.inv-legal{color:#888;font-size:6.5pt;line-height:1.4}.inv-gstin-banner{color:#fff;text-align:center;letter-spacing:1px;background:#92400e;border-radius:3px;margin-bottom:10px;padding:3px;font-size:7pt;font-weight:700}.voucher-container{display:none}@media print{.voucher-print-mode .voucher-container{background:#fff;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:20mm;display:flex}}.voucher-card{color:#1a1a1a;border:1px solid #e5e7eb;border-radius:12px;width:148mm;font-family:Inter,Arial,sans-serif;overflow:hidden;box-shadow:0 4px 20px #00000014}.voucher-header{color:#fff;text-align:center;background:linear-gradient(135deg,#92400e 0%,#b45309 50%,#d97706 100%);padding:16px 20px;position:relative}.voucher-header:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.voucher-hotel-name{letter-spacing:2px;text-transform:uppercase;font-size:14pt;font-weight:900;line-height:1}.voucher-tagline{letter-spacing:3px;text-transform:uppercase;opacity:.85;margin-top:3px;font-size:7pt}.voucher-offer{text-align:center;background:#fffbeb;border-left:4px solid #d97706;border-right:4px solid #d97706;padding:20px;position:relative}.voucher-off-label{letter-spacing:3px;text-transform:uppercase;color:#92400e;font-size:6pt;font-weight:700}.voucher-off-amount{color:#b45309;letter-spacing:-3px;font-size:52pt;font-weight:900;line-height:1}.voucher-off-text{color:#1a1a1a;margin-top:-4px;font-size:11pt;font-weight:700}.voucher-off-sub{color:#666;margin-top:4px;font-size:8pt}.voucher-divider{background:#fff;border-left:4px solid #d97706;border-right:4px solid #d97706;align-items:center;gap:0;display:flex;position:relative}.voucher-divider:before,.voucher-divider:after{content:"";border-top:2px dashed #e5e7eb;flex:1;height:1px}.voucher-scissors{color:#999;margin:0 10px;font-size:14px}.voucher-code-section{color:#fff;background:#1a1a2e;flex-direction:column;align-items:center;gap:4px;padding:14px 20px;display:flex}.voucher-code-label{letter-spacing:3px;text-transform:uppercase;color:#fff9;font-size:6.5pt}.voucher-code{letter-spacing:6px;color:#fbbf24;text-shadow:0 0 20px #fbbf244d;font-family:Courier New,monospace;font-size:20pt;font-weight:900}.voucher-barcode{opacity:.6;justify-content:center;align-items:flex-end;gap:2px;height:24px;margin-top:4px;display:flex}.voucher-barcode-bar{background:#ffffffb3;border-radius:1px;width:2px}.voucher-meta{background:#f8f9fa;border-left:4px solid #d97706;border-right:4px solid #d97706;justify-content:space-between;padding:10px 20px;display:flex}.voucher-meta-item{flex-direction:column;gap:1px;display:flex}.voucher-meta-label{color:#888;text-transform:uppercase;letter-spacing:.5px;font-size:6.5pt}.voucher-meta-value{color:#1a1a1a;font-size:8.5pt;font-weight:700}.voucher-footer{color:#ffffffd9;background:#92400e;border-top:none;padding:8px 20px;font-size:6.5pt;line-height:1.5}.voucher-footer strong{color:#fff;font-weight:700}.sidebar{width:var(--sidebar-width);background:var(--gradient-sidebar);border-right:1px solid var(--color-sidebar-border);z-index:100;transition:width var(--transition-base);color:var(--color-sidebar-text);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar-logo{height:var(--topbar-height);padding:0 var(--space-5);border-bottom:1px solid var(--color-sidebar-border);align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.sidebar-logo .logo-icon{background:var(--brand-brass);border-radius:var(--radius-sm);width:32px;height:32px;font-weight:700;font-size:var(--font-size-md);color:var(--brand-forest);font-family:var(--font-display);letter-spacing:.02em;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-logo .logo-text{font-weight:600;font-size:var(--font-size-sm);letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;color:var(--brand-brass);font-family:var(--font-display)}.sidebar.collapsed .logo-text{display:none}.sidebar-nav{padding:var(--space-4) 0;flex:1;overflow-y:auto}.nav-section{margin-bottom:var(--space-4)}.nav-section-title{padding:var(--space-2) var(--space-5);text-transform:uppercase;letter-spacing:.12em;color:var(--color-sidebar-text-dim);font-size:10px;font-weight:600}.sidebar.collapsed .nav-section-title{display:none}.nav-item{padding:var(--space-2) var(--space-4);align-items:center;gap:var(--space-3);color:var(--color-sidebar-text-mute);cursor:pointer;transition:all var(--transition-fast);border-left:3px solid #0000;font-size:11px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{color:var(--color-sidebar-text);background:#af982d14}.nav-item.active{color:var(--brand-brass);border-left-color:var(--brand-brass);background:#af982d26;font-weight:600}.nav-item .nav-icon{width:20px;height:20px;font-size:var(--font-size-md);flex-shrink:0;justify-content:center;align-items:center;display:flex}.nav-item .nav-label{white-space:nowrap}.sidebar.collapsed .nav-label{display:none}.nav-item .nav-badge{background:var(--color-danger);color:#fff;font-size:var(--font-size-xs);border-radius:var(--radius-full);text-align:center;min-width:18px;margin-left:auto;padding:1px 6px;font-weight:600}.main-content{margin-left:var(--sidebar-width);transition:margin-left var(--transition-base);flex-direction:column;flex:1;min-height:100vh;display:flex}.sidebar.collapsed~.main-content{margin-left:var(--sidebar-collapsed)}.topbar{height:var(--topbar-height);background:var(--brand-paper);border-bottom:1px solid var(--color-border);padding:0 var(--space-6);z-index:50;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar-left{align-items:center;gap:var(--space-4);display:flex}.topbar-toggle{color:var(--color-text-secondary);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast);font-size:var(--font-size-lg);background:0 0;border:none}.topbar-toggle:hover{color:var(--color-text-primary);background:#ffffff0f}.property-switcher{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);display:flex}.property-switcher:hover{border-color:var(--color-border-hover)}.topbar-right{align-items:center;gap:var(--space-4);display:flex}.topbar-search{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:200px;display:flex}.topbar-search input{color:var(--color-text-primary);font-size:var(--font-size-sm);background:0 0;border:none;outline:none;width:100%}.topbar-search input::placeholder{color:var(--color-text-muted)}.topbar-icon-btn{color:var(--color-text-secondary);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast);font-size:var(--font-size-lg);background:0 0;border:none;position:relative}.topbar-icon-btn:hover{color:var(--color-text-primary);background:#ffffff0f}.topbar-icon-btn .badge-dot{background:var(--color-danger);border:2px solid var(--color-bg-secondary);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}.user-menu{align-items:center;gap:var(--space-3);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);transition:all var(--transition-fast);display:flex}.user-menu:hover{background:#ffffff0a}.user-avatar{border-radius:var(--radius-full);background:var(--gradient-gold);width:34px;height:34px;font-weight:700;font-size:var(--font-size-sm);color:var(--color-text-inverse);justify-content:center;align-items:center;display:flex}.user-info{flex-direction:column;display:flex}.user-info .user-name{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:600;line-height:1.2}.user-info .user-role{font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.2}.page-content{padding:var(--space-6);flex:1}.page-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.page-header-left{gap:var(--space-1);flex-direction:column;display:flex}.page-header-right{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.page-title{font-family:var(--font-display);font-size:var(--font-size-2xl);color:var(--color-text-primary);letter-spacing:.01em;font-weight:600;line-height:1.2}.page-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:0}.page-hero{padding:var(--space-6) var(--space-6) var(--space-4);background:var(--gradient-hero);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-6)}.card{background:var(--brand-paper);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-6);transition:all var(--transition-base)}.card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md)}.card-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--font-size-md);color:var(--color-text-primary);font-weight:600}.stats-grid{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.stat-card{background:var(--brand-paper);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);transition:all var(--transition-base);position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--brand-brass);opacity:0;height:2px;transition:opacity var(--transition-base);position:absolute;top:0;left:0;right:0}.stat-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md)}.stat-card:hover:before{opacity:1}.stat-label{color:var(--color-text-secondary);letter-spacing:.06em;text-transform:uppercase;margin-bottom:var(--space-3);font-size:11px;font-weight:600}.stat-value{font-family:var(--font-display);font-size:var(--font-size-3xl);color:var(--color-text-primary);margin-bottom:var(--space-1);letter-spacing:-.005em;font-variant-numeric:tabular-nums;font-weight:600;line-height:1.1}.stat-change{font-size:var(--font-size-xs);align-items:center;gap:var(--space-1);font-weight:600;display:flex}.stat-change.positive{color:var(--color-success)}.stat-change.negative{color:var(--color-danger)}.stat-icon{border-radius:var(--radius-md);width:44px;height:44px;font-size:var(--font-size-xl);top:var(--space-5);right:var(--space-5);justify-content:center;align-items:center;display:flex;position:absolute}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);font-family:var(--font-family);font-size:var(--font-size-sm);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand-forest);color:var(--brand-paper);border-color:var(--brand-forest)}.btn-primary:hover:not(:disabled){background:var(--brand-forest-2);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--brand-paper);color:var(--color-text-primary);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){border-color:var(--brand-brass);background:var(--color-accent-muted);color:var(--brand-brass-deep)}.btn-ghost{color:var(--color-text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){color:var(--brand-brass-deep);background:var(--color-accent-muted)}.btn-brass{background:var(--brand-brass);color:var(--brand-paper);border-color:var(--brand-brass)}.btn-brass:hover:not(:disabled){background:var(--brand-brass-deep);box-shadow:var(--shadow-glow)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626;box-shadow:0 0 15px #ef44444d}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-md)}.form-group{margin-bottom:var(--space-5)}.form-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2);font-weight:500;display:block}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base);transition:all var(--transition-fast);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-accent-muted)}.form-input::placeholder{color:var(--color-text-muted)}.form-textarea{resize:vertical;min-height:100px}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}table{border-collapse:collapse;width:100%}thead{background:var(--color-bg-tertiary)}th{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);font-weight:600}td{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}tr:hover td{background:var(--color-accent-muted);color:var(--color-text-primary)}tr:last-child td{border-bottom:none}.grid{gap:var(--space-4);display:grid}.divider{background:var(--color-border);height:1px;margin:var(--space-4) 0}.divider-label{align-items:center;gap:var(--space-3);color:var(--color-text-muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;margin:var(--space-5) 0;font-weight:600;display:flex}.divider-label:before,.divider-label:after{content:"";background:var(--color-border);flex:1;height:1px}.breadcrumb{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-5);display:flex}.breadcrumb-item{align-items:center;gap:var(--space-2);display:flex}.breadcrumb-item a{color:var(--color-text-muted);transition:color var(--transition-fast);text-decoration:none}.breadcrumb-item a:hover{color:var(--color-text-primary)}.breadcrumb-item.active{color:var(--color-text-primary);font-weight:500}.breadcrumb-sep{color:var(--color-text-muted);opacity:.5;font-size:var(--font-size-xs)}.tabs{border-bottom:1px solid var(--color-border);margin-bottom:var(--space-6);gap:0;display:flex}.tab{padding:var(--space-3) var(--space-5);font-size:var(--font-size-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);font-weight:500;font-family:var(--font-family);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000}.tab:hover{color:var(--color-text-primary)}.tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:600}.tooltip-wrap{display:inline-flex;position:relative}.tooltip-wrap[data-tip]:after{content:attr(data-tip);background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-primary);font-size:var(--font-size-xs);font-family:var(--font-family);white-space:nowrap;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);pointer-events:none;opacity:0;transition:opacity var(--transition-fast);z-index:500;padding:4px 10px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip-wrap[data-tip]:hover:after{opacity:1}.loading-dots{align-items:center;gap:4px;display:inline-flex}.loading-dots span{background:var(--color-text-muted);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite loading-bounce}.loading-dots span:first-child{animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes loading-bounce{0%,80%,to{opacity:.4;transform:scale(.7)}40%{opacity:1;transform:scale(1)}}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;display:inline-block}.spinner-lg{border-width:3px;width:36px;height:36px}@keyframes spin{to{transform:rotate(360deg)}}.progress-bar{background:var(--color-bg-tertiary);border-radius:var(--radius-full);width:100%;height:6px;overflow:hidden}.progress-bar-fill{background:var(--gradient-gold);border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.progress-bar-fill.primary{background:var(--gradient-primary)}.progress-bar-fill.success{background:var(--color-success)}.progress-bar-fill.danger{background:var(--color-danger)}.metric-card{background:var(--gradient-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all var(--transition-base);position:relative;overflow:hidden}.metric-card:after{content:"";background:var(--gradient-gold);opacity:0;height:2px;transition:opacity var(--transition-base);position:absolute;bottom:0;left:0;right:0}.metric-card:hover:after{opacity:1}.metric-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);border:1px solid;display:flex}.alert-info{background:var(--color-info-bg);color:var(--color-info);border-color:#3b82f640}.alert-success{background:var(--color-success-bg);color:var(--color-success);border-color:#10b98140}.alert-warning{background:var(--color-warning-bg);color:var(--color-warning);border-color:#f59e0b40}.alert-danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:#ef444440}.section-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.section-title{font-size:var(--font-size-base);color:var(--color-text-primary);align-items:center;gap:var(--space-2);font-weight:600;display:flex}.btn-link{color:var(--color-primary);font-size:var(--font-size-sm);font-family:var(--font-family);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:0;font-weight:500;text-decoration:none}.btn-link:hover{color:var(--color-primary-hover);text-decoration:underline}.badge{align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);border-radius:var(--radius-full);padding:2px 10px;font-weight:600;display:inline-flex}.badge-success{background:var(--color-success-bg);color:var(--color-success)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger)}.badge-info{background:var(--color-info-bg);color:var(--color-info)}.badge-neutral{color:var(--color-text-secondary);background:#94a3b81f}.badge-primary{background:var(--color-primary-bg);color:var(--color-primary-hover)}.badge-purple{background:var(--color-purple-bg);color:var(--color-purple)}.status-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.status-dot.clean{background:var(--color-success)}.status-dot.dirty{background:var(--color-danger)}.status-dot.cleaning{background:var(--color-warning)}.status-dot.inspected{background:var(--color-info)}.status-dot.out-of-order{background:var(--color-text-muted)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;animation:fadeIn var(--transition-fast) ease-out;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-8);width:90%;max-width:560px;max-height:85vh;box-shadow:var(--shadow-xl);animation:slideUp var(--transition-base) ease-out;overflow-y:auto}.modal-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-xl);font-weight:700}.modal-close{color:var(--color-text-muted);cursor:pointer;font-size:var(--font-size-xl);padding:var(--space-1);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none}.modal-close:hover{color:var(--color-text-primary);background:#ffffff0f}.modal-footer{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border);display:flex}.empty-state{padding:var(--space-12);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon{margin-bottom:var(--space-4);opacity:.3;font-size:3rem}.empty-state-title{font-size:var(--font-size-lg);color:var(--color-text-primary);margin-bottom:var(--space-2);font-weight:600}.empty-state-text{font-size:var(--font-size-sm);color:var(--color-text-muted);max-width:360px;margin-bottom:var(--space-6)}.toast{bottom:var(--space-6);right:var(--space-6);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-xl);align-items:center;gap:var(--space-3);z-index:300;animation:slideInRight var(--transition-base) ease-out;display:flex;position:fixed}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton{background:linear-gradient(90deg, var(--color-bg-tertiary) 25%, var(--color-bg-card-hover) 50%, var(--color-bg-tertiary) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.login-page{background:var(--color-bg-primary);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";pointer-events:none;background:radial-gradient(at 30% 20%,#f59e0b0f 0%,#0000 50%),radial-gradient(at 70% 80%,#3b82f60a 0%,#0000 50%);width:200%;height:200%;position:absolute;top:-50%;left:-50%}.login-card{background:var(--gradient-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-10);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);width:420px;max-width:90%;box-shadow:var(--shadow-xl);z-index:1;position:relative}.login-logo{text-align:center;margin-bottom:var(--space-8)}.login-logo .logo-icon{background:var(--gradient-gold);border-radius:var(--radius-lg);width:56px;height:56px;font-weight:800;font-size:var(--font-size-2xl);color:var(--color-text-inverse);margin-bottom:var(--space-4);justify-content:center;align-items:center;display:inline-flex}.login-logo h1{font-size:var(--font-size-xl);background:var(--gradient-gold);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:700}.login-logo p{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.login-error{background:var(--color-danger-bg);color:var(--color-danger);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--space-4);border:1px solid #ef444433}.login-btn{width:100%;padding:var(--space-3) var(--space-4);margin-top:var(--space-2)}.btn-action{color:#fff;letter-spacing:.02em;padding:var(--space-3) var(--space-6);font-weight:700;font-size:var(--font-size-md);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:linear-gradient(135deg,#0ea5e9,#0284c7);border:none;box-shadow:0 2px 8px #0ea5e940}.btn-action:hover:not(:disabled){background:linear-gradient(135deg,#38bdf8,#0ea5e9);transform:translateY(-1px);box-shadow:0 4px 16px #0ea5e966}.btn-action:disabled{opacity:.5;cursor:not-allowed}.res-header{padding-bottom:var(--space-5);margin-bottom:var(--space-6);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;display:flex}.res-header-left{gap:var(--space-2);flex-direction:column;display:flex}.res-header-left .res-id{align-items:center;gap:var(--space-3);display:flex}.res-header-left .res-id h1{font-size:var(--font-size-2xl);color:var(--color-text-primary);letter-spacing:-.02em;margin:0;font-weight:800}.res-header-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.badge-lg{font-size:var(--font-size-sm);padding:4px 14px;font-weight:700}.badge-primary{color:#38bdf8;background:#0ea5e926}.info-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.info-item{flex-direction:column;gap:4px;display:flex}.info-item .info-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.info-item .info-value{font-size:var(--font-size-md);color:var(--color-text-primary);font-weight:600}.info-item .info-value.muted{color:var(--color-text-secondary);font-weight:500}.folio-panel{border-radius:var(--radius-lg);padding:var(--space-6);top:calc(var(--topbar-height) + var(--space-6));background:linear-gradient(160deg,#0f172a 0%,#020617 100%);border:1px solid #ffffff0f;position:sticky}.folio-panel h2{font-size:var(--font-size-lg);color:var(--color-text-primary);margin-bottom:var(--space-5);align-items:center;gap:var(--space-2);font-weight:700;display:flex}.folio-row{padding:var(--space-2) 0;font-size:var(--font-size-md);justify-content:space-between;align-items:center;display:flex}.folio-row .folio-label{color:var(--color-text-secondary);font-weight:500}.folio-row .folio-value{color:var(--color-text-primary);font-weight:600}.folio-divider{height:1px;margin:var(--space-3) 0;background:#ffffff14}.folio-total{padding:var(--space-3) 0;font-size:var(--font-size-xl);justify-content:space-between;align-items:center;font-weight:800;display:flex}.folio-balance{padding:var(--space-4);margin-top:var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-lg);justify-content:space-between;align-items:center;font-weight:800;display:flex}.folio-balance.danger{color:var(--color-danger);background:#ef44441f}.folio-balance.success{color:var(--color-success);background:#10b9811f}.stay-timeline{background:var(--color-bg-tertiary);border-radius:var(--radius-lg);padding:var(--space-5);justify-content:space-between;align-items:center;display:flex;position:relative}.stay-date{text-align:center;z-index:1}.stay-date .date-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-1);font-weight:600}.stay-date .date-value{font-size:var(--font-size-xl);color:#38bdf8;font-weight:800}.stay-date .date-year{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.stay-connector{z-index:1;flex-direction:column;flex:1;align-items:center;display:flex}.stay-connector .nights-label{font-size:var(--font-size-sm);color:var(--color-text-primary);margin-bottom:var(--space-1);font-weight:700}.stay-connector .connector-line{background:var(--color-border);width:100%;max-width:120px;height:2px;position:relative}.stay-connector .connector-line:after{content:"";border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:7px solid var(--color-text-muted);position:absolute;top:-4px;right:0}.room-pill{padding:var(--space-3) var(--space-4);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.room-pill:hover{border-color:var(--color-border-hover)}.room-pill .room-info{align-items:center;gap:var(--space-3);display:flex}.room-pill .room-number{font-weight:700;font-size:var(--font-size-md);color:var(--color-text-primary)}.room-pill .room-type-badge{font-size:var(--font-size-xs);color:var(--color-text-muted);background:var(--color-bg-secondary);border-radius:var(--radius-sm);padding:2px 8px;font-weight:600}.ledger-tabs{gap:var(--space-1);background:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:3px;display:flex}.ledger-tab{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);border-radius:calc(var(--radius-md) - 2px);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;font-weight:600}.ledger-tab:hover{color:var(--color-text-primary)}.ledger-tab.active{background:var(--color-bg-secondary);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}@media (max-width:1024px){.sidebar{z-index:200;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0!important}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.stats-grid{grid-template-columns:1fr}.page-content{padding:var(--space-4)}.topbar-search,.user-info{display:none}}
