:root{--ink:#17201b;--muted:#667069;--paper:#f4f1e8;--surface:#fffdf7;--line:#d8d5ca;--green:#174f3a;--green2:#2d7257;--lime:#cde96a;--orange:#e66a2c;--red:#a74232;--blue:#376d8d;--shadow:0 12px 34px rgba(31,48,39,.09);--radius:18px;--max:1420px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;line-height:1.6}button,input,select{font:inherit}a{color:inherit}.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:8px}header{height:68px;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:28px;padding:0 max(22px,calc((100vw - var(--max))/2));background:rgba(244,241,232,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}header>div{display:flex;align-items:center;gap:12px}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;font-weight:800;white-space:nowrap}.brand b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--lime)}nav{display:flex;gap:20px;margin:auto}nav a{text-decoration:none;color:var(--muted);font-size:13px}.local,.teaching-only{font-size:12px;font-weight:800;color:var(--green);background:rgba(23,79,58,.1);padding:6px 10px;border-radius:99px}.shell{width:min(var(--max),calc(100% - 48px));margin:auto}.hero{padding:85px 0 70px}.eyebrow{font-size:12px;letter-spacing:.13em;font-weight:800;color:var(--green)}h1,h2{font-family:Georgia,"Songti SC",serif;font-weight:500;line-height:1.08}h1{font-size:clamp(48px,6vw,82px);margin:18px 0}h1 em{font-style:normal;color:var(--green)}.hero>p:not(.eyebrow){max-width:720px;font-size:18px;color:var(--muted)}.steps{display:grid;grid-template-columns:repeat(4,1fr);margin-top:40px;border-block:1px solid var(--line)}.steps span{text-align:center;padding:10px;border-right:1px solid var(--line);font-size:12px;color:var(--muted)}.steps .active{background:var(--ink);color:#fff}.block{padding:80px 0;border-top:1px solid var(--line)}.heading{display:flex;justify-content:space-between;align-items:start;gap:30px;margin-bottom:30px}.heading h2{font-size:clamp(34px,4vw,52px);margin:8px 0}.heading>span{color:var(--muted);font-size:12px}.button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:9px 16px;text-decoration:none;cursor:pointer;font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center}.button.primary{background:var(--green);border-color:var(--green);color:#fff}.button.danger{color:var(--red)}button:disabled{opacity:.45;cursor:not-allowed}.picker{display:grid;grid-template-columns:230px minmax(300px,.7fr) minmax(360px,1fr);gap:18px}.filters,.exercise-detail,.visual{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:19px}.filters label,.form-grid label{display:block;color:var(--muted);font-size:12px;font-weight:700;margin-bottom:13px}.filters input,.filters select,.form-grid input{width:100%;padding:9px 10px;margin-top:5px;border:1px solid var(--line);border-radius:9px;background:#fff}.filters p{font-size:12px;color:var(--muted)}.exercise-list{max-height:520px;overflow:auto;border-block:1px solid var(--line)}.exercise-list button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px;cursor:pointer}.exercise-list button:hover,.exercise-list button.selected{background:rgba(205,233,106,.22)}.exercise-list b,.exercise-list small{display:block}.exercise-list small{color:var(--muted)}.exercise-detail{min-height:400px}.exercise-detail img{width:180px;height:180px;object-fit:cover;border-radius:12px;float:right;margin-left:18px}.exercise-detail h3{font-family:Georgia,"Songti SC",serif;font-size:26px;margin:8px 0}.exercise-detail .en{color:var(--muted)}.meta{display:flex;gap:6px;flex-wrap:wrap}.meta span{font-size:11px;border:1px solid var(--line);border-radius:99px;padding:4px 8px}.steps-list{padding-left:20px;font-size:13px}.credit{font-size:11px;color:var(--muted)}.design-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.design-grid label{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--surface);cursor:pointer}.design-grid label:has(input:checked){border-color:var(--green);box-shadow:inset 0 0 0 2px var(--green)}.design-grid input{accent-color:var(--green)}.design-grid b,.design-grid span{display:block;margin-left:22px}.design-grid span{font-size:12px;color:var(--muted);margin-top:5px}.form-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:14px;margin-top:24px}.form-grid .wide{grid-column:span 2}.privacy{display:flex;gap:16px;background:#fff6e8;border-left:4px solid var(--orange);padding:13px 16px}.privacy p{margin:0;font-size:13px;color:var(--muted)}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:20px}.actions span{color:var(--muted);font-size:12px}.drop-zone{position:relative;display:grid;place-items:center;text-align:center;border:2px dashed var(--green2);border-radius:var(--radius);padding:48px;background:rgba(255,253,247,.7)}.drop-zone input{position:absolute;inset:0;opacity:0;cursor:pointer}.drop-zone span{font-size:12px;color:var(--muted)}.quality-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:20px;margin-top:22px}.quality-summary{padding:13px 0}.quality-summary ul{padding-left:20px;font-size:13px}.quality-summary .error{color:var(--red)}.quality-summary .warning{color:#9a4f19}.quality-summary .ok{color:var(--green)}.confirm{display:block;font-size:12px;margin:12px 0}.preview-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}table{border-collapse:collapse;width:100%;font-size:12px}caption,th,td{text-align:left;padding:9px 11px;border-bottom:1px solid var(--line);white-space:nowrap}caption{font-weight:800}.result-empty{padding:60px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line);margin-bottom:22px}.metrics div{padding:15px;border-right:1px solid var(--line)}.metrics span{font-size:11px;color:var(--muted);display:block}.metrics strong{font:26px Georgia,serif}.result-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:24px}.chart{min-height:370px}.chart svg{display:block;width:100%;height:auto}.chart text{font-family:inherit;fill:var(--ink)}.chart .grid{stroke:var(--line)}.chart .bar{fill:var(--green2)}.chart .point{fill:var(--green);opacity:.55}.chart .line{stroke:var(--orange);stroke-width:3}.interpret{padding:10px}.interpret h4{font-size:12px;color:var(--green);margin:18px 0 4px;text-transform:uppercase}.interpret p{font-size:13px;color:var(--muted)}details{margin-top:20px}summary{cursor:pointer;color:var(--green);font-weight:700}pre{white-space:pre-wrap;background:var(--ink);color:#e8eee9;padding:16px;border-radius:12px;max-height:360px;overflow:auto}.file-button{position:relative}.file-button input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}footer{padding:35px max(24px,calc((100vw - var(--max))/2));border-top:1px solid var(--line);display:flex;gap:20px;justify-content:space-between;color:var(--muted);font-size:12px}#toast{position:fixed;right:20px;bottom:20px;background:var(--ink);color:#fff;padding:10px 14px;border-radius:9px;opacity:0;transition:.2s;z-index:50}#toast.show{opacity:1}@media print{header,.hero,.filters,.exercise-list,.design-grid,.form-grid,.privacy,.actions:not(.export),#import,.export,footer{display:none!important}.block{padding:20px 0}.result-grid{grid-template-columns:1fr}.shell{width:100%}}@media(max-width:1050px){nav{display:none}.picker{grid-template-columns:220px 1fr}.exercise-detail{grid-column:1/-1}.design-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr 1fr}.result-grid{grid-template-columns:1fr}}@media(max-width:700px){header{padding:0 12px}.local{display:none}.shell{width:calc(100% - 28px)}.hero{padding:55px 0}.steps{overflow:auto;grid-template-columns:repeat(4,minmax(115px,1fr))}.picker,.quality-layout{grid-template-columns:1fr}.filters{position:static}.exercise-list{max-height:380px}.exercise-detail img{float:none;margin:0}.design-grid,.form-grid,.metrics{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.metrics div{border-bottom:1px solid var(--line)}footer{display:block}.heading{display:block}}

/* ── 正态性检查与非参数核对 ─────────────────────────── */
.normality-check{margin-top:22px;background:var(--surface,#fffdf7);border:1px solid var(--line,#d8d5ca);border-radius:16px;padding:18px 20px}
.normality-check h3{margin:0 0 4px}
.normality-note{color:var(--muted,#667069);font-size:13.5px;margin:0 0 12px;max-width:860px}
.qq-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.qq-item{margin:0}
.qq-item svg{width:100%;height:auto;background:#fff;border:1px solid var(--line,#d8d5ca);border-radius:12px}
.qq-item figcaption{font-size:13px;color:var(--muted,#667069);margin-top:6px}
.np-advice{background:rgba(205,233,106,.25);border-left:3px solid var(--green-2,#2d7257);padding:9px 13px;border-radius:0 9px 9px 0;font-size:13.5px;line-height:1.7;margin:12px 0 0}
