:root{--primary-color:#6366f1;--primary-dark:#4f46e5;--primary-light:#818cf8;--secondary-color:#ec4899;--accent-color:#f59e0b;--success-color:#10b981;--danger-color:#ef4444;--bg-primary:#fff;--bg-secondary:#f9fafb;--bg-tertiary:#f3f4f6;--text-primary:#1f2937;--text-secondary:#6b7280;--text-tertiary:#9ca3af;--border-color:#e5e7eb;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a;--transition:all .3s ease}*{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-secondary);color:var(--text-primary);font-family:Poppins,sans-serif;line-height:1.6}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}.app{background-color:var(--bg-secondary);width:100%;min-height:100vh}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--primary-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary-dark)}.home{flex-direction:column;width:100%;min-height:100vh;display:flex}.header{box-shadow:var(--shadow-md);z-index:100;background:#fff;position:sticky;top:0}.header-content{justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto;padding:16px 20px;display:flex}.logo{cursor:pointer;transition:var(--transition);align-items:center;gap:10px;display:flex}.logo:hover{transform:scale(1.05)}.logo-icon{font-size:28px}.logo-text{background:linear-gradient(135deg, var(--primary-color), var(--secondary-color));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:20px;font-weight:700}.nav{align-items:center;gap:32px;display:flex}.nav-link{color:var(--text-secondary);transition:var(--transition);font-size:14px;font-weight:500;text-decoration:none}.nav-link:hover{color:var(--primary-color)}.nav-button{background:linear-gradient(135deg, var(--primary-color), var(--primary-light));color:#fff;cursor:pointer;transition:var(--transition);border:none;border-radius:6px;padding:8px 20px;font-family:Poppins,sans-serif;font-size:13px;font-weight:600}.nav-button:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.nav-ghost-button{color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;transition:var(--transition);background:#fff;border-radius:6px;padding:8px 14px;font-family:Poppins,sans-serif;font-size:13px;font-weight:700}.nav-ghost-button:hover{border-color:var(--primary-color);color:var(--primary-color)}.nav-user{max-width:180px;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.reservation-modal{z-index:200;background:#1f293794;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.reservation-card{border:1px solid var(--border-color);width:min(540px,100%);box-shadow:var(--shadow-xl);background:#fff;border-radius:8px;flex-direction:column;gap:16px;padding:24px;display:flex}.reservation-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.reservation-eyebrow{color:var(--primary-color);letter-spacing:.5px;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:800}.reservation-heading h2{margin:0;font-size:22px;line-height:1.2}.modal-close{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:6px;padding:8px 10px;font-family:Poppins,sans-serif;font-size:12px;font-weight:700}.reservation-field{color:var(--text-primary);flex-direction:column;gap:8px;font-size:13px;font-weight:700;display:flex}.reservation-field input,.reservation-field select{border:1px solid var(--border-color);background:var(--bg-secondary);width:100%;color:var(--text-primary);font:inherit;border-radius:6px;outline:none;padding:10px 12px;font-size:14px}.reservation-dates{grid-template-columns:1fr 1fr;gap:12px;display:grid}.reservation-total{background:var(--bg-secondary);border-radius:8px;justify-content:space-between;align-items:center;padding:14px;display:flex}.reservation-total span{color:var(--text-secondary);font-size:13px;font-weight:700}.reservation-total strong{color:var(--primary-color);font-size:22px}.reservation-submit{background:linear-gradient(135deg, var(--primary-color), var(--primary-light));color:#fff;cursor:pointer;border:none;border-radius:6px;padding:12px 16px;font-family:Poppins,sans-serif;font-size:14px;font-weight:800}.reservation-message{background:var(--bg-secondary);color:var(--text-secondary);border-radius:6px;margin:0;padding:10px 12px;font-size:13px;font-weight:700}.hotels-section{flex:1;padding:40px 20px}.hotels-container{max-width:1200px;margin:0 auto}.section-header{text-align:center;margin-bottom:40px}.section-title{color:var(--text-primary);margin-bottom:8px;font-size:32px;font-weight:700}.section-subtitle{color:var(--text-secondary);margin:0;font-size:16px}.hotels-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px;display:grid}.rooms-feedback{border:1px solid var(--border-color);color:var(--text-secondary);text-align:center;background:#fff;border-radius:8px;grid-column:1/-1;padding:18px;font-size:14px;font-weight:700}.rooms-feedback.error{color:var(--danger-color);background:#ef444414;border-color:#ef444459}.footer{background:linear-gradient(135deg, var(--text-primary) 0%, #2d3748 100%);color:#fff;margin-top:40px;padding:40px 20px 20px}.footer-content{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:32px;max-width:1200px;margin:0 auto 24px;display:grid}.footer-section h4{color:#fff;margin-bottom:12px;font-size:16px}.footer-section p{opacity:.8;margin:0;font-size:13px;line-height:1.6}.footer-section ul{margin:0;padding:0;list-style:none}.footer-section li{margin-bottom:8px}.footer-section a{color:#ffffffb3;transition:var(--transition);font-size:13px;text-decoration:none}.footer-section a:hover{color:#fff}.footer-bottom{text-align:center;opacity:.7;border-top:1px solid #ffffff1a;padding-top:24px;font-size:12px}@media (width<=1024px){.header-content{flex-direction:column;gap:16px}.nav{gap:16px}.hotels-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.section-title{font-size:28px}}@media (width<=768px){.header-content{padding:12px 16px}.logo-text{font-size:18px}.nav{flex-direction:column;gap:8px;width:100%}.nav-link{font-size:13px}.nav-button,.nav-ghost-button{width:100%}.reservation-dates{grid-template-columns:1fr}.hotels-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.hotels-section{padding:24px 16px}.section-title{font-size:22px}.footer-content{grid-template-columns:1fr;gap:24px}.footer{padding:24px 16px 16px}}@media (width<=480px){.logo-text,.nav-link,.nav-button,.nav-ghost-button,.nav-user{display:none}.hotels-grid{grid-template-columns:1fr}.section-title{font-size:20px}.section-subtitle{font-size:14px}}.search-bar-container{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);border-radius:0 0 16px 16px;width:100%;margin-bottom:40px;padding:40px 20px}.search-bar{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:flex-end;gap:16px;max-width:1200px;margin:0 auto;display:grid}.search-field{flex-direction:column;display:flex}.search-field label{color:#fff;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px;font-weight:600}.search-field input,.search-field select{color:var(--text-primary);transition:var(--transition);background-color:#fff;border:none;border-radius:8px;padding:10px 12px;font-family:Poppins,sans-serif;font-size:14px}.search-field input:focus,.search-field select:focus{outline:none;box-shadow:0 0 0 3px #ffffff4d}.search-field input::placeholder{color:var(--text-tertiary)}.btn-search{color:var(--primary-color);cursor:pointer;transition:var(--transition);text-transform:uppercase;letter-spacing:.5px;background-color:#fff;border:none;border-radius:8px;padding:10px 24px;font-family:Poppins,sans-serif;font-size:14px;font-weight:600}.btn-search:hover{transform:translateY(-2px);box-shadow:0 8px 16px #0003}@media (width<=768px){.search-bar{grid-template-columns:1fr}.btn-search{width:100%}.search-bar-container{margin-bottom:24px;padding:24px 16px}}.categories-container{max-width:1200px;margin:0 auto;padding:40px 20px}.categories-title{text-align:center;background:linear-gradient(135deg, var(--primary-color), var(--secondary-color));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:32px;font-size:28px;font-weight:700}.categories-grid{scroll-snap-type:x proximity;gap:16px;padding-bottom:8px;display:flex;overflow-x:auto}.category-card{text-align:center;cursor:pointer;transition:var(--transition);border:2px solid var(--border-color);box-shadow:var(--shadow-sm);scroll-snap-align:start;background:#fff;border-radius:12px;flex:0 0 170px;padding:20px}.category-card:hover{border-color:var(--primary-color);box-shadow:var(--shadow-lg);transform:translateY(-8px)}.category-icon{margin-bottom:12px;font-size:48px;display:inline-block}.category-name{color:var(--text-primary);margin-bottom:4px;font-size:16px;font-weight:600}.category-description{color:var(--text-secondary);font-size:12px}@media (width<=768px){.categories-grid{gap:12px}.categories-title{margin-bottom:24px;font-size:22px}.category-card{flex-basis:145px;padding:16px}.category-icon{font-size:36px}.category-name{font-size:14px}}.offer-section{background:linear-gradient(135deg, var(--bg-tertiary) 0%, var(--bg-secondary) 100%);margin:40px 0;padding:40px 20px}.offer-container{max-width:1200px;margin:0 auto}.offer-title{text-align:center;color:var(--text-primary);margin-bottom:32px;font-size:28px;font-weight:700}.offers-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;display:grid}.offer-card{box-shadow:var(--shadow-md);transition:var(--transition);background:#fff;border-top:4px solid;border-radius:12px;flex-direction:column;padding:24px;display:flex}.offer-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-8px)}.offer-image{margin-bottom:16px;font-size:48px;display:inline-block}.offer-content{margin-bottom:16px;position:relative}.offer-badge{color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:6px;margin-bottom:8px;padding:6px 12px;font-size:11px;font-weight:700;display:inline-block}.offer-title-text{color:var(--text-primary);margin:8px 0;font-size:18px;font-weight:700}.offer-description{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.5}.btn-offer{background:linear-gradient(135deg, var(--primary-color), var(--secondary-color));color:#fff;cursor:pointer;transition:var(--transition);border:none;border-radius:6px;align-self:flex-start;margin-top:auto;padding:10px 20px;font-family:Poppins,sans-serif;font-size:13px;font-weight:600}.btn-offer:hover{transform:translate(4px)}@media (width<=768px){.offer-section{margin:24px 0;padding:24px 16px}.offer-title{margin-bottom:24px;font-size:22px}.offers-grid{grid-template-columns:1fr;gap:16px}.offer-card{padding:16px}.offer-image{font-size:36px}}.hotel-card{box-shadow:var(--shadow-md);transition:var(--transition);border:1px solid var(--border-color);background:#fff;border-radius:12px;flex-direction:column;height:100%;display:flex;overflow:hidden}.hotel-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-8px)}.hotel-card.featured{border:2px solid var(--primary-color)}.hotel-image-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;width:100%;height:200px;display:flex;position:relative;overflow:hidden}.hotel-room-image{object-fit:cover;width:100%;height:100%}.hotel-card:hover .hotel-image-container{filter:brightness(1.1)}.discount-badge,.featured-badge{z-index:10;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:700;position:absolute;top:12px;right:12px}.discount-badge{background-color:var(--danger-color);color:#fff}.featured-badge{background-color:var(--accent-color);color:#fff;left:12px;right:auto}.room-number-badge{color:#fff;background:#1f2937db;border-radius:6px;padding:6px 10px;font-size:12px;font-weight:800;position:absolute;bottom:12px;right:12px}.hotel-content{flex-direction:column;flex:1;padding:16px;display:flex}.hotel-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.hotel-name{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.rating{flex-shrink:0;align-items:center;gap:4px;display:flex}.stars{font-size:14px}.rating-value{color:var(--primary-color);background-color:var(--bg-tertiary);border-radius:4px;padding:2px 6px;font-size:12px;font-weight:600}.hotel-location{color:var(--text-secondary);margin:0 0 8px;font-size:13px}.hotel-brand{color:var(--primary-color);margin:0 0 4px;font-size:12px;font-weight:800}.hotel-description{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:38px;margin:0 0 8px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.hotel-amenities{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.amenity-tag{background-color:var(--bg-tertiary);color:var(--text-secondary);border-radius:4px;padding:4px 8px;font-size:11px;font-weight:500}.hotel-reviews{color:var(--text-tertiary);margin:4px 0;font-size:12px}.hotel-footer{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:12px;display:flex}.price-section{flex-direction:column;align-items:flex-start;display:flex}.original-price{color:var(--text-tertiary);font-size:12px;text-decoration:line-through}.price{color:var(--primary-color);font-size:20px;font-weight:700}.per-night{color:var(--text-secondary);font-size:11px}.btn-book{background:linear-gradient(135deg, var(--primary-color), var(--primary-light));color:#fff;cursor:pointer;transition:var(--transition);white-space:nowrap;border:none;border-radius:6px;padding:8px 16px;font-family:Poppins,sans-serif;font-size:12px;font-weight:600}.btn-book:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}@media (width<=768px){.hotel-image-container{height:150px}.hotel-name{font-size:14px}.price{font-size:18px}.hotel-footer{flex-direction:column;align-items:flex-start}.btn-book{text-align:center;width:100%}}.services-section{background:#fff;padding:36px 20px}.services-container{max-width:1200px;margin:0 auto}.services-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;display:grid}.service-card{border:1px solid var(--border-color);background:var(--bg-secondary);min-height:170px;box-shadow:var(--shadow-sm);border-radius:8px;flex-direction:column;justify-content:space-between;gap:18px;padding:18px;display:flex}.service-card h3{color:var(--text-primary);margin:0 0 8px;font-size:17px}.service-card p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.6}.service-card strong{width:fit-content;color:var(--primary-color);background:#fff;border-radius:6px;padding:7px 10px;font-size:13px}.services-state{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);text-align:center;border-radius:8px;padding:18px;font-size:14px;font-weight:700}.services-state.error{color:var(--danger-color);background:#ef444414;border-color:#ef444459}@media (width<=768px){.services-section{padding:28px 16px}.services-grid{grid-template-columns:1fr}}.dashboard{background-color:var(--bg-secondary);flex-direction:column;width:100%;min-height:100vh;display:flex}.dashboard-content{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:32px 24px}.dashboard-header-section{justify-content:space-between;align-items:center;gap:24px;margin-bottom:32px;display:flex}.dashboard-header-section h1{color:var(--text-primary);margin:0;font-size:32px;font-weight:700}.dashboard-eyebrow{color:var(--primary-color);letter-spacing:.5px;text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:700}.dashboard-summary{max-width:680px;color:var(--text-secondary);margin:8px 0 0;font-size:14px}.period-selector{box-shadow:var(--shadow-sm);background:#fff;border-radius:8px;gap:8px;padding:4px;display:flex}.dashboard-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.pdf-button{background:linear-gradient(135deg, var(--success-color), #34d399);color:#fff;cursor:pointer;transition:var(--transition);border:none;border-radius:6px;padding:10px 14px;font-family:Poppins,sans-serif;font-size:13px;font-weight:800}.pdf-button:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.pdf-status{color:var(--success-color);font-size:12px;font-weight:800}.period-btn{color:var(--text-secondary);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-radius:6px;padding:8px 16px;font-family:Poppins,sans-serif;font-size:13px;font-weight:500}.period-btn.active{background:linear-gradient(135deg, var(--primary-color), var(--primary-light));color:#fff}.period-btn:hover:not(.active){background-color:var(--bg-tertiary)}.dashboard-grid{grid-template-columns:2fr 1fr;gap:24px;margin-bottom:24px;display:grid}.grid-col-1{grid-column:1}.grid-col-2{grid-column:1/-1}.role-switcher{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:24px;display:grid}.session-panel{border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background:#fff;border-radius:8px;margin-bottom:24px;padding:20px}.session-panel h2{margin:10px 0 4px;font-size:20px}.session-panel p{color:var(--text-secondary);margin:0;font-size:13px}.role-card{text-align:left;border:1px solid var(--border-color);min-height:144px;box-shadow:var(--shadow-sm);cursor:pointer;transition:var(--transition);color:var(--text-primary);background:#fff;border-radius:8px;flex-direction:column;gap:8px;padding:16px;font-family:Poppins,sans-serif;display:flex}.role-card:hover,.role-card.active{border-color:var(--primary-color);box-shadow:var(--shadow-md);transform:translateY(-2px)}.role-card.active{background:linear-gradient(135deg,#6366f114,#ec489914)}.role-card strong{font-size:16px}.role-card span:last-child{color:var(--text-secondary);font-size:12px;line-height:1.5}.role-group{background:var(--bg-tertiary);width:fit-content;color:var(--primary-color);text-transform:uppercase;letter-spacing:.5px;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700}.access-panel{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px;display:grid}.access-card,.module-card{border:1px solid var(--border-color);box-shadow:var(--shadow-md);background:#fff;border-radius:8px;padding:20px}.access-card h2,.module-card h3{color:var(--text-primary);margin:0 0 14px;font-size:18px}.permission-list,.quick-actions{flex-wrap:wrap;gap:10px;display:flex}.permission-chip{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:6px;padding:7px 10px;font-size:12px;font-weight:600}.quick-action{border:1px solid var(--primary-color);color:var(--primary-color);cursor:pointer;transition:var(--transition);background:#fff;border-radius:6px;padding:9px 12px;font-family:Poppins,sans-serif;font-size:12px;font-weight:700}.quick-action:hover{background:var(--primary-color);color:#fff}.module-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:24px;display:grid}.module-card p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.6}@media (width<=1024px){.dashboard-header-section{flex-direction:column;align-items:flex-start;gap:16px}.access-panel,.dashboard-grid{grid-template-columns:1fr}.grid-col-2{grid-column:1}.dashboard-content{padding:24px 16px}}@media (width<=768px){.dashboard-header-section h1{font-size:24px}.period-selector{justify-content:space-between;width:100%}.dashboard-actions{justify-content:stretch;width:100%}.pdf-button{width:100%}.period-btn{flex:1;font-size:12px}.dashboard-content{padding:16px 12px}.role-switcher,.module-grid{grid-template-columns:1fr}.role-card{min-height:auto}}.dashboard-header{background:linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);color:#fff;box-shadow:var(--shadow-lg);padding:20px 24px}.header-container{justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto;display:flex}.header-brand{align-items:center;gap:12px;font-size:20px;font-weight:700;display:flex}.brand-icon{font-size:28px}.header-nav{align-items:center;gap:24px;display:flex}.nav-item{color:#ffffffe6;transition:var(--transition);cursor:pointer;background:0 0;border:none;padding:0;font-family:Poppins,sans-serif;font-size:13px;font-weight:500;text-decoration:none}.nav-item:hover{color:#fff}.user-menu{cursor:pointer;transition:var(--transition);background:#ffffff1a;border-radius:8px;align-items:center;gap:12px;padding:8px 12px;display:flex}.user-menu:hover{background:#fff3}.user-avatar{font-size:20px}.user-name{font-size:13px;font-weight:500}.user-role{color:#fffc;border-left:1px solid #ffffff4d;padding-left:8px;font-size:12px;font-weight:700}.logout-button{color:#fff;cursor:pointer;transition:var(--transition);background:0 0;border:1px solid #ffffff59;border-radius:6px;padding:8px 12px;font-family:Poppins,sans-serif;font-size:13px;font-weight:700}.logout-button:hover{background:#ffffff29}@media (width<=768px){.header-container{flex-direction:column;gap:12px}.header-nav{flex-wrap:wrap;justify-content:space-between;gap:10px;width:100%}.brand-text{display:none}}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:32px;display:grid}.stat-card{box-shadow:var(--shadow-md);transition:var(--transition);border:1px solid var(--border-color);background:#fff;border-radius:12px;align-items:flex-start;gap:16px;padding:20px;display:flex}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.stat-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:60px;height:60px;font-size:32px;display:flex}.stat-content{flex:1}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 4px;font-size:12px;font-weight:600}.stat-value{color:var(--text-primary);margin:0 0 4px;font-size:24px;font-weight:700}.stat-change{margin:0;font-size:13px;font-weight:600}@media (width<=768px){.stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:24px}.stat-card{text-align:center;flex-direction:column;align-items:center;padding:16px}.stat-value{font-size:20px}}.chart-card{box-shadow:var(--shadow-md);border:1px solid var(--border-color);background:#fff;border-radius:12px;padding:24px}.chart-header{margin-bottom:24px}.chart-title{color:var(--text-primary);margin:0 0 4px;font-size:18px;font-weight:700}.chart-subtitle{color:var(--text-secondary);font-size:12px}.chart-container{gap:20px;display:flex}.chart-y-axis{text-align:right;color:var(--text-secondary);flex-direction:column;flex-shrink:0;justify-content:space-between;width:60px;font-size:12px;display:flex}.chart-bars-container{flex-direction:column;flex:1;gap:12px;display:flex}.chart-grid{align-items:flex-end;gap:8px;height:250px;padding:0 8px;display:flex}.chart-bar-wrapper{flex:1;justify-content:center;min-width:0;display:flex}.chart-bar{width:100%;max-width:32px;transition:var(--transition);cursor:pointer;border-radius:6px 6px 0 0;justify-content:center;align-items:flex-start;padding-top:4px;display:flex;position:relative}.chart-bar:hover{opacity:.8;filter:brightness(1.1)}.bar-value{color:#fff;opacity:0;transition:var(--transition);font-size:10px;font-weight:600}.chart-bar:hover .bar-value{opacity:1}.chart-x-axis{color:var(--text-secondary);justify-content:space-between;gap:8px;padding:0 8px;font-size:11px;display:flex}.x-label{text-align:center;flex:1;min-width:0}@media (width<=768px){.chart-card{padding:16px}.chart-container{gap:12px}.chart-y-axis{width:40px;font-size:10px}.chart-grid{gap:4px;height:180px}.chart-bar{max-width:20px}.bar-value{font-size:8px}.x-label{font-size:9px}}.bookings-card{box-shadow:var(--shadow-md);border:1px solid var(--border-color);background:#fff;border-radius:12px;padding:24px}.bookings-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.bookings-title{color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.view-all{color:var(--primary-color);transition:var(--transition);cursor:pointer;background:0 0;border:none;padding:0;font-family:Poppins,sans-serif;font-size:13px;font-weight:600}.view-all:hover{color:var(--primary-dark)}.bookings-table{border-collapse:collapse;width:100%}.booking-state{background:var(--bg-secondary);color:var(--text-secondary);border-radius:8px;padding:14px;font-size:13px;font-weight:700}.booking-state.error{color:var(--danger-color);background:#ef444414}.table-header{background:var(--bg-secondary);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-radius:8px;grid-template-columns:1.5fr 2fr 1.5fr 1.2fr 1fr;gap:16px;margin-bottom:12px;padding:12px 16px;font-size:12px;font-weight:700;display:grid}.table-body{flex-direction:column;gap:8px;display:flex}.table-row{background:var(--bg-secondary);transition:var(--transition);border-radius:8px;grid-template-columns:1.5fr 2fr 1.5fr 1.2fr 1fr;align-items:center;gap:16px;padding:16px;display:grid}.table-row:hover{background:var(--border-color)}.table-col-guest,.table-col-hotel,.table-col-dates,.table-col-status,.table-col-amount{align-items:center;min-width:0;display:flex}.guest-name{color:var(--text-primary);margin:0;font-size:13px;font-weight:600}.hotel-name-table{color:var(--text-secondary);margin:0;font-size:13px}.dates-range{color:var(--text-secondary);margin:0;font-size:12px}.status-badge{text-align:center;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-block}.status-badge.confirmada{color:var(--success-color);background-color:#10b9811a}.status-badge.pendiente{color:var(--accent-color);background-color:#f59e0b1a}.amount{color:var(--primary-color);margin:0;font-size:13px;font-weight:700}@media (width<=1024px){.table-header,.table-row{grid-template-columns:1.2fr 1.5fr 1fr 1fr}.table-col-dates{display:none}}@media (width<=768px){.bookings-card{padding:16px}.table-header{display:none}.table-body{gap:12px}.table-row{grid-template-columns:1fr;gap:8px;padding:12px}.table-col-guest,.table-col-hotel,.table-col-dates,.table-col-status,.table-col-amount{grid-template-columns:100px 1fr;align-items:center;display:grid}.table-col-guest:before,.table-col-hotel:before,.table-col-dates:before,.table-col-status:before,.table-col-amount:before{content:attr(data-label);color:var(--text-secondary);font-size:11px;font-weight:700}.guest-name,.hotel-name-table,.dates-range,.amount{font-size:12px}}.performance-card{box-shadow:var(--shadow-md);border:1px solid var(--border-color);background:#fff;border-radius:12px;padding:24px}.performance-title{color:var(--text-primary);margin:0 0 20px;font-size:18px;font-weight:700}.hotel-list{flex-direction:column;gap:16px;display:flex}.hotel-item{background:var(--bg-secondary);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.hotel-info{justify-content:space-between;align-items:flex-start;display:flex}.hotel-name{color:var(--text-primary);flex:1;margin:0;font-size:13px;font-weight:600}.hotel-stats{color:var(--text-secondary);gap:8px;font-size:11px;display:flex}.stat{white-space:nowrap;background:#fff;border-radius:4px;align-items:center;gap:2px;padding:2px 6px;display:inline-flex}.occupancy-bar{background-color:var(--border-color);border-radius:3px;width:100%;height:6px;overflow:hidden}.occupancy-fill{background:linear-gradient(90deg, var(--primary-color), var(--primary-light));border-radius:3px;height:100%;transition:width .3s}@media (width<=768px){.performance-card{padding:16px}.performance-title{margin-bottom:16px;font-size:16px}.hotel-item{gap:6px;padding:10px}.hotel-name{font-size:12px}.hotel-stats{font-size:10px}.stat{padding:1px 4px}}.admin-rooms{border:1px solid var(--border-color);box-shadow:var(--shadow-md);background:#fff;border-radius:8px;margin-bottom:24px;padding:20px}.admin-rooms-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.admin-rooms-header h2{margin:0;font-size:22px}.admin-rooms-header p:last-child{color:var(--text-secondary);margin:6px 0 0;font-size:13px}.admin-rooms-header button,.room-form button,.image-upload,.room-actions button{border:1px solid var(--primary-color);background:var(--primary-color);color:#fff;cursor:pointer;border-radius:6px;padding:10px 12px;font-family:Poppins,sans-serif;font-size:13px;font-weight:800}.room-form button.secondary-action{color:var(--text-secondary);border-color:var(--border-color);background:#fff}.room-form{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.room-form label{color:var(--text-primary);flex-direction:column;gap:7px;font-size:12px;font-weight:800;display:flex}.room-form input,.room-form select,.room-form textarea{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);font:inherit;border-radius:6px;padding:10px;font-size:13px}.room-form textarea{resize:vertical;min-height:92px}.room-form-wide{grid-column:span 2}.admin-room-message,.rooms-state{background:var(--bg-secondary);color:var(--text-secondary);border-radius:6px;margin:14px 0 0;padding:12px;font-size:13px;font-weight:700}.rooms-state.error{color:var(--danger-color);background:#ef444414}.rooms-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:18px;display:grid}.room-item{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:8px;flex-direction:column;gap:14px;padding:16px;display:flex}.room-item h3{margin:10px 0 6px;font-size:18px}.room-item p{color:var(--text-secondary);margin:4px 0;font-size:13px}.room-images{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.room-images img{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--border-color);background:#fff;border-radius:6px;width:100%}.image-upload{text-align:center;justify-content:center;display:inline-flex}.image-upload input{display:none}.room-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.room-actions button{color:var(--primary-color);background:#fff}.room-actions button.danger{border-color:var(--danger-color);color:var(--danger-color)}@media (width<=720px){.admin-rooms-header{flex-direction:column}.room-form-wide{grid-column:span 1}}.login-page{background:linear-gradient(135deg, #6366f11f, #f59e0b1a), var(--bg-secondary);place-items:center;min-height:100vh;padding:32px 20px;display:grid}.login-shell{grid-template-columns:1fr 420px;align-items:stretch;gap:28px;width:min(1040px,100%);display:grid}.login-copy,.login-card{border:1px solid var(--border-color);box-shadow:var(--shadow-lg);background:#fff;border-radius:8px}.login-copy{flex-direction:column;justify-content:center;padding:36px;display:flex}.login-back{border:1px solid var(--border-color);width:fit-content;color:var(--text-secondary);cursor:pointer;font:inherit;background:#fff;border-radius:6px;margin-bottom:36px;padding:8px 12px;font-size:13px;font-weight:700}.login-eyebrow{color:var(--primary-color);letter-spacing:.5px;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:800}.login-copy h1{color:var(--text-primary);margin:0;font-size:34px;line-height:1.15}.login-copy p:last-child{max-width:560px;color:var(--text-secondary);margin:16px 0 0;font-size:15px}.login-card{flex-direction:column;gap:18px;padding:28px;display:flex}.login-card h2{margin:0 0 4px;font-size:22px}.login-card p{color:var(--text-secondary);margin:0;font-size:13px}.login-tabs{background:var(--bg-secondary);border-radius:8px;grid-template-columns:1fr 1fr;gap:6px;padding:4px;display:grid}.login-tabs button{color:var(--text-secondary);cursor:pointer;font:inherit;background:0 0;border:none;border-radius:6px;padding:9px 10px;font-size:13px;font-weight:800}.login-tabs button.active{color:var(--primary-color);box-shadow:var(--shadow-sm);background:#fff}.field-group{color:var(--text-primary);flex-direction:column;gap:8px;font-size:13px;font-weight:700;display:flex}.field-group input{border:1px solid var(--border-color);background:var(--bg-secondary);width:100%;color:var(--text-primary);font:inherit;transition:var(--transition);border-radius:6px;outline:none;padding:11px 12px;font-size:14px}.field-group input:focus{border-color:var(--primary-color);background:#fff;box-shadow:0 0 0 3px #6366f129}.login-error{background:#ef44441a;border-radius:6px;padding:10px 12px;font-weight:700;color:var(--danger-color)!important}.login-submit{background:linear-gradient(135deg, var(--primary-color), var(--primary-light));color:#fff;cursor:pointer;font:inherit;border:none;border-radius:6px;padding:12px 16px;font-size:14px;font-weight:800}.login-submit:disabled{cursor:wait;opacity:.72}@media (width<=840px){.login-shell{grid-template-columns:1fr}.login-copy{padding:28px}.login-copy h1{font-size:28px}}.profile-page{background:var(--bg-secondary);min-height:100vh;padding:32px 20px}.profile-shell{border:1px solid var(--border-color);width:min(980px,100%);box-shadow:var(--shadow-lg);background:#fff;border-radius:8px;margin:0 auto;padding:28px}.profile-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:24px;display:flex}.profile-eyebrow{color:var(--primary-color);letter-spacing:.5px;text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:800}.profile-header h1{margin:0;font-size:30px}.profile-header p{color:var(--text-secondary);margin:8px 0 0}.profile-actions{gap:8px;display:flex}.profile-actions button{border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;font:inherit;background:#fff;border-radius:6px;padding:8px 12px;font-size:13px;font-weight:700}.profile-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;display:grid}.profile-grid article,.profile-state,.profile-note{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:8px;padding:16px}.profile-grid span{color:var(--text-secondary);text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:800;display:block}.profile-grid strong{color:var(--text-primary);font-size:16px}.profile-state{color:var(--text-secondary);margin-bottom:16px;font-weight:700}.profile-state.error{color:var(--danger-color);background:#ef444414}.profile-note{color:var(--text-secondary);margin:18px 0 0;font-weight:700}.profile-note.success{color:var(--success-color);background:#10b98114}@media (width<=720px){.profile-header{flex-direction:column}}
