:root{
  --ao-blue:#4F46E5;
  --ao-blue-dark:#4338CA;
  --ao-blue-darker:#3730A3;
  --ao-blue-light:#EEF0FF;
  --ao-navy:#0B1020;
  --ao-navy-2:#070912;
  --ao-slate:#364151;
  --ao-slate-soft:#64748B;
  --ao-border:#E2E6EF;
  --ao-bg:#F5F7FB;
  --ao-bg-alt:#FFFFFF;
  --ao-gold:#0D9488;
  --ao-success:#059669;
  --ao-success-bg:#D1FAE5;
  --ao-warn:#D97706;
  --ao-warn-bg:#FEF3C7;
  --ao-danger:#DC2626;
  --ao-danger-bg:#FEE2E2;
  --ao-purple:#7C3AED;
  --ao-purple-bg:#EDE9FE;
  --shadow-sm:0 1px 2px rgba(15,23,42,.06);
  --shadow-md:0 4px 12px rgba(15,23,42,.08);
  --shadow-lg:0 12px 32px rgba(15,23,42,.12);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--ao-bg);color:var(--ao-navy);line-height:1.55;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(79,70,229,.12),transparent 60%),
             radial-gradient(ellipse 60% 40% at 90% 100%,rgba(13,148,136,.06),transparent 60%);
}
.container{max-width:1080px;margin:0 auto;padding:0 24px;position:relative;z-index:1}

/* HEADER */
header.site-header{
  background:linear-gradient(180deg,var(--ao-navy-2) 0%,var(--ao-navy) 100%);
  color:#fff;padding:36px 24px 28px;position:relative;overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.06);
}
header.site-header::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 15% 30%,rgba(79,70,229,.18),transparent 35%),
    radial-gradient(circle at 85% 60%,rgba(13,148,136,.08),transparent 40%);
  pointer-events:none;
}
.header-inner{max-width:1080px;margin:0 auto;display:flex;align-items:center;gap:18px;position:relative;z-index:1}
.brand-mark{
  width:54px;height:54px;flex-shrink:0;
  background:linear-gradient(135deg,#fff 0%,#E7F6FF 100%);
  border-radius:12px;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(79,70,229,.32),inset 0 1px 0 rgba(255,255,255,.6);
  position:relative;
}
.brand-mark svg{width:32px;height:32px}
.brand-text .greek{font-family:'Cormorant Garamond',Georgia,serif;font-size:.82rem;letter-spacing:.6em;color:var(--ao-gold);text-transform:uppercase;font-weight:600;margin-bottom:2px}
.brand-text h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.85rem;font-weight:600;letter-spacing:-.01em;line-height:1.1}
.brand-text h1 .ampersand{color:var(--ao-gold);font-style:italic;font-weight:500}
.brand-text .tagline{font-size:.82rem;color:rgba(231,246,255,.7);margin-top:4px;letter-spacing:.02em}

/* PROGRESS */
.progress-bar{display:flex;justify-content:center;gap:6px;margin-top:22px;position:relative;z-index:1}
.progress-bar .step-dot{display:flex;align-items:center;gap:6px;font-size:.72rem;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em;font-weight:500}
.progress-bar .step-dot .dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.25);transition:.3s}
.progress-bar .step-dot.active{color:#fff}
.progress-bar .step-dot.active .dot{background:var(--ao-blue);box-shadow:0 0 0 4px rgba(79,70,229,.25)}
.progress-bar .step-dot.done .dot{background:var(--ao-gold)}
.progress-bar .sep{width:24px;height:1px;background:rgba(255,255,255,.15);align-self:center}

/* STEPS */
.step{display:none;background:#fff;border-radius:18px;padding:32px;box-shadow:var(--shadow-md);border:1px solid var(--ao-border);margin:28px 0}
.step.active{display:block;animation:fadeUp .4s cubic-bezier(.2,.8,.2,1)}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.step-eyebrow{font-size:.72rem;font-weight:600;color:var(--ao-blue);text-transform:uppercase;letter-spacing:.14em;margin-bottom:8px}
.step h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.85rem;font-weight:600;color:var(--ao-navy);margin-bottom:6px;letter-spacing:-.01em}
.step .step-desc{color:var(--ao-slate);font-size:.95rem;margin-bottom:24px}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;border:none;border-radius:8px;font-size:.92rem;font-weight:600;cursor:pointer;transition:.18s ease;font-family:inherit;letter-spacing:.005em}
.btn-primary{background:var(--ao-blue);color:#fff;box-shadow:0 4px 12px rgba(79,70,229,.25)}
.btn-primary:hover{background:var(--ao-blue-dark);transform:translateY(-1px);box-shadow:0 6px 16px rgba(79,70,229,.32)}
.btn-secondary{background:#fff;color:var(--ao-slate);border:1px solid var(--ao-border)}
.btn-secondary:hover{background:var(--ao-bg);border-color:var(--ao-slate-soft)}
.btn-row{display:flex;justify-content:space-between;align-items:center;margin-top:28px;gap:12px}

/* CATEGORY GRID */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.cat-card{
  border:1.5px solid var(--ao-border);border-radius:12px;padding:14px 12px;cursor:pointer;
  transition:.18s ease;text-align:center;background:#fff;position:relative;
}
.cat-card:hover{border-color:var(--ao-blue);background:var(--ao-blue-light);transform:translateY(-1px)}
.cat-card.selected{border-color:var(--ao-blue);background:linear-gradient(180deg,var(--ao-blue-light) 0%,#fff 100%);box-shadow:0 0 0 1px var(--ao-blue),var(--shadow-sm)}
.cat-card.selected::after{content:"✓";position:absolute;top:6px;right:8px;width:18px;height:18px;background:var(--ao-blue);color:#fff;border-radius:50%;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.cat-card .icon{font-size:1.7rem;line-height:1;margin-bottom:6px;display:block}
.cat-card .cat-name{font-size:.82rem;font-weight:600;color:var(--ao-navy);line-height:1.25}
.cat-card .cat-count{font-size:.7rem;color:var(--ao-slate-soft);margin-top:3px}
.cat-card.is-new::before{content:"NEW";position:absolute;top:-7px;left:8px;font-size:.58rem;font-weight:700;letter-spacing:.08em;color:var(--ao-gold);background:var(--ao-navy);padding:2px 6px;border-radius:3px}

/* BIOMARKER INPUTS */
.bio-section{margin-bottom:18px}
.bio-section-header{
  display:flex;align-items:center;gap:10px;padding:11px 14px;
  background:linear-gradient(90deg,var(--ao-navy) 0%,#1a2235 100%);
  color:#fff;border-radius:8px;font-weight:600;font-size:.88rem;letter-spacing:.01em;
}
.bio-section-header .toggle-icon{margin-left:auto;font-size:.75rem;opacity:.8;transition:transform .2s}
.bio-section.collapsed .toggle-icon{transform:rotate(-90deg)}
.bio-section.collapsed .bio-grid{display:none}
.bio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;padding:10px 0 4px}
.bio-input{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--ao-border);border-radius:8px;background:#fff;transition:.18s}
.bio-input:hover{border-color:var(--ao-blue);background:var(--ao-blue-light)}
.bio-input label{flex:1;font-size:.82rem;font-weight:500;color:var(--ao-navy)}
.bio-input input{width:64px;padding:6px 8px;border:1px solid var(--ao-border);border-radius:6px;font-size:.88rem;text-align:center;font-family:inherit;font-weight:600;color:var(--ao-navy)}
.bio-input input:focus{outline:none;border-color:var(--ao-blue);box-shadow:0 0 0 3px rgba(79,70,229,.15)}
.ideal-tag{font-size:.62rem;padding:2px 6px;border-radius:4px;font-weight:700;white-space:nowrap;letter-spacing:.04em;text-transform:uppercase}
.ideal-high{background:var(--ao-success-bg);color:var(--ao-success)}
.ideal-mid{background:var(--ao-warn-bg);color:var(--ao-warn)}
.ideal-low{background:var(--ao-danger-bg);color:var(--ao-danger)}

/* TABS */
.input-mode-tabs{display:flex;gap:6px;margin-bottom:18px;background:var(--ao-bg);padding:4px;border-radius:10px;width:fit-content}
.input-mode-tabs .tab{padding:8px 18px;border-radius:7px;cursor:pointer;font-size:.82rem;font-weight:600;color:var(--ao-slate);transition:.15s}
.input-mode-tabs .tab.active{background:#fff;color:var(--ao-navy);box-shadow:var(--shadow-sm)}

.pdf-upload{border:2px dashed var(--ao-border);border-radius:12px;padding:36px;text-align:center;cursor:pointer;transition:.18s;background:#fff}
.pdf-upload:hover{border-color:var(--ao-blue);background:var(--ao-blue-light)}
.pdf-upload.dragover{border-color:var(--ao-blue);background:var(--ao-blue-light)}
.pdf-upload .pdf-icon{font-size:2.4rem;margin-bottom:8px}
#pdfStatus{margin-top:12px;font-size:.85rem;color:var(--ao-slate)}
.clear-btn{font-size:.75rem;padding:6px 12px;background:var(--ao-danger-bg);color:var(--ao-danger);border:none;border-radius:6px;cursor:pointer;float:right;font-weight:600;transition:.15s}
.clear-btn:hover{background:#fecaca}

/* CONTRAINDICATIONS */
.contra-q{padding:14px 16px;border:1px solid var(--ao-border);border-radius:10px;margin-bottom:8px;display:flex;align-items:center;gap:14px;background:#fff;transition:.15s}
.contra-q:hover{border-color:var(--ao-slate-soft)}
.contra-q.active{border-color:var(--ao-warn);background:linear-gradient(90deg,#FFFBEB,#fff)}
.contra-q label{flex:1;font-size:.9rem;color:var(--ao-navy);cursor:pointer}
.toggle{position:relative;width:46px;height:26px;background:#CBD5E1;border-radius:13px;cursor:pointer;transition:.25s;flex-shrink:0}
.toggle.on{background:var(--ao-warn)}
.toggle::after{content:"";position:absolute;width:20px;height:20px;background:#fff;border-radius:50%;top:3px;left:3px;transition:.25s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle.on::after{left:23px}

/* RESULTS */
.stat-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:20px 0 28px}
.stat-box{background:#fff;border:1px solid var(--ao-border);padding:14px 16px;border-radius:12px;text-align:center}
.stat-box .num{font-family:'Cormorant Garamond',Georgia,serif;font-size:2rem;font-weight:600;color:var(--ao-blue);line-height:1}
.stat-box .lbl{font-size:.7rem;color:var(--ao-slate-soft);margin-top:4px;text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.stat-box.bio .num{color:var(--ao-blue)}
.stat-box.cat .num{color:var(--ao-success)}
.stat-box.removed .num{color:var(--ao-danger)}

.section-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.4rem;font-weight:600;margin:28px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--ao-border);color:var(--ao-navy);display:flex;align-items:center;gap:10px}
.section-title .badge{font-family:'Inter',sans-serif;font-size:.62rem;padding:3px 8px;border-radius:4px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.section-title.bio-driven .badge{background:var(--ao-blue-light);color:var(--ao-blue-dark)}
.section-title.cat-driven .badge{background:var(--ao-success-bg);color:var(--ao-success)}
.section-title.removed .badge{background:var(--ao-danger-bg);color:var(--ao-danger)}

.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.pep-card{
  border:1px solid var(--ao-border);border-radius:14px;padding:18px;background:#fff;
  transition:.2s ease;position:relative;overflow:hidden;
}
.pep-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--ao-blue),var(--ao-blue-dark))}
.pep-card.cat-only::before{background:linear-gradient(90deg,var(--ao-success),#34D399)}
.pep-card.removed-card{opacity:.55;background:#FAFBFC}
.pep-card.removed-card::before{background:var(--ao-danger)}
.pep-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);border-color:var(--ao-blue)}
.pep-card h4{font-size:1rem;color:var(--ao-navy);margin-bottom:4px;font-weight:600;line-height:1.25}
.pep-card .mech{font-size:.72rem;color:var(--ao-slate-soft);margin-bottom:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.pep-card .marketed{font-size:.82rem;color:var(--ao-slate);line-height:1.5;margin-bottom:10px}
.pep-card .score-row{display:flex;align-items:center;gap:10px;margin:8px 0}
.score-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;background:var(--ao-navy);color:#fff;border-radius:20px;font-size:.7rem;font-weight:700;letter-spacing:.02em}
.score-pill .score-num{color:var(--ao-gold)}
.bar-container{flex:1;height:5px;background:var(--ao-bg);border-radius:3px;overflow:hidden}
.bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--ao-blue),var(--ao-blue-dark));transition:width .6s ease}
.pep-card.cat-only .bar-fill{background:linear-gradient(90deg,var(--ao-success),#10B981)}

.tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.tag{font-size:.68rem;padding:3px 8px;border-radius:5px;font-weight:600;letter-spacing:.01em}
.tag.bio-tag{background:var(--ao-blue-light);color:var(--ao-blue-darker)}
.tag.bio-tag.up{background:#DBEAFE;color:#1E40AF}
.tag.bio-tag.down{background:#FCE7F3;color:#9D174D}
.tag.cat-tag{background:var(--ao-success-bg);color:var(--ao-success)}
.tag.exclude-tag{background:var(--ao-danger-bg);color:var(--ao-danger)}

/* CITATIONS */
.citations{margin-top:14px;padding-top:12px;border-top:1px dashed var(--ao-border)}
.citations-title{font-size:.7rem;font-weight:700;color:var(--ao-slate-soft);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.citation-item{font-size:.78rem;color:var(--ao-slate);margin-bottom:6px;padding-left:14px;position:relative;line-height:1.45}
.citation-item::before{content:"";position:absolute;left:0;top:7px;width:6px;height:6px;background:var(--ao-blue);border-radius:50%}
.citation-item .ref{font-style:italic;color:var(--ao-slate-soft);font-size:.72rem;margin-top:2px;display:block}
.citation-item a{color:var(--ao-blue);text-decoration:none;border-bottom:1px dotted var(--ao-blue)}
.citation-item a:hover{border-bottom-style:solid}
.citations-toggle{font-size:.74rem;color:var(--ao-blue);background:none;border:none;cursor:pointer;font-weight:600;padding:0;margin-top:8px;font-family:inherit}
.citations-toggle:hover{text-decoration:underline}

/* FOOTER */
.disclaimer{
  margin-top:32px;padding:20px 24px;background:var(--ao-navy);color:rgba(231,246,255,.75);
  border-radius:14px;font-size:.78rem;line-height:1.6;
}
.disclaimer strong{color:var(--ao-gold);font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:.72rem;display:block;margin-bottom:6px}
.footer-brand{text-align:center;padding:24px 0;color:var(--ao-slate-soft);font-size:.78rem}
.footer-brand .greek-mark{font-family:'Cormorant Garamond',serif;color:var(--ao-gold);font-size:1.1rem;letter-spacing:.3em;display:block;margin-bottom:4px}

/* ALLERGIES STEP */
.allergy-input-row{display:flex;gap:8px;margin-bottom:14px}
.allergy-input-row input{flex:1;padding:11px 14px;border:1px solid var(--ao-border);border-radius:9px;font-size:.92rem;font-family:inherit;color:var(--ao-navy);background:#fff}
.allergy-input-row input:focus{outline:none;border-color:var(--ao-blue);box-shadow:0 0 0 3px rgba(79,70,229,.15)}
.btn-sm{padding:11px 18px;font-size:.85rem}
.allergy-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:28px;margin-bottom:18px}
.allergy-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:var(--ao-danger-bg);color:var(--ao-danger);border-radius:18px;font-size:.78rem;font-weight:600;border:1px solid #FCA5A5}
.allergy-chip .x{cursor:pointer;font-weight:700;line-height:1;font-size:.95rem;padding:0 2px}
.allergy-chip .x:hover{color:#991B1B}
.allergy-quick-pick{padding:14px 16px;background:var(--ao-bg);border-radius:10px;margin-top:6px}
.quick-pick-label{font-size:.78rem;color:var(--ao-slate-soft);margin-bottom:8px;font-weight:600}
.suggestion-chips{display:flex;flex-wrap:wrap;gap:6px}
.suggestion-chip{padding:5px 10px;background:#fff;color:var(--ao-slate);border:1px solid var(--ao-border);border-radius:18px;font-size:.74rem;font-weight:500;cursor:pointer;transition:.15s}
.suggestion-chip:hover{border-color:var(--ao-danger);color:var(--ao-danger);background:var(--ao-danger-bg)}
.no-suggestions{color:var(--ao-slate-soft);font-size:.78rem;font-style:italic}

/* LAB SOURCE PICKER */
.lab-source-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:22px}
.source-card{border:1.5px solid var(--ao-border);border-radius:12px;padding:20px 16px;cursor:pointer;text-align:center;background:#fff;transition:.18s;position:relative}
.source-card:hover{border-color:var(--ao-blue);background:var(--ao-blue-light);transform:translateY(-1px)}
.source-card.selected{border-color:var(--ao-blue);background:linear-gradient(180deg,var(--ao-blue-light) 0%,#fff 100%);box-shadow:0 0 0 1px var(--ao-blue),var(--shadow-md)}
.source-card.selected::after{content:"✓";position:absolute;top:10px;right:12px;width:20px;height:20px;background:var(--ao-blue);color:#fff;border-radius:50%;font-size:.74rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.source-card .source-icon{font-size:2rem;display:block;margin-bottom:8px;line-height:1}
.source-card .source-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.2rem;font-weight:600;color:var(--ao-navy);margin-bottom:3px}
.source-card .source-desc{font-size:.74rem;color:var(--ao-slate-soft);line-height:1.4}

/* QUEST-SPECIFIC FUNCTIONAL RANGE TAGS */
.bio-input.functional .ideal-tag{font-size:.6rem;font-weight:700;padding:2px 5px;letter-spacing:.04em}
.bio-input .unit-hint{font-size:.7rem;color:var(--ao-slate-soft);min-width:50px;text-align:right}
.bio-input .range-hint{font-size:.65rem;color:var(--ao-slate-soft);font-style:italic}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.btn-primary:disabled:hover{background:var(--ao-blue);transform:none;box-shadow:0 4px 12px rgba(79,70,229,.25)}


.route-card{border:1.5px solid var(--ao-border);border-radius:12px;padding:18px 14px;cursor:pointer;text-align:center;background:#fff;transition:.15s;position:relative}
.route-card:hover{border-color:var(--ao-blue);background:var(--ao-blue-light)}
.route-card.selected{border-color:var(--ao-blue);background:linear-gradient(180deg,var(--ao-blue-light) 0%,#fff 100%);box-shadow:0 0 0 1px var(--ao-blue),var(--shadow-sm)}
.route-card.selected::after{content:"✓";position:absolute;top:8px;right:10px;width:18px;height:18px;background:var(--ao-blue);color:#fff;border-radius:50%;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.route-card .icon{font-size:1.7rem;display:block;margin-bottom:6px}
.route-card .route-name{font-size:.88rem;font-weight:600;color:var(--ao-navy)}
.route-card .route-desc{font-size:.7rem;color:var(--ao-slate-soft);margin-top:3px}

/* ALTERNATIVES (group expand) */
.alternatives-section{margin-top:12px;padding-top:10px;border-top:1px dashed var(--ao-border)}
.alternatives-toggle{font-size:.74rem;color:var(--ao-blue);background:none;border:none;cursor:pointer;font-weight:600;padding:0;font-family:inherit;display:flex;align-items:center;gap:4px}
.alternatives-toggle:hover{text-decoration:underline}
.alternatives-list{margin-top:8px;display:none}
.alternatives-list.open{display:block;animation:fadeIn .25s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.alt-item{padding:8px 12px;background:var(--ao-bg);border-radius:8px;margin-bottom:6px;font-size:.82rem}
.alt-item .alt-name{font-weight:600;color:var(--ao-navy)}
.alt-item .alt-tier{display:inline-block;font-size:.62rem;padding:2px 6px;background:#fff;border:1px solid var(--ao-border);border-radius:4px;margin-left:6px;color:var(--ao-slate-soft);font-weight:600;letter-spacing:.04em}
.alt-item .alt-reason{font-size:.74rem;color:var(--ao-slate-soft);margin-top:2px}
.alt-item .alt-mech{font-size:.7rem;color:var(--ao-slate-soft);margin-top:1px}
.alt-item.selected{background:var(--ao-blue-light);border:1px solid var(--ao-blue)}
.alt-swap-btn{font-size:.7rem;padding:3px 8px;background:#fff;border:1px solid var(--ao-blue);color:var(--ao-blue);border-radius:5px;cursor:pointer;font-weight:600;margin-top:4px;font-family:inherit}
.alt-swap-btn:hover{background:var(--ao-blue);color:#fff}
.group-rationale{font-size:.74rem;color:var(--ao-slate-soft);margin-bottom:8px;padding:6px 10px;background:#fff;border-left:3px solid var(--ao-blue);border-radius:4px}
.group-badge{display:inline-block;font-size:.62rem;padding:2px 7px;background:var(--ao-purple-bg);color:var(--ao-purple);border-radius:4px;font-weight:700;letter-spacing:.04em;margin-left:6px;text-transform:uppercase}

/* GENETICS STEP */
.genetics-privacy-note{margin-top:14px;padding:12px 14px;background:linear-gradient(180deg,#F0FDF4 0%,#ECFDF5 100%);border:1px solid #86EFAC;border-radius:10px;font-size:.78rem;color:#065F46;line-height:1.55}
.genetics-privacy-note strong{color:#047857}
.idat-note{margin-top:14px;padding:12px 14px;background:var(--ao-bg);border:1px dashed var(--ao-border);border-radius:10px;font-size:.78rem;color:var(--ao-slate);line-height:1.55}
.idat-note strong{color:var(--ao-navy)}
#genFileStatus{margin-top:12px}
.gen-status-success{padding:14px;background:linear-gradient(180deg,#F0FDF4 0%,#ECFDF5 100%);border:1px solid #86EFAC;border-radius:10px;color:#065F46;font-size:.85rem}
.gen-status-error{padding:14px;background:var(--ao-danger-bg);border:1px solid #FCA5A5;border-radius:10px;color:#991B1B;font-size:.85rem}
.gen-status-progress{padding:14px;background:var(--ao-blue-light);border:1px solid #93C5FD;border-radius:10px;color:#1E3A8A;font-size:.85rem;display:flex;align-items:center;gap:10px}
.gen-spinner{width:16px;height:16px;border:2px solid rgba(30,58,138,.25);border-top-color:#1E3A8A;border-radius:50%;animation:genSpin .7s linear infinite;display:inline-block}
@keyframes genSpin{to{transform:rotate(360deg)}}

/* Manual SNP grid */
#genManualGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-bottom:8px}
.gen-manual-row{display:grid;grid-template-columns:90px 1fr;gap:6px;padding:8px 10px;background:var(--ao-bg);border:1px solid var(--ao-border);border-radius:8px;align-items:center}
.gen-manual-row:hover{border-color:var(--ao-slate-soft)}
.gen-manual-row .rsid{font-family:'SF Mono',Menlo,monospace;font-size:.75rem;font-weight:600;color:var(--ao-navy)}
.gen-manual-row .gene-tag{font-size:.62rem;color:var(--ao-slate-soft);font-weight:500;display:block;margin-top:1px}
.gen-manual-row input{padding:5px 7px;border:1px solid var(--ao-border);border-radius:5px;font-size:.78rem;font-family:inherit;text-transform:uppercase;letter-spacing:.05em;width:100%;background:#fff}
.gen-manual-row input:focus{outline:none;border-color:var(--ao-blue);box-shadow:0 0 0 2px rgba(79,70,229,.18)}
.gen-manual-row input.valid{border-color:#10B981;background:#F0FDF4}
.gen-manual-row input.invalid{border-color:#EF4444;background:#FEF2F2}

/* Genetics summary card after parsing */
.gen-summary-card{margin-top:18px;padding:18px;background:linear-gradient(180deg,#F0FDF4 0%,#FFFFFF 100%);border:1px solid #86EFAC;border-radius:12px}
.gen-summary-card h4{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.25rem;color:var(--ao-navy);margin-bottom:8px}
.gen-summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:12px}
.gen-summary-stats .gen-stat{background:#fff;padding:10px 12px;border-radius:8px;border:1px solid var(--ao-border)}
.gen-summary-stats .gen-stat .num{font-size:1.4rem;font-weight:700;color:var(--ao-blue);font-family:'Cormorant Garamond',Georgia,serif}
.gen-summary-stats .gen-stat .lbl{font-size:.7rem;color:var(--ao-slate-soft);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}
.gen-detected-list{margin-top:14px;display:flex;flex-wrap:wrap;gap:5px}
.gen-detected-chip{font-size:.7rem;padding:3px 8px;background:#fff;border:1px solid var(--ao-border);border-radius:12px;font-family:'SF Mono',Menlo,monospace;color:var(--ao-slate)}
.gen-clear-btn{font-size:.72rem;padding:4px 10px;background:#fff;border:1px solid var(--ao-border);color:var(--ao-slate-soft);border-radius:5px;cursor:pointer;font-family:inherit;margin-top:10px}
.gen-clear-btn:hover{border-color:var(--ao-danger);color:var(--ao-danger)}

/* Genetic Compatibility section in results */
.section-title.genetic-comp{border-left-color:#7C3AED;background:linear-gradient(90deg,var(--ao-purple-bg) 0%,#fff 100%)}
.section-title.genetic-comp .badge{background:var(--ao-purple);color:#fff}
.gen-pep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-bottom:24px}
.gen-pep-card{background:#fff;border:1px solid var(--ao-border);border-radius:12px;padding:16px;border-left:4px solid #7C3AED;box-shadow:var(--shadow-sm);transition:.18s}
.gen-pep-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}
.gen-pep-card.favorable{border-left-color:#059669}
.gen-pep-card.mixed{border-left-color:#D97706}
.gen-pep-card.reduced{border-left-color:#DC2626}
.gen-pep-card h4{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.15rem;color:var(--ao-navy);margin-bottom:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gen-compat-badge{font-size:.62rem;padding:3px 8px;border-radius:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.gen-compat-badge.favorable{background:var(--ao-success-bg);color:var(--ao-success)}
.gen-compat-badge.mixed{background:var(--ao-warn-bg);color:var(--ao-warn)}
.gen-compat-badge.reduced{background:var(--ao-danger-bg);color:var(--ao-danger)}
.gen-compat-badge.neutral{background:var(--ao-bg);color:var(--ao-slate)}
.gen-pep-card .gen-summary{font-size:.82rem;color:var(--ao-slate);margin:6px 0 10px;line-height:1.5}
.gen-snp-table{width:100%;font-size:.74rem;border-collapse:collapse;margin-top:8px}
.gen-snp-table th{text-align:left;padding:5px 6px;background:var(--ao-bg);color:var(--ao-slate-soft);font-weight:600;font-size:.65rem;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--ao-border)}
.gen-snp-table td{padding:6px;border-bottom:1px solid var(--ao-border);vertical-align:top}
.gen-snp-table tr:last-child td{border-bottom:none}
.gen-snp-table .gene-cell{font-family:'SF Mono',Menlo,monospace;font-weight:600;color:var(--ao-navy)}
.gen-snp-table .geno-cell{font-family:'SF Mono',Menlo,monospace;font-weight:600}
.gen-snp-table .impact-cell{color:var(--ao-slate);font-size:.72rem;line-height:1.4}
.gen-direction{display:inline-block;font-size:.6rem;padding:1px 5px;border-radius:3px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}
.gen-direction.favorable{background:var(--ao-success-bg);color:var(--ao-success)}
.gen-direction.mixed{background:var(--ao-warn-bg);color:var(--ao-warn)}
.gen-direction.reduced{background:var(--ao-danger-bg);color:var(--ao-danger)}
.gen-direction.neutral{background:var(--ao-bg);color:var(--ao-slate)}
.gen-disclaimer{margin-top:12px;padding:10px 12px;background:var(--ao-bg);border-radius:8px;font-size:.72rem;color:var(--ao-slate-soft);line-height:1.5}
.gen-disclaimer strong{color:var(--ao-slate)}
.stat-box.genetic{background:linear-gradient(180deg,var(--ao-purple-bg) 0%,#fff 100%);border-color:#C4B5FD}
.stat-box.genetic .num{color:#7C3AED}

@media(max-width:640px){
  #genManualGrid{grid-template-columns:1fr}
  .gen-pep-grid{grid-template-columns:1fr}
}


@media(max-width:640px){
  .container{padding:0 14px}
  header.site-header{padding:24px 16px 20px}
  .brand-text h1{font-size:1.4rem}
  .step{padding:22px 18px;border-radius:14px}
  .step h2{font-size:1.5rem}
  .cat-grid{grid-template-columns:repeat(2,1fr)}
  .bio-grid{grid-template-columns:1fr}
  .results-grid{grid-template-columns:1fr}
  .stat-bar{grid-template-columns:repeat(2,1fr)}
  .progress-bar .step-dot span{display:none}
  .progress-bar .sep{width:8px}
  .btn-row{flex-direction:column-reverse}
  .btn-row .btn{width:100%;justify-content:center}
  .route-grid{grid-template-columns:repeat(2,1fr)}
  .lab-source-picker{grid-template-columns:1fr}
}
@media print{
  body{background:#fff}
  body::before{display:none}
  header.site-header,.btn,.btn-row,.step:not(#step6){display:none}
  .step{box-shadow:none;border:none;page-break-inside:avoid}
  .pep-card{page-break-inside:avoid;border:1px solid #ccc}
}

/* ===================== MOBILE header/results (PeptideDx) ===================== */
@media(max-width:640px){
  #advUser{display:none}                    /* hide signed-in name on phones to save room */
  .header-inner{gap:12px;flex-wrap:wrap}
  .header-inner .brand-text h1{font-size:1.3rem}
  .header-inner .tagline{font-size:.74rem}
  /* results action buttons stack cleanly */
  #step7 .btn-row{flex-direction:column;gap:10px;align-items:stretch}
  #step7 .btn-row>div{display:flex;flex-direction:column;gap:10px}
  #step7 .btn-row .btn{width:100%;justify-content:center}
}

/* ===================== Current-use survey step ===================== */
.cu-yn{display:flex;gap:10px;margin-bottom:6px}
.cu-yn button{flex:1;padding:13px;border-radius:10px;border:1.5px solid var(--ao-border);background:#fff;font-weight:600;font-size:.92rem;cursor:pointer;color:var(--ao-slate);font-family:inherit;transition:.15s}
.cu-yn button.active{border-color:var(--ao-blue);background:var(--ao-blue-light);color:var(--ao-blue-darker)}
.cu-addrow{display:flex;gap:8px;margin:14px 0 6px}
.cu-addrow input{flex:1;padding:11px 13px;border:1px solid var(--ao-border);border-radius:9px;font-size:.92rem;font-family:inherit}
.cu-addrow input:focus{outline:none;border-color:var(--ao-blue);box-shadow:0 0 0 3px rgba(79,70,229,.15)}
.cu-hint{font-size:.8rem;color:var(--ao-slate-soft);margin-top:4px}
.cu-entry{border:1px solid var(--ao-border);border-radius:12px;padding:15px;margin-top:12px;background:#FCFCFF}
.cu-entry .cu-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.cu-entry .cu-name{font-weight:700;font-size:.98rem;color:var(--ao-navy);flex:1}
.cu-badge{font-size:.6rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:var(--ao-blue-light);color:var(--ao-blue-darker);border-radius:6px;padding:2px 6px;vertical-align:middle}
.cu-rm{border:none;background:var(--ao-danger-bg);color:var(--ao-danger);border-radius:8px;padding:6px 10px;font-size:.78rem;font-weight:600;cursor:pointer;font-family:inherit}
.cu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cu-fld label{display:block;font-size:.72rem;font-weight:600;color:var(--ao-slate);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}
.cu-fld .cu-row{display:flex;gap:6px}
.cu-fld input,.cu-fld select{width:100%;padding:9px 10px;border:1px solid var(--ao-border);border-radius:8px;font-size:.88rem;font-family:inherit;background:#fff}
.cu-fld .cu-unit{max-width:92px}
.cu-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.cu-chip{font-size:.76rem;padding:6px 10px;border-radius:16px;border:1px solid var(--ao-border);background:#fff;color:var(--ao-slate);cursor:pointer;transition:.14s}
.cu-chip.on{border-color:var(--ao-gold);background:#E7FAF7;color:#0B7C72;font-weight:600}
.cu-notes{width:100%;margin-top:8px;padding:9px 10px;border:1px solid var(--ao-border);border-radius:8px;font-size:.88rem;font-family:inherit;resize:vertical;min-height:40px}
.cu-section{margin-top:12px}
.cu-current-summary{background:var(--ao-blue-light);border:1px solid #C7D2FE;border-radius:12px;padding:14px 16px;margin-bottom:18px}
.cu-current-summary h4{font-size:.95rem;color:var(--ao-navy);margin-bottom:6px}
.cu-current-summary .item{font-size:.84rem;color:var(--ao-slate);margin-top:3px}
.pep-card h4 .cu-taking,.gen-pep-card h4 .cu-taking{display:inline-block;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:#FEF3C7;color:#92400E;border-radius:6px;padding:2px 7px;margin-left:6px;vertical-align:middle}
@media(max-width:640px){.cu-grid{grid-template-columns:1fr}}
