body{background:linear-gradient(135deg,#f5f7fa,#e8ecf1);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh}:root{--primary-gradient:linear-gradient(135deg,#0f766e,#14b8a6 50%,#2dd4bf);--secondary-gradient:linear-gradient(135deg,#0891b2,#06b6d4);--accent-color:#f59e0b;--text-dark:#1f2937;--text-light:#6b7280;--bg-light:#fff;--shadow-sm:0 2px 8px #00000014;--shadow-md:0 4px 16px #0000001f;--shadow-lg:0 8px 32px #00000029}.login-container{align-items:center;background:linear-gradient(135deg,#0f766e,#14b8a6 50%,#2dd4bf);display:flex;justify-content:center;min-height:100vh;padding:2rem}.login-card{animation:slideUp .5s ease;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:480px;padding:3rem;width:100%}.login-header{margin-bottom:2rem;text-align:center}.login-header h1{color:#0f766e;font-size:2rem;font-weight:700;margin:0 0 .5rem}.login-header p{color:#6b7280;font-size:1rem;margin:0}.login-form{margin-bottom:2rem}.form-group input:focus{border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a}.login-btn{background:linear-gradient(135deg,#0f766e,#14b8a6);border:none;border-radius:10px;box-shadow:0 4px 12px #0f766e4d;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem;transition:all .3s ease;width:100%}.login-btn:hover:not(:disabled){box-shadow:0 6px 20px #0f766e66;transform:translateY(-2px)}.login-btn:disabled{cursor:not-allowed;opacity:.6}.login-footer{text-align:center}.login-footer p{color:#6b7280;font-size:.875rem;margin:0 0 1rem}.login-footer a{color:#0f766e;font-weight:600;text-decoration:none}.login-footer a:hover{text-decoration:underline}.test-credentials{background:#f0fdfa;border:1px solid #99f6e4;border-radius:8px;margin-top:1rem;padding:1rem}.test-credentials p{color:#0f766e;font-size:.875rem;margin:.25rem 0}.test-credentials strong{color:#0d9488}.register-container{align-items:center;background:linear-gradient(135deg,#0891b2,#06b6d4 50%,#22d3ee);display:flex;justify-content:center;min-height:100vh;padding:2rem}.register-card{animation:slideUp .5s ease;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:520px;padding:3rem;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.register-header{margin-bottom:2rem;text-align:center}.register-header h1{color:#0891b2;font-size:2rem;font-weight:700;margin:0 0 .5rem}.register-header p{color:#6b7280;font-size:1rem;margin:0}.error-message{background:#fee2e2;border-left:4px solid #dc2626;border-radius:8px;color:#dc2626;font-size:.875rem;margin-bottom:1.5rem;padding:1rem}.register-form{margin-bottom:2rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.form-group{margin-bottom:1.5rem}.form-group label{color:#374151;display:block;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.form-group input{background:#f9fafb;border:2px solid #e5e7eb;border-radius:10px;font-size:1rem;padding:.875rem 1rem;transition:all .3s ease;width:100%}.form-group input:focus{background:#fff;border-color:#06b6d4;box-shadow:0 0 0 3px #06b6d41a;outline:none}.register-btn{background:linear-gradient(135deg,#0891b2,#06b6d4);border:none;border-radius:10px;box-shadow:0 4px 12px #0891b24d;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem;transition:all .3s ease;width:100%}.register-btn:hover:not(:disabled){box-shadow:0 6px 20px #0891b266;transform:translateY(-2px)}.register-btn:disabled{cursor:not-allowed;opacity:.6}.register-footer{text-align:center}.register-footer p{color:#6b7280;font-size:.875rem;margin:0}.register-footer a{color:#0891b2;font-weight:600;text-decoration:none}.register-footer a:hover{text-decoration:underline}@media (max-width:640px){.form-row{grid-template-columns:1fr}}.dashboard-page{padding:0}.page-header h1{margin:0 0 .5rem}.page-header p{color:#6b7280;font-size:1rem;margin:0}.stats-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:3rem}.stat-card{align-items:center;background:#fff;border-left:4px solid;border-radius:16px;box-shadow:0 4px 12px #00000014;display:flex;gap:1.5rem;padding:1.5rem;transition:all .3s ease}.stat-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-4px)}.stat-icon{font-size:2.5rem;opacity:.9}.stat-content h3{color:#1f2937;font-size:2rem;font-weight:700;margin:0 0 .25rem}.stat-content p{color:#6b7280;font-size:.875rem;font-weight:500;margin:0}.recent-section{background:#fff;border-radius:16px;box-shadow:0 4px 12px #00000014;padding:2rem}.recent-section h2{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0 0 1.5rem}.bookings-table{overflow-x:auto}.bookings-table table{border-collapse:collapse;width:100%}.badge{background:#e0f2fe;color:#0369a1;text-transform:capitalize}.status-badge{border-radius:6px;display:inline-block;padding:.25rem .75rem}.error-state,.loading{color:#6b7280;font-size:1.25rem;padding:3rem;text-align:center}.packages-page{padding:0}.btn-add{align-items:center;background:linear-gradient(135deg,#0f766e,#14b8a6);border:none;border-radius:10px;box-shadow:0 4px 12px #0f766e4d;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.875rem 1.5rem;transition:all .3s ease}.btn-add:hover{box-shadow:0 6px 20px #0f766e66;transform:translateY(-2px)}.packages-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.package-card{background:#fff;border-radius:16px;box-shadow:0 4px 12px #00000014;overflow:hidden;position:relative;transition:all .3s ease}.package-card:hover{box-shadow:0 12px 32px #00000026;transform:translateY(-8px)}.featured-badge{align-items:center;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:8px;box-shadow:0 4px 12px #f59e0b4d;color:#fff;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.5rem 1rem;position:absolute;right:1rem;top:1rem;z-index:10}.package-card img{height:220px;object-fit:cover;width:100%}.package-content{padding:1.5rem}.package-content h3{color:#1f2937;font-size:1.25rem;font-weight:700;margin:0 0 .5rem}.category,.duration{color:#6b7280;font-size:.875rem;margin:.25rem 0}.category{background:#e0f2fe;color:#0369a1;margin-bottom:.75rem}.package-footer{align-items:center;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-top:1rem;padding-top:1rem}.price{color:#0f766e}.modal-content form input:focus,.modal-content form select:focus,.modal-content form textarea:focus{border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a}.hotels-page{padding:0}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.page-header h1{color:#1f2937;font-size:2rem;font-weight:700;margin:0}.hotels-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.hotel-card{background:#fff;border-radius:16px;box-shadow:0 4px 12px #00000014;overflow:hidden;transition:all .3s ease}.hotel-card:hover{box-shadow:0 12px 32px #00000026;transform:translateY(-8px)}.hotel-card img{height:220px;object-fit:cover;width:100%}.hotel-content{padding:1.5rem}.hotel-header{align-items:start;display:flex;justify-content:space-between;margin-bottom:.5rem}.hotel-header h3{color:#1f2937;flex:1 1;font-size:1.25rem;font-weight:700;margin:0}.rating{background:#fef3c7;border-radius:6px;color:#92400e;font-weight:600;gap:.25rem;padding:.25rem .75rem}.location,.rating{align-items:center;display:flex;font-size:.875rem}.location{color:#6b7280;gap:.5rem;margin:.5rem 0}.category{background:#dbeafe;border-radius:6px;color:#1e40af;display:inline-block;font-size:.75rem;padding:.25rem .75rem}.category,.distance{font-weight:600;margin:.5rem 0}.distance{color:#059669;font-size:.875rem}.description{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#4b5563;display:-webkit-box;font-size:.875rem;line-height:1.6;margin:.75rem 0;overflow:hidden}.hotel-footer{align-items:center;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-top:1rem;padding-top:1rem}.price{color:#0891b2;font-size:1.5rem;font-weight:700}.modal-content form input,.modal-content form select,.modal-content form textarea{border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;margin-bottom:1rem;padding:.875rem;transition:all .3s ease;width:100%}.modal-content form input:focus,.modal-content form select:focus,.modal-content form textarea:focus{border-color:#06b6d4;box-shadow:0 0 0 3px #06b6d41a;outline:none}.checkbox-label{align-items:center;cursor:pointer;display:flex;gap:.5rem;margin-bottom:1.5rem}.checkbox-label input[type=checkbox]{margin:0;width:auto}.btn-primary{background:linear-gradient(135deg,#0891b2,#06b6d4);box-shadow:0 4px 12px #0891b24d}.btn-primary:hover{box-shadow:0 6px 20px #0891b266}.flights-page{padding:0}.flights-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}.flight-card{background:#fff;border-radius:16px;box-shadow:0 4px 12px #00000014;padding:1.5rem;transition:all .3s ease}.flight-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-4px)}.flight-header{align-items:start;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.airline-info h3{color:#1f2937;font-size:1.25rem;font-weight:700;margin:0 0 .25rem}.flight-number{color:#6b7280;font-size:.875rem;margin:0}.flight-class{background:#f0fdfa;border-radius:8px;color:#0d9488;font-size:.875rem;font-weight:600;padding:.5rem 1rem}.route-info{background:#f9fafb;border-radius:12px;justify-content:space-between;margin-bottom:1.5rem;padding:1rem}.route-info,.route-point{align-items:center;display:flex}.route-point{flex-direction:column;gap:.5rem}.route-point .time{color:#1f2937;font-size:1.25rem;font-weight:700}.route-point .location{color:#6b7280;font-size:.875rem}.route-line{align-items:center;color:#f59e0b;display:flex;flex-direction:column;gap:.5rem}.route-line svg{font-size:1.5rem}.duration{color:#6b7280;font-size:.75rem;font-weight:600}.pricing-info{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);margin-bottom:1rem}.price-item{align-items:center;background:#f9fafb;border-radius:8px;display:flex;justify-content:space-between;padding:.75rem}.price-item span{color:#6b7280;font-size:.875rem}.price-item strong{color:#0891b2;font-size:1rem}.flight-details{background:#f0f9ff;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:1rem;padding:.75rem}.seats,.stops{color:#0369a1;font-size:.875rem;font-weight:600}.flight-footer{border-top:1px solid #e5e7eb;display:flex;gap:1rem;margin-top:1rem;padding-top:1rem}.btn-delete,.btn-edit{align-items:center;display:flex;flex:1 1;font-size:.875rem;font-weight:600;gap:.5rem;justify-content:center;padding:.75rem}.btn-delete:hover,.btn-edit:hover{transform:translateY(-2px)}.modal-content .form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.bookings-page{padding:0}.bookings-table-container{background:#fff;border-radius:16px;box-shadow:0 4px 12px #00000014;overflow-x:auto;padding:1.5rem}.bookings-table{border-collapse:collapse;width:100%}.bookings-table th{background:#f9fafb;border-bottom:2px solid #e5e7eb;color:#374151;font-size:.875rem;font-weight:600;padding:1rem;text-align:left;white-space:nowrap}.bookings-table td{border-bottom:1px solid #e5e7eb;color:#1f2937;padding:1rem}.bookings-table tbody tr:hover{background:#f9fafb}.customer-info{display:flex;flex-direction:column;gap:.25rem}.customer-info strong{color:#1f2937;font-size:.875rem}.customer-info span{color:#6b7280;font-size:.75rem}.badge{border-radius:6px;display:inline-block;font-size:.75rem;font-weight:600;padding:.25rem .75rem;white-space:nowrap}.type-badge{background:#e0f2fe;color:#0369a1;text-transform:capitalize}.amount{color:#059669;font-size:1rem;font-weight:700}.status-badge{white-space:nowrap}.status-badge.confirmed{background:#d1fae5;color:#065f46}.status-badge.pending{background:#fed7aa;color:#92400e}.status-badge.cancelled{background:#fee2e2;color:#991b1b}.payment-badge{border-radius:8px;display:inline-block;font-size:.75rem;font-weight:600;padding:.5rem 1rem;white-space:nowrap}.payment-badge.paid{background:#d1fae5;color:#065f46}.payment-badge.pending{background:#fef3c7;color:#92400e}.payment-badge.partial{background:#dbeafe;color:#1e40af}.payment-badge.refunded{background:#e0e7ff;color:#4338ca}.vendors-page{padding:0}.vendors-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}.vendor-card{background:#fff;border-radius:16px;box-shadow:0 4px 12px #00000014;padding:1.5rem;transition:all .3s ease}.vendor-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-4px)}.vendor-header{align-items:start;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.vendor-header h3{color:#1f2937;font-size:1.25rem;font-weight:700;margin:0 0 .25rem}.vendor-type{color:#6b7280;font-size:.875rem;margin:0}.status-badge{align-items:center;border-radius:8px;display:inline-flex;font-size:.75rem;font-weight:600;gap:.5rem;padding:.5rem 1rem}.status-badge.active{background:#d1fae5;color:#065f46}.status-badge.inactive{background:#f3f4f6;color:#6b7280}.status-badge.suspended{background:#fee2e2;color:#991b1b}.vendor-info{margin-bottom:1.5rem}.info-item{background:#f9fafb;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:.75rem}.info-item .label{color:#6b7280;font-size:.875rem;font-weight:500}.info-item .value{color:#1f2937;font-size:.875rem;font-weight:600}.vendor-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-bottom:1.5rem}.stat{align-items:center;background:linear-gradient(135deg,#f0fdfa,#ccfbf1);border-radius:12px;display:flex;flex-direction:column;padding:1rem}.stat-value{color:#0d9488;font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.stat-label{color:#0f766e;font-size:.75rem;font-weight:600;text-transform:uppercase}.vendor-footer{align-items:center;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;padding-top:1rem}.joined-date{color:#6b7280;font-size:.875rem}.actions{display:flex;gap:.5rem}.btn-delete,.btn-edit{border:none;border-radius:8px;cursor:pointer;font-size:1rem;padding:.5rem .75rem;transition:all .3s ease}.btn-edit{background:#dbeafe;color:#1e40af}.btn-edit:hover{background:#bfdbfe;transform:scale(1.1)}.btn-delete{background:#fee2e2;color:#991b1b}.btn-delete:hover{background:#fecaca;transform:scale(1.1)}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;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;padding:2rem;width:90%}.modal-content h2{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0 0 1.5rem}.modal-content form input,.modal-content form select{border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;margin-bottom:1rem;padding:.875rem;transition:all .3s ease;width:100%}.modal-content form input:focus,.modal-content form select:focus{border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a;outline:none}.modal-actions{display:flex;gap:1rem;margin-top:1.5rem}.btn-primary,.btn-secondary{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:.875rem;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#0f766e,#14b8a6);box-shadow:0 4px 12px #0f766e4d;color:#fff}.btn-primary:hover{box-shadow:0 6px 20px #0f766e66;transform:translateY(-2px)}.btn-secondary{background:#f3f4f6;color:#374151}.btn-secondary:hover{background:#e5e7eb}.loading{color:#6b7280;font-size:1.25rem;padding:3rem;text-align:center}.navigation{background:linear-gradient(180deg,#0f766e,#14b8a6 50%,#2dd4bf);box-shadow:4px 0 24px #00000026;display:flex;flex-direction:column;height:100vh;left:0;overflow:hidden;position:fixed;top:0;transition:width .3s cubic-bezier(.4,0,.2,1);width:280px;z-index:1000}.navigation.closed{width:80px}.nav-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0000001a;border-bottom:1px solid #ffffff26;padding:2rem 1.5rem;position:relative}.hamburger-btn{align-items:center;background:#fff3;border:none;border-radius:8px;box-shadow:0 2px 8px #0000001a;color:#fff;cursor:pointer;display:flex;font-size:1.25rem;height:45px;justify-content:center;padding:.75rem;position:absolute;right:1.5rem;top:1.5rem;transition:all .3s ease;width:45px}.hamburger-btn:hover{background:#ffffff4d;transform:scale(1.05)}.navigation.closed .hamburger-btn{left:50%;margin:0;position:absolute;right:auto;top:50%;transform:translate(-50%,-50%)}.brand{opacity:1;transition:opacity .3s ease}.navigation.closed .brand{opacity:0;overflow:hidden;width:0}.brand h2{color:#fff;font-size:1.5rem;font-weight:700;margin:0 0 .25rem;text-shadow:0 2px 4px #0003}.brand p{color:#ffffffe6;font-size:.875rem;margin:0}.nav-menu{flex:1 1;overflow-y:auto;padding:1.5rem 0}.nav-item{align-items:center;border-radius:12px;color:#ffffffe6;display:flex;margin:.25rem .75rem;padding:1rem 1.5rem;position:relative;text-decoration:none;transition:all .3s ease}.nav-item:hover{background:#ffffff26;color:#fff;transform:translateX(4px)}.nav-item.active{background:#ffffff40;box-shadow:0 4px 12px #00000026;color:#fff;font-weight:600}.nav-item.active:before{background:#fff;border-radius:0 4px 4px 0;content:"";height:60%;left:0;position:absolute;top:50%;transform:translateY(-50%);width:4px}.nav-icon{align-items:center;display:flex;font-size:1.25rem;justify-content:center;min-width:24px}.nav-label{font-size:1rem;margin-left:1rem;opacity:1;transition:opacity .3s ease;white-space:nowrap}.navigation.closed .nav-label{opacity:0;overflow:hidden;width:0}.navigation.closed .nav-item{justify-content:center;padding:1rem}.nav-footer{background:#0000001a;border-top:1px solid #ffffff26;padding:1.5rem}.logout-btn{align-items:center;background:#ef444433;border:1px solid #ef44444d;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;justify-content:center;padding:1rem;transition:all .3s ease;width:100%}.logout-btn:hover{background:#ef44444d;box-shadow:0 4px 12px #ef44444d;transform:translateY(-2px)}.logout-btn svg{font-size:1.25rem;margin-right:.75rem}.navigation.closed .logout-btn svg{margin-right:0}.navigation.closed .logout-btn span{display:none}@media (max-width:768px){.navigation{transform:translateX(-100%)}.navigation.open{transform:translateX(0)}}.App{background:#f3f4f6;min-height:100vh}.main-content{margin-left:280px;min-height:100vh;transition:margin-left .3s cubic-bezier(.4,0,.2,1)}.navigation.closed~.main-content{margin-left:80px}@media (max-width:768px){.main-content{margin-left:0}}*{box-sizing:border-box;margin:0;padding:0}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}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.loading-container{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:400px}.spinner{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-radius:50%;border-top-color:#14b8a6;height:50px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}.error-container{align-items:center;color:#ef4444;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:400px}.error-container p{font-size:1.125rem;font-weight:600}.retry-btn{background:#14b8a6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:all .3s ease}.retry-btn:hover{background:#0f766e;transform:translateY(-2px)}.text-center{text-align:center}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.p-1{padding:.5rem}.p-2{padding:1rem}.p-3{padding:1.5rem}.p-4{padding:2rem}