:root { --ink:#16211c; --muted:#5b6b63; --line:#dfe6e2; --brand:#0d6b4f; --brand-ink:#ffffff; --soft:#eef6f2; --bg:#ffffff; --card:#f7faf8; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --ink:#e6ede9; --muted:#9fb0a7; --line:#2a3530; --brand:#3cc28f; --brand-ink:#08130e; --soft:#16241e; --bg:#0e1512; --card:#131d18; }
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--bg); color:var(--ink); font:17px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
a { color:var(--brand); }
.wrap { max-width:960px; margin:0 auto; padding:0 16px; }
header.top { display:flex; justify-content:space-between; align-items:center; padding:18px 0; }
.logo { font-weight:800; color:var(--brand); text-decoration:none; letter-spacing:.01em; }
.hero { padding:40px 0 24px; }
.hero h1 { font-size:clamp(2rem, 5vw, 3rem); line-height:1.1; margin:0 0 16px; letter-spacing:-.02em; }
.hero p.lead { font-size:1.2rem; color:var(--muted); max-width:640px; margin:0 0 24px; }
.btn { display:inline-block; background:var(--brand); color:var(--brand-ink); padding:14px 22px; border-radius:10px; font-weight:700; text-decoration:none; }
.btn.secondary { background:transparent; color:var(--brand); border:2px solid var(--brand); }
.cta-row { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.fine { color:var(--muted); font-size:.9rem; }
section { padding:40px 0; border-top:1px solid var(--line); }
section h2 { font-size:1.6rem; margin:0 0 20px; letter-spacing:-.01em; }
.grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:16px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:18px; }
.card h3 { margin:0 0 6px; font-size:1.05rem; }
.card p { margin:0; color:var(--muted); font-size:.95rem; }
.step-num { display:inline-block; width:28px; height:28px; line-height:28px; text-align:center; border-radius:50%; background:var(--brand); color:var(--brand-ink); font-weight:700; margin-bottom:8px; }
.checks { columns:2 260px; padding-left:20px; margin:0; }
.checks li { break-inside:avoid; margin:4px 0; }
.price { font-size:2.4rem; font-weight:800; }
.price s { color:var(--muted); font-size:1.2rem; font-weight:500; margin-left:8px; }
details { border-bottom:1px solid var(--line); padding:12px 0; }
summary { cursor:pointer; font-weight:600; }
details p { color:var(--muted); margin:8px 0 0; }
pre { background:var(--soft); padding:12px 14px; border-radius:8px; overflow-x:auto; font-size:.85rem; }
code { background:var(--soft); padding:1px 5px; border-radius:4px; font-size:.88em; }
pre code { padding:0; background:none; }
footer { padding:32px 0 48px; color:var(--muted); font-size:.9rem; border-top:1px solid var(--line); }

/* --- self-serve app --- */
:root[data-theme="dark"] { --ink:#e6ede9; --muted:#9fb0a7; --line:#2a3530; --brand:#3cc28f; --brand-ink:#08130e; --soft:#16241e; --bg:#0e1512; --card:#131d18; }
header.top .fine a { color:var(--muted); }
section.first { border-top:none; padding-top:16px; }
h1 { font-size:clamp(1.7rem, 4.5vw, 2.4rem); line-height:1.15; letter-spacing:-.02em; margin:0 0 12px; }
.lead { font-size:1.1rem; color:var(--muted); margin:0 0 20px; }
.eyebrow { color:var(--muted); font-size:.9rem; margin:0 0 8px; }
.good { color:var(--brand); }
.drop { display:block; border:2px dashed var(--line); border-radius:14px; padding:36px 16px; text-align:center; cursor:pointer; background:var(--card); }
.drop.over, .drop:hover { border-color:var(--brand); }
.drop input { display:block; margin:12px auto 0; max-width:100%; }
.notice { background:var(--soft); border:1px solid var(--line); border-radius:12px; padding:4px 18px; margin:16px 0; }
.t-list { padding-left:22px; margin:8px 0 24px; }
.t-list li { margin:8px 0; }
.t-meta { color:var(--muted); font-size:.85rem; }
.t-amount { color:var(--muted); font-variant-numeric:tabular-nums; filter:blur(1.5px); user-select:none; }
.buy { border-color:var(--brand); margin:8px 0 16px; }
.buy h2 { margin-top:0; }
button.btn { border:0; cursor:pointer; font:inherit; font-weight:700; }
button.btn:disabled { opacity:.6; cursor:wait; }
button.btn.secondary { border:2px solid var(--brand); }
button.link { background:none; border:0; padding:0; color:var(--brand); text-decoration:underline; cursor:pointer; font:inherit; }
.price .fine { font-size:1rem; font-weight:400; }
.report h1 { font-size:1.6rem; }
.report h2 { font-size:1.2rem; margin:32px 0 8px; padding-top:14px; border-top:1px solid var(--line); }
.report table { border-collapse:collapse; width:100%; font-size:.92rem; display:block; overflow-x:auto; }
.report th, .report td { border-bottom:1px solid var(--line); padding:6px 10px; text-align:left; white-space:nowrap; }
.report td:nth-child(2) { white-space:normal; min-width:200px; }
.report th { background:var(--soft); }
.report li { margin:3px 0; overflow-wrap:anywhere; }
@media print {
  .no-print, footer { display:none !important; }
  body { background:#fff; color:#000; }
  .report table { display:table; }
}

/* --- EPR Help --- */
form.card h2 { font-size:1.1rem; margin:20px 0 10px; }
form.card h2:first-child { margin-top:0; }
.states { display:grid; grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)); gap:8px; }
.states label, label.inline { display:flex; gap:8px; align-items:center; }
.grid2 { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:12px; }
.grid2 label, .per-state label { display:flex; flex-direction:column; gap:4px; font-size:.95rem; }
.per-state { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:10px; margin-top:8px; }
.per-state p { grid-column:1 / -1; margin:0; }
input[type=text], input:not([type]), input[inputmode] { font:inherit; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:var(--bg); color:var(--ink); }
.summary { border-radius:12px; padding:4px 18px; margin:24px 0 12px; border:1px solid var(--line); }
.summary.warn { background:#fff6d8; border-color:#f0d77a; color:#3a3000; }
.summary.good { background:var(--soft); }
.state-card { border:1px solid var(--line); border-left:6px solid var(--line); border-radius:12px; padding:14px 18px; margin:12px 0; background:var(--card); }
.state-card.bad { border-left-color:#c0392b; }
.state-card.warn { border-left-color:#d4a017; }
.state-card.good { border-left-color:var(--brand); }
.card-head { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.card-head h3 { margin:0; }
.state-card h4 { margin:12px 0 4px; font-size:.95rem; }
.state-card ul { margin:0; padding-left:20px; }
.pill { font-size:.8rem; font-weight:700; padding:4px 10px; border-radius:999px; border:1px solid currentColor; }
.pill.bad { color:#c0392b; } .pill.warn { color:#9a7400; } .pill.good { color:var(--brand); }
.cta-box { border:2px solid var(--brand); border-radius:12px; padding:4px 18px; margin:20px 0; }
@media (prefers-color-scheme: dark) { .summary.warn { background:#3a3210; color:#f3e7b3; border-color:#6b5a1a; } }
[hidden] { display:none !important; }
