.login-shell{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:var(--font-sans)}.login-topbar{flex:none;display:flex;align-items:center;gap:var(--sp-8);height:var(--topbar-h);padding:0 var(--sp-10)}.login-brand{color:var(--text);font-size:var(--fs-16);font-weight:var(--fw-semibold);line-height:var(--lh-tight);white-space:nowrap}.login-brand .brand-short{display:none}.login-preferences{display:flex;align-items:center;gap:var(--sp-8);margin-left:auto}.login-main{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--sp-10) var(--sp-10) calc(var(--topbar-h) + var(--sp-10))}.login-block{width:400px;max-width:100%;display:flex;flex-direction:column;gap:var(--sp-11)}.login-head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-6)}.login-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-lg);background:var(--accent);color:var(--on-accent);font-family:var(--font-mono);font-size:var(--fs-16);font-weight:var(--fw-medium)}.login-head h1{margin:0;font-size:var(--fs-28);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}.login-head p{margin:0;color:var(--text-muted);font-size:var(--fs-15);line-height:var(--lh-text)}.login-card{display:flex;flex-direction:column;gap:var(--sp-8);padding:var(--sp-11);border:1px solid var(--line-card);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-card)}.login-error{display:flex;gap:var(--sp-5);padding:var(--sp-6) var(--sp-7);border-radius:var(--r-md);background:color-mix(in srgb,var(--danger) 10%,transparent);box-shadow:inset 3px 0 0 var(--danger);color:var(--text);font-size:var(--fs-14);line-height:1.45}.login-error-mark{flex:none;color:var(--danger);font-weight:var(--fw-semibold)}.login-field{display:flex;flex-direction:column;gap:var(--sp-3)}.login-field label{color:var(--text-2);font-size:var(--fs-13);font-weight:var(--fw-medium)}.login-input{display:flex;align-items:center;height:44px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--input-bg)}.login-input.with-action{padding-right:var(--sp-2)}.login-input:focus-within{border-color:var(--accent)}.login-input.invalid{border-color:var(--danger)}.login-input input{flex:1;align-self:stretch;min-width:0;padding:0 var(--sp-6);border:0;border-radius:inherit;outline:none;background:transparent;color:var(--text);font-size:var(--fs-15)}.login-input input:disabled{color:var(--text-faint);cursor:not-allowed}.login-reveal{flex:none;height:36px;padding:0 var(--sp-5);border:0;border-radius:var(--r-xs);background:transparent;color:var(--text-muted);font-size:var(--fs-13)}.login-reveal:disabled{color:var(--text-faint)}.login-caps{color:var(--warning);font-size:var(--fs-12)}.login-remember{position:relative;display:flex;align-items:center;gap:var(--sp-5);color:var(--text-2);font-size:var(--fs-14);cursor:pointer}.login-remember input{position:absolute;width:18px;height:18px;margin:0;opacity:0;cursor:pointer}.login-check{display:grid;place-items:center;flex:none;width:18px;height:18px;border:1px solid var(--line-strong);border-radius:var(--r-xs);background:var(--input-bg);color:transparent;font-size:var(--fs-12);font-weight:700;line-height:1}.login-remember input:checked+.login-check{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.login-remember input:focus-visible+.login-check{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}.login-remember:has(input:disabled){color:var(--text-faint);cursor:not-allowed}.login-card .button.login-submit{width:100%;min-height:44px;margin-top:var(--sp-2);font-size:var(--fs-15);font-weight:var(--fw-semibold)}.login-card .button.primary.login-submit:disabled{background:var(--accent);color:var(--on-accent);opacity:.75;cursor:progress}.login-spinner{width:14px;height:14px;border:2px solid color-mix(in srgb,var(--on-accent) 30%,transparent);border-top-color:var(--on-accent);border-radius:50%;animation:spin .8s linear infinite}@media(hover:hover){.login-input:hover:not(:focus-within):not(.invalid){border-color:var(--line-strong)}.login-reveal:hover:not(:disabled){background:var(--surface-active);color:var(--text)}.login-remember:hover .login-check{border-color:var(--text-faint)}}@media(max-width:760px){.login-topbar{height:52px;gap:var(--sp-5);padding:0 var(--sp-8)}.login-brand{font-size:var(--fs-15)}.login-brand .brand-full{display:none}.login-brand .brand-short{display:inline}.login-preferences{gap:var(--sp-5)}.login-main{padding:var(--sp-10) var(--sp-9) 64px}.login-block{width:100%;gap:var(--sp-10)}.login-head{gap:var(--sp-5)}.login-mark{width:40px;height:40px;font-size:var(--fs-15)}.login-head h1{font-size:var(--fs-24)}.login-head p{font-size:var(--fs-14)}.login-card{gap:var(--sp-7);padding:0;border:0;background:transparent;box-shadow:none}.login-input{height:48px;border-radius:var(--r-md);background:var(--surface)}.login-input.with-action{padding-right:var(--sp-2)}.login-input input{padding:0 var(--sp-7);font-size:var(--fs-16)}.login-reveal{height:var(--tap-min)}.login-remember{min-height:var(--tap-min)}.login-remember input,.login-check{width:20px;height:20px}.login-card .button.login-submit{min-height:48px;margin-top:var(--sp-5);border-radius:var(--r-md);font-size:var(--fs-16)}}@media(prefers-reduced-motion:reduce){.login-spinner{animation-duration:2s}}
