:root { color-scheme: light dark; --fg: #1d2421; --muted: #5a6560; --bg: #fbfbf8; --card: #ffffff;
        --line: #d9ddd6; --accent: #1f6b4f; --accent-fg: #ffffff; --note: #fff6dc; }
@media (prefers-color-scheme: dark) {
  :root { --fg: #e6ebe7; --muted: #a3ada8; --bg: #141816; --card: #1c211f; --line: #333b37;
          --accent: #5fbf95; --accent-fg: #0d1210; --note: #3a3320; }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--fg);
       font: 16px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
header, main, footer { max-width: 60rem; margin: 0 auto; padding: 0 16px; }
header { padding-top: 1.5rem; }
.brand { margin: 0; font-weight: 600; }
.brand a { color: var(--accent); text-decoration: none; }
h1 { font-size: 1.8rem; line-height: 1.25; margin: .4rem 0 1rem; }
h2 { font-size: 1.35rem; margin: 2rem 0 .5rem; }
h3 { font-size: 1.1rem; margin: 1rem 0 .4rem; }
h4 { font-size: 1rem; margin: 1rem 0 .3rem; }
a { color: var(--accent); }
.lead { font-size: 1.08rem; }
.small { font-size: .9rem; color: var(--muted); }
form.search { display: grid; grid-template-columns: 1fr 1fr auto; gap: .5rem 1rem; align-items: end;
              background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 1rem; }
form.search label { grid-row: 1; font-weight: 600; font-size: .9rem; }
form.search select { grid-row: 2; }
form.search button { grid-row: 2; }
select, input, button { font: inherit; padding: .5rem .6rem; border-radius: 6px;
                        border: 1px solid var(--line); background: var(--card); color: var(--fg); max-width: 100%; }
button { background: var(--accent); color: var(--accent-fg); border-color: var(--accent); cursor: pointer; font-weight: 600; }
button[disabled] { opacity: .6; cursor: default; }
button.link { background: none; color: var(--accent); border: none; padding: 0; text-decoration: underline; font-weight: normal; }
@media (max-width: 40rem) {
  form.search { grid-template-columns: 1fr; }
  form.search label, form.search select, form.search button { grid-row: auto; }
}
[data-gf-plan-note] { background: var(--note); padding: .6rem .8rem; border-radius: 6px; }
.profile { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: .4rem 1rem 1rem; margin: 1rem 0; }
.profile dl { display: grid; grid-template-columns: max-content 1fr; gap: .2rem 1rem; margin: .5rem 0; }
.profile dt { color: var(--muted); }
.profile dd { margin: 0; overflow-wrap: anywhere; }
.preselected { font-weight: 600; }
.table { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; font-size: .92rem; }
th, td { text-align: left; vertical-align: top; padding: .35rem .5rem; border-bottom: 1px solid var(--line); }
td.num { text-align: right; white-space: nowrap; }
ol li { margin: .4rem 0; }
.more { font-weight: 600; }
.plan { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: .2rem 1rem 1rem; margin: 2rem 0; }
.plan .columns { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 40rem) { .plan .columns { grid-template-columns: 1fr; } }
.price { font-size: 1.15rem; font-weight: 600; }
.resend form { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
footer { margin-top: 3rem; padding-bottom: 2rem; border-top: 1px solid var(--line); font-size: .88rem; color: var(--muted); }
@media (max-width: 40rem) {
  .profile dl { grid-template-columns: 1fr; gap: 0; }
  .profile dt { margin-top: .4rem; font-size: .88rem; }
}
