:root { --ink:#1d2733; --muted:#5d6978; --line:#dde2e8; --bg:#f5f6f4; --card:#fff; --accent:#2f6b4f; --accent2:#e6f1ea; }
* { box-sizing: border-box; }
body { margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; color:var(--ink); background:var(--bg); line-height:1.6; }
.top { background:var(--accent); color:#fff; padding:16px 20px; }
.top .in { max-width:760px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
.top a { color:#fff; text-decoration:none; }
.top .brand { font-weight:700; font-size:1.15rem; }
.top nav a { margin-left:14px; font-size:.95rem; opacity:.92; }
.top nav a:hover { text-decoration:underline; }
main { max-width:760px; margin:0 auto; padding:24px 16px 56px; }
h1 { font-size:1.65rem; line-height:1.25; margin:6px 0 8px; }
h2 { font-size:1.2rem; margin:30px 0 8px; }
p.lead { color:var(--muted); margin:0 0 20px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:20px; margin-bottom:18px; }
.grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.full { grid-column:1 / -1; }
label { display:block; font-weight:600; font-size:.95rem; margin-bottom:4px; }
input[type=number], select { width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:8px; font-size:1rem; background:#fff; }
input:focus, select:focus { outline:2px solid var(--accent); border-color:var(--accent); }
.check { display:flex; align-items:center; gap:8px; font-weight:600; }
.check input { width:auto; }
.hint { font-size:.85rem; color:var(--muted); margin:3px 0 0; }
.result { background:var(--accent2); border:1px solid #bcd8c7; border-radius:10px; padding:18px 20px; }
.big { font-size:2rem; font-weight:700; }
.small { color:var(--muted); font-size:.92rem; margin:4px 0 8px; }
.detail { margin:8px 0 0; padding-left:20px; font-size:.95rem; }
.err { color:#a3261b; min-height:1.2em; font-size:.92rem; margin-bottom:8px; }
.tools { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px; }
.tool { display:block; text-decoration:none; color:inherit; background:var(--card); border:1px solid var(--line); border-radius:10px; padding:18px; }
.tool:hover { border-color:var(--accent); }
.tool strong { display:block; margin-bottom:4px; }
.tool span { color:var(--muted); font-size:.92rem; }
ul.plain li { margin:5px 0; }
footer { border-top:1px solid var(--line); padding:20px 16px; font-size:.85rem; color:var(--muted); text-align:center; }
@media (max-width:560px) { .grid { grid-template-columns:1fr; } }
