.language-toggle{display:flex;align-items:center;gap:.5rem;background:transparent;border:1px solid rgba(255,255,255,.2);color:#fff;padding:.5rem .75rem;border-radius:5px;cursor:pointer;transition:all .2s ease;font-family:inherit}.language-toggle:hover{background:#ffffff1a;border-color:#fff6}.language-toggle .language-icon{font-size:1.1rem}.language-toggle .language-text{font-size:.85rem;font-weight:600;letter-spacing:.5px}.auth-landing{display:flex;min-height:100vh;max-height:100vh;overflow:hidden;background:#fafbfc;font-family:Inter,sans-serif}.hero-side{flex:1;position:relative;overflow:hidden}@media (max-width: 768px){.hero-side{display:none}}.hero-bg-image{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s ease-in-out;will-change:opacity}.hero-bg-image.active{opacity:1}.hero-bg-image.fading{opacity:.4}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(160deg,#0c1322eb,#0c1322c7 40%,#0c1322a6);z-index:1}.hero-content-wrapper{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;height:100%;padding:2rem 3rem;color:#fff;overflow-y:auto}@media (max-width: 1024px){.hero-content-wrapper{padding:1.5rem 2rem}}.hero-top{animation:fadeIn .8s ease-out}.brand{display:flex;align-items:center;gap:.75rem}.hero-center{max-width:560px;animation:fadeInUp .8s ease-out .15s both}.hero-badge{display:inline-flex;align-items:center;padding:.375rem 1rem;background:#c9a96e1f;border:1px solid rgba(201,169,110,.25);border-radius:100px;font-size:.8125rem;font-weight:500;color:#dfc59b;letter-spacing:.02em;margin-bottom:1.25rem}.hero-title{font-size:2.75rem;font-weight:800;line-height:1.15;margin:0 0 1.25rem;letter-spacing:-.03em;color:#fff}@media (max-width: 1024px){.hero-title{font-size:2.25rem}}.hero-title-accent{background:linear-gradient(135deg,#c9a96e,#dfc59b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.0625rem;line-height:1.6;color:#ffffffb3;margin:0 0 2rem;max-width:480px}@media (max-width: 1024px){.hero-subtitle{font-size:1rem}}.hero-features{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}@media (max-width: 1024px){.hero-features{grid-template-columns:1fr}}.hero-feature{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem;border-radius:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);transition:all .3s ease}.hero-feature:hover{background:#ffffff14;border-color:#c9a96e33;transform:translateY(-1px)}.hero-feature-icon{flex-shrink:0;width:38px;height:38px;border-radius:8px;background:#c9a96e1f;display:flex;align-items:center;justify-content:center;color:#c9a96e}.hero-feature-content{display:flex;flex-direction:column;gap:.2rem;min-width:0}.hero-feature-title{font-size:.875rem;font-weight:600;color:#fff}.hero-feature-desc{font-size:.8125rem;color:#ffffff8c;line-height:1.4}.hero-bottom{display:flex;flex-direction:column;gap:1.25rem;animation:fadeInUp .8s ease-out .5s both}.hero-stats{display:flex;gap:2.5rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.hero-stat{display:flex;flex-direction:column;gap:.125rem}.hero-stat-value{font-size:1.375rem;font-weight:700;color:#c9a96e}.hero-stat-label{font-size:.8125rem;color:#ffffff80}.hero-footer{display:flex;align-items:center;justify-content:space-between;padding-top:1rem;border-top:1px solid rgba(255,255,255,.07)}.hero-contact{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:#fff6;font-size:.8125rem;transition:color .2s ease}.hero-contact:hover{color:#ffffffb3}.hero-contact:hover .hero-contact-email{color:#c9a96e}.hero-contact-email{color:#c9a96eb3;transition:color .2s ease}.hero-testimonial{padding:1.125rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px}.testimonial-quote{display:flex;gap:.75rem;margin-bottom:.875rem}.testimonial-quote svg{flex-shrink:0;margin-top:.125rem;color:#c9a96e}.testimonial-quote p{font-size:.9375rem;line-height:1.5;color:#ffffffbf;margin:0;font-style:italic}.testimonial-author-row{display:flex;align-items:center;gap:.75rem;padding-left:1.75rem}.testimonial-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#c9a96e,#dfc59b);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#0c1322}.testimonial-info{display:flex;flex-direction:column}.testimonial-info strong{font-size:.875rem;font-weight:600;color:#fff}.testimonial-info span{font-size:.75rem;color:#ffffff80}.auth-form-side{flex:0 0 480px;background:#fff;display:flex;align-items:center;justify-content:center;padding:2.5rem 2rem;overflow-y:auto;position:relative}.auth-form-side:before{content:"";position:absolute;top:0;left:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent 0%,#e2e8f0 20%,#e2e8f0 80%,transparent 100%)}@media (max-width: 1024px){.auth-form-side{flex:0 0 440px;padding:2rem 1.5rem}}@media (max-width: 768px){.auth-form-side{flex:1}.auth-form-side:before{display:none}}.auth-form-container{width:100%;max-width:380px;animation:fadeIn .6s ease-out}.form-header{margin-bottom:1.75rem}.mobile-brand{display:none;align-items:center;margin-bottom:1.5rem}@media (max-width: 768px){.mobile-brand{display:flex}}.form-title{font-size:1.625rem;font-weight:700;color:#0f172a;margin:0 0 .375rem;letter-spacing:-.02em}.form-subtitle{font-size:.9375rem;color:#64748b;margin:0;line-height:1.5}.auth-tabs{display:flex;gap:.25rem;margin-bottom:1.5rem;background:#f1f5f9;padding:.25rem;border-radius:10px}.auth-tabs .tab{flex:1;padding:.625rem 1rem;background:transparent;border:none;border-radius:8px;font-size:.875rem;font-weight:600;color:#64748b;cursor:pointer;transition:all .25s ease}.auth-tabs .tab:hover{color:#0f172a}.auth-tabs .tab.active{background:#fff;color:#0c1322;box-shadow:0 1px 3px #00000014,0 1px 2px #0000000f}.auth-form{display:flex;flex-direction:column;gap:1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}@media (max-width: 480px){.form-row{grid-template-columns:1fr}}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group label{font-size:.8125rem;font-weight:600;color:#0f172a}.input-wrapper input{width:100%;padding:.6875rem .875rem .6875rem 3rem;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.875rem;transition:all .2s ease;background:#fff;color:#0f172a}.input-wrapper input:focus~.input-icon,.input-wrapper input:focus+.input-icon{color:#0c1322}.input-wrapper input:focus~.input-icon{color:#0c1322}.input-wrapper input:disabled{background:#f8fafc;cursor:not-allowed;opacity:.6}.form-options{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;margin-top:-.125rem}.form-options .checkbox-label{display:flex;align-items:center;gap:.4rem;cursor:pointer;color:#64748b}.form-options .checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#0c1322}.form-options .forgot-link{color:#c9a96e;text-decoration:none;font-weight:500;transition:color .2s ease}.form-options .forgot-link:hover{color:#bc954c}.submit-button{padding:.8125rem;background:#0c1322;color:#fff;border:none;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .25s ease;position:relative;overflow:hidden;margin-top:.375rem}.submit-button:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#c9a96e,#ceb27d);opacity:0;transition:opacity .3s ease}.submit-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0c13224d}.submit-button:hover:not(:disabled):after{opacity:1}.submit-button:active:not(:disabled){transform:translateY(0)}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.submit-button span{position:relative;z-index:1}.submit-button .loading-spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;position:relative;z-index:1}.terms-text{font-size:.75rem;color:#94a3b8;text-align:center;line-height:1.5;margin:.125rem 0 0}.error-message{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem .875rem;background:#fef0f0;border:1px solid rgb(250.2,198.9,198.9);border-radius:8px;color:#eb1a1a;font-size:.8125rem;line-height:1.4;animation:slideDown .3s ease-out;margin-bottom:.25rem}.error-message svg{flex-shrink:0;margin-top:.0625rem}.tenant-selection-container{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100%;padding:2rem;background:#0c1322}.tenant-selection-container:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 50%,rgba(201,169,110,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(201,169,110,.05) 0%,transparent 50%);pointer-events:none}.tenant-selection-card{width:100%;max-width:560px;background:#fff;border-radius:16px;padding:2.5rem;box-shadow:0 25px 60px #0000004d;animation:scaleIn .4s ease-out;position:relative;z-index:1}.tenant-selection-card h2{font-size:1.75rem;font-weight:700;color:#0f172a;margin:0 0 .375rem;text-align:center;letter-spacing:-.02em}.tenant-selection-card .subtitle{font-size:.9375rem;color:#64748b;text-align:center;margin:0 0 2rem}.tenant-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.tenant-card{display:flex;align-items:center;gap:1rem;padding:1.125rem;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;cursor:pointer;transition:all .25s ease;text-align:left}.tenant-card:hover{border-color:#c9a96e;background:#c9a96e0a;transform:translate(3px)}.tenant-card .tenant-icon{flex-shrink:0;width:44px;height:44px;background:#0c1322;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#c9a96e}.tenant-card .tenant-info{flex:1;display:flex;flex-direction:column;gap:.125rem}.tenant-card .tenant-info .tenant-name{font-size:1rem;font-weight:600;color:#0f172a}.tenant-card .tenant-info .tenant-role{font-size:.8125rem;color:#64748b;text-transform:capitalize}.tenant-card .arrow-icon{flex-shrink:0;color:#94a3b8;transition:all .25s ease}.tenant-card:hover .arrow-icon{color:#c9a96e;transform:translate(3px)}.back-link{display:block;width:100%;padding:.75rem;background:transparent;border:1.5px solid #e2e8f0;border-radius:8px;color:#64748b;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .25s ease;text-align:center}.back-link:hover{border-color:#64748b;color:#0f172a}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.auth-landing{flex-direction:column;overflow-y:auto}.auth-form-side{min-height:100vh;padding:2rem 1.5rem}.auth-form-container{padding-top:1rem}}.booking-tooltip{position:fixed;z-index:1000;display:flex;background:#ebeef2;border-radius:12px;box-shadow:0 4px 6px #00000012,0 2px 3px #0000000a;background-color:#f3f5f7;border:1px solid rgba(0,0,0,.06);min-width:240px;max-width:300px;overflow:hidden;pointer-events:none;animation:tooltipFadeIn .2s cubic-bezier(.05,.7,.1,1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.booking-tooltip__accent{width:5px;flex-shrink:0;border-radius:.25rem 0 0 .25rem}.booking-tooltip__content{padding:1rem 1.5rem;flex:1;background:#fff}.booking-tooltip__guest{font-size:1.125rem;font-weight:700;color:#0f172a;margin-bottom:.5rem;line-height:1.3;letter-spacing:-.01em}.booking-tooltip__row{display:flex;justify-content:space-between;align-items:center;padding:.25rem 0}.booking-tooltip__label{font-size:.75rem;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.booking-tooltip__value{font-size:.875rem;color:#0f172a;font-weight:600}.booking-tooltip__status{margin-top:.5rem;font-size:.75rem;font-weight:700;text-align:center;padding:.25rem 1rem;border-radius:.75rem;background:#10b9811f;color:#0d9467;text-transform:uppercase;letter-spacing:.05em;box-shadow:0 1px 2px #0000000d;background-color:#fdfdfe}.booking-tooltip__status[data-status=pending]{background:#f59e0b1f;color:#ac6f07}.booking-tooltip__status[data-status=cancelled]{background:#ef44441f;color:#ed2828}.booking-tooltip__status[data-status=checked_in]{background:#0d94881f;color:#134e4a}.booking-tooltip__status[data-status=checked_out]{background:#64748b1f;color:#505d6f}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.color-picker-popover{position:fixed;z-index:1100;background:#ebeef2;border-radius:12px;box-shadow:0 6px 10px #00000014,0 3px 4px #0000000d;background-color:#edeff2;border:1px solid rgba(0,0,0,.06);padding:1rem 1.5rem;min-width:220px;animation:pickerFadeIn .15s cubic-bezier(.05,.7,.1,1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.color-picker-popover__title{font-size:.875rem;font-weight:700;color:#0f172a;letter-spacing:.02em;margin-bottom:1rem}.color-picker-popover__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem;padding:.5rem;background:#fff;border-radius:.5rem}.color-picker-popover__swatch{width:32px;height:32px;border-radius:50%;border:3px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s cubic-bezier(.2,0,0,1),border-color .2s cubic-bezier(.2,0,0,1),box-shadow .2s cubic-bezier(.2,0,0,1);outline:none;padding:0;box-shadow:0 1px 2px #0000000d;background-color:#fdfdfe}.color-picker-popover__swatch:focus-visible{outline:3px solid rgba(13,148,136,.5);outline-offset:3px;border-radius:inherit}.color-picker-popover__swatch:hover{transform:scale(1.2);box-shadow:0 4px 6px #00000012,0 2px 3px #0000000a;background-color:#f3f5f7}.color-picker-popover__swatch:active{transform:scale(1.1);box-shadow:0 2px 4px #0000000f,0 1px 2px #0000000a;background-color:#f8fafb}.color-picker-popover__swatch.active{border-color:#0d9488;box-shadow:0 0 0 3px #0d948833,0 2px 4px #0000000f,0 1px 2px #0000000a;transform:scale(1.1)}.color-picker-popover__reset{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;padding:.5rem 1rem;width:100%;border:none;background:#f1f4f7;border-radius:.5rem;font-size:.875rem;font-weight:600;color:#0f172a;cursor:pointer;transition:background .2s cubic-bezier(.2,0,0,1),color .2s cubic-bezier(.2,0,0,1),transform .2s cubic-bezier(.2,0,0,1);box-shadow:0 1px 2px #0000000d;background-color:#fdfdfe;position:relative}.color-picker-popover__reset:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-color:#0f172a;opacity:0;transition:opacity .2s cubic-bezier(.2,0,0,1);pointer-events:none;border-radius:inherit}.color-picker-popover__reset:hover:before{opacity:.08}.color-picker-popover__reset:focus-visible{outline:3px solid rgba(13,148,136,.5);outline-offset:2px;border-radius:inherit}.color-picker-popover__reset:hover{box-shadow:0 2px 4px #0000000f,0 1px 2px #0000000a;background-color:#f8fafb}.color-picker-popover__reset:active{transform:scale(.98);box-shadow:0 1px 2px #0000000d;background-color:#fdfdfe}@keyframes pickerFadeIn{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.context-menu{position:fixed;background:#ebeef2;border-radius:12px;box-shadow:0 6px 10px #00000014,0 3px 4px #0000000d;background-color:#edeff2;border:1px solid rgba(0,0,0,.06);min-width:220px;z-index:1000;overflow:hidden;animation:contextMenuFadeIn .2s cubic-bezier(.05,.7,.1,1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.92) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.context-menu-header{padding:1rem 1.5rem;font-size:.875rem;font-weight:700;color:#0f172a;letter-spacing:.02em;background:#f7f9fb;border-bottom:1px solid rgba(0,0,0,.06)}.context-menu-item{width:100%;display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border:none;background:transparent;cursor:pointer;font-size:.875rem;font-weight:500;color:#0f172a;transition:background .2s cubic-bezier(.2,0,0,1),transform .2s cubic-bezier(.2,0,0,1);text-align:left;position:relative}.context-menu-item:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-color:#0f172a;opacity:0;transition:opacity .2s cubic-bezier(.2,0,0,1);pointer-events:none;border-radius:inherit}.context-menu-item:hover:before{opacity:.08}.context-menu-item:focus-visible{outline:3px solid rgba(13,148,136,.5);outline-offset:2px;border-radius:inherit}.context-menu-item svg{font-size:1.25rem;color:#0d9488;transition:transform .2s cubic-bezier(.2,0,0,1),color .2s cubic-bezier(.2,0,0,1)}.context-menu-item:hover{background:#f1f4f7}.context-menu-item:hover svg{transform:scale(1.15);color:#14b8a6}.context-menu-item:active{transform:scale(.98);background:#ebeef2}.context-menu-item.danger{color:#ef4444}.context-menu-item.danger svg{color:#ef4444}.context-menu-item.danger:hover{background:#ef444414}.context-menu-item.danger:hover svg{color:#f15757}.context-menu-divider{height:1px;background:#0000000f;margin:.5rem 1rem}.skeleton-loader{padding:2rem;max-width:100%}.skeleton-grid-container{background:#fff;border-radius:12px;padding:0;box-shadow:0 2px 4px #0000000f,0 1px 2px #0000000a;background-color:#f8fafb;border:1px solid rgba(0,0,0,.04);overflow:hidden}.skeleton-grid-table{display:table;width:100%;min-width:1200px;border-collapse:separate;border-spacing:0}.skeleton-grid-row{display:table-row}.skeleton-grid-row.skeleton-header-row .skeleton-grid-cell{background:#ebeef2;position:sticky;top:0;z-index:10;border-bottom:1px solid rgba(0,0,0,.06);padding:1rem .5rem;height:60px}.skeleton-grid-cell{display:table-cell;padding:.5rem;border-right:1px solid rgba(0,0,0,.04);border-bottom:1px solid rgba(0,0,0,.04);text-align:center;vertical-align:middle;min-width:90px;height:70px}.skeleton-grid-cell:first-child{border-left:none}.skeleton-grid-cell.skeleton-room-header{min-width:140px;position:sticky;left:0;background:#ebeef2;z-index:20;border-right:1px solid rgba(0,0,0,.08)}.skeleton-grid-cell.skeleton-date-header{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.25rem}.skeleton-grid-cell.skeleton-room-cell{min-width:140px;position:sticky;left:0;background:#fff;z-index:5;text-align:left;border-right:1px solid rgba(0,0,0,.08);padding:1rem}.skeleton-grid-cell.skeleton-room-cell .skeleton-text{margin-bottom:.25rem}.skeleton-grid-cell.skeleton-booking-cell{position:relative}.skeleton-text{background:linear-gradient(90deg,#f7f9fb,#ebeef2,#f7f9fb 40%,#f7f9fb);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:.25rem;height:12px}.skeleton-text.skeleton-text-xs{width:50px;height:10px}.skeleton-text.skeleton-text-sm{width:60px;height:12px}.skeleton-text.skeleton-text-md{width:80px;height:14px}.skeleton-text.skeleton-text-lg{width:60px;height:14px}.skeleton-booking{background:linear-gradient(90deg,#f7f9fb,#ebeef2,#f7f9fb 40%,#f7f9fb);background-size:200% 100%;animation:shimmer 2s ease-in-out infinite;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80%;height:60%;border-radius:.375rem;box-shadow:0 1px 2px #0000000d;background-color:#fdfdfe}@media (max-width: 1024px){.skeleton-loader{padding:1.5rem}.skeleton-grid-container{overflow-x:auto;-webkit-overflow-scrolling:touch}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.booking-grid{padding:2rem;max-width:100%}.booking-grid.density-compact .grid-cell{height:50px;min-height:50px;padding:.25rem;font-size:.75rem}.booking-grid.density-compact .grid-cell.room-cell{padding:.5rem}.booking-grid.density-compact .grid-cell.room-cell .room-number{font-size:.875rem;margin-bottom:2px}.booking-grid.density-compact .grid-cell.room-cell .room-type,.booking-grid.density-compact .booking-label{font-size:10px}.booking-grid.density-spacious .grid-cell{height:90px;min-height:90px;padding:1rem;font-size:1rem}.booking-grid.density-spacious .grid-cell.room-cell{padding:1.5rem}.booking-grid.density-spacious .grid-cell.room-cell .room-number{font-size:1.125rem;margin-bottom:.5rem}.booking-grid.density-spacious .grid-cell.room-cell .room-type,.booking-grid.density-spacious .booking-label{font-size:.875rem}.grid-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.grid-header h1{font-size:1.875rem;color:#0f172a;margin:0;font-weight:700;letter-spacing:-.03em}.grid-header .header-controls{display:flex;align-items:center;gap:1rem}.grid-header .date-controls,.grid-header .density-toggle{display:flex;gap:.25rem;background:#f7f9fb;padding:.25rem;border-radius:.75rem;box-shadow:0 1px 2px #0000000d;background-color:#fdfdfe;border:1px solid rgba(0,0,0,.04)}.grid-header .density-toggle button{padding:.5rem 1rem;border:none;background:transparent;color:#64748b;border-radius:.5rem;cursor:pointer;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;transition:background-color .2s cubic-bezier(.2,0,0,1),color .2s cubic-bezier(.2,0,0,1),transform .2s cubic-bezier(.2,0,0,1)}.grid-header .density-toggle button:hover{background:#0d948814;color:#0f172a}.grid-header .density-toggle button.active{background:#ccfbf1;color:#134e4a;box-shadow:0 2px 4px #0000000f,0 1px 2px #0000000a;background-color:#f8fafb}.grid-header .density-toggle button:focus-visible{outline:3px solid rgba(13,148,136,.5);outline-offset:2px;border-radius:inherit}.grid-container{background:#fff;border-radius:12px;padding:0;box-shadow:0 2px 4px #0000000f,0 1px 2px #0000000a;background-color:#f8fafb;border:1px solid rgba(0,0,0,.04);overflow:hidden;transition:box-shadow .2s cubic-bezier(.2,0,0,1)}.grid-table{display:table;width:100%;min-width:1200px;border-collapse:separate;border-spacing:0}.grid-row{display:table-row}.grid-row.header-row .grid-cell{background:#ebeef2;font-weight:600;position:sticky;top:0;z-index:10;border-bottom:1px solid rgba(0,0,0,.06);padding:1rem .5rem;font-size:.875rem;letter-spacing:.02em;box-shadow:0 1px 2px #0000000d;background-color:#fdfdfe}.grid-cell{display:table-cell;padding:.5rem;border-right:1px solid rgba(0,0,0,.04);border-bottom:1px solid rgba(0,0,0,.04);text-align:center;vertical-align:middle;min-width:90px;height:70px;transition:all .2s cubic-bezier(.2,0,0,1)}.grid-cell:first-child{border-left:none}.grid-cell.room-header{font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;min-width:140px;position:sticky;left:0;background:#ebeef2;z-index:20;border-right:1px solid rgba(0,0,0,.08);box-shadow:0 1px 2px #0000000d;background-color:#fdfdfe}.grid-cell.date-header{font-size:.75rem;color:#64748b;position:relative}.grid-cell.date-header div:first-child{font-weight:600;color:#0f172a;font-size:.875rem;margin-bottom:2px}.grid-cell.date-header.today{background:#ccfbf1;box-shadow:0 1px 2px #0000000d;background-color:#fdfdfe}.grid-cell.date-header.today:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#0d9488,#14b8a6);box-shadow:0 2px 4px #0d94884d;border-radius:0 0 .25rem .25rem}.grid-cell.date-header.today div:first-child{color:#134e4a;font-weight:700}.grid-cell.date-header.today div:last-child{color:#134e4a}.grid-cell.room-cell{min-width:140px;position:sticky;left:0;background:#fff;z-index:5;text-align:left;font-weight:500;border-right:1px solid rgba(0,0,0,.08);padding:1rem;transition:background-color .2s cubic-bezier(.2,0,0,1)}.grid-cell.room-cell .room-number{font-size:1rem;color:#0f172a;margin-bottom:.25rem;font-weight:600;letter-spacing:-.01em}.grid-cell.room-cell .room-type{font-size:.75rem;color:#64748b;text-transform:capitalize;font-weight:500}.grid-cell.booking-cell{cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s cubic-bezier(.2,0,0,1);position:relative;overflow:hidden}.grid-cell.booking-cell:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background-color:#0d94884d;transform:translate(-50%,-50%);transition:width .35s cubic-bezier(.05,.7,.1,1),height .35s cubic-bezier(.05,.7,.1,1),opacity .35s cubic-bezier(.2,0,0,1);opacity:0}.grid-cell.booking-cell:active:after{width:300px;height:300px;opacity:1;transition:width 50ms cubic-bezier(.3,0,.8,.15),height 50ms cubic-bezier(.3,0,.8,.15),opacity 50ms cubic-bezier(.2,0,0,1)}.grid-cell.booking-cell{border-radius:.25rem}.grid-cell.booking-cell.available{background:#10b9810f;box-shadow:0 1px 2px #0000000d;background-color:#fdfdfe;position:relative}.grid-cell.booking-cell.available:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-color:#10b981;opacity:0;transition:opacity .2s cubic-bezier(.2,0,0,1);pointer-events:none;border-radius:inherit}.grid-cell.booking-cell.available:hover:before{opacity:.08}.grid-cell.booking-cell.available:hover{box-shadow:0 2px 4px #0000000f,0 1px 2px #0000000a;background-color:#f8fafb;transform:translateY(-1px) scale(1.015)}.grid-cell.booking-cell.available:active{box-shadow:0 1px 2px #0000000d;background-color:#fdfdfe;transform:translateY(0) scale(1)}.grid-cell.booking-cell.booked{box-shadow:0 2px 4px #0000000f,0 1px 2px #0000000a;background-color:#f8fafb;position:relative}.grid-cell.booking-cell.booked:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-color:#0f172a;opacity:0;transition:opacity .2s cubic-bezier(.2,0,0,1);pointer-events:none;border-radius:inherit}.grid-cell.booking-cell.booked:hover:before{opacity:.05}.grid-cell.booking-cell.booked{border-radius:.375rem}.grid-cell.booking-cell.booked:hover{box-shadow:0 4px 6px #00000012,0 2px 3px #0000000a;background-color:#f3f5f7;transform:translateY(-2px) scale(1.02);z-index:2}.grid-cell.booking-cell.booked:active{box-shadow:0 2px 4px #0000000f,0 1px 2px #0000000a;background-color:#f8fafb;transform:translateY(-1px) scale(1.01)}.grid-cell.booking-cell.selected{background:#c9a96e26;box-shadow:0 6px 10px #00000014,0 3px 4px #0000000d;background-color:#edeff2;border:2px solid #c9a96e;box-shadow:0 6px 10px #00000014,0 3px 4px #0000000d,0 0 0 3px #c9a96e33;z-index:3;animation:pulse-selection .3s cubic-bezier(.05,.7,.1,1)}@keyframes pulse-selection{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.grid-cell.booking-cell.past-date{background:#94a3b80a!important;cursor:not-allowed!important;opacity:.4;box-shadow:none!important}.grid-cell.booking-cell.past-date:hover{background:#94a3b80a!important;transform:none!important;filter:none!important;box-shadow:none!important}.grid-cell.booking-cell.past-date:before{display:none}.grid-cell.booking-cell.past-date:after{display:none}.grid-cell.booking-cell.today{position:relative}.grid-cell.booking-cell.today:after{content:"";position:absolute;top:0;bottom:0;left:0;width:4px;background:linear-gradient(to bottom,#0d9488,#14b8a6);opacity:.8;box-shadow:0 0 8px #0d948866;border-radius:.25rem 0 0 .25rem}.grid-cell.booking-cell.today.available{background:#0d948814;box-shadow:inset 0 0 0 1px #0d948833}.grid-cell.booking-cell .booking-label{font-size:.75rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:absolute;left:.5rem;right:.5rem;top:50%;transform:translateY(-50%);text-shadow:0 1px 2px rgba(255,255,255,.9);letter-spacing:.02em;background:#fffc;padding:.25rem .5rem;border-radius:.5rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 1px 2px #0000000d;background-color:#fdfdfe}.grid-legend{display:flex;gap:2rem;margin-top:1.5rem;padding:1rem 1.5rem;background:#f7f9fb;border-radius:12px;border:1px solid rgba(0,0,0,.04);box-shadow:0 1px 2px #0000000d;background-color:#fdfdfe;align-items:center}.grid-legend .legend-hint{margin-left:auto;font-size:.75rem;color:#94a3b8;font-style:italic;display:flex;align-items:center}.grid-legend .legend-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:#64748b}.grid-legend .legend-item .legend-color{width:36px;height:24px;border-radius:.375rem;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 2px #0000000d;background-color:#fdfdfe}.grid-legend .legend-item .legend-color.available{background:#10b98114}.grid-legend .legend-item .legend-color.booked-sample{background:linear-gradient(135deg,#0d9488,#0d9488 33%,#e07456 33%,#e07456 66%,#0284c7 66%,#0284c7)}.grid-legend .legend-item .legend-color.past{background:#94a3b80d;opacity:.5}.grid-legend .legend-item .legend-color.selected{background:#c9a96e26;border-color:#c9a96e;border-width:2px}.loading-container{display:flex;align-items:center;justify-content:center;min-height:400px}.loading-container .spinner{width:56px;height:56px;border:5px solid #ebeef2;border-top-color:#0d9488;border-right-color:#c9a96e;border-radius:50%;animation:spin .8s cubic-bezier(.2,0,0,1) infinite}@media (max-width: 1024px){.booking-grid{padding:1.5rem}.booking-grid:not(.density-spacious) .grid-cell{height:60px;min-height:60px}.grid-header{flex-direction:column;gap:1rem;align-items:flex-start}.grid-header h1{font-size:1.5rem}.grid-header .header-controls{width:100%;flex-direction:column;gap:.5rem}.grid-header .date-controls,.grid-header .density-toggle{width:100%;justify-content:space-between}.grid-container{overflow-x:auto;-webkit-overflow-scrolling:touch;background:linear-gradient(90deg,#fff 30%,#fff0),linear-gradient(90deg,#fff0,#fff 70%) 100% 0,radial-gradient(farthest-side at 0 50%,#00000026,#0000),radial-gradient(farthest-side at 100% 50%,#00000026,#0000) 100% 0;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}}@media (max-width: 768px){.booking-grid{padding:1rem}.grid-header h1{font-size:1.25rem}.grid-cell{min-width:80px}.grid-cell.room-cell{min-width:120px}.density-toggle button{font-size:10px;padding:.25rem .5rem}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.booking-cell:hover{transform:none!important}}@media (prefers-contrast: high){.grid-container{border:2px solid currentColor}.grid-cell{border-width:2px}.booking-cell.booked{border:2px solid currentColor}}@media (hover: none) and (pointer: coarse){.booking-cell{min-width:48px;min-height:48px;display:inline-flex;align-items:center;justify-content:center}.booking-cell:hover{transform:none;box-shadow:inherit}.density-toggle button{min-width:48px;min-height:48px;display:inline-flex;align-items:center;justify-content:center}}.booking-form-container{max-width:800px;margin:0 auto;padding:2rem}.search-results{position:absolute;top:100%;left:0;z-index:100;background-color:#fff;border:1.5px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;max-height:300px;overflow-y:auto;width:100%;margin-top:.25rem}.search-result-item{padding:1rem;cursor:pointer;transition:background-color .15s ease;border-bottom:1px solid #e2e8f0}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background-color:#f1f5f9}.search-result-item .client-name{font-weight:600;color:#0f172a;margin-bottom:.25rem}.search-result-item .client-info{font-size:.75rem;color:#64748b}.selected-client{margin-top:.5rem;padding:1rem;background-color:#c9a96e14;border:1.5px solid rgba(201,169,110,.25);border-radius:8px;font-size:.875rem;color:#937337}.new-client-form{padding:1.5rem;background-color:#f8fafc;border-radius:8px;border:1.5px solid #e2e8f0;margin-top:1rem;margin-bottom:1rem}.new-client-form h3{margin-top:0;margin-bottom:1rem;color:#0f172a;font-size:1.125rem;letter-spacing:-.02em}@media (max-width: 768px){.form-row{grid-template-columns:1fr}}.pricing-breakdown{margin-top:1.5rem;padding:1rem 1.5rem;background-color:#c9a96e0f;border:1.5px solid rgba(201,169,110,.2);border-radius:8px}.pricing-breakdown .pricing-row{display:flex;justify-content:space-between;align-items:center;padding:.25rem 0;font-size:.875rem;color:#64748b;border-bottom:1px solid rgba(201,169,110,.12)}.pricing-breakdown .pricing-row:last-child{border-bottom:none}.pricing-breakdown .pricing-row.pricing-total{margin-top:.25rem;padding-top:.5rem;font-size:1.125rem;color:#937337}.pricing-breakdown .season-badge{padding:2px .5rem;border-radius:.25rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.pricing-breakdown .season-badge.season-alta{background-color:#ef44441f;color:#ef4444}.pricing-breakdown .season-badge.season-media{background-color:#f59e0b1f;color:#c57f08}.pricing-breakdown .season-badge.season-baja{background-color:#10b9811f;color:#0d9467}.print-receipt-modal{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000c;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;overflow-y:auto}.receipt-actions{display:flex;gap:1rem;margin-bottom:1.5rem;justify-content:center}.receipt-actions .btn{display:flex;align-items:center;gap:.25rem}.receipt-container{background:#fff;max-width:800px;width:100%;padding:3rem;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;border-radius:12px;color:#000}.receipt-header{text-align:center;border-bottom:2px solid #0c1322;padding-bottom:1.5rem;margin-bottom:2rem}.receipt-header .receipt-hotel-name{font-size:1.5rem;font-weight:700;color:#0c1322;margin-bottom:1rem;letter-spacing:.5px;text-transform:uppercase}.receipt-header h1{margin:0 0 .5rem;font-size:1.25rem;color:#0c1322}.receipt-header .receipt-number{font-size:.875rem;color:#64748b;font-weight:600}.receipt-section{margin-bottom:2rem;page-break-inside:avoid}.receipt-section h3{margin:0 0 1rem;font-size:1.125rem;color:#0c1322;border-bottom:1px solid #e2e8f0;padding-bottom:.25rem}.receipt-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px dotted #f1f5f9}.receipt-row.receipt-total{border-top:2px solid #0c1322;border-bottom:2px solid #0c1322;padding:1rem 0;margin-top:1rem;font-weight:700;font-size:1.125rem}.receipt-row .receipt-label{color:#64748b;font-weight:500}.receipt-row .receipt-value{color:#0c1322;font-weight:600}.receipt-notes{padding:1rem;background-color:#f8fafc;border-radius:.25rem;font-size:.875rem;line-height:1.6;color:#0f172a}.receipt-footer{margin-top:2rem;padding-top:1.5rem;border-top:2px solid #e2e8f0;text-align:center;color:#64748b}.receipt-footer p{margin:.25rem 0;font-size:.875rem}.receipt-footer .receipt-date{font-size:.75rem;color:#94a3b8}@media print{.print-receipt-modal{position:static;background:#fff;padding:0}.no-print{display:none!important}.receipt-container{box-shadow:none;border-radius:0;max-width:100%;padding:20mm}@page{margin:20mm}}.file-preview{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px;margin-bottom:8px}.file-preview__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.file-preview__meta{display:flex;align-items:flex-start;gap:12px;flex:1;min-width:0}.file-preview__icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background-color:#f3f4f6;border-radius:6px;color:#6b7280}.file-preview__icon svg{width:20px;height:20px}.file-preview__info{flex:1;min-width:0}.file-preview__name{margin:0;font-size:14px;font-weight:500;color:#111827;word-break:break-word;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-preview__details{margin:2px 0 0;font-size:12px;color:#6b7280}.file-preview__date{margin:2px 0 0;font-size:11px;color:#9ca3af}.file-preview__actions{display:flex;gap:4px;flex-shrink:0}.file-preview__action-btn{width:32px;height:32px;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;background-color:#f3f4f6;color:#6b7280}.file-preview__action-btn svg{width:18px;height:18px}.file-preview__action-btn:hover:not(:disabled){background-color:#e5e7eb;color:#374151}.file-preview__action-btn:disabled{opacity:.5;cursor:not-allowed}.file-preview__action-btn--download:hover:not(:disabled){color:#3b82f6}.file-preview__action-btn--delete:hover:not(:disabled){background-color:#fee2e2;color:#dc2626}.file-preview__action-btn .spinner{width:16px;height:16px;border:2px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.file-preview__image-container{margin-top:8px;border-radius:4px;overflow:hidden;background-color:#f9fafb}.file-preview__image{width:100%;height:auto;display:block;max-height:200px;object-fit:contain}.file-preview__error{margin-top:8px;padding:8px;background-color:#fee2e2;border:1px solid #fecaca;border-radius:4px;font-size:12px;color:#dc2626}.file-preview__confirm{margin-top:8px;padding:12px;background-color:#fef3c7;border:1px solid #fbbf24;border-radius:4px}.file-preview__confirm-text{margin:0 0 8px;font-size:13px;color:#92400e}.file-preview__confirm-actions{display:flex;gap:8px;justify-content:flex-end}.file-preview__confirm-cancel,.file-preview__confirm-delete{padding:6px 12px;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.file-preview__confirm-cancel:disabled,.file-preview__confirm-delete:disabled{opacity:.5;cursor:not-allowed}.file-preview__confirm-cancel{background-color:#f3f4f6;color:#374151}.file-preview__confirm-cancel:hover:not(:disabled){background-color:#e5e7eb}.file-preview__confirm-delete{background-color:#dc2626;color:#fff}.file-preview__confirm-delete:hover:not(:disabled){background-color:#b91c1c}.audit-log-feed{margin-top:2rem;border-top:1px solid #e2e8f0;padding-top:1.5rem}.audit-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.audit-header svg{color:#c9a96e;font-size:1.25rem}.audit-header h4{margin:0;font-size:1rem;color:#0c1322;font-weight:600}.audit-list{display:flex;flex-direction:column;gap:1rem;max-height:300px;overflow-y:auto;padding-right:.5rem}.audit-list::-webkit-scrollbar{width:6px}.audit-list::-webkit-scrollbar-track{background:#f8fafc;border-radius:3px}.audit-list::-webkit-scrollbar-thumb{background:#e2e8f0;border-radius:3px}.audit-list::-webkit-scrollbar-thumb:hover{background:#64748b}.audit-item{display:flex;gap:1rem;padding:1rem;background:#f8fafc;border-radius:.25rem;transition:all .2s ease}.audit-item:hover{background:#f1f5f9;transform:translate(2px)}.audit-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:50%;border:1.5px solid #e2e8f0}.audit-icon svg{font-size:1.125rem;color:#c9a96e}.audit-content{flex:1;min-width:0}.audit-description{font-size:.875rem;color:#0f172a;margin-bottom:.25rem;line-height:1.5}.audit-meta{display:flex;gap:1rem;font-size:.75rem;color:#94a3b8;flex-wrap:wrap}.audit-user{display:flex;align-items:center;gap:4px}.audit-user svg{font-size:.875rem}.audit-time{font-style:italic}.audit-loading,.audit-empty{padding:1.5rem;text-align:center;color:#64748b;font-size:.875rem;font-style:italic}.file-upload{width:100%}.file-upload__input{display:none}.file-upload__dropzone{border:2px dashed #d1d5db;border-radius:8px;padding:32px;text-align:center;cursor:pointer;transition:all .2s ease;background-color:#f9fafb}.file-upload__dropzone:hover:not(.disabled){border-color:#3b82f6;background-color:#eff6ff}.file-upload__dropzone.drag-over{border-color:#3b82f6;background-color:#dbeafe;transform:scale(1.02)}.file-upload__dropzone.disabled{cursor:not-allowed;opacity:.5}.file-upload__dropzone-icon{color:#6b7280;margin-bottom:16px;display:flex;justify-content:center}.file-upload__dropzone-icon svg{stroke:currentColor}.file-upload__dropzone-icon .spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.file-upload__dropzone-text{margin:0}.file-upload__dropzone-title{margin:0 0 4px;font-size:14px;font-weight:500;color:#111827}.file-upload__dropzone-subtitle{margin:0;font-size:12px;color:#6b7280}.file-upload__preview{display:flex;align-items:center;gap:12px;padding:12px;background-color:#f0fdf4;border:1px solid #86efac;border-radius:8px}.file-upload__preview-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background-color:#22c55e1a;border-radius:4px;color:#22c55e}.file-upload__preview-icon svg{width:24px;height:24px}.file-upload__preview-content{flex:1;min-width:0}.file-upload__preview-name{margin:0;font-size:14px;font-weight:500;color:#111827;word-break:break-word}.file-upload__preview-size{margin:4px 0 0;font-size:12px;color:#6b7280}.file-upload__preview-remove{flex-shrink:0;width:32px;height:32px;border:none;background-color:#fee2e2;color:#dc2626;border-radius:4px;font-size:20px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0}.file-upload__preview-remove:hover:not(:disabled){background-color:#fecaca}.file-upload__preview-remove:disabled{opacity:.5;cursor:not-allowed}.file-upload__error{margin-top:8px;padding:8px 12px;background-color:#fee2e2;border:1px solid #fecaca;border-radius:4px;font-size:13px;color:#dc2626}.booking-detail-drawer{position:fixed;right:0;top:0;width:min(100%,420px);height:100vh;background:#fff;box-shadow:-4px 0 12px #00000026;z-index:95;display:flex;flex-direction:column;animation:slideInRight .3s ease;overflow:hidden}@media (max-width: 768px){.booking-detail-drawer{width:100%}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1.5px solid #e2e8f0;flex-shrink:0}.drawer-header h2{margin:0;font-size:1.125rem;color:#0f172a;font-weight:600}.drawer-header .drawer-header-actions{display:flex;gap:.25rem;align-items:center}.drawer-header .icon-btn,.drawer-header .close-btn{background:none;border:none;padding:.25rem;cursor:pointer;color:#64748b;display:flex;align-items:center;justify-content:center;border-radius:.375rem;transition:all .15s ease}.drawer-header .icon-btn:hover:not(:disabled),.drawer-header .close-btn:hover:not(:disabled){background-color:#f8fafc;color:#0f172a}.drawer-header .icon-btn.success,.drawer-header .close-btn.success{color:#10b981}.drawer-header .icon-btn.success:hover:not(:disabled),.drawer-header .close-btn.success:hover:not(:disabled){background-color:#10b9811a;color:#10b981}.drawer-header .icon-btn.danger,.drawer-header .close-btn.danger{color:#ef4444}.drawer-header .icon-btn.danger:hover:not(:disabled),.drawer-header .close-btn.danger:hover:not(:disabled){background-color:#ef44441a;color:#ef4444}.drawer-header .icon-btn:disabled,.drawer-header .close-btn:disabled{opacity:.5;cursor:not-allowed}.drawer-content{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.drawer-footer{border-top:1.5px solid #e2e8f0;padding:1.5rem;flex-shrink:0;background-color:#f8fafc}.guest-section h3{margin:0 0 1rem;font-size:1rem;color:#0f172a;font-weight:600}.guest-section .guest-info{display:flex;flex-direction:column;gap:.5rem}.guest-section .info-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background-color:#f8fafc;border-radius:8px}.guest-section .info-row .info-label{font-size:.875rem;color:#64748b;font-weight:500}.guest-section .info-row .info-value{font-size:.875rem;color:#0f172a;font-weight:500}.booking-section h4,.status-section h4,.payment-section h4,.notes-section h4{margin:0 0 1rem;font-size:.875rem;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.details-grid .detail-item{display:flex;flex-direction:column;gap:.25rem;padding:.5rem 1rem;background-color:#f8fafc;border-radius:8px}.details-grid .detail-item .detail-label{font-size:.75rem;color:#94a3b8;font-weight:500;text-transform:uppercase;letter-spacing:.02em}.details-grid .detail-item .detail-value{font-size:1rem;color:#0f172a;font-weight:600}.status-timeline{display:flex;gap:.5rem;overflow-x:auto;padding:.5rem 0}.status-timeline .timeline-step{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:fit-content;flex-shrink:0}.status-timeline .timeline-step .timeline-dot{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease;background-color:#f8fafc}.status-timeline .timeline-step .timeline-dot svg{font-size:1rem;color:#fff}.status-timeline .timeline-step .timeline-label{font-size:.75rem;color:#64748b;text-align:center;max-width:60px;font-weight:500;white-space:nowrap}.status-timeline .timeline-step.completed .timeline-dot{background-color:#10b981;box-shadow:0 0 8px #10b9814d}.status-timeline .timeline-step.active .timeline-dot{transform:scale(1.15);box-shadow:0 0 12px #3b82f666}.payment-details{display:flex;flex-direction:column;gap:1rem;padding:1rem;background-color:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.payment-details .payment-row{display:flex;justify-content:space-between;align-items:center}.payment-details .payment-row .payment-label{font-size:.875rem;color:#64748b;font-weight:500}.payment-details .payment-row .payment-value{font-size:1rem;color:#0f172a;font-weight:600}.payment-details .payment-row .payment-value.success{color:#10b981}.payment-details .payment-row .payment-value.warning{color:#f59e0b}.payment-details .payment-progress{display:flex;align-items:center;gap:1rem}.payment-details .payment-progress .progress-bar{flex:1;height:8px;background-color:#f1f5f9;border-radius:999px;overflow:hidden}.payment-details .payment-progress .progress-bar .progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#c9a96e);transition:width .3s ease}.payment-details .payment-progress .progress-text{font-size:.75rem;color:#64748b;font-weight:600;min-width:45px;text-align:right}.record-payment{display:flex;flex-direction:column;gap:1rem;padding:1rem;background-color:#c9a96e0d;border:1.5px solid rgba(201,169,110,.2);border-radius:8px}.record-payment label{font-size:.875rem;color:#64748b;font-weight:600}.record-payment .payment-input-row{display:flex;gap:.5rem}.record-payment .payment-input-row input{flex:1;padding:.5rem 1rem;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.875rem;background-color:#fff;color:#0f172a;transition:border-color .15s ease}.record-payment .payment-input-row input:focus{outline:none;border-color:#c9a96e}.record-payment .payment-input-row input:disabled{background-color:#f8fafc;color:#94a3b8}.notes-section{padding:1rem;background-color:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.notes-section p{margin:0;font-size:.875rem;color:#0f172a;line-height:1.5}.action-buttons{display:flex;flex-direction:column;gap:.5rem}.action-buttons button{width:100%;padding:1rem;font-size:.875rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .15s ease}.action-buttons button:disabled{opacity:.6;cursor:not-allowed}.action-buttons button.btn.btn-primary{background-color:#3b82f6;color:#fff}.action-buttons button.btn.btn-primary:hover:not(:disabled){background-color:#2563eb}.action-buttons button.btn.btn-success{background-color:#10b981;color:#fff}.action-buttons button.btn.btn-success:hover:not(:disabled){background-color:#0ea271}.action-buttons button.btn.btn-warning{background-color:#f59e0b;color:#fff}.action-buttons button.btn.btn-warning:hover:not(:disabled){background-color:#dd8e09}.action-buttons button.btn.btn-danger{background-color:#ef4444;color:#fff}.action-buttons button.btn.btn-danger:hover:not(:disabled){background-color:#ed2d2d}.edit-form{display:flex;flex-direction:column;gap:1rem}.edit-form .form-group{display:flex;flex-direction:column;gap:.25rem}.edit-form .form-group label{font-size:.75rem;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.edit-form .form-group input,.edit-form .form-group select,.edit-form .form-group textarea{padding:.5rem 1rem;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.875rem;background-color:#fff;color:#0f172a;transition:border-color .15s ease;font-family:inherit}.edit-form .form-group input:focus,.edit-form .form-group select:focus,.edit-form .form-group textarea:focus{outline:none;border-color:#c9a96e}.edit-form .form-group input:disabled,.edit-form .form-group select:disabled,.edit-form .form-group textarea:disabled{background-color:#f8fafc;color:#94a3b8;cursor:not-allowed}.edit-form .form-group textarea{resize:vertical;min-height:80px}@media (max-width: 768px){.details-grid{grid-template-columns:1fr}.action-buttons{flex-direction:row}.action-buttons button{flex:1}}.dashboard{min-height:100vh;background-color:#f8fafc}.dashboard-content{min-height:calc(100vh - 80px)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;padding:2rem 2rem 0;max-width:1400px;margin:0 auto}.stats-grid .stat-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 1px 2px #0000000d;border:1.5px solid #e2e8f0;display:flex;flex-direction:column;gap:.25rem;transition:all .25s ease;position:relative;overflow:hidden}.stats-grid .stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(135deg,#c9a96e,#dfc59b)}.stats-grid .stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.stats-grid .stat-card h3{font-size:.75rem;color:#64748b;margin:0;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.stats-grid .stat-card .stat-value{font-size:1.5rem;font-weight:700;color:#0c1322}.stats-grid .stat-card .stat-meta{font-size:.75rem;color:#94a3b8}.fab-new-booking{position:fixed;bottom:2rem;right:2rem;z-index:90;display:flex;align-items:center;gap:.5rem;background:#c9a96e;color:#fff;border:none;border-radius:28px;padding:0 1.25rem 0 .875rem;height:56px;font-size:.875rem;font-weight:600;letter-spacing:.02em;cursor:pointer;box-shadow:0 6px 20px #c9a96e66,0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}.fab-new-booking svg{font-size:1.5rem}.fab-new-booking:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 8px 28px #c9a96e80,0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;background:#c29e5b}.fab-new-booking:active{transform:translateY(0) scale(.98);box-shadow:0 4px 12px #c9a96e4d,0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;display:flex;justify-content:flex-end;animation:fadeIn .2s ease}@media (max-width: 768px){.fab-new-booking{bottom:1.25rem;right:1.25rem}.fab-new-booking .fab-label{display:none}.fab-new-booking{padding:0;width:56px;justify-content:center;border-radius:50%}}.room-management{padding:2rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h1{font-size:1.875rem;color:#0f172a;margin:0;font-weight:700;letter-spacing:-.02em}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.room-card{background-color:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 1px 2px #0000000d;border:1.5px solid #e2e8f0;transition:all .25s ease}.room-card:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;transform:translateY(-2px);border-color:#c9a96e4d}.room-card.inactive{opacity:.6;border-color:#ef4444}.room-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #e2e8f0}.room-card-header h3{margin:0;font-size:1.25rem;color:#0f172a;letter-spacing:-.02em}.room-card-body{margin-bottom:1rem}.room-card-body p{margin-bottom:.5rem;color:#64748b;font-size:.875rem}.room-card-body p strong{color:#0f172a;font-weight:600}.room-card-body .room-description{margin-top:1rem;padding-top:.5rem;border-top:1px solid #e2e8f0;font-style:italic}.room-card-body .amenities{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.room-card-footer{display:flex;gap:.5rem;justify-content:flex-end}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.pricing-preview{grid-column:1/-1}.category-badge{display:inline-block;padding:.25rem .5rem;background-color:#c9a96e1a;border:1px solid rgba(201,169,110,.3);border-radius:.25rem;font-size:.875rem;font-weight:600;color:#0f172a;margin-bottom:.5rem}.rate-preview__label{display:block;font-size:.75rem;color:#64748b;margin-bottom:.25rem}.rate-preview__grid{display:flex;flex-direction:column;gap:.25rem}.rate-preview__item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#64748b}.rate-preview__item strong{margin-left:auto;color:#0f172a}.season-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.season-dot.season-alta{background-color:#ef4444}.season-dot.season-media{background-color:#f59e0b}.season-dot.season-baja{background-color:#10b981}@media (max-width: 768px){.room-grid,.form-row{grid-template-columns:1fr}}.staff-management{padding:2rem;max-width:1200px;margin:0 auto}.staff-management .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.staff-management .page-header h1{font-size:1.5rem;color:#0f172a;margin:0;font-weight:700;letter-spacing:-.02em}.staff-management .staff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.staff-management .staff-card{background:#fff;border-radius:12px;border:1.5px solid #e2e8f0;box-shadow:0 1px 2px #0000000d;padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between;gap:1rem;transition:all .25s ease}.staff-management .staff-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;border-color:#c9a96e4d}.staff-management .staff-card .staff-info h3{margin:0 0 .25rem;color:#0f172a;font-size:1.125rem;letter-spacing:-.02em}.staff-management .staff-card .staff-info .email{color:#64748b;margin:0 0 1rem;font-size:.875rem}.staff-management .staff-card .staff-info .role-badge{display:inline-block;padding:.25rem .5rem;border-radius:6px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.staff-management .staff-card .staff-info .role-badge.owner{background-color:#c9a96e1f;color:#aa843f}.staff-management .staff-card .staff-info .role-badge.manager{background-color:#64748b1a;color:#64748b}.staff-management .staff-card .staff-actions{border-top:1px solid #e2e8f0;padding-top:1rem;display:flex;justify-content:flex-end}.staff-management .staff-card .staff-actions .current-user-badge{font-size:.875rem;color:#94a3b8;font-style:italic}.staff-management .help-text{display:block;margin-top:.25rem;color:#64748b;font-size:.75rem}.pricing-settings{padding:2rem}.strategy-switcher{display:flex;gap:.5rem;margin-bottom:2rem}.strategy-switcher .strategy-btn{flex:1;padding:1rem 1.5rem;border-radius:12px;border:1.5px solid #e2e8f0;background:#fff;color:#64748b;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.strategy-switcher .strategy-btn.active{border-color:#c9a96e;color:#c9a96e;background:#c9a96e0f}.strategy-switcher .strategy-btn:not(.active):hover{border-color:#64748b;color:#0f172a}.pricing-section{margin-bottom:2rem}.pricing-section__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.pricing-section__header h3{font-size:1.125rem;color:#0f172a;margin:0;font-weight:600}.rate-table{width:100%;border-collapse:collapse;font-size:.875rem}.rate-table th{text-align:left;padding:.5rem 1rem;border-bottom:2px solid #e2e8f0;color:#64748b;font-weight:600;white-space:nowrap}.rate-table td{padding:.5rem 1rem;border-bottom:1px solid #e2e8f0;color:#0f172a;vertical-align:middle}.rate-table tr:last-child td{border-bottom:none}.rate-table .rate-input{width:100px;padding:.25rem .5rem;border:1px solid #e2e8f0;border-radius:.25rem;font-size:.875rem;background:#fff;color:#0f172a}.rate-table .rate-input:focus{outline:none;border-color:#c9a96e}.season-tag{display:inline-block;padding:2px .5rem;border-radius:.25rem;font-size:.75rem;font-weight:600}.season-tag.season-alta{background:#ef44441a;color:#ef4444}.season-tag.season-media{background:#f59e0b1a;color:#f59e0b}.season-tag.season-baja{background:#10b9811a;color:#10b981}.season-tag.season-default{background:#64748b1a;color:#64748b}.category-chip{display:inline-block;padding:2px .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500;background:#c9a96e1a;color:#0f172a;border:1px solid rgba(201,169,110,.25)}.seed-info{background:#c9a96e0f;border:1px solid rgba(201,169,110,.25);border-radius:12px;padding:1rem 1.5rem;font-size:.875rem;color:#64748b;margin-bottom:2rem}@media (max-width: 768px){.rate-table{display:block;overflow-x:auto}.strategy-switcher{flex-direction:column}}.layout{min-height:100vh;background-color:#f8fafc}.layout-nav{background-color:#0c1322;box-shadow:0 1px 3px #0003;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}.layout-nav .nav-brand h2{margin:0;color:#fff;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.layout-nav .nav-brand .tenant-select-brand{background:transparent;border:none;color:#fff;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:28px;margin:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center;transition:opacity .2s}.layout-nav .nav-brand .tenant-select-brand:hover{opacity:.9}.layout-nav .nav-brand .tenant-select-brand:focus{outline:none}.layout-nav .nav-brand .tenant-select-brand option{background:#0c1322;color:#fff;font-size:1rem;font-weight:500}.layout-nav .nav-menu{display:flex;align-items:center;gap:1.5rem}.layout-nav .nav-menu .nav-link{background:none;border:none;color:#ffffffa6;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .25s ease;padding:.5rem 1rem;border-radius:8px}.layout-nav .nav-menu .nav-link:hover{color:#fff;background-color:#ffffff14}.layout-nav .nav-menu .nav-user{display:flex;align-items:center;gap:1rem;margin-left:1.5rem;padding-left:1.5rem;border-left:1px solid rgba(255,255,255,.12)}.layout-nav .nav-menu .nav-user .user-info{font-size:.875rem;color:#fff9}.layout-nav .nav-menu .nav-user .btn-outline{border-color:#ffffff26;color:#ffffffb3}.layout-nav .nav-menu .nav-user .btn-outline:hover:not(:disabled){background-color:#ffffff14;border-color:#ffffff40;color:#fff}.layout-content{min-height:calc(100vh - 80px)}@media (max-width: 768px){.layout-nav{flex-direction:column;gap:1rem;padding:1rem}.layout-nav .nav-menu{flex-direction:column;width:100%;gap:.5rem}.layout-nav .nav-menu .nav-link{width:100%;text-align:center}.layout-nav .nav-menu .nav-user{flex-direction:column;margin-left:0;padding-left:0;border-left:none;border-top:1px solid rgba(255,255,255,.1);padding-top:1rem;width:100%}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;color:#0f172a;font-size:1rem;line-height:1.5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.btn{padding:.625rem 1rem;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .25s ease;display:inline-flex;align-items:center;gap:.5rem;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:#0c1322;color:#fff;position:relative;overflow:hidden}.btn-primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#c9a96e,#dfc59b);opacity:0;transition:opacity .3s ease}.btn-primary span{position:relative;z-index:1}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0c13224d}.btn-primary:hover:not(:disabled):after{opacity:1}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background-color:#64748b;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#4f5c6e}.btn-success{background-color:#10b981;color:#fff}.btn-success:hover:not(:disabled){background-color:#0c8b61}.btn-danger{background-color:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background-color:#eb1414}.btn-outline{background-color:transparent;border:1.5px solid #e2e8f0;color:#0f172a}.btn-outline:hover:not(:disabled){background-color:#f1f5f9;border-color:#94a3b8}.btn-small{padding:.25rem .5rem;font-size:.75rem}.btn-large{padding:1rem 1.5rem;font-size:1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.375rem;font-size:.8125rem;font-weight:600;color:#0f172a}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.6875rem .875rem;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.875rem;background:#fff;color:#0f172a;transition:all .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#0c1322;box-shadow:0 0 0 3px #0c132214}.form-group input::placeholder,.form-group select::placeholder,.form-group textarea::placeholder{color:#94a3b8}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:#f8fafc;cursor:not-allowed;opacity:.6}.form-group select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;padding-right:2.25rem}.form-group textarea{resize:vertical;min-height:80px}.form-group .error{color:#ef4444;font-size:.75rem;margin-top:.25rem}.input-wrapper{position:relative;display:flex;align-items:center}.input-wrapper .input-icon{position:absolute;left:.875rem;color:#94a3b8;pointer-events:none;transition:color .2s ease;z-index:1;width:18px;height:18px}.input-wrapper input{width:100%;padding:.6875rem .875rem .6875rem 3rem;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.875rem;background:#fff;color:#0f172a;transition:all .2s ease}.input-wrapper input:focus{outline:none;border-color:#0c1322;box-shadow:0 0 0 3px #0c132214}.input-wrapper input::placeholder{color:#94a3b8}.input-wrapper input:disabled{background-color:#f8fafc;cursor:not-allowed;opacity:.6}.input-wrapper:focus-within .input-icon{color:#0c1322}.card{background-color:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 1px 2px #0000000d;border:1.5px solid #e2e8f0;transition:all .25s ease}.card:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.card-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.card-header h2,.card-header h3{margin:0;color:#0f172a;letter-spacing:-.02em}.card-body{margin-bottom:1rem}.card-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:.5rem}.table{width:100%;border-collapse:collapse;background-color:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 2px #0000000d}.table thead{background-color:#f8fafc}.table thead th{padding:1rem 1.5rem;text-align:left;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.table tbody tr{border-bottom:1px solid #e2e8f0;transition:background-color .15s ease}.table tbody tr:hover{background-color:#f1f5f9}.table tbody tr:last-child{border-bottom:none}.table tbody td{padding:1rem 1.5rem;font-size:.875rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0c132280;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.modal{background-color:#fff;border-radius:16px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 25px 60px #0003;padding:2rem;animation:scaleIn .3s ease-out}.badge{display:inline-block;padding:.3rem .625rem;border-radius:6px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.badge-success{background-color:#9ef7d9;color:#085b3f}.badge-danger{background-color:#f8b0b0;color:#d41212}.badge-warning{background-color:#fce2b6;color:#945f06}.badge-info{background-color:#bcd5fc;color:#073c92}.badge-secondary{background-color:#e4e7ec;color:#4f5c6e}.badge-gold{background-color:#c9a96e1f;color:#9f7c3b}.badge-purple{background-color:#6366f11a;color:#4f46e5}.badge-gray{background-color:#f1f5f9;color:#64748b}.spinner{border:3px solid #e2e8f0;border-top-color:#0c1322;border-radius:50%;width:40px;height:40px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.loading-container{display:flex;justify-content:center;align-items:center;min-height:200px}.tenant-select{padding:.375rem 1.75rem .375rem .75rem;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.875rem;color:#0f172a;background:#fff;cursor:pointer;transition:all .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .625rem center;margin-right:1rem}.tenant-select:focus{outline:none;border-color:#0c1322;box-shadow:0 0 0 3px #0c132214}.text-center{text-align:center}.text-right{text-align:right}.mt-1{margin-top:1rem}.mb-1{margin-bottom:1rem}.mt-2{margin-top:1.5rem}.mb-2{margin-bottom:1.5rem}.mt-sm{margin-top:.5rem}.flex{display:flex}.flex-col{flex-direction:column}.gap-1{gap:1rem}.gap-2{gap:1.5rem}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.admin-layout{display:flex;min-height:100vh;background-color:#f8fafc}.admin-layout .admin-sidebar{width:260px;background-color:#0c1322;color:#fff;display:flex;flex-direction:column;position:fixed;height:100vh;z-index:50;transition:transform .3s ease}.admin-layout .admin-sidebar .sidebar-header{padding:2rem;border-bottom:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center}.admin-layout .admin-sidebar .sidebar-header h2{font-size:1.25rem;font-weight:700;margin:0;color:#fff;letter-spacing:-.02em}.admin-layout .admin-sidebar .sidebar-header .close-sidebar{display:none;background:none;border:none;color:#fff;font-size:24px;cursor:pointer}.admin-layout .admin-sidebar .sidebar-nav{flex:1;padding:1.5rem;display:flex;flex-direction:column;gap:.5rem}.admin-layout .admin-sidebar .sidebar-nav .nav-item{padding:1rem 1.5rem;color:#94a3b8;text-decoration:none;border-radius:8px;transition:all .25s ease;font-weight:500}.admin-layout .admin-sidebar .sidebar-nav .nav-item:hover{color:#fff;background-color:#ffffff0f}.admin-layout .admin-sidebar .sidebar-nav .nav-item.active{color:#c9a96e;background-color:#c9a96e1a}.admin-layout .admin-sidebar .sidebar-footer{padding:1.5rem;border-top:1px solid rgba(255,255,255,.08)}.admin-layout .admin-sidebar .sidebar-footer .user-info{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.admin-layout .admin-sidebar .sidebar-footer .user-info .avatar{width:36px;height:36px;background:linear-gradient(135deg,#c9a96e,#dfc59b);color:#0c1322;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem}.admin-layout .admin-sidebar .sidebar-footer .user-info .details{display:flex;flex-direction:column}.admin-layout .admin-sidebar .sidebar-footer .user-info .details .name{font-size:.875rem;font-weight:600}.admin-layout .admin-sidebar .sidebar-footer .user-info .details .role{font-size:.75rem;color:#94a3b8}.admin-layout .admin-sidebar .sidebar-footer .logout-btn{width:100%;padding:.5rem;background-color:transparent;border:1.5px solid rgba(239,68,68,.4);color:#f26969;border-radius:8px;cursor:pointer;transition:all .25s ease;font-size:.875rem;font-weight:500}.admin-layout .admin-sidebar .sidebar-footer .logout-btn:hover{background-color:#ef4444;border-color:#ef4444;color:#fff}.admin-layout .admin-main{flex:1;margin-left:260px;display:flex;flex-direction:column;min-height:100vh}.admin-layout .admin-main .top-header{background-color:#fff;padding:1.5rem;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:40}.admin-layout .admin-main .top-header .menu-toggle{display:none;background:none;border:none;font-size:24px;cursor:pointer;color:#64748b}.admin-layout .admin-main .top-header h1{font-size:1.25rem;font-weight:700;color:#0f172a;margin:0;letter-spacing:-.02em}.admin-layout .admin-main .content-container{padding:3rem;flex:1;overflow-y:auto}@media (max-width: 768px){.admin-layout .admin-sidebar{transform:translate(-100%)}.admin-layout .admin-sidebar.open{transform:translate(0)}.admin-layout .admin-sidebar .sidebar-header .close-sidebar{display:block}.admin-layout .admin-main{margin-left:0}.admin-layout .admin-main .top-header .menu-toggle{display:block}.admin-layout .admin-main .content-container{padding:1.5rem}.admin-layout .sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0c132280;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:45}}.admin-dashboard .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-bottom:3rem}.admin-dashboard .stat-card{background-color:#fff;padding:2rem;border-radius:12px;box-shadow:0 1px 2px #0000000d;border:1.5px solid #e2e8f0;display:flex;align-items:center;gap:1.5rem;transition:all .25s ease}.admin-dashboard .stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;border-color:#c9a96e4d}.admin-dashboard .stat-card .stat-icon{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px}.admin-dashboard .stat-card .stat-icon.hotels{background-color:#c9a96e1a;color:#b58d44}.admin-dashboard .stat-card .stat-icon.users{background-color:#c6fae9;color:#0b825a}.admin-dashboard .stat-card .stat-icon.bookings{background-color:#0c13220f;color:#0c1322}.admin-dashboard .stat-card .stat-info h3{font-size:.75rem;color:#64748b;margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.admin-dashboard .stat-card .stat-info .stat-value{font-size:1.875rem;font-weight:700;color:#0c1322;margin:0}.admin-dashboard .stat-card .stat-info .stat-subtext{font-size:.75rem;color:#94a3b8}.admin-dashboard .dashboard-welcome{background-color:#fff;padding:3rem;border-radius:12px;border:1.5px solid #e2e8f0;box-shadow:0 1px 2px #0000000d;text-align:center;color:#64748b}.admin-dashboard .dashboard-welcome h2{color:#0f172a;margin-bottom:.5rem;letter-spacing:-.02em}.admin-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.admin-page .page-header h2{margin:0;color:#0f172a;font-weight:700;letter-spacing:-.02em}.admin-page .table-container{background:#fff;border-radius:12px;border:1.5px solid #e2e8f0;box-shadow:0 1px 2px #0000000d;overflow-x:auto}.admin-page .admin-table{width:100%;border-collapse:collapse;min-width:800px}.admin-page .admin-table th{background-color:#f8fafc;padding:1rem 1.5rem;text-align:left;font-size:.75rem;font-weight:600;color:#64748b;border-bottom:1px solid #e2e8f0;text-transform:uppercase;letter-spacing:.05em}.admin-page .admin-table td{padding:1rem 1.5rem;border-bottom:1px solid #e2e8f0;color:#0f172a;vertical-align:middle;font-size:.875rem}.admin-page .admin-table td.mono-font{font-family:monospace;color:#94a3b8}.admin-page .admin-table td.font-medium{font-weight:500}.admin-page .admin-table td.text-center{text-align:center;color:#64748b;padding:2rem}.admin-page .admin-table tbody tr{transition:background-color .15s ease}.admin-page .admin-table tbody tr:hover{background-color:#f1f5f9}.admin-page .admin-table tbody tr:last-child td{border-bottom:none}.admin-page .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0c132280;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease-out}.admin-page .loading{padding:2rem;color:#64748b}.admin-page .text-muted{color:#64748b;font-size:.875rem}.admin-page .action-group{display:flex;gap:.25rem;flex-wrap:wrap}.admin-page .form-section-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:.5rem}.admin-page .roles-list{display:flex;flex-direction:column;gap:2px}.admin-page .role-tag{font-size:.75rem;background:#c9a96e14;border:1px solid rgba(201,169,110,.2);border-radius:.25rem;padding:2px .5rem;display:inline-flex;align-items:center;gap:4px}.admin-page .btn-sm{padding:4px 10px;font-size:.75rem}.admin-page .btn-warning{background:#f59e0b;color:#000;border-color:#f59e0b}.admin-page .badge-success{background:#10b9811f;color:#10b981;border-color:#10b9814d}.admin-page .badge-danger{background:#ef44441f;color:#ef4444;border-color:#ef44444d}.admin-page .badge-purple{background:#8b5cf61f;color:#8b5cf6;border-color:#8b5cf64d}.admin-page .badge-gray{background:#f8fafc;color:#64748b;border-color:#e2e8f0}.admin-page .owner-mode-toggle{display:flex;border:1.5px solid #e2e8f0;border-radius:.375rem;overflow:hidden;width:fit-content}.admin-page .owner-mode-toggle .toggle-btn{padding:.25rem 1rem;background:transparent;border:none;cursor:pointer;font-size:.875rem;color:#64748b;transition:background .15s,color .15s}.admin-page .owner-mode-toggle .toggle-btn.active{background:#c9a96e;color:#fff;font-weight:600}.admin-page .owner-mode-toggle .toggle-btn:not(.active):hover{background:#f1f5f9}.admin-page .modal-content{background:#fff;padding:2rem;border-radius:16px;width:100%;max-width:500px;box-shadow:0 25px 60px #0003;animation:scaleIn .3s ease-out}.admin-page .modal-content h3{margin-top:0;margin-bottom:1.5rem;letter-spacing:-.02em}.admin-page .modal-content .form-group{margin-bottom:1rem}.admin-page .modal-content .modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:8px;max-width:380px}.toast{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-radius:8px;color:#fff;font-size:.875rem;box-shadow:0 4px 12px #00000026;animation:slideIn .25s ease-out}.toast-success{background-color:#059669}.toast-error{background-color:#dc2626}.toast-info{background-color:#0284c7}.toast-warning{background-color:#d97706}.toast-message{flex:1;margin-right:12px}.toast-close{background:none;border:none;color:inherit;font-size:1.25rem;cursor:pointer;opacity:.7;line-height:1;padding:0}.toast-close:hover{opacity:1}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}
