/* ====== 挂科补考 · 靛紫（警示但不绝望）+ 琥珀（警告）+ 薄荷（OK）====== */
.erp {
    --bg:#f5f3fa; --bg2:#ece8f6; --card:#fff; --card2:#f7f4fc;
    --ink:#1a1420; --sub:#3e3548; --faint:#7a6f88; --line:#dfd7ec; --line2:#ede6f8;
    --violet:#7048b8; --violet-2:#9676c8; --violet-soft:#ece3f9; --erp-ink:#4a2d80;
    --amber:#e8890c; --coral:#e03131; --ok:#2f9e44; --mint:#51cf66;
    --shadow-sm:0 1px 2px rgba(26,20,32,.04),0 6px 16px rgba(26,20,32,.04);
    --shadow:0 2px 6px rgba(26,20,32,.06),0 20px 46px rgba(26,20,32,.08);
    --r:20px; --r-sm:13px;
    background:
        radial-gradient(760px 340px at 92% -6%, rgba(112,72,184,.12), transparent 60%),
        radial-gradient(620px 320px at 2% 8%, rgba(150,118,200,.08), transparent 58%),
        var(--bg);
}
:root[data-theme="dark"] .erp {
    --bg:#120e1a; --bg2:#181224; --card:#1c1528; --card2:#251b35;
    --ink:#efe8fb; --sub:#b3a4cd; --faint:#6f5f8a; --line:#312246; --line2:#26193a;
    --violet:#9676c8; --violet-soft:rgba(150,118,200,.14); --erp-ink:#c9a6ff;
}
.erp-hero { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:30px; padding:30px 0 24px; }
.erp-hero-l .tsk-h1 em { color:var(--erp-ink); }
.erp-hero-r { background:var(--card); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow); padding:22px 24px; }
.erp-gpa-box label { font-size:11.5px; font-weight:700; color:var(--faint); display:block; margin-top:10px; }
.erp-gpa-box label:first-child { margin-top:0; }
.erp-gpa-box input {
    width:100%; height:34px; margin-top:4px; padding:0 10px; border:1.5px solid var(--line); border-radius:8px;
    background:var(--card2); color:var(--ink); font:700 14px/34px var(--num,"Bahnschrift",monospace); outline:none; text-align:right;
}
.erp-gpa-box input:focus { border-color:var(--violet); }

.erp-gpa-result {
    background:var(--card); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow-sm);
    padding:18px 22px; margin-top:0;
}
.erp-gpa-row { display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; }
.erp-gpa-card { background:var(--card2); border:1px solid var(--line2); border-radius:12px; padding:12px 24px; text-align:center; }
.erp-gpa-card b { font:800 32px/1 var(--num,"Bahnschrift",monospace); color:var(--erp-ink); font-variant-numeric:tabular-nums; }
.erp-gpa-card span { display:block; font-size:11px; color:var(--faint); margin-top:4px; font-weight:600; }
.erp-gpa-card.erp-bad b { color:var(--coral); }
.erp-gpa-card.erp-mid b { color:var(--amber); }
.erp-gpa-arrow { font-size:20px; color:var(--violet); font-weight:800; }
.erp-gpa-tip { margin-top:14px; text-align:center; font-size:12.5px; line-height:1.8; color:var(--sub); }

/* options */
.erp-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:12px; }
.erp-option {
    background:var(--card); border:1px solid var(--line); border-radius:var(--r-sm); padding:16px 18px; box-shadow:var(--shadow-sm);
}
.erp-option.erp-补考 { border-top:4px solid var(--ok); }
.erp-option.erp-重修 { border-top:4px solid var(--amber); }
.erp-option.erp-清考 { border-top:4px solid var(--coral); }
.erp-option b { display:block; font-size:15px; font-weight:800; color:var(--ink); }
.erp-option i { font-style:normal; font-size:11.5px; color:var(--faint); margin-top:4px; display:block; line-height:1.6; }
.erp-op-row { display:flex; gap:8px; margin-top:8px; font-size:11.5px; }
.erp-op-row span { font-weight:800; color:var(--erp-ink); flex:none; min-width:40px; }
.erp-op-row p { color:var(--sub); margin:0; line-height:1.6; }
.erp-op-strategy { list-style:none; padding:0; margin:10px 0 0; display:grid; gap:5px; }
.erp-op-strategy li {
    position:relative; padding-left:16px; font-size:11.5px; color:var(--sub); line-height:1.6;
}
.erp-op-strategy li::before {
    content:""; position:absolute; left:0; top:8px; width:6px; height:6px; border-radius:50%; background:var(--violet);
}

/* risk matrix */
.erp-risk { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:10px; }
.erp-risk-card {
    background:var(--card); border:1px solid var(--line); border-radius:var(--r-sm); padding:14px 16px; box-shadow:var(--shadow-sm); border-left:4px solid var(--ok);
}
.erp-risk-card b { display:block; font-size:13px; font-weight:700; color:var(--ink); }
.erp-risk-card span { font-size:10.5px; font-weight:700; margin-top:4px; display:inline-block; padding:2px 6px; border-radius:99px; background:var(--ok-soft, #d3f9d8); color:#2b8a3e; }
.erp-risk-card p { font-size:12px; color:var(--sub); margin-top:6px; line-height:1.6; }
.erp-risk-card i { font-style:normal; font-size:11px; color:var(--erp-ink); margin-top:6px; display:block; font-weight:600; }
.erp-risk-card.erp-risk-low { border-left-color:var(--ok); }
.erp-risk-card.erp-risk-mid { border-left-color:var(--amber); }
.erp-risk-card.erp-risk-high { border-left-color:var(--coral); }
.erp-risk-card.erp-risk-extreme { border-left-color:#c92a2a; }
.erp-risk-card.erp-risk-mid span { background:#fff3dc; color:#b76300; }
.erp-risk-card.erp-risk-high span { background:#ffe3e3; color:#c92a2a; }
.erp-risk-card.erp-risk-extreme span { background:#ffe3e3; color:#c92a2a; }
:root[data-theme="dark"] .erp-risk-card span { padding:2px 8px; }

/* scholar */
.erp-scholar { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:10px; }
.erp-scholar-card {
    background:var(--card); border:1px solid var(--line); border-radius:var(--r-sm); padding:14px 16px; box-shadow:var(--shadow-sm);
}
.erp-scholar-card b { display:block; font-size:13px; font-weight:700; color:var(--ink); }
.erp-scholar-req { font-size:11.5px; color:var(--violet-ink); font-weight:600; margin-top:6px; }
.erp-scholar-card i { font-style:normal; font-size:11px; color:var(--faint); margin-top:6px; line-height:1.6; display:block; }

/* time */
.erp-time { display:grid; gap:8px; }
.erp-time-row {
    display:grid; grid-template-columns:1fr 140px 1fr; gap:12px; align-items:center;
    padding:10px 14px; background:var(--card); border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow-sm); font-size:12.5px;
}
.erp-time-row b { color:var(--ink); font-weight:700; }
.erp-time-row span { color:var(--erp-ink); font-weight:700; text-align:center; }
.erp-time-row i { font-style:normal; color:var(--faint); line-height:1.6; }

@media (max-width:900px) { .erp-hero { grid-template-columns:1fr; } .erp-time-row { grid-template-columns:1fr; gap:4px; } }
