:root{--bg:#f5f4ef;--ink:#20251f;--muted:#667064;--brand:#375c42;--gold:#b0873a;--card:#fff;--bad:#a63d40;--warn:#9a6700;--line:#dde2da}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,"Noto Sans TC",sans-serif;line-height:1.6}a{color:var(--brand)}nav{background:#1d3023;color:#fff;padding:0 5%;display:flex;align-items:center;gap:22px;min-height:64px}nav strong{font-size:18px;margin-right:auto}nav a{color:#fff;text-decoration:none}.wrap{width:min(1180px,92%);margin:34px auto}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 5px 18px #26372b0b}.metric{font-size:34px;font-weight:750;color:var(--brand)}h1{font-size:30px;margin:0 0 20px}h2{font-size:20px}.muted{color:var(--muted)}form{display:grid;gap:14px}label{font-weight:650}input,textarea,select{width:100%;font:inherit;padding:10px 12px;border:1px solid #bcc7bb;border-radius:8px;background:#fff}textarea{min-height:260px}.btn,button{display:inline-block;width:auto;border:0;border-radius:8px;background:var(--brand);color:#fff;padding:10px 17px;font-weight:700;text-decoration:none;cursor:pointer}.btn.secondary{background:#59665d}.btn.danger{background:var(--bad)}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:11px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#edf1eb}.tag{display:inline-block;padding:2px 8px;border-radius:99px;background:#e4ece5;font-size:13px}.tag.bad{background:#f7dddd;color:var(--bad)}.tag.warn{background:#fff0ca;color:var(--warn)}.notice{padding:12px 16px;border-radius:8px;background:#e5f0e7;margin-bottom:18px}.notice.error{background:#f9dddd;color:#84292b}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.login{max-width:430px;margin:9vh auto}.score{font-size:24px;font-weight:800}.score.good{color:#287a43}.score.mid{color:#996500}.score.bad{color:#a63d40}details{border-top:1px solid var(--line);padding-top:14px}summary{cursor:pointer}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f1f3ef;border-radius:8px;padding:12px;font-size:13px}@media(max-width:720px){nav{flex-wrap:wrap;padding:12px 4%}.wrap{width:94%;overflow-x:auto}h1{font-size:25px}}
