body{font-family:"Segoe UI","Arial",sans-serif;margin:0;padding:120px 0 0;min-height:100vh}h1,h2,h3{color:#2a3b5c;font-weight:600}.header{background:linear-gradient(90deg,#4f8cff,#6ec6ff);color:#fff;padding:18px 0;text-align:center;border-radius:18px 18px 0 0;box-shadow:0 2px 8px rgba(44,62,80,.08);letter-spacing:1px}form{margin-bottom:32px}label{display:block;margin-bottom:8px;color:#2a3b5c;font-size:1rem;font-weight:500}input[type=date],input[type=email],input[type=number],input[type=text],textarea{width:100%;padding:10px 14px;margin-bottom:18px;border:1.5px solid #b6d0ff;border-radius:8px;background:#f7fbff;font-size:1rem;color:#2a3b5c;transition:border .2s;box-sizing:border-box}input:focus,textarea:focus{border-color:#4f8cff;outline:none;background:#eaf4ff}.room-list{margin-top:24px}.room-card{background:#f7fbff;border:1.5px solid #e3f0ff;border-radius:14px;padding:28px 32px;margin:18px 0;box-shadow:0 4px 16px rgba(44,62,80,.07);transition:box-shadow .2s}.room-card:hover{box-shadow:0 8px 32px rgba(44,62,80,.13)}.room-card h3{margin:0 0 10px;color:#4f8cff}.room-card p{margin:6px 0;color:#2a3b5c}.button,button{display:inline-block;padding:12px 28px;margin-top:10px;background:linear-gradient(90deg,#4f8cff,#6ec6ff);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;box-shadow:0 2px 8px rgba(44,62,80,.1);transition:background .2s,box-shadow .2s;letter-spacing:.5px}.button:hover,button:hover{background:linear-gradient(90deg,#357ae8,#4f8cff);box-shadow:0 4px 16px rgba(44,62,80,.15)}.cancel-button{background:#f44336;background:linear-gradient(90deg,#f44336,#ff7961);color:#fff;margin-right:10px}.cancel-button:hover{background:#d32f2f;background:linear-gradient(90deg,#d32f2f,#ff7961)}.reservation-dialog{background:#fff;border:1.5px solid #e3f0ff;border-radius:16px;padding:28px 24px;box-shadow:0 8px 32px rgba(44,62,80,.18);min-width:340px;max-width:95vw}.reservation-dialog h2{margin-top:0;color:#4f8cff}.reservation-details{margin:14px 0 18px;color:#2a3b5c;font-size:1.05rem}.headers-container{width:100%;max-width:900px;margin:0 auto 32px;padding:48px 24px 36px;background:hsla(0,0%,100%,.05);border-radius:24px;box-shadow:0 8px 32px rgba(44,62,80,.13);text-align:center;position:relative}.header-logo{width:110px;height:auto;margin-bottom:18px;display:block;margin-left:auto;margin-right:auto}.header-main-title{font-size:2.8rem;font-family:"Montserrat","Segoe UI",Arial,sans-serif;font-weight:400;color:#2a3b5c;margin-bottom:10px;letter-spacing:1.5px;text-shadow:0 4px 16px rgba(44,62,80,.18),0 1px 1px #fff}.header-sub-title{font-size:1.1rem;font-family:"Roboto","Segoe UI",Arial,sans-serif;color:#4f8cff;font-weight:300;margin-bottom:0;letter-spacing:.5px;text-shadow:0 2px 8px rgba(44,62,80,.1),0 1px 1px #fff}.sticky-header{position:fixed;top:0;left:0;right:0;z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 20px rgba(44,62,80,.1);height:120px}.sticky-header-content{max-width:1200px;margin:0 auto;padding:15px 24px;display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;height:100%}.header-logo-section{display:flex;justify-content:flex-start;align-items:center}.sticky-header-logo{width:100px;height:auto;cursor:pointer;transition:transform .2s ease,opacity .2s ease}.sticky-header-logo:hover{transform:scale(1.05);opacity:.8}.header-title-section{text-align:center}.sticky-header-main-title{font-size:1.8rem;font-family:"Montserrat","Segoe UI",Arial,sans-serif;font-weight:400;color:#d4d5d8;margin:0 0 5px;letter-spacing:1px}.sticky-header-sub-title{font-size:.9rem;font-family:"Roboto","Segoe UI",Arial,sans-serif;color:#4f8cff;font-weight:300;margin:0;letter-spacing:.3px}.header-nav-section{display:flex;justify-content:flex-end;align-items:center}.sticky-search-container{position:-webkit-sticky;position:sticky;top:120px;z-index:998;background:hsla(0,0%,100%,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:20px 24px;margin:0 0 20px;box-shadow:0 4px 20px rgba(44,62,80,.12);border-radius:12px}.home{position:relative}.main-content{padding-top:20px;max-width:70%;margin:0 auto}.container{width:100%;max-width:none;margin:20px 0;background:#fff;border-radius:18px;box-shadow:0 8px 32px rgba(44,62,80,.1);padding:32px 24px}@media (max-width:768px){body{padding-top:140px}.sticky-header{height:140px}.sticky-header-content{grid-template-columns:1fr;grid-template-rows:auto auto auto;grid-gap:10px;gap:10px;text-align:center;padding:10px 16px}.header-logo-section,.header-nav-section{justify-content:center}.sticky-header-main-title{font-size:1.4rem}.sticky-header-sub-title{font-size:.8rem}.sticky-search-container{top:140px;margin:0 0 15px;padding:15px 16px}.main-content{max-width:95%;padding-top:15px}}.room-thumbnails{display:flex;grid-gap:8px;gap:8px;margin-bottom:12px}.room-thumbnail{width:60px;height:60px;object-fit:cover;border-radius:8px;cursor:pointer;border:2px solid #e3f0ff;transition:box-shadow .2s,border .2s}.room-thumbnail:hover{box-shadow:0 2px 12px rgba(44,62,80,.18);border:2px solid #4f8cff}.manager-tabs{display:flex;grid-gap:0;gap:0;margin-bottom:24px;border-bottom:2px solid #e3f0ff;justify-content:flex-start}.manager-tab-btn{background:none;outline:none;padding:16px 36px;font-size:1.1rem;font-family:"Montserrat","Segoe UI",Arial,sans-serif;font-weight:500;color:#4f8cff;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:background .15s,border-bottom .2s,color .2s;margin-bottom:-2px}.manager-tab-btn:focus,.manager-tab-btn:hover{background:#f3f8ff;color:#357ae8}.manager-tab-btn.active{border-bottom:3px solid #4f8cff;color:#2a3b5c;background:#f3f8ff;font-weight:700}.manager-tab-content{padding:24px 0 0}.room-card-flex{display:flex;align-items:center;justify-content:space-between;grid-gap:32px;gap:32px;padding:18px 0;border-bottom:1px solid #e3f0ff}.room-info{flex:1 1 160px;min-width:120px;margin-left:16px}.center-thumbnails{display:flex;grid-gap:8px;gap:8px;flex:1 1 180px;justify-content:center}.room-action{display:flex;flex-direction:column;align-items:flex-end;min-width:140px;grid-gap:0;gap:0;margin-right:16px}.room-left-indicator{margin-bottom:0}.status-pill{display:flex;align-items:center;cursor:pointer;border-radius:999px;padding:6px 18px;font-weight:600;font-size:13px;-webkit-user-select:none;user-select:none;border:1.5px solid #e3e8ef;background:#e3e8ef;color:#7a869a;transition:background .2s,color .2s,border .2s}.status-pill.selected{background:#4f8cff;color:#fff;border:1.5px solid #357ae8}.charges-list{background:#fff;padding:10px 12px;color:#a65c00;font-size:.97em}.charges-btn,.charges-list{border:1px solid #ffe0b3;border-radius:6px}.charges-btn{background:#fff7e6;color:#e67c00;padding:6px 16px;font-weight:500;cursor:pointer;transition:background .2s,color .2s}.charges-btn:hover{background:#ffe0b3;color:#a65c00}@media (max-width:600px){.container{width:98%;padding:12px 4vw}.reservation-dialog{padding:16px 6vw}}@media (max-width:700px){.headers-container{padding:28px 8vw 20px;border-radius:16px}.header-main-title{font-size:2rem}.header-sub-title{font-size:1rem}.header-logo{width:70px}}.admin-container,.manager-container{max-width:1200px;margin:0 auto;padding:20px;background:hsla(0,0%,100%,.6);border-radius:18px;box-shadow:0 8px 32px rgba(44,62,80,.1)}.admin-title{text-align:center;color:#2a3b5c;margin-bottom:30px;font-size:2.5rem}.admin-tabs{display:flex;grid-gap:0;gap:0;margin-bottom:30px;border-bottom:2px solid #e3f0ff;justify-content:flex-start}.admin-tab{background:none;outline:none;padding:16px 36px;font-size:1.1rem;font-family:"Montserrat","Segoe UI",Arial,sans-serif;font-weight:500;color:#4f8cff;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:background .15s,border-bottom .2s,color .2s;margin-bottom:-2px}.admin-tab:focus,.admin-tab:hover{background:#f3f8ff;color:#357ae8}.admin-tab.active{border-bottom:3px solid #4f8cff;color:#2a3b5c;background:#f3f8ff;font-weight:700}.admin-content{padding:20px 0}.room-management-header,.room-photo-management-header,.room-type-management-header,.user-management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.room-management-header h2,.room-photo-management-header h2,.room-type-management-header h2,.user-management-header h2{margin:0;color:#2a3b5c}.btn{display:inline-block;padding:10px 20px;margin:5px;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;text-decoration:none;transition:background .2s,box-shadow .2s}.btn-primary{background:linear-gradient(90deg,#4f8cff,#6ec6ff);color:#fff;box-shadow:0 2px 8px rgba(44,62,80,.1)}.btn-primary:hover{background:linear-gradient(90deg,#357ae8,#4f8cff);box-shadow:0 4px 16px rgba(44,62,80,.15)}.btn-secondary{background:#f8f9fa;color:#2a3b5c;border:1px solid #e3f0ff}.btn-secondary:hover{background:#e9ecef}.btn-danger{background:linear-gradient(90deg,#f44336,#ff7961);color:#fff}.btn-danger:hover{background:linear-gradient(90deg,#d32f2f,#f44336)}.btn-small{padding:6px 12px;font-size:.9rem;margin:2px}.modal{background:#fff;border-radius:16px;padding:30px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px rgba(0,0,0,.2)}.modal h3{margin-top:0;color:#2a3b5c;text-align:center}.form-group input[type=checkbox]{width:auto;margin-right:8px}.form-group small{color:#666;font-size:.85rem}.form-actions{display:flex;justify-content:flex-end;grid-gap:10px;gap:10px;margin-top:30px}.room-types-table,.rooms-table,.users-table{width:100%;overflow-x:auto}.room-types-table table,.rooms-table table,.users-table table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 4px 16px rgba(44,62,80,.07)}.room-types-table td,.room-types-table th,.rooms-table td,.rooms-table th,.users-table td,.users-table th{padding:12px 16px;text-align:left;border-bottom:1px solid #e3f0ff}.room-types-table th,.rooms-table th,.users-table th{background:#f7fbff;color:#2a3b5c;font-weight:600}.room-types-table tr:hover,.rooms-table tr:hover,.users-table tr:hover{background:#f7fbff}.status{padding:4px 12px;border-radius:20px;font-size:.85rem;font-weight:600}.status.active{background:#d4edda;color:#155724}.status.inactive{background:#f8d7da;color:#721c24}.status.admin{background:#dc3545;color:#fff}.status.manager{background:#007bff;color:#fff}.notification{position:fixed;top:20px;right:20px;padding:12px 20px;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.15);z-index:1000;font-weight:600;animation:slideIn .3s ease-out}.notification.success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.notification.error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}@keyframes slideIn{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.room-selector{margin-bottom:30px}.room-selector label{display:inline-block;margin-right:10px;color:#2a3b5c;font-weight:500}.room-selector select{padding:8px 12px;border:1.5px solid #b6d0ff;border-radius:8px;background:#f7fbff;color:#2a3b5c}.room-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:20px;gap:20px}.photo-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px rgba(44,62,80,.07);transition:box-shadow .2s}.photo-card:hover{box-shadow:0 8px 32px rgba(44,62,80,.13)}.photo-image{width:100%;height:200px;overflow:hidden}.photo-image img{width:100%;height:100%;object-fit:cover}.photo-info{padding:15px}.photo-info p{margin:5px 0;color:#2a3b5c}.photo-actions{display:flex;grid-gap:10px;gap:10px;margin-top:15px}.loading{color:#2a3b5c}@media (max-width:768px){.admin-tabs{flex-direction:column}.admin-tab{border-bottom:none;border-left:3px solid transparent;text-align:left}.admin-tab.active{border-bottom:none;border-left:3px solid #4f8cff}.room-management-header,.room-photo-management-header,.room-type-management-header,.user-management-header{flex-direction:column;align-items:flex-start;grid-gap:15px;gap:15px}.room-types-table,.rooms-table,.users-table{font-size:.9rem}.room-photos-grid{grid-template-columns:1fr}.form-actions{flex-direction:column}}.nav-container{display:flex;justify-content:space-between;align-items:center;margin-top:20px;position:relative}.nav-links{display:flex;grid-gap:10px;gap:10px}.user-profile{position:relative;display:inline-block}.user-info{background:hsla(0,0%,100%,.9);padding:8px 16px;border-radius:20px;cursor:pointer;display:flex;align-items:center;grid-gap:8px;gap:8px;color:#2a3b5c;font-weight:500;border:1px solid #e3f0ff;transition:background .2s}.user-info:hover{background:#fff}.user-name{font-weight:600}.user-role{color:#4f8cff;font-size:.9rem}.dropdown-arrow{font-size:.8rem;transition:transform .2s}.user-dropdown{position:absolute;top:100%;right:0;background:#fff;border:1px solid #e3f0ff;border-radius:8px;box-shadow:0 8px 32px rgba(44,62,80,.15);padding:12px;min-width:200px;z-index:9999;margin-top:5px;max-height:300px;overflow-y:auto;opacity:1;transform:translateY(0);transition:opacity .2s ease,transform .2s ease}.dropdown-item{padding:4px 0;color:#2a3b5c;font-size:.9rem}.user-dropdown hr{border:none;border-top:1px solid #e3f0ff;margin:8px 0}.logout-btn{width:100%;padding:8px 12px;background:#f44336;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background .2s}.logout-btn:hover{background:#d32f2f}.login-container{display:flex;justify-content:center;align-items:center;min-height:60vh;padding:40px 20px}.login-card{background:#fff;border-radius:16px;padding:40px;box-shadow:0 8px 32px rgba(44,62,80,.15);max-width:400px;width:100%}.login-card h2{text-align:center;color:#2a3b5c;margin-bottom:8px}.login-subtitle{text-align:center;color:#666;margin-bottom:30px;font-size:.95rem}.login-btn{width:100%;margin-top:20px;padding:12px;font-size:1.1rem}.error-message{background:#f8d7da;color:#721c24;padding:10px;border-radius:6px;text-align:center;font-size:.9rem}.demo-credentials{margin-top:30px;padding-top:20px;border-top:1px solid #e3f0ff}.demo-credentials h4{color:#2a3b5c;margin-bottom:15px;font-size:1rem}.demo-user{background:#f7fbff;padding:8px 12px;border-radius:6px;margin-bottom:8px;font-size:.9rem;color:#2a3b5c}.access-denied{text-align:center;padding:60px 20px;color:#2a3b5c}.access-denied h2{color:#f44336;margin-bottom:20px}.access-denied p{margin-bottom:10px;font-size:1.1rem}.already-logged-in{text-align:center;padding:60px 20px;color:#2a3b5c}.already-logged-in h2{color:#4f8cff;margin-bottom:20px}.already-logged-in p{margin-bottom:10px;font-size:1.1rem}.already-logged-in .btn{display:inline-block;text-decoration:none}@media (max-width:768px){.nav-container{flex-direction:column;grid-gap:15px;gap:15px}.nav-links{justify-content:center;flex-wrap:wrap}.login-card{padding:30px 20px;margin:0 10px}.user-dropdown{right:0;left:auto;min-width:180px;transform:translateX(0)}.headers-container{padding-bottom:50px}}.calendar-tab{padding:20px}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:15px;background:linear-gradient(90deg,#4f8cff,#6ec6ff);border-radius:10px;color:#fff}.calendar-header h3{margin:0;font-size:1.5rem;color:#fff}.nav-btn{background:hsla(0,0%,100%,.2);border:none;color:#fff;padding:10px 15px;border-radius:8px;cursor:pointer;font-size:1.2rem;transition:background .3s ease}.nav-btn:hover{background:hsla(0,0%,100%,.3)}.calendar-legend{display:flex;flex-wrap:wrap;grid-gap:15px;gap:15px;margin-bottom:20px;padding:15px;background:#f8f9fa;border-radius:8px}.legend-item{display:flex;align-items:center;grid-gap:8px;gap:8px;font-size:.9rem}.legend-color{width:20px;height:15px;border-radius:3px;border:1px solid #ddd}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:1px;gap:1px;background:#ddd;border-radius:8px;overflow:hidden}.weekday-header{background:#2a3b5c;color:#fff;padding:15px 10px;text-align:center;font-weight:600;font-size:.9rem}.calendar-day{background:#fff;min-height:120px;padding:8px;position:relative;display:flex;flex-direction:column}.calendar-day.empty{background:#f8f9fa}.calendar-day.today{background:#e3f2fd}.day-number{font-weight:600;color:#2a3b5c;margin-bottom:5px;font-size:1rem}.day-reservations{flex:1 1;display:flex;flex-direction:column;grid-gap:2px;gap:2px}.reservation-block{padding:4px 6px;border-radius:4px;font-size:.75rem;line-height:1.2;transition:transform .2s ease,box-shadow .2s ease}.reservation-block:hover{box-shadow:0 2px 8px rgba(0,0,0,.15)}.reservation-block.span-start{position:relative;border-top-left-radius:4px;border-bottom-left-radius:4px}.reservation-block.span-end{position:relative;border-top-right-radius:4px;border-bottom-right-radius:4px}.reservation-block.span-middle{position:relative;border-radius:0}.reservation-block.span-single{border-radius:4px}.reservation-continuation{display:flex;align-items:center;justify-content:center;height:100%;min-height:20px;padding:2px}.continuation-line{width:100%;height:3px;background:hsla(0,0%,100%,.4);border-radius:1px}.continuation-label{position:absolute;font-size:.65rem;font-weight:600;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center;top:50%;left:50%;transform:translate(-50%,-50%)}.reservation-duration{font-size:.65rem;opacity:.8;font-style:italic}.reservation-block{cursor:pointer;transition:all .2s ease;position:relative}.reservation-block:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.2);z-index:10;position:relative}.custom-tooltip{position:fixed;background:rgba(0,0,0,.9);color:#fff;padding:8px 12px;border-radius:6px;font-size:.75rem;line-height:1.3;white-space:pre-line;z-index:9999;pointer-events:none;opacity:0;transition:opacity .2s ease;max-width:250px;box-shadow:0 4px 12px rgba(0,0,0,.3);word-wrap:break-word}.custom-tooltip.show{opacity:1}.custom-tooltip:before{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:rgba(0,0,0,.9)}.reservation-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reservation-pax{font-size:.7rem;opacity:.9}.overstay-indicator{position:absolute;top:-2px;right:-2px;font-size:.8rem}.loading{font-size:1.1rem;color:#666}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;padding:30px;border-radius:12px;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 10px 30px rgba(0,0,0,.3)}.modal-content h3{margin-top:0;color:#2a3b5c;border-bottom:2px solid #e9ecef;padding-bottom:10px}.reservation-details p{margin:10px 0;padding:8px 0;border-bottom:1px solid #f1f3f4}.reservation-details p:last-child{border-bottom:none}.overstay-warning{color:#dc3545;font-weight:700;background:#f8d7da;padding:10px;border-radius:5px;border:1px solid #f5c6cb}.close-btn{background:#6c757d;color:#fff;border:none;padding:10px 20px;border-radius:5px;cursor:pointer;margin-top:20px;transition:background .3s ease}.close-btn:hover{background:#5a6268}@media (max-width:768px){.calendar-header{flex-direction:column;grid-gap:10px;gap:10px}.calendar-legend{justify-content:center}.legend-item{font-size:.8rem}.calendar-day{min-height:80px;padding:4px}.day-number{font-size:.9rem}.reservation-block{font-size:.7rem;padding:2px 4px}.weekday-header{padding:10px 5px;font-size:.8rem}}.reports-container{padding:20px;max-width:1200px;margin:0 auto}.reports-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;border-bottom:2px solid #4f8cff;padding-bottom:10px}.reports-header h2{color:#2a3b5c;margin:0}.export-buttons{display:flex;grid-gap:10px;gap:10px}.export-btn{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;display:flex;align-items:center;grid-gap:5px;gap:5px}.export-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.15)}.export-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.excel-btn{background:#217346;color:#fff}.excel-btn:hover:not(:disabled){background:#1a5c37}.pdf-btn{background:#d73502;color:#fff}.pdf-btn:hover:not(:disabled){background:#b82d02}.reports-container h2{color:#2a3b5c;padding-bottom:10px;margin-bottom:30px}.date-filter-section{background:#f8f9fa;padding:20px;border-radius:8px;margin-bottom:30px;border:1px solid #e9ecef}.date-filter-section h3{margin-top:0;color:#495057}.date-inputs{display:flex;grid-gap:20px;gap:20px;align-items:end;flex-wrap:wrap}.date-input-group{display:flex;flex-direction:column;min-width:150px}.date-input-group label{margin-bottom:5px;font-weight:500;color:#495057}.date-input-group input[type=date]{padding:8px 12px;border:1px solid #ced4da;border-radius:4px;font-size:14px}.generate-report-btn{background:#4f8cff;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .2s;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;margin-bottom:18px}.generate-report-btn:hover:not(:disabled){background:#3a7bd5}.generate-report-btn:disabled{background:#ccc;cursor:not-allowed}.reports-content{display:flex;flex-direction:column;grid-gap:30px;gap:30px}.report-section{background:#fff;padding:25px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);border:1px solid #e9ecef}.report-section h3{margin-top:0;margin-bottom:20px;color:#2a3b5c;font-size:1.4em}.report-section h4{margin-bottom:15px;color:#495057;font-size:1.1em}.report-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:20px;gap:20px;margin-bottom:30px}.report-card{background:#f8f9fa;padding:20px;border-radius:8px;text-align:center;border:1px solid #e9ecef;transition:transform .2s,box-shadow .2s}.report-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.report-card h4{margin:0 0 10px;color:#6c757d;font-size:.9em;text-transform:uppercase;letter-spacing:.5px}.metric-value{font-size:2em;font-weight:700;margin:0;color:#2a3b5c}.metric-value.confirmed{color:#28a745}.metric-value.checked-in{color:#007bff}.metric-value.checked-out{color:#6c757d}.metric-value.cancelled{color:#dc3545}.report-card.revenue-collected{border-left:4px solid #28a745}.report-card.revenue-potential{border-left:4px solid #ffc107}.report-card.revenue-expected{border-left:4px solid #17a2b8}.report-card.revenue-net{border-left:4px solid #20c997}.report-card.discount-voucher{border-left:4px solid #6f42c1}.report-card.discount-mandatory{border-left:4px solid #fd7e14}.report-table{width:100%;border-collapse:collapse;margin-top:15px}.report-table td,.report-table th{padding:12px;text-align:left;border-bottom:1px solid #dee2e6}.report-table th{font-weight:600;color:#495057;text-transform:uppercase;font-size:.85em;letter-spacing:.5px}.report-table th,.report-table tr:hover{background:#f8f9fa}.daily-bookings,.room-type-breakdown{margin-top:25px}.room-type-breakdown{overflow-x:auto;border:1px solid #dee2e6;border-radius:8px;background:#fff}.room-type-breakdown .report-table{min-width:1200px;margin-top:0;border:none}.room-type-breakdown h4{margin:0;padding:15px 20px;background:#f8f9fa;border-bottom:1px solid #dee2e6;font-size:1.1em;color:#2a3b5c}.room-type-breakdown .report-table td:first-child,.room-type-breakdown .report-table th:first-child{width:140px;min-width:140px}.room-type-breakdown .report-table td:nth-child(2),.room-type-breakdown .report-table th:nth-child(2){width:80px;min-width:80px;text-align:center}.room-type-breakdown .report-table td:nth-child(3),.room-type-breakdown .report-table td:nth-child(4),.room-type-breakdown .report-table td:nth-child(5),.room-type-breakdown .report-table td:nth-child(6),.room-type-breakdown .report-table td:nth-child(7),.room-type-breakdown .report-table td:nth-child(8),.room-type-breakdown .report-table th:nth-child(3),.room-type-breakdown .report-table th:nth-child(4),.room-type-breakdown .report-table th:nth-child(5),.room-type-breakdown .report-table th:nth-child(6),.room-type-breakdown .report-table th:nth-child(7),.room-type-breakdown .report-table th:nth-child(8){width:120px;min-width:120px;text-align:right}.room-type-breakdown .report-table td:nth-child(9),.room-type-breakdown .report-table td:nth-child(10),.room-type-breakdown .report-table th:nth-child(9),.room-type-breakdown .report-table th:nth-child(10){width:90px;min-width:90px;text-align:center}.room-type-breakdown::-webkit-scrollbar{height:8px}.room-type-breakdown::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.room-type-breakdown::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.room-type-breakdown::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.room-type-breakdown:after{content:"← Scroll horizontally to view all columns →";display:block;text-align:center;padding:8px;background:#e9ecef;color:#6c757d;font-size:.8em;font-style:italic}.quick-stats{display:flex;flex-direction:column;grid-gap:10px;gap:10px}.stat-item{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #e9ecef}.stat-item:last-child{border-bottom:none}.stat-label{font-weight:500;color:#6c757d}.mandatory-discount-section{background:#fff9c4;border:2px solid #ffc107;border-radius:8px;padding:20px;margin:20px 0}.mandatory-discount-section h4{margin:0 0 15px;color:#856404;font-size:1.1em}.discount-breakdown{background:#e8f5e8;border:1px solid #c3e6c3;border-radius:6px;padding:15px;margin:15px 0}.discount-breakdown p{margin:5px 0;font-size:.95em}.final-amount{font-size:1.2em;color:#28a745;background:#f8fff8;padding:10px;border-radius:6px;border:2px solid #28a745;text-align:center;margin:15px 0}.mandatory-id-group{background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;padding:15px;margin:10px 0}.mandatory-id-group label{color:#856404;font-weight:600}.mandatory-id-group input{border:2px solid #ffc107;background:#fffbf0}.mandatory-id-group input:focus{border-color:#ff8f00;background:#fff}.id-note{display:block;margin-top:8px;color:#856404;font-size:.85em;font-style:italic;background:#fff3cd;padding:8px;border-radius:4px;border-left:4px solid #ffc107}.reservation-summary{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:20px;margin:20px 0}.reservation-summary p{margin:8px 0;padding:5px 0;border-bottom:1px solid #e9ecef}.reservation-summary p:last-child{border-bottom:none}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#2a3b5c;font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:1.5px solid #b6d0ff;border-radius:8px;background:#f7fbff;font-size:1rem;color:#2a3b5c;transition:border .2s;box-sizing:border-box}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4f8cff;outline:none;background:#eaf4ff}.btn-proceed{background:linear-gradient(90deg,#28a745,#20c997);color:#fff;border:none;padding:12px 28px;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .2s}.btn-proceed:hover{background:linear-gradient(90deg,#218838,#1ea085);transform:translateY(-1px);box-shadow:0 4px 12px rgba(40,167,69,.3)}.btn-cancel{background:#6c757d;color:#fff;border:none;padding:12px 28px;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .2s;margin-right:10px}.btn-cancel:hover{background:#5a6268;transform:translateY(-1px)}.discount-filter-section{background:#fff9c4;border:1px solid #ffc107;border-radius:8px;padding:15px;margin:15px 0}.discount-filter-section h4{margin:0 0 10px;color:#856404}.filter-checkboxes{display:flex;grid-gap:20px;gap:20px;flex-wrap:wrap}.filter-checkbox{display:flex;align-items:center;grid-gap:8px;gap:8px}.filter-checkbox input[type=checkbox]{width:auto;margin:0}.filter-checkbox label{margin:0;font-weight:400;color:#495057}.stat-value{font-weight:600;color:#2a3b5c}.loading{text-align:center;padding:40px;color:#6c757d;font-size:1.1em}@media (max-width:768px){.reports-header{flex-direction:column;grid-gap:15px;gap:15px;align-items:stretch}.export-buttons{justify-content:center}.date-inputs{flex-direction:column;align-items:stretch}.date-input-group{min-width:auto}.report-cards{grid-template-columns:1fr}.report-table{font-size:.9em}.room-type-breakdown .report-table{min-width:1000px}.room-type-breakdown .report-table td,.room-type-breakdown .report-table th{padding:8px 6px;font-size:.85em}.room-type-breakdown:after{font-size:.75em;padding:6px}.stat-item{flex-direction:column;grid-gap:5px;gap:5px}.metric-value{font-size:1.6em}}.reservation-details-modal{max-width:800px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #e3f2fd}.modal-header h3{margin:0;color:#2a3b5c}.modal-header .close-btn{background:none;border:none;font-size:24px;color:#666;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.modal-header .close-btn:hover{color:#d32f2f}.modal-body{padding:0}.modal-footer{margin-top:20px;padding-top:15px;border-top:2px solid #e3f2fd;text-align:right}.details-section{margin-bottom:25px;padding:20px;background:#f8fafe;border-radius:8px;border-left:4px solid #4f8cff}.details-section h4{margin:0 0 15px;color:#2a3b5c;font-size:1.1em;font-weight:600}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:15px;gap:15px}.detail-item{display:flex;flex-direction:column;grid-gap:4px;gap:4px}.detail-item .label{font-weight:600;color:#666;font-size:.9em;text-transform:uppercase;letter-spacing:.5px}.detail-item .value{color:#2a3b5c;font-weight:500}.status-checked-in{color:#2e7d32;background:#e8f5e8}.status-checked-in,.status-checked-out{padding:2px 8px;border-radius:4px;font-size:.85em}.status-checked-out{color:#666;background:#f5f5f5}.status-reserved{color:#1976d2;background:#e3f2fd}.status-pending,.status-reserved{padding:2px 8px;border-radius:4px;font-size:.85em}.status-pending{color:#f57c00;background:#fff3e0}.charge-breakdown{background:#fff;padding:20px;border-radius:8px;border:1px solid #e0e0e0}.charge-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f0f0f0}.charge-item:last-child{border-bottom:none}.charge-item.subtotal{border-top:2px solid #e0e0e0;margin-top:10px;padding-top:15px;font-weight:600}.charge-item.discount .charge-amount{color:#2e7d32}.charge-item.discount-total{border-top:2px solid #2e7d32;margin-top:10px;padding-top:12px;background-color:#f1f8e9;padding-left:12px;padding-right:12px;border-radius:4px}.charge-item.discount-total .charge-amount{color:#2e7d32}.charge-item.total{border-top:3px solid #4f8cff;margin-top:15px;padding-top:15px;font-weight:700;font-size:1.1em;color:#2a3b5c}.charge-label{font-weight:500;color:#2a3b5c}.charge-amount{font-weight:600;color:#2a3b5c}.charges-table{background:#fff;border-radius:8px;overflow:hidden;border:1px solid #e0e0e0}.charges-table table{width:100%;border-collapse:collapse}.charges-table th{background:#f5f5f5;padding:12px;text-align:left;font-weight:600;color:#2a3b5c;border-bottom:2px solid #e0e0e0}.charges-table td{padding:12px;border-bottom:1px solid #f0f0f0}.charges-table tr:last-child td{border-bottom:none}.discounts-table{background:#fff;border-radius:8px;overflow:hidden;border:1px solid #e0e0e0;margin-top:15px}.discounts-table table{width:100%;border-collapse:collapse}.discounts-table th{background:#e8f5e8;padding:12px;text-align:left;font-weight:600;color:#2e7d32;border-bottom:2px solid #c8e6c9}.discounts-table td{padding:12px;border-bottom:1px solid #f0f0f0}.discounts-table tr:last-child td{border-bottom:none}.discounts-table .charge-amount{color:#2e7d32;font-weight:600}.exemptions-table{background:#fff;border-radius:8px;overflow:hidden;border:1px solid #e0e0e0;margin-top:15px}.exemptions-table table{width:100%;border-collapse:collapse}.exemptions-table th{background:#e3f2fd;padding:12px;text-align:left;font-weight:600;color:#1976d2;border-bottom:2px solid #bbdefb}.exemptions-table td{padding:12px;border-bottom:1px solid #f0f0f0}.exemptions-table tr:last-child td{border-bottom:none}.exemptions-table .charge-amount{color:#1976d2;font-weight:600}.status{padding:4px 8px;border-radius:4px;font-size:.8em;font-weight:500;text-transform:uppercase}.status.status-pending{background:#fff3e0;color:#f57c00}.status.status-applied,.status.status-paid{background:#e8f5e8;color:#2e7d32}.overstay-warning{background:#fff3cd;color:#856404;padding:12px;border-radius:6px;border-left:4px solid #ffc107;font-weight:600}.error-state,.loading-state{text-align:center;padding:40px 20px}.error-message{color:#d32f2f;margin-bottom:15px}.retry-btn{background:#4f8cff;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:.9em}.retry-btn:hover{background:#3d7ce6}@media (max-width:768px){.reservation-details-modal{max-width:95%;margin:10px}.details-grid{grid-template-columns:1fr}.charge-item{flex-direction:column;align-items:flex-start;grid-gap:4px;gap:4px}.charges-table{overflow-x:auto}}.booking-number-btn{background:none!important;border:none!important;color:#4f8cff!important;text-decoration:underline!important;cursor:pointer!important;padding:0!important;font:inherit!important;font-weight:600!important;transition:color .2s ease!important}.booking-number-btn:hover{color:#3d7ce6!important;text-decoration:underline!important}.booking-number-btn:active{color:#2a5bb8!important}.system-badge{padding:4px 8px;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.system-badge.legacy{background-color:#ffeaa7;color:#8b4513;border:1px solid #fdcb6e}.system-badge.multi_discount{background-color:#a8e6cf;color:#00b894;border:1px solid #74b9ff}
/*# sourceMappingURL=main.5db2d1bb.chunk.css.map */