:root{--bg: #f2f7f4;--surface: #ffffff;--surface-2: #eef6f2;--ink: #0f2419;--muted: #52725f;--faint: #7fa18c;--border: rgba(15, 70, 45, .09);--border-strong: rgba(15, 70, 45, .16);--primary: #0d9488;--primary-strong: #0f766e;--violet: #10b981;--sky: #06b6d4;--success: #059669;--success-bg: #e7f6f0;--warning: #b45309;--warning-bg: #fdf3e3;--danger: #e11d48;--danger-bg: #fdecef;--grad: linear-gradient(135deg, #059669, #0d9488 50%, #06b6d4);--grad-soft: linear-gradient(135deg, rgba(5, 150, 105, .12), rgba(13, 148, 136, .12), rgba(6, 182, 212, .12));--shadow-sm: 0 1px 2px rgba(15, 70, 45, .05);--shadow-md: 0 2px 6px rgba(15, 70, 45, .06), 0 8px 24px rgba(15, 70, 45, .05);--shadow-lg: 0 12px 40px rgba(15, 70, 45, .14);--ring: 0 0 0 4px rgba(13, 148, 136, .16);--radius: 18px;--radius-sm: 12px}@media (prefers-color-scheme: dark){:root{--bg: #0b1512;--surface: #102019;--surface-2: #16291f;--ink: #ecf7f1;--muted: #9dc4b0;--faint: #6c9680;--border: rgba(150, 220, 190, .12);--border-strong: rgba(150, 220, 190, .24);--primary: #2dd4bf;--primary-strong: #14b8a6;--violet: #34d399;--sky: #5eead4;--success: #34d399;--success-bg: rgba(16, 185, 129, .14);--warning: #fbbf24;--warning-bg: rgba(245, 158, 11, .14);--danger: #fb7185;--danger-bg: rgba(244, 63, 94, .14);--grad: linear-gradient(135deg, #10b981, #0d9488 50%, #22d3ee);--grad-soft: linear-gradient(135deg, rgba(16, 185, 129, .16), rgba(13, 148, 136, .16), rgba(34, 211, 238, .16));--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 2px 6px rgba(0, 0, 0, .35), 0 10px 30px rgba(0, 0, 0, .25);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5);--ring: 0 0 0 4px rgba(45, 212, 191, .25)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--ink);min-height:100vh;min-height:100dvh;padding:calc(env(safe-area-inset-top,0px) + 16px) 16px calc(env(safe-area-inset-bottom,0px) + 16px);-webkit-font-smoothing:antialiased}.container{max-width:520px;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes gradShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--success)}70%{box-shadow:0 0 0 6px transparent}}@keyframes dashFlow{to{stroke-dashoffset:-16}}@keyframes bob{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(-5deg)}}@keyframes pulseGlow{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@keyframes planeRun{0%{left:-10%;transform:translateY(-50%) rotate(82deg);opacity:0}6%{opacity:1}45%{transform:translateY(-50%) rotate(98deg)}94%{opacity:1}to{left:110%;transform:translateY(-50%) rotate(82deg);opacity:0}}@keyframes cloudDrift{0%{transform:translate(-45vw)}to{transform:translate(135vw)}}@keyframes heroSwoop{0%{left:-8%;top:92%;transform:rotate(38deg);opacity:0}8%{opacity:1}45%{transform:rotate(58deg)}50%{left:50%;top:26%;transform:rotate(64deg)}55%{transform:rotate(70deg)}92%{opacity:1}to{left:108%;top:92%;transform:rotate(38deg);opacity:0}}.navbar{display:flex;align-items:center;gap:14px;max-width:640px;margin:0 auto 16px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:10px 14px;box-shadow:var(--shadow-md);animation:fadeUp .4s ease both}.navbar-brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:inherit;flex-shrink:0;-webkit-tap-highlight-color:transparent}.navbar-logo{width:34px;height:34px;border-radius:11px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 14px #0d948859;animation:bob 3s ease-in-out infinite}.navbar-logo svg{width:78%;height:78%;display:block}.navbar-name{font-weight:800;font-size:1.05rem;letter-spacing:-.5px;display:inline-flex;align-items:baseline}.wm-safar{color:var(--ink)}.wm-vibe{background:linear-gradient(135deg,#059669,#0d9488 50%,#06b6d4);-webkit-background-clip:text;background-clip:text;color:transparent}.navbar-flight{position:relative;flex:1;height:26px;min-width:0;overflow:hidden}.navbar-path{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.navbar-dash{fill:none;stroke:var(--primary);stroke-opacity:.45;stroke-width:2;stroke-linecap:round;stroke-dasharray:7 9;animation:dashFlow 1.1s linear infinite}.navbar-plane{position:absolute;top:50%;font-size:1rem;line-height:1;animation:planeRun 4.5s linear infinite;will-change:left,transform}.navbar-plane:before{content:"";position:absolute;right:100%;top:50%;width:42px;height:3px;border-radius:3px;margin-top:-1.5px;background:linear-gradient(to left,var(--primary),transparent);opacity:.45}.navbar-user{display:flex;align-items:center;gap:8px;flex-shrink:0}.hero{position:relative;overflow:hidden;border-radius:22px;padding:20px;margin-bottom:16px;color:#fff;background:linear-gradient(135deg,#047857,#0d9488 45%,#0891b2);background-size:200% 200%;animation:gradShift 14s ease infinite;box-shadow:var(--shadow-lg);min-height:190px}.hero-sky{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.hero-content{position:relative;z-index:2}.sun{position:absolute;top:16px;right:18px;width:42px;height:42px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95),rgba(255,255,255,.25) 62%,transparent 72%);box-shadow:0 0 28px 6px #ffffff59;animation:pulseGlow 4s ease-in-out infinite}.cloud{position:absolute;background:#ffffffeb;border-radius:999px}.cloud:before,.cloud:after{content:"";position:absolute;background:inherit;border-radius:50%}.cloud-1{width:90px;height:22px;top:40px;animation:cloudDrift 30s linear infinite}.cloud-1:before{width:36px;height:36px;top:-19px;left:12px}.cloud-1:after{width:26px;height:26px;top:-13px;right:12px}.cloud-2{width:70px;height:18px;bottom:34px;opacity:.75;animation:cloudDrift 38s linear infinite;animation-delay:-14s}.cloud-2:before{width:28px;height:28px;top:-15px;left:10px}.cloud-2:after{width:20px;height:20px;top:-10px;right:8px}.cloud-3{width:56px;height:15px;bottom:12px;opacity:.55;animation:cloudDrift 46s linear infinite;animation-delay:-28s}.cloud-3:before{width:24px;height:24px;top:-13px;left:8px}.cloud-3:after{width:17px;height:17px;top:-9px;right:6px}.hero-flight{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.hero-flight-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.flight-dash{fill:none;stroke:#ffffffbf;stroke-width:2;stroke-linecap:round;stroke-dasharray:5 11;animation:dashFlow 1.2s linear infinite}.hero-plane{position:absolute;font-size:1.05rem;line-height:1;animation:heroSwoop 9s ease-in-out infinite;will-change:left,top,transform}.hero-plane:before{content:"";position:absolute;right:100%;top:50%;width:72px;height:4px;border-radius:4px;margin-top:-2px;background:linear-gradient(to left,#fffffff2,#fff0)}.hero-top{display:flex;align-items:center;gap:12px}.brand-mark{width:44px;height:44px;border-radius:14px;background:#fff3;border:1px solid rgba(255,255,255,.35);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;animation:bob 3.5s ease-in-out infinite}.brand-mark svg{width:70%;height:70%;display:block}.brand-name{font-size:1.35rem;font-weight:800;letter-spacing:-.5px;line-height:1.1;display:inline-flex;align-items:baseline}.brand-name .wm-safar{color:#fff}.brand-name .wm-vibe{background:linear-gradient(135deg,#6ee7b7,#5eead4 50%,#67e8f9);-webkit-background-clip:text;background-clip:text;color:transparent}.brand-tag{font-size:.78rem;color:#ffffffd9;margin-top:2px}.header{text-align:center;margin-bottom:24px}.header h1{font-size:2rem;font-weight:800;letter-spacing:-1px;line-height:1.1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.header p{color:var(--muted);font-size:.85rem;margin:4px 0 0}.stats-bar{display:flex;gap:16px;justify-content:center;margin-bottom:20px;color:var(--muted);font-size:.8rem;flex-wrap:wrap}.stats-bar span{font-weight:600;color:var(--ink)}.card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px;margin-bottom:12px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;animation:fadeUp .4s ease both}.route-card-link{display:block;text-decoration:none;color:inherit;cursor:pointer}@media (hover: hover){.route-card-link:hover,.flight-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),0 0 0 1px var(--primary);border-color:var(--primary)}}.route-card-link:active{transform:translateY(0) scale(.99)}.chevron{color:var(--faint);font-size:1.3rem;font-weight:500;line-height:1;align-self:center;transition:transform .2s ease}.route-card-link:active .chevron{transform:translate(3px)}.route-header{display:flex;align-items:center;justify-content:space-between}.route-cities{display:flex;align-items:center;gap:10px}.code-chip{font-size:1.15rem;font-weight:800;letter-spacing:.6px;color:var(--ink);background:var(--surface-2);border:1px solid var(--border);padding:4px 12px;border-radius:12px}.plane-arrow{color:var(--primary);font-size:1rem}.route-cities .arrow{color:var(--faint);margin:0 6px}.route-actions{display:flex;align-items:center;gap:8px}.badge{font-size:.62rem;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.6px;text-transform:uppercase}.badge.active{background:var(--success-bg);color:var(--success)}.badge.paused{background:var(--warning-bg);color:var(--warning)}.badge-expired{background:var(--danger-bg);color:var(--danger)}.route-meta{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:.78rem;color:var(--muted);flex-wrap:wrap}.route-meta .count{font-weight:700;color:var(--ink)}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--success);animation:pulse 2s infinite;flex-shrink:0}.btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 16px;border-radius:var(--radius-sm);font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,transform .1s,box-shadow .15s;-webkit-tap-highlight-color:transparent;border:none;text-decoration:none}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--violet));color:#fff;box-shadow:0 4px 14px #0d94884d}.btn-primary:active{transform:scale(.97)}.btn-outline{background:var(--surface);color:var(--primary);border:1px solid var(--border-strong)}.btn-outline:active{background:var(--surface-2)}.btn-sm{padding:6px 12px;font-size:.74rem;border-radius:10px}.btn-add{width:100%;padding:15px;border:2px dashed var(--border-strong);border-radius:16px;background:var(--surface);color:var(--muted);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;display:block;text-align:center;-webkit-tap-highlight-color:transparent}.btn-add:active{background:var(--grad-soft);border-color:var(--primary);color:var(--primary)}.empty{text-align:center;padding:40px 20px;color:var(--muted)}.empty p{font-size:.9rem;line-height:1.6}.empty .btn{margin-top:16px}.guides{margin:36px auto 0;max-width:560px;text-align:center}.guides-title{font-size:.78rem;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin-bottom:14px}.guides-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.guide-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 12px;text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}@media (hover: hover){.guide-card:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--shadow-md)}}.guide-card-title{font-size:.9rem;font-weight:700;color:var(--ink)}.guide-card-sub{font-size:.78rem;color:var(--muted)}.route-actions .btn{min-width:60px;text-align:center}.route-del{border:none;background:transparent;color:var(--danger);font-size:.7rem;font-weight:600;cursor:pointer;padding:2px 6px;border-radius:6px;letter-spacing:.3px;-webkit-tap-highlight-color:transparent}.route-del:hover{background:var(--danger-bg)}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;overflow:hidden;background:linear-gradient(135deg,#047857,#0d9488,#06b6d4);animation:gradShift 8s ease infinite;color:#fff}.splash-sky{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.splash-logo{position:relative;z-index:1;width:96px;height:96px;border-radius:28px;background:#fff3;border:1px solid rgba(255,255,255,.4);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;box-shadow:0 16px 40px #00000040}.splash-logo svg{width:82%;height:82%;display:block}.splash-name{position:relative;z-index:1;font-size:2.4rem;font-weight:800;letter-spacing:-.6px;margin-top:18px}.splash-name .wm-safar{color:#fff}.splash-name .wm-vibe{background:linear-gradient(135deg,#6ee7b7,#5eead4 50%,#67e8f9);-webkit-background-clip:text;background-clip:text;color:transparent}.splash-tagline{position:relative;z-index:1;font-size:1.2rem;font-weight:500;color:#fffffff2;margin-top:8px;text-align:center;padding:0 24px;animation:fadeUp .5s ease both}.splash-dots{position:relative;z-index:1;display:flex;gap:6px;margin-top:16px}.splash-dot{width:7px;height:7px;border-radius:50%;background:#ffffff59;transition:background .3s,transform .3s}.splash-dot.active{background:#fff;transform:scale(1.25)}.splash-flight{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.splash-plane{position:absolute;font-size:1.6rem;line-height:1;animation:heroSwoop 5s ease-in-out infinite;will-change:left,top,transform}.splash-plane:before{content:"";position:absolute;right:100%;top:50%;width:110px;height:5px;border-radius:5px;margin-top:-2.5px;background:linear-gradient(to left,#fffffff2,#fff0)}.spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;gap:14px}.spinner-ring{width:34px;height:34px;border-radius:50%;border:3px solid var(--border-strong);border-top-color:var(--primary);animation:spin .8s linear infinite}.spinner p{color:var(--muted);font-size:.85rem}.btn-spinner{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:spin .7s linear infinite;display:inline-block;vertical-align:middle;margin-right:6px}.login-page{position:relative;height:calc(100vh - 32px);height:calc(100dvh - 32px);display:flex;align-items:center;justify-content:center;padding:16px;overflow:hidden;background:radial-gradient(560px 420px at 15% -5%,rgba(5,150,105,.16),transparent 60%),radial-gradient(560px 420px at 105% 15%,rgba(6,182,212,.18),transparent 60%),radial-gradient(500px 420px at 50% 115%,rgba(13,148,136,.14),transparent 60%),var(--bg)}.login-wrap{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:72px;max-width:920px;width:100%;max-height:100%}.landing{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.landing-logo{display:flex;align-items:center;gap:14px;margin-bottom:32px}.landing-logo h1{font-size:2rem;font-weight:800;letter-spacing:-.5px}.landing h2{font-size:2.4rem;font-weight:800;letter-spacing:-.9px;line-height:1.1;margin-bottom:18px;color:var(--ink)}.landing-lead{color:var(--muted);font-size:1rem;line-height:1.7;max-width:430px}.login-orb{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;animation:floaty 7s ease-in-out infinite;pointer-events:none}.login-orb-1{width:220px;height:220px;background:#10b981;top:-60px;right:-40px}.login-orb-2{width:260px;height:260px;background:#06b6d4;bottom:-80px;left:-60px;animation-delay:-3.5s}.login-flight{position:absolute;top:0;left:0;right:0;height:120px;pointer-events:none}.login-plane{position:absolute;font-size:1.4rem;line-height:1;animation:loginFly 8s ease-in-out infinite;will-change:left,top,transform}@keyframes loginFly{0%{left:-10%;top:78%;transform:rotate(32deg);opacity:0}10%{opacity:1}50%{left:55%;top:18%;transform:rotate(58deg)}90%{opacity:1}to{left:110%;top:78%;transform:rotate(32deg);opacity:0}}.login-card{position:relative;z-index:1;background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:32px 28px;box-shadow:var(--shadow-lg);text-align:center;max-width:340px;width:100%;animation:fadeUp .5s ease both}.login-card:before{content:"";position:absolute;top:0;left:24px;right:24px;height:3px;border-radius:0 0 6px 6px;background:var(--grad)}.login-card-mark{width:52px;height:52px;margin:0 auto 14px}.login-card-title{color:var(--ink);font-size:1.05rem;font-weight:700;margin-bottom:20px}.login-logo-mark{width:58px;height:58px;border-radius:18px;flex-shrink:0;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px #0d948859}.login-logo-mark svg{width:76%;height:76%;display:block}.login-card h1{font-size:1.7rem;font-weight:800;color:var(--ink);letter-spacing:-.5px}.login-card p{color:var(--muted);font-size:.87rem;margin:6px 0 28px}.google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px;border:1px solid var(--border-strong);border-radius:14px;background:var(--surface);color:var(--ink);font-size:.95rem;font-weight:700;cursor:pointer;text-decoration:none;transition:background .15s,box-shadow .15s,transform .1s;-webkit-tap-highlight-color:transparent}.google-btn svg{flex-shrink:0}.google-btn:hover{box-shadow:var(--shadow-md);background:var(--surface-2)}.google-btn:active{transform:scale(.98)}.login-note{color:var(--faint);font-size:.75rem;margin-top:16px}.user-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.user-avatar-fallback{background:var(--grad);color:#fff;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center}.user-logout{color:var(--primary);font-size:.75rem;font-weight:700;text-decoration:none;padding:5px 10px;border-radius:20px;transition:background .15s;border:1px solid var(--border-strong);background:var(--surface)}.user-logout:active{background:var(--surface-2)}.search-card{margin-bottom:16px}.search-card .form-row{display:flex;gap:8px;margin-bottom:10px}.search-card .form-group{flex:1;position:relative}.search-card select.field-input{width:100%;min-height:46px;padding:0 14px;margin-bottom:12px;border:1px solid var(--border-strong);border-radius:12px;font-size:.92rem;font-family:inherit;color:var(--ink);background:var(--surface-2);outline:none;transition:border-color .15s,box-shadow .15s,background .15s;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--faint) 50%),linear-gradient(135deg,var(--faint) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat}.search-card select.field-input:focus{border-color:var(--primary);background-color:var(--surface);box-shadow:var(--ring)}.search-card .btn-search{width:100%;padding:13px;background:var(--grad);color:#fff;border:none;border-radius:12px;font-size:.92rem;font-weight:700;cursor:pointer;transition:transform .1s,box-shadow .2s;-webkit-tap-highlight-color:transparent;box-shadow:0 6px 18px #0d94884d}.search-card .btn-search:active{transform:scale(.98)}.form-page .field-input,.search-card .form-group input[type=text]{width:100%;min-height:46px;padding:0 14px;border:1px solid var(--border-strong);border-radius:12px;font-size:.92rem;font-family:inherit;color:var(--ink);outline:none;background:var(--surface-2);transition:border-color .15s,box-shadow .15s,background .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-page .field-input:focus,.search-card .form-group input[type=text]:focus{border-color:var(--primary);background:var(--surface);box-shadow:var(--ring)}.form-page .field-input::placeholder,.search-card .form-group input[type=text]::placeholder{color:var(--faint)}.search-date{width:100%;height:46px;padding:0 14px;margin:6px 0 12px;border:1px solid var(--border-strong);border-radius:12px;font-size:.92rem;font-family:inherit;color:var(--ink);outline:none;background:var(--surface-2);-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s,background .15s}.search-date:focus{border-color:var(--primary);background:var(--surface);box-shadow:var(--ring)}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;z-index:100;background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;margin-top:4px;box-shadow:var(--shadow-lg);display:none;max-height:220px;overflow-y:auto}.autocomplete-dropdown.visible{display:block}.autocomplete-item{padding:10px 12px;cursor:pointer;font-size:.82rem;border-bottom:1px solid var(--border);line-height:1.3;transition:background .1s}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item.active,.autocomplete-item:active{background:var(--surface-2)}.autocomplete-item .code{font-weight:800;color:var(--primary)}.autocomplete-item .city{color:var(--ink)}.autocomplete-item .name{color:var(--muted);font-size:.72rem;display:block;margin-top:1px}.autocomplete-item .country{color:var(--faint);font-size:.65rem}.results-body{padding:12px}.back-link{color:var(--primary);text-decoration:none;font-size:.85rem;font-weight:600;padding:6px 10px;border-radius:8px;-webkit-tap-highlight-color:transparent;transition:background .15s;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.back-link:active{background:var(--surface-2)}.results-header{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:10px 12px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;box-shadow:var(--shadow-md);position:sticky;top:calc(12px + env(safe-area-inset-top,0px));z-index:10;animation:fadeUp .35s ease both}.back-btn{width:34px;height:34px;border-radius:999px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--ink);text-decoration:none;font-size:1rem;font-weight:700;line-height:1;border:1px solid var(--border);-webkit-tap-highlight-color:transparent;transition:background .15s,transform .1s;cursor:pointer}.back-btn:hover{background:var(--border-strong)}.back-btn:active{transform:scale(.94)}.route-title{flex:1;text-align:center;min-width:0;display:flex;flex-direction:column;align-items:center}.route-codes{font-size:1.15rem;font-weight:800;color:var(--ink);letter-spacing:.3px;display:flex;align-items:center;gap:8px}.route-codes .arrow{color:var(--primary);font-weight:800}.route-date{font-size:.76rem;color:var(--muted);font-weight:600;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:2px 12px;margin-top:4px}.results-header .route-del{border:1px solid rgba(225,29,72,.3);background:var(--danger-bg);color:var(--danger);font-size:.75rem;font-weight:700;text-transform:none;letter-spacing:0;padding:8px 14px;border-radius:999px;flex-shrink:0;display:inline-flex;align-items:center;gap:6px}.results-header .route-del:hover{filter:brightness(.97)}.results-header .route-del:disabled{opacity:.6;cursor:default}.flight-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:10px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;box-shadow:var(--shadow-sm);overflow:hidden;animation:fadeUp .4s ease both}.flight-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad);opacity:0;transition:opacity .2s ease}.flight-card.expanded:before{opacity:1}.flight-card:active{transform:scale(.99)}.flight-card .card-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.flight-card .card-left{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.flight-card .airline-badge{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:.78rem;letter-spacing:.3px;flex-shrink:0;box-shadow:0 4px 12px #0f172a33}.flight-card .airline-name{font-size:.8rem;color:var(--muted);font-weight:600}.flight-card .flight-num{color:var(--faint);font-weight:500}.flight-card .times{font-size:1.05rem;font-weight:700;color:var(--ink);margin-top:2px;display:flex;align-items:center;gap:8px}.flight-card .time-arrow{color:var(--faint);font-size:.8rem}.flight-card .meta{font-size:.8rem;color:var(--muted);margin-top:3px}.flight-card .card-right{text-align:right;flex-shrink:0}.flight-card .price{font-size:1.2rem;font-weight:800;color:var(--ink);letter-spacing:-.3px}.flight-card .hint{font-size:.7rem;color:var(--faint);margin-top:4px}.flight-card .chart-box{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.flight-card .chart-box canvas{width:100%!important;max-height:160px}.chart-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.stat-item{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:8px 10px;text-align:center}.stat-label{font-size:.62rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--faint)}.stat-value{font-size:.92rem;font-weight:800;color:var(--ink);margin-top:2px}.history-loading{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;padding:10px 0}.flight-card .chart-placeholder{color:var(--faint);font-size:.82rem;text-align:center;padding:20px 0}.no-flights{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:40px 20px;text-align:center;box-shadow:var(--shadow-sm);animation:fadeUp .4s ease both}.no-flights p{color:var(--muted);font-size:1rem}.no-flights p.hint{font-size:.85rem;color:var(--faint);margin-top:6px}.pending-scrape{display:flex;justify-content:center;margin-bottom:14px}.pending-scrape .btn-spinner{width:26px;height:26px;border-width:3px;color:var(--primary);margin:0}.no-flights a{color:var(--primary);text-decoration:none;font-size:.85rem;font-weight:600;margin-top:8px;display:inline-block;cursor:pointer}.results-header .route-edit{border:1px solid var(--border-strong);background:var(--surface-2);color:var(--ink);font-size:.75rem;font-weight:700;padding:8px 14px;border-radius:999px;flex-shrink:0;display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:background .15s,border-color .15s}.results-header .route-edit:hover{background:var(--border);border-color:var(--primary)}.selection-panel{animation:fadeUp .4s ease both}.selection-loading{padding:32px 0;display:flex;justify-content:center}.selection-head{text-align:center;margin-bottom:16px}.selection-title{font-size:1.3rem;font-weight:800;color:var(--ink);letter-spacing:-.3px}.selection-sub{font-size:.85rem;color:var(--muted);margin-top:6px;max-width:460px;margin-left:auto;margin-right:auto}.selection-tools{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.selection-tools .sel-count{margin-left:auto;font-size:.8rem;font-weight:700;color:var(--muted)}.sel-btn{border:1px solid var(--border-strong);background:var(--surface-2);color:var(--ink);font-size:.78rem;font-weight:700;padding:7px 14px;border-radius:999px;cursor:pointer;transition:background .15s,border-color .15s}.sel-btn:hover{background:var(--border);border-color:var(--primary)}.select-card{display:flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.select-card .select-box{width:22px;height:22px;border-radius:7px;border:2px solid var(--border-strong);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.72rem;font-weight:800;color:#fff;transition:background .15s,border-color .15s}.select-card .select-box.checked{background:var(--primary);border-color:var(--primary)}.select-card.selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary),var(--shadow-sm)}.select-card.selected:before{opacity:1}.selection-save{display:block;width:100%;height:52px;margin-top:14px;background:var(--grad);color:#fff;border:none;border-radius:14px;font-size:1rem;font-weight:700;cursor:pointer;transition:transform .1s,box-shadow .2s;-webkit-tap-highlight-color:transparent;box-shadow:0 8px 22px #0d94884d}.selection-save:active{transform:scale(.98)}.selection-save:disabled{opacity:.6;cursor:default;transform:none}.sel-skip{display:block;margin:10px auto 0;border:none;background:none;color:var(--muted);font-size:.8rem;font-weight:600;text-decoration:underline;cursor:pointer}.sel-skip:hover{color:var(--primary)}.sel-skip:disabled{opacity:.6;cursor:default}.selection-panel .msg{font-size:.85rem;margin-top:12px;text-align:center;font-weight:500}.selection-panel .msg.error{color:var(--danger)}.form-page{display:flex;flex-direction:column;align-items:center}.form-page .container{max-width:420px;width:100%}.form-page .back-link{margin-bottom:20px}.form-page .card-custom{background:var(--surface);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-md);padding:28px 24px;animation:fadeUp .4s ease both}.form-page .card-custom h2{font-size:1.4rem;font-weight:800;color:var(--ink);margin-bottom:4px;letter-spacing:-.4px}.form-page .card-custom p{color:var(--muted);font-size:.85rem;margin-bottom:24px}.form-page .field{margin-bottom:16px}.form-page .field-label{display:block;font-size:.72rem;font-weight:700;color:var(--muted);margin-bottom:6px;letter-spacing:.5px;text-transform:uppercase}.form-page .field-row{display:flex;gap:12px}.form-page .field-row .field{flex:1}.form-page .form-btn{width:100%;height:52px;background:var(--grad);color:#fff;border:none;border-radius:14px;font-size:1rem;font-weight:700;cursor:pointer;transition:transform .1s,box-shadow .2s;-webkit-tap-highlight-color:transparent;margin-top:4px;box-shadow:0 8px 22px #0d94884d}.form-page .form-btn:active{transform:scale(.98)}.form-page .form-btn:disabled{opacity:.6;cursor:default;transform:none}.form-page .msg{font-size:.85rem;margin-top:12px;text-align:center;font-weight:500}.form-page .msg.error{color:var(--danger)}.form-page .msg.success{color:var(--success)}.manage-body{padding:16px}.manage-body .container{max-width:560px;margin:0 auto}.manage-body .back-link{margin-bottom:16px}.manage-body h1{font-size:1.5rem;color:var(--ink);margin-bottom:4px;font-weight:800;letter-spacing:-.4px}.manage-body .subtitle{color:var(--muted);font-size:.85rem;margin-bottom:20px}.route-section{margin-bottom:20px}.route-section-title{font-size:.72rem;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin-bottom:10px;padding-left:4px}.route-section-title-expired{color:var(--danger);opacity:.7}.route-section-expired{margin-top:8px;padding-top:16px;border-top:1px dashed var(--border-strong)}.expired-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.expired-sub{font-size:.78rem;color:var(--muted);margin-top:2px}.btn-expired-clear{padding:6px 14px;border-radius:10px;font-size:.76rem;font-weight:600;border:1px solid var(--border-strong);background:var(--surface);color:var(--danger);cursor:pointer;transition:background .15s,transform .1s;display:flex;align-items:center;gap:5px;-webkit-tap-highlight-color:transparent}.btn-expired-clear:active{transform:scale(.95)}.btn-expired-clear:hover{background:#fef2f2}.expired-card{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;opacity:.7;animation:fadeUp .4s ease both}.expired-card-deleting{opacity:.35;pointer-events:none}.expired-card-left{display:flex;align-items:center;gap:12px;min-width:0}.expired-date{font-size:.78rem;color:var(--muted);white-space:nowrap}.btn-expired-remove{padding:5px 12px;border-radius:8px;font-size:.74rem;font-weight:600;border:1px solid var(--danger);background:transparent;color:var(--danger);cursor:pointer;transition:background .15s,transform .1s;white-space:nowrap;-webkit-tap-highlight-color:transparent}.btn-expired-remove:active{transform:scale(.95)}.btn-expired-remove:hover{background:#fef2f2}.manage-body .route-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;animation:fadeUp .4s ease both}.manage-body .route-card .card-info{flex:1;min-width:0}.manage-body .route-card .card-info .route{font-size:1.05rem;font-weight:700;color:var(--ink)}.manage-body .route-card .card-info .meta{font-size:.78rem;color:var(--muted);margin-top:3px}.manage-body .route-card .card-actions{display:flex;gap:6px;flex-shrink:0}.manage-body .btn-action{padding:7px 12px;border-radius:10px;font-size:.74rem;font-weight:600;cursor:pointer;transition:background .15s,transform .1s;-webkit-tap-highlight-color:transparent;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);text-decoration:none;display:inline-block;line-height:1.4}.manage-body .btn-action:active{transform:scale(.95)}.manage-body .btn-action.btn-view{color:var(--primary);border-color:var(--primary)}.manage-body .btn-action.btn-pause{color:var(--warning);border-color:var(--warning)}.manage-body .btn-action.btn-resume{color:var(--success);border-color:var(--success)}.manage-body .btn-action.btn-del{color:var(--danger);border-color:var(--danger)}.admin-body .container{max-width:640px}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:10px;margin-bottom:14px}.admin-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 12px;text-align:center;box-shadow:var(--shadow-sm);animation:fadeUp .4s ease both}.admin-stat-value{font-size:1.5rem;font-weight:800;color:var(--primary);letter-spacing:-.5px}.admin-stat-label{font-size:.7rem;color:var(--muted);margin-top:3px;text-transform:uppercase;letter-spacing:.4px}.admin-last-scrape{font-size:.78rem;color:var(--muted);background:var(--surface-2);border-radius:10px;padding:8px 12px;margin-bottom:18px}.admin-last-scrape strong{color:var(--ink)}.admin-section-title{font-size:1rem;font-weight:800;color:var(--ink);margin:18px 0 10px;letter-spacing:-.3px}.admin-user-card{flex-wrap:wrap}.admin-user-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.admin-avatar{width:38px;height:38px;font-size:1rem}.admin-user-name{font-size:.95rem;font-weight:700;color:var(--ink)}.admin-user-email{font-size:.78rem;color:var(--faint)}.admin-user-routes{flex-basis:100%;margin-top:12px;padding-top:12px;border-top:1px dashed var(--border-strong);display:grid;gap:8px}.admin-route-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--surface-2);border-radius:10px;padding:8px 10px}.admin-route-meta{font-size:.75rem;color:var(--muted);flex:1;min-width:120px}.admin-badge{font-size:.68rem;font-weight:700;color:var(--primary);border:1px solid var(--primary);border-radius:999px;padding:4px 10px;flex-shrink:0;opacity:.85}.admin-delete-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0a0c148c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease both}.admin-delete-box{background:var(--surface);border:1px solid var(--border-strong);border-radius:16px;padding:26px 34px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-md)}.admin-delete-box p{font-size:.9rem;font-weight:600;color:var(--ink)}.navbar-admin-link{color:var(--primary);font-size:.72rem;font-weight:700;text-decoration:none;padding:5px 10px;border-radius:20px;border:1px solid var(--border-strong);background:var(--surface);transition:background .15s}.navbar-admin-link:active{background:var(--surface-2)}.footer{margin-top:56px;background:var(--surface);border-top:1px solid var(--border)}.footer-inner{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:1fr 1.1fr;gap:48px;padding:48px 20px 40px;align-items:start}.footer-brand{display:flex;align-items:center;gap:12px}.footer-logo{width:44px;height:44px;border-radius:14px;flex-shrink:0;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px #0d94884d}.footer-logo svg{width:74%;height:74%;display:block}.footer-brand-name{font-size:1.25rem;font-weight:800;letter-spacing:-.4px;color:var(--ink)}.footer-tag{color:var(--muted);font-size:.85rem;margin:14px 0 0;line-height:1.6}.footer-links{display:flex;flex-direction:column;gap:6px;margin-top:22px}.footer-link{display:inline-flex;align-items:center;gap:12px;padding:10px 0;width:fit-content;color:var(--muted);font-size:.88rem;text-decoration:none;font-weight:500;transition:color .15s,transform .15s;word-break:break-all}.footer-link:hover{color:var(--primary)}.footer-link-icon{width:18px;height:18px;flex-shrink:0;opacity:.85}.footer-form{background:var(--surface-2);border:1px solid var(--border);border-radius:20px;padding:26px 24px;box-shadow:var(--shadow-sm)}.footer-form-title{font-size:1.1rem;font-weight:800;color:var(--ink);margin-bottom:4px;letter-spacing:-.3px}.footer-form-sub{font-size:.8rem;color:var(--muted);margin-bottom:18px;line-height:1.5}.footer-field{margin-bottom:12px}.footer-input{width:100%;min-height:46px;padding:0 14px;border:1px solid var(--border-strong);border-radius:12px;font-size:.92rem;font-family:inherit;color:var(--ink);outline:none;background:var(--surface);transition:border-color .15s,box-shadow .15s,background .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.footer-input:focus{border-color:var(--primary);box-shadow:var(--ring)}.footer-input::placeholder{color:var(--faint)}.footer-textarea{min-height:104px;padding:12px 14px;resize:vertical}.footer-submit{width:100%;height:48px;background:var(--grad);color:#fff;border:none;border-radius:12px;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform .1s,box-shadow .2s;-webkit-tap-highlight-color:transparent;box-shadow:0 8px 22px #0d94884d;display:flex;align-items:center;justify-content:center;gap:8px}.footer-submit:hover{box-shadow:0 10px 26px #0d948861}.footer-submit:active{transform:scale(.98)}.footer-submit:disabled{opacity:.6;cursor:default;transform:none}.footer-msg{font-size:.82rem;margin-top:10px;text-align:center;font-weight:600}.footer-msg-ok{color:var(--success)}.footer-msg-err{color:var(--danger)}.footer-bottom{text-align:center;color:var(--faint);font-size:.78rem;padding:20px 16px 28px;border-top:1px solid var(--border)}@media (max-width: 760px){.footer-inner{grid-template-columns:1fr;gap:32px;padding:40px 16px 32px}}@media (max-width: 760px){.login-page{height:auto;min-height:calc(100dvh - 32px);align-items:flex-start;padding:24px 16px;overflow:hidden}.login-wrap{flex-direction:column;gap:28px;align-items:center;justify-content:center;overflow:hidden}.landing{text-align:center;max-width:420px}.landing-logo{justify-content:center}.landing-lead{margin-left:auto;margin-right:auto}.landing h2{font-size:1.6rem}.login-card{max-width:100%}}@media (max-width: 420px){body{padding:calc(env(safe-area-inset-top,0px) + 12px) 12px calc(env(safe-area-inset-bottom,0px) + 12px)}.card{padding:14px}.hero{padding:16px;border-radius:18px}.code-chip{font-size:1rem;padding:3px 10px}.results-body{padding:8px}.results-header{padding:10px;border-radius:14px}.route-codes{font-size:1.05rem}.results-header .route-del{padding:7px 12px;font-size:.72rem}.flight-card{padding:14px}.flight-card .airline-badge{width:38px;height:38px;border-radius:12px;font-size:.74rem}.flight-card .times{font-size:1rem}.flight-card .price{font-size:1.1rem}.form-page{padding:12px}.form-page .card-custom{padding:22px 18px;border-radius:18px}.form-page .field-row{gap:8px}.form-page .field-input{height:48px;font-size:.95rem}.manage-body{padding:12px}.manage-body .route-card{flex-wrap:wrap}.manage-body .route-card .card-actions{width:100%;justify-content:flex-end}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
