body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.custom-alert{align-items:center;animation:slideInRight .3s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;box-shadow:0 4px 20px #00000026;display:flex;justify-content:space-between;max-width:500px;min-width:350px;padding:16px 20px;position:fixed;right:20px;top:20px;z-index:9999}.custom-alert.alert-exit{animation:slideOutRight .3s ease-out}.alert-content{align-items:center;display:flex;flex:1 1;gap:12px}.alert-icon{flex-shrink:0;font-size:1.5rem}.alert-message{font-size:1rem;font-weight:500;line-height:1.4}.alert-close{background:#0000;border:none;border-radius:4px;color:inherit;cursor:pointer;font-size:1.2rem;margin-left:12px;opacity:.7;padding:4px 8px;transition:all .2s}.alert-close:hover{background:#0000001a;opacity:1}.custom-alert-success{background:linear-gradient(135deg,#d4edda,#c3e6cb);border-left:4px solid #28a745;color:#155724}.custom-alert-error{background:linear-gradient(135deg,#f8d7da,#f5c6cb);border-left:4px solid #dc3545;color:#721c24}.custom-alert-warning{background:linear-gradient(135deg,#fff3cd,#ffeaa7);border-left:4px solid #ffc107;color:#856404}.custom-alert-info{background:linear-gradient(135deg,#d1ecf1,#bee5eb);border-left:4px solid #17a2b8;color:#0c5460}@keyframes slideInRight{0%{opacity:0;transform:translateX(400px)}to{opacity:1;transform:translateX(0)}}@keyframes slideOutRight{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(400px)}}.custom-alert:after{animation:progress 3s linear;background:currentColor;bottom:0;content:"";height:3px;left:0;opacity:.5;position:absolute}@keyframes progress{0%{width:100%}to{width:0}}@media (max-width:768px){.custom-alert{left:10px;max-width:none;min-width:auto;right:10px;top:10px}@keyframes slideInRight{0%{opacity:0;transform:translateY(-100px)}to{opacity:1;transform:translateY(0)}}@keyframes slideOutRight{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100px)}}}.error-boundary{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.error-boundary-content{animation:slideIn .5s ease-out;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:600px;padding:40px;text-align:center;width:100%}@keyframes slideIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.error-icon{animation:shake .5s;font-size:80px;margin-bottom:20px}.error-boundary-content h1{color:#333;font-size:32px;margin-bottom:15px}.error-message{color:#666;font-size:18px;line-height:1.6;margin-bottom:30px}.error-details{background:#f5f5f5;border:1px solid #ddd;border-radius:8px;margin:20px 0;padding:15px;text-align:left}.error-details summary{color:#e74c3c;cursor:pointer;font-weight:700;margin-bottom:10px}.error-stack{background:#2d2d2d;border-radius:5px;color:#f8f8f2;font-family:Courier New,monospace;font-size:12px;line-height:1.5;max-height:300px;overflow-x:auto;overflow-y:auto;padding:15px}.error-actions{display:flex;flex-wrap:wrap;gap:15px;justify-content:center;margin:30px 0}.error-actions button{border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;padding:12px 30px;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2)}.btn-primary:hover{box-shadow:0 5px 15px #667eea66}.btn-secondary{background:#f0f0f0;color:#333}.btn-secondary:hover{background:#e0e0e0}.error-help{color:#999;font-size:14px;margin-top:20px}@media (max-width:600px){.error-boundary-content{padding:30px 20px}.error-icon{font-size:60px}.error-boundary-content h1{font-size:24px}.error-message{font-size:16px}.error-actions{flex-direction:column}.error-actions button{width:100%}}.navbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#1e3a8a,#3b82f6);box-shadow:0 4px 20px #1e3a8a4d;padding:1rem 0;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.navbar-container{justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 2rem;position:relative}.navbar-container,.navbar-logo{align-items:center;display:flex}.navbar-logo{color:#fff;font-size:1.4rem;font-weight:800;gap:.75rem;text-decoration:none;transition:all .3s;z-index:1002}.navbar-logo:hover{filter:drop-shadow(0 5px 15px rgba(255,255,255,.3));transform:scale(1.05)}.navbar-logo-image{background:#fff;border-radius:50%;box-shadow:0 4px 15px #ffffff4d;height:50px;object-fit:contain;padding:3px;transition:all .3s;width:50px}.navbar-logo:hover .navbar-logo-image{transform:rotate(1turn)}.navbar-logo-text{align-items:center;display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;text-shadow:0 2px 10px #0003;white-space:nowrap}.hamburger{background:#0000;border:none;cursor:pointer;display:none;flex-direction:column;height:24px;justify-content:space-between;padding:0;position:relative;width:30px;z-index:1002}.hamburger span{background:#fff;border-radius:3px;height:3px;transform-origin:center;transition:all .3s ease;width:100%}.hamburger.active span:first-child{transform:translateY(10.5px) rotate(45deg)}.hamburger.active span:nth-child(2){opacity:0;transform:translateX(-20px)}.hamburger.active span:nth-child(3){transform:translateY(-10.5px) rotate(-45deg)}.menu-overlay{animation:fadeIn .3s ease;background:#00000080;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:999}.navbar-menu{align-items:center;display:flex;flex-wrap:nowrap;gap:1.5rem}.nav-link{align-items:center;color:#ffffffe6;display:inline-flex;font-weight:600;justify-content:center;overflow:hidden;padding:.6rem 1.2rem;position:relative;text-decoration:none;white-space:nowrap}.nav-link,.nav-link:before{border-radius:8px;transition:all .3s}.nav-link:before{background:#ffffff26;content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}.nav-link:hover:before{left:0}.nav-link:hover{color:#fff;text-shadow:0 2px 10px #0000004d;transform:translateY(-2px)}.admin-link{align-items:center;background:linear-gradient(135deg,#fbbf24,#f59e0b);box-shadow:0 3px 15px #fbbf2466;color:#1e3a8a!important;display:inline-flex;font-weight:700;justify-content:center;white-space:nowrap}.admin-link:hover{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 5px 20px #fbbf2499;transform:translateY(-3px)}.nav-user{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:2px solid #fff3;border-radius:8px;font-size:.95rem;font-weight:600;padding:.6rem 1.2rem}.nav-logout,.nav-user{align-items:center;color:#fff;display:inline-flex;white-space:nowrap}.nav-logout{background:linear-gradient(135deg,#dc2626,#b91c1c);border:none;border-radius:8px;box-shadow:0 3px 15px #dc26264d;cursor:pointer;font-weight:700;justify-content:center;padding:.7rem 1.4rem;transition:all .3s}.nav-logout:hover{background:linear-gradient(135deg,#b91c1c,#991b1b);box-shadow:0 6px 20px #dc262680;transform:translateY(-3px)}@media (max-width:1024px){.navbar-container{padding:0 1.5rem}.navbar-menu{gap:1rem}.nav-link{font-size:.9rem;padding:.55rem 1rem}.nav-user{font-size:.85rem;padding:.55rem 1rem}.nav-logout{font-size:.9rem;padding:.6rem 1.2rem}}@media (max-width:768px){.navbar{padding:.75rem 0}.navbar-container{padding:0 1rem}.hamburger{display:flex}.menu-overlay{display:block}.navbar-logo-image{height:40px;width:40px}.navbar-logo-text{font-size:1.1rem}.navbar-menu{align-items:stretch;background:linear-gradient(180deg,#1e3a8a,#1e40af);box-shadow:-5px 0 25px #0000004d;flex-direction:column;gap:0;height:100vh;justify-content:flex-start;overflow-y:auto;padding:80px 0 2rem;position:fixed;right:-100%;top:0;transition:right .3s ease;width:280px;z-index:1001}.navbar-menu.active{right:0}.nav-link{border-bottom:1px solid #ffffff1a;border-radius:0;font-size:1rem;justify-content:flex-start;padding:1rem 1.5rem;width:100%}.nav-link:hover{background:#ffffff1a;transform:translateX(5px)}.admin-link{background:linear-gradient(135deg,#fbbf24,#f59e0b);border-bottom:none;border-radius:8px;margin:.5rem 1rem}.admin-link:hover{transform:translateX(0) translateY(-2px)}.nav-user{background:#fff3;font-size:.9rem;margin:1rem 1.5rem .5rem;text-align:center}.nav-logout,.nav-user{padding:.75rem 1rem;width:auto}.nav-logout{font-size:.95rem;margin:.5rem 1.5rem 1rem}.nav-logout:hover{transform:translateY(-2px)}}@media (max-width:480px){.navbar-logo-image{height:35px;width:35px}.navbar-logo-text{font-size:.95rem}.navbar-menu{width:260px}.nav-link{font-size:.95rem;padding:.9rem 1.2rem}}@media (max-width:360px){.navbar-container{padding:0 .75rem}.navbar-logo-text{font-size:.85rem}.navbar-menu{width:240px}.hamburger{height:20px;width:26px}.hamburger span{height:2.5px}}.auth-container{align-items:center;background:linear-gradient(135deg,#1e3a8a,#3b82f6);display:flex;justify-content:center;min-height:100vh;padding:2rem}.auth-card{animation:fadeIn .5s ease;background:#fff;border-radius:12px;box-shadow:0 10px 40px #1e3a8a4d;max-width:450px;padding:3rem;width:100%}.auth-logo{margin-bottom:2rem;text-align:center}.logo-image{animation:fadeInDown .5s ease;height:100px;margin-bottom:1rem;object-fit:contain;width:100px}.auth-logo h1{color:#1e3a8a;font-size:1.8rem;font-weight:700;margin:.5rem 0}.field-error{animation:shake .3s;background-color:#fee2e2;border-left:3px solid #dc2626;border-radius:4px;color:#dc2626;padding:.5rem}.field-error,.field-hint{display:block;font-size:.875rem;margin-top:.5rem}.field-hint{color:#6b7280;font-style:italic}.input-error,.input-error:focus{background-color:#fef2f2!important;border-color:#dc2626!important}.auth-subtitle{color:#64748b;font-size:.9rem;margin-top:.5rem}.auth-card h1{color:#1e3a8a;font-weight:700;margin-bottom:2rem;text-align:center}.form-group{margin-bottom:1.5rem}.form-group input,.form-group select{box-sizing:border-box;padding:.75rem;transition:all .3s;width:100%}.form-group input:focus,.form-group select:focus{box-shadow:0 0 0 3px #1e3a8a1a}.submit-btn{background:linear-gradient(135deg,#1e3a8a,#3b82f6);border:none;border-radius:8px;box-shadow:0 4px 12px #1e3a8a4d;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;margin-top:1rem;padding:.75rem;transition:all .3s;width:100%}.submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#1e40af,#2563eb);box-shadow:0 6px 16px #1e3a8a66;transform:translateY(-2px)}.submit-btn:disabled{background:#94a3b8;box-shadow:none;cursor:not-allowed;opacity:.6}.error-message{animation:shake .3s ease;margin-bottom:1rem;padding:.75rem 1rem}.auth-link{color:#64748b;margin-top:1.5rem;text-align:center}.auth-link a{color:#1e3a8a;font-weight:700;text-decoration:none;transition:all .3s}.auth-link a:hover{color:#1e40af;text-decoration:underline}.demo-users{background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;font-size:.85rem;margin-top:1.5rem;padding:1rem 1.25rem}.demo-users p{color:#1e3a8a;font-weight:700;margin:0 0 .5rem}.demo-users small{color:#475569;display:block;margin-top:.25rem}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}@media (max-width:768px){.auth-container{padding:1.5rem}.auth-card{max-width:100%;padding:2.5rem 2rem}.logo-image{height:85px;width:85px}.auth-logo h1{font-size:1.6rem}.auth-subtitle{font-size:.85rem}.form-group input,.form-group select,.submit-btn{font-size:.95rem;padding:.7rem}.demo-users{font-size:.8rem;padding:.9rem 1rem}}@media (max-width:600px){.auth-container{padding:1rem}.auth-card{padding:2rem 1.5rem}.logo-image{height:75px;width:75px}.auth-logo h1{font-size:1.4rem}.auth-subtitle{font-size:.8rem}.form-group{margin-bottom:1.25rem}.form-group label{font-size:.9rem}.form-group input,.form-group select,.submit-btn{font-size:.9rem;padding:.65rem}.error-message{font-size:.85rem;padding:.65rem .9rem}.demo-users{font-size:.75rem;padding:.8rem .9rem}}@media (max-width:400px){.auth-card{padding:1.5rem 1rem}.logo-image{height:65px;width:65px}.auth-logo h1{font-size:1.2rem}.auth-subtitle{font-size:.75rem}.form-group{margin-bottom:1rem}.form-group label{font-size:.85rem;margin-bottom:.4rem}.form-group input,.form-group select,.submit-btn{font-size:.85rem;padding:.6rem}.auth-link{font-size:.85rem;margin-top:1.25rem}.demo-users{font-size:.7rem;padding:.7rem .8rem}}@media (max-width:360px){.auth-container{padding:.75rem}.auth-card{padding:1.25rem .85rem}.logo-image{height:60px;width:60px}.auth-logo h1{font-size:1.1rem}}.dashboard{margin:0 auto;max-width:1400px;padding:30px 20px}.dashboard-header{margin-bottom:30px}.dashboard-header h1{color:#2d3748;font-size:2.5rem;margin-bottom:10px}.welcome-text{color:#4a5568;font-size:1.1rem}.welcome-text strong{color:#667eea}.quick-actions-section{margin-bottom:40px}.quick-actions-section h2{color:#2d3748}.quick-actions{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.action-btn{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;display:flex;gap:15px;padding:20px;text-align:left;transition:all .3s ease}.action-btn:hover{box-shadow:0 8px 20px #0000001a;transform:translateY(-3px)}.action-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;color:#fff}.action-btn.secondary{border-color:#48bb78}.action-btn.secondary:hover{background:#f0fff4;border-color:#38a169}.action-btn.admin{border-color:#ed8936}.action-btn.admin:hover{background:#fffaf0;border-color:#dd6b20}.btn-icon{flex-shrink:0;font-size:2.5rem}.btn-content{display:flex;flex-direction:column;gap:5px}.btn-content strong{display:block;font-size:1.1rem}.btn-content small{color:#fff;font-size:.85rem;opacity:.8}.action-btn.primary .btn-content small{opacity:.9}.stats-section{margin-top:40px}.stats-section h2{color:#2d3748;font-size:1.5rem;margin-bottom:20px}.stat-card{border:2px solid #e2e8f0;transition:all .3s ease}.stat-card:hover{box-shadow:0 8px 20px #0000001a}.stat-card.users{border-left:4px solid #667eea}.stat-card.rooms{border-left:4px solid #48bb78}.stat-card.bookings{border-left:4px solid #4299e1}.stat-card.pending{border-left:4px solid #ed8936}.stat-card.approved{border-left:4px solid #38b2ac}.stat-content h3{color:#718096;font-size:.9rem}.stat-number{color:#2d3748}.stat-content small{color:#a0aec0}.user-info-section{margin-top:40px}.user-info-section h2{color:#2d3748;font-size:1.5rem;margin-bottom:20px}.info-card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;max-width:500px;padding:25px}.info-card p{color:#4a5568;font-size:1rem;margin:12px 0}.info-card strong{color:#2d3748;margin-right:10px}.rooms-section{margin-top:40px}.rooms-section h2{color:#2d3748;font-size:1.5rem;margin-bottom:10px}.section-subtitle{color:#718096;font-size:.95rem;margin-bottom:20px}.rooms-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.room-card{display:flex;flex-direction:column;gap:15px;padding:20px;transition:all .3s ease}.room-card:hover{border-color:#667eea;box-shadow:0 10px 25px #00000026}.room-card-header{border-bottom:2px solid #e2e8f0;padding-bottom:12px}.room-card-header h3{color:#2d3748;font-size:1.3rem}.room-capacity{background:#edf2f7;border-radius:20px;color:#4a5568;font-size:.9rem;font-weight:600;padding:5px 12px}.room-card-body{flex:1 1}.room-name{color:#4a5568;font-size:1.05rem;font-weight:500;margin-bottom:8px}.room-equipment{color:#718096;font-size:.9rem;line-height:1.6}.btn-view-calendar{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;flex:1 1;font-size:1rem;font-weight:600;gap:8px;justify-content:center;padding:12px 20px;transition:all .3s ease}.btn-view-calendar:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.btn-view-calendar:active{transform:translateY(0)}.loading{color:#667eea}@media (max-width:768px){.dashboard{padding:20px 15px}.dashboard-header h1{font-size:2rem}.quick-actions,.rooms-grid,.stats-grid{grid-template-columns:1fr}.stat-number{font-size:2rem}.action-btn{padding:15px}.btn-icon{font-size:2rem}}.available-slots-info p:before{content:"ðŸ’¡";font-size:1.1rem}.slot-badge:hover{background:#1e3a8a;box-shadow:0 4px 8px #1e3a8a4d;color:#fff;transform:translateY(-2px)}.checking-message p{align-items:center;color:#1e40af;display:flex;font-weight:700;gap:.5rem;justify-content:center;margin:0}.checking-message p:before{animation:spin 2s linear infinite;content:"ðŸ”„";display:inline-block}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.upload-hint{color:#64748b;font-size:.85rem;font-style:italic}.preview-label{color:#1e3a8a;font-size:.95rem;font-weight:700;margin:0}.btn-remove-image{align-self:center;background:linear-gradient(135deg,#dc2626,#b91c1c);border:none;border-radius:6px;box-shadow:0 2px 8px #dc26264d;color:#fff;cursor:pointer;font-weight:600;padding:.5rem 1rem;transition:all .3s;width:-webkit-fit-content;width:fit-content}.btn-remove-image:hover{background:linear-gradient(135deg,#b91c1c,#991b1b);box-shadow:0 4px 12px #dc262666;transform:translateY(-2px)}.btn-submit:hover:not(:disabled){box-shadow:0 6px 16px #1e3a8a66}.btn-submit:disabled{box-shadow:none}.btn-cancel{box-shadow:0 2px 8px #0000001a}.btn-cancel:hover{box-shadow:0 4px 12px #00000026}.btn-new{background:linear-gradient(135deg,#1e3a8a,#3b82f6);box-shadow:0 4px 12px #1e3a8a4d;color:#fff;padding:.75rem 1.5rem}.btn-new:hover{background:linear-gradient(135deg,#1e40af,#2563eb);box-shadow:0 6px 16px #1e3a8a66;transform:translateY(-2px)}.btn-edit{background:linear-gradient(135deg,#0891b2,#0e7490);box-shadow:0 2px 8px #0891b24d;font-size:.9rem;padding:.5rem 1rem}.btn-edit:hover{background:linear-gradient(135deg,#0e7490,#155e75);box-shadow:0 4px 12px #0891b266;transform:translateY(-2px)}.btn-delete{background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 2px 8px #dc26264d;font-size:.9rem;padding:.5rem 1rem}.btn-delete:hover{background:linear-gradient(135deg,#b91c1c,#991b1b);box-shadow:0 4px 12px #dc262666;transform:translateY(-2px)}.subtitle{color:#64748b;font-size:1rem;margin-top:.5rem}.filter-section{align-items:end}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{color:#334155;font-size:.9rem;font-weight:600}.filter-input,.filter-select{background:#fff;border:2px solid #cbd5e0;border-radius:8px;font-size:1rem;padding:.75rem;transition:all .3s}.filter-input:focus,.filter-select:focus{border-color:#1e3a8a;box-shadow:0 0 0 3px #1e3a8a1a;outline:none}.filter-input::placeholder{color:#94a3b8}.btn-clear-filter{align-self:end;background:linear-gradient(135deg,#dc2626,#b91c1c);border:none;border-radius:8px;box-shadow:0 2px 8px #dc26264d;color:#fff;cursor:pointer;font-weight:700;padding:.75rem 1.5rem;transition:all .3s}.btn-clear-filter:hover{background:linear-gradient(135deg,#b91c1c,#991b1b);box-shadow:0 4px 12px #dc262666;transform:translateY(-2px)}.results-info{background:#f8fafc;border-left:4px solid #1e3a8a;border-radius:8px;margin-bottom:1.5rem;padding:1rem 1.5rem}.results-info p{color:#334155;font-size:.95rem;margin:0}.results-info strong{color:#1e3a8a;font-weight:700}.bookings-table-wrapper{overflow:hidden}.bookings-table th{letter-spacing:.5px}.bookings-table tbody tr:last-child{border-bottom:none}.room-info{display:flex;flex-direction:column;gap:4px}.room-info strong{color:#1e3a8a;font-size:1rem;font-weight:700}.room-info small{color:#64748b;font-size:.85rem}.room-link{background:linear-gradient(135deg,#f8fafc,#fff);border:2px solid #e2e8f0;position:relative}.room-link:hover{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-color:#1e3a8a;box-shadow:0 4px 12px #1e3a8a33}.view-calendar-hint{align-items:center;background:#dbeafe;border-radius:4px;color:#1e3a8a;display:inline-flex;font-size:.75rem;font-weight:600;gap:.25rem;margin-top:.25rem;padding:.25rem .5rem;transition:all .3s}.room-link:hover .view-calendar-hint{background:#1e3a8a;color:#fff;transform:scale(1.05)}.user-info{display:flex;flex-direction:column;gap:4px}.user-info strong{color:#1e3a8a;font-weight:700}.user-info small{color:#64748b;font-size:.85rem}.time-slot{color:#1e3a8a;font-weight:700;white-space:nowrap}.purpose-cell{cursor:help;max-width:250px;overflow:hidden;text-overflow:ellipsis}.purpose-cell,.status-badge{white-space:nowrap}.empty-state{box-shadow:0 2px 10px #00000014}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state h3{color:#1e3a8a;font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.empty-state p{color:#64748b;font-size:1rem;margin-bottom:1.5rem}.btn-secondary{background:#fff;border:2px solid #1e3a8a;border-radius:8px;color:#1e3a8a;cursor:pointer;font-weight:700;padding:.75rem 1.5rem;transition:all .3s}.btn-secondary:hover{background:#1e3a8a;box-shadow:0 4px 12px #1e3a8a4d;color:#fff}.bookings-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.booking-card{background:#fff;border-left:4px solid #1e3a8a;border-radius:12px;box-shadow:0 2px 10px #00000014;overflow:hidden;transition:all .3s}.booking-card:hover{box-shadow:0 8px 25px #1e3a8a33;transform:translateY(-5px)}.booking-header{align-items:center;background:linear-gradient(135deg,#1e3a8a,#3b82f6);color:#fff;display:flex;justify-content:space-between;padding:1rem}.booking-header h3{font-size:1.1rem;font-weight:700;margin:0}.status{border-radius:20px;font-size:.8rem;font-weight:700;padding:.35rem .85rem;text-transform:uppercase}.status.pending{background:#fef3c7;color:#92400e}.status.approved{background:#d1fae5;color:#065f46}.status.rejected{background:#fee2e2;color:#991b1b}.booking-details{padding:1.5rem}.booking-details p{color:#64748b;margin:.5rem 0}.booking-details strong{color:#1e3a8a;font-weight:700}.booking-actions{border-top:1px solid #e2e8f0;display:flex;gap:.5rem;padding:1rem}@media (max-width:768px){.bookings-container{padding:1rem}.bookings-header{align-items:flex-start;flex-direction:column;gap:1rem}.bookings-header h1{font-size:1.5rem}.bookings-grid,.filter-section,.form-row{grid-template-columns:1fr}.filter-section{padding:1rem}.bookings-table-wrapper{overflow-x:auto}.bookings-table{min-width:800px}.purpose-cell{max-width:150px}.available-slots-info,.checking-message,.error-message,.warning-message{font-size:.9rem;padding:.75rem 1rem}.slots-list{gap:.4rem}.slot-badge{font-size:.8rem;padding:.4rem .6rem}}.booking-form-container{margin:2rem auto;max-width:800px;padding:0 2rem}.booking-form-card{background:#fff;border-radius:12px;box-shadow:0 2px 10px #00000014;padding:2rem}.booking-form-card h2{align-items:center;color:#1e3a8a;display:flex;font-weight:700;gap:.5rem;margin-bottom:1.5rem}.form-row{grid-gap:1.5rem;gap:1.5rem;margin-bottom:1.5rem}.form-group.full-width{grid-column:1/-1}.form-group label{margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{border:2px solid #cbd5e0;border-radius:8px;font-family:inherit;font-size:1rem;padding:.75rem;transition:all .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#1e3a8a;box-shadow:0 0 0 3px #1e3a8a1a;outline:none}.warning-message{align-items:flex-start;background:linear-gradient(135deg,#fef3c7,#fde68a);border-left:4px solid #f59e0b;border-radius:8px;box-shadow:0 2px 8px #f59e0b26;color:#92400e;display:flex;font-weight:600;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.25rem}.warning-message:before{content:"âš ï¸";flex-shrink:0;font-size:1.2rem}.error-message{align-items:flex-start;background:linear-gradient(135deg,#fee2e2,#fecaca);border-left:4px solid #dc2626;border-radius:8px;box-shadow:0 2px 8px #dc262626;color:#991b1b;display:flex;font-weight:600;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.25rem}.error-message:before{content:"âŒ";flex-shrink:0;font-size:1.2rem}.available-slots-info{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-left:4px solid #1e3a8a;border-radius:8px;box-shadow:0 2px 8px #1e3a8a1a;margin-bottom:1.5rem;padding:1.25rem}.available-slots-info p{align-items:center;color:#1e40af;display:flex;font-weight:700;gap:.5rem;margin:0 0 .75rem}.slots-list{display:flex;flex-wrap:wrap;gap:.5rem}.slot-badge{background:#fff;border:2px solid #1e3a8a;border-radius:20px;box-shadow:0 2px 4px #1e3a8a1a;color:#1e40af;cursor:default;font-size:.85rem;font-weight:700;padding:.5rem .75rem;transition:all .3s}.checking-message{animation:pulse 2s infinite;background:linear-gradient(135deg,#e0e7ff,#c7d2fe);border-left:4px solid #1e3a8a;border-radius:8px;box-shadow:0 2px 8px #1e3a8a1a;margin-bottom:1.5rem;padding:1rem 1.25rem;text-align:center}@keyframes pulse{0%,to{opacity:1}50%{opacity:.85}}.image-upload-container{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.image-input{display:none}.image-upload-btn{align-items:center;background:linear-gradient(135deg,#1e3a8a,#3b82f6);border:none;border-radius:8px;box-shadow:0 2px 8px #1e3a8a4d;color:#fff;cursor:pointer;display:inline-flex;font-weight:600;gap:.5rem;justify-content:center;padding:.75rem 1.5rem;transition:all .3s;width:-webkit-fit-content;width:fit-content}.image-upload-btn:hover{background:linear-gradient(135deg,#1e40af,#2563eb);box-shadow:0 4px 12px #1e3a8a66;transform:translateY(-2px)}.image-preview-container{background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;display:flex;flex-direction:column;gap:.75rem;margin-top:1rem;padding:1rem}.image-preview{border-radius:8px;box-shadow:0 2px 8px #0000001a;display:block;height:auto;margin:0 auto;max-height:300px;max-width:100%;object-fit:contain;width:auto}.form-actions{gap:1rem;margin-top:2rem}.btn-cancel,.btn-delete,.btn-edit,.btn-new,.btn-submit{font-weight:700;padding:.75rem 1.5rem}.btn-submit{background:linear-gradient(135deg,#1e3a8a,#3b82f6);box-shadow:0 4px 12px #1e3a8a4d;color:#fff;flex:1 1}.btn-submit:hover:not(:disabled){background:linear-gradient(135deg,#1e40af,#2563eb);transform:translateY(-2px)}.btn-submit:disabled{background:#94a3b8;cursor:not-allowed;opacity:.6}.btn-cancel{background:#cbd5e0;color:#334155;flex:1 1}.btn-cancel:hover{background:#94a3b8;transform:translateY(-2px)}.bookings-container{margin:2rem auto;max-width:1400px;padding:0 2rem}.bookings-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.bookings-header h1{color:#1e3a8a;font-size:2rem;font-weight:700;margin:0}.filter-section{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem;padding:1.5rem}.bookings-table-wrapper,.filter-section{background:#fff;border-radius:12px;box-shadow:0 2px 10px #00000014}.bookings-table-wrapper{overflow-x:auto}.bookings-table{border-collapse:collapse;min-width:800px;width:100%}.bookings-table thead{background:#1e3a8a;color:#fff}.bookings-table th{font-weight:700;padding:1rem}.bookings-table tbody tr{border-bottom:1px solid #e2e8f0;transition:all .2s}.bookings-table tbody tr:hover{background:#f8fafc}.bookings-table td{color:#334155;padding:1rem}.status-badge{border-radius:6px;display:inline-block;font-size:.85rem;font-weight:700;padding:.35rem .85rem;text-transform:uppercase}.status-badge.pending{background:#fef3c7;border:2px solid #f59e0b;color:#92400e}.status-badge.approved{background:#d1fae5;border:2px solid #059669;color:#065f46}.status-badge.rejected{background:#fee2e2;border:2px solid #dc2626;color:#991b1b}.room-link{border-radius:8px;cursor:pointer;padding:.5rem;transition:all .3s}.room-link:hover{background:#dbeafe;transform:translateX(5px)}.empty-state{background:#fff;border-radius:12px;padding:3rem 2rem}@media (max-width:1024px){.bookings-container{padding:0 1.5rem}}@media (max-width:768px){.booking-form-container,.bookings-container{margin:1rem auto;padding:0 1rem}.booking-form-card{padding:1.5rem}.form-row{gap:1rem;grid-template-columns:1fr}.bookings-header{align-items:flex-start;flex-direction:column;gap:1rem}.bookings-header h1{font-size:1.5rem}.filter-section{grid-template-columns:1fr;padding:1rem}.form-actions{flex-direction:column}.btn-cancel,.btn-submit{width:100%}}@media (max-width:600px){.booking-form-container{margin:.5rem auto}.booking-form-card{padding:1rem}.booking-form-card h2{font-size:1.2rem}.form-group label{font-size:.9rem}.form-group input,.form-group select,.form-group textarea{font-size:.9rem;padding:.65rem}.available-slots-info,.error-message,.warning-message{font-size:.9rem;padding:.85rem 1rem}.slot-badge{font-size:.8rem;padding:.4rem .6rem}.btn-cancel,.btn-submit{font-size:.9rem;padding:.65rem 1rem}.bookings-header h1{font-size:1.3rem}}@media (max-width:480px){.booking-form-card{padding:.85rem}.form-group input,.form-group select,.form-group textarea{font-size:.85rem;padding:.6rem}}.admin-tabs{padding-bottom:0}.stats-section{margin-bottom:40px}.stat-card.users{border-left-color:#1e3a8a}.stat-card.rooms{border-left-color:#0891b2}.stat-card.bookings{border-left-color:#0284c7}.stat-card.pending{border-left-color:#f59e0b}.stat-card.approved{border-left-color:#059669}.stat-card.rejected{border-left-color:#dc2626}.stat-icon{flex-shrink:0}.stat-content{flex:1 1}.stat-content h3{color:#64748b;font-size:.85rem;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.stat-number{margin:0}.stat-content small{color:#94a3b8;font-size:.85rem}.quick-actions-section h2{color:#1e3a8a;font-size:1.5rem;font-weight:700;margin-bottom:20px;text-align:center}.quick-actions-admin{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.quick-actions-admin .action-btn{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;display:flex;gap:15px;padding:25px;text-align:left;transition:all .3s}.quick-actions-admin .action-btn:hover{background:#f8fafc;border-color:#1e3a8a;box-shadow:0 4px 12px #1e3a8a26;transform:translateY(-3px)}.action-icon{font-size:2.5rem}.action-btn strong{color:#1e3a8a;display:block;font-size:1.1rem;font-weight:700;margin-bottom:5px}.action-btn small{color:#64748b;font-size:.9rem}.charts-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:30px}.charts-header h2{color:#1e3a8a;font-size:1.8rem;font-weight:700}.time-range-selector{align-items:center;display:flex;gap:10px}.time-range-selector label{color:#475569;font-weight:600}.time-range-selector select{background:#fff;border:2px solid #cbd5e0;border-radius:8px;color:#1e3a8a;cursor:pointer;font-size:1rem;font-weight:600;padding:8px 16px}.time-range-selector select:hover{border-color:#1e3a8a}.chart-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:30px;padding:25px}.chart-card h3{color:#1e3a8a;font-size:1.3rem;font-weight:700;margin-bottom:20px}.stats-summary{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:30px}.summary-card{background:#1e3a8a;border-radius:12px;box-shadow:0 4px 12px #1e3a8a4d;color:#fff;padding:25px;text-align:center}.summary-card h4{font-size:1rem;font-weight:600;margin-bottom:15px;opacity:.95}.big-number{font-size:2.5rem;font-weight:700;margin:10px 0}.summary-card small{font-size:.9rem;opacity:.9}.room-management{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:30px}.management-header{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:30px}.management-header h2{color:#1e3a8a;font-size:1.8rem;font-weight:700}.room-form-card{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;margin-bottom:30px;padding:25px}.room-form-card h3{color:#1e3a8a;font-weight:700;margin-bottom:20px}.room-card:hover{border-color:#1e3a8a}.room-card-header h3{font-size:1.2rem;font-weight:700;margin:0}.capacity-badge{background:#fff;border-radius:6px;color:#1e3a8a;font-size:.85rem;font-weight:700;padding:5px 12px}.room-card-body h4{color:#1e3a8a;font-size:1.1rem;font-weight:700;margin-bottom:15px}.facilities{margin:15px 0}.facilities strong{color:#475569;display:block;font-size:.9rem;font-weight:600;margin-bottom:8px}.facility-tags{display:flex;flex-wrap:wrap;gap:8px}.facility-tag{background:#dbeafe;border:1px solid #bfdbfe;border-radius:6px;color:#1e40af;font-size:.85rem;font-weight:600;padding:5px 12px}.room-meta{border-top:1px solid #e2e8f0;margin-top:15px;padding-top:15px}.room-meta small{color:#94a3b8;font-size:.85rem}.room-card-actions{border-top:1px solid #e2e8f0;display:flex;gap:10px;padding:15px}.booking-management{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:30px}.filter-buttons{display:flex;flex-wrap:wrap;gap:10px}.filter-btn{background:#fff;border:2px solid #cbd5e0;border-radius:8px;color:#475569;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .3s}.filter-btn:hover{background:#f8fafc;border-color:#1e3a8a;color:#1e3a8a}.filter-btn.active{background:#1e3a8a;border-color:#1e3a8a;color:#fff}.bookings-table table{background:#fff;border-collapse:initial;border-radius:12px;border-spacing:0;overflow:hidden}.bookings-table tr:last-child td{border-bottom:none}.action-buttons{gap:6px}.btn-approve,.btn-delete-row,.btn-reject{border:none;border-radius:6px;cursor:pointer;font-size:1.2rem;padding:8px 12px;transition:all .3s}.btn-approve{background:#d1fae5;color:#065f46}.btn-approve:hover{background:#059669;color:#fff}.btn-reject{background:#fee2e2;color:#991b1b}.btn-reject:hover{background:#dc2626;color:#fff}.btn-delete-row{background:#f1f5f9;color:#64748b}.btn-delete-row:hover{background:#dc2626;color:#fff}.btn-view-image{align-items:center;display:inline-flex;gap:5px}.btn-view-image:hover{background:#1e40af;box-shadow:0 4px 8px #1e3a8a4d;transform:translateY(-2px)}.no-image-badge{background:#f1f5f9;border-radius:6px;color:#94a3b8;display:inline-block;font-size:.8rem;font-style:italic;padding:4px 10px}.image-modal-overlay{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.image-modal-content{animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.image-modal-header h3{font-size:1.4rem;font-weight:700;margin:0}.btn-close-modal{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:40px;justify-content:center;transition:all .3s;width:40px}.btn-close-modal:hover{background:#ffffff4d;transform:rotate(90deg)}.booking-info-section{background:#f8fafc;border-left:4px solid #1e3a8a;border-radius:8px;margin-bottom:20px;padding:18px 20px}.booking-info-section p{color:#334155;font-size:.95rem;margin:8px 0}.booking-info-section strong{color:#1e3a8a;font-weight:700}.image-container{align-items:center;background:#f8fafc;border-radius:8px;display:flex;justify-content:center;margin-bottom:20px;min-height:300px;padding:15px}.image-modal-actions{display:flex;gap:15px;justify-content:center}.btn-download{align-items:center;background:#059669;border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:8px;padding:12px 28px;text-decoration:none;transition:all .3s}.btn-download:hover{background:#047857;box-shadow:0 4px 12px #0596694d;transform:translateY(-2px)}.form-group label{color:#334155}.form-group input:focus,.form-group select:focus{border-color:#1e3a8a;outline:none}.form-actions{display:flex;gap:10px;margin-top:20px}.btn-new:hover,.btn-submit:hover{background:#1e40af;box-shadow:0 4px 12px #1e3a8a4d;transform:translateY(-2px)}.btn-cancel:hover{background:#64748b}.btn-edit:hover{background:#0e7490}.btn-delete:hover{background:#b91c1c}.empty-state{color:#94a3b8;padding:60px 20px;text-align:center}.empty-state p{font-size:1.2rem;margin-bottom:20px}.loading{color:#1e3a8a;font-weight:700}@media (max-width:1024px){.charts-row{grid-template-columns:1fr}}@media (max-width:768px){.admin-container{padding:20px 15px}.admin-header h1{font-size:2rem}.admin-tabs{flex-wrap:wrap}.form-row,.quick-actions-admin,.rooms-grid,.stats-grid{grid-template-columns:1fr}.bookings-table table{min-width:900px}.image-modal-content{max-width:95%}}.admin-container{background:#f8f9fc;margin:0 auto;max-width:1400px;min-height:100vh;padding:30px 20px}.admin-header{margin-bottom:30px;text-align:center}.admin-header h1{color:#1e3a8a;font-size:2.5rem;font-weight:700;margin-bottom:10px}.admin-header p{color:#475569;font-size:1.1rem}.admin-tabs{border-bottom:2px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:30px}.tab-btn{background:#fff;border:2px solid #cbd5e0;border-radius:8px 8px 0 0;color:#475569;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s}.tab-btn:hover{background:#f1f5f9;border-color:#1e3a8a;color:#1e3a8a}.tab-btn.active{background:#1e3a8a;border-color:#1e3a8a;color:#fff}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:40px}.stat-card{align-items:center;background:#fff;border-left:4px solid #1e3a8a;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;gap:20px;padding:25px;transition:all .3s}.stat-card:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-3px)}.stat-icon{font-size:3rem}.stat-number{color:#1e3a8a;font-size:2.5rem;font-weight:700}.charts-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:30px}.charts-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(500px,1fr))}.rooms-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.room-card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;overflow:hidden;transition:all .3s}.room-card:hover{box-shadow:0 8px 20px #0000001f;transform:translateY(-5px)}.room-card-header{align-items:center;background:#1e3a8a;color:#fff;display:flex;justify-content:space-between;padding:18px}.room-card-body{padding:20px}.bookings-table{margin-top:20px;overflow-x:auto}.bookings-table table{border-collapse:collapse;min-width:900px;width:100%}.bookings-table th{background:#1e3a8a;color:#fff;font-size:.85rem;font-weight:600;padding:15px;text-align:left;text-transform:uppercase}.bookings-table td{border-bottom:1px solid #e2e8f0;padding:15px}.bookings-table tr:hover{background:#f8fafc}.image-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1e3a8abf;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:2000}.image-modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 50px #0000004d;max-height:90vh;max-width:900px;overflow:hidden;width:100%}.image-modal-header{align-items:center;background:#1e3a8a;color:#fff;display:flex;justify-content:space-between;padding:20px 25px}.image-modal-body{max-height:calc(90vh - 140px);overflow-y:auto;padding:25px}.booking-image-preview{border-radius:8px;box-shadow:0 4px 12px #00000026;max-height:60vh;max-width:100%;object-fit:contain}.btn-cancel,.btn-delete,.btn-edit,.btn-new,.btn-submit{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s}.btn-new,.btn-submit{background:#1e3a8a;color:#fff}.btn-cancel{background:#94a3b8;color:#fff}.btn-edit{background:#0891b2;color:#fff}.btn-delete{background:#dc2626;color:#fff}.btn-view-image{background:#1e3a8a;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:6px 14px;transition:all .3s}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group input,.form-group select{border:2px solid #cbd5e0;border-radius:8px;font-size:1rem;padding:10px}@media (max-width:1200px){.charts-row{grid-template-columns:1fr}}@media (max-width:1024px){.admin-container{padding:20px 15px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.rooms-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (max-width:768px){.admin-header h1{font-size:2rem}.admin-header p{font-size:1rem}.admin-tabs{gap:8px}.tab-btn{font-size:.9rem;padding:10px 16px}.stats-grid{gap:15px;grid-template-columns:1fr}.stat-card{gap:15px;padding:20px}.stat-icon{font-size:2.5rem}.stat-number{font-size:2rem}.form-row,.rooms-grid{grid-template-columns:1fr}.form-row{gap:15px}.charts-container{padding:20px}.bookings-table{overflow-x:auto}.image-modal-content{max-width:95%}.image-modal-header{padding:15px 20px}.image-modal-body{padding:20px}}@media (max-width:600px){.admin-container{padding:15px 10px}.admin-header h1{font-size:1.6rem}.admin-header p{font-size:.9rem}.tab-btn{font-size:.85rem;padding:8px 12px}.stat-card{gap:12px;padding:15px}.stat-icon{font-size:2rem}.stat-number{font-size:1.8rem}.form-group input,.form-group select{font-size:.9rem;padding:8px}.btn-cancel,.btn-delete,.btn-edit,.btn-new,.btn-submit{font-size:.9rem;padding:10px 18px}.charts-container{padding:15px}.bookings-table td,.bookings-table th{font-size:.85rem;padding:10px}}@media (max-width:480px){.admin-header h1{font-size:1.4rem}.tab-btn{font-size:.8rem;padding:6px 10px}.stat-number{font-size:1.5rem}.image-modal-header{padding:12px 15px}.image-modal-body{padding:15px}}@media (max-width:600px){.admin-container{padding:15px 10px}.admin-header h1{font-size:1.6rem}.admin-header p{font-size:.9rem}.tab-btn{font-size:.85rem;padding:8px 12px}.stat-card{gap:12px;padding:15px}.stat-icon{font-size:2rem}.stat-number{font-size:1.8rem}.form-group input,.form-group select{font-size:.9rem;padding:8px}.btn-cancel,.btn-delete,.btn-edit,.btn-new,.btn-submit{font-size:.9rem;padding:10px 18px}.charts-container{padding:15px}.booking-management{padding:15px 10px}.booking-management .bookings-table{margin:0 -10px;overflow:visible}.booking-management .bookings-table:after,.bookings-table thead{display:none}.bookings-table,.bookings-table tbody,.bookings-table td,.bookings-table tr{display:block;width:100%}.bookings-table{min-width:auto}.bookings-table tr{background:#fff;border:2px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #00000014;margin-bottom:1rem;padding:.85rem}.bookings-table tr:hover{background:#fff;transform:none}.bookings-table td{word-wrap:break-word;align-items:flex-start;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;overflow-wrap:break-word;padding:.4rem 0}.bookings-table td:last-child{border-bottom:none;flex-wrap:wrap;justify-content:center;padding-top:.65rem}.bookings-table td:before{color:#1e3a8a;content:attr(data-label);flex-shrink:0;font-size:.75rem;font-weight:700;margin-right:.5rem;max-width:70px;min-width:70px;text-transform:uppercase}.bookings-table td small,.bookings-table td span,.bookings-table td strong{word-wrap:break-word;flex:1 1;max-width:calc(100% - 80px);overflow-wrap:break-word;text-align:right}.bookings-table td small{display:block;font-size:.75rem}.action-buttons{gap:6px;justify-content:center;margin-top:.5rem;width:100%}.btn-approve,.btn-delete-row,.btn-reject{font-size:1.1rem;padding:8px 12px}.btn-view-image{font-size:.75rem;padding:6px 12px;white-space:nowrap}.no-image-badge{font-size:.75rem;padding:4px 8px}.status-badge{font-size:.75rem;padding:.35rem .65rem;white-space:nowrap}}@media (max-width:480px){.admin-header h1{font-size:1.4rem}.tab-btn{font-size:.8rem;padding:6px 10px}.stat-number{font-size:1.5rem}.image-modal-header{padding:12px 15px}.image-modal-body{padding:15px}.booking-management{padding:10px 5px}.bookings-table tr{margin-bottom:.85rem;padding:.75rem}.bookings-table td{font-size:.8rem;padding:.35rem 0}.bookings-table td:before{font-size:.7rem;max-width:65px;min-width:65px}.bookings-table td small,.bookings-table td span,.bookings-table td strong{font-size:.8rem;max-width:calc(100% - 70px)}.btn-approve,.btn-delete-row,.btn-reject{font-size:1rem;padding:6px 10px}.btn-view-image{font-size:.7rem;padding:5px 10px}.status-badge{font-size:.7rem;padding:.3rem .5rem}.action-buttons{gap:5px}}.user-management{padding:20px}.section-header{margin-bottom:30px;text-align:center}.section-header h2{color:#1e3a8a;font-size:2rem;font-weight:700;margin-bottom:10px}.section-header p{color:#64748b;font-size:1.1rem}.users-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-top:20px}.user-card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #00000014;cursor:pointer;padding:20px;transition:all .3s}.user-card:hover{border-color:#1e3a8a;box-shadow:0 4px 12px #1e3a8a26;transform:translateY(-3px)}.user-card.inactive{background:#f8f9fa;opacity:.6}.user-card-header{border-bottom:2px solid #e2e8f0;gap:15px;margin-bottom:15px;padding-bottom:15px}.user-avatar,.user-card-header{align-items:center;display:flex}.user-avatar{background:linear-gradient(135deg,#1e3a8a,#3b82f6);border-radius:50%;color:#fff;flex-shrink:0;font-size:1.8rem;font-weight:700;height:60px;justify-content:center;width:60px}.user-info h3{color:#1e3a8a;font-size:1.2rem;font-weight:700;margin-bottom:5px}.user-email{color:#64748b;font-size:.9rem}.user-card-body{margin-bottom:15px}.user-detail{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:8px 0}.user-detail:last-child{border-bottom:none}.user-detail .label{color:#64748b;font-size:.9rem;font-weight:600}.user-detail .value{color:#1e3a8a;font-weight:600}.user-card-footer{border-top:1px solid #e2e8f0;padding-top:10px;text-align:center}.user-card-footer small{color:#94a3b8;font-size:.85rem}.badge{border-radius:20px;display:inline-block;font-size:.85rem;font-weight:600;padding:4px 12px}.badge-admin{background:#fef3c7;color:#92400e}.badge-user{background:#dbeafe;color:#1e40af}.badge-active{background:#d1fae5;color:#065f46}.badge-inactive{background:#fee2e2;color:#991b1b}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.modal-header{border-bottom:2px solid #e2e8f0;padding:25px 30px}.modal-header h2{color:#1e3a8a;font-size:1.8rem;font-weight:700;margin:0}.close-btn{align-items:center;background:none;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;padding:0;transition:all .3s;width:40px}.close-btn:hover{background:#f1f5f9;color:#1e3a8a}.modal-body{padding:30px}.user-details-section{border-bottom:2px solid #e2e8f0;margin-bottom:30px;padding-bottom:30px;text-align:center}.user-avatar-large{align-items:center;background:linear-gradient(135deg,#1e3a8a,#3b82f6);border-radius:50%;color:#fff;display:flex;font-size:3rem;font-weight:700;height:100px;justify-content:center;margin:0 auto 20px;width:100px}.user-details-section h3{color:#1e3a8a;font-size:1.5rem;font-weight:700;margin-bottom:10px}.user-details-section p{color:#64748b;font-size:1.1rem;margin-bottom:15px}.user-badges{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.management-section{background:#f8f9fc;border:2px solid #e2e8f0;border-radius:12px;margin-bottom:30px;padding:20px}.management-section h4{color:#1e3a8a;font-size:1.2rem;font-weight:700;margin-bottom:15px}.management-section.danger-zone{background:#fef2f2;border-color:#fee2e2}.management-section.danger-zone h4{color:#dc2626}.management-section.danger-zone p{color:#991b1b;font-size:.95rem;margin-bottom:15px}.form-group{margin-bottom:15px}.form-group label{color:#475569;display:block;font-size:.95rem;font-weight:600;margin-bottom:8px}.form-group input{border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:12px;transition:all .3s;width:100%}.form-group input:focus{border-color:#1e3a8a;box-shadow:0 0 0 3px #1e3a8a1a;outline:none}.action-buttons{display:flex;flex-wrap:wrap;gap:10px}.btn{border:none;border-radius:8px;cursor:pointer;display:inline-block;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s}.btn-primary{background:#1e3a8a;color:#fff}.btn-primary:hover{background:#1e40af;box-shadow:0 4px 12px #1e3a8a4d}.btn-success{background:#059669;color:#fff}.btn-success:hover{background:#047857;box-shadow:0 4px 12px #0596694d;transform:translateY(-2px)}.btn-warning{background:#f59e0b;color:#fff}.btn-warning:hover{background:#d97706;box-shadow:0 4px 12px #f59e0b4d;transform:translateY(-2px)}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c;box-shadow:0 4px 12px #dc26264d;transform:translateY(-2px)}.btn-info{background:#0891b2;color:#fff}.btn-info:hover{background:#0e7490;box-shadow:0 4px 12px #0891b24d;transform:translateY(-2px)}.btn-secondary{background:#64748b}.btn-secondary:hover{background:#475569;box-shadow:0 4px 12px #64748b4d;transform:translateY(-2px)}.modal-footer{border-top:2px solid #e2e8f0;display:flex;justify-content:flex-end;padding:20px 30px}.loading{color:#64748b;font-size:1.5rem;padding:50px;text-align:center}.secret-modal{max-width:500px}.secret-description{color:#475569;font-size:1rem;line-height:1.5;margin-bottom:20px;text-align:center}.secret-error{background:#fee2e2;border:2px solid #fecaca;border-radius:8px;color:#991b1b;font-weight:600;margin-bottom:15px;margin-top:15px;padding:12px;text-align:center}.secret-modal-buttons{display:flex;gap:10px;margin-top:20px}.secret-modal-buttons .btn{flex:1 1}@media (max-width:768px){.users-grid{grid-template-columns:1fr}.modal-content{margin:10px;max-width:100%}.action-buttons{flex-direction:column}.action-buttons .btn{width:100%}.user-avatar{font-size:1.5rem;height:50px;width:50px}.user-info h3{font-size:1rem}}.room-info-badge strong{font-size:1.2rem}.room-info-badge small{opacity:.8}.btn-back,.btn-book-room{align-items:center;display:flex;gap:.5rem}.btn-book-room{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .3s}.btn-book-room:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.btn-book-room:active{transform:translateY(0)}.btn-book-room-alt{align-items:center;background:linear-gradient(135deg,#48bb78,#38a169);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s}.btn-book-room-alt:hover{box-shadow:0 6px 20px #48bb7866;transform:translateY(-2px)}.btn-book-room-alt:active{transform:translateY(0)}.header-actions{align-items:center;display:flex;gap:1rem}.legend-item{color:#666}.calendar-day{position:relative}.booking-count{align-items:center;color:#666;display:flex;font-size:.8rem;gap:.25rem}.booking-indicator{display:flex;flex-wrap:wrap;gap:3px;margin-top:.5rem}.booking-dot{background:#dc3545;border-radius:50%;height:8px;width:8px}.day-detail-modal{animation:modalSlide .3s ease}@keyframes modalSlide{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header h3{font-size:1.3rem;margin:0}.btn-close:hover{background:#ffffff4d}.time-slots-header{margin-bottom:1rem}.time-slots-header h4{color:#1e1e1e;margin:0 0 .5rem}.time-slots-header p{color:#666;font-size:.9rem;margin:0}.time-slot-item{transition:all .3s}.bookings-list-section{border-top:2px solid #eee;margin-top:1.5rem;padding-top:1.5rem}.bookings-list-section h4{color:#1e1e1e;margin:0 0 1rem}.booking-item{background:#f8f9fa;border-left:4px solid #1e1e1e;border-radius:8px;margin-bottom:.75rem;padding:1rem}.booking-item:last-child{margin-bottom:0}.booking-time{color:#1e1e1e;font-size:1.1rem;font-weight:700;margin-bottom:.5rem}.booking-info{color:#666;display:flex;flex-direction:column;font-size:.9rem;gap:.25rem}.no-bookings{color:#666;padding:2rem;text-align:center}.no-bookings-icon{font-size:3rem;margin-bottom:1rem}.loading{color:#1e1e1e;min-height:400px}@media (max-width:768px){.room-calendar-container{padding:1rem}.calendar-header{align-items:flex-start;flex-direction:column}.calendar-header h1{font-size:1.5rem}.calendar-legend{gap:1rem}.calendar-day{min-height:70px;padding:.5rem}.day-number{font-size:.9rem}.booking-count,.weekday{font-size:.7rem}.weekday{padding:.75rem .25rem}.time-slots-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.room-calendar-container{margin:2rem auto;max-width:1200px;padding:0 2rem}.calendar-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:2rem}.calendar-header h1{color:#1e1e1e;font-size:2rem;margin:0}.room-info-badge{align-items:center;background:linear-gradient(135deg,#1e1e1e,#333);border-radius:8px;color:#fff;display:flex;gap:1rem;padding:.75rem 1.5rem}.btn-back{background:#f5f5f5;border:2px solid #ddd;border-radius:8px;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:all .3s}.btn-back:hover{background:#1e1e1e;border-color:#1e1e1e;color:#fff}.calendar-nav{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding:1rem 1.5rem}.calendar-nav h2{color:#1e1e1e;font-size:1.5rem;margin:0}.nav-buttons{display:flex;gap:.5rem}.nav-btn{background:#f5f5f5;border:2px solid #ddd;border-radius:4px;cursor:pointer;font-weight:600;padding:.5rem 1rem;transition:all .3s}.nav-btn:hover{background:#1e1e1e;border-color:#1e1e1e;color:#fff}.calendar-legend{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;display:flex;flex-wrap:wrap;gap:2rem;margin-bottom:1.5rem;padding:1rem 1.5rem}.legend-item{align-items:center;display:flex;font-size:.9rem;gap:.5rem}.legend-color{border-radius:4px;height:20px;width:20px}.legend-color.available{background:#d4edda;border:2px solid #28a745}.legend-color.partial{background:#fff3cd;border:2px solid #ffc107}.legend-color.full{background:#f8d7da;border:2px solid #dc3545}.legend-color.past{background:#e9ecef;border:2px solid #adb5bd}.calendar-wrapper{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.calendar-weekdays{background:#1e1e1e;color:#fff;display:grid;grid-template-columns:repeat(7,1fr)}.weekday{font-size:.85rem;font-weight:600;padding:1rem;text-align:center;text-transform:uppercase}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day{border:1px solid #eee;cursor:pointer;min-height:100px;padding:.75rem;transition:all .3s}.calendar-day:hover:not(.empty):not(.past){box-shadow:0 4px 15px #00000026;transform:scale(1.02);z-index:10}.calendar-day.empty{background:#fafafa;cursor:default}.calendar-day.past{background:#f5f5f5;cursor:not-allowed;opacity:.6}.calendar-day.today{border:3px solid #1e1e1e}.calendar-day.available{background:#d4edda}.calendar-day.partial{background:#fff3cd}.calendar-day.full{background:#f8d7da}.day-number{color:#1e1e1e;font-size:1.1rem;font-weight:700;margin-bottom:.5rem}.calendar-day.today .day-number{background:#1e1e1e;border-radius:50%;color:#fff;height:28px;width:28px}.calendar-day.today .day-number,.day-detail-overlay{align-items:center;display:flex;justify-content:center}.day-detail-overlay{background:#00000080;bottom:0;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.day-detail-modal{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;max-height:80vh;max-width:600px;overflow:hidden;width:100%}.modal-header{align-items:center;background:linear-gradient(135deg,#1e1e1e,#333);color:#fff;display:flex;justify-content:space-between;padding:1.5rem}.btn-close{background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:1.2rem;height:36px;transition:all .3s;width:36px}.modal-body{max-height:60vh;overflow-y:auto;padding:1.5rem}.time-slots-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.time-slot-item{border-radius:8px;font-size:.9rem;font-weight:600;padding:.75rem;text-align:center}.time-slot-item.available{background:#d4edda;border:2px solid #28a745;color:#155724}.time-slot-item.booked{background:#f8d7da;border:2px solid #dc3545;color:#721c24}@media (max-width:1024px){.room-calendar-container{padding:0 1.5rem}.calendar-legend{gap:1.5rem}}@media (max-width:768px){.room-calendar-container{margin:1rem auto;padding:0 1rem}.calendar-header{align-items:flex-start;flex-direction:column}.calendar-header h1{font-size:1.5rem}.header-actions{flex-direction:column;width:100%}.btn-back,.btn-book-room,.btn-book-room-alt,.room-info-badge{justify-content:center;width:100%}.calendar-nav{padding:1rem}.calendar-nav h2{font-size:1.2rem}.calendar-legend{gap:1rem;padding:1rem}.legend-item{font-size:.8rem}.legend-color{height:16px;width:16px}.calendar-day{min-height:80px;padding:.5rem}.day-number{font-size:.95rem}.weekday{font-size:.75rem;padding:.75rem .25rem}.time-slots-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.modal-body,.modal-header{padding:1rem}}@media (max-width:600px){.calendar-day{min-height:70px;padding:.4rem}.day-number{font-size:.85rem}.weekday{font-size:.7rem;padding:.6rem .2rem}.nav-btn{font-size:.85rem;padding:.4rem .8rem}.btn-back{font-size:.9rem;padding:.6rem 1rem}}@media (max-width:480px){.calendar-day{min-height:60px;padding:.3rem}.day-number{font-size:.8rem}.weekday{font-size:.65rem;padding:.5rem .1rem}.time-slots-grid{grid-template-columns:1fr 1fr}}.home-container{margin:0 auto;max-width:1200px;padding:40px 20px}.hero{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;margin-bottom:60px;padding:60px 20px;text-align:center}.hero h1{font-size:2.5rem;margin-bottom:20px}.hero p{font-size:1.2rem;margin-bottom:30px;opacity:.9}.hero-buttons{display:flex;gap:15px;justify-content:center}.btn-primary,.btn-secondary{border:none;border-radius:6px;cursor:pointer;font-size:1rem;padding:12px 30px;transition:all .3s}.btn-primary{background:#fff;color:#667eea;font-weight:600}.btn-primary:hover{box-shadow:0 4px 12px #0003;transform:translateY(-2px)}.btn-secondary{background:#0000;border:2px solid #fff;color:#fff}.btn-secondary:hover{background:#fff;color:#667eea}.features{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:40px}.feature{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:30px;text-align:center}.feature h3{color:#333;font-size:1.5rem;margin-bottom:15px}.feature p{color:#666;line-height:1.6}*{box-sizing:border-box;margin:0;padding:0}body{background:#f5f5f5;color:#333;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.loading{align-items:center;color:#666;display:flex;font-size:1.2rem;justify-content:center;min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit}
/*# sourceMappingURL=main.aa4f1f51.css.map*/