*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#f8fafc,#e2e8f0 50%,#f1f5f9);color:#1e293b;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;min-height:100vh}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:#f1f5f9;border-radius:10px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#0ea5e9,#06b6d4);border:2px solid #f1f5f9;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#0284c7,#0891b2)}a{color:inherit;text-decoration:none}button{border:none;cursor:pointer;font-family:inherit}button,button:focus{outline:none}input,select,textarea{font-family:inherit;outline:none}input:focus,select:focus,textarea:focus{outline:none}.text-gradient{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#0ea5e9,#06b6d4);-webkit-background-clip:text;background-clip:text}@keyframes slideIn{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}:focus-visible{outline:2px solid #0ea5e9;outline-offset:2px}::selection{background:#0ea5e933;color:#0c4a6e}.sidebar{background:linear-gradient(180deg,#0c4a6e,#0369a1 40%,#0284c7);box-shadow:4px 0 30px #0003;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:260px;z-index:1000}.sidebar:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' height='40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 20c0-5.5-4.5-10-10-10S0 14.5 0 20s4.5 10 10 10 10-4.5 10-10zm10 0c0-5.5 4.5-10 10-10s10 4.5 10 10-4.5 10-10 10-10-4.5-10-10z' fill='%23fff' fill-opacity='.02'/%3E%3C/svg%3E");bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.sidebar.open{width:260px}.sidebar.closed{width:70px}.sidebar-header{background:#0000001a;border-bottom:1px solid #ffffff1a;gap:1rem;min-height:80px;padding:1.25rem 1.5rem;position:relative}.hamburger-btn,.sidebar-header{align-items:center;display:flex}.hamburger-btn{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff1a;border:1px solid #ffffff26;border-radius:10px;color:#fff;font-size:.9rem;height:36px;justify-content:center;position:absolute;right:1rem;top:50%;transform:translateY(-50%);transition:all .3s ease;width:36px;z-index:10}.hamburger-btn:hover{background:#fff3;transform:translateY(-50%) scale(1.05)}.sidebar.closed .hamburger-btn{left:50%;position:absolute;right:auto;top:50%;transform:translate(-50%,-50%)}.logo-container{gap:.875rem;overflow:hidden;white-space:nowrap}.logo-container,.logo-icon{align-items:center;display:flex}.logo-icon{background:linear-gradient(135deg,#38bdf8,#06b6d4);border-radius:12px;box-shadow:0 4px 15px #06b6d466;color:#fff;flex-shrink:0;font-size:1.35rem;height:44px;justify-content:center;transition:transform .3s ease;width:44px}.logo-icon:hover{transform:scale(1.05)}.logo-text h2{color:#fff;font-size:1.3rem;font-weight:700;letter-spacing:-.3px;margin:0}.logo-text span{color:#ffffffa6;font-size:.7rem;font-weight:500;letter-spacing:1.5px;text-transform:uppercase}.sidebar.closed .logo-container{opacity:0;pointer-events:none}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:.375rem;overflow-x:hidden;overflow-y:auto;padding:1rem .75rem}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.nav-item{align-items:center;border-radius:12px;color:#ffffffbf;display:flex;font-size:.9rem;font-weight:500;gap:.875rem;overflow:hidden;padding:.875rem 1rem;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1);white-space:nowrap}.nav-item:before{background:#0000;border-radius:0 3px 3px 0;bottom:0;content:"";left:0;position:absolute;top:0;transition:background .25s ease;width:3px}.nav-item:hover{background:#ffffff1a;color:#fff;transform:translateX(4px)}.nav-item:hover:before{background:#ffffff80}.nav-item.active{background:linear-gradient(135deg,#38bdf840,#06b6d440);border:1px solid #ffffff26;box-shadow:0 4px 15px #06b6d433;color:#fff}.nav-item.active:before{background:#38bdf8}.nav-icon{flex-shrink:0;font-size:1.1rem;text-align:center;transition:transform .25s ease;width:20px}.nav-item:hover .nav-icon{transform:scale(1.1)}.nav-text{opacity:1;transition:opacity .25s ease}.sidebar.closed .nav-text{opacity:0;pointer-events:none}.sidebar.closed .nav-item{justify-content:center;padding:.875rem 0}.sidebar-footer{background:#0000001a;border-top:1px solid #ffffff1a;padding:1rem .75rem}.logout-btn{align-items:center;background:#ef44441a;border:1px solid #ef444433;border-radius:12px;color:#fca5a5;display:flex;font-size:.9rem;font-weight:500;gap:.875rem;overflow:hidden;padding:.875rem 1rem;transition:all .25s ease;white-space:nowrap;width:100%}.logout-btn:hover{background:#ef444433;border-color:#ef44444d;color:#fecaca;transform:translateX(4px)}.sidebar.closed .logout-btn{justify-content:center;padding:.875rem 0}@media (max-width:768px){.sidebar{box-shadow:none;transform:translateX(-100%)}.sidebar.open{box-shadow:4px 0 30px #0000004d;transform:translateX(0);width:260px}.sidebar.closed{transform:translateX(-100%)}}.login-page{align-items:center;background:linear-gradient(135deg,#0c4a6e,#0369a1 40%,#0284c7 70%,#0ea5e9);display:flex;justify-content:center;min-height:100vh;overflow:hidden;position:relative}.login-background{bottom:0;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0}.floating-icon{animation:float 25s ease-in-out infinite;color:#ffffff14;position:absolute}.icon-1{animation-delay:0s;font-size:10rem;left:5%;top:5%}.icon-2{animation-delay:-8s;bottom:10%;font-size:8rem;right:10%}.icon-3{animation-delay:-16s;font-size:6rem;left:75%;top:50%}@keyframes float{0%,to{transform:translateY(0) rotate(0deg) scale(1)}25%{transform:translateY(-20px) rotate(5deg) scale(1.02)}50%{transform:translateY(-40px) rotate(-5deg) scale(1)}75%{transform:translateY(-20px) rotate(3deg) scale(1.01)}}.login-container{animation:slideUp .5s ease-out;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffffa;border-radius:28px;box-shadow:0 25px 50px #00000040,0 0 0 1px #ffffff1a;max-width:440px;padding:3rem 2.5rem;position:relative;width:100%;z-index:1}.login-header{margin-bottom:2.5rem;text-align:center}.login-logo{align-items:center;background:linear-gradient(135deg,#0ea5e9,#06b6d4);border-radius:20px;box-shadow:0 10px 30px #0ea5e959,0 0 0 4px #0ea5e91a;color:#fff;display:flex;font-size:2.25rem;height:75px;justify-content:center;margin:0 auto 1.25rem;transition:transform .3s ease,box-shadow .3s ease;width:75px}.login-logo:hover{box-shadow:0 15px 40px #0ea5e966,0 0 0 6px #0ea5e926;transform:scale(1.05) rotate(5deg)}.login-header h1{color:#0c4a6e;font-size:1.85rem;font-weight:700;letter-spacing:-.5px;margin-bottom:.5rem}.login-header p{color:#64748b;font-size:.95rem;font-weight:400}.login-form{display:flex;flex-direction:column;gap:1.25rem}.error-message{animation:shake .5s ease-in-out;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fecaca;border-radius:12px;color:#dc2626;font-size:.9rem;padding:.875rem 1rem;text-align:center}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.input-group{align-items:center;display:flex;position:relative}.input-icon{color:#94a3b8;font-size:1rem;left:1.125rem;position:absolute;transition:color .3s ease;z-index:1}.input-group input{background:#f8fafc;border:2px solid #e2e8f0;border-radius:14px;color:#1e293b;font-size:1rem;padding:1rem 1rem 1rem 3rem;transition:all .3s ease;width:100%}.input-group input::placeholder{color:#94a3b8}.input-group input:focus{background:#fff;border-color:#0ea5e9;box-shadow:0 0 0 4px #0ea5e91a,0 4px 12px #0ea5e91a;outline:none}.input-group input:focus+.input-icon,.input-group input:focus~.input-icon{color:#0ea5e9}.login-btn{background:linear-gradient(135deg,#0ea5e9,#06b6d4);border:none;border-radius:14px;box-shadow:0 4px 15px #0ea5e94d;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.5rem;overflow:hidden;padding:1rem;position:relative;transition:all .3s ease}.login-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.login-btn:hover:not(:disabled):before{left:100%}.login-btn:hover:not(:disabled){box-shadow:0 8px 25px #0ea5e966;transform:translateY(-2px)}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{cursor:not-allowed;opacity:.7}.login-footer{border-top:1px solid #e2e8f0;margin-top:2rem;padding-top:1.5rem;text-align:center}.login-footer p{color:#64748b;font-size:.875rem}.login-footer strong{color:#0ea5e9;font-weight:600}@media (max-width:480px){.login-container{border-radius:20px;margin:1rem;padding:2rem 1.5rem}.login-header h1{font-size:1.5rem}.login-logo{font-size:1.75rem;height:60px;width:60px}}.dashboard{animation:fadeIn .4s ease-out;margin:0 auto;max-width:1400px}.dashboard-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:2rem}.dashboard-header h1{color:#0c4a6e;font-size:2.25rem;font-weight:700;letter-spacing:-.5px;margin-bottom:.375rem}.dashboard-header p{color:#64748b;font-size:1rem;font-weight:400}.header-date{align-items:center;background:#fff;border:1px solid #f1f5f9;border-radius:14px;box-shadow:0 2px 12px #0000000f;color:#64748b;display:flex;font-size:.9rem;font-weight:500;gap:.625rem;padding:.875rem 1.5rem}.header-date svg{color:#0ea5e9;font-size:1rem}.stats-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:2rem}.stat-card{align-items:flex-start;background:#fff;border:1px solid #f1f5f9;border-radius:20px;box-shadow:0 4px 20px #0000000f;display:flex;gap:1.25rem;overflow:hidden;padding:1.75rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.stat-card:hover{box-shadow:0 12px 35px #0000001a;transform:translateY(-6px)}.stat-card:before{content:"";height:100%;left:0;position:absolute;top:0;width:5px}.stat-card.customers:before{background:linear-gradient(180deg,#0ea5e9,#06b6d4)}.stat-card.flights:before{background:linear-gradient(180deg,#f59e0b,#d97706)}.stat-card.hotels:before{background:linear-gradient(180deg,#8b5cf6,#7c3aed)}.stat-icon{align-items:center;border-radius:16px;display:flex;flex-shrink:0;font-size:1.6rem;height:60px;justify-content:center;transition:transform .3s ease;width:60px}.stat-card:hover .stat-icon{transform:scale(1.05)}.stat-card.customers .stat-icon{background:linear-gradient(135deg,#e0f2fe,#bae6fd);color:#0284c7}.stat-card.flights .stat-icon{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#d97706}.stat-card.hotels .stat-icon{background:linear-gradient(135deg,#ede9fe,#ddd6fe);color:#7c3aed}.stat-info{flex:1 1}.stat-info h3{color:#0c4a6e;font-size:2.5rem;font-weight:700;letter-spacing:-1px;margin-bottom:.25rem}.stat-info p{color:#64748b;font-size:.95rem;font-weight:500}.stat-breakdown{display:flex;flex-wrap:wrap;gap:.625rem;margin-top:1rem}.stat-breakdown span{align-items:center;border-radius:8px;display:flex;font-size:.8rem;font-weight:500;gap:.375rem;padding:.375rem .625rem}.stat-breakdown .confirmed{background:#22c55e1a;color:#16a34a}.stat-breakdown .pending{background:#eab3081a;color:#ca8a04}.stat-breakdown .cancelled{background:#ef44441a;color:#dc2626}.dashboard-content{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}.recent-section{background:#fff;border:1px solid #f1f5f9;border-radius:20px;box-shadow:0 4px 20px #0000000f;padding:1.5rem}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.25rem}.section-header h2{align-items:center;color:#0c4a6e;display:flex;font-size:1.15rem;font-weight:600;gap:.5rem}.section-header h2 svg,.view-all{color:#0ea5e9}.view-all{align-items:center;display:flex;font-size:.875rem;font-weight:500;gap:.375rem;text-decoration:none;transition:all .3s ease}.view-all:hover{color:#0284c7;gap:.5rem}.recent-list{display:flex;flex-direction:column;gap:.625rem}.recent-item{align-items:center;background:#f8fafc;border:1px solid #0000;border-radius:14px;display:flex;gap:1rem;padding:1rem;transition:all .3s ease}.recent-item:hover{background:#f1f5f9;border-color:#e2e8f0;transform:translateX(4px)}.booking-avatar,.customer-avatar{border-radius:12px;flex-shrink:0;font-size:1.1rem;height:46px;width:46px}.booking-avatar{align-items:center;color:#fff;display:flex;justify-content:center}.booking-avatar.flight{background:linear-gradient(135deg,#f59e0b,#d97706)}.booking-avatar.hotel{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.booking-info,.customer-info{flex:1 1;min-width:0}.booking-info h4,.customer-info h4{color:#0c4a6e;font-size:.95rem;font-weight:600;margin-bottom:.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-info p,.customer-info p{color:#64748b;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-date{color:#94a3b8;font-size:.8rem;font-weight:500;white-space:nowrap}.booking-status{align-items:flex-end;display:flex;flex-direction:column;gap:.25rem}.status-badge{padding:.25rem .625rem}.status-badge.confirmed{background:#22c55e26;color:#16a34a}.status-badge.pending{background:#eab30826;color:#ca8a04}.status-badge.cancelled{background:#ef444426;color:#dc2626}.status-badge.checked_in{background:#3b82f626;color:#2563eb}.status-badge.checked_out{background:#6b728026;color:#4b5563}.booking-customer{color:#94a3b8;font-size:.75rem}.empty-state{color:#94a3b8;padding:2.5rem}.empty-state svg{font-size:3rem}.empty-state p{font-size:.95rem;margin-bottom:.875rem}.add-link{color:#0ea5e9;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .3s ease}.add-link:hover{color:#0284c7;text-decoration:underline}.dashboard-loading{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:60vh}.dashboard-loading .spinner{animation:spin 1s linear infinite;border:4px solid #e0f2fe;border-radius:50%;border-top-color:#0ea5e9;height:50px;width:50px}.dashboard-loading p{color:#64748b;font-size:1rem;font-weight:500}.error-icon{font-size:3rem;margin-bottom:.5rem}.retry-btn{background:linear-gradient(135deg,#0ea5e9,#06b6d4);border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:600;margin-top:1rem;padding:.75rem 1.5rem;transition:all .3s ease}.retry-btn:hover{box-shadow:0 4px 15px #0ea5e94d;transform:translateY(-2px)}@media (max-width:768px){.dashboard-header h1{font-size:1.75rem}.dashboard-content,.stats-grid{grid-template-columns:1fr}.stat-info h3{font-size:2rem}}@media (max-width:480px){.dashboard-header{align-items:flex-start;flex-direction:column}.header-date{justify-content:center;width:100%}}.customers-page{animation:fadeIn .4s ease-out;margin:0 auto;max-width:1400px}.search-input-wrapper input:focus{box-shadow:0 0 0 4px #0ea5e91a,0 4px 12px #0ea5e91a}.spinner{border:4px solid #e0f2fe}.customers-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}.customer-card{background:#fff;border:1px solid #f1f5f9;border-radius:20px;box-shadow:0 4px 20px #0000000f;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.customer-card:hover{box-shadow:0 12px 35px #0000001a;transform:translateY(-6px)}.customer-card-header{align-items:center;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-bottom:1px solid #e0f2fe;display:flex;gap:1rem;padding:1.5rem}.customer-avatar{align-items:center;background:linear-gradient(135deg,#0ea5e9,#06b6d4);border-radius:14px;box-shadow:0 4px 12px #0ea5e94d;color:#fff;display:flex;font-size:1.35rem;font-weight:700;height:54px;justify-content:center;width:54px}.customer-name h3{color:#0c4a6e;font-size:1.15rem;font-weight:600;margin-bottom:.3rem}.nationality-badge{background:#0ea5e91a;border-radius:20px;color:#0369a1;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.customer-card-body{display:flex;flex-direction:column;gap:.875rem;padding:1.5rem}.info-row{color:#475569;font-size:.9rem;gap:.875rem}.info-icon{color:#0ea5e9;font-size:.9rem;width:18px}.customer-card-actions{background:#f8fafc;border-top:1px solid #f1f5f9;display:flex;gap:.875rem;padding:1rem 1.5rem}.modal-header{background:linear-gradient(135deg,#f0f9ff,#e0f2fe)}.btn-submit:hover{box-shadow:0 4px 15px #0ea5e94d}@media (max-width:768px){.page-header{align-items:flex-start;flex-direction:column}.btn-add{justify-content:center;width:100%}.search-form{flex-direction:column}.search-input-wrapper{min-width:100%}.btn-search{width:100%}.customers-grid,.form-row{grid-template-columns:1fr}.modal-actions{flex-direction:column}}.flight-bookings-page{margin:0 auto;max-width:1400px}.page-header h1{align-items:center;display:flex;font-size:2rem;gap:.75rem;margin-bottom:.25rem}.page-icon{color:#0ea5e9}.btn-add{background:linear-gradient(135deg,#0ea5e9,#06b6d4);border-radius:12px;box-shadow:0 4px 15px #0ea5e94d;padding:.875rem 1.5rem}.btn-add:hover{box-shadow:0 8px 25px #0ea5e966;transform:translateY(-2px)}.filters-section{margin-bottom:2rem}.search-input-wrapper input{border-radius:12px}.search-input-wrapper input:focus{border-color:#0ea5e9;box-shadow:0 0 0 4px #0ea5e91a}.search-form select{background:#fff;border:2px solid #e2e8f0;border-radius:12px;font-size:.95rem;min-width:150px;padding:.875rem 1rem}.btn-search{border-radius:12px;padding:.875rem 1.5rem}.spinner{border:3px solid #e0f2fe;border-top-color:#0ea5e9;height:40px;width:40px}.empty-state{border-radius:16px;box-shadow:0 4px 15px #0000000d}.bookings-grid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}.booking-card{border-radius:16px;box-shadow:0 4px 15px #0000000d;transition:all .3s ease}.booking-card:hover{box-shadow:0 12px 30px #0000001a;transform:translateY(-4px)}.booking-header{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-bottom:1px solid #e0f2fe;justify-content:space-between;padding:1rem 1.25rem}.booking-header,.booking-ref{align-items:center;display:flex}.booking-ref{gap:.5rem}.ref-label{color:#64748b;font-size:.85rem}.ref-number{color:#0c4a6e;font-size:1rem;font-weight:700}.status-badge{font-size:.8rem;padding:.35rem .75rem}.booking-route{align-items:center;background:#fafafa;display:flex;gap:.5rem;padding:1.25rem}.route-point{align-items:flex-start;display:flex;flex:1 1;gap:.75rem}.route-icon{font-size:1.25rem;margin-top:.25rem}.route-icon.departure{color:#0ea5e9}.route-icon.arrival{color:#22c55e}.route-details{display:flex;flex-direction:column}.route-details .city{color:#0c4a6e;font-size:.95rem;font-weight:600}.route-details .date{color:#64748b;font-size:.8rem}.route-line{align-items:center;display:flex;padding:0 .5rem}.plane-icon{color:#94a3b8;font-size:.9rem}.booking-info{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.25rem}.info-row{align-items:center;display:flex;justify-content:space-between}.info-row .label{color:#64748b;font-size:.85rem}.info-row .value{color:#0c4a6e;font-size:.9rem;font-weight:500}.info-row.price .value{color:#0ea5e9;font-size:1.1rem;font-weight:700}.class-badge{background:#0ea5e91a;border-radius:4px;font-size:.8rem;padding:.2rem .5rem}.customer-name{color:#0369a1}.booking-actions{background:#f8fafc;border-top:1px solid #f1f5f9;display:flex;gap:.75rem;padding:1rem 1.25rem}.btn-delete,.btn-edit{border-radius:10px}.btn-edit{background:#0ea5e91a;color:#0369a1}.btn-edit:hover{background:#0ea5e933}.modal-content{border-radius:20px}.modal-header h2{font-size:1.35rem}.modal-close{border-radius:10px;height:36px;width:36px}.form-group input,.form-group select,.form-group textarea{border-radius:10px;padding:.75rem 1rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#0ea5e9;box-shadow:0 0 0 4px #0ea5e91a}.form-actions{display:flex;gap:1rem;margin-top:1rem}.btn-cancel{font-weight:600}.btn-submit{background:linear-gradient(135deg,#0ea5e9,#06b6d4)}.btn-submit:hover{box-shadow:0 4px 15px #0ea5e966}@media (max-width:768px){.bookings-grid,.form-row{grid-template-columns:1fr}}.hotels-page{animation:fadeIn .4s ease-out;margin:0 auto;max-width:1400px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:2rem}.page-header h1{color:#0c4a6e;font-size:2.25rem;font-weight:700;letter-spacing:-.5px;margin-bottom:.375rem}.page-header p{color:#64748b;font-size:1rem;font-weight:400}.btn-add{align-items:center;background:linear-gradient(135deg,#8b5cf6,#7c3aed);border:none;border-radius:14px;box-shadow:0 4px 15px #8b5cf64d;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:.5rem;padding:.875rem 1.75rem;transition:all .3s ease}.btn-add:hover{box-shadow:0 8px 25px #8b5cf666;transform:translateY(-3px)}.btn-add:active{transform:translateY(-1px)}.search-section{margin-bottom:2rem}.search-form{display:flex;flex-wrap:wrap;gap:1rem}.search-input-wrapper{flex:1 1;min-width:280px;position:relative}.search-icon{color:#94a3b8;font-size:.9rem;left:1rem;position:absolute;top:50%;transform:translateY(-50%)}.search-input-wrapper input{background:#fff;border:2px solid #e2e8f0;border-radius:14px;color:#1e293b;font-size:.95rem;padding:.875rem 1rem .875rem 2.75rem;transition:all .3s ease;width:100%}.search-input-wrapper input::placeholder{color:#94a3b8}.search-input-wrapper input:focus{border-color:#8b5cf6;box-shadow:0 0 0 4px #8b5cf61a,0 4px 12px #8b5cf61a;outline:none}.status-filter{background:#fff;border:2px solid #e2e8f0;border-radius:14px;color:#1e293b;cursor:pointer;font-size:.95rem;min-width:150px;padding:.875rem 1rem;transition:all .3s ease}.status-filter:focus{border-color:#8b5cf6;box-shadow:0 0 0 4px #8b5cf61a;outline:none}.btn-search{background:#0c4a6e;border:none;border-radius:14px;color:#fff;cursor:pointer;font-weight:600;padding:.875rem 1.75rem;transition:all .3s ease}.btn-search:hover{background:#0369a1;transform:translateY(-2px)}.loading-state{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;padding:4rem}.spinner{animation:spin 1s linear infinite;border:4px solid #ede9fe;border-radius:50%;border-top-color:#8b5cf6;height:50px;width:50px}.empty-state{background:#fff;border:1px solid #f1f5f9;border-radius:20px;box-shadow:0 4px 20px #0000000f;padding:4rem 2rem;text-align:center}.empty-state svg{color:#cbd5e1;font-size:4rem;margin-bottom:1rem}.empty-state h3{color:#0c4a6e;font-size:1.25rem;margin-bottom:.5rem}.empty-state p{color:#64748b}.bookings-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}.booking-card{background:#fff;border:1px solid #f1f5f9;border-radius:20px;box-shadow:0 4px 20px #0000000f;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.booking-card:hover{box-shadow:0 12px 35px #0000001a;transform:translateY(-6px)}.booking-card-header{align-items:center;background:linear-gradient(135deg,#f5f3ff,#ede9fe);border-bottom:1px solid #e9d5ff;display:flex;gap:1rem;padding:1.25rem}.hotel-avatar{align-items:center;background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-radius:14px;box-shadow:0 4px 12px #8b5cf64d;color:#fff;display:flex;flex-shrink:0;font-size:1.25rem;height:50px;justify-content:center;width:50px}.hotel-info{flex:1 1;min-width:0}.hotel-info h3{color:#0c4a6e;font-size:1.1rem;font-weight:600;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hotel-info .location{align-items:center;color:#64748b;display:flex;font-size:.85rem;gap:.375rem}.hotel-info .location svg{color:#8b5cf6;font-size:.75rem}.status-badge{border-radius:20px;font-size:.7rem;font-weight:600;padding:.375rem .75rem;text-transform:capitalize;white-space:nowrap}.status-pending{background:#eab30826;color:#ca8a04}.status-confirmed{background:#22c55e26;color:#16a34a}.status-checked_in{background:#3b82f626;color:#2563eb}.status-checked_out{background:#6b728026;color:#4b5563}.status-cancelled{background:#ef444426;color:#dc2626}.booking-card-body{padding:1.25rem}.booking-details{display:flex;flex-direction:column;gap:.875rem}.detail-row{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.detail-item{align-items:flex-start;display:flex;gap:.625rem}.detail-icon{color:#8b5cf6;flex-shrink:0;font-size:.9rem;margin-top:.125rem}.detail-content{display:flex;flex-direction:column;gap:.125rem;min-width:0}.detail-label{color:#94a3b8;font-size:.75rem;font-weight:500}.detail-value{color:#1e293b;font-size:.9rem;font-weight:500}.detail-value.price{color:#16a34a;font-weight:600}.customer-section{align-items:center;border-top:1px solid #f1f5f9;display:flex;gap:.5rem;margin-top:1rem;padding-top:1rem}.customer-label{color:#94a3b8;font-size:.85rem}.customer-name{color:#0c4a6e;font-size:.9rem;font-weight:600}.special-requests{background:#f8fafc;border-radius:10px;color:#64748b;font-size:.85rem;margin-top:.75rem;padding:.75rem}.special-requests strong{color:#475569}.booking-card-actions{background:#f8fafc;border-top:1px solid #f1f5f9;display:flex;gap:.875rem;padding:1rem}.btn-delete,.btn-edit{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;flex:1 1;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;padding:.75rem;transition:all .3s ease}.btn-edit{background:#8b5cf61a;color:#7c3aed}.btn-edit:hover{background:#8b5cf633;transform:translateY(-2px)}.btn-delete{background:#ef44441a;color:#dc2626}.btn-delete:hover{background:#ef444433;transform:translateY(-2px)}.modal-overlay{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:2000}.modal-content{animation:slideUp .3s ease-out;background:#fff;border-radius:24px;box-shadow:0 25px 50px #00000040;max-height:90vh;max-width:700px;overflow-y:auto;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;background:linear-gradient(135deg,#f5f3ff,#ede9fe);border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:1.5rem}.modal-header h2{color:#0c4a6e;font-size:1.4rem;font-weight:600}.modal-close{align-items:center;background:#f1f5f9;border:none;border-radius:12px;color:#64748b;cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .3s ease;width:40px}.modal-close:hover{background:#e2e8f0;color:#0c4a6e}.modal-form{display:flex;flex-direction:column;gap:1rem;padding:1.5rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group.full-width{grid-column:1/-1}.form-group label{color:#475569;font-size:.9rem;font-weight:500}.form-group input,.form-group select,.form-group textarea{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;color:#1e293b;font-size:.95rem;padding:.875rem 1rem;transition:all .3s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{background:#fff;border-color:#8b5cf6;box-shadow:0 0 0 4px #8b5cf61a;outline:none}.form-group textarea{min-height:80px;resize:vertical}.modal-actions{background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;gap:1rem;padding:1.5rem}.btn-cancel{background:#f1f5f9;border:none;border-radius:12px;color:#64748b;cursor:pointer;flex:1 1;font-weight:500;padding:.875rem;transition:all .3s ease}.btn-cancel:hover{background:#e2e8f0}.btn-submit{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border:none;border-radius:12px;color:#fff;cursor:pointer;flex:1 1;font-weight:600;padding:.875rem;transition:all .3s ease}.btn-submit:hover{box-shadow:0 4px 15px #8b5cf64d;transform:translateY(-2px)}@media (max-width:768px){.page-header{align-items:flex-start;flex-direction:column}.btn-add{justify-content:center;width:100%}.search-form{flex-direction:column}.search-input-wrapper{min-width:100%}.btn-search,.status-filter{width:100%}.bookings-grid,.detail-row,.form-row{grid-template-columns:1fr}.modal-actions{flex-direction:column}}.app-container{display:flex}.app-container,.main-content{background:linear-gradient(135deg,#f8fafc,#f1f5f9);min-height:100vh}.main-content{flex:1 1;padding:2rem;transition:margin-left .3s cubic-bezier(.4,0,.2,1)}.main-content.sidebar-open{margin-left:260px;width:calc(100% - 260px)}.main-content.sidebar-closed{margin-left:70px;width:calc(100% - 70px)}.loading-screen{align-items:center;background:linear-gradient(135deg,#0c4a6e,#0369a1 40%,#0ea5e9);display:flex;flex-direction:column;justify-content:center;min-height:100vh;overflow:hidden;position:relative}.loading-screen:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z' fill='%23fff' fill-opacity='.03' fill-rule='evenodd'/%3E%3C/svg%3E");bottom:0;content:"";left:0;opacity:.5;position:absolute;right:0;top:0}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #ffffff1a;border-radius:50%;border-top-color:#fff;height:60px;position:relative;width:60px;z-index:1}@keyframes spin{to{transform:rotate(1turn)}}.loading-screen p{color:#ffffffe6;font-size:1.1rem;font-weight:500;letter-spacing:.5px;margin-top:1.5rem;position:relative;z-index:1}.page-enter{opacity:0;transform:translateY(20px)}.page-enter-active{opacity:1;transform:translateY(0);transition:opacity .3s ease,transform .3s ease}@media (max-width:768px){.main-content{padding:1rem}.main-content.sidebar-closed,.main-content.sidebar-open{margin-left:0;width:100%}}@media (max-width:480px){.main-content{padding:.75rem}}