/* Geschützter Systemcheck. Keine Änderungen an Marke oder Startseite. */
.system-check-page { background: var(--paper); }
.system-check-heading { margin-bottom: 30px; }
.system-check-heading h1 { margin: 10px 0 14px; font-size: clamp(2.7rem, 7vw, 5.3rem); }
.system-check-heading p { max-width: 720px; margin-bottom: 0; }
.system-check-heading-row { display: flex; justify-content: space-between; align-items: end; gap: 24px; }
.system-check-login-shell { max-width: 620px; }
.system-check-login { display: grid; gap: 14px; padding: clamp(24px, 5vw, 42px); }
.system-check-login label { font-weight: 800; }
.system-check-login input { width: 100%; min-height: 52px; padding: 12px 15px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); color: var(--ink); }
.system-check-login-error { margin: 0; color: #7f3932; font-weight: 700; }
.system-check-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 24px; }
.system-check-summary > div { display: flex; align-items: baseline; gap: 10px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 18px; background: var(--white); }
.system-check-summary strong { font-size: 1.8rem; line-height: 1; }
.system-check-summary span { color: var(--ink-soft); }
.system-check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.system-check-card { padding: 22px; border-left: 5px solid var(--line); }
.system-check-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.system-check-card h2 { margin: 0; font-size: 1.25rem; letter-spacing: -.025em; }
.system-check-badge { flex: 0 0 auto; padding: 5px 9px; border-radius: 999px; font-size: .75rem; font-weight: 850; }
.system-check-summary-text { margin: 15px 0 0; color: var(--ink); font-weight: 750; }
.system-check-details { margin: 8px 0 0; font-size: .92rem; }
.system-check-success { border-left-color: #3c8b70; }
.system-check-success .system-check-badge { background: var(--mint); color: var(--petrol-deep); }
.system-check-warning { border-left-color: var(--amber); }
.system-check-warning .system-check-badge { background: var(--amber-soft); color: #73500e; }
.system-check-error { border-left-color: var(--coral); }
.system-check-error .system-check-badge { background: var(--coral-soft); color: #7f3932; }
@media (max-width: 760px) {
    .system-check-heading-row { align-items: stretch; flex-direction: column; }
    .system-check-summary, .system-check-grid { grid-template-columns: 1fr; }
}

.system-check-heading-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.system-check-heading-actions form { margin: 0; }
.praxis-progress { display: grid; grid-template-columns: minmax(220px, auto) 1fr auto; align-items: center; gap: 20px; margin-bottom: 24px; padding: 20px 22px; }
.praxis-progress strong { display: block; margin-top: 5px; }
.praxis-progress-track { height: 10px; overflow: hidden; border-radius: 999px; background: var(--mint); }
.praxis-progress-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--petrol); transition: width .2s ease; }
.praxis-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.praxis-card { padding: 24px; }
.praxis-card h2, .praxis-email-card h2 { margin: 8px 0 9px; font-size: 1.45rem; }
.praxis-card > p { margin-bottom: 18px; }
.praxis-check { display: grid; grid-template-columns: 22px 1fr; align-items: start; gap: 11px; padding: 12px 0; border-top: 1px solid var(--line); cursor: pointer; }
.praxis-check input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--petrol); }
.praxis-check span { color: var(--ink); }
.praxis-check:has(input:checked) span { color: var(--ink-soft); text-decoration: line-through; text-decoration-thickness: 1px; }
.praxis-email-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, .9fr); gap: 32px; align-items: end; margin-top: 18px; padding: 26px; }
.praxis-email-card form { display: grid; gap: 9px; }
.praxis-email-card label { font-weight: 800; }
.praxis-email-line { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.praxis-email-line input { min-width: 0; min-height: 50px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); background: var(--white); }
.praxis-note { margin-top: 18px; padding: 22px 24px; }
.praxis-note p { margin: 6px 0 0; }

@media (max-width: 780px) {
    .system-check-heading-actions { width: 100%; }
    .system-check-heading-actions .button { flex: 1 1 auto; }
    .praxis-progress, .praxis-email-card { grid-template-columns: 1fr; }
    .praxis-grid { grid-template-columns: 1fr; }
    .praxis-email-line { grid-template-columns: 1fr; }
}
.vapid-generator {
    margin: 28px 0;
    padding: 24px;
    display: grid;
    gap: 18px;
}
.vapid-generator h2 { margin: 6px 0 10px; }
.vapid-values { display: grid; gap: 14px; }
.vapid-values label { display: grid; gap: 6px; font-weight: 800; }
.vapid-values textarea { width: 100%; padding: 12px; border: 1px solid var(--line); border-radius: 12px; font-family: ui-monospace, monospace; }
.vapid-values pre { overflow: auto; padding: 16px; border-radius: 14px; background: #14211f; color: #d9efea; }

/* Einig 0.11.3: geschütztes Sicherungs-Cockpit. */
.backup-console { margin: 28px 0; padding: clamp(22px, 4vw, 34px); display: grid; gap: 24px; }
.backup-console-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; }
.backup-console-heading h2 { margin: 7px 0 10px; font-size: clamp(1.7rem, 3vw, 2.35rem); }
.backup-console-heading p { max-width: 820px; margin: 0; }
.backup-badge-ready { background: var(--mint); color: var(--petrol-deep); }
.backup-badge-warning { background: var(--amber-soft); color: #73500e; }
.backup-setup-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.backup-setup-card { display: grid; align-content: start; gap: 9px; min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); }
.backup-setup-card strong { overflow-wrap: anywhere; }
.backup-setup-card .button { justify-self: start; }
.backup-secret-value { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .88rem; }
.backup-latest { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px; border-radius: 20px; background: var(--mint); }
.backup-latest h3 { margin: 5px 0 7px; }
.backup-latest p { margin: 0; }
.backup-latest-empty { background: var(--amber-soft); }
.backup-metrics { display: flex; flex-wrap: wrap; gap: 12px; }
.backup-metrics span { min-width: 110px; padding: 12px 14px; border-radius: 15px; background: rgba(255,255,255,.72); }
.backup-metrics strong { display: block; font-size: 1.4rem; }
.backup-files-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.backup-file-card { display: grid; align-content: start; gap: 10px; padding: 22px; border: 1px solid var(--line); border-radius: 20px; background: var(--white); }
.backup-file-card h3 { margin: 0; }
.backup-file-card p { margin: 0 0 4px; }
.backup-file-card .button { justify-self: start; margin-top: 4px; }
.backup-key-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(310px, .9fr); gap: 24px; align-items: center; padding: 22px; border: 1px solid rgba(23,63,58,.18); border-radius: 20px; background: rgba(231,242,238,.45); }
.backup-key-card h3 { margin: 6px 0 9px; }
.backup-key-card p { margin: 0; }
.backup-key-value { display: grid; gap: 9px; }
.backup-key-value textarea { width: 100%; resize: none; padding: 13px; border: 1px solid var(--line); border-radius: 13px; background: var(--white); color: var(--ink); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.backup-key-value .button { justify-self: start; }
.backup-key-confirmed { color: #236a54; font-weight: 850; }
.backup-console-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.backup-console-actions form { margin: 0; }
.backup-retention-note { margin: -4px 0 0; color: var(--ink-soft); font-size: .94rem; }
@media (max-width: 780px) {
    .backup-console-heading, .backup-latest { align-items: stretch; flex-direction: column; }
    .backup-setup-grid, .backup-files-grid, .backup-key-card { grid-template-columns: 1fr; }
    .backup-console-actions .button, .backup-console-actions form { width: 100%; }
}
