/* 基因计算器 v2 视觉 */
:root{--gx-ink:#223228;--gx-muted:#6a776c;--gx-line:#dfe7da;--gx-green:#2f7d3b;--gx-soft:#f6faf3;--gx-gold:#d99b2b;--gx-shadow:0 14px 36px rgba(37,62,43,.1)}
.gx-wrap{max-width:1060px;margin:0 auto;padding:22px 14px 40px;color:var(--gx-ink)}
.gx-hd{padding:6px 4px 14px}
.gx-crumb{font-size:13px;color:#6a8068;margin-bottom:8px}
.gx-crumb a{color:#3a7a3a;text-decoration:none}
.gx-hd h1{font-size:30px;margin:6px 0 8px;color:#2f6b3a}
.gx-hd p{color:var(--gx-muted);line-height:1.7;margin:0}

.gx-card{background:#fff;border:1px solid var(--gx-line);border-radius:10px;box-shadow:var(--gx-shadow);padding:16px;margin-bottom:14px}
.gx-step{display:flex;align-items:center;gap:10px;margin:0 0 12px}
.gx-num{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--gx-green);color:#fff;font-weight:800}
.gx-step h2{font-size:20px;margin:0}

.gx-species{width:100%;min-height:46px;border:1px solid var(--gx-line);border-radius:10px;padding:0 12px;font-weight:800;background:#fff;color:var(--gx-ink);font-size:16px}
.gx-warn{font-size:13px;color:#8a5c13;background:#fff8e4;border:1px solid #f1d28a;border-radius:8px;padding:10px;margin-top:10px;line-height:1.7}

.gx-parents{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gx-parent-title{font-weight:800;margin-bottom:10px}
.gx-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.gx-opt{min-height:60px;border:1px solid var(--gx-line);border-radius:10px;background:#f9fbf6;cursor:pointer;color:#2d3e32;font-size:14px;font-weight:700;padding:6px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:.15s}
.gx-opt .gx-dot{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.12)}
.gx-opt small{display:block;color:#78877b;font-weight:500;font-size:11px}
.gx-opt.is-on{background:var(--gx-green);border-color:var(--gx-green);color:#fff}
.gx-opt.is-on small{color:#e6f2e1}
.gx-opt.is-on .gx-dot{border-color:#fff}

.gx-carry{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gx-carry label{display:flex;gap:8px;align-items:center;min-height:42px;padding:8px 10px;border:1px solid var(--gx-line);border-radius:8px;background:#f9fbf6;cursor:pointer;font-size:14px}
.gx-carry label.disabled{opacity:.45;cursor:not-allowed}
.gx-carry input{width:18px;height:18px}
.gx-sub{color:var(--gx-muted);font-size:13px;margin:-4px 0 12px;line-height:1.7}

.gx-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 2px}
.gx-btn{min-height:46px;border:0;border-radius:10px;padding:0 22px;background:var(--gx-green);color:#fff;font-weight:800;cursor:pointer;font-size:15px}
.gx-btn:hover{filter:brightness(1.05)}
.gx-btn.gx-secondary{background:#eaf1e6;color:#314d37;border:1px solid #cbdcc4}
.gx-mode-switch{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--gx-line);border-radius:10px;background:#f9fbf6;cursor:pointer;font-size:14px;color:#314d37;font-weight:600;user-select:none}
.gx-mode-switch input{width:16px;height:16px;cursor:pointer}
.gx-minor{margin-top:12px;border:1px dashed var(--gx-line);border-radius:8px;padding:8px 12px;background:#fbfdf8}
.gx-minor>summary{cursor:pointer;font-size:13px;color:#5a6b5e;font-weight:600;padding:4px 0}
.gx-carrier{font-size:13px;font-weight:600;color:#7a5500;margin-left:4px}

.gx-result{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}
.gx-headline{background:#fff8e4;border:1px solid #f1d28a;color:#654d1b;border-radius:8px;padding:12px;line-height:1.7;margin-bottom:12px}
.gx-list{display:grid;gap:10px}
.gx-item{display:grid;grid-template-columns:84px 1fr;gap:10px;align-items:center;border:1px solid var(--gx-line);border-radius:10px;padding:10px;background:#fff}
.gx-pct{font-size:22px;font-weight:900;color:var(--gx-green);text-align:center}
.gx-name{font-size:16px;font-weight:900;margin-bottom:4px}
.gx-name .gx-sex{display:inline-block;font-size:11px;padding:1px 7px;border-radius:4px;margin-right:6px;vertical-align:middle}
.gx-name .gx-sex.male{background:#dbeaff;color:#1e5fab}
.gx-name .gx-sex.female{background:#ffe0e9;color:#b8336a}
.gx-desc{font-size:13px;color:var(--gx-muted);line-height:1.6}

.gx-plain{background:#fff;border:1px solid var(--gx-line);border-radius:10px;padding:14px;color:#405044;line-height:1.8}
.gx-plain h3{margin:0 0 10px;font-size:16px;color:var(--gx-ink)}
.gx-tag{display:inline-flex;align-items:center;gap:6px;margin:3px 5px 3px 0;padding:5px 9px;border-radius:999px;border:1px solid var(--gx-line);background:#fff;font-size:13px}
.gx-tag .gx-dot{width:11px;height:11px;border-radius:50%;border:1px solid rgba(0,0,0,.12)}
.gx-tip{margin-top:10px;font-size:12px;color:#7a5500;background:#fff8e4;border:1px solid #f1d28a;border-radius:8px;padding:8px 10px}
.gx-empty{background:#fff;border:1px dashed #ccc;border-radius:10px;padding:40px;text-align:center;color:#888}

@media(max-width:760px){.gx-parents,.gx-result{grid-template-columns:1fr}.gx-options{grid-template-columns:1fr 1fr}.gx-hd h1{font-size:24px}}