.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem}.login-card{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;padding:3rem;width:100%;max-width:450px}.login-header{text-align:center;margin-bottom:2rem}.login-icon{font-size:4rem;margin-bottom:1rem}.login-header h1{color:#2c3e50;margin-bottom:.5rem;font-size:1.8rem}.login-header p{color:#7f8c8d;font-size:.9rem}.error-alert{background:#fee;border:1px solid #fcc;color:#c33;padding:1rem;border-radius:10px;display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:.9rem}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#2c3e50;font-size:.9rem}.form-group input{padding:.9rem 1rem;border:2px solid #e0e6ed;border-radius:10px;font-size:1rem;transition:all .3s ease}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background:#f5f7fa;cursor:not-allowed}.login-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem;border-radius:10px;font-size:1rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.5rem}.login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.login-footer{text-align:center;margin-top:2rem;padding-top:2rem;border-top:1px solid #e0e6ed}.login-footer p{color:#7f8c8d;font-size:.85rem}.navbar{background:#fff;box-shadow:0 2px 10px #0000001a;position:sticky;top:0;z-index:100}.navbar-container{max-width:1400px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.navbar-brand h1{font-size:1.5rem;color:#2c3e50;display:flex;align-items:center;gap:.5rem}.navbar-user{display:flex;align-items:center;gap:1rem}.user-info{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f5f7fa;border-radius:8px;font-weight:500}.logout-btn{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;background:#e74c3c;color:#fff;border-radius:8px;font-weight:500}.logout-btn:hover{background:#c0392b}.dashboard{min-height:100vh;background:#f5f7fa}.dashboard-container{max-width:1400px;margin:0 auto;padding:2rem}.dashboard-header{margin-bottom:2rem}.dashboard-header h1{font-size:2rem;color:#2c3e50;margin-bottom:.5rem}.dashboard-header p{color:#7f8c8d}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 10px #0000000d;display:flex;align-items:center;gap:1rem}.stat-icon{width:60px;height:60px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff}.stat-icon.all{background:linear-gradient(135deg,#667eea,#764ba2)}.stat-icon.pending{background:linear-gradient(135deg,#f093fb,#f5576c)}.stat-icon.approved{background:linear-gradient(135deg,#4facfe,#00f2fe)}.stat-icon.paid{background:linear-gradient(135deg,#43e97b,#38f9d7)}.stat-icon.partial{background:linear-gradient(135deg,#ffa751,#ffe259)}.stat-icon.declined{background:linear-gradient(135deg,#fa709a,#fee140)}.stat-info h3{font-size:2rem;color:#2c3e50;margin-bottom:.25rem}.stat-info p{color:#7f8c8d;font-size:.9rem}.filter-bar{background:#fff;padding:1rem;border-radius:12px;box-shadow:0 2px 10px #0000000d;display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.filter-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.filter-buttons button{padding:.6rem 1.2rem;background:#f5f7fa;color:#2c3e50;border-radius:8px;font-weight:500}.filter-buttons button.active,.filter-buttons button:hover{background:#667eea;color:#fff}.refresh-btn{padding:.6rem 1.2rem;background:#2ecc71;color:#fff;border-radius:8px;font-weight:500}.refresh-btn:hover{background:#27ae60}.empty-state{text-align:center;padding:4rem 2rem;color:#7f8c8d}.empty-state svg{margin-bottom:1rem;color:#bdc3c7}.empty-state h3{margin-bottom:.5rem}.bookings-table{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;overflow:hidden}.bookings-table table{width:100%;border-collapse:collapse}.bookings-table thead{background:#f5f7fa}.bookings-table th{padding:1rem;text-align:left;font-weight:600;color:#2c3e50;font-size:.9rem}.bookings-table td{padding:1rem;border-top:1px solid #e0e6ed}.bookings-table tbody tr:hover{background:#f5f7fa}.booking-id{font-family:Courier New,monospace;font-size:.85rem;color:#7f8c8d}.customer-info{display:flex;flex-direction:column;gap:.25rem}.customer-info strong{color:#2c3e50}.customer-info small{color:#7f8c8d;font-size:.85rem}.status-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .8rem;border-radius:20px;font-size:.85rem;font-weight:600}.status-pending{background:#fff3cd;color:#856404}.status-approved{background:#d4edda;color:#155724}.status-declined{background:#f8d7da;color:#721c24}.status-paid{background:#d1ecf1;color:#0c5460}.status-completed{background:#d4edda;color:#155724}.payment-status-unpaid{background:#f8d7da;color:#721c24}.payment-status-partial{background:#fff3cd;color:#856404}.payment-status-paid{background:#d1ecf1;color:#0c5460}.payment-status-refunded{background:#e2e3e5;color:#383d41}.view-btn{padding:.5rem 1rem;background:#667eea;color:#fff;border-radius:6px;font-size:.9rem;font-weight:500}.view-btn:hover{background:#764ba2}@media (max-width: 768px){.filter-bar{flex-direction:column;align-items:stretch}.bookings-table{overflow-x:auto}.stats-grid{grid-template-columns:1fr}}.booking-details-container{max-width:1200px;margin:0 auto;padding:2rem}.details-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.back-btn{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;background:#fff;color:#2c3e50;border-radius:8px;box-shadow:0 2px 8px #0000001a;font-weight:500}.back-btn:hover{background:#f5f7fa}.details-header h1{color:#2c3e50}.details-grid{display:grid;gap:1.5rem}.details-card{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 2px 10px #0000000d}.details-card.full-width{grid-column:1 / -1}.details-card h2{display:flex;align-items:center;gap:.5rem;color:#2c3e50;margin-bottom:1.5rem;font-size:1.3rem;padding-bottom:.75rem;border-bottom:2px solid #f5f7fa}.info-grid{display:grid;gap:1rem}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-item label{display:flex;align-items:center;gap:.3rem;font-weight:600;color:#7f8c8d;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.info-item span{color:#2c3e50;font-size:1rem}.special-requests{background:#f5f7fa;padding:1rem;border-radius:8px;color:#2c3e50;line-height:1.6}.documents-grid{display:flex;flex-direction:column;gap:2rem}.document-section{display:flex;flex-direction:column;gap:1rem}.document-section h3{color:#2c3e50;font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.document-thumbnails{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.5rem}.document-item{position:relative;display:flex;flex-direction:column;gap:.5rem}.doc-number{position:absolute;top:8px;left:8px;background:#667eeae6;color:#fff;font-size:12px;font-weight:600;padding:4px 10px;border-radius:12px;z-index:1;box-shadow:0 2px 8px #00000026}.document-item img{width:100%;height:250px;object-fit:cover;border-radius:8px;border:2px solid #e0e6ed;cursor:pointer;transition:all .3s ease}.document-item img:hover{transform:scale(1.05);box-shadow:0 10px 30px #0003;border-color:#667eea}.auth-document.pdf{width:100%;height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5f7fa,#e8ecf1);border-radius:8px;border:2px dashed #dc3545;cursor:pointer;transition:all .3s ease;gap:8px}.auth-document.pdf:hover{transform:scale(1.05);box-shadow:0 10px 30px #dc354533;border-color:#c82333;background:linear-gradient(135deg,#fff5f5,#ffe5e5)}.auth-image.loading,.auth-image.error{width:100%;height:250px;display:flex;align-items:center;justify-content:center;background:#f5f7fa;border-radius:8px;border:2px solid #e0e6ed}.auth-image.error{border-color:#dc3545;color:#dc3545}.no-documents{text-align:center;color:#94a3b8;padding:2rem;font-style:italic}.action-buttons{display:flex;gap:1rem;flex-wrap:wrap}.approve-btn,.decline-btn{display:flex;align-items:center;gap:.5rem;padding:1rem 2rem;border-radius:10px;font-weight:600;font-size:1rem}.approve-btn{background:linear-gradient(135deg,#2ecc71,#27ae60);color:#fff}.approve-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #2ecc714d}.decline-btn{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff}.decline-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #e74c3c4d}.action-form{margin-top:2rem;padding:2rem;background:#f5f7fa;border-radius:12px;border:2px solid #e0e6ed}.action-form h3{color:#2c3e50;margin-bottom:.5rem}.action-form>p{color:#7f8c8d;margin-bottom:1.5rem;font-size:.9rem}.action-form .form-group{margin-bottom:1.5rem}.action-form label{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#2c3e50;margin-bottom:.5rem}.action-form input,.action-form textarea{width:100%;padding:.9rem;border:2px solid #e0e6ed;border-radius:8px;font-size:1rem}.action-form input:focus,.action-form textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.action-form textarea{resize:vertical;min-height:100px}.form-actions{display:flex;gap:1rem;margin-top:1.5rem}.form-actions button{display:flex;align-items:center;gap:.5rem;padding:.9rem 1.8rem;border-radius:8px;font-weight:600}.form-actions button[type=submit]{background:#2ecc71;color:#fff}.form-actions button[type=submit]:hover:not(:disabled){background:#27ae60}.decline-submit-btn{background:#e74c3c!important;color:#fff}.decline-submit-btn:hover:not(:disabled){background:#c0392b!important}.cancel-btn{background:#95a5a6;color:#fff}.cancel-btn:hover{background:#7f8c8d}.status-info{background:#f5f7fa;padding:1.5rem;border-radius:8px}.status-info p{margin-bottom:.75rem;color:#2c3e50}.status-info p:last-child{margin-bottom:0}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;gap:1rem;color:#e74c3c}.error-container button{padding:.8rem 1.5rem;background:#667eea;color:#fff;border-radius:8px;font-weight:500}@media (max-width: 768px){.booking-details-container{padding:1rem}.details-header{flex-direction:column;align-items:flex-start}.documents-grid{grid-template-columns:1fr}.action-buttons{flex-direction:column}.approve-btn,.decline-btn{width:100%;justify-content:center}}.payment-tracking{margin-top:20px;padding:15px;border:2px solid #e0e0e0;border-radius:8px;background:#f9f9f9}.payment-tracking h3{display:flex;align-items:center;gap:8px;margin-bottom:15px;color:#2e7d32}.payment-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:15px}.payment-stat{display:flex;flex-direction:column;gap:5px}.payment-stat label{font-size:.9rem;color:#666;font-weight:500}.payment-stat span{font-size:1.1rem;font-weight:600}.amount-total{color:#1976d2}.amount-paid{color:#2e7d32}.amount-remaining{color:#ed6c02}.payment-status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:12px;font-size:.9rem;font-weight:600}.status-unpaid{background:#ffebee;color:#c62828}.status-partial{background:#fff3e0;color:#ef6c00}.status-paid{background:#e8f5e9;color:#2e7d32}.secondary-btn{background:#757575;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:14px;display:inline-flex;align-items:center;gap:8px;transition:background .2s}.secondary-btn:hover:not(:disabled){background:#616161}.secondary-btn:disabled{opacity:.5;cursor:not-allowed}.success-message{display:flex;align-items:center;gap:10px;padding:15px;margin-bottom:20px;background:#e8f5e9;border:1px solid #2e7d32;border-radius:6px;color:#1b5e20}.payment-history{border-top:2px solid #e0e0e0;padding-top:20px}.payment-history h4{color:#2c3e50;font-size:1.1rem;margin-bottom:15px;font-weight:600}.loading-payments{display:flex;align-items:center;gap:10px;padding:20px;color:#666;font-style:italic}.no-payments{padding:20px;text-align:center;color:#999;font-style:italic;background:#f5f5f5;border-radius:6px;border:1px dashed #ddd}.payments-list{overflow-x:auto}.payments-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000000d}.payments-table thead{background:#f5f7fa}.payments-table th{padding:12px 16px;text-align:left;font-weight:600;color:#2c3e50;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e0e6ed}.payments-table tbody tr{border-bottom:1px solid #f0f0f0;transition:background-color .2s ease}.payments-table tbody tr:hover{background-color:#f9fafb}.payments-table tbody tr:last-child{border-bottom:none}.payments-table td{padding:14px 16px;color:#2c3e50;font-size:.95rem}.payment-amount{font-weight:600;color:#2e7d32;font-size:1rem}.delete-payment-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;background:#fee;color:#c62828;border:1px solid #ffcdd2;border-radius:6px;cursor:pointer;transition:all .2s ease}.delete-payment-btn:hover:not(:disabled){background:#ffcdd2;border-color:#ef5350;color:#b71c1c;transform:translateY(-1px)}.delete-payment-btn:active:not(:disabled){transform:translateY(0)}.delete-payment-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.payments-table{font-size:.85rem}.payments-table th,.payments-table td{padding:10px 12px}.payments-list{overflow-x:scroll}}*{margin:0;padding:0;box-sizing:border-box}body{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;background:#f5f7fa;color:#2c3e50}#root{min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;outline:none;transition:all .3s ease}button:disabled{opacity:.6;cursor:not-allowed}input,textarea{font-family:inherit;outline:none;transition:all .3s ease}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-message{background:#fee;border:1px solid #fcc;color:#c33;padding:1rem;border-radius:8px;display:flex;align-items:center;gap:.5rem;margin:1rem 0}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;gap:1rem;color:#666}
