[data-v2-theme].v2-auth-root{min-height:100dvh;min-height:100svh;display:grid;grid-template-rows:1fr auto;background:var(--surface);color:var(--ink-primary);padding:0;position:relative;overflow:hidden}[data-v2-theme].v2-auth-root:before{content:"";position:absolute;inset:0;background:radial-gradient(60% 45% at 50% 35%,color-mix(in srgb,var(--accent) 6%,transparent) 0,transparent 70%);pointer-events:none;z-index:0}.v2-auth-stage{grid-row:1;justify-content:center;padding:var(--space-6) var(--space-5);position:relative;z-index:1}.v2-auth-card,.v2-auth-stage{display:flex;align-items:center}.v2-auth-card{inline-size:min(520px,100%);background:var(--surface-raised);border:1px solid var(--rule);border-radius:calc(var(--radius-card) * 2);box-shadow:var(--shadow-raised);padding:var(--space-10) var(--space-8);flex-direction:column;gap:var(--space-6)}@media (max-width:520px){.v2-auth-card{padding:var(--space-8) var(--space-5);border-radius:var(--radius-card)}}.v2-auth-brand{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:20px}.v2-auth-brand__mark{block-size:72px;inline-size:auto;opacity:.95}@media (max-width:480px){.v2-auth-brand__mark{block-size:56px}}[data-v2-theme] .v2-auth-brand__title{margin:0;font-family:var(--font-display);font-size:64px;font-weight:700;line-height:1;letter-spacing:-.01em;color:var(--ink-primary);text-align:center}@media (max-width:480px){[data-v2-theme] .v2-auth-brand__title{font-size:48px}}.v2-auth-brand__subtitle{margin:0;font-size:var(--text-body);color:var(--ink-muted);text-align:center;max-inline-size:32ch}.v2-auth-reason{inline-size:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-card);background:color-mix(in srgb,var(--status-warning) 10%,transparent);border:1px solid color-mix(in srgb,var(--status-warning) 35%,transparent);color:var(--status-warning);font-size:var(--text-small);text-align:center}.v2-auth-ministry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);inline-size:100%;margin-block-start:var(--space-2)}@media (max-width:520px){.v2-auth-ministry-grid{grid-template-columns:1fr}}.v2-auth-ministry-card{display:flex;align-items:center;justify-content:center;min-block-size:68px;padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-card);color:var(--ink-primary);font-family:var(--font-display);font-size:var(--text-body);font-weight:600;text-align:center;cursor:pointer;transition:background var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.v2-auth-ministry-card:hover{background:var(--surface-raised);border-color:var(--accent)}.v2-auth-ministry-card:active{transform:scale(.98)}.v2-auth-ministry-card:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.v2-auth-ministry-error{color:var(--status-negative);font-size:var(--text-small);text-align:center}.v2-auth-ministry-header{font-size:var(--text-small);color:var(--ink-muted);text-align:center;margin:0}.v2-auth-keypad{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);inline-size:100%}.v2-auth-ministry-label{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.v2-auth-dots{display:flex;gap:var(--space-3);direction:ltr}.v2-auth-dots--error{animation:v2-auth-shake .32s cubic-bezier(.36,.07,.19,.97)}@keyframes v2-auth-shake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(3px)}30%,50%,70%{transform:translateX(-6px)}40%,60%{transform:translateX(6px)}}@media (prefers-reduced-motion:reduce){.v2-auth-dots--error{animation:none}}.v2-auth-dot{inline-size:14px;block-size:14px;border-radius:999px;border:2px solid var(--accent);background:transparent;transition:background var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.v2-auth-dot--filled{background:var(--accent);transform:scale(1.1)}.v2-auth-grid{display:grid;grid-template-columns:repeat(3,120px);gap:var(--space-4);direction:ltr}@media (max-width:480px){.v2-auth-grid{grid-template-columns:repeat(3,96px);gap:var(--space-3)}}[data-v2-theme] .v2-auth-key{inline-size:120px;block-size:120px;display:inline-flex;align-items:center;justify-content:center;border-radius:18px;background:var(--surface);border:2px solid var(--rule-strong);box-shadow:0 1px 2px rgba(0,0,0,.04);color:var(--ink-primary);font-family:var(--font-mono);font-size:60px;font-weight:600;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out),transform .1s var(--ease-out)}@media (max-width:480px){[data-v2-theme] .v2-auth-key{inline-size:96px;block-size:96px;font-size:48px}}[data-v2-theme] .v2-auth-key:hover:not([disabled]){background:var(--surface-raised);border-color:var(--accent);box-shadow:0 2px 6px rgba(0,0,0,.08)}[data-v2-theme] .v2-auth-key:active:not([disabled]){transform:scale(.94);background:var(--accent-soft);box-shadow:0 1px 2px rgba(0,0,0,.04)}[data-v2-theme] .v2-auth-key:focus-visible{outline:2px solid var(--ring);outline-offset:2px}[data-v2-theme] .v2-auth-key[disabled]{opacity:.5;cursor:not-allowed}[data-v2-theme] .v2-auth-key--backspace{color:var(--ink-muted)}[data-v2-theme] .v2-auth-key--theme{color:var(--ink-muted);background:transparent}[data-v2-theme] .v2-auth-key--theme:hover:not([disabled]){color:var(--accent);border-color:var(--accent)}.v2-auth-key-slot{display:inline-flex;align-items:stretch;justify-content:stretch}.v2-auth-key-slot>*{inline-size:100%;block-size:100%}.v2-auth-key-spacer{inline-size:120px;block-size:120px;pointer-events:none}@media (max-width:480px){.v2-auth-key-spacer{inline-size:96px;block-size:96px}}.v2-auth-error-msg{color:var(--status-negative)}.v2-auth-error-msg,.v2-auth-status-msg{font-size:var(--text-small);text-align:center;margin-block-start:var(--space-2)}.v2-auth-back-link,.v2-auth-status-msg{color:var(--ink-muted)}.v2-auth-back-link{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-badge);font-size:var(--text-small);background:transparent;cursor:pointer;transition:color var(--motion-fast) var(--ease-out)}.v2-auth-back-link:hover{color:var(--ink-primary)}.v2-auth-back-link:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.v2-auth-lockout{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.v2-auth-lockout__ring{position:relative;inline-size:120px;block-size:120px}.v2-auth-lockout__ring svg{transform:rotate(-90deg)}.v2-auth-lockout__ring-track{fill:none;stroke:var(--rule);stroke-width:6}.v2-auth-lockout__ring-progress{fill:none;stroke:var(--status-negative);stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.v2-auth-lockout__count{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:32px;font-weight:600;color:var(--ink-primary);direction:ltr}.v2-auth-lockout__msg{color:var(--ink-muted);font-size:var(--text-small);text-align:center;max-inline-size:28ch}.v2-auth-success{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);animation:v2-auth-pop .42s cubic-bezier(.34,1.56,.64,1)}@keyframes v2-auth-pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.v2-auth-success{animation:none}}.v2-auth-success__disc{inline-size:88px;block-size:88px;border-radius:999px;background:var(--accent);display:flex;align-items:center;justify-content:center;color:var(--accent-on-fill);box-shadow:0 8px 32px -12px color-mix(in srgb,var(--accent) 65%,transparent)}.v2-auth-success__msg{font-size:var(--text-body);color:var(--ink-muted)}.v2-auth-footer{grid-row:2;padding:var(--space-4) var(--space-6) calc(var(--safe-bottom, 0) + var(--space-4));display:flex;flex-direction:column;align-items:center;gap:var(--space-2);color:var(--ink-faint);font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.06em;position:relative;z-index:1}.v2-auth-footer__logo{block-size:40px;opacity:.75}