:root { --ink:#0f172a; --muted:#475569; --accent:#0ea5e9; --bg:#f8fafc; --card:#fff; --border:#e2e8f0; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; color:var(--ink); background:var(--bg); line-height:1.5; }
header { background:#0f172a; color:#fff; padding:1.25rem 1.5rem; }
header .wrap, main .wrap, footer .wrap { max-width:920px; margin:0 auto; }
header h1, header .brand { margin:0; font-size:1.35rem; letter-spacing:-0.02em; color:#fff; text-decoration:none; font-weight:700; }
header p { margin:.35rem 0 0; color:#94a3b8; font-size:.9rem; }
nav a { color:#bae6fd; margin-right:1rem; font-size:.85rem; text-decoration:none; }
.badge { display:inline-block; background:#0369a1; color:#e0f2fe; font-size:.75rem; padding:.2rem .55rem; border-radius:999px; margin-top:.75rem; }
main { padding:2rem 1.5rem 3rem; }
h1 { font-size:1.6rem; margin:0 0 .75rem; }
h2 { font-size:1.35rem; margin:1.25rem 0 .75rem; }
.hero, .card { background:var(--card); border:1px solid var(--border); border-radius:12px; padding:1.5rem; margin-bottom:1.5rem; }
.hero p.lead { font-size:1.05rem; color:var(--muted); margin:0 0 1rem; }
.cta { display:inline-block; background:var(--accent); color:#fff; text-decoration:none; font-weight:600; padding:.7rem 1.1rem; border-radius:8px; }
.cta.secondary { background:#fff; color:var(--ink); border:1px solid var(--border); margin-left:.5rem; }
.grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); margin:1.5rem 0; }
.card h3 { margin:0 0 .4rem; font-size:1.05rem; }
.card p { margin:0; color:var(--muted); font-size:.95rem; }
.price { font-size:1.75rem; font-weight:700; margin:.25rem 0; }
.price span { font-size:.95rem; font-weight:500; color:var(--muted); }
.notice { background:#fffbeb; border:1px solid #fcd34d; border-radius:10px; padding:1rem 1.1rem; font-size:.9rem; color:#78350f; margin:1.5rem 0; }
.notice a { color:#92400e; }
ul.clean { margin:.5rem 0 0; padding-left:1.1rem; color:var(--muted); }
footer { border-top:1px solid var(--border); padding:1.5rem; font-size:.85rem; color:var(--muted); }
footer strong { color:var(--ink); }
footer a { color:var(--muted); }
.lookup { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin-top:1rem; }
.lookup input { flex:1; min-width:160px; padding:.65rem .8rem; border:1px solid var(--border); border-radius:8px; font-size:1rem; }
.lookup button { background:var(--ink); color:#fff; border:0; border-radius:8px; padding:.65rem 1rem; font-weight:600; cursor:pointer; }
#dueResult { margin-top:.75rem; font-weight:600; min-height:1.4em; }
.faq dt { font-weight:600; margin-top:.85rem; }
.faq dd { margin:.25rem 0 0; color:var(--muted); }
.muted { color:var(--muted); font-size:.9rem; }
.sources { font-size:.85rem; color:var(--muted); }
.sources a { color:#0369a1; }
