:root{--bg:#f6f7f9;--card:#fff;--text:#1f2933;--muted:#667085;--line:#e4e7ec;--brand:#2f6fed;--brand-d:#1f55c4;--ok:#12805c;--err:#c0392b;--sel:#e8f0fe;--on:#fff;--warn:#b45309;--good:#12805c}
@media (prefers-color-scheme:dark){:root{--bg:#12151a;--card:#1b2028;--text:#e6e9ef;--muted:#9aa4b2;--line:#2c3440;--brand:#6c9bff;--brand-d:#8db0ff;--ok:#4cc29a;--err:#ff7b6b;--sel:#22314f;--on:#0b1220;--warn:#f0b35a;--good:#4cc29a}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
.wrap{max-width:760px;margin:0 auto;padding:20px 16px 60px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;margin:14px 0}
h1{font-size:1.6rem;margin:.2em 0}h2{font-size:1.25rem;margin:.2em 0 .6em}h3{font-size:1.05rem;margin:1em 0 .3em}
p{margin:.5em 0}.muted{color:var(--muted);font-size:.92rem}
label{display:block;margin:14px 0 4px;font-weight:600}
input[type=text],input[type=email],input[type=password]{width:100%;padding:11px 12px;font-size:1rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text)}
input:focus-visible,button:focus-visible,.opt:focus-within{outline:3px solid var(--brand);outline-offset:1px}
button{font:inherit;cursor:pointer;border:1px solid var(--brand);background:var(--brand);color:#fff;padding:10px 20px;border-radius:10px}
button:hover{background:var(--brand-d)}button.ghost{background:transparent;color:var(--brand)}
button:disabled{opacity:.45;cursor:not-allowed}
.row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;align-items:center}
.err{color:var(--err);margin-top:10px;min-height:1.4em}
.tabs{display:flex;gap:6px;margin-bottom:6px}.tabs button{flex:1;background:transparent;color:var(--text);border-color:var(--line)}
.tabs button[aria-pressed=true]{background:var(--brand);color:#fff;border-color:var(--brand)}
.bar{height:8px;background:var(--line);border-radius:6px;overflow:hidden}.bar i{display:block;height:100%;background:var(--brand);transition:width .25s}
.q{padding:14px 0;border-top:1px solid var(--line)}.q:first-of-type{border-top:0}
.q p{font-weight:600;margin:0 0 8px}
.scale{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.opt{position:relative;text-align:center;border:1px solid var(--line);border-radius:10px;padding:9px 0;cursor:pointer;user-select:none}
.opt input{position:absolute;opacity:0;inset:0;cursor:pointer}
.opt:has(input:checked){background:var(--brand);color:#fff;border-color:var(--brand)}
.ends{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);margin-top:4px}
.pick{display:flex;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px;margin:8px 0;cursor:pointer}
.pick:has(input:checked){background:var(--sel);border-color:var(--brand)}
.badge{display:inline-block;background:var(--sel);color:var(--brand);padding:2px 10px;border-radius:99px;font-size:.85rem;margin-right:6px}
.hero{border-left:6px solid var(--brand)}
.tag-list{padding-left:1.2em;margin:.3em 0}
table{width:100%;border-collapse:collapse}th,td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left}
.score-bar{height:10px;background:var(--line);border-radius:6px;min-width:80px}.score-bar i{display:block;height:100%;border-radius:6px;background:var(--brand)}
.radar{width:100%;max-width:420px;display:block;margin:0 auto}
.radar text{fill:var(--text);font-size:12px}.radar .grid{fill:none;stroke:var(--line)}.radar .shape{fill:var(--brand);fill-opacity:.25;stroke:var(--brand);stroke-width:2}
.hist li{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:10px 0;border-top:1px solid var(--line);list-style:none}
.hist{padding:0;margin:0}
@media (max-width:520px){.scale{gap:4px}.card{padding:16px}}
@media print{body{background:#fff;color:#000}.noprint{display:none!important}.card{border:1px solid #ccc;break-inside:avoid}}

/* ---- 结果报告 ---- */
.rhero{background:var(--brand);color:var(--on);border-radius:16px;padding:22px;margin:14px 0}
.rhero .meta{font-size:.85rem;opacity:.85;margin:0}.rhero h1{color:inherit;margin:.15em 0 .1em}.rhero .lead{margin:.6em 0 .2em;opacity:.9}
.pa{display:flex;gap:14px;align-items:center;margin-top:10px;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--on) 16%,transparent)}
.pcode{flex:none;width:54px;height:54px;border-radius:12px;background:var(--on);color:var(--brand);font-weight:800;font-size:1.25rem;display:grid;place-items:center}
.pa-t{flex:1;min-width:0}.pa-t b{display:block;font-size:1.2rem}.pa-t span{font-size:.9rem;opacity:.92}
.pscore{flex:none;font-size:1.6rem;font-weight:800;font-variant-numeric:tabular-nums}.pscore small{font-size:.75rem;font-weight:500;opacity:.8}
.profile{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:18px;align-items:center}
@media (max-width:640px){.profile{grid-template-columns:1fr}}
.radar .tick{font-size:9px;fill:var(--muted);paint-order:stroke;stroke:var(--card);stroke-width:3px}
.radar .rl{font-size:12px;fill:var(--muted)}.radar .rl.main{fill:var(--text);font-weight:700}
.radar .rs{font-size:11px;fill:var(--muted);font-variant-numeric:tabular-nums}.radar .rs.main{fill:var(--brand);font-weight:700}
.radar .pdot{fill:var(--brand);stroke:var(--card);stroke-width:2.5}.radar .odot{fill:var(--brand);fill-opacity:.55}
.rank{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.rank li{display:grid;grid-template-columns:1.4em 6.6em 1fr 2.4em;gap:8px;align-items:center;padding:5px 8px;border-radius:8px;font-size:.92rem}
.rank li.main{background:var(--sel);font-weight:700}
.rn{color:var(--muted);font-variant-numeric:tabular-nums}.rbar{height:10px;background:var(--line);border-radius:3px;overflow:hidden}
.rbar i{display:block;height:100%;background:var(--brand);opacity:.45;border-radius:0 3px 3px 0}.rank li.main .rbar i{opacity:1}
.rval{text-align:right;font-variant-numeric:tabular-nums}
.small{font-size:.82rem}
.en{font-size:.8rem;font-weight:400;color:var(--muted);margin-left:6px}
.motive{margin:.2em 0 14px;padding:12px 14px;background:var(--sel);border-radius:10px}.motive b{display:block;font-size:.8rem;color:var(--brand);margin-bottom:2px}
.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width:640px){.dgrid{grid-template-columns:1fr}}
.dbox{border:1px solid var(--line);border-radius:12px;padding:12px 14px}.dbox h3{margin:0 0 6px;font-size:.95rem}
.dbox.good h3{color:var(--good)}.dbox.warn h3{color:var(--warn)}
.dbox .tag-list{list-style:none;padding:0;margin:0;display:grid;gap:5px}
.dbox .tag-list li{position:relative;padding-left:16px;font-size:.93rem}
.dbox .tag-list li::before{content:"";position:absolute;left:2px;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--brand)}
.dbox.good .tag-list li::before{background:var(--good)}.dbox.warn .tag-list li::before{background:var(--warn)}
.avoid{margin:12px 0 0;font-size:.92rem;color:var(--muted)}.avoid b{color:var(--text)}
.sgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width:640px){.sgrid{grid-template-columns:1fr}}
.sbox{border:1px solid var(--line);border-radius:12px;padding:12px 14px}.sbox p{margin:.3em 0 0;font-size:.92rem;color:var(--muted)}
.sh{display:flex;justify-content:space-between;align-items:baseline}.sh span{font-weight:700;color:var(--brand);font-variant-numeric:tabular-nums}
h1:focus,h2:focus{outline:none}
