.page-shell{min-height:100vh;padding-bottom:64px}.page-shell__header-wrapper{position:fixed;top:0;left:0;right:0;z-index:1100}.page-shell__main{display:flex;align-items:stretch;margin-top:var(--app-header-h, 60px)}.page-shell__sidebar-desktop{display:none}@media(min-width:768px){.page-shell__sidebar-desktop{display:block}}.page-shell__content{flex:1;padding:16px;margin-left:0}@media(min-width:768px){.page-shell__content{padding:16px 24px;margin-left:var(--app-sidebar-left, 55px)}}.page-shell__sidebar-mobile{display:block}@media(min-width:768px){.page-shell__sidebar-mobile{display:none}}.app-footer{position:fixed;bottom:0;left:0;right:0;background:var(--color-gray-50);border-top:1px solid var(--color-border);padding:12px 32px;text-align:center;z-index:10}.app-footer__copy{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.header-mobile-menu-btn{display:none}@media(max-width:768px){.header-mobile-menu-btn{display:inline-flex}}.header-hamburger-btn{display:none;align-items:center;justify-content:center;padding:6px;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-gray-700);transition:background .15s ease}.header-hamburger-btn:hover{background:var(--color-bg-hover)}@media(max-width:768px){.header-hamburger-btn{display:inline-flex}}.header-user-wrapper{position:relative}.header-logout-btn{width:100%}.header-bar{position:sticky;top:0;z-index:var(--z-sticky, 200);display:flex;align-items:center;justify-content:space-between;padding:12px 24px;height:var(--header-height, 64px);background:var(--color-bg-surface, #ffffff);border-bottom:var(--border-width, 1px) solid var(--color-border, #e5e7eb);box-shadow:var(--shadow-xs);transition:height var(--transition-slow, .35s ease-in-out),padding var(--transition-slow, .35s ease-in-out)}.header-bar--compact{height:var(--header-height-compact, 40px);padding:6px 24px}.header-bar--compact .header-subtitle{display:none}@media(max-width:768px){.header-bar{padding:8px 16px}.header-bar--compact{padding:4px 16px}}.header-left{display:flex;align-items:center;gap:16px;min-width:0;flex:1 1 auto}.header-logo-link{min-width:0;overflow:hidden}.header-logo-link{text-decoration:none;transition:opacity .2s}.header-logo-link:hover{opacity:.8;text-decoration:none}.header-property-name{font-size:var(--font-size-xl, 1.25rem);font-weight:var(--font-weight-bold);color:var(--color-primary, var(--color-gray-900));letter-spacing:-.01em;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}@media(max-width:768px){.header-property-name{font-size:var(--font-size-lg)}}.header-subtitle{margin-left:8px;font-size:var(--font-size-sm);color:var(--color-gray-600)}.header-right{display:flex;align-items:center;gap:12px;flex-shrink:0}@media(max-width:768px){.header-right{gap:6px}}.header-user-button{display:inline-flex;align-items:center;gap:8px;padding:6px;border-radius:8px;background:transparent;border:none;cursor:pointer}.header-user-button:hover .header-user-avatar{background:var(--color-gray-300)}.header-user-avatar{width:36px;height:36px;border-radius:9999px;display:flex;align-items:center;justify-content:center;background:var(--color-gray-200);color:var(--color-gray-700);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);-webkit-user-select:none;user-select:none}.header-menu-dropdown{position:absolute;right:0;margin-top:8px;width:240px;background:var(--color-bg-surface);box-shadow:var(--shadow-lg);border-radius:var(--radius-md);z-index:60;padding:8px 0}.header-menu-identity{padding:0 12px 8px}.header-menu-username{font-weight:var(--font-weight-bold);color:var(--color-text-primary);font-size:var(--font-size-base)}.header-menu-email{font-size:var(--font-size-sm);color:var(--color-gray-600)}.header-menu-roles{font-size:var(--font-size-xs);color:var(--color-gray-400);margin-top:2px}.header-menu-section-label{padding:8px 12px 4px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em}.header-menu-property-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px;text-align:left;font-size:var(--font-size-sm);background:transparent;border:none;cursor:default}.header-menu-property-item--switchable{cursor:pointer}.header-menu-property-item--switchable:hover{background:var(--color-bg-hover)}.header-menu-property-icon{display:flex;align-items:center;flex-shrink:0;color:var(--color-gray-300)}.header-menu-property-icon--active{color:var(--color-success)}.header-menu-property-label{font-weight:var(--font-weight-normal);color:var(--color-gray-600)}.header-menu-property-label--active{font-weight:var(--font-weight-semibold);color:var(--color-gray-800)}.header-menu-property-star{margin-left:auto;display:flex;align-items:center;background:transparent;border:none;cursor:pointer;color:var(--color-gray-300);padding:2px;border-radius:3px;transition:color .15s,background .15s}.header-menu-property-star:hover{color:var(--color-warning);background:var(--color-bg-hover)}.header-menu-property-star--active{color:var(--color-warning)}.header-menu-footer{padding:0 12px}.header-menu-theme{padding:4px 12px 8px;display:flex;justify-content:flex-start}.header-menu-theme .theme-switcher{width:100%;justify-content:space-around}.header-menu-theme .theme-switcher__btn{flex:1}.dtclock{display:flex;flex-direction:column;align-items:flex-end;margin-right:12px}.dtclock__weekday{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-transform:capitalize}.dtclock__time{font-size:var(--font-size-sm);font-family:var(--font-family-mono);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}@media(max-width:768px){.dtclock__weekday{font-size:var(--font-size-xs)}.dtclock__time{font-size:var(--font-size-sm)}}@media(max-width:480px){.dtclock{margin-right:0}.dtclock__weekday{display:none}}@media(max-width:600px)and (orientation:portrait){.dtclock{display:none}}.theme-switcher{display:flex;align-items:center;gap:2px;padding:2px;background:var(--color-bg-hover, #f3f4f6);border:var(--border-width, 1px) solid var(--color-border, #e5e7eb);border-radius:var(--radius-full, 9999px)}.theme-switcher__btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;border-radius:var(--radius-full, 9999px);background:transparent;border:none;cursor:pointer;font-size:14px;color:var(--color-text-secondary, #6b7280);transition:background var(--transition-fast, .15s ease-in-out),color var(--transition-fast, .15s ease-in-out);line-height:1}.theme-switcher__btn:hover{background:var(--color-bg-active, #e5e7eb);color:var(--color-text-primary, #111827)}.theme-switcher__btn--active{background:var(--color-primary);color:var(--color-text-inverted, #ffffff)}.theme-switcher__btn--active:hover{background:var(--color-primary-dark);color:var(--color-text-inverted, #ffffff)}.theme-switcher__btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.shared-modal-backdrop{position:fixed;inset:0;display:flex;align-items:flex-start;justify-content:center;background:var(--color-overlay);z-index:2200;padding:24px 16px;overflow-y:auto}.shared-modal-panel{background:var(--color-bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-height:calc(100vh - 48px);overflow:auto;width:100%;display:flex;flex-direction:column}.shared-modal-sm{max-width:var(--modal-width-sm)}.shared-modal-md{max-width:var(--modal-width-md)}.shared-modal-lg{max-width:var(--modal-width-lg)}.shared-modal-full{max-width:100%;height:100%;border-radius:0}.shared-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:var(--border-width) solid var(--color-border);flex-shrink:0}.shared-modal-title{margin:0;font-size:1.1rem;font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.shared-modal-close{background:transparent;border:0;font-size:1.1rem;cursor:pointer;color:var(--color-text-secondary);line-height:1;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);transition:background var(--transition-fast)}.shared-modal-close:hover{background:var(--color-bg-hover)}.shared-modal-body{padding:var(--spacing-xl);overflow-y:auto}@media(max-width:640px){.shared-modal-backdrop{padding:0;align-items:flex-end}.shared-modal-panel{max-width:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:90vh}}.upsell-modal{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-6);text-align:center;gap:var(--spacing-4)}.upsell-icon{font-size:2.5rem}.upsell-title{font-size:var(--font-size-xl);font-weight:600;color:var(--color-text-primary);margin:0}.upsell-description{font-size:var(--font-size-md);color:var(--color-text-secondary);max-width:420px;margin:0}.upsell-benefits{list-style:none;padding:0;margin:0;text-align:left;width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--spacing-2)}.upsell-benefits li{display:flex;align-items:flex-start;gap:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text-primary)}.upsell-check{color:var(--color-success);font-weight:700;flex-shrink:0}.upsell-plan-hint{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.upsell-actions{display:flex;gap:var(--spacing-3);margin-top:var(--spacing-2);flex-wrap:wrap;justify-content:center}.upsell-btn-secondary{padding:var(--spacing-2) var(--spacing-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;transition:background .15s}.upsell-btn-secondary:hover{background:var(--color-bg-subtle)}.upsell-btn-primary{padding:var(--spacing-2) var(--spacing-5);border:none;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:opacity .15s}.upsell-btn-primary:hover{opacity:.9}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;background:var(--color-overlay, rgba(0, 0, 0, .36));opacity:.35;z-index:var(--z-sidebar-overlay, 1089);pointer-events:none}.sidebar{position:fixed;left:0;top:0;height:100vh;overflow-x:hidden;overflow-y:auto;background:var(--color-gray-100);z-index:var(--z-sidebar, 1090);transition:width .18s ease,box-shadow .12s ease;border-right:1px solid var(--color-gray-200);display:flex;flex-direction:column}.sidebar--compact{width:55px;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0,0,0,.12))}.sidebar--expanded{width:220px;box-shadow:var(--shadow-lg, 0 4px 16px rgba(0,0,0,.15));border-right-color:transparent}.sidebar-list{list-style:none;margin:0;padding:0}.sidebar-list__item{list-style:none}.sidebar-row{display:flex;align-items:center;min-height:44px;padding:var(--spacing-2, .5rem) var(--spacing-4, 1rem);border-bottom:1px solid var(--color-gray-200);text-decoration:none;color:var(--color-gray-800);cursor:pointer;transition:background-color .12s ease;background:none;width:100%;text-align:left;font:inherit}.sidebar-row:hover{background:var(--color-gray-50);text-decoration:none}.sidebar-row:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.sidebar--compact .sidebar-row{padding:var(--spacing-2, .5rem) var(--spacing-3, .75rem)}.sidebar-row__icon{display:flex;align-items:center;justify-content:center;min-width:24px;flex-shrink:0;color:var(--color-gray-600)}.sidebar--compact .sidebar-row__icon{color:var(--color-gray-700);margin-right:0}.sidebar--expanded .sidebar-row__icon{margin-right:var(--spacing-3, .75rem)}.sidebar-row__label{flex:1;font-size:var(--font-size-sm, .875rem);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-row__chevron{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border:none;background:none;border-radius:var(--radius-sm, 4px);cursor:pointer;color:var(--color-gray-500);transition:background-color .1s ease}.sidebar-row__chevron:hover{background:var(--color-gray-200)}.sidebar-row--locked{width:100%;text-align:left;background:none;border:none;cursor:pointer;opacity:.6;transition:opacity .15s}.sidebar-row--locked:hover{opacity:.85;background:var(--color-bg-subtle)}.sidebar-row__lock{margin-left:auto;display:flex;align-items:center;color:var(--color-text-secondary);flex-shrink:0}.sidebar-section-label{list-style:none;padding:var(--spacing-3) var(--spacing-3) var(--spacing-1);font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;margin-top:var(--spacing-2)}.sidebar-section-label:first-child{margin-top:0}.sidebar-submenu{background:var(--color-white)}.sidebar-submenu .sidebar-row{font-size:var(--font-size-sm, .875rem);color:var(--color-gray-700)}.sidebar--compact .sidebar-submenu .sidebar-row{padding-left:var(--spacing-3, .75rem)}.sidebar-submenu .sidebar-submenu{background:var(--color-gray-50)}.sidebar-submenu .sidebar-submenu .sidebar-row{color:var(--color-gray-600)}.sidebar-mobile-backdrop{position:fixed;inset:0;z-index:var(--z-sidebar, 1090)}.sidebar-mobile-backdrop__overlay{position:absolute;inset:0;background:var(--color-overlay, rgba(0, 0, 0, .5));cursor:default}.sidebar-mobile-drawer{position:absolute;top:0;left:0;height:100%;width:min(80%,320px);background:var(--color-white);box-shadow:var(--shadow-lg, 0 4px 16px rgba(0,0,0,.2));overflow-y:auto;padding:var(--spacing-4, 1rem)}.sidebar__mobile-btn{display:none}@media(prefers-reduced-motion:reduce){.sidebar,.sidebar-row{transition:none}}.sidebar-brand-footer{margin-top:auto;padding:var(--spacing-md, 12px) var(--spacing-lg, 16px);display:flex;align-items:center;gap:var(--spacing-sm, 8px);border-top:1px solid var(--color-border, rgba(0, 0, 0, .08));opacity:.55;transition:opacity .15s}.sidebar-brand-footer:hover{opacity:.85}.sidebar-brand-footer__name{font-family:Kalam,cursive;font-size:15px;color:var(--color-text-secondary, #555);letter-spacing:-.2px}.sidebar--compact .sidebar-brand-footer{justify-content:center;padding:var(--spacing-md, 12px) var(--spacing-xs, 4px)}.login-page-wrapper{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-bg-page);padding:24px 16px}.login-logo{display:flex;justify-content:center;margin-bottom:var(--spacing-lg, 16px)}.login-heading{text-align:center}.login-notice{display:flex;align-items:flex-start;gap:12px;border-radius:var(--radius-md, 6px);padding:12px;margin-bottom:16px}.login-notice--error{background:var(--color-danger-light);color:var(--color-danger-dark)}.login-notice--info{background:var(--color-info-light);color:var(--color-info-dark)}.login-notice__icon{flex-shrink:0;display:flex;align-items:center}.login-notice__text{font-size:var(--font-size-sm)}.login-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background:var(--color-bg-surface);padding:24px;width:100%;max-width:420px}@media(max-width:420px){.login-card{padding:16px}}.login-form{display:flex;flex-direction:column;gap:16px}.login-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-base);margin:0}.login-row-split{display:flex;align-items:center;justify-content:space-between}.login-page-footer{text-align:center;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:8px}.social-btn{display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.5rem .75rem;font-size:.95rem;width:100%}.social-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;align-items:center}@media(max-width:420px){.social-row{grid-template-columns:1fr}}.or-divider{text-align:center;font-size:.9rem;color:var(--color-text-tertiary);margin:.5rem 0}.remember-label{display:flex;align-items:center;gap:8px}.login-link{font-size:var(--font-size-sm);color:var(--color-primary);cursor:pointer;text-decoration:underline;text-underline-offset:2px;background:none;border:none;padding:0}.login-link--disabled{color:var(--color-text-tertiary);text-decoration:none;cursor:default;pointer-events:none}.login-submit{width:100%;justify-content:center}:root{--brand-h: 180;--brand-s: 50%;--color-primary: hsl(var(--brand-h), var(--brand-s), 32%);--color-primary-dark: hsl(var(--brand-h), var(--brand-s), 22%);--color-primary-light: hsl(var(--brand-h), var(--brand-s), 72%);--color-accent-warm: hsl(14, 65%, 55%);--color-accent-warm-dark: hsl(14, 65%, 45%);--color-accent-warm-light: hsl(14, 65%, 90%);--color-success: #10b981;--color-success-dark: #059669;--color-success-light: #d1fae5;--color-warning: #f97316;--color-warning-dark: #ea580c;--color-warning-light: #fed7aa;--color-danger: #ef4444;--color-danger-dark: #dc2626;--color-danger-light: #fee2e2;--color-info: #0284c7;--color-info-dark: #0369a1;--color-info-light: #cffafe;--color-white: #ffffff;--color-black: #111827;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-status-pre-reserva: #fbbf24;--color-status-reservado: #60a5fa;--color-status-confirmado: #10b981;--color-status-checked-in: #8b5cf6;--color-status-checked-out: #f59e0b;--color-status-no-show: #ef4444;--color-status-cancelado: #d1d5db;--color-text-primary: #111827;--color-text-secondary: #6b7280;--color-text-tertiary: #9ca3af;--color-text-disabled: #d1d5db;--color-text-inverted: #ffffff;--color-bg-page: #f9fafb;--color-bg-surface: #ffffff;--color-bg-hover: #f3f4f6;--color-bg-active: #e5e7eb;--color-bg-disabled: #f3f4f6;--color-border: #e5e7eb;--color-border-light: #f3f4f6;--color-border-dark: #d1d5db;--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: "Monaco", "Menlo", "Ubuntu Mono", "Courier New", monospace;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 15px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 32px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px;--spacing-3xl: 32px;--spacing-4xl: 40px;--spacing-5xl: 48px;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--spacing-7: 28px;--spacing-8: 32px;--spacing-10: 40px;--spacing-12: 48px;--spacing-16: 64px;--size-icon-xs: 16px;--size-icon-sm: 20px;--size-icon-base: 24px;--size-icon-lg: 32px;--size-avatar-sm: 32px;--size-avatar-base: 40px;--size-avatar-lg: 48px;--radius-none: 0;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-none: none;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1), 0 2px 4px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1), 0 4px 6px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .1), 0 10px 10px rgba(0, 0, 0, .04);--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .35s ease-in-out;--z-default: 0;--z-dropdown: 100;--z-sticky: 200;--z-modal-overlay: 250;--z-modal: 300;--z-popover: 400;--z-tooltip: 500;--header-height: 64px;--header-height-compact: 40px;--sidebar-width: 200px;--max-content-width: 1200px;--border-width: 1px;--modal-width-sm: 400px;--modal-width-md: 600px;--modal-width-lg: 800px;--modal-width-xl: 1000px;--breakpoint-mobile: 640px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1024px;--breakpoint-wide: 1280px;--color-bg-muted: var(--color-gray-50);--color-purple: #7c3aed;--color-purple-dark: #6d28d9;--color-invoice-accommodation-bg: #e3f2fd;--color-invoice-accommodation-text: #1565c0;--color-invoice-extras-bg: #fff3e0;--color-invoice-extras-text: #e65100;--color-invoice-partner-bg: #f3e5f5;--color-invoice-partner-text: #6a1b9a;--color-invoice-cancellation-bg: #fce4ec;--color-invoice-cancellation-text: #880e4f;--color-calendar-pre-reserva-bg: var(--color-primary-light);--color-calendar-pre-reserva-text: #1e3a8a;--color-calendar-pre-reserva-border: var(--color-primary);--color-calendar-reservado-bg: var(--color-primary);--color-calendar-reservado-text: var(--color-white);--color-calendar-reservado-border: var(--color-primary-dark);--color-calendar-confirmado-bg: var(--color-success);--color-calendar-confirmado-text: var(--color-white);--color-calendar-confirmado-border: #047857;--color-calendar-checked-in-bg: #0891b2;--color-calendar-checked-in-text: var(--color-white);--color-calendar-checked-in-border: #0e7490;--color-calendar-checked-out-bg: #64748b;--color-calendar-checked-out-text: var(--color-white);--color-calendar-checked-out-border: #475569;--color-calendar-no-show-bg: var(--color-warning);--color-calendar-no-show-text: var(--color-white);--color-calendar-no-show-border: var(--color-warning-dark);--color-calendar-cancelado-bg: #991b1b;--color-calendar-cancelado-text: var(--color-white);--color-calendar-cancelado-border: #7f1d1d;--color-calendar-block-bg: var(--color-gray-800);--color-calendar-block-text: var(--color-white);--color-calendar-block-border: var(--color-black);--color-info-dark-text: #1e40af;--color-success-dark-text: #065f46;--color-warning-dark-text: #78350f;--color-danger-dark-text: #7f1d1d;--color-bg-warning: #fef9ec;--color-border-warning: #fbbf24;--color-warning-text: #92400e;--color-overlay: rgba(0, 0, 0, .36)}*{margin:0;padding:0;box-sizing:border-box}html{font-family:var(--font-family-sans);font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;color-scheme:light}body{color:var(--color-text-primary);background-color:var(--color-bg-page);line-height:var(--line-height-normal);font-size:var(--font-size-base);font-weight:var(--font-weight-normal)}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;padding:0}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-base)}a:hover{color:var(--color-primary-dark)}a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}img{max-width:100%;height:auto;display:block}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}p{margin:0}ul,ol{list-style:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.aria-hidden-visual{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.focus-visible-ring:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-md)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@supports (width: 1dvw){html{height:100dvh}}*{-webkit-tap-highlight-color:transparent}@media(prefers-color-scheme:dark){:root:not([data-theme]){--color-text-primary: #f3f4f6;--color-text-secondary: #d1d5db;--color-text-tertiary: #9ca3af;--color-bg-page: #111827;--color-bg-surface: #1f2937;--color-bg-hover: #374151;--color-bg-active: #4b5563;--color-border: #374151;--color-border-light: #1f2937;--color-border-dark: #4b5563}}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-col{display:flex;flex-direction:column}.flex-col-center{display:flex;flex-direction:column;align-items:center;justify-content:center}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.grid{display:grid}.grid-2-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.grid-3-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--spacing-lg)}.grid-auto{display:grid;grid-auto-flow:row;grid-auto-rows:auto}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.gap-2xl{gap:var(--spacing-2xl)}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.flex-1{flex:1 1 auto}.flex-0{flex:0 0 auto}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.p-0{padding:0}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.p-2xl{padding:var(--spacing-2xl)}.px-xs{padding-left:var(--spacing-xs);padding-right:var(--spacing-xs)}.px-sm{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.px-md{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.px-lg{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.px-xl{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}.px-2xl{padding-left:var(--spacing-2xl);padding-right:var(--spacing-2xl)}.py-xs{padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs)}.py-sm{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.py-md{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.py-lg{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.py-xl{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}.py-2xl{padding-top:var(--spacing-2xl);padding-bottom:var(--spacing-2xl)}.pt-xs{padding-top:var(--spacing-xs)}.pt-sm{padding-top:var(--spacing-sm)}.pt-md{padding-top:var(--spacing-md)}.pt-lg{padding-top:var(--spacing-lg)}.pt-xl{padding-top:var(--spacing-xl)}.pb-xs{padding-bottom:var(--spacing-xs)}.pb-sm{padding-bottom:var(--spacing-sm)}.pb-md{padding-bottom:var(--spacing-md)}.pb-lg{padding-bottom:var(--spacing-lg)}.pb-xl{padding-bottom:var(--spacing-xl)}.pl-xs{padding-left:var(--spacing-xs)}.pl-sm{padding-left:var(--spacing-sm)}.pl-md{padding-left:var(--spacing-md)}.pl-lg{padding-left:var(--spacing-lg)}.pl-xl{padding-left:var(--spacing-xl)}.pr-xs{padding-right:var(--spacing-xs)}.pr-sm{padding-right:var(--spacing-sm)}.pr-md{padding-right:var(--spacing-md)}.pr-lg{padding-right:var(--spacing-lg)}.pr-xl{padding-right:var(--spacing-xl)}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.mb-0{margin-bottom:0}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.mb-2xl{margin-bottom:var(--spacing-2xl)}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.line-tight{line-height:var(--line-height-tight)}.line-normal{line-height:var(--line-height-normal)}.line-relaxed{line-height:var(--line-height-relaxed)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-wrap{word-break:break-word}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary,.text-muted{color:var(--color-text-tertiary)}.text-disabled{color:var(--color-text-disabled)}.text-inverted{color:var(--color-text-inverted)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.text-info{color:var(--color-info)}.bg-white{background-color:var(--color-white)}.bg-page{background-color:var(--color-bg-page)}.bg-surface{background-color:var(--color-bg-surface)}.bg-hover{background-color:var(--color-bg-hover)}.bg-success{background-color:var(--color-success)}.bg-success-light{background-color:var(--color-success-light)}.bg-warning{background-color:var(--color-warning)}.bg-warning-light{background-color:var(--color-warning-light)}.bg-danger{background-color:var(--color-danger)}.bg-danger-light{background-color:var(--color-danger-light)}.bg-info{background-color:var(--color-info)}.bg-info-light{background-color:var(--color-info-light)}.border{border:var(--border-width) solid var(--color-border)}.border-t{border-top:var(--border-width) solid var(--color-border)}.border-b{border-bottom:var(--border-width) solid var(--color-border)}.border-l{border-left:var(--border-width) solid var(--color-border)}.border-r{border-right:var(--border-width) solid var(--color-border)}.border-x{border-left:var(--border-width) solid var(--color-border);border-right:var(--border-width) solid var(--color-border)}.border-y{border-top:var(--border-width) solid var(--color-border);border-bottom:var(--border-width) solid var(--color-border)}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-none{box-shadow:var(--shadow-none)}.shadow-xs{box-shadow:var(--shadow-xs)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.hidden{display:none}.block{display:block}.inline{display:inline}.inline-block{display:inline-block}.visible{visibility:visible}.invisible{visibility:hidden}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.w-full{width:100%}.h-full{height:100%}.w-min{width:min-content}.h-min{height:min-content}.w-max{width:max-content}.h-max{height:max-content}.min-h-screen{min-height:100vh}.min-h-0{min-height:0}.max-w-full{max-width:100%}.max-w-none{max-width:none}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.z-default{z-index:var(--z-default)}.z-dropdown{z-index:var(--z-dropdown)}.z-sticky{z-index:var(--z-sticky)}.z-modal-overlay{z-index:var(--z-modal-overlay)}.z-modal{z-index:var(--z-modal)}.z-popover{z-index:var(--z-popover)}.z-tooltip{z-index:var(--z-tooltip)}.transition-fast{transition:all var(--transition-fast)}.transition-base{transition:all var(--transition-base)}.transition-slow{transition:all var(--transition-slow)}.transition-colors{transition:background-color var(--transition-base),color var(--transition-base),border-color var(--transition-base)}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.cursor-text{cursor:text}.cursor-not-allowed{cursor:not-allowed}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.focus-ring:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.focus-ring-error:focus-visible{outline:2px solid var(--color-danger);outline-offset:2px}.focus-ring-success:focus-visible{outline:2px solid var(--color-success);outline-offset:2px}.disabled{opacity:.6;cursor:not-allowed}@media print{.no-print{display:none}.print-only{display:block}}@media(min-width:768px){.md\:grid-2-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.md\:grid-3-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--spacing-lg)}.md\:flex{display:flex}.md\:hidden{display:none}.md\:p-2xl{padding:var(--spacing-2xl)}}@media(min-width:1024px){.lg\:grid-3-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--spacing-lg)}.lg\:flex{display:flex}}.status-badge{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);padding:4px 10px;border-radius:var(--radius-full, 9999px);white-space:nowrap}.status-badge:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-badge.status-pending,.status-badge.status-pre-reserva,.status-badge.status-pre_reserva,.status-badge.status-tentative{color:#1e3a8a;background:#eff6ff}.status-badge.status-pending:before,.status-badge.status-pre-reserva:before,.status-badge.status-pre_reserva:before,.status-badge.status-tentative:before{background-color:#3b82f6}.status-badge.status-reservado,.status-badge.status-reserved{color:#1e40af;background:#dbeafe}.status-badge.status-reservado:before,.status-badge.status-reserved:before{background-color:#2563eb}.status-badge.status-confirmado,.status-badge.status-confirmed{color:#14532d;background:#dcfce7}.status-badge.status-confirmado:before,.status-badge.status-confirmed:before{background-color:#16a34a}.status-badge.status-checked_in,.status-badge.status-checked-in{color:#164e63;background:#cffafe}.status-badge.status-checked_in:before,.status-badge.status-checked-in:before{background-color:#0891b2}.status-badge.status-checked_out,.status-badge.status-checked-out{color:#1e293b;background:#e2e8f0}.status-badge.status-checked_out:before,.status-badge.status-checked-out:before{background-color:#64748b}.status-badge.status-no_show,.status-badge.status-no-show{color:#7c2d12;background:#ffedd5}.status-badge.status-no_show:before,.status-badge.status-no-show:before{background-color:#ea580c}.status-badge.status-cancelado,.status-badge.status-canceled,.status-badge.status-cancelled{color:#7f1d1d;background:#fef2f2}.status-badge.status-cancelado:before,.status-badge.status-canceled:before,.status-badge.status-cancelled:before{background-color:#991b1b}.status-badge.status-blocked,.status-badge.status-bloqueado{color:#111827;background:#f3f4f6}.status-badge.status-blocked:before,.status-badge.status-bloqueado:before{background-color:#374151}[data-theme=dark]{color-scheme:dark;--color-text-primary: #f3f4f6;--color-text-secondary: #d1d5db;--color-text-tertiary: #9ca3af;--color-text-disabled: #6b7280;--color-text-inverted: #111827;--color-bg-page: #0f172a;--color-bg-surface: #1e293b;--color-bg-hover: #334155;--color-bg-active: #475569;--color-bg-disabled: #1e293b;--color-border: #334155;--color-border-light: #1e293b;--color-border-dark: #475569;--color-primary: hsl(var(--brand-h), var(--brand-s), 58%);--color-primary-dark: hsl(var(--brand-h), var(--brand-s), 48%);--color-primary-light: hsl(var(--brand-h), 40%, 22%);--color-accent-warm: hsl(14, 70%, 65%);--color-accent-warm-dark: hsl(14, 65%, 55%);--color-accent-warm-light: hsl(14, 30%, 22%);--color-success: #34d399;--color-success-dark: #10b981;--color-success-light: #064e3b;--color-warning: #fbbf24;--color-warning-dark: #f59e0b;--color-warning-light: #78350f;--color-danger: #f87171;--color-danger-dark: #ef4444;--color-danger-light: #7f1d1d;--color-info: #22d3ee;--color-info-dark: #06b6d4;--color-info-light: #0c4a6e;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4), 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5), 0 4px 6px rgba(0, 0, 0, .3);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .5), 0 10px 10px rgba(0, 0, 0, .2)}[data-theme=high-contrast]{color-scheme:light;--color-text-primary: #000000;--color-text-secondary: #1a1a1a;--color-text-tertiary: #404040;--color-text-disabled: #808080;--color-text-inverted: #ffffff;--color-bg-page: #ffffff;--color-bg-surface: #ffffff;--color-bg-hover: #f0f0f0;--color-bg-active: #e0e0e0;--color-bg-disabled: #f0f0f0;--color-border: #000000;--color-border-light: #404040;--color-border-dark: #000000;--color-primary: #0000ff;--color-primary-dark: #0000cc;--color-primary-light: #6666ff;--color-success: #008000;--color-success-dark: #006600;--color-success-light: #66cc66;--color-warning: #ff8800;--color-warning-dark: #cc6600;--color-warning-light: #ffbb33;--color-danger: #ff0000;--color-danger-dark: #cc0000;--color-danger-light: #ff6666;--color-info: #0099ff;--color-info-dark: #0066cc;--color-info-light: #66ccff;--color-status-pre-reserva: #ff9900;--color-status-reservado: #0000ff;--color-status-confirmado: #008000;--color-status-checked-in: #6600cc;--color-status-checked-out: #ff8800;--color-status-no-show: #ff0000;--color-status-cancelado: #808080;--border-width: 2px;--shadow-xs: 0 1px 3px rgba(0, 0, 0, .5);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .6);--shadow-md: 0 4px 8px rgba(0, 0, 0, .7);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .8);--shadow-xl: 0 12px 24px rgba(0, 0, 0, .8)}[data-theme=high-contrast] body{text-rendering:optimizeSpeed}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-text-primary: #f3f4f6;--color-text-secondary: #d1d5db;--color-text-tertiary: #9ca3af;--color-text-disabled: #6b7280;--color-bg-page: #0f172a;--color-bg-surface: #1e293b;--color-bg-hover: #334155;--color-bg-active: #475569;--color-border: #334155;--color-border-light: #1e293b;--color-border-dark: #475569;--color-primary: hsl(var(--brand-h), var(--brand-s), 58%);--color-primary-dark: hsl(var(--brand-h), var(--brand-s), 48%);--color-primary-light: hsl(var(--brand-h), 40%, 22%);--color-accent-warm: hsl(14, 70%, 65%);--color-accent-warm-dark: hsl(14, 65%, 55%);--color-accent-warm-light: hsl(14, 30%, 22%);--color-success: #34d399;--color-success-dark: #10b981;--color-success-light: #064e3b;--color-warning: #fbbf24;--color-warning-dark: #f59e0b;--color-warning-light: #78350f;--color-danger: #f87171;--color-danger-dark: #ef4444;--color-danger-light: #7f1d1d;--color-info: #22d3ee;--color-info-dark: #06b6d4;--color-info-light: #0c4a6e;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4), 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5), 0 4px 6px rgba(0, 0, 0, .3);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .5), 0 10px 10px rgba(0, 0, 0, .2)}}@media(prefers-contrast:more){:root:not([data-theme]){--color-text-primary: #000000;--color-text-secondary: #1a1a1a;--color-text-tertiary: #404040;--border-width: 2px;--shadow-md: 0 4px 8px rgba(0, 0, 0, .7);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .8)}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{:root{--color-bg-page: #ffffff;--color-bg-surface: #ffffff;--color-text-primary: #000000;--color-border: #000000}[data-theme=dark]{color-scheme:light;--color-bg-page: #ffffff;--color-bg-surface: #ffffff;--color-text-primary: #000000;--color-border: #000000}}.modal-overlay-themed{background-color:#00000080}[data-theme=dark] .modal-overlay-themed{background-color:#000c}[data-theme=high-contrast] .modal-overlay-themed{background-color:#000000e6}.card-themed{background-color:var(--color-bg-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg)}.button-themed{background-color:var(--color-primary);color:var(--color-text-inverted);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);border:none;cursor:pointer;transition:background-color var(--transition-base)}.button-themed:hover{background-color:var(--color-primary-dark)}.button-themed:focus-visible{outline:2px solid var(--color-primary-dark);outline-offset:2px}.input-themed{background-color:var(--color-bg-surface);border:var(--border-width) solid var(--color-border);color:var(--color-text-primary);padding:var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-base)}.input-themed:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px hsl(var(--brand-h),var(--brand-s),60%,.15)}[data-theme=high-contrast] .input-themed:focus{outline:2px solid var(--color-primary);outline-offset:2px}.card{background:var(--color-bg-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg);transition:all var(--transition-base)}.card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.card--elevated{background:var(--color-bg-surface);box-shadow:var(--shadow-md);border:none}.card--ghost{background:transparent;border:none;padding:0}.card--border{border:2px solid var(--color-border)}.section{margin-bottom:var(--spacing-lg)}.section__title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.section__subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.section__content{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-control{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-control__label{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm)}.form-control__input{padding:var(--spacing-md) var(--spacing-lg);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:all var(--transition-base)}.form-control__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3182ce1a}.form-control__input:disabled{background-color:var(--color-bg-disabled);color:var(--color-text-disabled);cursor:not-allowed}.form-control__error{font-size:12px;color:var(--color-danger);margin-top:4px}.form-control__help{font-size:12px;color:var(--color-text-tertiary);margin-top:4px}.modal-container{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg)}.modal-box{background:var(--color-bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:500px;width:100%;display:flex;flex-direction:column;max-height:90vh;overflow:hidden}.modal-header{padding:var(--spacing-lg);border-bottom:var(--border-width) solid var(--color-border);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-lg);flex-shrink:0}.modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.modal-close{background:transparent;border:none;font-size:20px;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:background var(--transition-base);flex-shrink:0}.modal-close:hover{background:var(--color-bg-hover)}.modal-close:disabled{opacity:.5;cursor:not-allowed}.modal-body{padding:var(--spacing-lg);overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:var(--spacing-md)}.modal-footer{padding:var(--spacing-lg);border-top:var(--border-width) solid var(--color-border);display:flex;gap:var(--spacing-md);justify-content:flex-end;flex-shrink:0}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.table__header{background-color:var(--color-bg-surface);border-bottom:2px solid var(--color-border)}.table__header-cell{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.table__header-cell.text-right{text-align:right}.table__header-cell.text-center{text-align:center}.table__row{border-bottom:var(--border-width) solid var(--color-border);background-color:var(--color-bg-surface);transition:background-color var(--transition-base)}.table__row:hover{background-color:var(--color-bg-hover)}.table__row.alt{background-color:var(--color-bg-surface)}.table__row.selected{background-color:#3182ce1a}.table__cell{padding:var(--spacing-md) var(--spacing-lg);text-align:left;color:var(--color-text-primary)}.table__cell.text-right{text-align:right}.table__cell.text-center{text-align:center}.table__cell.font-bold{font-weight:var(--font-weight-semibold)}.table__cell--nowrap{white-space:nowrap}.table__cell--narrow{width:1%;white-space:nowrap}.list{display:flex;flex-direction:column;gap:var(--spacing-md);margin:0;padding:0;list-style:none}.list__item{padding:var(--spacing-md);background:var(--color-bg-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-base);display:flex;align-items:center;justify-content:space-between}.list__item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.list__item--clickable{cursor:pointer}.list__item--selected{background:#3182ce1a;border-color:var(--color-primary)}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:var(--radius-md);font-size:11px;font-weight:var(--font-weight-medium);white-space:nowrap}.badge--primary{background:#3182ce1a;color:var(--color-primary);border:1px solid rgba(49,130,206,.3)}.badge--success{background:#10b9811a;color:var(--color-success);border:1px solid rgba(16,185,129,.3)}.badge--danger{background:#ef44441a;color:var(--color-danger);border:1px solid rgba(239,68,68,.3)}.badge--warning{background:#f59e0b1a;color:var(--color-warning);border:1px solid rgba(245,158,11,.3)}.badge--info{background:#3b82f61a;color:var(--color-primary);border:1px solid rgba(59,130,246,.3)}.badge--secondary{background:#6b72801a;color:var(--color-text-secondary, #6b7280);border:1px solid rgba(107,114,128,.25)}.badge--neutral{background:#9ca3af1f;color:var(--color-text-tertiary, #9ca3af);border:1px solid rgba(156,163,175,.3)}.alert{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);border-left:4px solid;display:flex;gap:var(--spacing-md);align-items:flex-start;font-size:var(--font-size-sm)}.alert--info{background-color:#3b82f61a;border-color:var(--color-primary);color:var(--color-info-dark-text)}.alert--success{background-color:#10b9811a;border-color:var(--color-success);color:var(--color-success-dark-text)}.alert--warning{background-color:#f59e0b1a;border-color:var(--color-warning);color:var(--color-warning-dark-text)}.alert--danger{background-color:#ef44441a;border-color:var(--color-danger);color:var(--color-danger-dark-text)}.action-group{display:flex;gap:var(--spacing-md);flex-wrap:wrap;align-items:center}.action-group--vertical{flex-direction:column;align-items:stretch}.action-group--horizontal{flex-direction:row}.action-group--spaced{justify-content:space-between}.action-group--end{justify-content:flex-end}.action-group--center{justify-content:center}@media(max-width:768px){.modal-box{max-width:100%;max-height:95vh}.modal-header,.modal-body{padding:var(--spacing-md)}.modal-footer{padding:var(--spacing-md);flex-direction:column-reverse}.table{font-size:12px}.table__cell,.table__header-cell{padding:var(--spacing-sm) var(--spacing-md)}.action-group--horizontal{flex-direction:column}.action-group--end{justify-content:flex-start}}.card:focus-visible,.modal-close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.card,.form-control__input,.modal-close,.table__row,.list__item{transition:none}}.page-container{padding:var(--spacing-lg, 24px);max-width:1200px;margin:0 auto}.page-body{padding:var(--spacing-md)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.page-title{margin:0;font-size:var(--font-size-xl, 1.25rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary, #0f172a);line-height:1.3}.search-box{margin-bottom:var(--spacing-lg, 24px)}.search-input{width:100%;max-width:400px;padding:var(--spacing-sm, 10px) var(--spacing-xs, 12px);border:1px solid var(--color-border, #d1d5db);border-radius:var(--radius-md, 6px);font-size:.9rem;background:var(--color-bg, #fff);color:var(--color-text, #111827);font-family:inherit}.search-input::placeholder{color:var(--color-text-tertiary, #9ca3af)}.search-input:focus{outline:none;border-color:var(--color-primary, #6366f1);box-shadow:0 0 0 3px #6366f11a}.entity-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md, 16px);padding:var(--spacing-md, 16px);border-bottom:1px solid var(--color-border, #e5e7eb)}.entity-row:last-child{border-bottom:none}.entity-content{flex:1;min-width:0}.item-title{display:block;font-weight:500;color:var(--color-text, #111827);line-height:1.2;word-break:break-word}.item-subtitle{display:block;margin-top:4px;font-size:.85rem;color:var(--color-text-secondary, #6b7280);line-height:1.2;word-break:break-word}.empty-state{text-align:center;padding:var(--spacing-4xl) var(--spacing-lg);color:var(--color-text-secondary)}.empty-state p{margin:0;font-size:var(--font-size-sm)}.empty-state__icon{font-size:2rem;margin-bottom:var(--spacing-sm);opacity:.4}.page-controls{display:flex;gap:var(--spacing-sm);align-items:center;flex-wrap:wrap;margin-bottom:var(--spacing-lg)}.page-controls .search-input{max-width:280px}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.sortable-th:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.row-actions{display:flex;align-items:center;gap:var(--spacing-xs, 4px)}.no-permission-page{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-4xl);text-align:center;min-height:300px}.no-permission-page__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.no-permission-page__text{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);align-items:start}.form-grid--2col{grid-template-columns:repeat(2,1fr)}.form-grid--3col{grid-template-columns:repeat(3,1fr)}@media(max-width:800px){.form-grid,.form-grid--2col,.form-grid--3col{grid-template-columns:1fr}}.full-width{grid-column:1 / -1}.span-2{grid-column:span 2}@media(max-width:800px){.span-2{grid-column:1 / -1}}.form-section-label{grid-column:1 / -1;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary, #6b7280);margin:var(--spacing-md) 0 0;padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-border, #e5e7eb)}.form-field{display:flex;flex-direction:column;margin:var(--spacing-xs) 0}.form-field span{font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.form-field input,.form-field select,.form-field textarea{padding:var(--spacing-sm);border-radius:6px;border:var(--border-width) solid var(--color-border);width:100%;box-sizing:border-box;font:inherit}.form-field textarea{min-height:60px;resize:vertical}.form-field.number input{width:100%}.hidden-section{display:none!important}.bed-types-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--spacing-xs, 4px)}.bed-type-item{display:flex;align-items:center;gap:var(--spacing-xs, 4px);padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border:var(--border-width, 1px) solid var(--color-border, #d1d5db);border-radius:var(--radius-md, 8px);font-size:var(--font-size-sm, .875rem)}.bed-type-item--active{background:var(--color-primary-light, #eef2ff);border-color:var(--color-primary, #6366f1)}.bed-type-item__icon{font-size:16px}.bed-type-item__label{flex:1;white-space:nowrap}.bed-type-item__controls{display:flex;align-items:center;gap:2px}.bed-type-item__btn{width:24px;height:24px;border-radius:var(--radius-sm, 4px);border:var(--border-width, 1px) solid var(--color-border, #d1d5db);background:var(--color-bg-surface, #fff);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;color:var(--color-text-primary, #111827)}.bed-type-item__btn:hover{background:var(--color-bg-hover, #f3f4f6)}.bed-type-item__btn:disabled{opacity:.3;cursor:not-allowed}.bed-type-item__count{width:20px;text-align:center;font-weight:var(--font-weight-semibold, 600);font-variant-numeric:tabular-nums}.amenities-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--spacing-xs, 4px)}.amenity-toggle{display:flex;align-items:center;gap:var(--spacing-xs, 4px);padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border:var(--border-width, 1px) solid var(--color-border, #d1d5db);border-radius:var(--radius-md, 8px);font-size:var(--font-size-sm, .875rem);cursor:pointer;transition:all var(--transition-fast, .15s);-webkit-user-select:none;user-select:none}.amenity-toggle:hover{border-color:var(--color-primary, #6366f1)}.amenity-toggle--active{background:var(--color-primary-light, #eef2ff);border-color:var(--color-primary, #6366f1);color:var(--color-primary, #6366f1)}.amenity-toggle__icon{font-size:16px;line-height:1}.amenity-toggle__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field-required{color:var(--color-danger, #dc2626);font-weight:var(--font-weight-bold, 700)}.field-error{color:var(--color-danger-dark);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:var(--border-width) solid transparent;background:transparent;cursor:pointer;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1.4;text-decoration:none;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--color-primary, #2563eb);outline-offset:2px}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.btn-xs{padding:2px var(--spacing-sm);font-size:var(--font-size-xs);border-radius:var(--radius-sm)}.btn-primary{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.btn-secondary{background:var(--color-bg-muted, #f1f5f9);color:var(--color-text-primary, #0f172a);border-color:var(--color-border, #e2e8f0)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-hover, #e2e8f0)}.btn-ghost{background:transparent;color:var(--color-text-primary, #0f172a);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--color-bg-hover, rgba(0, 0, 0, .05))}.btn-danger{background:var(--color-danger, #dc2626);color:#fff;border-color:var(--color-danger, #dc2626)}.btn-danger:hover:not(:disabled){background:var(--color-danger-dark, #b91c1c);border-color:var(--color-danger-dark, #b91c1c)}.btn-danger--ghost{background:transparent;color:var(--color-danger, #dc2626);border-color:transparent}.btn-danger--ghost:hover:not(:disabled){background:var(--color-danger-light, #fef2f2)}.btn-success{background:var(--color-success, #059669);color:#fff;border-color:var(--color-success, #059669)}.btn-success:hover:not(:disabled){background:var(--color-success-dark, #047857);border-color:var(--color-success-dark, #047857)}.btn-warning{background:var(--color-warning, #d97706);color:#fff;border-color:var(--color-warning, #d97706)}.btn-warning:hover:not(:disabled){background:var(--color-warning-dark, #b45309);border-color:var(--color-warning-dark, #b45309)}.btn-purple{background:var(--color-purple);color:var(--color-white);border-color:var(--color-purple)}.btn-purple:hover:not(:disabled){background:var(--color-purple-dark);border-color:var(--color-purple-dark)}.rate-group{grid-column:1 / -1;border:var(--border-width) solid var(--color-border-light);padding:var(--spacing-md);border-radius:var(--radius-md);background:var(--color-bg-surface)}.rate-group-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}.group-toggle{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);border:var(--border-width) solid var(--color-border-light);background:transparent;cursor:pointer;font:inherit}.rate-group-content.collapsed{display:none}.rate-group-content.expanded{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.entity-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-border-light);background:var(--color-bg-surface);transition:background-color var(--transition-fast),transform var(--transition-fast);width:100%;box-sizing:border-box}.entity-row:hover{background:color-mix(in srgb,var(--color-primary) 4%,transparent);transform:translateY(-1px);cursor:pointer}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:1}}.skeleton{background:var(--color-bg-active);border-radius:var(--radius-sm);animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-row{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md)}.skeleton-row .skeleton:first-child{flex:3;height:40px}.skeleton-row .skeleton:last-child{flex:1;height:40px}.skeleton-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.skeleton-field{height:36px}@media(prefers-reduced-motion:reduce){.skeleton{animation:none;opacity:.6}}.item-title{display:block;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-size:var(--font-size-base);line-height:1.2}.item-subtitle{display:block;margin-top:4px;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.2}.form-stack{display:flex;flex-direction:column;gap:24px}.form-actions{display:flex;gap:var(--spacing-md);align-items:center}.data-table-wrapper{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-surface);overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.data-table thead{background:var(--color-bg-page);border-bottom:2px solid var(--color-border)}.data-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);white-space:nowrap;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em}.data-table td{padding:var(--spacing-sm) var(--spacing-md);vertical-align:middle;color:var(--color-text-primary);border-bottom:var(--border-width, 1px) solid var(--color-border)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background-color:var(--color-bg-hover)}.data-table__header-row{background:var(--color-bg-page);border-bottom:2px solid var(--color-border)}.data-table__header-cell{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;user-select:none}.data-table__row{border-bottom:var(--border-width) solid var(--color-border);background-color:var(--color-bg-primary);transition:background-color var(--transition-base)}.data-table__row:last-child{border-bottom:none}.data-table__row:hover{background-color:var(--color-bg-hover)}.data-table__row--clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table__row--clickable:hover{background-color:var(--color-bg-active, rgba(99, 102, 241, .08))}.data-table__cell{padding:var(--spacing-sm) var(--spacing-md);vertical-align:top;color:var(--color-text-primary)}.data-table__empty{padding:var(--spacing-5xl) var(--spacing-lg);text-align:center;color:var(--color-text-secondary);background:var(--color-bg-surface)}.data-table__empty p{margin:0;font-size:var(--font-size-sm)}@media(max-width:768px){.data-table-wrapper{border-radius:0}.data-table{font-size:var(--font-size-xs)}.data-table__header-cell,.data-table__cell{padding:var(--spacing-xs) var(--spacing-sm)}.data-table__header-cell{font-size:var(--font-size-xxs)}}.data-table__row:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}@media(prefers-reduced-motion:reduce){.data-table__row,.data-table__header-row{transition:none}}
