:root {
  --bg: #0f1117; --panel: #1a1e29; --text: #e8eaf0; --muted: #9aa3b5;
  --accent: #4f8cff; --accent-2: #34c98e; --border: #2a3040; --danger: #ff6b6b;
  --radius: 10px; --maxw: 760px;
}
@media (prefers-color-scheme: light) {
  :root { --bg:#f7f8fa; --panel:#ffffff; --text:#1b2233; --muted:#5a6478;
          --accent:#2f6fe0; --accent-2:#189a6c; --border:#dde2ec; }
}
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;
  line-height:1.7; }
.wrap { max-width:var(--maxw); margin:0 auto; padding:24px 16px 64px; }
h1 { font-size:1.5rem; margin:0.5em 0; }
.card { background:var(--panel); border:1px solid var(--border);
  border-radius:var(--radius); padding:20px; margin:16px 0; }
.btn { display:inline-block; background:var(--accent); color:#fff; border:none;
  border-radius:8px; padding:10px 18px; font-size:1rem; cursor:pointer;
  text-decoration:none; }
.btn.secondary { background:var(--panel); color:var(--accent);
  border:1px solid var(--accent); }
.field { display:block; margin:12px 0; }
.field span { display:block; font-size:0.85rem; color:var(--muted); margin-bottom:4px; }
.field input, .field select { width:100%; padding:8px 10px; border-radius:8px;
  border:1px solid var(--border); background:var(--bg); color:var(--text); font-size:1rem; }
.result-table { width:100%; border-collapse:collapse; }
.result-table th, .result-table td { border-bottom:1px solid var(--border);
  padding:8px 6px; text-align:right; }
.result-table th:first-child, .result-table td:first-child { text-align:left; }
.disclaimer { font-size:0.8rem; color:var(--muted); }
.tool-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.tool-grid a { text-decoration:none; color:inherit; }
.site-footer { margin-top:48px; padding-top:16px; border-top:1px solid var(--border);
  font-size:0.85rem; color:var(--muted); display:flex; gap:16px; flex-wrap:wrap; }
.site-footer a { color:var(--accent); }
