/* SAAS-006: nutzt bestehende CI, eigene öffentliche Onboarding-Shell. */
.onboarding { padding: 0; }
.onboarding .environment-banner { margin: 0; font-size: var(--font-size-meta); line-height: 1.4; letter-spacing: .06em; text-align: center; }
.onboarding-top { max-width: 1080px; margin: auto; display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 24px; }
.onboarding-brand { display: block; flex: 0 1 280px; width: min(280px,100%); border-radius: 8px; }
.onboarding-brand-logo { display: block; width: 100%; height: auto; }
.onboarding-top nav { display: flex; gap: 16px; flex-wrap: wrap; }
.onboarding-top nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: var(--font-size-nav); font-weight: 700; line-height: 1.35; }
.onboarding-main { max-width: 960px; margin: 0 auto; padding: 24px 24px 70px; }
.onboarding-main h1 { font-size: var(--font-size-h1); line-height: 1.2; margin: 12px 0; }
.onboarding-hero, .onboarding-card { background: white; padding: 28px; border: 1px solid var(--border); border-radius: 16px; margin: 22px 0; }
.onboarding-hero { border-top: 4px solid var(--primary); padding: 40px; }
.onboarding-main h2 { font-size: var(--font-size-h2); line-height: 1.3; margin: 10px 0 18px; }
.onboarding-main p { line-height: 1.5; color: var(--text-muted); }
.onboarding-main a, .onboarding-main button { min-height: 44px; }
.onboarding-main .onboarding-check a { display: inline; min-height: 0; padding: 0; font: inherit; line-height: inherit; vertical-align: baseline; }
.onboarding-password-help { margin: -8px 0 18px; }
.onboarding-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.onboarding-actions form { margin: 0; }
.onboarding-card pre + .btn-primary { display: inline-flex; align-items: center; justify-content: center; margin-top: 18px; padding: 10px 18px; border: 1px solid var(--primary); border-radius: 9px; background: var(--primary); color: white; text-decoration: none; font-weight: 700; }
.onboarding-secondary { display: inline-block; margin: 16px; }
.onboarding-tag { font-size: var(--font-size-meta); line-height: 1.4; font-weight: 700; letter-spacing: .06em; color: var(--primary); }
.onboarding-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; padding: 0; list-style: none; }
.onboarding-steps li { padding: 20px; border: 1px solid var(--border); background: #f8fbfd; border-radius: 12px; }
.onboarding-steps p { font-size: var(--font-size-secondary); line-height: 1.5; }
.onboarding-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.onboarding-main label { display: block; margin-bottom: 18px; font-size: var(--font-size-action); line-height: 1.35; font-weight: 700; }
.onboarding-main input:not([type=checkbox]), .onboarding-main select { display: block; width: 100%; min-height: 46px; margin-top: var(--field-label-gap); padding: 10px 12px; border: 1px solid var(--border); border-radius: 8px; font: inherit; background: #fff; box-sizing: border-box; }
.onboarding-check { display: flex !important; align-items: center; gap: 12px; }
.onboarding-check input { width: 22px; height: 22px; flex-shrink: 0; }
.onboarding-main button { padding: 12px 20px; border-radius: 9px; border: 1px solid var(--border); font-family: var(--font-family); font-size: var(--font-size-action); font-weight: 700; line-height: 1.35; cursor: pointer; }
.onboarding-main button:disabled { opacity: .5; cursor: not-allowed; }
.onboarding-help { margin: 16px 0; font-size: var(--font-size-secondary); line-height: 1.5; }
.onboarding-help summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; color: var(--primary); }
.onboarding dl { display: grid; grid-template-columns: 1fr 2fr; gap: 12px; margin: 24px 0; }
.onboarding dt { font-weight: 700; }
.onboarding dd { margin: 0; overflow-wrap: anywhere; }
.onboarding :is(a,button,input,select,summary):focus-visible { outline: 3px solid var(--primary); outline-offset: 3px; }
@media(max-width: 800px) { .onboarding-steps { grid-template-columns: 1fr 1fr; } }
@media(max-width: 599px) { .onboarding-form-grid, .onboarding-steps { grid-template-columns: 1fr; } .onboarding-top { align-items: flex-start; flex-direction: column; padding: 20px; } .onboarding-brand { flex-basis: 97px; } .onboarding-main { padding: 16px 16px 50px; } .onboarding-card, .onboarding-hero { padding: 22px; } .onboarding dl { grid-template-columns: 1fr; gap: 6px; } .onboarding dd { margin-bottom: 14px; } }
.public-legal-footer { max-width: 960px; margin: 0 auto; padding: 0 24px 28px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; font-size: var(--font-size-secondary); }
.public-legal-footer a { color: var(--primary); font-weight: 700; }
.legal-document .terms-document { max-width: none; margin: 0; padding: 0; background: transparent; border: 0; box-shadow: none; }
.terms-document h2 { margin-top: 42px; padding-top: 22px; border-top: 1px solid var(--border); }
.terms-document h3 { margin-top: 28px; }
.terms-document ul { padding-left: 1.4rem; }
.terms-document li { margin-bottom: 8px; }
.terms-document table { width: 100%; margin: 18px 0; border-collapse: collapse; }
.terms-document th, .terms-document td { padding: 8px; border: 1px solid var(--border); text-align: left; vertical-align: top; }
.terms-document th { background: #f6f8fa; }
.terms-document code { padding: 2px 5px; border-radius: 4px; background: #eef5f8; }
@media(max-width: 599px) { .public-legal-footer { padding: 0 16px 24px; gap: 10px 14px; } .terms-document { overflow-wrap: anywhere; } .terms-document table { display: block; overflow-x: auto; } }
