.shell[data-v-9e4f084c]{min-height:100vh;display:flex;flex-direction:column}.topbar[data-v-9e4f084c]{position:sticky;top:0;z-index:40;background:#f4f3efe6;-webkit-backdrop-filter:saturate(1.2) blur(9px);backdrop-filter:saturate(1.2) blur(9px);border-bottom:1px solid var(--line)}.topbar-in[data-v-9e4f084c]{max-width:1160px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:58px}.brand[data-v-9e4f084c]{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto}.brand-mark[data-v-9e4f084c]{width:32px;height:32px;border-radius:8px;background:var(--green);color:#fff;display:inline-flex;align-items:center;justify-content:center}.brand-txt[data-v-9e4f084c]{display:flex;flex-direction:column;line-height:1.2}.brand-txt strong[data-v-9e4f084c]{font-size:17px;letter-spacing:.01em;font-weight:750}.brand-txt span[data-v-9e4f084c]{font-size:10.5px;color:var(--ink-3);letter-spacing:.08em}.nav[data-v-9e4f084c]{display:flex;gap:2px;flex-wrap:wrap;justify-content:flex-end}.nav-item[data-v-9e4f084c]{display:inline-flex;flex-direction:column;align-items:center;font-size:13px;font-weight:500;color:var(--ink-2);padding:5px 10px;border-radius:6px;border:1px solid transparent;line-height:1.25;transition:color .15s,background .15s}.nav-en[data-v-9e4f084c]{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.nav-item[data-v-9e4f084c]:hover{color:var(--ink);background:#fff;border-color:var(--line-soft)}.nav-item.active[data-v-9e4f084c]{color:var(--green-deep);background:var(--green-soft);border-color:#0e7a5438}.nav-item.active .nav-en[data-v-9e4f084c]{color:var(--green)}main[data-v-9e4f084c]{flex:1 1 auto}.site-foot[data-v-9e4f084c]{border-top:1px solid var(--line);padding:16px 24px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--ink-3);font-size:12.5px}.fade-enter-active[data-v-9e4f084c],.fade-leave-active[data-v-9e4f084c]{transition:opacity .16s ease,transform .16s ease}.fade-enter-from[data-v-9e4f084c]{opacity:0;transform:translateY(4px)}.fade-leave-to[data-v-9e4f084c]{opacity:0}@media (max-width: 840px){.topbar-in[data-v-9e4f084c]{flex-direction:column;padding:10px 16px;gap:8px}.nav[data-v-9e4f084c]{justify-content:center;width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.nav-item[data-v-9e4f084c]{flex-direction:row;gap:6px;font-size:13px;white-space:nowrap}}:root{--paper: #f4f3ef;--panel: #ffffff;--ink: #171a1e;--ink-2: #4c535c;--ink-3: #8c939b;--line: #e1e0d9;--line-soft: #ecebe5;--green: #0e7a54;--green-deep: #095e41;--green-ink: #063d2c;--green-soft: #e6f1eb;--blue: #21506b;--blue-soft: #e9eef1;--red: #bf4a3c;--red-soft: #f8eae7;--amber: #a5701d;--amber-soft: #f7efdf;--violet: #6d5aa8;--sans: "Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Mono", Consolas, "Liberation Mono", Menlo, monospace;--fs-0: 12px;--fs-1: 13.5px;--fs-2: 15px;--fs-3: 17px;--fs-4: 21px;--fs-5: 26px;--fs-6: 34px;--r-s: 6px;--r-m: 9px;--shadow-1: 0 1px 2px rgba(20, 24, 20, .04), 0 1px 1px rgba(20, 24, 20, .03)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--fs-2);line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#app{min-height:100vh}a{color:inherit;text-decoration:none}::selection{background:#0e7a5429}.page{max-width:1160px;margin:0 auto;padding:34px 24px 90px}.section-label{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--green);margin:0 0 6px;display:flex;align-items:center;gap:8px}.section-label:before{content:"";width:18px;height:1px;background:var(--green);display:inline-block;opacity:.55}.page h1{font-size:30px;line-height:1.25;font-weight:700;letter-spacing:-.01em;margin:0 0 6px}.page .lead{color:var(--ink-2);font-size:15.5px;max-width:62ch;margin:0}.page-head{margin-bottom:26px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-m);box-shadow:var(--shadow-1)}.panel+.panel{margin-top:18px}.panel-head{padding:14px 20px 0;display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.panel-head h2,.panel h3{font-size:15.5px;font-weight:650;letter-spacing:.01em;margin:0}.panel-head .hint{font-size:12px;color:var(--ink-3)}.panel-body{padding:14px 20px 18px}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field .flabel{font-size:12px;font-weight:600;color:var(--ink-2);letter-spacing:.02em}.field .flabel em{font-style:normal;color:var(--ink-3);font-weight:400}.input,.select{font:inherit;font-size:14px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--r-s);padding:8px 11px;outline:none;transition:border-color .15s,box-shadow .15s;min-width:0;width:100%}.input:focus,.select:focus{border-color:var(--green);box-shadow:0 0 0 3px #0e7a5421}.input.mono{font-family:var(--mono);letter-spacing:.06em}.input::placeholder{color:var(--ink-3)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#8c939b 50%),linear-gradient(135deg,#8c939b 50%,transparent 50%);background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:30px;cursor:pointer}textarea.input{resize:vertical;min-height:84px;line-height:1.6;font-family:var(--mono)}.btn{display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:13.5px;font-weight:600;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:var(--r-s);padding:7px 14px;cursor:pointer;transition:background .14s,border-color .14s,color .14s,transform .05s;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:hover{border-color:#c9c7bd;background:#fafaf8}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.primary:hover{background:var(--green-deep);border-color:var(--green-deep)}.btn.ghost-green{color:var(--green);border-color:#0e7a5466;background:var(--green-soft)}.btn.ghost-green:hover{background:#d7eae0;border-color:#0e7a5499}.btn.sm{font-size:12px;padding:4px 10px}.btn.block{width:100%;justify-content:center}.btn.icon{padding:6px 8px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden;background:#fff}.seg button{border:0;background:transparent;font:inherit;font-size:12.5px;color:var(--ink-2);padding:6px 13px;cursor:pointer;transition:background .14s,color .14s;border-right:1px solid var(--line);white-space:nowrap}.seg button:last-child{border-right:0}.seg button:hover{background:#f7f6f2}.seg button.on{background:var(--ink);color:#fff;font-weight:600}.seg.green button.on{background:var(--green)}.seg.wrap{flex-wrap:wrap}.seg button.full:first-child{border-radius:5px 0 0 5px}.allele-pick{display:inline-flex;gap:6px;flex-wrap:wrap}.allele{font-family:var(--mono);font-size:13.5px;min-width:42px;text-align:center;padding:6px 11px;border:1px solid var(--line);border-radius:var(--r-s);background:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .13s;font-weight:600;letter-spacing:.02em}.allele:hover{border-color:#b7b4a8}.allele.on{background:var(--ink);border-color:var(--ink);color:#fff}.allele.on.green{background:var(--green);border-color:var(--green)}.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th{font-size:11.5px;font-weight:600;letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase;padding:6px 10px;border-bottom:1px solid var(--ink);text-align:left;white-space:nowrap}.tbl td{padding:8px 10px;border-bottom:1px solid var(--line-soft);vertical-align:top}.tbl tr:last-child td{border-bottom:0}.tbl td.num,.tbl th.num{text-align:right;font-variant-numeric:tabular-nums}.mono,.code{font-family:var(--mono)}.tnum{font-variant-numeric:tabular-nums}.callout{border:1px solid var(--line);border-left:3px solid var(--green);border-radius:var(--r-s);background:#fbfbf9;padding:10px 14px;font-size:13.5px;color:var(--ink-2);margin:10px 0}.callout .ct{font-weight:700;color:var(--ink);font-size:13px}.callout.info{border-left-color:var(--blue);background:#f7fafb}.callout.warn{border-left-color:var(--amber);background:#fdfaf4}.callout.danger{border-left-color:var(--red);background:#fdf7f5}.callout.good{border-left-color:var(--green)}.statline{display:flex;flex-wrap:wrap;gap:8px}.stat{border:1px solid var(--line);background:#fff;border-radius:var(--r-s);padding:8px 14px;min-width:110px}.stat .v{font-family:var(--mono);font-size:21px;font-weight:600;letter-spacing:.01em;line-height:1.2;font-variant-numeric:tabular-nums}.stat .k{font-size:11px;color:var(--ink-3);letter-spacing:.04em;margin-top:2px}.formula{font-family:var(--mono);font-size:14.5px;background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-s);padding:9px 13px;overflow-x:auto;white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:2px 9px;color:var(--ink-2);font-family:var(--mono)}.pill.dot:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.note{font-size:12.5px;color:var(--ink-3)}.divider{border:0;border-top:1px solid var(--line);margin:16px 0}.empty-tip{color:var(--ink-3);font-size:13.5px;text-align:center;padding:30px 10px;border:1px dashed var(--line);border-radius:var(--r-m)}.g2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.g2x1{display:grid;grid-template-columns:2fr 1fr;gap:18px;align-items:start}.g2x1.reverse{grid-template-columns:1fr 2fr}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.grow{flex:1 1 auto}.mt{margin-top:14px}@media (max-width: 900px){.g2,.g3,.g2x1,.g2x1.reverse{grid-template-columns:1fr}}.seq-seg{display:inline-flex;flex-direction:column;align-items:center;min-width:30px}.seq-base{font-family:var(--mono);font-weight:600;font-size:14px;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px}.seq-tag{font-family:var(--mono);font-size:10px;color:var(--ink-3);line-height:1;margin-top:3px}
