:root{--bg:#07111f;--bg2:#0b1729;--panel:#101f34;--panel2:#142943;--line:rgba(148,184,218,.20);--text:#e6f0fb;--muted:#9bb1c8;--accent:#38bdf8;--accent-soft:rgba(56,189,248,.12);--green:#34d399;--amber:#fbbf24;--red:#fb7185;--shadow:0 16px 44px rgba(0,0,0,.24)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at 8% -10%,rgba(14,165,233,.16),transparent 32%),radial-gradient(circle at 100% 8%,rgba(167,139,250,.12),transparent 28%),var(--bg);color:var(--text);font-family:-apple-system,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;line-height:1.65;min-height:100vh}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
button{font:inherit}
.topnav{max-width:1120px;margin:0 auto;padding:18px 22px 0;display:flex;justify-content:space-between;align-items:center;gap:12px}
.back{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:999px;background:var(--accent-soft);color:#d8f4ff;font-size:12px;font-weight:700}
.back:hover{background:color-mix(in srgb,var(--accent) 20%,transparent);text-decoration:none}
.mode{font-size:11px;color:var(--muted);letter-spacing:.05em}
.hero{max-width:1120px;margin:0 auto;padding:42px 22px 28px}
.kicker{display:inline-flex;align-items:center;gap:8px;color:#c3edff;font-size:12px;font-weight:800;letter-spacing:.12em}
.kicker:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(52,211,153,.13)}
h1{font-size:clamp(28px,5vw,48px);line-height:1.15;letter-spacing:-.04em;margin:15px 0 12px;max-width:800px}
.hero p{max-width:760px;color:var(--muted);font-size:15px;margin:0}
.hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.hero-badges span{padding:5px 11px;border-radius:999px;color:#d9edfb;font-size:11px;background:rgba(148,184,218,.10);border:1px solid rgba(148,184,218,.22)}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px 70px}
.notice{display:grid;grid-template-columns:auto 1fr;gap:13px;padding:15px 17px;border:1px solid rgba(251,191,36,.32);border-left:4px solid var(--amber);border-radius:12px;background:rgba(251,191,36,.08);color:#f5e4b1;font-size:12px;margin-bottom:20px}
.notice strong,.notice-title{font-weight:800;color:#ffe18a}
.workspace{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;align-items:start}
.rail{position:sticky;top:14px;padding:16px;border:1px solid var(--line);border-radius:16px;background:rgba(16,31,52,.82);box-shadow:var(--shadow)}
.rail-head{font-size:12px;font-weight:800;color:#d8ebfa;margin-bottom:13px}
.rail ol{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.rail li{display:grid;grid-template-columns:25px 1fr;gap:8px;align-items:center;padding:8px 7px;border-radius:9px;color:var(--muted);font-size:11px;transition:.2s}
.rail li .num{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(148,184,218,.25);font-size:10px}
.rail li.active{background:var(--accent-soft);color:#e6f8ff}
.rail li.active .num{border-color:var(--accent);background:var(--accent-soft);color:#e0f8ff}
.rail li.done{color:#9eeacb}
.rail li.done .num{border-color:rgba(52,211,153,.6);color:#8cf0c5}
.rail-foot{border-top:1px solid var(--line);margin-top:13px;padding-top:12px;color:var(--muted);font-size:10px;line-height:1.6}
.card{border:1px solid var(--line);border-radius:16px;background:rgba(16,31,52,.92);box-shadow:var(--shadow)}
.task-card{padding:22px}
.task-meta{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:13px}
.pill{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);color:#d5f3ff;font-size:10px;font-weight:800}
.pill.green{background:rgba(52,211,153,.10);border-color:rgba(52,211,153,.26);color:#9eeacb}
.pill.amber{background:rgba(251,191,36,.10);border-color:rgba(251,191,36,.28);color:#ffe18a}
.step-title{font-size:24px;line-height:1.25;margin:0 0 7px;letter-spacing:-.02em}
.step-intro{color:var(--muted);font-size:13px;margin:0 0 17px}
.progress-wrap{margin:0 0 18px}
.progress-line{height:7px;border-radius:99px;background:#1c3048;overflow:hidden}
.progress-line i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--green));transition:width .35s ease}
.progress-text{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-top:5px}
.evidence{padding:14px;border:1px solid rgba(148,184,218,.17);border-radius:12px;background:rgba(7,17,31,.46);margin-bottom:18px}
.evidence-title{font-size:11px;font-weight:800;color:#cfe6f7;margin-bottom:9px}
.evidence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.evidence-item{padding:9px 10px;border-radius:9px;background:rgba(148,184,218,.07);min-width:0}
.evidence-item b{display:block;color:#8fc9e8;font-size:10px;margin-bottom:2px}
.evidence-item span{display:block;color:#d2deea;font-size:11px;line-height:1.5}
.question{font-size:16px;font-weight:800;color:#f0f7fd;margin:0 0 11px}
.choices{display:grid;gap:9px}
.choice{width:100%;text-align:left;display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;padding:13px 14px;border-radius:12px;border:1px solid rgba(148,184,218,.20);background:rgba(20,41,67,.78);color:var(--text);cursor:pointer;transition:.18s}
.choice:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}
.choice:focus-visible,.btn:focus-visible,a:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.choice:disabled{cursor:default}
.choice .letter{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:rgba(148,184,218,.12);color:#b7d3e8;font-size:11px;font-weight:800}
.choice .choice-text{font-size:13px;line-height:1.5;padding-top:1px}
.choice.correct{border-color:rgba(52,211,153,.72);background:rgba(52,211,153,.13)}
.choice.correct .letter{background:rgba(52,211,153,.25);color:#a8f3d3}
.choice.wrong{border-color:rgba(251,113,133,.7);background:rgba(251,113,133,.11)}
.choice.wrong .letter{background:rgba(251,113,133,.24);color:#ffd0d8}
.choice.dim{opacity:.52}
.feedback{margin-top:16px;padding:14px 15px;border-radius:12px;border:1px solid rgba(148,184,218,.20);background:rgba(148,184,218,.07);font-size:12px;color:#dce9f3}
.feedback.good{border-color:rgba(52,211,153,.45);background:rgba(52,211,153,.10)}
.feedback.bad{border-color:rgba(251,113,133,.48);background:rgba(251,113,133,.10)}
.feedback .fb-title{font-weight:800;margin-bottom:4px;color:#f4fbff}
.feedback.good .fb-title{color:#9eeacb}
.feedback.bad .fb-title{color:#ffc1cb}
.feedback .impact{margin-top:7px;color:#b3c5d5}
.btn-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.btn{border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:9px;padding:9px 14px;background:var(--accent-soft);color:#e5f8ff;font-size:12px;font-weight:800;cursor:pointer}
.btn:hover{background:color-mix(in srgb,var(--accent) 24%,transparent)}
.btn.secondary{border-color:rgba(148,184,218,.28);background:transparent;color:#c3d5e5}
.btn.green{border-color:rgba(52,211,153,.40);background:rgba(52,211,153,.14);color:#b6f3d8}
.section-title{font-size:16px;margin:0 0 8px}
.result-card{padding:24px}
.result-top{display:flex;flex-wrap:wrap;gap:18px;align-items:end;border-bottom:1px solid var(--line);padding-bottom:19px;margin-bottom:19px}
.score{font-size:52px;font-weight:900;line-height:1;color:#9eeacb;letter-spacing:-.06em}
.score small{font-size:13px;color:var(--muted);letter-spacing:0;font-weight:700;margin-left:4px}
.result-state{font-size:18px;font-weight:800;color:#dff7ec}
.result-sub{color:var(--muted);font-size:12px;margin-top:3px}
.result-notice{padding:12px 14px;border-radius:11px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);font-size:12px;color:#d5edf9;margin-bottom:18px}
.review-grid{display:grid;gap:9px}
.review-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px 13px;border:1px solid rgba(251,113,133,.28);border-radius:11px;background:rgba(251,113,133,.07)}
.review-item b{display:block;font-size:12px;color:#ffe0e4}
.review-item span{display:block;color:#bfcbd7;font-size:11px;margin-top:2px}
.mini-btn{border:1px solid rgba(251,191,36,.42);border-radius:8px;padding:7px 9px;background:rgba(251,191,36,.12);color:#ffe6a3;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}
.mini-btn:hover{background:rgba(251,191,36,.22)}
.mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.mode-card{display:grid;gap:6px;text-align:left;padding:16px;border-radius:13px;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);background:rgba(20,41,67,.78);color:var(--text);cursor:pointer;transition:.18s}
.mode-card:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}
.mode-card:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.mode-card b{font-size:14px;color:#eaf7ff}
.mode-card span{font-size:12px;color:var(--muted);line-height:1.55}
.mode-card small{font-size:10px;color:#8fc9e8;font-weight:700}
.record-list{display:grid;gap:8px}
.record-row{display:grid;grid-template-columns:auto 26px 1fr;gap:10px;align-items:start;padding:11px 12px;border:1px solid rgba(148,184,218,.20);border-radius:11px;background:rgba(20,41,67,.70);cursor:pointer;transition:.18s}
.record-row:hover{border-color:var(--accent)}
.record-row:has(input:checked){border-color:rgba(251,191,36,.55);background:rgba(251,191,36,.09)}
.record-row input{margin:3px 0 0;width:15px;height:15px;accent-color:var(--amber);cursor:pointer}
.record-index{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:rgba(148,184,218,.12);color:#b7d3e8;font-size:10px;font-weight:800}
.record-row b{display:block;font-size:12px;color:#e7f2fb}
.record-row small{display:block;color:var(--muted);font-size:11px;margin-top:2px;line-height:1.5}
.record-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
.related{margin-top:18px;padding:18px 20px}
.related p{color:var(--muted);font-size:12px;margin:0 0 12px}
.related-links{display:flex;flex-wrap:wrap;gap:8px}
.related-links a{padding:7px 10px;border-radius:8px;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);background:var(--accent-soft);font-size:11px;color:#b9e8ff}
.related-links a:hover{text-decoration:none;background:color-mix(in srgb,var(--accent) 20%,transparent)}
.footer{text-align:center;color:#7189a2;font-size:10px;line-height:1.8;padding:24px 20px 36px}
.footer strong{color:#a9c9df}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.loading{text-align:center;color:var(--muted);padding:50px 20px}
@media(max-width:800px){.workspace{grid-template-columns:1fr}.rail{position:static}.rail ol{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.rail li{grid-template-columns:1fr;text-align:center;justify-items:center;padding:7px 3px;font-size:10px}.rail-foot{display:none}.task-card{padding:18px}.evidence-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.topnav,.hero,.wrap{padding-left:15px;padding-right:15px}.hero{padding-top:30px}.mode{display:none}.rail ol{grid-template-columns:repeat(2,minmax(0,1fr))}.evidence-grid{grid-template-columns:1fr}.step-title{font-size:21px}.choice{padding:12px}.review-item{grid-template-columns:1fr}.review-item .mini-btn{justify-self:start}.mode-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* ---- 交互点选（动手题） ---- */
.pick-hint{color:#9fc3dd;font-size:12px;margin:0 0 10px}
.map-wrap{border:1px solid rgba(148,184,218,.2);border-radius:12px;background:rgba(7,17,31,.5);padding:10px;margin-bottom:6px}
.map-wrap svg{width:100%;height:auto;display:block}
.map-wrap [data-pick]{cursor:pointer}
.map-wrap [data-pick] .pick-dot{transition:stroke .15s,filter .15s}
.map-wrap [data-pick]:hover .pick-dot{filter:brightness(1.4)}
.map-wrap [data-pick].picked .pick-dot{stroke:#34d399;stroke-width:3.5;filter:drop-shadow(0 0 7px rgba(52,211,153,.8))}
.map-wrap [data-pick].picked .pick-label{fill:#9eeacb}
/* ---- 能力画像成绩单 ---- */
.scorecard{padding:16px;border:1px solid rgba(148,184,218,.2);border-radius:12px;background:rgba(7,17,31,.46);margin-bottom:18px}
.skill-badges{display:flex;flex-wrap:wrap;gap:8px}
.skill-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid}
.skill-badge i{font-style:normal;font-weight:900}
.skill-badge.ok{color:#9eeacb;border-color:rgba(52,211,153,.4);background:rgba(52,211,153,.1)}
.skill-badge.miss{color:#ffc1cb;border-color:rgba(251,113,133,.45);background:rgba(251,113,133,.1)}
/* ---- 分层 CTA ---- */
.cta-box{padding:16px 17px;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);background:var(--accent-soft);margin-bottom:18px}
.cta-box.good{border-color:rgba(52,211,153,.5);background:rgba(52,211,153,.09)}
.cta-title{font-weight:800;font-size:14px;margin-bottom:5px;color:#f0f8ff}
.cta-box.good .cta-title{color:#9eeacb}
.cta-body{font-size:12px;color:#c6d6e4;margin-bottom:4px}
.cta-box .btn-row{margin-top:10px}
