/* 多序列比对 — Clustal Omega 本地比对结果渲染 */
:root{--bg:#f8fafc;--cyan:#2563eb;--purple:#8B5CF6;--t1:#F3F4F6;--t2:#6B7280;--card:rgba(7,20,40,.78);--bdr:rgba(37,99,235,.1)}
*{box-sizing:border-box}
.fg label{display:block;font-size:.88rem;color:var(--t2);margin-bottom:6px;font-weight:500}
.fg .req{color:#f87171}
.fg textarea{padding:12px 14px;background:rgba(10,14,23,.8);border:1px solid rgba(48,54,61,.5);border-radius:10px;color:var(--t1);font-size:.82rem;font-family:'SF Mono',Consolas,monospace;width:100%;resize:vertical;min-height:150px;line-height:1.5}
.fg textarea:focus,.fg input[type=text]:focus,.fg select:focus{outline:none;border-color:rgba(37,99,235,.45)}
.fg select{font-size:.9rem;color:var(--t1);background:rgba(10,14,23,.8);border:1px solid rgba(48,54,61,.5);border-radius:8px;padding:8px 10px;width:100%}
.ts{display:inline-flex;align-items:center;gap:8px;padding:12px 32px;background:var(--cyan);color:var(--bg);border:none;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}
.ts:hover{box-shadow:0 0 24px rgba(37,99,235,.25)}
.ts:disabled{opacity:.5;cursor:wait}
.tr{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:rgba(255,255,255,.05);color:var(--t2);border:1px solid rgba(255,255,255,.14);border-radius:10px;font-size:.9rem;cursor:pointer;transition:all .2s}
.tr:hover{color:var(--t1);border-color:rgba(37,99,235,.4)}
.example-seq{display:inline-block;color:var(--cyan);cursor:pointer;text-decoration:underline;text-underline-offset:3px;margin:0 4px;font-size:.78rem}
.example-seq:hover{color:#5eead4}
/* 比对结果 */
.aln-wrap{overflow-x:auto;background:rgba(10,14,23,.85);border:1px solid rgba(48,54,61,.4);border-radius:10px;padding:14px}
.aln-row{display:flex;align-items:center;font-family:'SF Mono',Consolas,monospace;font-size:.78rem;line-height:1.75;white-space:nowrap}
.aln-id{display:inline-block;min-width:110px;max-width:180px;overflow:hidden;text-overflow:ellipsis;color:var(--purple);margin-right:10px;font-size:.74rem;flex-shrink:0}
.aln-seq{display:inline-block;letter-spacing:.5px}
.aln-cons{display:flex;align-items:center;font-family:'SF Mono',Consolas,monospace;font-size:.78rem;line-height:1.75;white-space:nowrap}
.aln-cons-id{display:inline-block;min-width:110px;max-width:180px;color:var(--cyan);margin-right:10px;font-size:.74rem;font-weight:700;flex-shrink:0}
.res-nt{color:#4ADE80}
.res-nd{color:#F87171}
.res-nc{color:#60A5FA}
.res-ng{color:#FBBF24}
.res-nn{color:#6B7280}
.res-ph{color:#2563eb}
.res-po{color:#FBBF24}
.res-pp{color:#60A5FA}
.res-pe{color:#F87171}
.res-pa{color:#A78BFA}
.res-x{color:#F472B6}
.res-gap{opacity:.28}
.cons-nt{color:#4ADE80;font-weight:700}
.cons-nd{color:#F87171;font-weight:700}
.cons-nc{color:#60A5FA;font-weight:700}
.cons-ng{color:#FBBF24;font-weight:700}
.cons-nn{color:#6B7280}
.cons-ph{color:#2563eb;font-weight:700}
.cons-po{color:#FBBF24;font-weight:700}
.cons-pp{color:#60A5FA;font-weight:700}
.cons-pe{color:#F87171;font-weight:700}
.cons-pa{color:#A78BFA;font-weight:700}
.cons-x{color:#F472B6}
.cons-gap{color:#6B7280;font-weight:400}
/* 保守度柱 */
.consv-wrap{display:flex;align-items:flex-end;gap:0;height:44px;margin-top:6px;padding-left:120px}
.consv-bar{display:inline-block;width:4px;background:linear-gradient(180deg,var(--cyan),rgba(37,99,235,.35));border-radius:2px 2px 0 0}
.consv-meta{font-size:.74rem;color:var(--t2);margin:6px 0 0 120px}
/* 矩阵 */
.matrix-scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.8rem}
th{color:var(--t2);text-align:left;padding:8px;border-bottom:1px solid rgba(48,54,61,.5);font-weight:500;white-space:nowrap}
td{padding:8px;border-bottom:1px solid rgba(48,54,61,.22);color:#D1D5DB}
tr:hover td{background:rgba(37,99,235,.03)}
.cell{font-family:'SF Mono',Consolas,monospace;font-size:.74rem;color:#D1D5DB}
.cell-hi{color:var(--cyan);font-weight:700}
.cell-dim{color:#374151}
.idm{font-family:'SF Mono',Consolas,monospace;font-size:.75rem;text-align:center;min-width:56px}
.idm-diag{color:var(--cyan);font-weight:700}
.copy-btn{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:8px 16px;background:rgba(37,99,235,.08);color:var(--cyan);border:1px solid rgba(37,99,235,.3);border-radius:8px;font-size:.8rem;cursor:pointer}
.copy-btn:hover{background:rgba(37,99,235,.16)}
.fasta-blk{background:rgba(10,14,23,.85);border:1px solid rgba(48,54,61,.4);border-radius:10px;padding:14px;font-family:'SF Mono',Consolas,monospace;font-size:.76rem;line-height:1.6;color:#D1D5DB;white-space:pre-wrap;word-break:break-all;max-height:360px;overflow-y:auto;margin-top:10px}
