:root{--ink:#1a1d21;--muted:#5b6470;--line:#dde2e8;--accent:#0b5fff;--bg:#f7f8fa;--card:#fff;--good:#137333;--ok:#b06000}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6}
.wrap{max-width:860px;margin:0 auto;padding:24px 18px 48px}
header.site{padding:10px 0 4px}
header.site a.brand{font-weight:700;color:var(--ink);text-decoration:none;font-size:1.05rem}
nav.top{margin:8px 0 0;font-size:.95rem}
nav.top a{margin-right:14px;color:var(--accent);text-decoration:none}
nav.top a:hover{text-decoration:underline}
h1{font-size:2rem;line-height:1.2;margin:18px 0 8px}
h2{font-size:1.3rem;margin:28px 0 8px}
p.lede{font-size:1.08rem;color:var(--muted);margin:0 0 18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;margin:16px 0}
label{display:block;font-weight:600;margin:10px 0 4px}
input[type=number]{width:100%;padding:10px 12px;font-size:1rem;border:1px solid var(--line);border-radius:8px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.grid{grid-template-columns:1fr}}
table{width:100%;border-collapse:collapse;margin:12px 0;background:var(--card)}
th,td{border:1px solid var(--line);padding:9px 10px;text-align:left;font-size:.96rem}
th{background:#eef2f7}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.85rem;font-weight:600}
.badge.excellent{background:#e6f4ea;color:var(--good)}
.badge.good{background:#fef7e0;color:var(--ok)}
.badge.acceptable{background:#f1f3f4;color:#3c4043}
.result{font-size:1.05rem}
.note{background:#eef2f7;border-radius:8px;padding:12px 14px}
footer{margin-top:36px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}
footer a{color:var(--accent);text-decoration:none}
ul.links li{margin:6px 0}
a{color:var(--accent)}
