#login-view *,#login-view ::after,#login-view ::before{box-sizing:border-box}#login-view{position:fixed;inset:0;z-index:12000;overflow:auto}#login-view.is-hidden{display:none}#login-view{margin:0;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:var(--text-primary);background-color:var(--surface-0);background-image:radial-gradient(circle at 15% 18%,color-mix(in srgb,var(--accent-400) 34%,transparent),transparent 42%),radial-gradient(circle at 85% 12%,color-mix(in srgb,var(--accent-300) 26%,transparent),transparent 46%),radial-gradient(circle at 78% 90%,color-mix(in srgb,var(--accent-500) 30%,transparent),transparent 50%),radial-gradient(circle at 8% 95%,color-mix(in srgb,var(--accent-200) 24%,transparent),transparent 48%)}#login-view::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E")}.login-shell{position:relative;z-index:1;width:100%;max-width:410px}.login-card{position:relative;padding:44px 38px 40px;background:var(--surface-1);border:1px solid var(--border-default);border-radius:20px;box-shadow:var(--shadow-xl);overflow:hidden;animation:login-rise .55s cubic-bezier(.16,1,.3,1) both}.login-card::before{content:'';position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,var(--accent-400),var(--accent-600))}.login-brand{display:flex;justify-content:center;margin-bottom:22px}.login-logo{height:30px;width:auto}.login-logo--dark{display:none}.login-heading{text-align:center;margin-bottom:30px}.login-heading h1{margin:0 0 6px;font-size:1.55rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.login-heading p{margin:0;font-size:.9rem;color:var(--text-secondary)}.login-form{display:flex;flex-direction:column;gap:18px}#login-view .form-group{display:flex;flex-direction:column;gap:7px}#login-view .form-group label{font-size:.8rem;font-weight:600;color:var(--text-secondary)}#login-view .form-group input{width:100%;min-height:48px;padding:12px 15px;font-family:inherit;font-size:.95rem;color:var(--text-primary);background:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:var(--transition)}#login-view .form-group input::placeholder{color:var(--text-muted)}#login-view .form-group input:hover{border-color:var(--border-strong)}#login-view .form-group input:focus{outline:0;background:var(--surface-1);border-color:var(--accent-500);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-500) 18%,transparent)}#login-view .login-submit{margin-top:6px;min-height:50px;padding:13px 20px;font-family:inherit;font-size:.98rem;font-weight:600;letter-spacing:.01em;color:var(--accent-contrast);background:linear-gradient(135deg,var(--accent-500),var(--accent-600));border:none;border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);box-shadow:0 6px 16px -6px color-mix(in srgb,var(--accent-600) 60%,transparent)}#login-view .login-submit:hover{transform:translateY(-1px);box-shadow:0 10px 22px -8px color-mix(in srgb,var(--accent-600) 70%,transparent)}#login-view .login-submit:active{transform:translateY(0)}#login-view .login-submit:focus-visible{outline:2px solid var(--accent-500);outline-offset:2px}#login-view .login-submit:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}#login-view .error-message{display:none;margin-top:18px;padding:12px 14px;font-size:.85rem;font-weight:500;text-align:center;color:var(--error-600);background:var(--error-50);border-left:3px solid var(--error-500);border-radius:var(--radius-sm)}html[data-bs-theme=dark] .login-logo--light{display:none}html[data-bs-theme=dark] .login-logo--dark{display:block}html[data-bs-theme=dark] .login-card{border-color:var(--border-strong)}@keyframes login-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}#login-view .login-submit,.login-brand,.login-form .form-group,.login-heading{animation:login-rise .5s cubic-bezier(.16,1,.3,1) both}.login-brand{animation-delay:80ms}.login-heading{animation-delay:.14s}.login-form .form-group:first-of-type{animation-delay:.2s}.login-form .form-group:nth-of-type(2){animation-delay:.26s}#login-view .login-submit{animation-delay:.32s}@media (prefers-reduced-motion:reduce){#login-view .login-submit,.login-brand,.login-card,.login-form .form-group,.login-heading{animation:none}}@media (max-width:480px){body{padding:16px}.login-card{padding:34px 24px 30px;border-radius:18px}.login-heading h1{font-size:1.4rem}}body.pre-auth #appointment-list,body.pre-auth .app-main,body.pre-auth .app-rail,body.pre-auth .app-tabbar,body.pre-auth .app-topbar,body.pre-auth .data-sheet,body.pre-auth .search-panel,body.pre-auth .sheet-backdrop{display:none!important}#login-view .login-card{position:relative}#login-view .login-form.is-hidden{display:none}#login-view .login-hint{margin:-4px 0 0;font-size:.78rem;color:var(--text-muted)}#login-view .login-hint:empty{display:none}#login-view .login-submit.is-busy{cursor:progress}#login-view .login-submit.is-busy::before{content:"";display:inline-block;width:15px;height:15px;margin-right:9px;vertical-align:-2px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:login-button-spin .7s linear infinite}@keyframes login-button-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){#login-view .login-submit.is-busy::before{animation:none;opacity:.6}}