@font-face {
  font-family: "Inter";
  src: url("inter-greek.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: "Inter";
  src: url("inter-greek-ext.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  unicode-range: U+1F00-1FFF;
}
@font-face {
  font-family: "Inter";
  src: url("inter-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --olive: #00c4cc;
  --olive-dark: #1a535c;
  --olive-soft: #e2f8f6;
  --cyan: #4ecdc4;
  --cyan-soft: #e7faf8;
  --ink: #153e46;
  --muted: #5f7478;
  --line: #d6e8e6;
  --paper: #f7fff7;
  --cream: #eef9f6;
  --coral: #ff6b6b;
  --coral-soft: #fff0ef;
  --slate-soft: #e8f1f2;
  --genea-gradient: linear-gradient(125deg, #00c4cc 0%, #4ecdc4 48%, #ff6b6b 100%);
  --shadow: 0 28px 80px rgba(26, 83, 92, .15), 0 4px 18px rgba(0, 196, 204, .07);
}

body {
  color: var(--ink);
  background:
    radial-gradient(circle at 8% 16%, rgba(0, 196, 204, .14), transparent 25rem),
    radial-gradient(circle at 93% 11%, rgba(255, 107, 107, .10), transparent 24rem),
    radial-gradient(circle at 58% 74%, rgba(78, 205, 196, .08), transparent 30rem),
    var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button:focus-visible,
a:focus-visible,
input:focus-visible { outline-color: rgba(0, 196, 204, .55); }

.utility-bar,
.privacy-footer {
  background: linear-gradient(105deg, #123f47, #1a535c 58%, #174850);
}
.privacy-footer { margin: 28px auto 30px; }

.utility-bar { box-shadow: inset 0 -1px rgba(255,255,255,.07); }
.brand img { width: auto; height: 57px; filter: drop-shadow(0 8px 16px rgba(26,83,92,.10)); transition: transform .35s var(--ease), filter .35s var(--ease); }
.brand:hover img { transform: translateY(-1px); filter: drop-shadow(0 10px 20px rgba(0,196,204,.18)); }
.brand-fallback { color: var(--olive-dark); font-weight: 800; letter-spacing: .08em; }

.demo-pill { color: #4f6c71; }
.demo-pill i {
  background: #00c4cc;
  box-shadow: 0 0 0 5px rgba(0,196,204,.13), 0 0 18px rgba(0,196,204,.38);
  animation: genea-status 2.8s ease-in-out infinite;
}
.appointment-link {
  background: #1a535c;
  box-shadow: 0 10px 25px rgba(26,83,92,.16);
}
.appointment-link:hover { background: #123f47; box-shadow: 0 13px 30px rgba(0,196,204,.18); }

.eyebrow { color: #16727a; }
.eyebrow::before { background: var(--genea-gradient); }
.intro-band h1,
.journey-copy h2,
.question-card h3,
.results-hero h3,
.consultation-summary h4,
.result-section-head h4,
.result-card-focus strong,
.genetics-visual strong,
.review-list h4,
.next-step-card h4,
.delivery-head h4,
.visual-status strong,
.help-dialog h2,
.privacy-dialog h2,
.dialog-mark,
.trust-strip span {
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
}
.intro-band h1 { font-weight: 750; letter-spacing: -.052em; }
.intro-band h1 em {
  color: #00aeb6;
  background: var(--genea-gradient);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.app-shell {
  grid-template-columns: 248px minmax(470px, 1fr);
  border-color: rgba(26,83,92,.12);
  background: rgba(255,255,255,.96);
  box-shadow: var(--shadow);
}
.journey-panel {
  background:
    radial-gradient(circle at 50% 3%, rgba(0,196,204,.11), transparent 11rem),
    linear-gradient(180deg, #f1fbf8, #eaf6f5);
  border-right-color: #d4e8e5;
}
.orbit-track { stroke: #d8ece9; }
.orbit-value {
  stroke: #00c4cc;
  filter: drop-shadow(0 3px 6px rgba(0,196,204,.30));
}
.section-list::before { background: #cce5e2; }
.section-dot { color: #70878a; border-color: #c8dfdd; background: rgba(255,255,255,.75); }
.section-item.active .section-dot {
  background: var(--genea-gradient);
  border-color: transparent;
  box-shadow: 0 8px 20px rgba(0,196,204,.24);
}
.section-item.done .section-dot { color: #14747b; border-color: #4ecdc4; }
.privacy-note { border-top-color: #cee3e0; }
.privacy-icon { color: #1a535c; background: rgba(255,255,255,.85); box-shadow: 0 7px 18px rgba(26,83,92,.08); }

.conversation-panel { background: rgba(255,255,255,.97); }
.conversation-topbar { border-bottom-color: #e4efed; background: rgba(255,255,255,.88); backdrop-filter: blur(18px); }
.assistant-avatar {
  background: linear-gradient(145deg, #dff9f7, #fff0ef);
  box-shadow: inset 0 0 0 1px rgba(0,196,204,.15), 0 7px 18px rgba(26,83,92,.09);
}
.assistant-avatar img { width: 34px; height: 34px; object-fit: contain; }
.assistant-avatar svg { fill: none; stroke: #1a535c; stroke-width: 4.6; stroke-linecap: round; stroke-linejoin: round; }
.assistant-avatar svg path:last-of-type { stroke: #ff6b6b; }

.pdf-logo { width: auto; height: 48px; max-width: 180px; object-fit: contain; }

@media (max-width: 720px) {
  .brand img { width: auto; height: 48px; }
}

@media (max-width: 430px) {
  .brand img { width: auto; height: 43px; }
  .assistant-avatar img { width: 30px; height: 30px; }
}
.assistant-identity i { background: #00c4cc; box-shadow: 0 0 0 3px rgba(0,196,204,.12); }
.text-button { color: #176d75; }
.text-button:hover,
.icon-button:hover { color: #123f47; background: #e7f8f6; }
.mobile-progress-value { background: linear-gradient(90deg, #00c4cc, #ff6b6b); }

.message.bot .bubble { color: #244f56; background: #edf8f6; border: 1px solid #dcefeb; }
.message.user .bubble { background: linear-gradient(135deg, #1a535c, #123f47); box-shadow: 0 8px 20px rgba(26,83,92,.13); }
.message small { color: #829598; }
.typing { background: #edf8f6; }
.typing span { background: #00b8c0; }

.question-index { color: #15727a; }
.question-index::before { background: var(--genea-gradient); }
.answer-option { border-color: #d9eae8; background: rgba(255,255,255,.94); }
.answer-option:hover,
.answer-option:focus-visible { border-color: #00b9c1; box-shadow: 0 10px 26px rgba(26,83,92,.10); }
.answer-option.selected { border-color: #00bfc7; background: linear-gradient(120deg, #e6fbf9, #fff3f1); }
.answer-icon { color: #1a535c; background: #e9f7f5; }
.answer-option.selected .answer-icon,
.selected .checkmark { background: var(--genea-gradient); border-color: transparent; }
.checkmark { border-color: #c7dfdc; }
.field-wrap input,
.number-output { border-color: #d7e9e7; background: #f3fbf9; }
.field-wrap input:focus,
.email-row input:focus { border-color: #00c4cc; box-shadow: 0 0 0 4px rgba(0,196,204,.12); }
.field-wrap button { background: linear-gradient(145deg, #1a535c, #176a72); }
.field-wrap button:hover { background: #123f47; }
.text-alternative { border-color: #d6e9e6; }
.text-alternative:hover { border-color: #00c4cc; background: #e8faf8; }
.input-error { color: #c94f58; }
.range-rail { background: #dcebe9; }
.range-rail span { background: linear-gradient(90deg, #1a535c, #00c4cc, #4ecdc4); }
.number-input input[type="range"]::-webkit-slider-thumb { border-color: #1a535c; box-shadow: 0 2px 10px rgba(26,83,92,.25), 0 0 0 4px rgba(0,196,204,.10); }
.number-input input[type="range"]::-moz-range-thumb { border-color: #1a535c; box-shadow: 0 2px 10px rgba(26,83,92,.25), 0 0 0 4px rgba(0,196,204,.10); }
.range-limit { color: #1a535c; background: #dff7f4; }
.number-submit,
.multi-submit { background: #1a535c; }
.number-submit:hover,
.multi-submit:hover { background: #123f47; }
.number-alternative { border-color: #d7e8e6; }
.number-alternative:hover { border-color: #4ecdc4; background: #e9faf8; }

.number-input { grid-template-columns: minmax(0, 1fr) minmax(184px, 220px); gap: 14px; }
.number-input input[type="range"] { height: 52px; top: 4px; touch-action: pan-y; }
.number-input input[type="range"]::-webkit-slider-thumb { width: 30px; height: 30px; margin-top: -12px; border-width: 7px; }
.number-input input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; border-width: 7px; }
.number-stepper { display: grid; grid-template-columns: 46px minmax(76px, 1fr) 46px; min-height: 62px; overflow: hidden; border: 1px solid #d7e9e7; border-radius: 16px; background: #f3fbf9; }
.number-step { min-width: 44px; border: 0; color: #1a535c; background: #e3f5f2; font-size: 24px; font-weight: 600; cursor: pointer; }
.number-step:hover:not(:disabled) { color: #fff; background: #1a535c; }
.number-step:disabled { cursor: not-allowed; opacity: .35; }
.number-value { display: flex; min-width: 0; flex-direction: column; align-items: center; justify-content: center; padding: 5px; }
.number-value input { width: 100%; min-width: 0; padding: 0; color: #173f47; background: transparent; border: 0; outline: 0; font: 800 20px/1 Inter, sans-serif; text-align: center; -moz-appearance: textfield; }
.number-value input::-webkit-inner-spin-button,
.number-value input::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.number-value small { margin-top: 4px; color: #688085; font-size: 10px; white-space: nowrap; }

.family-members-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; max-height: 390px; padding: 2px; overflow: auto; }
.family-member-card { padding: 15px; border: 1px solid #d5e8e5; border-radius: 17px; background: linear-gradient(145deg, #fff, #f1faf8); }
.family-member-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.family-member-heading strong { font-size: 14px; }
.family-member-heading span { color: #71858a; font-size: 10px; }
.member-sex { margin: 0; padding: 0; border: 0; }
.member-sex legend { margin-bottom: 7px; color: #667b80; font-size: 10px; font-weight: 700; }
.member-sex > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.member-sex button { min-height: 46px; padding: 6px; color: #47666c; background: #fff; border: 1px solid #d4e5e3; border-radius: 11px; font-size: 10px; font-weight: 700; cursor: pointer; }
.member-sex button span { display: block; margin-bottom: 3px; color: #1a535c; font-size: 18px; line-height: 1; }
.member-sex button[aria-pressed="true"] { color: #123f47; background: #dcf6f2; border-color: #4ecdc4; box-shadow: inset 0 0 0 1px #4ecdc4; }
.member-age-row { display: grid; grid-template-columns: minmax(96px, 1fr) auto; gap: 8px; align-items: center; margin-top: 12px; }
.member-age-row > label { grid-column: 1 / -1; }
.member-age-row > label span,
.member-age-row > label small { display: block; }
.member-age-row > label span { color: #3b5c62; font-size: 11px; font-weight: 800; }
.member-age-row > label small { margin-top: 3px; color: #7c8e91; font-size: 9px; }
.member-age-slider { position: relative; min-width: 0; height: 44px; padding: 0 5px 13px; display: flex; align-items: center; }
.member-age-slider input { width: 100%; height: 31px; margin: 0; appearance: none; -webkit-appearance: none; background: transparent; cursor: pointer; touch-action: pan-y; }
.member-age-slider input::-webkit-slider-runnable-track { height: 5px; background: linear-gradient(90deg, #1a535c 0 var(--member-age-progress), #d4e5e3 var(--member-age-progress) 100%); border-radius: 999px; }
.member-age-slider input::-webkit-slider-thumb { width: 23px; height: 23px; margin-top: -9px; appearance: none; -webkit-appearance: none; background: #fff; border: 6px solid #1a535c; border-radius: 50%; box-shadow: 0 2px 8px rgba(26,83,92,.24); }
.member-age-slider input::-moz-range-track { height: 5px; background: #d4e5e3; border: 0; border-radius: 999px; }
.member-age-slider input::-moz-range-progress { height: 5px; background: #1a535c; border-radius: 999px; }
.member-age-slider input::-moz-range-thumb { width: 11px; height: 11px; background: #fff; border: 6px solid #1a535c; border-radius: 50%; box-shadow: 0 2px 8px rgba(26,83,92,.24); }
.member-age-slider input:focus-visible { outline: 2px solid #00b9c1; outline-offset: 3px; border-radius: 999px; }
.member-age-slider > div { position: absolute; right: 5px; bottom: 0; left: 5px; display: flex; justify-content: space-between; color: #7c8e91; font-size: 8px; font-weight: 750; line-height: 1; }
.member-age-slider.is-unset input { opacity: .68; }
.member-age-slider input:disabled { cursor: not-allowed; opacity: .38; }
.member-age-control { display: grid; grid-template-columns: 38px 48px 38px; height: 44px; overflow: hidden; border: 1px solid #d4e5e3; border-radius: 11px; background: #fff; }
.member-age-control button { border: 0; color: #1a535c; background: #e7f6f3; font-size: 19px; cursor: pointer; }
.member-age-control input { width: 100%; min-width: 0; padding: 0; border: 0; outline: 0; font-size: 16px; font-weight: 800; text-align: center; -moz-appearance: textfield; }
.member-age-control input::-webkit-inner-spin-button,
.member-age-control input::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.member-age-unknown { grid-column: 1 / -1; min-height: 40px; color: #566f74; background: #fff; border: 1px solid #d4e5e3; border-radius: 10px; font-size: 10px; font-weight: 750; cursor: pointer; }
.member-age-unknown[aria-pressed="true"] { color: #123f47; background: #dcf6f2; border-color: #4ecdc4; }
.family-members-submit { width: 100%; min-height: 48px; margin-top: 13px; color: #fff; background: #1a535c; border: 0; border-radius: 14px; font-size: 13px; font-weight: 800; cursor: pointer; }
.family-members-submit:disabled { cursor: not-allowed; opacity: .35; }

.welcome-card {
  border-color: #d3e9e6;
  background:
    radial-gradient(circle at 100% 0, rgba(255,107,107,.08), transparent 12rem),
    linear-gradient(145deg, #f8fffd, #eaf9f6);
}
.welcome-point { border-color: #d8eae7; background: rgba(255,255,255,.82); box-shadow: 0 7px 20px rgba(26,83,92,.04); }
.consent-row input,
.email-consent input { accent-color: #00b9c1; }
.start-button { background: var(--genea-gradient); box-shadow: 0 14px 30px rgba(0,196,204,.18); }
.start-button:not(:disabled):hover { background: linear-gradient(125deg, #00adb5, #42bdb5 48%, #ee5b62); }
.summary-mark { color: #1a535c; background: linear-gradient(145deg, #dff9f6, #fff0ef); }

.results-hero {
  background:
    radial-gradient(circle at 83% 12%, rgba(0,196,204,.34), transparent 12rem),
    radial-gradient(circle at 12% 110%, rgba(255,107,107,.21), transparent 15rem),
    linear-gradient(135deg, #123f47, #1a535c 58%, #174850);
}
.results-eyebrow,
.pdf-kicker { color: #91e7e2; }
.results-eyebrow::before { background: #ff6b6b; }
.result-orbit circle:last-child { stroke: #4ecdc4; filter: drop-shadow(0 4px 8px rgba(78,205,196,.35)); }
.consultation-assessment { border-color: #bfe2d2; background: #f0faf5; }
.consultation-assessment::before { background: #2f7d62; }
.consultation-assessment.recommended { border-color: #ead498; background: #fff9e7; }
.consultation-assessment.recommended::before { background: #d19a21; }
.consultation-assessment.high { border-color: #bad7dc; background: #eff7f8; }
.consultation-assessment.high::before { background: #1a535c; }
.consultation-kicker { display: flex; align-items: center; gap: 7px; color: #256b54; }
.consultation-kicker > i { width: 9px; height: 9px; flex: 0 0 9px; background: currentColor; border-radius: 50%; }
.consultation-assessment.recommended .consultation-kicker { color: #8a650c; }
.consultation-assessment.high .consultation-kicker { color: #1a535c; }
.consultation-reasons span { color: #256b54; background: #dcf2e8; }
.recommended .consultation-reasons span { color: #765604; background: #f7e9b9; }
.high .consultation-reasons span { color: #174b54; background: #dcecef; }
.consultation-scale > div.active i { border-color: #2f7d62; background: #2f7d62; }
.recommended .consultation-scale > div.active i { border-color: #d19a21; background: #d19a21; }
.high .consultation-scale > div.active i { border-color: #1a535c; background: #1a535c; }
.result-card { border-color: #d9eae8; background: linear-gradient(145deg, #fff, #f2fbf9); }
.result-card.family-card { --card-accent: #dff8f6; }
.result-card.genetics-card { --card-accent: #eee8f8; }
.result-card.screening-card { --card-accent: #e8f1f2; }
.result-card.lifestyle-card { --card-accent: #e5f9f6; }
.family-card .result-icon,
.screening-card .result-icon,
.lifestyle-card .result-icon { color: #176f77; background: #e0f8f5; }
.family-members-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 12px 0; }
.family-members-summary > span { display: grid; grid-template-columns: 24px 1fr; column-gap: 7px; align-items: center; padding: 7px; background: rgba(255,255,255,.78); border: 1px solid #dceae8; border-radius: 10px; }
.family-members-summary b,
.family-members-summary small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.family-members-summary b { font-size: 10px; }
.family-members-summary small { grid-column: 2; color: #6f8185; font-size: 9px; }
.family-member-symbol { grid-row: 1 / 3; display: block; width: 20px; height: 20px; border: 2px solid #1a535c; }
.family-member-symbol.female { border-radius: 50%; }
.family-member-symbol.unknown { transform: rotate(45deg) scale(.78); }
.genetics-card .result-icon { color: #735f99; background: #f0ebf8; }
.result-state.complete { color: #176a72; background: #e0f7f4; border-color: #c4ebe6; }
.result-state.complete i { background: #00bfc7; box-shadow: 0 0 0 3px rgba(0,196,204,.12); }
.result-state.unknown { color: #a9464d; background: #fff0ef; border-color: #ffd9d5; }
.result-state.unknown i { background: #ff6b6b; }
.family-node { color: #176f77; border-color: #8adbd5; }
.family-node.self { background: #1a535c; border-color: #1a535c; }
.family-fact { color: #245c64; background: #e6f8f6; }
.genetics-visual { background: #f8f5fc; }
.dna-ribbon { color: #806ca3; border-color: #ded5ed; }
.gene-tags span { color: #6e5a92; background: #eee8f7; }
.screening-visual > strong { color: #1a535c; background: #e4f4f3; }
.tree-person { color: #176f77; border-color: #9de0db; }
.tree-line { background: #9de0db; }
.review-list { border-color: #d8e9e7; }
.review-item:not(:last-child)::after { background: #d5e9e6; }
.review-item span { background: linear-gradient(145deg, #1a535c, #00aeb6); }
.next-step-card { position: relative; overflow: hidden; background: linear-gradient(145deg, #1a535c, #123f47); }
.next-step-card::after { content: ""; position: absolute; inset: auto -38px -52px auto; width: 130px; height: 130px; border-radius: 50%; background: rgba(255,107,107,.17); }
.next-step-card h4,
.next-step-card p,
.next-step-card a { position: relative; z-index: 1; }
.delivery-panel { border-color: #d4e9e6; background: linear-gradient(145deg, #f5fdfb, #e8f8f5); }
.delivery-icon { background: var(--genea-gradient); }
.email-delivery { border-color: rgba(0,196,204,.22); }
.send-email-button { background: #1a535c; }
.delivery-status.success { color: #17646b; background: #e2f7f4; }
.delivery-status.error { color: #a94048; background: #ffedeb; }
.delivery-status.info { color: #176b73; background: #e3f8f6; }

.visual-panel {
  background:
    radial-gradient(circle at 78% 10%, rgba(0,196,204,.24), transparent 15rem),
    radial-gradient(circle at 8% 90%, rgba(255,107,107,.16), transparent 16rem),
    linear-gradient(145deg, #123f47, #1a535c 58%, #16464e);
  background-size: 130% 130%;
  animation: genea-aurora 14s ease-in-out infinite alternate;
}
.visual-panel::before { background: rgba(0,196,204,.20); box-shadow: 0 0 80px rgba(0,196,204,.14); }
.visual-panel::after { background: rgba(255,107,107,.17); box-shadow: 0 0 90px rgba(255,107,107,.10); }
.visual-stage .olive { fill: #00c4cc; }
.visual-stage .cyan { fill: #4ecdc4; }
.visual-stage .cream { fill: #f7fff7; }
.visual-stage .coral { fill: #ff6b6b; }
.visual-stage .lavender { fill: #a994cc; }
.mobile-visual-stage .lavender { fill: #a994cc; }
.visual-stage .dark { fill: #1a535c; }
.fact-icon { color: #61ddd6; }
.trust-strip { background: #d4e7e5; }
.trust-strip > div { background: #eff9f7; }
.trust-strip span { color: #a8cbc8; }

.help-dialog,
.privacy-dialog { background: #fbfffd; box-shadow: 0 30px 100px rgba(18,63,71,.28); }
.help-dialog::backdrop,
.privacy-dialog::backdrop { background: rgba(10,42,48,.72); }
.dialog-close { color: #1a535c; background: #e7f6f4; }
.dialog-mark { background: var(--genea-gradient); }
.dialog-actions a,
.privacy-confirm { background: #1a535c; }
.dialog-actions a.secondary { background: #e8f5f3; }
.privacy-footer button { color: #8be2dc; border-color: rgba(139,226,220,.3); }
.privacy-flow { background: #eaf8f5; }
.privacy-flow > div,
.privacy-sections section { border-color: #d5e9e6; }
.privacy-flow b { background: var(--genea-gradient); }
.privacy-legal-note { color: #865157; background: #fff0ef; }

.pdf-report { color: #173f47; font-family: Inter, Arial, sans-serif; }
.pdf-page { background: #fff; }
.pdf-report-header { border-bottom-color: #d6e8e6; }
.pdf-report-header strong { color: #1a535c; }
.pdf-report-hero,
.pdf-next-steps { background: linear-gradient(135deg, #123f47, #1a535c); }
.pdf-report-hero h1,
.pdf-assessment h2,
.pdf-assessment > strong,
.pdf-section-heading h2,
.pdf-title-block h1 { font-family: Inter, Arial, sans-serif; }
.pdf-kicker,
.pdf-title-block > span { color: #4ecdc4; }
.pdf-hero-mark span { color: #1a535c; background: #4ecdc4; }
.pdf-hero-mark i { border-color: rgba(78,205,196,.48); }
.pdf-assessment { border-color: #d5e8e5; background: #f2faf8; }
.pdf-assessment.clear { border-color: #bfe2d2; background: #f0faf5; }
.pdf-assessment.review { border-color: #ead498; background: #fff9e7; }
.pdf-assessment.referral { border-color: #bad7dc; background: #eff7f8; }
.pdf-assessment.clear .pdf-assessment-status { color: #2f7d62; }
.pdf-assessment.review .pdf-assessment-status { color: #8a650c; }
.pdf-assessment.referral .pdf-assessment-status { color: #1a535c; }
.pdf-assessment-status i { display: block; width: 14px; height: 14px; margin-bottom: 7px; background: currentColor; border-radius: 50%; }
.pdf-completeness-ring.complete { border-color: #4ecdc4; }
.pdf-completeness-ring .pdf-ring-progress { stroke: #4ecdc4; }
.pdf-section-heading > div > span { background: linear-gradient(145deg, #1a535c, #00b7bf); }
.pdf-signal > i { background: #4ecdc4; }
.pdf-signal.priority > i { background: #ff6b6b; }
.pdf-signal > span { color: #176a72; background: #e1f7f4; }
.pdf-signal.priority > span { color: #a9434a; background: #ffebe9; }
.pdf-completeness > div span { background: linear-gradient(90deg, #00c4cc, #4ecdc4); }
.pdf-overview-context section,
.pdf-history-cards section { background: #f0faf8; }
.pdf-evidence-map article { border-color: #d7e9e6; background: #f8fdfc; }
.pdf-evidence-icon,
.pdf-evidence-map .family .pdf-evidence-icon { color: #176f77; background: #dff7f4; }
.pdf-evidence-map .genetics .pdf-evidence-icon { color: #735f99; background: #f0ebf8; }
.pdf-evidence-map article > div:nth-child(2) > strong.noted { color: #176a72; background: #e0f7f4; }
.pdf-evidence-map article > div:nth-child(2) > strong.unknown { color: #a9444b; background: #fff0ef; }
.pdf-report-disclaimer { background: #e8f8f6; border-left-color: #00c4cc; }
.pdf-pedigree-card { border-color: #d8eae7; background: linear-gradient(180deg, #fbfffd, #eff9f7); }
.pedigree-lines { stroke: #9dbfbc; }
.pedigree-aggregate > path { stroke: #688489; }
.pdf-pedigree-legend .affected { background: #4ecdc4; }
.pdf-note { color: #1a535c; background: #e5f7f4; }
.pdf-family-snapshot,
.pdf-personal-grid,
.pdf-family-table,
.pdf-review-table,
.pdf-compact-table { border-color: #d6e8e6; }
.pdf-family-snapshot > div,
.pdf-personal-grid section { border-right-color: #d6e8e6; }
.pdf-family-table th,
.pdf-review-table th { color: #4e696e; background: #eaf6f4; }
.pdf-family-table td,
.pdf-review-table td { border-top-color: #dcebe9; }
.pdf-family-table td strong,
.pdf-review-table td strong { color: #1a535c; }
.pdf-genetic-grid > section { border-color: #dfd5ef; background: #faf8fd; }
.pdf-genetic-icon { color: #735f99; background: #eee8f8; }
.pdf-genetic-icon.family { color: #176f77; background: #dff7f4; }
.pdf-compact-table > div { border-bottom-color: #dcebe9; }
.pdf-compact-table span { color: #5d7478; background: #f3faf8; }
.pdf-compact-table strong { color: #1a535c; border-left-color: #dcebe9; }
.pdf-empty-state { color: #5f7478; background: #f0f9f7; }
.pdf-limitations li { background: #fff5f3; }
.pdf-limitations li::before { background: #ff6b6b; }
.pdf-next-steps span { color: #1a535c; background: #4ecdc4; }
.pdf-data-table th { color: #1a535c; background: #eaf7f5; }
.pdf-data-note { border-color: #d7eae7; background: #f0faf8; }
.pdf-personal-grid section { border-color: #d7e9e6; background: #f3fbf9; }
.pdf-review-table td > span { color: #176a72; background: #e0f7f4; }
.pdf-review-table td > span.priority { color: #a9434a; background: #ffebe9; }
.pdf-family-member-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 9px; }
.pdf-family-member-groups > section { min-width: 0; padding: 9px 10px; border: 1px solid #dce8e6; border-radius: 11px; background: #f8fbfa; }
.pdf-family-member-groups > section > div:first-child { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.pdf-family-member-groups > section > div:first-child strong { font-size: 8px; }
.pdf-family-member-groups > section > div:first-child small { color: #fff; background: #1a535c; border-radius: 999px; padding: 2px 6px; font-size: 7px; }
.pdf-family-member-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.pdf-family-member-chips > span { display: grid; grid-template-columns: 12px auto; column-gap: 4px; align-items: center; padding: 4px 5px; background: #fff; border: 1px solid #dfe9e7; border-radius: 7px; }
.pdf-family-member-chips i { grid-row: 1 / 3; display: block; width: 10px; height: 10px; border: 1px solid #1a535c; }
.pdf-family-member-chips i.female { border-radius: 50%; }
.pdf-family-member-chips i.unknown { transform: rotate(45deg) scale(.78); }
.pdf-family-member-chips b { font-size: 6.5px; }
.pdf-family-member-chips small { color: #718084; font-size: 6px; }
.pdf-family-member-chips em { color: #78878a; font-size: 7px; font-style: normal; }

@media (max-width: 600px) {
  .number-input { grid-template-columns: 1fr; gap: 9px; }
  .number-stepper { width: min(100%, 230px); justify-self: center; }
  .range-control { height: 68px; }
  .number-input input[type="range"] { height: 56px; }
  .family-members-form { grid-template-columns: 1fr; max-height: none; overflow: visible; }
  .family-member-card { padding: 13px; }
  .member-sex button { min-height: 50px; font-size: 11px; }
  .member-age-row { grid-template-columns: minmax(0, 1fr) minmax(132px, 44%); gap: 10px; }
  .member-age-slider { height: 48px; padding-inline: 7px; }
  .member-age-slider input { min-height: 44px; }
  .member-age-control { width: 100%; height: 48px; grid-template-columns: 42px 1fr 42px; }
  .member-age-unknown { grid-column: 1 / -1; min-height: 44px; }
  .family-members-summary { grid-template-columns: 1fr; }
}
.pdf-review-table td > span.limited { color: #5f7478; background: #edf5f4; }
.pdf-document-list li { color: #49676c; border-color: #d8e9e7; }
.pdf-document-list li::before { border-color: #4ecdc4; }

/* Final answer review */
.answer-review-card {
  width: 100%;
  max-width: none;
  padding: 22px;
}
.answer-review-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 92px;
  gap: 22px;
  align-items: center;
}
.answer-review-head h3 { margin-bottom: 7px; }
.answer-review-head p { max-width: 700px; margin: 0; color: #5c7175; line-height: 1.55; }
.answer-review-count {
  display: grid;
  place-content: center;
  width: 92px;
  height: 92px;
  padding: 8px;
  text-align: center;
  color: #1a535c;
  background: linear-gradient(145deg, #e2f8f5, #f8fffd);
  border: 1px solid #cdeae6;
  border-radius: 50%;
  box-shadow: 0 9px 24px rgba(26,83,92,.09);
}
.answer-review-count strong { font-size: 25px; line-height: 1; }
.answer-review-count small { margin-top: 5px; font-size: 9px; line-height: 1.25; }
.answer-review-groups { display: grid; gap: 15px; margin-top: 20px; }
.answer-review-group {
  overflow: hidden;
  border: 1px solid #d6e8e6;
  border-radius: 16px;
  background: rgba(255,255,255,.9);
}
.answer-review-group > h4 {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  padding: 11px 14px;
  color: #1a535c;
  font-size: 13px;
  background: #edf8f6;
  border-bottom: 1px solid #dbeae8;
}
.answer-review-group > h4 span {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  color: #fff;
  background: linear-gradient(145deg, #1a535c, #00adb5);
  border-radius: 9px;
}
.answer-review-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.answer-review-table th,
.answer-review-table td { padding: 12px 14px; text-align: left; vertical-align: middle; }
.answer-review-table thead th {
  color: #6b7d80;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
  background: #f9fcfb;
}
.answer-review-table thead th:first-child { width: 48%; }
.answer-review-table thead th:last-child { width: 94px; text-align: right; }
.answer-review-table tbody tr + tr { border-top: 1px solid #e4efed; }
.answer-review-table tbody th { color: #36575c; font-size: 11px; line-height: 1.4; font-weight: 650; }
.answer-review-table tbody td { color: #183f46; font-size: 11px; line-height: 1.4; }
.answer-review-table tbody td:last-child { text-align: right; }
.answer-review-table tbody td > span { display: inline-block; overflow-wrap: anywhere; }
.answer-review-table button,
.review-back-button,
.review-edit-cancel {
  min-height: 44px;
  padding: 8px 13px;
  color: #1a535c;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  background: #e9f6f4;
  border: 1px solid #cee6e2;
  border-radius: 11px;
  cursor: pointer;
}
.answer-review-table button:hover,
.review-back-button:hover,
.review-edit-cancel:hover { background: #dcf1ee; border-color: #acd9d3; }
.answer-review-table tr.is-missing { background: #fffaf0; }
.answer-review-table tr.is-missing td > span { color: #8a650c; font-weight: 750; }
.answer-review-footer {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid #dceae8;
}
.answer-review-footer > div { min-width: 0; }
.answer-review-footer strong,
.answer-review-footer small { display: block; }
.answer-review-footer strong { color: #1a535c; font-size: 11px; }
.answer-review-footer small { margin-top: 3px; color: #6a7c80; font-size: 9px; }
.review-confirm-button {
  min-height: 46px;
  padding: 10px 17px;
  color: #fff;
  font: inherit;
  font-size: 10px;
  font-weight: 850;
  background: linear-gradient(125deg, #1a535c, #00aeb6);
  border: 0;
  border-radius: 12px;
  box-shadow: 0 9px 22px rgba(26,83,92,.16);
  cursor: pointer;
}
.review-confirm-button:disabled { opacity: .46; box-shadow: none; cursor: not-allowed; }
.review-edit-cancel { margin-top: 12px; }

@media (max-width: 700px) {
  .answer-review-card { padding: 14px; }
  .answer-review-head { grid-template-columns: minmax(0, 1fr) 76px; gap: 12px; }
  .answer-review-head p { font-size: 11px; }
  .answer-review-count { width: 76px; height: 76px; }
  .answer-review-count strong { font-size: 21px; }
  .answer-review-count small { font-size: 8px; }
  .answer-review-groups { gap: 12px; margin-top: 16px; }
  .answer-review-group { border-radius: 14px; }
  .answer-review-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .answer-review-table,
  .answer-review-table tbody { display: block; }
  .answer-review-table tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 5px 10px;
    padding: 12px;
  }
  .answer-review-table th,
  .answer-review-table td { padding: 0; }
  .answer-review-table tbody th { grid-column: 1 / -1; font-size: 11px; }
  .answer-review-table tbody td { min-width: 0; }
  .answer-review-table tbody td:last-child { grid-column: 2; grid-row: 2; }
  .answer-review-table button { min-width: 74px; min-height: 44px; }
  .answer-review-footer { grid-template-columns: auto minmax(0, 1fr); gap: 12px; }
  .review-back-button { min-height: 44px; }
  .review-confirm-button { grid-column: 1 / -1; width: 100%; min-height: 48px; }
}

@keyframes genea-status {
  0%, 100% { transform: scale(1); opacity: .9; }
  50% { transform: scale(1.18); opacity: 1; }
}
@keyframes genea-aurora {
  from { background-position: 0% 20%; }
  to { background-position: 100% 80%; }
}

@media (prefers-reduced-motion: reduce) {
  .demo-pill i,
  .visual-panel { animation: none; }
}
