*{box-sizing:border-box}html{overflow-x:hidden;width:100%;max-width:100vw}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;width:100%;max-width:100vw}#root{width:100%;max-width:100vw;overflow-x:hidden;box-sizing:border-box}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.navbar{background-color:#1a3970;color:#fff;padding:0;box-shadow:0 2px 4px #0000001a;position:sticky;top:0;z-index:1000}.navbar-container{max-width:1200px;width:100%;margin:0 auto;padding:0 20px;display:flex;justify-content:space-between;align-items:center;height:60px;box-sizing:border-box}.navbar-brand{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:700;color:#fff;text-decoration:none;transition:opacity .3s ease;flex-shrink:0;min-width:0}.navbar-brand:hover{opacity:.9}.navbar-logo{height:45px;width:auto;object-fit:contain}.navbar-brand-text{color:#fff;transition:color .3s ease}.navbar-menu{display:flex;align-items:center;gap:20px;flex-wrap:wrap;flex:1;justify-content:flex-end;min-width:0}.navbar-link{color:#fff;text-decoration:none;padding:8px 16px;border-radius:4px;transition:background-color .3s ease;font-size:16px;white-space:nowrap;flex-shrink:0}.navbar-link:hover{background-color:#ffffff1a}.navbar-user{display:flex;align-items:center;gap:15px;margin-left:10px;padding-left:15px;border-left:1px solid rgba(255,255,255,.2)}.navbar-username{color:#fff;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.navbar-logout{background-color:#d40000;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s ease}.navbar-logout:hover{background-color:#a30000}@media(max-width:768px){.navbar-container{flex-direction:column;height:auto;padding:10px 15px;gap:10px}.navbar-brand{font-size:20px;width:100%;justify-content:center}.navbar-logo{height:35px}.navbar-menu{flex-wrap:wrap;justify-content:center;gap:8px;width:100%}.navbar-link{font-size:14px;padding:6px 12px}.navbar-user{border-left:none;border-top:1px solid rgba(255,255,255,.2);padding-top:10px;margin-top:10px;margin-left:0;padding-left:0;width:100%;justify-content:center;flex-wrap:wrap;gap:10px}.navbar-username{max-width:100%;text-align:center}.navbar-logout{width:100%;max-width:200px}}@media(max-width:480px){.navbar-container{padding:8px 10px}.navbar-brand{font-size:18px}.navbar-logo{height:30px}.navbar-link{font-size:13px;padding:5px 10px}.navbar-username{font-size:14px}.navbar-logout{font-size:13px;padding:6px 12px}}.login-container{width:400px;max-width:90%;margin:100px auto;padding:30px;border-radius:8px;background-color:#f4f4f4;box-shadow:0 4px 10px #0000001a;box-sizing:border-box}.login-container h2{text-align:center;color:#333}.login-container input{width:100%;padding:10px;margin:10px 0;border-radius:4px;border:1px solid #ccc;box-sizing:border-box;font-size:16px;font-family:inherit;max-width:100%}.login-container input:focus{outline:none;border-color:#1a3970;box-shadow:0 0 0 2px #1a397033}.login-container button[type=submit]{width:100%;padding:12px;background-color:#1a3970;color:#fff;border:none;border-radius:4px;font-size:16px;cursor:pointer;margin-top:10px}.login-container button[type=submit]:hover{background-color:#0f2447}.error-message{color:#d40000;text-align:center;margin-top:15px;padding:10px;background-color:#ffe5e5;border-radius:4px}.login-container form{display:flex;flex-direction:column}@media(max-width:480px){.login-container{width:100%;max-width:100%;margin:50px auto;padding:20px;border-radius:0}.login-container h2{font-size:24px}.login-container input,.login-container button[type=submit]{font-size:16px;padding:12px}}.register-container{width:400px;max-width:90%;margin:100px auto;padding:30px;border-radius:8px;background-color:#f4f4f4;box-shadow:0 4px 10px #0000001a;box-sizing:border-box}.register-container h2{text-align:center;color:#333}.register-container input{width:100%;padding:10px;margin:10px 0;border-radius:4px;border:1px solid #ccc;box-sizing:border-box;font-size:16px;font-family:inherit;max-width:100%}.password-input-wrapper{position:relative;width:100%;margin:10px 0}.password-input-wrapper input{width:100%;padding-right:45px;margin:0}.password-toggle-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:5px 8px;display:flex;align-items:center;justify-content:center;color:#666;transition:color .2s ease;z-index:10}.password-toggle-btn:hover{color:#1a3970}.password-toggle-btn:focus{outline:2px solid #1a3970;outline-offset:2px;border-radius:2px}.password-toggle-btn svg{width:20px;height:20px;display:block}.register-container input:focus{outline:none;border-color:#1a3970;box-shadow:0 0 0 2px #1a397033}.register-container select,.register-container .form-select{width:100%;padding:10px;margin:10px 0;border-radius:4px;border:1px solid #ccc;box-sizing:border-box;font-size:16px;font-family:inherit;background-color:#fff;cursor:pointer;max-width:100%}.register-container select:focus,.register-container .form-select:focus{outline:none;border-color:#1a3970;box-shadow:0 0 0 2px #1a397033}.register-container button[type=submit]{width:100%;padding:12px;background-color:#1a3970;color:#fff;border:none;border-radius:4px;font-size:16px;cursor:pointer;margin-top:10px}.register-container button[type=submit]:hover{background-color:#0f2447}.success-message{color:green;text-align:center;margin-top:15px;padding:10px;background-color:#e8f5e9;border-radius:4px}.register-container form{display:flex;flex-direction:column}.auth-link{text-align:center;margin-top:20px;color:#666;font-size:14px}.auth-link a{color:#1a3970;text-decoration:none;font-weight:600;transition:color .3s ease}.auth-link a:hover{color:#d40000;text-decoration:underline}@media(max-width:480px){.register-container{width:100%;max-width:100%;margin:50px auto;padding:20px;border-radius:0}.register-container h2{font-size:24px}.register-container input,.register-container select,.register-container .form-select,.register-container button[type=submit]{font-size:16px;padding:12px}}.dashboard-container{max-width:1200px;width:100%;margin:0 auto;padding:30px 20px;box-sizing:border-box}.dashboard-container h1{color:#2e4053;margin-bottom:30px;font-size:32px}.dashboard-container h2{color:#34495e;margin:30px 0 20px;font-size:24px}.bookings-section{margin-bottom:40px}.bookings-list{display:grid;gap:5px}.booking-card{background:#fff;border-radius:8px;padding:15px 20px;box-shadow:0 2px 8px #0000001a;transition:box-shadow .3s ease}.booking-card:hover{box-shadow:0 4px 12px #00000026}.booking-card-content{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.booking-card.past-booking{opacity:.7;background-color:#f8f9fa}.booking-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:15px;border-bottom:2px solid #ecf0f1}.booking-header-compact{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.booking-header-compact h3{margin:0;color:#2e4053;font-size:18px;font-weight:600}.booking-info{flex:1}.status-badge{margin-right:10px;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase;display:inline-block}.status-pending{background-color:#f39c12;color:#fff}.status-approved{background-color:#27ae60;color:#fff}.status-cancelled{background-color:#d40000;color:#fff}.booking-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:20px;width:100%;box-sizing:border-box}.booking-details-compact{display:flex;gap:20px;flex-wrap:wrap;width:100%;box-sizing:border-box}.detail-item{display:flex;flex-direction:column;gap:5px}.detail-item-compact{display:flex;align-items:center;gap:8px}.detail-item strong{color:#7f8c8d;font-size:14px;text-transform:uppercase;letter-spacing:.5px}.detail-item-compact strong{color:#7f8c8d;font-size:13px;font-weight:600;min-width:50px}.detail-item span{color:#2c3e50;font-size:16px}.detail-item-compact span{color:#2c3e50;font-size:15px}.booking-actions{display:flex;gap:10px;margin-top:20px;padding-top:20px;border-top:1px solid #ecf0f1}.booking-actions-compact{display:flex;gap:10px;flex-shrink:0}.btn-edit,.btn-delete,.btn-save,.btn-cancel{padding:10px 20px;border:none;border-radius:5px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-edit{background-color:#1a3970;color:#fff}.btn-edit:hover{background-color:#0f2447}.btn-delete{background-color:#d40000;color:#fff}.btn-delete:hover{background-color:#a30000}.btn-save{background-color:#27ae60;color:#fff}.btn-save:hover{background-color:#229954}.btn-cancel{background-color:#95a5a6;color:#fff}.btn-cancel:hover{background-color:#7f8c8d}.edit-form{padding:20px;background-color:#f8f9fa;border-radius:5px}.edit-form h3{margin-top:0;margin-bottom:20px;color:#2e4053}.edit-form .form-group{margin-bottom:15px}.edit-form label{display:block;margin-bottom:5px;color:#34495e;font-weight:600}.edit-form input,.edit-form select{width:100%;padding:10px;border:2px solid #ddd;border-radius:5px;font-size:16px;box-sizing:border-box}.edit-form input:focus,.edit-form select:focus{outline:none;border-color:#1a3970}.edit-form .date-input{cursor:pointer;font-size:18px;padding:15px 20px;min-height:50px;font-weight:500;background-color:#fff;position:relative}.edit-form .date-input:hover{border-color:#1a3970;background-color:#f9f9f9;box-shadow:0 2px 4px #1a39701a}.edit-form .date-input:focus{border-color:#1a3970;box-shadow:0 0 0 3px #1a397033;background-color:#fff}.edit-form .date-input::-webkit-calendar-picker-indicator{cursor:pointer;font-size:20px;padding:5px;opacity:.7;transition:opacity .3s ease}.edit-form .date-input::-webkit-calendar-picker-indicator:hover{opacity:1}.edit-form .form-actions{display:flex;gap:10px;margin-top:20px}.loading-message{text-align:center;padding:10px;color:#7f8c8d;font-style:italic;font-size:14px}.toggle-past-btn{background-color:#95a5a6;color:#fff;border:none;padding:12px 24px;border-radius:5px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease;margin-bottom:20px}.toggle-past-btn:hover{background-color:#7f8c8d}.loading{text-align:center;padding:40px;font-size:18px;color:#7f8c8d}.no-bookings{text-align:center;padding:40px;color:#7f8c8d;font-size:16px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.error-message{background-color:#ffe5e5;color:#d40000;padding:15px;border-radius:5px;margin-bottom:20px;border-left:4px solid #d40000}@media(max-width:768px){.dashboard-container{padding:20px 15px}.dashboard-container h1{font-size:28px}.dashboard-container h2{font-size:20px}.booking-card{padding:12px 15px}.booking-card-content{flex-direction:column;align-items:flex-start;gap:15px}.booking-actions-compact{width:100%;flex-direction:column}.booking-actions-compact .btn-edit,.booking-actions-compact .btn-delete{width:100%}.booking-details{grid-template-columns:1fr}.booking-details-compact{flex-direction:column;gap:10px;width:100%}.booking-actions{flex-direction:column;width:100%}.btn-edit,.btn-delete{width:100%}.booking-top-row{flex-direction:column;align-items:flex-start}.booking-top-row .left-side,.booking-top-row .right-side{width:100%}}@media(max-width:480px){.dashboard-container{padding:15px 10px}.dashboard-container h1{font-size:24px}.dashboard-container h2{font-size:18px}.booking-card{padding:10px 12px}.detail-item strong,.detail-item-compact strong{font-size:12px}.detail-item span,.detail-item-compact span{font-size:14px}}.booking-top-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;width:100%;box-sizing:border-box}.booking-top-row .left-side{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.booking-top-row .right-side{display:flex;align-items:center;gap:10px;flex-wrap:wrap}body{font-family:Arial,sans-serif;background-color:#f6f6f2;color:#333;margin:0;padding:0}.container{width:100%;max-width:1200px;margin:0 auto;padding:20px;box-sizing:border-box}h2{text-align:center;padding:20px;font-size:28px;color:#333}.accordion{margin-top:20px}.floor{margin-bottom:20px;border-radius:5px;overflow:hidden;box-shadow:0 4px 6px #0000001a}.floor-header{padding:15px;color:#fff;font-size:18px;font-weight:700;cursor:pointer;transition:background-color .3s ease;display:flex;justify-content:space-between;align-items:center;border-radius:5px;flex-wrap:nowrap;gap:10px;overflow:hidden}.floor-header h3{margin:0;flex:1;min-width:0;overflow:hidden}.floor-header:hover{background-color:#0f2447}.floor-content{padding:10px 20px;background-color:#f0f0f0;font-size:16px;border-radius:5px}.floor-content ul{list-style-type:none;margin:0;padding:0}.room-item{padding:10px 15px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-radius:5px;transition:background-color .3s ease}.room-item:hover{background-color:#ddd}.floor-header:nth-child(1){background-color:#1a3970}.floor-header:nth-child(2){background-color:#1a3970}.floor-header:nth-child(3){background-color:#1a3970}.floor-header:nth-child(4){background-color:#1a3970}.room-content{display:flex;align-items:center}.room-image{width:50px;height:50px;border-radius:50%;margin-right:15px}.room-name{font-size:16px;flex-grow:1}.floor-header-text{display:flex;flex-grow:1;flex-direction:row;align-items:center}.floor-header-right{display:flex;align-items:center;gap:15px;flex-shrink:0}.book-camp-btn{max-height:40px;background-color:#d40000;color:#fff;padding:10px 20px;border:none;border-radius:5px;cursor:pointer;transition:background-color .3s ease;font-size:16px;font-weight:600;white-space:nowrap;flex-shrink:0}.book-camp-btn:hover{background-color:#0f2447}.dropdown-arrow{display:flex;align-items:center;justify-content:center;color:#fff;transition:transform .3s ease;flex-shrink:0}.dropdown-arrow svg{width:24px;height:24px}.dropdown-arrow.open{transform:rotate(180deg)}input[type=checkbox]{width:20px;height:20px;cursor:pointer;transition:all .2s ease}@media(max-width:768px){.container{width:100%;padding:15px}h2{font-size:24px;padding:15px 10px}.floor-header{font-size:16px;padding:12px;flex-direction:row;gap:0px}.floor-header h3{width:100%}.floor-header-right{gap:10px}.book-camp-btn{font-size:14px;padding:8px 15px;max-height:none}.dropdown-arrow svg{width:20px;height:20px}.room-item{font-size:14px;padding:8px 12px}.room-image{width:40px;height:40px;margin-right:10px}button{font-size:14px;padding:8px 15px}.booking-form-container{margin:15px;padding:15px}.hour-badge{min-width:50px;padding:6px 10px;font-size:12px}.available-hours{gap:8px}}@media(max-width:480px){.container{padding:10px}h2{font-size:20px;padding:10px 5px}.floor-header{font-size:14px;padding:10px}.floor-header-right{gap:8px}.book-camp-btn{font-size:12px;padding:6px 12px;max-height:none}.dropdown-arrow svg{width:18px;height:18px}.room-item{font-size:13px;padding:6px 10px}.room-image{width:35px;height:35px;margin-right:8px}.booking-form-btn{font-size:16px;padding:14px 24px;margin:20px auto}.hour-badge{min-width:45px;padding:5px 8px;font-size:11px}}.booking-form-btn{display:block;max-width:400px;margin:30px auto;padding:16px 32px;font-size:18px;font-weight:600;color:#fff;background-color:#d40000;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #1a39704d;text-transform:uppercase;letter-spacing:.5px}.booking-form-btn:hover{background-color:#0f2447;transform:translateY(-2px);box-shadow:0 6px 18px #1a397066}.booking-form-btn:active{transform:translateY(0);box-shadow:0 2px 8px #1a39704d}.booking-form-btn:disabled{background-color:#bdc3c7;color:#7f8c8d;cursor:not-allowed;transform:none;box-shadow:none}input[type=checkbox]{width:18px;height:18px}.booking-form-container{max-width:800px;margin:40px auto;padding:30px;background-color:#fff;border-radius:10px;box-shadow:0 4px 6px #0000001a}.booking-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:#333;font-size:16px}.form-input{padding:12px;border:2px solid #ddd;border-radius:5px;font-size:16px;transition:border-color .3s ease}.form-input:focus{outline:none;border-color:#1a3970}.form-input select{cursor:pointer}.date-input{cursor:pointer;font-size:18px;padding:15px 20px;background-color:#fff;position:relative;min-height:50px;font-weight:500}.date-input:hover{border-color:#1a3970;background-color:#f9f9f9;box-shadow:0 2px 4px #1a39701a}.date-input:focus{border-color:#1a3970;box-shadow:0 0 0 3px #1a397033;background-color:#fff}.date-input::-webkit-calendar-picker-indicator{cursor:pointer;font-size:20px;padding:5px;opacity:.7;transition:opacity .3s ease}.date-input::-webkit-calendar-picker-indicator:hover{opacity:1}.date-input::-webkit-datetime-edit{padding:0;font-size:18px;color:#333}.date-input::-webkit-datetime-edit-fields-wrapper{padding:0}.date-input::-webkit-datetime-edit-text{color:#666;padding:0 5px}.date-input::-webkit-datetime-edit-month-field,.date-input::-webkit-datetime-edit-day-field,.date-input::-webkit-datetime-edit-year-field{padding:0 3px;color:#333}.date-input::-moz-placeholder{color:#999}.date-input:focus::-webkit-calendar-picker-indicator{opacity:1}.availability-info{background-color:#e8f5e9;padding:20px;border-radius:5px;margin:20px 0}.availability-info h3{margin-top:0;color:#2e7d32}.available-hours{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.hour-badge{padding:8px 12px;border-radius:20px;font-weight:600;font-size:14px;min-width:60px;text-align:center;display:inline-block;box-sizing:border-box;flex-shrink:0}.hour-badge.available{background-color:#4caf50;color:#fff}.hour-badge.unavailable{background-color:#d40000;color:#fff}.unavailable-info{background-color:#fff3e0;padding:15px;border-radius:5px;margin:15px 0}.unavailable-info h4{margin-top:0;color:#e65100}.unavailable-info ul{margin:10px 0;padding-left:20px}.unavailable-info li{margin:5px 0;color:#666}.no-availability{background-color:#ffe5e5;padding:20px;border-radius:5px;text-align:center;color:#d40000;font-weight:600}.loading-message{text-align:center;padding:20px;color:#666;font-style:italic}.error-message{background-color:#ffe5e5;color:#d40000;padding:15px;border-radius:5px;margin:15px 0;border-left:4px solid #d40000}.conflict-details{background-color:#fff3e0;padding:20px;border-radius:5px;margin:20px 0;border-left:4px solid #ff9800}.conflict-details h4{margin-top:0;color:#e65100}.conflict-details ul{margin:10px 0;padding-left:20px}.conflict-details li{margin:8px 0;color:#666}.conflict-details p{margin-top:15px;font-weight:600;color:#e65100}.form-actions{display:flex;gap:15px;justify-content:flex-end;margin-top:20px}.btn-primary{background-color:#1a3970;color:#fff;padding:12px 30px;border:none;border-radius:5px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease}.btn-primary:hover:not(:disabled){background-color:#0f2447}.btn-primary:disabled{background-color:#ccc;cursor:not-allowed}.btn-secondary{background-color:#95a5a6;color:#fff;padding:12px 30px;border:none;border-radius:5px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease}.btn-secondary:hover{background-color:#7f8c8d}@media(max-width:768px){.booking-form-container{margin:15px;padding:15px;max-width:100%;box-sizing:border-box}.form-actions{flex-direction:column;gap:10px}.btn-primary,.btn-secondary{width:100%;box-sizing:border-box}.available-hours{justify-content:center;gap:8px}.form-input,.date-input{width:100%;box-sizing:border-box}}@media(max-width:480px){.booking-form-container{margin:10px;padding:12px}.form-group label{font-size:14px}.form-input,.date-input{font-size:16px;padding:10px}.room-name{font-size:13px}}.admin-dashboard{padding:20px;max-width:100%;width:100%;margin:0 auto;background-color:#f5f5f5;min-height:calc(100vh - 80px);box-sizing:border-box;overflow-x:hidden}.admin-dashboard-header{display:flex;flex-direction:row;gap:15px;margin-bottom:20px;padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;justify-content:space-between;align-items:center;flex-wrap:nowrap;width:100%;box-sizing:border-box}.admin-dashboard-header h1{margin:0;color:#333;font-size:28px;flex-shrink:0}.calendar-navigation,.header-top{flex:1 1 auto}.header-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.view-controls{display:flex;gap:10px;flex-shrink:0}.view-btn{padding:10px 20px;border:2px solid #1a3970;background:#fff;color:#1a3970;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .3s ease}.view-btn:hover,.view-btn.active{background:#1a3970;color:#fff}.calendar-navigation{display:flex;align-items:center;justify-content:center;flex-wrap:nowrap}.nav-btn{padding:8px 16px;border:1px solid #ddd;background:#fff;color:#333;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s ease}.nav-btn:hover{background:#f0f0f0;border-color:#1a3970}.today-btn{background:#1a3970;color:#fff;border-color:#1a3970}.today-btn:hover{background:#0f2447}.current-date-display{font-size:18px;font-weight:600;color:#333;margin:0 20px}.room-filter{display:flex;align-items:center;gap:10px;margin-left:20px}.room-filter label{font-size:14px;font-weight:500;color:#333}.room-select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;background:#fff;color:#333;font-size:14px;cursor:pointer;transition:border-color .2s ease;min-width:200px}.room-select:hover{border-color:#1a3970}.room-select:focus{outline:none;border-color:#1a3970;box-shadow:0 0 0 2px #1a397033}.calendar-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden;width:100%;max-width:100%;box-sizing:border-box;overflow-x:auto}.calendar-day-view{padding:20px}.calendar-day-header{margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #e0e0e0}.calendar-day-header h2{margin:0;color:#333;font-size:24px}.calendar-hours{max-height:600px;overflow-y:auto}.calendar-hour-row{display:flex;border-bottom:1px solid #e0e0e0;height:60px;min-height:60px;max-height:60px}.hour-label{width:120px;padding:10px;font-weight:500;color:#666;border-right:1px solid #e0e0e0;background:#f9f9f9;flex-shrink:0}.hour-content{flex:1;padding:5px 10px;display:flex;flex-direction:column;gap:5px;overflow:hidden;overflow-y:auto}.calendar-week-view{padding:20px}.calendar-week-header{display:grid;grid-template-columns:120px repeat(7,1fr);border-bottom:2px solid #e0e0e0;background:#f9f9f9;min-width:800px;width:100%;box-sizing:border-box}.week-hour-label{width:120px;padding:10px;font-weight:500;color:#666;border-right:1px solid #e0e0e0;background:#f9f9f9;flex-shrink:0}.week-day-header{padding:15px 10px;text-align:center;border-right:1px solid #e0e0e0}.week-day-name{font-size:12px;color:#999;text-transform:uppercase;margin-bottom:5px}.week-day-number{font-size:20px;font-weight:600;color:#333}.calendar-week-body{max-height:600px;overflow-y:auto}.week-hour-row{display:grid;grid-template-columns:120px repeat(7,1fr);border-bottom:1px solid #e0e0e0;height:50px;min-height:50px;max-height:50px;min-width:800px;width:100%;box-sizing:border-box}.week-hour-cell{padding:5px;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;gap:3px;overflow:hidden;overflow-y:auto;height:100%}.calendar-month-view{padding:20px}.calendar-month-header{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:2px solid #e0e0e0;background:#f9f9f9;width:100%;box-sizing:border-box}.month-day-header{padding:15px;text-align:center;font-weight:600;color:#666;border-right:1px solid #e0e0e0}.month-day-header:last-child{border-right:none}.calendar-month-body{display:grid;grid-template-columns:repeat(7,1fr);width:100%;box-sizing:border-box}.month-day-cell{height:120px;min-height:120px;max-height:120px;border-right:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;padding:8px;background:#fff;position:relative;overflow:hidden}.month-day-cell.empty{background:#f9f9f9}.month-day-cell.today{background:#e8edf5;border:2px solid #1a3970}.month-day-number{font-weight:600;color:#333;margin-bottom:5px;font-size:16px}.month-day-cell.today .month-day-number{color:#1a3970;font-weight:700}.month-day-bookings{display:flex;flex-direction:column;gap:3px;margin-top:5px;overflow:hidden;overflow-y:auto;max-height:calc(100% - 25px)}.booking-event{padding:8px;border-radius:4px;margin-bottom:5px;font-size:12px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;overflow:hidden;max-width:100%;box-sizing:border-box}.booking-event:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026;opacity:.9}.booking-event:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.booking-event-title{font-weight:600;margin-bottom:3px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.booking-event-details{font-size:11px;color:#ffffffe6;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.booking-event-user{font-size:10px;color:#fffc;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.booking-event-time{font-size:10px;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.booking-event-small{padding:4px 6px;border-radius:3px;margin-bottom:3px;font-size:10px;display:flex;flex-direction:column;gap:2px;cursor:pointer;overflow:hidden;max-width:100%;box-sizing:border-box;height:36px;min-height:36px;max-height:36px;flex:0 0 auto;transition:transform .2s ease,box-shadow .2s ease}.booking-event-small:hover{transform:translateY(-1px);box-shadow:0 2px 4px #00000026;opacity:.9}.booking-time-small{font-weight:600;color:#fff}.booking-room-small{font-size:9px;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking-more{font-size:10px;color:#666;font-style:italic;margin-top:3px}.booking-pending{background:#ff9800;border-left:3px solid #f57c00}.booking-approved{background:#4caf50;border-left:3px solid #388e3c}.booking-cancelled{background:#9e9e9e;border-left:3px solid #616161}.booking-event.booking-gender-male,.booking-event-small.booking-gender-male{background:#2196f3;border-left:3px solid #1565c0}.booking-event.booking-gender-female,.booking-event-small.booking-gender-female{background:#e91e63;border-left:3px solid #ad1457}.booking-legend{display:flex;gap:20px;justify-content:center;margin-top:20px;padding:15px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.legend-item{display:flex;align-items:center;gap:8px}.legend-color{width:20px;height:20px;border-radius:4px;display:inline-block}.legend-color.booking-pending{background:#ff9800}.legend-color.booking-approved{background:#4caf50}.legend-color.booking-cancelled{background:#9e9e9e}.admin-dashboard-loading,.admin-dashboard-error{text-align:center;padding:40px;font-size:18px}.admin-dashboard-error{color:#d40000}.booking-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.date-nav{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.booking-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;max-width:600px;width:calc(100% - 40px);max-height:90vh;overflow-y:auto;position:relative;box-sizing:border-box;margin:0 auto}.booking-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e0e0e0}.booking-modal-header h2{margin:0;color:#333;font-size:24px}.modal-close-btn{background:none;border:none;font-size:32px;color:#666;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.modal-close-btn:hover{background:#f0f0f0;color:#333}.booking-modal-content{padding:20px}.booking-detail-item{display:flex;margin-bottom:15px;align-items:flex-start}.booking-detail-item label{font-weight:600;color:#666;min-width:120px;margin-right:15px}.booking-detail-item span{color:#333;flex:1}.booking-modal-actions{padding:20px;border-top:1px solid #e0e0e0;display:flex;flex-direction:column;gap:15px}.status-actions{display:flex;flex-direction:column;gap:10px}.status-actions label{font-weight:600;color:#333;margin-bottom:5px}.status-buttons{display:flex;gap:10px;flex-wrap:wrap}.status-btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.status-btn.status-pending{background:#ff9800;color:#fff}.status-btn.status-pending:hover{background:#f57c00}.status-btn.status-approved{background:#4caf50;color:#fff}.status-btn.status-approved:hover{background:#388e3c}.status-btn.status-cancelled{background:#9e9e9e;color:#fff}.status-btn.status-cancelled:hover{background:#616161}.delete-btn{padding:10px 20px;background:#d40000;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;align-self:flex-start}.delete-btn:hover{background:#a30000}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.status-badge.status-pending{background:#ff9800;color:#fff}.status-badge.status-approved{background:#4caf50;color:#fff}.status-badge.status-cancelled{background:#9e9e9e;color:#fff}.booking-edit-form{display:flex;flex-direction:column;gap:15px}.edit-form-group{display:flex;flex-direction:column;gap:5px}.edit-form-group label{font-weight:600;color:#333;font-size:14px}.edit-form-group .form-input{padding:10px;border:1px solid #ddd;border-radius:4px;font-size:14px;transition:border-color .2s ease}.edit-form-group .form-input:focus{outline:none;border-color:#1a3970;box-shadow:0 0 0 2px #1a397033}.edit-form-group .date-input{font-size:16px;cursor:pointer}.loading-message{color:#666;font-style:italic;padding:10px 0}.edit-actions{display:flex;gap:10px;width:100%}.save-btn{padding:10px 20px;background:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;flex:1}.save-btn:hover{background:#388e3c}.cancel-edit-btn{padding:10px 20px;background:#9e9e9e;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;flex:1}.cancel-edit-btn:hover{background:#616161}.edit-btn{padding:10px 20px;background:#1a3970;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;margin-bottom:15px;width:100%}.edit-btn:hover{background:#0f2447}.delete-all-btn{padding:10px 20px;background:#d40000;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;transition:background-color .3s ease}.delete-all-btn:hover{background:#a30000}@media(max-width:768px){.admin-dashboard{padding:15px}.admin-dashboard-header{padding:15px;flex-direction:column;align-items:flex-start}.admin-dashboard-header h1{font-size:24px;width:100%}.header-top{flex-direction:row;gap:15px;width:100%;overflow:hidden;flex-wrap:wrap}.view-controls{width:100%;justify-content:center;gap:8px;flex-direction:row}.view-btn{width:100%;text-align:center}.calendar-navigation{flex-direction:row;gap:10px;width:100%;flex-wrap:wrap}.date-nav{display:flex;gap:5px}.current-date-display{width:100%;text-align:center;margin:10px 0;font-size:16px}.room-filter{width:100%;margin:10px 0 0;justify-content:center;flex-direction:row;align-items:center}.room-select{min-width:150px;width:100%;max-width:100%}.calendar-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.calendar-week-header,.week-hour-row{grid-template-columns:60px repeat(7,minmax(80px,1fr));min-width:620px}.week-hour-label{width:60px;font-size:11px;padding:5px}.week-day-header{padding:10px 5px;font-size:11px}.week-day-number{font-size:16px}.calendar-month-header,.calendar-month-body{min-width:100%}.month-day-cell{height:70px;min-height:70px;max-height:70px;padding:5px}.month-day-number{font-size:14px}.booking-event-small{font-size:9px;padding:3px 4px}.booking-modal{width:calc(100% - 20px);max-height:95vh}.booking-modal-header{padding:15px}.booking-modal-header h2{font-size:20px}.booking-modal-content{padding:15px}.booking-detail-item{flex-direction:column;gap:5px}.booking-detail-item label{min-width:0;margin-right:0}.status-buttons{flex-direction:column}.status-btn{width:100%}}@media(max-width:480px){.admin-dashboard{padding:10px}.admin-dashboard-header{padding:12px}.admin-dashboard-header h1{font-size:20px}.calendar-week-header,.week-hour-row{grid-template-columns:50px repeat(7,minmax(60px,1fr));min-width:470px}.week-hour-label{width:50px;font-size:10px;padding:3px}.week-day-header{padding:8px 3px}.week-day-number{font-size:14px}.month-day-cell{height:60px;min-height:60px;max-height:60px;padding:4px}.month-day-number{font-size:12px}.booking-event-small{font-size:8px;padding:2px 3px}.booking-modal{width:calc(100% - 10px);border-radius:4px}.booking-modal-header{padding:12px}.booking-modal-header h2{font-size:18px}.booking-modal-content{padding:12px}}
