:root {
  --ink: var(--kk-text-primary);
  --muted: var(--kk-text-secondary);
  --green: var(--kk-action-primary);
  --green-dark: var(--kk-action-primary-active);
  --green-soft: var(--kk-action-primary-subtle);
  --line: var(--kk-border-subtle);
  --surface: var(--kk-bg-surface);
  --background: var(--kk-bg-canvas);
  --danger: var(--kk-danger);
  --warning-bg: var(--kk-warning-bg);
  --warning-ink: var(--kk-warning);
  --shadow: var(--kk-shadow-raised);
  font-family: var(--kk-font-sans);
  color: var(--kk-text-primary);
  background: var(--kk-bg-canvas);
  font-synthesis: none;
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--background); }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 85% 10%, #e8f4eb 0, transparent 34%), var(--background); }
button, input { font: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
[hidden] { display: none !important; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
:where(button, a, input, summary):focus-visible { outline: 3px solid rgba(36,122,75,.34); outline-offset: 3px; }

.onboarding-topbar { min-height: 72px; padding: 14px max(18px, env(safe-area-inset-right)) 14px max(18px, env(safe-area-inset-left)); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(220,231,223,.85); background: rgba(245,248,244,.92); position: sticky; top: 0; z-index: 20; backdrop-filter: blur(16px); }
.onboarding-brand { display: inline-flex; align-items: center; gap: 11px; color: inherit; text-decoration: none; }
.onboarding-brand-mark { width: 40px; height: 40px; border-radius: 13px; background: var(--green); color: white; display: grid; place-items: center; font-weight: 800; box-shadow: 0 8px 20px rgba(36,122,75,.22); }
.onboarding-brand span:last-child { display: grid; line-height: 1.1; }
.onboarding-brand strong { font-size: 16px; }
.onboarding-brand small { margin-top: 4px; color: var(--muted); font-size: 11px; }
.onboarding-system-status { border: 1px solid var(--line); background: var(--surface); border-radius: 999px; padding: 8px 12px; color: var(--muted); display: inline-flex; align-items: center; gap: 7px; font-size: 12px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: #d09632; }
.onboarding-system-status.ready .status-dot { background: var(--green); }
.onboarding-system-status.failed .status-dot { background: var(--danger); }
.onboarding-main { width: min(1120px, calc(100% - 32px)); margin: 0 auto; padding: clamp(28px, 6vw, 76px) 0 80px; }

.eyebrow { margin: 0 0 10px; color: var(--green); font-size: 12px; line-height: 1.2; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; }
h1, h2, p { margin-top: 0; }
h1 { margin-bottom: 18px; font-size: clamp(38px, 6vw, 72px); line-height: .98; letter-spacing: -.052em; max-width: 860px; overflow-wrap: anywhere; }
.panel-lead, .intro-lead, .step-lead { color: var(--muted); font-size: clamp(17px, 2vw, 21px); line-height: 1.55; max-width: 720px; }

.onboarding-intro { display: grid; grid-template-columns: minmax(0, 1.22fr) minmax(300px, .78fr); gap: clamp(28px, 6vw, 78px); align-items: center; min-height: calc(100vh - 170px); }
.intro-trust { margin: 22px 0 16px; color: var(--green-dark); font-weight: 750; }
.intro-support { margin-top: 14px; color: var(--muted); font-size: 14px; }
.intro-preview { position: relative; background: rgba(255,255,255,.94); border: 1px solid var(--line); border-radius: 28px; padding: clamp(26px, 4vw, 42px); box-shadow: var(--shadow); display: grid; gap: 8px; }
.intro-preview p, .intro-preview span, .intro-preview small { color: var(--muted); }
.intro-preview > strong { font-size: clamp(44px, 6vw, 64px); letter-spacing: -.05em; }
.intro-preview > b { font-size: 23px; }
.preview-badge { position: static; justify-self: end; background: var(--green-soft); color: var(--green-dark); padding: 6px 10px; border-radius: 999px; font-size: 11px; font-weight: 800; }
.mini-progress { height: 8px; background: #edf2ee; border-radius: 999px; overflow: hidden; margin: 16px 0 5px; }
.mini-progress i { display: block; height: 100%; background: var(--green); border-radius: inherit; }

.button { min-height: 50px; border: 0; border-radius: 15px; padding: 13px 20px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.button.primary { color: white; background: var(--green); box-shadow: 0 12px 24px rgba(36,122,75,.20); }
.button.primary:hover { background: var(--green-dark); }
.button.secondary { color: var(--ink); background: var(--green-soft); }
.button.text { color: var(--green-dark); background: transparent; box-shadow: none; }
.button:disabled { cursor: not-allowed; opacity: .55; }
.hero-button { min-height: 58px; padding-inline: 28px; font-size: 17px; }

.onboarding-flow, .onboarding-panel { width: min(780px, 100%); margin: 0 auto; background: rgba(255,255,255,.97); border: 1px solid var(--line); border-radius: 28px; padding: clamp(22px, 5vw, 52px); box-shadow: var(--shadow); }
.onboarding-panel { text-align: center; }
.onboarding-flow h1, .onboarding-panel h1, .onboarding-step h1, .onboarding-result h1, .onboarding-blocked h1 { font-size: clamp(34px, 5vw, 54px); line-height: 1.02; }
.stacked-actions { display: grid; gap: 8px; margin-top: 24px; }
.flow-header { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 34px; }
.back-button { width: 46px; height: 46px; flex: 0 0 auto; border-radius: 14px; border: 1px solid var(--line); background: white; font-size: 22px; }
.flow-stage-wrap { flex: 1; min-width: 0; }
.flow-stages { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 5px; }
.flow-stages li { position: relative; min-width: 0; padding-top: 12px; color: #91a096; font-size: 10px; line-height: 1.25; font-weight: 800; text-align: center; text-transform: uppercase; letter-spacing: .04em; white-space: normal; overflow-wrap: anywhere; word-break: normal; }
.flow-stages li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; border-radius: 999px; background: #edf2ee; }
.flow-stages li.complete::before, .flow-stages li.active::before { background: var(--green); }
.flow-stages li.active { color: var(--green-dark); }
#onboarding-step-count { margin: 8px 0 0; color: var(--muted); font-size: 12px; }

.choice-group { border: 0; padding: 0; margin: 26px 0 0; display: grid; gap: 11px; }
.choice-card { position: relative; display: flex; align-items: center; gap: 13px; min-height: 60px; border: 1px solid var(--line); border-radius: 18px; padding: 16px; background: white; cursor: pointer; text-align: left; }
.choice-card:has(input:checked) { border-color: var(--green); box-shadow: inset 0 0 0 1px var(--green); background: #f8fcf9; }
.choice-card input { width: 20px; height: 20px; accent-color: var(--green); flex: 0 0 auto; }
.choice-card span { display: grid; gap: 3px; }
.choice-card small { color: var(--muted); line-height: 1.4; }
.choice-card > b { margin-left: auto; color: var(--green-dark); background: var(--green-soft); border-radius: 999px; padding: 5px 8px; font-size: 10px; text-transform: uppercase; }
.choice-card:has(input:focus-visible) { outline: 3px solid rgba(36,122,75,.34); outline-offset: 3px; }
.safety-options .choice-card { align-items: flex-start; }
.safety-options .exclusive { background: var(--green-soft); }

.field-card { display: grid; gap: 9px; margin-top: 26px; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: #fbfdfb; text-align: left; }
.field-card.single { width: min(460px, 100%); }
.field-card > span { font-size: 13px; color: var(--muted); font-weight: 700; }
.field-card > div { display: flex; align-items: baseline; gap: 8px; }
.field-card input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 34px; font-weight: 800; min-width: 0; }
.field-card strong { color: var(--muted); }
.field-card:focus-within { border-color: var(--green); box-shadow: inset 0 0 0 1px var(--green), 0 0 0 4px rgba(36,122,75,.10); }
.goal-delta { margin-top: 18px; padding: 15px 17px; border-radius: 16px; background: var(--green-soft); color: var(--green-dark); font-weight: 800; }

.onboarding-actions { margin-top: 30px; display: grid; gap: 8px; }
.onboarding-actions .button { width: 100%; }
.inline-message { min-height: 19px; margin: 0; color: var(--muted); font-size: 13px; }
.inline-message.error { color: var(--danger); }
.inline-message.success { color: var(--green-dark); }
.privacy-note { margin-top: 14px; color: var(--muted); font-size: 12px; line-height: 1.5; }

.weight-route { display: grid; grid-template-columns: 1fr minmax(50px, 1fr) 1fr; align-items: center; gap: 12px; margin: 26px 0 16px; }
.weight-route div { display: grid; gap: 4px; padding: 17px; border: 1px solid var(--line); border-radius: 18px; background: #fbfdfb; }
.weight-route span, .bmi-summary span, .milestone-card span { color: var(--muted); font-size: 12px; }
.weight-route strong { font-size: 25px; }
.weight-route i { height: 4px; border-radius: 999px; background: linear-gradient(90deg,var(--green),#9bc6aa); }
.bmi-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.bmi-summary div { display: grid; gap: 4px; padding: 14px; border-radius: 16px; background: var(--green-soft); }
.bmi-summary strong { font-size: 22px; color: var(--green-dark); }
.bmi-note { margin: 15px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.milestone-card { margin-top: 18px; padding: 16px; border: 1px solid var(--line); border-radius: 18px; display: grid; gap: 5px; }
.milestone-card strong { font-size: 22px; }
.milestone-card small { color: var(--muted); }

.pace-preview { margin-top: 18px; padding: 16px; border: 1px solid var(--line); border-radius: 18px; background: #f8faf8; display: grid; gap: 5px; }
.pace-preview strong { color: var(--green-dark); }
.pace-preview span { color: var(--muted); }

.onboarding-result { text-align: center; }
.result-hero { margin: 24px auto 10px; width: min(410px,100%); padding: 22px; border-radius: 24px; background: var(--green-soft); display: grid; }
.result-hero strong { font-size: clamp(50px, 10vw, 76px); line-height: .95; letter-spacing: -.055em; color: var(--green-dark); }
.result-hero span { margin-top: 7px; color: var(--muted); font-weight: 700; }
.result-date { font-size: clamp(18px, 2.7vw, 23px); line-height: 1.45; }
.result-date strong, .result-date b { color: var(--green-dark); }
.projection-card { margin: 26px 0 20px; padding: 16px; border: 1px solid var(--line); border-radius: 20px; background: #fbfdfb; text-align: left; }
.projection-card svg { display: block; width: 100%; height: auto; overflow: visible; }
#projection-line { fill: none; stroke: var(--green); stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; }
#projection-target-line { stroke: #9db3a4; stroke-width: 2; stroke-dasharray: 8 8; }
#projection-start-dot, #projection-end-dot { fill: var(--surface); stroke: var(--green-dark); stroke-width: 4; }
.projection-card figcaption { margin-top: 10px; color: var(--muted); font-size: 12px; }
.projection-labels { display: flex; justify-content: space-between; gap: 12px; margin-top: 7px; color: var(--muted); font-size: 12px; }
.result-reassurance { font-weight: 750; line-height: 1.5; }
.result-benefit { margin: 22px 0; padding: 18px; border-radius: 19px; background: #f8faf8; text-align: left; }
.result-benefit h2 { margin-bottom: 6px; font-size: 18px; }
.result-benefit p { margin-bottom: 0; color: var(--muted); line-height: 1.5; }
.result-details { margin-top: 14px; text-align: left; border: 1px solid var(--line); border-radius: 16px; padding: 13px 15px; }
.result-details summary { font-weight: 800; cursor: pointer; }
.result-details dl { margin: 14px 0 0; display: grid; gap: 9px; }
.result-details dl div { display: flex; justify-content: space-between; gap: 12px; }
.result-details dt { color: var(--muted); }
.result-details dd { margin: 0; font-weight: 800; }
.result-warning { margin: 14px 0; padding: 13px; border-radius: 14px; background: var(--warning-bg); color: var(--warning-ink); font-size: 13px; }
.onboarding-blocked { text-align: center; }

.capture-secondary-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; margin-top: 12px; }
.capture-desktop-actions { display: none; }
.capture-panel .button.text { margin-top: 12px; }
.capture-handoff { margin-top: 22px; padding: 14px; border: 1px solid var(--line); border-radius: 18px; display: grid; grid-template-columns: 92px 1fr; align-items: center; gap: 15px; text-align: left; }
.capture-handoff img { width: 92px; height: 92px; }
.capture-handoff div { display: grid; gap: 4px; }
.capture-handoff span { color: var(--muted); }

.complete-mark { width: 72px; height: 72px; border-radius: 24px; background: var(--green-soft); color: var(--green-dark); display: grid; place-items: center; margin: 0 auto 22px; font-size: 34px; font-weight: 900; }
.first-day-card { margin: 24px auto; width: min(460px,100%); padding: 22px; border-radius: 22px; background: var(--green-soft); display: grid; gap: 7px; }
.first-day-card strong { color: var(--green-dark); font-size: clamp(28px,6vw,44px); }
.first-day-card span { color: var(--muted); font-weight: 700; }

.account-provider-list { display: grid; gap: 10px; margin-top: 24px; }
.auth-provider-button { min-height: 58px; width: 100%; border: 1px solid var(--line); border-radius: 16px; background: white; color: var(--ink); display: flex; align-items: center; gap: 13px; padding: 12px 16px; font-weight: 800; text-align: left; }
.auth-provider-button:disabled { cursor: not-allowed; opacity: .55; }
.auth-provider-mark { width: 34px; height: 34px; border-radius: 11px; background: #f1f4f2; display: grid; place-items: center; flex: 0 0 auto; }
.auth-provider-button span:last-child { display: grid; gap: 2px; }
.auth-provider-button small { color: var(--muted); font-weight: 600; }
.account-email-form { display: grid; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 18px; background: #fbfdfb; }
.account-email-form label { display: grid; gap: 6px; text-align: left; font-weight: 700; }
.account-email-form input { min-height: 48px; border: 1px solid var(--line); border-radius: 13px; padding: 11px 12px; }
.account-email-form small { color: var(--muted); font-weight: 500; }
.account-secured { margin-top: 22px; }

.access-overlay { position: fixed; inset: 0; z-index: 100; background: rgba(14,31,22,.58); display: grid; place-items: center; padding: 20px; }
.access-dialog { width: min(420px,100%); padding: 28px; border-radius: 24px; background: white; box-shadow: var(--shadow); }
.access-dialog label { display: block; margin: 18px 0 7px; font-weight: 700; }
.access-field { display: flex; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.access-field input { flex: 1; min-width: 0; border: 0; padding: 13px; outline: 0; }
.access-field button { width: 48px; border: 0; background: transparent; }
.access-dialog > .button { width: 100%; margin-top: 14px; }
.toast { position: fixed; left: 50%; bottom: max(20px, env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 120; max-width: min(420px, calc(100% - 32px)); border-radius: 14px; padding: 12px 16px; color: white; background: var(--ink); box-shadow: var(--shadow); }


.intro-proof-list { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.intro-proof-list li { position: relative; padding: 8px 12px 8px 30px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.72); color: var(--green-dark); font-size: 12px; font-weight: 750; }
.intro-proof-list li::before { content: "✓"; position: absolute; left: 11px; color: var(--green); font-weight: 900; }
.motivation-line, .motivation-callout { margin: 20px 0 0; padding: 16px 18px; border-radius: 18px; background: linear-gradient(135deg, #e8f3eb, #f8fbf8); color: var(--green-dark); line-height: 1.5; }
.motivation-callout strong { display: block; margin-bottom: 3px; font-size: 19px; }
.belief-personal-card { margin-top: 24px; padding: 20px; border: 1px solid var(--line); border-radius: 20px; background: #fbfdfb; display: grid; grid-template-columns: 46px 1fr; gap: 14px; align-items: start; }
.belief-icon, .science-mark { width: 46px; height: 46px; border-radius: 15px; background: var(--green-soft); color: var(--green-dark); display: grid; place-items: center; font-size: 22px; font-weight: 900; }
.belief-personal-card h2, .science-trust-card h2 { margin-bottom: 6px; font-size: 18px; line-height: 1.25; }
.belief-personal-card p, .science-trust-card p { margin-bottom: 0; color: var(--muted); line-height: 1.55; }
.belief-pill-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.belief-pill-row span { padding: 8px 11px; border-radius: 999px; background: var(--green-soft); color: var(--green-dark); font-size: 12px; font-weight: 800; }
.energy-model { margin-top: 24px; padding: 22px; border: 1px solid var(--line); border-radius: 22px; background: #fbfdfb; display: grid; gap: 17px; }
.energy-row { display: grid; gap: 8px; }
.energy-row > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.energy-row span, .energy-deficit span { color: var(--muted); font-size: 13px; }
.energy-row strong, .energy-deficit strong { color: var(--ink); font-variant-numeric: tabular-nums; }
.energy-row i { display: block; width: 100%; height: 11px; border-radius: 999px; background: #e9efeb; overflow: hidden; position: relative; }
.energy-row i::after { content: ""; display: block; height: 100%; width: var(--energy-width, 100%); border-radius: inherit; background: #93ad9d; }
.energy-row.target i::after { background: var(--green); }
.energy-deficit { padding-top: 16px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 16px; align-items: baseline; }
.energy-deficit strong { color: var(--green-dark); }
.science-average { margin: 16px 0 0; color: var(--green-dark); font-weight: 750; line-height: 1.5; }
.science-trust-card { margin-top: 20px; padding: 18px; border: 1px solid #b9d5c2; border-radius: 20px; background: linear-gradient(135deg, #eef8f0, #fbfdfb); display: grid; grid-template-columns: 46px 1fr; gap: 14px; align-items: start; }
.science-sources { margin-top: 14px; border: 1px solid var(--line); border-radius: 17px; padding: 13px 15px; text-align: left; background: white; }
.science-sources summary { font-weight: 800; color: var(--green-dark); cursor: pointer; }
.science-source-body { margin-top: 13px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.science-source-body ul { margin: 12px 0 0; padding-left: 20px; display: grid; gap: 12px; }
.science-source-body li { padding-left: 3px; }
.science-source-body a { color: var(--green-dark); font-weight: 800; }
.science-source-body span { display: block; margin-top: 2px; }
.capture-methods { margin-top: 24px; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.capture-methods article { min-width: 0; padding: 18px 15px; border: 1px solid var(--line); border-radius: 20px; background: #fbfdfb; display: grid; gap: 7px; text-align: left; }
.capture-methods article > span { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 13px; background: var(--green-soft); color: var(--green-dark); font-size: 21px; font-weight: 900; }
.capture-methods strong { font-size: 17px; }
.capture-methods small { color: var(--muted); line-height: 1.45; }
.method-outcome { margin-top: 16px; padding: 18px; border-radius: 19px; background: var(--green-soft); display: grid; gap: 5px; }
.method-outcome strong { color: var(--green-dark); }
.method-outcome span { color: var(--muted); }
.result-science-seal { margin: 16px auto 0; width: min(470px,100%); display: flex; align-items: center; justify-content: center; gap: 11px; padding: 12px 15px; border: 1px solid var(--line); border-radius: 16px; background: #fbfdfb; text-align: left; }
.result-science-seal > span { width: 34px; height: 34px; border-radius: 11px; display: grid; place-items: center; background: var(--green-soft); color: var(--green-dark); font-weight: 900; }
.result-science-seal > div { display: grid; gap: 2px; }
.result-science-seal small { color: var(--muted); }

@media (min-width: 900px) {
  .capture-mobile-actions { display: none; }
  .capture-desktop-actions { display: block; }
  .capture-secondary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .onboarding-result { width: min(920px,100%); margin-left: auto; margin-right: auto; }
  .onboarding-flow:has(.onboarding-result:not([hidden])) { width: min(980px,100%); }
}
@media (max-width: 800px) {
  .onboarding-system-status .status-label { display: none; }
  .onboarding-system-status { width: 38px; height: 38px; padding: 0; justify-content: center; }
  .onboarding-main { width: min(100% - 24px, 680px); padding-top: 28px; }
  .onboarding-intro { grid-template-columns: minmax(0, 1fr); min-height: auto; }
  .intro-copy h1 { max-width: 100%; font-size: clamp(34px, 9.8vw, 49px); line-height: 1.03; letter-spacing: -.045em; text-wrap: balance; overflow-wrap: anywhere; hyphens: auto; }
  .intro-preview { order: 0; padding: 24px; grid-template-columns: minmax(0, 1fr); }
  .intro-preview > strong { font-size: 46px; }
  .choice-card > b { display: none; }
  .capture-secondary-grid { grid-template-columns: 1fr; }
  .capture-methods { grid-template-columns: 1fr; }
  .energy-row > div, .energy-deficit { align-items: flex-start; }
}
@media (max-width: 480px) {
  .onboarding-topbar { min-height: 64px; }
  .onboarding-brand small { display: none; }
  .onboarding-main { width: 100%; padding: 18px 12px 48px; }
  .onboarding-flow, .onboarding-panel { border-radius: 22px; padding: 20px 17px 24px; }
  .intro-preview { border-radius: 22px; }
  .flow-header { margin-bottom: 26px; }
  .flow-stages li { font-size: 8px; }
  .onboarding-step h1, .onboarding-result h1, .onboarding-blocked h1, .onboarding-panel h1 { font-size: 34px; }
  .weight-route { grid-template-columns: 1fr; }
  .weight-route i { width: 4px; height: 28px; justify-self: center; }
  .bmi-summary { grid-template-columns: 1fr; }
  .belief-personal-card, .science-trust-card { grid-template-columns: 40px 1fr; padding: 16px; }
  .belief-icon, .science-mark { width: 40px; height: 40px; border-radius: 13px; }
  .energy-row > div, .energy-deficit { display: grid; gap: 3px; }
  .projection-labels { display: grid; grid-template-columns: 1fr 1fr; }
  .projection-labels span:last-child { text-align: right; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }

/* KalorienKlar Onboarding Design System Integration v0.8.4 */
html, body { background: var(--kk-bg-canvas); color: var(--kk-text-primary); font-family: var(--kk-font-sans); } body { background-image: none; }
.onboarding-topbar { min-height: 64px; border-bottom-color: color-mix(in srgb, var(--kk-border-subtle) 88%, transparent); background: color-mix(in srgb, var(--kk-bg-canvas) 86%, transparent); backdrop-filter: blur(18px) saturate(145%); -webkit-backdrop-filter: blur(18px) saturate(145%); }
.onboarding-brand { min-height: 44px; gap: var(--kk-space-2); } .onboarding-brand-symbol { width: 34px; height: 34px; flex: 0 0 auto; } .onboarding-access-brand-symbol { width: 48px; height: 48px; margin-bottom: var(--kk-space-3); } .onboarding-brand-mark { display: none; }
.onboarding-brand strong { font-size: 17px; letter-spacing: -.02em; } .onboarding-brand small { color: var(--kk-text-tertiary); }
.onboarding-system-status { min-height: 40px; border-color: var(--kk-border-subtle); background: var(--kk-bg-surface); color: var(--kk-text-secondary); }
.onboarding-main { width: min(var(--kk-page-max), calc(100% - 32px)); }
.eyebrow { color: var(--kk-action-primary); font-weight: var(--kk-fw-semibold); text-transform: none; letter-spacing: .04em; } h1 { color: var(--kk-text-primary); letter-spacing: -.04em; } .panel-lead, .intro-lead, .step-lead { color: var(--kk-text-secondary); }
.choice-card, .field-card, .projection-card, .milestone-card, .result-details, .pace-preview, .capture-handoff, .science-card, .product-bridge-card, .onboarding-panel { border-color: var(--kk-border-subtle); background: var(--kk-bg-surface); box-shadow: none; border-radius: var(--kk-radius-lg); }
.choice-card { min-height: 60px; border-radius: var(--kk-radius-md); } .choice-card:has(input:checked) { border-color: var(--kk-action-primary); background: var(--kk-action-primary-subtle); box-shadow: inset 0 0 0 1px var(--kk-action-primary); } .choice-card input { accent-color: var(--kk-action-primary); }
.field-card { border-radius: var(--kk-radius-md); background: var(--kk-bg-surface); } .field-card input { color: var(--kk-text-primary); font-variant-numeric: tabular-nums; } .field-card:focus-within { border-color: var(--kk-action-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--kk-action-primary) 18%, transparent); }
.goal-delta, .result-hero, .first-day-card, .complete-mark { background: var(--kk-action-primary-subtle); color: var(--kk-action-primary-active); } .result-hero strong { color: var(--kk-action-primary-active); font-variant-numeric: tabular-nums; }
.projection-card { background: var(--kk-bg-surface); } #projection-line { stroke: var(--kk-data-energy); } #projection-target-line { stroke: var(--kk-text-tertiary); } #projection-start-dot, #projection-end-dot { fill: var(--kk-bg-surface); stroke: var(--kk-action-primary-active); }
.button { min-height: 48px; border-radius: var(--kk-radius-md); font-weight: var(--kk-fw-semibold); } .hero-button { min-height: 56px; } .button.primary { background: var(--kk-action-primary); border-color: var(--kk-action-primary); color: var(--kk-action-on-primary); box-shadow: none; } .button.primary:hover { background: var(--kk-action-primary-hover); } .button.secondary { background: var(--kk-bg-surface); color: var(--kk-text-primary); border-color: var(--kk-border-default); }
.access-dialog, .account-sheet { background: var(--kk-bg-surface); color: var(--kk-text-primary); border: 1px solid var(--kk-border-subtle); box-shadow: var(--kk-shadow-modal); }
:where(button, a, input, summary):focus-visible { outline: 3px solid var(--kk-focus); outline-offset: 2px; }
@media (max-width: 720px) { .onboarding-main { width: min(100% - 32px, var(--kk-copy-max)); padding-top: var(--kk-space-8); } h1 { font-size: clamp(2rem, 10vw, 2.75rem); line-height: 1.08; } .onboarding-intro { min-height: auto; } }
@media (prefers-contrast: more) { .onboarding-topbar { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--kk-bg-surface); } }

/* v0.8.4 onboarding component normalization */
.intro-preview, .onboarding-flow, .onboarding-panel, .back-button, .choice-card, .auth-provider-button,
.access-dialog, .science-sources, .belief-personal-card, .energy-model, .science-trust-card,
.capture-methods article, .result-science-seal {
  background: var(--kk-bg-surface);
  color: var(--kk-text-primary);
  border-color: var(--kk-border-subtle);
}
.intro-proof-list li, .method-outcome, .result-hero, .first-day-card, .goal-delta { background: var(--kk-action-primary-subtle); }
.mini-progress, .energy-row i { background: var(--kk-bg-subtle); }
.energy-row i::after { background: var(--kk-text-tertiary); }
.energy-row.target i::after { background: var(--kk-data-energy); }
.science-trust-card { background: var(--kk-action-primary-subtle); border-color: color-mix(in srgb, var(--kk-action-primary) 24%, var(--kk-border-subtle)); }
.science-sources summary, .science-source-body a, .science-average, .energy-deficit strong { color: var(--kk-action-primary-active); }
.capture-methods article > span, .result-science-seal > span, .belief-icon, .science-mark { background: var(--kk-action-primary-subtle); color: var(--kk-action-primary); }
.flow-stages li { color: var(--kk-text-tertiary); }
.flow-stages li::before { background: var(--kk-bg-subtle); }
.flow-stages li.complete::before, .flow-stages li.active::before { background: var(--kk-action-primary); }
.flow-stages li.active { color: var(--kk-action-primary-active); }
.status-dot { background: var(--kk-warning); }

/* v0.8.4 final brand asset integration */
.onboarding-brand-logo-wrap { display: inline-flex; align-items: center; min-height: 44px; }
.onboarding-brand-logo { width: 148px; height: auto; }
.onboarding-brand-logo-dark, .onboarding-brand-symbol-compact { display: none; }
.onboarding-brand-tagline { display: grid; }
.onboarding-brand-tagline small { margin-top: 2px; color: var(--kk-text-tertiary); font-size: 10px; font-weight: var(--kk-fw-semibold); }
[data-theme="dark"] .onboarding-brand-logo-light { display: none; }
[data-theme="dark"] .onboarding-brand-logo-dark { display: block; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .onboarding-brand-logo-light { display: none; }
  :root:not([data-theme="light"]) .onboarding-brand-logo-dark { display: block; }
}
@media (max-width: 420px) { .onboarding-brand-tagline { display: none; } }
@media (max-width: 359px) {
  .onboarding-brand-logo { display: none !important; }
  .onboarding-brand-symbol-compact { display: block; width: 34px; height: 34px; }
}


/* KalorienKlar v0.8.5.2 – Mobile Onboarding Bottom Action */
@media (max-width: 800px) {
  #onboarding-form:not([hidden]) {
    padding-bottom: calc(82px + env(safe-area-inset-bottom));
  }

  #onboarding-actions:not([hidden]) {
    position: fixed;
    z-index: 32;
    left: max(12px, env(safe-area-inset-left));
    right: max(12px, env(safe-area-inset-right));
    bottom: max(10px, env(safe-area-inset-bottom));
    width: auto;
    max-width: 744px;
    margin: 0 auto;
    padding: 8px;
    border: 1px solid color-mix(in srgb, var(--kk-border-subtle) 82%, transparent);
    border-radius: 16px;
    background: color-mix(in srgb, var(--kk-bg-surface) 92%, transparent);
    box-shadow: 0 10px 30px rgba(18, 26, 22, .12);
    backdrop-filter: blur(14px) saturate(135%);
    -webkit-backdrop-filter: blur(14px) saturate(135%);
  }

  #onboarding-actions .button {
    min-height: 52px;
    box-shadow: none;
  }
}

@supports not (backdrop-filter: blur(1px)) {
  @media (max-width: 800px) {
    #onboarding-actions:not([hidden]) {
      background: var(--kk-bg-surface);
    }
  }
}


/* KalorienKlar v0.8.5.2 – Sticky CTA + Processbar Refinement */

/* Prozessanzeige: Orientierung statt zweiter visueller Hauptdarsteller. */
.flow-stages li,
.flow-stages li.active,
.flow-stages li.complete {
  font-weight: var(--kk-fw-medium);
  letter-spacing: .025em;
}

.flow-stages li.active {
  color: var(--kk-action-primary-active);
}

/* Mobile Bottom Action: näher am Rand, weniger Wrapper, mehr eigentlicher CTA. */
@media (max-width: 800px) {
  #onboarding-form:not([hidden]) {
    padding-bottom: calc(66px + env(safe-area-inset-bottom));
  }

  #onboarding-actions:not([hidden]) {
    left: max(8px, env(safe-area-inset-left));
    right: max(8px, env(safe-area-inset-right));
    bottom: max(2px, env(safe-area-inset-bottom));
    padding: 4px;
    border: 0;
    border-radius: 14px;
    background: color-mix(in srgb, var(--kk-bg-surface) 88%, transparent);
    box-shadow: 0 4px 16px rgba(18, 26, 22, .08);
    backdrop-filter: blur(10px) saturate(125%);
    -webkit-backdrop-filter: blur(10px) saturate(125%);
  }

  #onboarding-actions .button {
    min-height: 50px;
    border-radius: 11px;
  }
}

@supports not (backdrop-filter: blur(1px)) {
  @media (max-width: 800px) {
    #onboarding-actions:not([hidden]) {
      background: var(--kk-bg-surface);
      box-shadow: 0 3px 12px rgba(18, 26, 22, .07);
    }
  }
}

/* KalorienKlar v0.8.5.2 – Sticky Bottom Final Refinement */

/* Prozessleiste: Status über Farbe + Segment, nicht über starke Fettung. */
.flow-stages li,
.flow-stages li.active,
.flow-stages li.complete,
.flow-stages [aria-current="step"] {
  font-weight: 500 !important;
  letter-spacing: .015em;
}

.flow-stages li.active,
.flow-stages [aria-current="step"] {
  color: var(--kk-action-primary-active);
}

/* Mobile Bottom Action: fast nur noch der Button selbst. */
@media (max-width: 800px) {
  #onboarding-form:not([hidden]) {
    padding-bottom: calc(var(--onboarding-actions-height, 56px) + env(safe-area-inset-bottom) + 8px) !important;
  }

  #onboarding-actions:not([hidden]) {
    left: max(6px, env(safe-area-inset-left)) !important;
    right: max(6px, env(safe-area-inset-right)) !important;
    bottom: 0 !important;

    margin: 0 !important;
    padding: 0 0 max(2px, env(safe-area-inset-bottom)) !important;
    gap: 0 !important;
    min-height: 0 !important;
    height: auto !important;

    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  #onboarding-actions .button {
    width: 100%;
    min-height: 50px;
    margin: 0 !important;
    border-radius: 11px;
    box-shadow: 0 3px 12px rgba(18, 26, 22, .08);
  }
}

/* KalorienKlar v0.8.5.2 – Final Gate Product Fix r2 */

@media (max-width: 800px) {
  .onboarding-system-status {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    justify-content: center;
  }

  .choice-card.recommended {
    position: relative;
    padding-right: 86px;
  }

  .choice-card.recommended > b {
    display: inline-flex !important;
    position: absolute;
    top: 10px;
    right: 10px;
    align-items: center;
    min-height: 22px;
    margin: 0;
    padding: 3px 7px;
    border-radius: 999px;
    font-size: 9px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: .035em;
  }
}

@media (max-width: 380px) {
  .choice-card.recommended {
    padding-right: 78px;
  }

  .choice-card.recommended > b {
    right: 8px;
    padding-inline: 6px;
    font-size: 8px;
  }
}
