.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 28px 16px; background: var(--bg, #f6f8fa); }
.auth-card { width: min(100%, 520px); padding: clamp(24px, 5vw, 44px); }
.auth-card h1 { margin: 30px 0 18px; font-size: clamp(24px, 4vw, 32px); }
.auth-fields { display: grid; gap: 18px; max-width: 520px; }
.auth-fields label { display: grid; gap: 8px; font-size: 14px; font-weight: 600; }
.auth-fields input:not([type=checkbox]) { width: 100%; min-width: 0; border: 1px solid #dce2e9; border-radius: 10px; padding: 12px 14px; font: inherit; background: #fff; color: #172332; }
.auth-fields input:focus-visible, .access-option input:focus-visible { outline: 3px solid #a5cbff; outline-offset: 2px; }
.auth-fields p, .auth-panel p { color: #586574; font-size: 14px; line-height: 1.6; }
.auth-fields fieldset { border: 1px solid #dce2e9; border-radius: 10px; padding: 12px; min-width: 0; }
.auth-panel { padding: 24px; margin: 20px 0; }
.auth-panel h2 { margin: 0 0 20px; }
.auth-panel h3 { margin: 22px 0 14px; overflow-wrap: anywhere; }
.access-option { display: flex !important; align-items: center; gap: 10px; padding: 8px 0; font-size: 14px; }
.access-option input { width: 18px; height: 18px; accent-color: #236bea; }
.access-user { border-bottom: 1px solid #e5e9ef; padding-bottom: 20px; }
.access-form .button { margin-top: 12px; }
.save-warning { position: sticky; top: 0; z-index: 60; background: #fff2d9; color: #60410d; border-bottom: 1px solid #e5c47d; padding: 12px 20px; font-size: 14px; }
.save-warning button { margin: 6px; padding: 8px 12px; border: 1px solid #c5a667; background: #fff; border-radius: 8px; cursor: pointer; font: inherit; }
form[data-pending=true] button[type=submit] { opacity: .55; pointer-events: none; }
@media (max-width: 600px) { .auth-panel { padding: 18px; } .auth-card .page-heading { flex-wrap: wrap; } .auth-fields .button { width: 100%; } }
.recovery-panel { margin: 18px 0; padding: 20px; border: 1px solid #cdd7e2; background: #f8fafc; }
.recovery-panel h2 { margin: 0 0 12px; font-size: 18px; }
.recovery-panel p { color: #586574; font-size: 14px; line-height: 1.6; }
.recovery-panel label { display: grid; gap: 8px; font-size: 14px; font-weight: 600; }
.recovery-text { width: 100%; min-width: 0; resize: vertical; padding: 12px; border: 1px solid #cdd7e2; border-radius: 10px; background: #fff; color: #172332; font: 13px/1.5 ui-monospace, Consolas, monospace; white-space: pre-wrap; }
.recovery-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
form[aria-busy=true] :disabled { cursor: wait; opacity: .65; }
#editor > .recovery-panel { margin: 0 24px 24px; }
