.login-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--bg-dark);background-image:linear-gradient(160deg,rgba(16,185,129,.08),transparent 38%);overflow-y:auto;position:relative;overflow-x:hidden}.login-page:before,.login-page:after{content:"";position:fixed;width:280px;height:280px;border-radius:50%;filter:blur(90px);opacity:.12;z-index:0;pointer-events:none}.login-page:before{background:var(--accent);top:-80px;right:-60px}.login-page:after{background:var(--accent-purple);bottom:-80px;left:-60px}.login-card{width:100%;max-width:400px;background:#94a3b814;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-xl);padding:2.5rem 2rem;box-shadow:0 20px 50px #00000059,inset 0 1px #ffffff0f;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);position:relative;z-index:1}[data-theme=light] .login-card{border-color:#0f172a1a;box-shadow:0 20px 50px #0f172a1a,inset 0 1px #fff9}.register-card{max-width:520px}.login-logo{text-align:center;margin-bottom:2rem}.login-logo h1{font-size:1.75rem;font-weight:700;color:var(--accent-green);letter-spacing:-.5px}.login-logo p{font-size:.85rem;color:var(--text-secondary);margin-top:.25rem}.login-form{display:flex;flex-direction:column;gap:1.25rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.8rem;font-weight:500;color:var(--text-secondary)}.form-group input,.form-group select,.form-group textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem;color:var(--text-primary);font-size:.95rem;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent)}.login-page .form-group input,.login-page .form-group select,.login-page .form-group textarea{background:#94a3b812;transition:border-color .2s,box-shadow .2s}.login-page .form-group input:focus,.login-page .form-group select:focus{box-shadow:0 0 0 3px #10b98126}.form-group select option{background:var(--bg-card)}.error-banner{background:#ef44441f;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);padding:.75rem 1rem;color:#fca5a5;font-size:.875rem;word-break:break-word}[data-theme=light] .error-banner{color:var(--accent-red)}[data-theme=light] .success-banner{color:var(--accent-green)}.btn-login{background:var(--accent);color:#000;border:none;border-radius:var(--radius-sm);padding:.875rem;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.5rem;min-height:48px}.btn-login{box-shadow:0 6px 18px #10b98140}.btn-login:hover{opacity:.9}.btn-login:active{transform:scale(.98);box-shadow:inset 0 2px 6px #00000026}.btn-login:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.login-footer{text-align:center;margin-top:1.5rem;font-size:.8rem;color:var(--text-muted)}.auth-switch{text-align:center;margin-top:1.25rem;font-size:.85rem;color:var(--text-secondary)}.auth-switch a{color:var(--accent);font-weight:600}.forgot-password-link{background:none;border:none;color:var(--accent);font-size:.82rem;font-weight:600;cursor:pointer;text-align:right;padding:0;margin-top:-.5rem;transition:opacity .2s;min-height:44px;display:flex;align-items:center;justify-content:flex-end}.forgot-password-link:hover{opacity:.8;text-decoration:underline}.fp-steps{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.fp-step-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:background-color .2s,border-color .2s,color .2s,opacity .2s,box-shadow .2s,transform .1s ease-out}.fp-step-dot.active{background:var(--accent)}.fp-step-dot.current{width:24px;border-radius:4px;background:var(--accent)}.otp-input-group{display:flex;gap:.5rem;justify-content:center;margin:.5rem 0}.otp-input{width:48px;height:56px;text-align:center;font-size:1.5rem;font-weight:700;font-family:var(--font-mono);background:#94a3b814;border:2px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);transition:border-color .2s,box-shadow .2s;caret-color:var(--accent)}.otp-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #10b98126}.success-banner{background:#10b9811f;border:1px solid rgba(16,185,129,.3);border-radius:var(--radius-sm);padding:.75rem 1rem;color:#6ee7b7;font-size:.85rem;text-align:center;margin-bottom:.5rem;word-break:break-word}.fp-success{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem 0}.fp-success-icon{width:64px;height:64px;border-radius:50%;background:#10b98126;color:#10b981;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;animation:popIn .4s cubic-bezier(.16,1,.3,1)}@keyframes popIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.fp-success-text{font-size:.95rem;color:var(--text-primary);text-align:center;font-weight:500}.btn-text{background:none;border:none;color:var(--text-secondary);font-size:.82rem;cursor:pointer;text-align:center;padding:.5rem .25rem;transition:color .2s;min-height:44px;display:flex;align-items:center;justify-content:center}.btn-text:hover{color:var(--accent)}.btn-text:disabled{opacity:.5;cursor:not-allowed}.required-dot{color:var(--accent);font-weight:700;margin-left:.2rem}@media (max-width: 768px){.login-page{padding:1.25rem}.register-card{max-width:100%}}@media (max-width: 520px){.login-page{align-items:center;padding:1.25rem 1rem}.login-card{padding:1.5rem 1rem;border-radius:var(--radius-lg);margin:auto 0}.login-logo h1{font-size:1.45rem}.form-row{grid-template-columns:1fr}.otp-input{width:42px;height:50px;font-size:1.3rem}.otp-input-group{gap:.35rem}}@media (max-width: 360px){.login-page{padding:.75rem .5rem}.login-card{padding:1.25rem .85rem;border-radius:var(--radius-md)}.login-logo h1{font-size:1.3rem}.login-logo p{font-size:.78rem}.btn-login{padding:.75rem;font-size:.95rem}.otp-input{width:36px;height:44px;font-size:1.1rem}.otp-input-group{gap:.25rem}.auth-switch{font-size:.78rem}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-dark: #0f1117;--bg-card: #1a1f2e;--bg-card2: #222736;--bg-input: #2a3045;--accent: #10b981;--on-accent: #052e23;--danger-button: #b91c1c;--accent-green: #10b981;--accent-red: #ef4444;--accent-blue: #3b82f6;--accent-purple: #8b5cf6;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #94a3b8;--border: rgba(255,255,255,.08);--border-hover: rgba(255,255,255,.15);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--shadow: 0 4px 24px rgba(0,0,0,.4);--surface-header: rgba(15, 17, 23, .82);--font: "Sora", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--font-brand: "Montserrat", sans-serif;--safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:dark}[data-theme=light]{--bg-dark: #f8fafc;--bg-card: #ffffff;--bg-card2: #f1f5f9;--bg-input: #f1f5f9;--accent: #047857;--on-accent: #ffffff;--accent-green: #047857;--accent-red: #dc2626;--accent-blue: #2563eb;--accent-purple: #7c3aed;--text-primary: #1e293b;--text-secondary: #475569;--text-muted: #64748b;--border: rgba(0,0,0,.12);--border-hover: rgba(0,0,0,.2);--shadow: 0 4px 24px rgba(0,0,0,.06);--surface-header: rgba(248, 250, 252, .85);color-scheme:light}html,body{height:100%;font-family:var(--font);background:var(--bg-dark);color:var(--text-primary);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-variant-numeric:tabular-nums;transition:background-color .3s,color .3s;overflow-x:hidden}button,input,select,textarea{font-size:16px}#root{height:100%}input,select,textarea,button{font-family:var(--font)}.form-group{display:flex;flex-direction:column;gap:.5rem;min-width:0}.form-group label{font-size:.8rem;font-weight:500;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.form-group input,.form-group select{width:100%;max-width:100%;min-height:44px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem;color:var(--text-primary);transition:border-color .2s;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.form-group textarea{width:100%;max-width:100%;min-height:44px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem;color:var(--text-primary);transition:border-color .2s;white-space:pre-wrap;word-wrap:break-word;resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent)}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.form-group input:focus-visible,.form-group select:focus-visible,.form-group textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{touch-action:manipulation;transition:background-color .15s,border-color .15s,color .15s,opacity .15s,transform .1s ease-out}button:active:not(:disabled){transform:scale(.98)}button.btn-submit,button.btn-filter,button.btn-login{color:var(--on-accent);background-color:var(--accent)}button:disabled{cursor:not-allowed;opacity:.6}.modal-close,.notif-btn,.menu-btn{min-width:44px;min-height:44px}.modal-card{max-height:calc(100dvh - 32px);overscroll-behavior:contain}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (pointer: coarse){*{scrollbar-width:none}*::-webkit-scrollbar{width:0;height:0;display:none}}.tint-green{--tint: 16 185 129;--tint-text: #6ee7b7}.tint-blue{--tint: 59 130 246;--tint-text: #93c5fd}.tint-teal{--tint: 20 184 166;--tint-text: #5eead4}.tint-violet{--tint: 139 92 246;--tint-text: #c4b5fd}.tint-indigo{--tint: 99 102 241;--tint-text: #a5b4fc}[data-theme=light] .tint-green{--tint-text: #047857}[data-theme=light] .tint-blue{--tint-text: #1d4ed8}[data-theme=light] .tint-teal{--tint-text: #0f766e}[data-theme=light] .tint-violet{--tint-text: #6d28d9}[data-theme=light] .tint-indigo{--tint-text: #4338ca}button.tint.tint{background:rgb(var(--tint) / .12);border:1px solid rgb(var(--tint) / .35);color:var(--tint-text)}button.tint.tint:hover:not(:disabled){background:rgb(var(--tint) / .2)}button.tint svg{color:currentColor}.modal-overlay,.modal-overlay *,.admin-dialog,.admin-dialog *{scrollbar-width:none}.modal-overlay::-webkit-scrollbar,.modal-overlay *::-webkit-scrollbar,.admin-dialog::-webkit-scrollbar,.admin-dialog *::-webkit-scrollbar{width:0;height:0;display:none}@media (prefers-reduced-transparency: reduce){:root{--surface-header: #0f1117}[data-theme=light]{--surface-header: #f8fafc}}.spinner-sm{display:inline-block;width:18px;height:18px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.install-app-wrap{position:fixed;bottom:calc(1rem + var(--safe-bottom));left:1rem;right:1rem;z-index:1000;display:flex;flex-direction:column;gap:.75rem;max-width:420px;margin-left:auto;pointer-events:none}.install-app-wrap>*{pointer-events:auto}.install-app-actions{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;box-shadow:0 10px 25px #00000080;animation:slideUp .4s cubic-bezier(.23,1,.32,1)}.install-info{display:flex;align-items:center;gap:.75rem}.install-mini-logo{width:40px;height:40px;border-radius:var(--radius-md);object-fit:cover}.install-text{display:flex;flex-direction:column}.install-text strong{font-size:.9rem;color:var(--text-primary)}.install-text span{font-size:.75rem;color:var(--text-secondary)}.install-buttons{display:flex;align-items:center;gap:.5rem}.install-app-btn{background:var(--accent);color:#000;border:none;border-radius:var(--radius-sm);padding:.5rem 1rem;font-size:.85rem;font-weight:700;cursor:pointer;transition:transform .2s}.install-app-btn:active{transform:scale(.95)}.install-dismiss-btn{background:transparent;border:none;color:var(--text-muted);font-size:1.5rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer}.install-ios-hint{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:0 15px 35px #0009;animation:slideUp .4s cubic-bezier(.23,1,.32,1)}.ios-hint-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.ios-hint-header strong{font-size:1rem;color:var(--text-primary)}.ios-hint-close{background:transparent;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer}.ios-hint-body{display:flex;flex-direction:column;gap:1rem}.ios-step{display:flex;align-items:center;gap:1rem;font-size:.9rem;color:var(--text-secondary)}.step-num{width:24px;height:24px;background:var(--accent);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.75rem;flex-shrink:0}.ios-icon-box{margin-left:auto;color:var(--accent);display:flex;align-items:center}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 520px){.install-app-wrap{max-width:none}}.menu-container{position:relative;display:inline-block}.menu-btn{background:transparent;border:none;color:var(--text-primary);padding:.5rem;font-size:1.5rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s,border-color .2s,color .2s,opacity .2s,box-shadow .2s,transform .1s ease-out;line-height:1;min-width:44px;min-height:44px}.menu-btn:hover{opacity:.7}.dropdown-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#0006}.dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);min-width:220px;max-width:calc(100vw - 2rem);padding:.5rem 0;z-index:100;box-shadow:0 10px 15px -3px #00000080,0 4px 6px -4px #00000080;animation:dropdownSlide .2s ease-out forwards;transform-origin:top right}@keyframes dropdownSlide{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.dropdown-item{width:100%;text-align:left;padding:.75rem 1.25rem;background:transparent;border:none;color:var(--text-primary);font-size:.9rem;cursor:pointer;transition:background .2s,color .2s;display:flex;align-items:center;gap:.5rem;min-height:44px}.dropdown-item:hover{background:var(--bg-input)}.dropdown-item:disabled{opacity:.5;cursor:not-allowed}.dropdown-divider{height:1px;background:var(--border);margin:.25rem 0}.logout-text{color:#ef4444;font-weight:500}.logout-text:hover{background:#ef44441a}.header-logo-img{width:40px;height:40px;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0}.logo-img{width:80px;height:80px;object-fit:cover;border-radius:var(--radius-lg);margin-bottom:1rem}.header-title-container{display:flex;flex-direction:column;line-height:1.1;min-width:0}.header-subtext{font-size:.7rem;font-weight:600;color:var(--text-secondary);letter-spacing:.02em;transition:color .2s}.header-subtext span{font-family:var(--font-brand);font-weight:700;transition:color .2s}.brand-tm{font-size:.55em;vertical-align:super;margin-left:1px;opacity:.7;font-weight:600}.header-subtext span:hover{color:var(--accent-green);cursor:default}.logo-description{font-size:.75rem;color:var(--text-muted);margin-top:.4rem;font-weight:500;letter-spacing:.02em}.trip-type-toggle{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--bg-input);padding:4px;border-radius:var(--radius-sm);border:1px solid var(--border);height:44px}.toggle-option{position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:calc(var(--radius-sm) - 4px);transition:background-color .2s,border-color .2s,color .2s,opacity .2s,box-shadow .2s,transform .1s ease-out;overflow:hidden}.toggle-option input{position:absolute;opacity:0;width:0;height:0}.toggle-option span{font-size:.85rem;font-weight:600;color:var(--text-secondary);z-index:1;transition:color .2s;white-space:nowrap}.toggle-option.active{background:var(--accent)}.toggle-option.active span{color:var(--on-accent)}.toggle-option:not(.active):hover{background:#ffffff0d}[data-theme=light] .toggle-option:not(.active):hover{background:#0000000a}@media (max-width: 380px){.dropdown-menu{min-width:200px;right:-.5rem}.dropdown-item{padding:.65rem 1rem;font-size:.85rem}.toggle-option span{font-size:.78rem}.logo-img{width:64px;height:64px}.header-logo-img{width:34px;height:34px}}.error-container{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:1.5rem}.error-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.5rem 2rem;text-align:center;max-width:400px;width:100%;box-shadow:var(--shadow)}.error-icon{font-size:3rem;margin-bottom:1.5rem}.error-card h2{margin-bottom:1rem;color:var(--text-primary)}.error-card p{color:var(--text-secondary);line-height:1.6;margin-bottom:2rem}.error-actions{display:flex;justify-content:center}
