.security-card {
  padding: 24px;
  margin-bottom: 20px;
  min-width: 0;
}
.security-card h2 {
  font-size: 18px;
  margin-bottom: 12px;
}
.security-card p {
  margin: 12px 0;
  color: var(--gray-600);
}
.security-card label,
.login-card label {
  display: block;
  margin: 12px 0;
}
.security-card input,
.login-card input {
  width: 100%;
  margin-top: 6px;
}
.security-grid {
  align-items: start;
}
.security-badge {
  display: inline-block;
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 20px;
  background: var(--primary-light);
  color: var(--primary);
  font-weight: 500;
}
.security-passkeys {
  list-style: none;
  padding: 0;
}
.security-passkeys li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  border-top: 1px solid var(--gray-200);
}
.security-passkeys small,
.wf-user-identity small {
  display: block;
  color: var(--gray-500);
  font-size: 12px;
}
.security-feedback {
  padding: 16px;
  border: 1px solid var(--gray-300);
  border-radius: 6px;
  margin-bottom: 16px;
  background: var(--gray-100);
  overflow-wrap: anywhere;
}
#totp-secret {
  display: block;
  overflow-wrap: anywhere;
  user-select: all;
}
#totp-qr {
  max-width: 100%;
  height: auto;
}
#security-code-list {
  padding: 16px;
  background: var(--gray-100);
  line-height: 1.8;
  overflow-x: auto;
}
.security-reminder {
  margin: 20px 24px 0;
  padding: 16px;
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  background: var(--primary-light);
}
.security-reminder p {
  margin: 6px 0 12px;
}
.security-reminder-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.security-reminder form {
  margin: 0;
}
.wf-user-identity {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 150px;
}
.wf-user-identity .wf-avatar {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
}
.wf-user-identity strong {
  display: block;
}
.wf-icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: var(--gray-500);
  cursor: pointer;
  padding: 6px;
}
.wf-icon-button:hover {
  background: var(--gray-100);
  color: var(--primary);
}
.wf-icon-button.danger:hover {
  color: #dc2626;
}
.wf-icon-button [data-wf-icon] {
  width: 15px;
  height: 15px;
}
.wf-user-actions {
  display: flex;
  gap: 3px;
  justify-content: flex-end;
  align-items: center;
}
.wf-user-actions form {
  margin: 0;
}
.wf-user-table td {
  vertical-align: middle !important;
}
.wf-user-table th:last-child {
  text-align: right;
}
.wf-user-table .security-badges {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  min-width: 100px;
}
.security-login-hint {
  font-size: 12px;
  color: var(--gray-500);
  margin-top: 20px;
}
.wf-login-time {
  white-space: nowrap;
  font-size: 12px;
}
.wf-user-table {
  min-width: 900px;
}
@media (max-width: 640px) {
  .security-card {
    padding: 16px;
  }
  .security-reminder {
    margin: 16px 16px 0;
  }
  .wf-user-actions .wf-icon-button {
    width: 36px;
    height: 36px;
  }
}
.security-card input[type="checkbox"] { width: auto; margin: 0 8px 0 0; }
.security-card select { width: 100%; margin-top: 6px; }

/* ID Austria: gewähltes Registrierungslogo als primäre grafische Anmeldung. */
.login-page.login-with-id-austria .login-wrapper{max-width:560px!important}
.id-austria-login-section{margin:0 0 24px}
.id-austria-login-graphic{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%;min-height:104px;box-sizing:border-box;padding:14px 8px;border:2px solid #1252a1;border-radius:12px;background:#fff;color:#083c80;box-shadow:0 4px 14px #1252a11a;cursor:pointer;font-family:inherit;font-size:16px;font-weight:650;transition:box-shadow .15s,border-color .15s}
.id-austria-login-graphic img{display:block;width:100%;height:auto;max-width:960px}
.id-austria-login-graphic>span{display:flex;align-items:center;gap:12px}
.id-austria-login-graphic:hover:not(:disabled){border-color:#082049;box-shadow:0 5px 18px #1252a130}
.id-austria-login-graphic:focus-visible{outline:3px solid var(--wf-primary,#1252a1);outline-offset:4px}
.id-austria-login-graphic:disabled{opacity:.6;cursor:wait}
#id-austria-login-help{font-size:13px;line-height:1.5;color:var(--gray-600);margin:12px 0 0;text-align:center}
.id-austria-login-divider{display:flex;align-items:center;gap:12px;margin:0 0 20px;color:var(--gray-500);font-size:12px;text-align:center}
.id-austria-login-divider:before,.id-austria-login-divider:after{content:"";flex:1;border-top:1px solid var(--gray-200)}
@media(max-width:420px){.login-page.login-with-id-austria{padding:16px!important}.login-with-id-austria .login-card{padding:24px 18px!important}.id-austria-login-graphic{padding:14px 4px}}
@media(prefers-reduced-motion:reduce){.id-austria-login-graphic{transition:none}}

/* Alternative Anmeldeverfahren, Passwortformular standardmäßig eingeklappt. */
.login-methods-page .login-wrapper{max-width:560px!important}
.login-passkey-section{margin:0 0 24px}
.login-passkey-icon{color:#1252a1}
#passkey-login-help{font-size:13px;line-height:1.5;color:var(--gray-600);margin:12px 0 0;text-align:center}
.login-password-disclosure{border:1px solid var(--gray-300);border-radius:12px;margin:8px 0 20px;overflow:hidden;background:var(--white)}
.login-password-disclosure summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;padding:18px 16px;font-size:14px;font-weight:600;line-height:1.5;color:var(--gray-800);cursor:pointer}
.login-password-disclosure summary::-webkit-details-marker{display:none}
.login-password-disclosure summary:focus-visible{outline:3px solid var(--wf-primary,#1252a1);outline-offset:-4px;border-radius:10px}
.login-password-chevron{font-size:22px;flex-shrink:0}
.login-password-disclosure[open] .login-password-chevron{transform:rotate(180deg)}
#login-password-content:not(:empty),.login-password-disclosure noscript{display:block;padding:0 16px 18px}
.login-password-forgot{text-align:center;margin:16px 0 0;font-size:14px}
@media(max-width:420px){.login-page.login-methods-page{padding:16px!important}.login-methods-page .login-card{padding:24px 18px!important}}

.security-dialog{box-sizing:border-box;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;margin:auto!important;padding:24px!important;border:1px solid var(--gray-300);border-radius:14px;background:var(--white);color:var(--gray-800);box-shadow:0 20px 70px #0004}
.security-dialog:not([open]){display:none!important}
.security-dialog::backdrop{background:#08204980}
.security-dialog h2{font-size:20px;margin:0 0 12px}
.security-dialog p{font-size:14px;line-height:1.6;margin:12px 0 18px}
.security-dialog label{display:block;margin:14px 0;font-weight:600}
.security-dialog input{display:block;width:100%;box-sizing:border-box;padding:10px;margin-top:6px;border:1px solid var(--gray-300);border-radius:8px;font:inherit;color:inherit;background:var(--white)}
.security-dialog-actions,.security-reminder-choices{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}
.security-reminder-choices .btn{font-size:13px!important;flex:1 1 auto}
.security-setup-selected{outline:3px solid var(--wf-primary,#1252a1);outline-offset:3px;scroll-margin:90px}
@media(max-width:600px){.security-dialog{padding:20px!important}.security-dialog-actions .btn{flex:1}.security-reminder-choices .btn{flex:1 1 100%}}

/* Klar gegliederte Auswahl der drei Schutzarten. */
.security-page{max-width:1440px}
.security-page .security-setup-intro{display:flex;flex-wrap:wrap;gap:8px 24px;margin:24px 0;padding:16px 20px;border:1px solid var(--gray-200);border-radius:10px;background:var(--gray-50);color:var(--gray-600);font-size:.9rem}
.security-page .security-setup-intro strong{color:var(--gray-800)}
.security-page .security-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch;margin-bottom:24px}
.security-page .security-method{display:flex;flex-direction:column;min-width:0;margin:0;padding:24px;border-radius:12px}
.security-method-heading{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:16px}
.security-method-kicker{font-size:.68rem;font-weight:700;letter-spacing:.08em;color:var(--gray-500)}
.security-page .security-method h2{margin:0;font-size:1.2rem}
.security-page .security-method>p{margin:0 0 20px;line-height:1.6}
.security-page .security-badge{margin:0;padding:4px 9px;background:var(--gray-100);color:var(--gray-600)}
.security-page .security-badge.is-active{background:#e5f5eb;color:#176539}
.security-method-controls{margin-top:auto;padding-top:4px}
.security-method-controls>.btn{width:100%}
.security-method-controls label{margin-bottom:12px}
.security-method-details{font-size:.8rem;color:var(--gray-600);margin-top:18px;line-height:1.6}
.security-method-details summary{cursor:pointer;padding:4px 0}
.security-page .security-method-details p{margin:10px 0 0}
.security-page .security-passkeys:empty{display:none}
.security-page .security-passkeys{margin-bottom:0}
.security-page .security-setup-selected{outline:none;border-color:var(--wf-primary,#1252a1);box-shadow:0 0 0 1px var(--wf-primary,#1252a1)}
.security-page .security-recovery{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:0;padding:20px 24px;background:var(--gray-50)}
.security-recovery .btn{flex-shrink:0}
.security-page .security-recovery p{margin-bottom:0}
.security-page #totp-qr{max-width:100%;height:auto}
.security-page #totp-secret{overflow-wrap:anywhere}
@media(max-width:1199px){.security-page .security-grid{grid-template-columns:1fr}.security-page .security-method{padding:20px}.security-page .security-recovery{align-items:flex-start;flex-direction:column;gap:14px}}
@media(max-width:600px){.security-page .security-setup-intro{flex-direction:column;gap:8px;padding:16px}.security-page .security-recovery .btn{width:100%}}
[data-theme="dark"] .security-page .btn-outline{background:transparent!important;color:var(--gray-700)!important;border:1px solid var(--gray-300)!important}
[data-theme="dark"] .security-page .btn-outline:hover:not(:disabled){background:var(--gray-100)!important}
#security-reminder-dialog::backdrop{background:rgba(12,23,42,.5);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
body:has(#security-reminder-dialog[open])>:not(#security-reminder-dialog):not(script):not(style){filter:blur(10px);user-select:none}
.security-reminder .security-reminder-footer{margin-top:28px;padding-top:18px;border-top:1px solid var(--gray-200)}
.security-reminder-choices .security-choice{display:flex;flex:1;flex-direction:column;align-items:stretch;gap:8px;min-width:0}
.security-help{position:relative;align-self:center;display:inline-flex}
.security-help-button{border:1px solid var(--gray-300);border-radius:50%;width:24px;height:24px;background:var(--white);color:var(--gray-600);cursor:help;font-weight:700}
.security-help [role=tooltip]{display:none;position:absolute;z-index:2;width:210px;max-width:70vw;left:50%;transform:translateX(-50%);top:30px;padding:12px;border-radius:8px;background:var(--gray-800);color:var(--white);font-size:13px;line-height:1.5;box-shadow:0 4px 18px #0003}
.security-help:hover [role=tooltip],.security-help:focus-within [role=tooltip]{display:block}
.security-choice:first-child .security-help [role=tooltip]{left:-36px;transform:none}
.security-choice:last-child .security-help [role=tooltip]{left:auto;right:-36px;transform:none}
@media(max-width:600px){.security-reminder-choices .security-choice{flex-direction:row;align-items:center}.security-choice .btn{flex:1}.security-help [role=tooltip],.security-choice:first-child .security-help [role=tooltip],.security-choice:last-child .security-help [role=tooltip]{left:auto;right:0;transform:none}}
@media(max-width:600px){.security-reminder-choices .security-choice{flex-basis:100%}.security-reminder-choices .security-choice>.btn{flex:1 1 auto}}
.security-help [role=tooltip]{pointer-events:none}
.policy-options{border:0;padding:0;margin:22px 0;display:flex;flex-wrap:wrap;gap:10px}
.policy-options legend{font-weight:600;margin-bottom:10px}
.security-card .policy-option{margin:0;position:relative;flex:1;min-width:120px;cursor:pointer}
.policy-option input{position:absolute;opacity:0;width:1px;height:1px}
.policy-option span{display:block;text-align:center;padding:12px 18px;border:1px solid var(--gray-300);border-radius:8px;font-weight:600;color:var(--gray-700);background:var(--white)}
.policy-option input:checked+span{background:var(--wf-primary,#1252a1);color:var(--wf-primary-text,#fff);border-color:var(--wf-primary,#1252a1)}
.policy-option input:focus-visible+span{outline:3px solid var(--wf-primary,#1252a1);outline-offset:3px}
.security-policy-notice{margin:20px 0 14px;padding:14px 16px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;font-size:.9rem;line-height:1.6}
.security-policy-notice p{margin:0}.security-policy-notice p+p{margin-top:8px;color:var(--gray-600)}
