body.layout-centered:has(.auth-shell){padding:0;display:block;min-height:100dvh;}body:has(.auth-shell) .auth-theme-toggle{display:none;}.auth-shell{width:100%;min-height:100dvh;display:flex;flex-direction:column;padding:calc(var(--safe-top) + var(--space-5)) calc(var(--safe-right) + var(--space-5)) calc(var(--safe-bottom) + var(--space-5)) calc(var(--safe-left) + var(--space-5));background:var(--color-bg);box-sizing:border-box;}.auth-shell-wrap{width:100%;max-width:24rem;margin:auto;display:flex;flex-direction:column;gap:var(--space-5);box-sizing:border-box;}.auth-shell-header{display:flex;align-items:center;gap:var(--space-3);}.auth-shell-identity{display:flex;align-items:center;gap:var(--space-3);min-width:0;}.auth-shell-brand{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:10px;background:linear-gradient( 135deg,var(--color-accent) 0%,color-mix(in srgb,var(--color-accent) 65%,var(--color-ink)) 100% );color:var(--color-on-accent);text-decoration:none;flex-shrink:0;box-shadow:0 4px 12px -4px color-mix(in srgb,var(--color-accent) 45%,transparent);transition:transform var(--dur-quick) var(--ease-out);}.auth-shell-brand:active{transform:scale(0.94);}.auth-shell-brand svg{width:60%;height:60%;display:block;}.auth-shell-wordmark{font-family:var(--font-display);font-weight:800;font-size:1rem;letter-spacing:-0.03em;color:var(--color-ink);margin:0;}.auth-shell-welcome{display:flex;flex-direction:column;gap:var(--space-2);}.auth-shell-title{font-family:var(--font-display);font-weight:800;font-size:clamp(1.5rem,5vw,1.9rem);line-height:1.1;letter-spacing:-0.035em;color:var(--color-ink);margin:0;text-wrap:balance;}.auth-shell-title em{font-family:var(--font-verse);font-style:italic;font-weight:400;font-size:1.12em;vertical-align:-0.05em;letter-spacing:0.01em;color:var(--color-warm);}.auth-shell-subtitle{font-family:var(--font-body);font-size:var(--text-sm);line-height:1.55;color:var(--color-ink-soft);margin:0;text-wrap:pretty;}.auth-shell-subtitle strong{color:var(--color-ink);font-weight:600;word-break:break-word;}.auth-shell-alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:0.85rem 1rem;background:var(--color-danger-soft);border:1px solid var(--color-danger-line);border-radius:var(--radius-md);color:var(--color-danger);font-family:var(--font-body);font-size:var(--text-sm);line-height:1.5;animation:auth-shake 400ms var(--ease-out);}.auth-shell-alert svg{width:16px;height:16px;flex-shrink:0;margin-top:2px;}@keyframes auth-shake{0%,100%{transform:translateX(0);}20%{transform:translateX(-4px);}40%{transform:translateX(4px);}60%{transform:translateX(-2px);}80%{transform:translateX(2px);}}@media (prefers-reduced-motion:reduce){.auth-shell-alert{animation:none;}}.auth-shell-form{display:flex;flex-direction:column;gap:var(--space-5);}.auth-shell-field{display:flex;flex-direction:column;gap:var(--space-3);}.auth-shell-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);}.auth-shell-field>label,.auth-shell-label-row>label{font-family:var(--font-display);font-weight:600;font-size:var(--text-xs);letter-spacing:-0.005em;color:var(--color-ink);}.auth-shell-forgot{font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;color:var(--color-accent);text-decoration:none;transition:color var(--dur-quick) var(--ease-out);padding:6px 4px;margin:-6px -4px;border-radius:var(--radius-sm);}.auth-shell-forgot:focus-visible{outline:none;box-shadow:var(--focus-ring);}@media (hover:hover){.auth-shell-forgot:hover{color:color-mix(in srgb,var(--color-accent) 80%,black);}}.auth-shell-input{position:relative;display:flex;align-items:center;background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:var(--radius-md);min-height:52px;transition:border-color 200ms var(--ease-out),box-shadow 260ms var(--ease-out),background var(--dur-quick) var(--ease-out);}.auth-shell-input:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 22%,transparent),0 1px 3px color-mix(in srgb,var(--color-accent) 20%,transparent);}.auth-shell-input.is-invalid{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-soft);}.auth-shell-input-icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:100%;color:var(--color-ink-faint);flex-shrink:0;transition:color var(--dur-quick) var(--ease-out);}.auth-shell-input-icon svg{width:18px;height:18px;}.auth-shell-input.is-invalid .auth-shell-input-icon{color:var(--color-danger);}.auth-shell-input input{flex:1;min-width:0;height:100%;padding:0 0.75rem;background:transparent;border:none;outline:none;font-family:var(--font-body);font-size:max(16px,var(--text-base));color:var(--color-ink);line-height:1.4;}.auth-shell-input input::placeholder{color:var(--color-ink-faint);}.auth-shell-input-action{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:100%;padding:0;background:transparent;border:none;color:var(--color-ink-soft);cursor:pointer;border-radius:var(--radius-md);touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:color var(--dur-quick) var(--ease-out);}.auth-shell-input-action:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--color-accent);}@media (hover:hover){.auth-shell-input-action:hover{color:var(--color-ink);}}.auth-shell-input-action svg{width:18px;height:18px;}.auth-shell-input-action .icon-eye-off{display:none;}.auth-shell-input-action.is-revealed .icon-eye{display:none;}.auth-shell-input-action.is-revealed .icon-eye-off{display:block;}.auth-shell-hint{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:0.04em;color:var(--color-ink-faint);margin:0;padding-left:var(--space-1);}.auth-shell-error{font-family:var(--font-body);font-size:var(--text-sm);line-height:1.45;color:var(--color-danger);margin:0;padding-left:var(--space-1);}.auth-shell-submit{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;min-height:56px;margin-top:var(--space-2);padding:0 1.5rem;background:var(--color-accent);color:var(--color-on-accent);border:1px solid var(--color-accent);border-radius:var(--radius-md);font-family:var(--font-display);font-weight:700;font-size:var(--text-base);letter-spacing:-0.005em;cursor:pointer;text-decoration:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;box-shadow:0 6px 20px -8px color-mix(in srgb,var(--color-accent) 55%,transparent);transition:background var(--dur-quick) var(--ease-out),border-color var(--dur-quick) var(--ease-out),transform var(--dur-quick) var(--ease-out),box-shadow var(--dur-quick) var(--ease-out);}.auth-shell-submit:focus-visible{outline:none;box-shadow:var(--focus-ring);}.auth-shell-submit:active:not(:disabled):not(.is-loading){transform:scale(0.98);}@media (hover:hover){.auth-shell-submit:hover:not(:disabled):not(.is-loading){background:color-mix(in srgb,var(--color-accent) 88%,black);border-color:color-mix(in srgb,var(--color-accent) 88%,black);box-shadow:0 8px 24px -8px color-mix(in srgb,var(--color-accent) 65%,transparent);}}.auth-shell-submit:disabled,.auth-shell-submit.is-loading{opacity:0.7;cursor:not-allowed;pointer-events:none;color:transparent !important;position:relative;}.auth-shell-submit.is-loading::after{content:"";position:absolute;top:50%;left:50%;width:1.15em;height:1.15em;margin:-0.575em 0 0 -0.575em;border:2px solid var(--color-on-accent);border-right-color:transparent;border-radius:50%;animation:auth-btn-spin 640ms linear infinite;}@keyframes auth-btn-spin{to{transform:rotate(360deg);}}@media (prefers-reduced-motion:reduce){.auth-shell-submit.is-loading::after{animation-duration:1400ms;}}.auth-shell-submit--ghost{background:transparent;color:var(--color-ink);border-color:var(--color-line-strong);box-shadow:none;}@media (hover:hover){.auth-shell-submit--ghost:hover:not(:disabled){background:var(--color-surface);border-color:var(--color-ink);color:var(--color-on-accent);box-shadow:var(--shadow-sm);}}.auth-shell-submit--ghost:active:not(:disabled){background:color-mix(in srgb,var(--color-ink) 9%,transparent);transform:scale(0.985);}.auth-shell-submit--ghost:focus-visible{outline:none;box-shadow:var(--focus-ring);}.auth-shell-arrow{width:16px;height:16px;transition:transform var(--dur-quick) var(--ease-out);}@media (hover:hover){.auth-shell-submit:hover .auth-shell-arrow{transform:translateX(3px);}}.auth-shell-footer{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid color-mix(in srgb,var(--color-line) 45%,transparent);margin-top:var(--space-1);}.auth-shell-footer p{margin:0;font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-ink-soft);}.auth-shell-alt{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;min-height:48px;padding:0 1.25rem;background:transparent;color:var(--color-ink);border:1px solid var(--color-line-strong);border-radius:var(--radius-md);font-family:var(--font-display);font-weight:600;font-size:var(--text-base);text-decoration:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--dur-quick) var(--ease-out),border-color var(--dur-quick) var(--ease-out),color var(--dur-quick) var(--ease-out);}.auth-shell-alt:focus-visible{outline:none;box-shadow:var(--focus-ring);}@media (hover:hover){.auth-shell-alt:hover{background:var(--color-accent-soft);border-color:var(--color-accent-line);color:var(--color-accent);}}.auth-shell-alt svg{width:14px;height:14px;transition:transform var(--dur-quick) var(--ease-out);}@media (hover:hover){.auth-shell-alt:hover svg{transform:translateX(2px);}}.auth-shell-status{width:4rem;height:4rem;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin:0 auto;}.auth-shell-status svg{width:1.75rem;height:1.75rem;}.auth-shell-status--info{background:var(--color-accent-soft);color:var(--color-accent);box-shadow:0 0 0 8px color-mix(in srgb,var(--color-accent) 6%,transparent);}.auth-shell-status--success{background:var(--color-success-soft);color:var(--color-success);box-shadow:0 0 0 8px color-mix(in srgb,var(--color-success) 6%,transparent);}.auth-shell-status--warn{background:var(--color-warm-soft);color:var(--color-warm);box-shadow:0 0 0 8px color-mix(in srgb,var(--color-warm) 6%,transparent);}.auth-consent{display:flex;align-items:flex-start;gap:var(--space-3);padding:0.85rem 1rem;background:color-mix(in srgb,var(--color-accent) 5%,transparent);border:1px solid var(--color-accent-line);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);line-height:1.5;color:var(--color-ink);cursor:pointer;min-height:48px;touch-action:manipulation;transition:background var(--dur-quick) var(--ease-out);}.auth-consent input[type="checkbox"]{margin-top:3px;width:1.1rem;height:1.1rem;accent-color:var(--color-accent);flex-shrink:0;cursor:pointer;}.auth-consent a{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px;font-weight:600;}.auth-consent a:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:3px;}@media (hover:hover){.auth-consent:hover{background:color-mix(in srgb,var(--color-accent) 8%,transparent);}}.auth-capslock-hint{display:flex;align-items:center;gap:0.35rem;margin:var(--space-1) 0 0;padding-left:var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:0.04em;text-transform:uppercase;color:var(--color-warm);animation:auth-fade-in 200ms var(--ease-out);}.auth-capslock-hint[hidden]{display:none;}.auth-capslock-hint svg{width:12px;height:12px;flex-shrink:0;}@keyframes auth-fade-in{from{opacity:0;transform:translateY(-2px);}to{opacity:1;transform:translateY(0);}}.auth-shell-input .auth-match-badge{position:absolute;right:3.5rem;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:50%;pointer-events:none;opacity:0;transition:opacity var(--dur-quick) var(--ease-out),background var(--dur-quick) var(--ease-out);}.auth-match-badge svg{width:12px;height:12px;}.auth-match-badge.is-match{opacity:1;background:var(--color-success-soft);color:var(--color-success);}.auth-match-badge.is-mismatch{opacity:1;background:var(--color-danger-soft);color:var(--color-danger);}.auth-strength{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:var(--space-2);padding:0 var(--space-1);}.auth-strength[data-level="0"]{display:none;}.auth-strength-bar{height:3px;border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-ink) 8%,transparent);transition:background 240ms var(--ease-out);}.auth-strength[data-level="1"] .auth-strength-bar:nth-child(-n + 1){background:var(--color-danger);}.auth-strength[data-level="2"] .auth-strength-bar:nth-child(-n + 2){background:var(--color-warm);}.auth-strength[data-level="3"] .auth-strength-bar:nth-child(-n + 3){background:var(--color-accent);}.auth-strength[data-level="4"] .auth-strength-bar{background:var(--color-success);}.auth-strength-label{display:block;margin-top:var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:0.04em;color:var(--color-ink-faint);}.auth-strength-label[data-level="2"]{color:var(--color-warm);}.auth-strength-label[data-level="3"]{color:var(--color-accent);}.auth-strength-label[data-level="4"]{color:var(--color-success);}.auth-field-inline-error{font-family:var(--font-body);font-size:var(--text-sm);line-height:1.45;color:var(--color-danger);margin:var(--space-1) 0 0;padding-left:var(--space-1);animation:auth-fade-in 180ms var(--ease-out);}.auth-field-inline-error[hidden]{display:none;}.auth-flash{position:fixed;z-index:var(--z-toast);top:calc(var(--safe-top) + var(--space-4));right:calc(var(--safe-right) + var(--space-4));left:calc(var(--safe-left) + var(--space-4));display:flex;align-items:flex-start;gap:var(--space-3);padding:0.85rem 0.75rem 0.85rem 1rem;border-radius:var(--radius-md);box-shadow:var(--shadow-md);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);font-family:var(--font-body);font-size:var(--text-sm);line-height:1.45;animation:auth-flash-in 320ms var(--ease-spring) both;max-width:24rem;margin-left:auto;}.auth-flash>svg{width:18px;height:18px;flex-shrink:0;margin-top:2px;}.auth-flash-message{flex:1;min-width:0;word-wrap:break-word;overflow-wrap:anywhere;}.auth-flash-success{background:color-mix( in srgb,var(--color-success) 14%,var(--color-surface) );border:1px solid var(--color-success-line);color:var(--color-success);}.auth-flash-error{background:color-mix( in srgb,var(--color-danger) 12%,var(--color-surface) );border:1px solid var(--color-danger-line);color:var(--color-danger);}.auth-flash-close{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border-radius:50%;background:transparent;border:none;color:inherit;opacity:0.6;cursor:pointer;flex-shrink:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:opacity var(--dur-quick) var(--ease-out);}.auth-flash-close svg{width:14px;height:14px;display:block;}@media (hover:hover){.auth-flash-close:hover{opacity:1;}}@keyframes auth-flash-in{from{opacity:0;transform:translateY(-16px);}to{opacity:1;transform:translateY(0);}}.auth-flash.is-leaving{animation:auth-flash-out 220ms var(--ease-out) both;pointer-events:none;}@keyframes auth-flash-out{to{opacity:0;transform:translateY(-16px);}}.auth-shell--404 .auth-shell-wrap{gap:var(--space-6);}.auth-shell-404{font-family:var(--font-display);font-weight:800;font-size:clamp(3.5rem,14vw,5rem);line-height:0.9;letter-spacing:-0.06em;color:var(--color-accent);font-variant-numeric:tabular-nums;margin:var(--space-2) 0;text-shadow:0 0 60px color-mix(in srgb,var(--color-accent) 35%,transparent);}@media (min-width:640px){.auth-shell{padding:calc(var(--safe-top) + var(--space-7)) calc(var(--safe-right) + var(--space-6)) calc(var(--safe-bottom) + var(--space-7)) calc(var(--safe-left) + var(--space-6));}.auth-shell-wrap{margin-block:auto;}.auth-flash{left:auto;right:calc(var(--safe-right) + var(--space-6));min-width:20rem;}}@media (prefers-reduced-motion:reduce){.auth-shell-brand,.auth-shell-submit,.auth-shell-arrow,.auth-shell-alt,.auth-shell-alt svg,.auth-shell-input,.auth-flash,.auth-capslock-hint,.auth-field-inline-error{animation-duration:1ms !important;transition-duration:1ms !important;}.auth-shell-submit:active:not(:disabled),.auth-shell-brand:active{transform:none;}.auth-shell-submit:hover .auth-shell-arrow,.auth-shell-alt:hover svg{transform:none;}}.auth-shell-hint-inline{padding:0.75rem 1rem;background:color-mix(in srgb,var(--color-accent) 6%,transparent);border:1px solid var(--color-accent-line);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);line-height:1.5;color:var(--color-ink-soft);}.auth-shell-footer form,.auth-logout-form{width:100%;margin:0;display:flex;flex-direction:column;}.auth-shell-assurance{display:flex;align-items:flex-start;justify-content:center;gap:8px;margin:0;padding:0 var(--space-2);font-family:var(--font-body);font-size:0.8125rem;line-height:1.45;color:var(--color-ink-faint);text-align:center;}.auth-shell-assurance svg{width:14px;height:14px;flex-shrink:0;margin-top:2px;color:color-mix(in srgb,var(--color-accent) 70%,var(--color-ink-faint));}.auth-shell-status + .auth-shell-welcome{text-align:center;}.auth-checklist{list-style:none;padding:0;margin:var(--space-3) 0 0;display:flex;flex-direction:column;gap:6px;}.auth-checklist li{display:flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:0.8125rem;line-height:1.4;color:var(--color-ink-faint);transition:color 200ms var(--ease-out);}.auth-checklist-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:color-mix(in srgb,var(--color-ink) 18%,transparent);transition:background 240ms var(--ease-out),transform 260ms var(--ease-spring);}.auth-checklist li.is-met{color:var(--color-success);}.auth-checklist li.is-met .auth-checklist-dot{background:var(--color-success);transform:scale(1.15);}@media (prefers-reduced-motion:reduce){.auth-checklist-dot,.auth-checklist li{transition-duration:1ms;}.auth-checklist li.is-met .auth-checklist-dot{transform:none;}}