body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}h1,h2,h3,h4,h5,h6{font-weight:600;margin:0}button,input,select,textarea{font-family:inherit}.landing-page{align-items:stretch;padding:0}.landing-page,.landing-shell{background:#fff;display:flex;flex-direction:column;margin:0;min-height:100vh;width:100%}.landing-shell{border-radius:0;box-shadow:none;max-width:none;overflow:hidden}.landing-header{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#4338caeb;display:flex;flex-wrap:wrap;gap:12px 16px;justify-content:flex-start;padding:14px clamp(16px,4vw,48px)}.landing-header__brand{align-items:center;color:#fff;display:flex;font-size:1rem;font-weight:600;gap:10px;letter-spacing:.01em}.landing-icon{flex-shrink:0;height:22px;width:22px}.landing-hero{align-items:center;background:linear-gradient(125deg,#1e3a8a,#4c1d95 45%,#7c3aed);display:flex;flex:1 1;flex-direction:column;justify-content:center;min-height:0;overflow:hidden;padding:56px clamp(16px,4vw,48px) 100px;position:relative;text-align:center}.landing-hero:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");content:"";inset:0;mix-blend-mode:overlay;opacity:.07;pointer-events:none;position:absolute}.landing-hero__waves{background:radial-gradient(ellipse 120% 100% at 50% 100%,#c4b5fd73 0,#0000 55%),radial-gradient(ellipse 80% 80% at 20% 100%,#a78bfa59 0,#0000 50%),radial-gradient(ellipse 90% 90% at 80% 100%,#8b5cf64d 0,#0000 50%);bottom:0;height:72px;left:0;opacity:.95;pointer-events:none;position:absolute;right:0}.landing-hero__waves:after{background:linear-gradient(180deg,#0000,#ffffff1f 35%,#fff);border-radius:50% 50% 0 0/100% 100% 0 0;bottom:-2px;content:"";height:56px;left:-10%;position:absolute;right:-10%}.landing-hero__inner{margin:0 auto;max-width:640px;position:relative;width:100%;z-index:1}.landing-hero__title{color:#fff;font-size:clamp(1.85rem,4.2vw,2.4rem);font-weight:700;letter-spacing:-.02em;line-height:1.2;margin:0 0 16px}.landing-hero__subtitle{color:#ffffffeb;font-size:1.05rem;font-weight:400;line-height:1.55;margin:0 0 32px;text-align:center}.landing-hero__subtitle-line2{display:block;margin-top:.4em}.landing-hero__form{align-items:center;display:flex;flex-direction:column;gap:12px}.landing-cta{align-items:center;background:linear-gradient(135deg,#14b8a6,#0d9488 40%,#059669);border:2px solid #ffffffeb;border-radius:14px;box-shadow:0 4px 14px #14b8a673,0 2px 4px #00000014,inset 0 1px 0 #ffffff26;color:#fff;cursor:pointer;display:inline-flex;font-size:1.05rem;font-weight:600;gap:10px;justify-content:center;padding:14px 36px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.landing-cta:hover:not(:disabled){border-color:#fff;box-shadow:0 8px 24px #14b8a680,0 4px 8px #0000001a,inset 0 1px 0 #fff3;transform:translateY(-2px)}.landing-cta:disabled{cursor:not-allowed;opacity:.75;transform:none}.landing-icon--cta{height:24px;width:24px}.landing-hero__footnote{color:#ffffffbf;font-size:.75rem;font-weight:400;margin:16px 0 0}.landing-error{background:#fee2e2f2;border:1px solid #f8717166;border-radius:10px;color:#991b1b;font-size:.875rem;max-width:420px;padding:12px 16px;width:100%}.landing-features{margin:0;padding:0 0 32px}.landing-features,.landing-features__bar{background:#fff;box-sizing:border-box;width:100%}.landing-features__bar{align-items:stretch;border-top:1px solid #e2e8f0;display:grid;grid-template-columns:repeat(3,1fr)}.landing-feature-item{align-items:flex-start;border-right:1px solid #e8ecf1;display:flex;flex-direction:row;gap:16px;padding:28px clamp(20px,4vw,48px);text-align:left}.landing-feature-item:last-child{border-right:none}.landing-feature-item__icon{align-items:center;background:linear-gradient(145deg,#e0e7ff,#dbeafe);border-radius:50%;box-shadow:inset 0 1px 0 #fffc;display:flex;flex-shrink:0;height:56px;justify-content:center;width:56px}.landing-feature-item__glyph{display:block;height:28px;width:28px}.landing-feature-item__body{flex:1 1;min-width:0}.landing-feature-item__title{color:#1e293b;font-size:1.05rem;font-weight:700;letter-spacing:-.01em;line-height:1.3;margin:0 0 6px}.landing-feature-item__text{color:#64748b;font-size:.875rem;line-height:1.5;margin:0}.landing-loading{align-items:center;background:linear-gradient(125deg,#1e3a8a,#5b21b6);box-sizing:border-box;color:#fff;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:100vh;padding:48px;width:100%}.landing-loading-spinner{animation:landing-spin .8s linear infinite;border:3px solid #ffffff40;border-radius:50%;border-top-color:#fff;height:40px;width:40px}@keyframes landing-spin{to{transform:rotate(1turn)}}.landing-loading p{font-size:1rem;font-weight:500;margin:0;opacity:.9}@media (max-width:900px){.landing-features__bar{grid-template-columns:1fr}.landing-feature-item{border-bottom:1px solid #e8ecf1;border-right:none;padding:22px 20px}.landing-feature-item:last-child{border-bottom:none}}@media (max-width:600px){.landing-header{padding:12px 16px}.landing-hero{padding:40px 20px 88px}.landing-cta{max-width:320px;width:100%}}.reservation-modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.reservation-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-height:90vh;max-width:600px;overflow-y:auto;position:relative;width:90%}.modal-content{padding:0}.modal-header{align-items:center;background-color:#f8f9fa;border-bottom:1px solid #e0e0e0;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;padding:20px}.modal-header h2{color:#333;font-size:1.5rem;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:background-color .2s ease;width:30px}.close-button:hover{background-color:#e9ecef;color:#333}.reservation-form{padding:20px}.error-message{background-color:#f8d7da;padding:12px}.error-message,.form-group{margin-bottom:20px}.form-row{display:flex;gap:20px}.form-row .form-group{flex:1 1}.form-group label{color:#555;display:block;font-weight:600;margin-bottom:5px}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:10px;transition:border-color .2s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.guests-section{border-top:1px solid #e0e0e0;margin-top:30px;padding-top:20px}.guests-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.guests-header h3{color:#333;font-size:1.2rem;margin:0}.add-guest-btn{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .2s ease}.add-guest-btn:hover{background-color:#218838}.guest-row{align-items:center;display:flex;gap:10px;margin-bottom:10px}.guest-row input{border:1px solid #ddd;border-radius:4px;flex:1 1;font-size:14px;padding:8px}.remove-guest-btn{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:8px 12px;transition:background-color .2s ease;white-space:nowrap}.remove-guest-btn:hover{background-color:#c82333}.modal-actions{border-top:1px solid #e0e0e0;display:flex;gap:10px;justify-content:flex-end;margin-top:30px;padding-top:20px}.modal-actions button{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.cancel-btn{background-color:#6c757d;color:#fff}.cancel-btn:hover{background-color:#5a6268}.save-btn{background-color:#007bff;color:#fff}.save-btn:hover:not(:disabled){background-color:#0056b3}.save-btn:disabled{background-color:#6c757d;cursor:not-allowed}.delete-btn{background-color:#dc3545;color:#fff;margin-right:auto}.delete-btn:hover:not(:disabled){background-color:#c82333}.delete-btn:disabled{background-color:#6c757d;cursor:not-allowed}@media (max-width:768px){.reservation-modal{margin:10px;width:95%}.form-row{gap:0}.form-row,.guest-row{flex-direction:column}.guest-row{gap:10px}.guest-row input{width:100%}.modal-actions{flex-direction:column}.modal-actions button{width:100%}}.room-calendar-container{background-color:#f5f5f5;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh;opacity:1;transition:opacity .3s ease}.calendar-header{align-items:center;background-color:#2c3e50;box-shadow:0 2px 4px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:15px 20px}.hotel-info h1{font-size:24px;font-weight:700;margin:0}.user-context-info{margin-top:5px;opacity:.8}.user-context-info small{color:#ecf0f1;font-size:12px}.legend{align-items:center;display:flex;gap:20px;margin:10px 0}.user-dropdown-content{min-width:120px}.hotel-selection,.hotel-selector{align-items:center;display:flex}.hotel-selector{gap:10px}.hotel-selector label{font-weight:500}.hotel-selector select{background-color:#fff;border:1px solid #ddd;border-radius:4px;color:#333;font-size:14px;padding:8px 12px}.date-navigation{align-items:center;display:flex;gap:15px}.date-navigation button{background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:8px 12px}.date-navigation button:hover{background-color:#2980b9}.date-picker{background-color:#fff;border:1px solid #ddd;border-radius:4px;color:#333;cursor:pointer;font-size:14px;margin:0 10px;padding:8px 12px}.date-picker:focus,.date-picker:hover{border-color:#3498db}.date-picker:focus{box-shadow:0 0 0 2px #3498db33;outline:none}.date-navigation span{font-size:16px;font-weight:500;min-width:300px;text-align:center}.room-calendar-grid{background-color:#fff;border:1px solid #fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;margin:20px;overflow:hidden}.room-list{background-color:#34495e;border-right:2px solid #2c3e50;color:#fff;width:250px}.room-header{align-items:center;background-color:#2c3e50;border-bottom:2px solid #2c3e50;box-sizing:border-box;color:#fff;display:flex;font-size:14px;font-weight:700;height:50px;justify-content:center;min-width:80px;padding:8px;text-align:center}.room-header .date-navigation{align-items:center;display:flex;gap:8px}.room-header .date-navigation button{background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:700;padding:6px 10px;transition:background-color .3s ease}.room-header .date-navigation button:hover{background-color:#2980b9}.room-header .date-picker{background-color:#fff;border:1px solid #bdc3c7;border-radius:4px;color:#333;cursor:pointer;font-size:12px;min-width:120px;padding:6px 8px}.room-header .date-picker:hover{border-color:#3498db}.room-header .date-picker:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33;outline:none}.hotel-dropdown{appearance:none;background:linear-gradient(135deg,#3498db,#2980b9);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;border:none;border-radius:8px;box-shadow:0 4px 8px #0003;box-sizing:border-box;color:#fff;cursor:pointer;font-size:16px;font-weight:600;min-width:200px;padding:8px 40px 8px 16px;text-align:center;transition:all .3s ease}.hotel-dropdown:hover{box-shadow:0 6px 12px #0000004d;transform:translateY(-2px)}.hotel-dropdown:focus,.hotel-dropdown:hover{background:linear-gradient(135deg,#2980b9,#1f4e79)}.hotel-dropdown:focus{box-shadow:0 0 0 3px #3498db4d;outline:none}.hotel-dropdown option{background-color:#2c3e50;color:#fff;font-weight:500;padding:10px}.hotel-header-cell{background-color:#ecf0f1;border-right:1px solid #bdc3c7;color:#2c3e50;font-weight:700;height:50px;justify-content:center;min-width:80px;padding:12px 8px;text-align:center}.hotel-header-cell,.room-item{align-items:center;box-sizing:border-box;display:flex;font-size:14px}.room-item{border-bottom:1px solid #2c3e50;min-height:50px;padding:12px 15px;position:relative}.room-item.selected{background-color:#3498db}.room-item:last-child{border-bottom:none}.calendar-grid{flex:1 1;min-width:0;overflow-x:auto}.calendar-no-rooms{background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#64748b;font-size:14px;padding:20px 16px;text-align:center}.date-header{background-color:#ecf0f1;border-bottom:2px solid #bdc3c7;display:flex;position:sticky;top:0}.date-cell{align-items:center;border-right:1px solid #bdc3c7;box-sizing:border-box;display:flex;flex:1 1;font-size:14px;height:50px;justify-content:center;min-width:80px;padding:12px 8px;text-align:center}.date-cell,.date-cell:first-child{background-color:#ecf0f1;color:#2c3e50;font-weight:700}.date-cell.selected{background-color:#3498db;box-shadow:0 2px 4px #3498db4d;color:#fff;font-weight:700}.date-cell.hovered{background-color:#e8f4fd;box-shadow:0 4px 0 #3498db,0 2px 4px #3498db4d;color:#2980b9;font-weight:700;transition:all .2s ease}.room-row{align-items:stretch;border-bottom:1px solid #fff;display:flex;min-height:50px}.room-row:last-child{border-bottom:none}.room-cell{align-items:center;border:1px solid #fff;box-sizing:border-box;cursor:pointer;display:flex;flex:1 1;justify-content:center;margin:0;min-height:40px;min-width:80px;padding:0;position:relative;transition:all .2s ease}.room-cell:hover{box-shadow:0 2px 8px #00000026;transform:scale(1.02);z-index:10}.room-cell:has(.cell-half):hover{background-color:initial!important;box-shadow:none;transform:none;z-index:auto}.room-cell:has(.cell-half){background-color:initial!important;border:1px solid #fff!important}.room-cell.check-in-day:has(.cell-half){background:#0000!important;border:1px solid #fff!important}.room-cell.check-out-day:has(.cell-half){background:#0000!important;border:1px solid #fff!important}.room-cell.check-in-day.check-out-day:has(.cell-half){background:#0000!important;border:1px solid #fff!important}.cell-half{flex:1 1;height:100%;position:relative;transition:all .2s ease}.cell-half:hover{box-shadow:0 2px 8px #00000026;transform:scale(1.02);z-index:10}.left-half{border-radius:0 20px 20px 0;border-right:1px solid #fff}.right-half{border-left:1px solid #fff;border-radius:20px 0 0 20px}.left-half.booked{background-color:#ff6b6b;border-radius:0 20px 20px 0;color:#fff}.right-half.booked{background-color:#eb5b67;border-radius:20px 0 0 20px;color:#fff}.cell-half.right-half.available,.room-cell .cell-half.right-half.available{background-color:#9bd6a9!important;color:#155724!important}.room-cell.available{background-color:#9bd6a9;border-color:#fff;color:#155724}.room-cell.available:hover{background-color:#c3e6cb!important}.room-cell.available:has(.cell-half):hover{background-color:initial!important}.room-cell.booked{background-color:#eb5b67;border-color:#fff;color:#721c24;position:relative}.room-cell.booked:hover{background-color:#f5c6cb!important}.room-cell.booked:has(.cell-half):hover{background-color:initial!important}.room-cell.check-in-day{background:linear-gradient(90deg,#d4edda 50%,#eb5b67 0);border-color:#c3e6cb;position:relative}.room-cell.check-in-day:hover{background:linear-gradient(90deg,#c3e6cb 50%,#f5c6cb 0)!important}.room-cell.check-in-day:has(.cell-half):hover{background:#0000!important}.room-cell.check-out-day{background:linear-gradient(90deg,#eb5b67 50%,#d4edda 0);border-color:#fff;position:relative}.room-cell.check-out-day:hover{background:linear-gradient(90deg,#eb5b67 50%,#c3e6cb 0)!important}.room-cell.check-out-day:has(.cell-half):hover{background:#0000!important}.room-cell.check-in-day.check-out-day{background:#eb5b67;border-color:#f5c6cb;position:relative}.room-cell.check-in-day.check-out-day:hover{background:#f5c6cb!important}.room-cell.check-in-day.check-out-day:has(.cell-half):hover{background:#0000!important}.cell-half{align-items:center;bottom:0;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;margin:0;padding:0;position:absolute;top:0;transition:background-color .2s ease;width:50%}.cell-half.left-half{background:#eb5b67;border-right:1px solid #fff;left:0}.cell-half.left-half.available{background:#9bd6a9;border-right:1px solid #fff}.cell-half.right-half{right:0}.cell-half.right-half,.cell-half.right-half.available{background:#9bd6a9!important;border-left:1px solid #fff}.cell-half.right-half.booked{background-color:#eb5b67!important;border-left:1px solid #fff;color:#fff!important}.cell-half:hover{background-color:#3498db4d!important}.cell-half.left-half:hover,.cell-half:hover{box-shadow:0 2px 8px #0003!important;transform:scale(1.02)!important;z-index:20!important}.cell-half.left-half:hover{background-color:#f5c6cb!important}.cell-half.left-half.available:hover{background-color:#c3e6cb!important}.cell-half.left-half.available:hover,.cell-half.right-half:hover{box-shadow:0 2px 8px #0003!important;transform:scale(1.02)!important;z-index:20!important}.cell-half.right-half:hover{background-color:#f5c6cb!important}.cell-half.right-half.available:hover{background-color:#c3e6cb!important;box-shadow:0 2px 8px #0003!important;transform:scale(1.02)!important;z-index:20!important}.room-cell.maintenance{background-color:#fff3cd;border-color:#ffeaa7;color:#856404}.reservation-bar{align-items:center;background-color:inherit;border-radius:4px;bottom:0;display:flex;justify-content:center;left:0;margin:2px;position:absolute;right:0;top:0}.reservation-start{left:2px}.reservation-end,.reservation-start{color:inherit;font-size:12px;position:absolute;top:50%;transform:translateY(-50%)}.reservation-end{right:2px}.check-in-arrow{right:2px}.check-in-arrow,.check-out-arrow{color:#721c24;font-size:14px;font-weight:700;position:absolute;top:50%;transform:translateY(-50%);z-index:2}.check-out-arrow{left:2px}.reservation-info{color:#721c24;font-size:11px;font-weight:500;left:50%;max-width:100%;overflow:hidden;padding:0 4px;position:absolute;text-align:center;text-overflow:ellipsis;top:50%;transform:translate(-50%,-50%);white-space:nowrap;z-index:1}.transition-info{background:#fffc;border:1px solid #721c24;border-radius:3px;color:#721c24;font-size:10px;font-weight:600;padding:2px 4px}.room-cell.booked[data-status=Confirmed]{background-color:#28a745}.room-cell.booked[data-status=Pending]{background-color:#ffc107;color:#333}.room-cell.booked[data-status=Cancelled]{background-color:#dc3545}.room-cell.booked[data-status=Draft]{background-color:#6c757d}.loading{color:#666;font-size:18px;padding:40px;text-align:center}@media (max-width:768px){.room-calendar-grid{margin:10px}.room-list{width:200px}.date-cell,.room-cell{min-width:60px}.room-item{font-size:12px;padding:8px 10px}}.calendar-grid::-webkit-scrollbar{height:8px}.calendar-grid::-webkit-scrollbar-track{background:#f1f1f1}.calendar-grid::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.calendar-grid::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.loading-container{border-radius:8px;box-shadow:0 2px 4px #0000001a;height:200px;margin:20px;opacity:.8;transition:opacity .3s ease}.loading-spinner{color:#666;font-size:16px;font-weight:700}.checkin-report{padding:0}@media print{.report-controls{display:none!important}.checkin-report{padding:0!important}.report-table-container{max-height:none!important;overflow:visible!important}.report-table{border-collapse:collapse!important;font-size:12px!important}.report-table td,.report-table th{background:#fff!important;border:1px solid #000!important;color:#000!important;padding:8px!important}.report-table th{background:#f0f0f0!important;font-weight:700!important}.status-badge{color:#000!important;padding:2px 4px!important}.report-summary,.status-badge{background:#fff!important;border:1px solid #000!important}.report-summary{margin-top:20px!important}.no-data{background:#fff!important;color:#000!important}}.checkout-report{padding:0}.report-actions button:nth-child(2){background:#17a2b8;color:#fff}.report-actions button:nth-child(2):hover:not(:disabled){background:#138496}.report-actions button:last-child{background:#17a2b8;color:#fff}.report-actions button:last-child:hover:not(:disabled){background:#138496}@media print{.report-controls{display:none!important}.checkout-report{padding:0!important}.report-table-container{max-height:none!important;overflow:visible!important}.report-table{border-collapse:collapse!important;font-size:12px!important}.report-table td,.report-table th{background:#fff!important;border:1px solid #000!important;color:#000!important;padding:8px!important}.report-table th{background:#f0f0f0!important;font-weight:700!important}.status-badge{color:#000!important;padding:2px 4px!important}.report-summary,.status-badge{background:#fff!important;border:1px solid #000!important}.report-summary{margin-top:20px!important}.no-data{background:#fff!important;color:#000!important}}.deleted-reservations-report{padding:0}.report-controls{background:#f8f9fa;border-bottom:1px solid #e9ecef;gap:15px;justify-content:space-between;padding:20px}.filters,.report-controls{align-items:center;display:flex;flex-wrap:wrap}.filters{gap:20px}.filter-group{display:flex;flex-direction:column;gap:5px}.date-range{align-items:center;display:flex;gap:20px}.date-range label,.filter-group label{color:#333;display:flex;flex-direction:column;font-weight:500;gap:5px}.date-range input,.filter-group select{border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:150px;padding:8px 12px}.date-range input:focus,.filter-group select:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.filter-group select{background:#fff;cursor:pointer}.filter-group select:disabled{background:#f8f9fa;color:#6c757d;cursor:not-allowed}.report-actions{display:flex;gap:10px}.report-actions button{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.report-actions button:first-child{background:#28a745;color:#fff}.report-actions button:first-child:hover:not(:disabled){background:#218838}.report-actions button:disabled{background:#6c757d;cursor:not-allowed}.error-message{background:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;margin:0 20px 20px;padding:12px 20px}.report-table-container{max-height:600px;overflow-x:auto;overflow-y:auto}.report-table{border-collapse:collapse;font-size:14px;width:100%}.report-table th{background:#f8f9fa;border-bottom:2px solid #e9ecef;color:#333;font-weight:600;padding:15px 12px;position:sticky;text-align:left;top:0;z-index:10}.report-table td{border-bottom:1px solid #e9ecef;padding:12px;vertical-align:top}.report-table tbody tr:hover{background:#f8f9fa}.no-data{color:#666;font-style:italic;padding:40px!important;text-align:center}.status-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:500;padding:4px 8px;text-transform:uppercase}.status-confirmed{background:#d4edda;color:#155724}.status-pending{background:#fff3cd;color:#856404}.status-cancelled{background:#f8d7da;color:#721c24}.status-draft{background:#e2e3e5;color:#383d41}.report-summary{background:#f8f9fa;border-top:1px solid #e9ecef;color:#333;font-weight:500;padding:20px}@media (max-width:768px){.report-controls{align-items:stretch;flex-direction:column}.filters{flex-direction:column;gap:15px;justify-content:center}.filter-group{align-items:center}.date-range,.report-actions{justify-content:center}.report-table-container{font-size:12px}.report-table td,.report-table th{padding:8px 6px}}@media print{.report-controls{display:none!important}.deleted-reservations-report{padding:0!important}.report-table-container{max-height:none!important;overflow:visible!important}.report-table{border-collapse:collapse!important;font-size:12px!important}.report-table td,.report-table th{background:#fff!important;border:1px solid #000!important;color:#000!important;padding:8px!important}.report-table th{background:#f0f0f0!important;font-weight:700!important}.status-badge{color:#000!important;padding:2px 4px!important}.report-summary,.status-badge{background:#fff!important;border:1px solid #000!important}.report-summary{margin-top:20px!important}.no-data{background:#fff!important;color:#000!important}}.reports-container{margin:0 auto;max-width:1200px;padding:20px}.reports-header{border-bottom:2px solid #e9ecef;margin-bottom:30px;padding-bottom:20px}.reports-header h2{color:#333;font-size:28px;font-weight:600;margin:0 0 20px}.report-tabs{display:flex;gap:10px}.report-tab{background:#fff;border:2px solid #e9ecef;border-radius:8px;color:#666;cursor:pointer;font-size:16px;font-weight:500;padding:12px 24px;transition:all .3s ease}.report-tab:hover{background:#f8f9fa;border-color:#007bff;color:#007bff}.report-tab.active{background:#007bff;border-color:#007bff;color:#fff}.report-content{box-shadow:0 2px 10px #0000001a;overflow:hidden}.property-modal,.report-content{background:#fff;border-radius:8px}.property-modal{box-shadow:0 4px 20px #00000026;max-height:90vh;max-width:900px;overflow-y:auto;position:relative;width:95%}.property-rooms-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px;margin-top:20px}.property-rooms-header h3{margin:0}.property-rooms-list{display:flex;flex-direction:column;gap:10px}.property-room-row{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:120px 180px 100px 90px}.property-room-row input[type=text]{border:1px solid #ddd;border-radius:4px;padding:8px;width:100%}.property-room-active{align-items:center;color:#333;display:flex;font-size:13px;gap:6px}@media (max-width:900px){.property-room-row{grid-template-columns:1fr}}.room-form-modal{background:#fff;border-radius:8px;margin:auto;max-width:420px;outline:none;position:relative;width:92%}.room-form-modal__content{padding:0}.room-form-modal__header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:16px 18px}.room-form-modal__header h2{color:#1e293b;font-size:1.15rem;margin:0}.room-form-modal__close{background:none;border:none;color:#64748b;cursor:pointer;font-size:1.5rem;line-height:1}.room-form-modal__form{display:flex;flex-direction:column;gap:14px;padding:18px}.room-form-modal__error{background:#fef2f2;border-radius:6px;color:#991b1b;font-size:.9rem;padding:10px 12px}.room-form-modal__field{color:#334155;display:flex;flex-direction:column;font-size:.9rem;font-weight:600;gap:6px}.room-form-modal__field input{border:1px solid #cbd5e1;border-radius:6px;font-size:1rem;padding:8px 10px}.room-form-modal__check{align-items:center;color:#334155;display:flex;font-size:.95rem;gap:8px}.room-form-modal__actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}.room-form-modal__btn{border:none;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600;padding:9px 18px}.room-form-modal__btn--ghost{background:#f1f5f9;color:#334155}.room-form-modal__btn--primary{background:#2563eb;color:#fff}.room-form-modal__btn--primary:disabled{cursor:not-allowed;opacity:.6}.confirm-dialog-overlay{align-items:center;background:#0f172a73;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:2000}.confirm-dialog{background:#fff;border-radius:8px;box-shadow:0 20px 40px #0000002e;max-width:420px;outline:none;position:relative;width:100%}.confirm-dialog__body{padding:22px 24px 20px}.confirm-dialog__title{color:#1e293b;font-size:1.15rem;margin:0 0 12px}.confirm-dialog__message{color:#475569;font-size:.95rem;line-height:1.5;margin:0 0 22px}.confirm-dialog__actions{display:flex;gap:10px;justify-content:flex-end}.confirm-dialog__btn{border:none;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600;padding:9px 18px}.confirm-dialog__btn:disabled{cursor:not-allowed;opacity:.65}.confirm-dialog__btn--secondary{background:#f1f5f9;color:#334155}.confirm-dialog__btn--secondary:hover:not(:disabled){background:#e2e8f0}.confirm-dialog__btn--primary{background:#2563eb;color:#fff}.confirm-dialog__btn--primary:hover:not(:disabled){background:#1d4ed8}.confirm-dialog__btn--danger{background:#dc2626;color:#fff}.confirm-dialog__btn--danger:hover:not(:disabled){background:#b91c1c}.property-admin{margin:0 auto;max-width:960px;padding:24px 20px 48px}.property-admin__toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:8px}.property-admin__title{color:#1e293b;font-size:1.5rem;margin:0}.property-admin__intro{color:#64748b;font-size:.95rem;line-height:1.5;margin:0 0 24px}.property-admin__empty{background:#fff;border:1px dashed #cbd5e1;border-radius:8px;color:#64748b;padding:28px;text-align:center}.property-admin__list{display:flex;flex-direction:column;gap:12px}.property-admin__card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 1px 3px #0000000f;overflow:hidden}.property-admin__card-row{align-items:flex-start;display:flex;gap:10px;padding:14px 16px}.property-admin__expand{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#475569;cursor:pointer;flex-shrink:0;font-size:.85rem;height:32px;width:32px}.property-admin__expand:hover{background:#f1f5f9}.property-admin__card-main{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0}.property-admin__hotel-name{color:#0f172a;font-size:1.05rem;font-weight:600}.property-admin__hotel-meta{color:#94a3b8;font-size:.8rem;word-break:break-all}.property-admin__card-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.property-admin__btn{border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:600;padding:8px 14px}.property-admin__btn--primary{background:#2563eb;color:#fff}.property-admin__btn--primary:hover{background:#1d4ed8}.property-admin__btn--ghost{background:#f1f5f9;color:#334155}.property-admin__btn--ghost:hover{background:#e2e8f0}.property-admin__btn--danger{background:#fef2f2;color:#b91c1c}.property-admin__btn--danger:hover{background:#fee2e2}.property-admin__btn--small{background:#ecfdf5;color:#047857;font-size:.85rem;padding:6px 12px}.property-admin__btn--small:hover{background:#d1fae5}.property-admin__rooms{background:#fafafa;border-top:1px solid #e2e8f0;padding:0 16px 16px 56px}.property-admin__rooms-head{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:12px 0 4px}.property-admin__rooms-head h3{color:#334155;font-size:1rem;margin:0}.property-admin__rooms-loading{color:#64748b;font-size:.9rem;padding:12px 0}.property-admin__table{border-collapse:collapse;font-size:.9rem;width:100%}.property-admin__table td,.property-admin__table th{border-bottom:1px solid #e2e8f0;padding:10px 8px;text-align:left}.property-admin__table th{color:#64748b;font-weight:600}.property-admin__table-empty{color:#94a3b8;font-style:italic}.property-admin__table-actions{text-align:right;white-space:nowrap}.property-admin__link-btn{background:none;border:none;color:#2563eb;cursor:pointer;font-size:.9rem;font-weight:600;padding:4px 8px}.property-admin__link-btn:hover{text-decoration:underline}.property-admin__link-btn--danger{color:#dc2626}@media (max-width:720px){.property-admin__card-row{flex-wrap:wrap}.property-admin__card-actions{justify-content:flex-start;width:100%}.property-admin__rooms{padding-left:16px}}.authenticated-app{display:flex;flex-direction:column;min-height:100vh}.loading-container{align-items:center;background-color:#f5f5f5;display:flex;justify-content:center;min-height:100vh}.loading-spinner{color:#3498db;font-size:18px;font-weight:600}.app-header{background:linear-gradient(135deg,#2c3e50,#34495e);box-shadow:0 2px 10px #0000001a;color:#fff;padding:0;z-index:1000}.header-content{justify-content:space-between;margin:0 auto;padding:15px 20px}.header-content,.header-left{align-items:center;display:flex}.header-left{gap:20px}.header-hotel-selector{align-items:center;display:flex}.header-hotel-dropdown{appearance:none;background:#007bff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;min-width:180px;padding:8px 40px 8px 16px;transition:all .3s ease}.header-hotel-dropdown:hover{background:#0056b3;box-shadow:0 4px 12px #007bff4d;transform:translateY(-1px)}.header-hotel-dropdown:focus{box-shadow:0 0 0 3px #007bff4d;outline:none}.header-add-property-btn{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:15px;font-weight:500;padding:8px 16px}.header-add-property-btn:hover{background:#0056b3}.app-main-loading{align-items:center;color:#3498db;display:flex;font-weight:600;justify-content:center;min-height:40vh}.app-empty-state{background:#fff;border-radius:8px;box-shadow:0 2px 12px #00000014;margin:48px auto;max-width:520px;padding:32px;text-align:center}.app-empty-state__title{color:#2c3e50;font-size:1.35rem;margin:0 0 12px}.app-empty-state__text{color:#64748b;font-size:.95rem;line-height:1.5;margin:0 0 20px}.app-empty-state__cta{background:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:10px 22px}.app-empty-state__cta:hover{background:#0056b3}.app-error-state{background:#fff8f8;border:1px solid #fecaca;border-radius:8px;box-shadow:0 2px 12px #b91c1c14;margin:48px auto;max-width:560px;padding:28px 32px;text-align:left}.app-error-state__title{color:#991b1b;font-size:1.25rem;margin:0 0 12px}.app-error-state__text{color:#44403c;font-size:.95rem;line-height:1.55;margin:0 0 20px}.app-error-state__actions{display:flex;flex-wrap:wrap;gap:12px}.app-error-state__retry{background:#b91c1c;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:10px 20px}.app-error-state__retry:hover{background:#991b1b}.header-hotel-dropdown option{background-color:#2c3e50;color:#fff;font-weight:500;padding:10px}.header-content h1{color:#fff;font-size:24px;font-weight:700;margin:0}.user-info{align-items:center;display:flex;gap:15px}.welcome-text{color:#ecf0f1;font-size:14px;font-weight:500}.logout-button{background:linear-gradient(135deg,#e74c3c,#c0392b);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .3s ease}.logout-button:hover{background:linear-gradient(135deg,#c0392b,#a93226);box-shadow:0 4px 12px #e74c3c4d;transform:translateY(-1px)}.app-main{background-color:#f5f5f5;flex:1 1}.user-menu{align-items:center;display:flex;gap:12px;position:relative}.user-tenant-label{color:#ecf0f1;font-size:14px;font-weight:500;white-space:nowrap}.user-dropdown{display:inline-block;position:relative}.user-dropdown-toggle{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .3s ease}.user-dropdown-toggle:hover{background:#0056b3;box-shadow:0 4px 12px #007bff4d;transform:translateY(-1px)}.user-dropdown-content{background-color:#fff;border:1px solid #dee2e6;border-radius:4px;box-shadow:0 8px 16px 0 #0003;display:none;min-width:140px;position:absolute;right:0;z-index:1000}.user-dropdown:hover .user-dropdown-content{display:block}.dropdown-item{background:none;border:none;color:#333;cursor:pointer;display:block;font-size:14px;padding:12px 16px;text-align:left;text-decoration:none;transition:background-color .2s ease;width:100%}.dropdown-item:hover{background-color:#f8f9fa;color:#007bff}.dropdown-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.dropdown-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}@media (max-width:768px){.header-content{flex-direction:column;gap:15px;text-align:center}.header-content h1{font-size:20px}.user-menu{flex-direction:column;gap:8px}.user-info{flex-direction:column;gap:10px}}.App{background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh}*{box-sizing:border-box}body{margin:0;padding:0}
/*# sourceMappingURL=main.a850a9d9.css.map*/