.auth-shell.sovfly-login-shell{
  width:100%;
  max-width:390px;
  min-height:100dvh;
  padding:max(16px,env(safe-area-inset-top)) clamp(18px,6vw,28px) max(20px,env(safe-area-inset-bottom));
  overflow-x:hidden;
  overflow-y:auto;
  background:linear-gradient(180deg,var(--panel),var(--bg));
  scrollbar-width:none;
}
.auth-shell.sovfly-login-shell::-webkit-scrollbar{width:0;height:0}
.sovfly-login-screen{width:100%;min-height:calc(100dvh - 36px);display:flex;flex-direction:column}
.sovfly-login-back{align-self:flex-start;width:42px;height:42px;margin-left:-10px;border:0;background:transparent;color:var(--teal);cursor:pointer;display:grid;place-items:center}
.sovfly-login-back svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sovfly-login-brand{text-align:center;margin:-25px 0 24px}
.sovfly-login-brand img{display:block;width:70px;height:70px;object-fit:contain;margin:0 auto 4px;filter:drop-shadow(0 0 12px var(--teal))}
.sovfly-login-brand strong{display:block;font-size:22px;letter-spacing:4px}
.sovfly-login-heading{text-align:center;margin-bottom:22px}
.sovfly-login-heading h1{margin:0 0 4px;font-size:28px;line-height:1.15}
.sovfly-login-heading p{margin:0;color:var(--muted);font-size:13px}
.sovfly-login-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:22px;border:1px solid var(--line);border-radius:12px 12px 0 0;overflow:hidden}
.sovfly-login-tabs button{height:46px;border:0;border-bottom:2px solid transparent;background:var(--panel);color:var(--muted);cursor:pointer}
.sovfly-login-tabs button[aria-selected="true"]{color:var(--teal);border-bottom-color:var(--teal);background:var(--panel2);font-weight:700}
.sovfly-login-form{display:grid;gap:14px}
.sovfly-login-field{position:relative;display:block}
.sovfly-login-field>span{position:absolute;left:50px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;transition:.15s}
.sovfly-login-field:focus-within>span,.sovfly-login-field.has-value>span{top:8px;transform:none;font-size:9px}
.sovfly-login-field>svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:22px;height:22px;fill:none;stroke:var(--teal);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.sovfly-login-field input{width:100%;height:52px;padding:17px 48px 4px 50px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--text);font:inherit;outline:0}
.sovfly-login-field input:focus{border-color:var(--teal);box-shadow:0 0 0 2px var(--panel2)}
.sovfly-login-field input[aria-invalid="true"]{border-color:var(--danger)}
.sovfly-login-field .field-icon{right:8px;top:9px}
.sovfly-login-options{display:flex;align-items:center;justify-content:space-between;gap:12px}
.sovfly-remember{display:flex;align-items:center;gap:9px;font-size:12px;cursor:pointer}
.sovfly-remember input{position:absolute;opacity:0}
.sovfly-remember i{width:20px;height:20px;border:1px solid var(--muted);border-radius:5px;background:var(--panel);display:grid;place-items:center;font-style:normal}
.sovfly-remember input:checked+i{border-color:var(--teal);color:var(--teal)}
.sovfly-remember input:checked+i:after{content:"✓"}
.sovfly-remember input:focus-visible+i{outline:2px solid var(--teal);outline-offset:2px}
.sovfly-login-link{border:0;background:transparent;color:var(--teal);padding:4px 0;cursor:pointer;font-size:12px}
.sovfly-login-submit{height:48px;border-radius:10px;margin-top:2px}
.sovfly-login-submit:disabled{opacity:.45;cursor:not-allowed}
.sovfly-login-error{min-height:0;margin:0;color:var(--danger);font-size:12px;text-align:center}
.sovfly-login-error:empty{display:none}
.sovfly-login-error:not(:empty){padding:10px;border:1px solid var(--danger);border-radius:10px;background:var(--panel)}
.sovfly-login-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--muted);font-size:11px}
.sovfly-login-divider span{height:1px;flex:1;background:var(--line)}
.sovfly-login-divider b{font-weight:400}
.sovfly-login-social{display:grid;gap:9px}
.sovfly-login-social .button{height:44px;border-radius:9px;display:flex;align-items:center;justify-content:center;gap:10px}
.sovfly-login-social img{width:20px;height:20px;object-fit:contain}
.sovfly-create-prompt{text-align:center;margin:20px 0 15px;color:var(--muted);font-size:12px}
.sovfly-create-prompt button{border:0;background:transparent;color:var(--teal);padding:0;cursor:pointer}
.sovfly-security-note{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:auto;padding-top:8px;color:var(--muted);font-size:10px;line-height:1.4}
.sovfly-security-note svg{width:24px;height:24px;flex:none;fill:none;stroke:var(--teal);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sovfly-choice-screen,.sovfly-recovery-screen{width:100%;min-height:calc(100dvh - 36px);display:flex;flex-direction:column}
.sovfly-choice-header,.sovfly-recovery-header{text-align:center;margin:10px 0 24px}
.sovfly-choice-header img,.sovfly-recovery-header img{width:62px;height:62px;object-fit:contain}
.sovfly-choice-header h1,.sovfly-recovery-header h1{margin:10px 0 6px;font-size:25px}
.sovfly-choice-header p,.sovfly-recovery-header p{margin:0;color:var(--muted)}
.sovfly-account-choices{display:grid;gap:12px}
.sovfly-account-choice{display:grid;grid-template-columns:48px 1fr 22px;gap:12px;align-items:center;width:100%;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--text);text-align:left;cursor:pointer}
.sovfly-account-choice:hover,.sovfly-account-choice:focus-visible{border-color:var(--teal);outline:0}
.sovfly-account-choice>svg{width:38px;height:38px;padding:7px;border:1px solid var(--teal);border-radius:12px;fill:none;stroke:var(--teal);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sovfly-account-choice span{display:grid;gap:3px}
.sovfly-account-choice small{color:var(--muted);line-height:1.35}
.sovfly-account-choice>svg:last-child{width:20px;height:20px;padding:0;border:0;border-radius:0}
.sovfly-recovery-form{display:grid;gap:14px;margin-top:10px}
.sovfly-recovery-card{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:15px;background:var(--panel);color:var(--muted);font-size:12px}
.sovfly-recovery-status{text-align:center;margin:auto 0}
.sovfly-recovery-status img{width:72px;height:72px;object-fit:contain}
.sovfly-recovery-status h1{font-size:25px}
.sovfly-recovery-status p{color:var(--muted);line-height:1.55}
.sovfly-recovery-status .button{margin-top:14px}
@media(max-height:720px){
  .sovfly-login-brand{margin-bottom:14px}
  .sovfly-login-brand img{width:54px;height:54px}
  .sovfly-login-heading{margin-bottom:14px}
  .sovfly-login-heading h1{font-size:24px}
  .sovfly-login-tabs{margin-bottom:14px}
  .sovfly-login-form{gap:10px}
  .sovfly-login-divider{margin:12px 0}
  .sovfly-create-prompt{margin:13px 0 9px}
}
@media(min-width:600px){
  .auth-shell.sovfly-login-shell{min-height:min(844px,calc(100dvh - 32px));margin:16px auto;border-radius:12px}
  .sovfly-login-screen,.sovfly-choice-screen,.sovfly-recovery-screen{min-height:calc(min(844px,100dvh - 32px) - 48px)}
}
