:root { --ink: #1d2733; --muted: #5b6776; --line: #d9dee5; --accent: #0b6e4f; --accent-ink: #fff; --bg: #fbfaf7; --note: #fff7e0; }
* { box-sizing: border-box; }
body { margin: 0; font: 17px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: var(--ink); background: var(--bg); }
main, header.site, footer.site { max-width: 46rem; margin: 0 auto; padding: 0 1rem; }
header.site { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .5rem; padding-top: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
header.site nav a { margin-left: 1rem; }
.brand { font-weight: 700; text-decoration: none; color: var(--ink); }
a { color: var(--accent); }
h1 { font-size: 2rem; line-height: 1.2; margin: 2rem 0 1rem; }
h2 { font-size: 1.45rem; margin-top: 2rem; }
.facts { padding-left: 1.2rem; color: var(--muted); }
fieldset.question { border: 1px solid var(--line); border-radius: 8px; margin: 0 0 1rem; padding: .75rem 1rem; background: #fff; }
legend { font-weight: 600; padding: 0 .3rem; }
label.option { display: block; padding: .3rem 0; cursor: pointer; }
button, .button { font: inherit; border: 1px solid var(--accent); background: #fff; color: var(--accent); border-radius: 6px; padding: .5rem 1rem; cursor: pointer; text-decoration: none; display: inline-block; }
button.primary, .button { background: var(--accent); color: var(--accent-ink); }
button:disabled { opacity: .55; cursor: default; }
button.link { border: none; background: none; text-decoration: underline; }
.tools button { margin-right: .5rem; }
.profile { color: var(--muted); }
.checked, .disclaimer, footer.site { color: var(--muted); font-size: .9rem; }
.phase h3 { border-bottom: 2px solid var(--accent); padding-bottom: .2rem; margin-top: 2rem; }
.step { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: .25rem 1rem .5rem; margin: 1rem 0; break-inside: avoid; }
.step h4 { font-size: 1.1rem; margin: .75rem 0 .25rem; display: flex; gap: .5rem; align-items: baseline; }
.box { display: inline-block; width: .9em; height: .9em; border: 2px solid var(--ink); border-radius: 2px; flex: none; }
.deadline { background: var(--note); padding: .3rem .5rem; border-radius: 4px; }
.sources { font-size: .9rem; }
.pack-cta { border: 2px solid var(--accent); border-radius: 8px; padding: .5rem 1rem 1rem; margin: 2rem 0; background: #fff; }
.warn { background: var(--note); padding: .5rem; }
table { border-collapse: collapse; width: 100%; font-size: .95rem; }
th, td { border-bottom: 1px solid var(--line); text-align: left; padding: .4rem .3rem; vertical-align: top; }
.price { font-size: 1.6rem; font-weight: 700; }
.soon { color: var(--muted); }
footer.site { border-top: 1px solid var(--line); margin-top: 3rem; padding-top: 1rem; padding-bottom: 2rem; }
@media print {
  body { background: #fff; font-size: 11pt; }
  .no-print, header.site nav, footer.site { display: none !important; }
  .step { border: none; border-bottom: 1px solid #999; border-radius: 0; padding: 0 0 .4rem; }
  .sources a::after { content: " (" attr(href) ")"; font-size: 8pt; word-break: break-all; }
  #plan[hidden] { display: none; }
}
.lede { font-size: 1.1rem; }
.answer { background: #fff; border-left: 4px solid var(--accent); padding: .1rem 1rem; margin: 1.5rem 0; }
.plan-cta { background: var(--note); border-radius: 8px; padding: .5rem 1rem; margin: 2rem 0; }
.guides li, .phases li { margin-bottom: .5rem; }
.guide table th { width: 30%; }
.button.disabled { opacity: .55; cursor: default; }
