/* Sem esta regra, o display:flex/grid dos componentes vence o atributo hidden
   e os passos do formulário aparecem todos ao mesmo tempo. */
[hidden]{display:none!important}

/* Layout: uma coluna de formulário para tablet e celular na mesa do estande; resumo do plano sempre visível antes dos dados do cliente. */
:root{
  --bg:#f3f7f4; --surface:#ffffff; --fg:#13241a; --muted:#536559; --line:#d3e1d7;
  --accent:#1f8f45; --accent-ink:#ffffff; --accent-soft:#e2f5e8; --brand:#42cb64;
  --warn:#8a5200; --warn-soft:#fdf2df; --ok:#1f7a3e;
  --display:"Nunito",ui-rounded,"Segoe UI",system-ui,sans-serif;
  --body:"Nunito","Segoe UI",system-ui,sans-serif;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#0f1712; --surface:#17221b; --fg:#e7f1ea; --muted:#9fb6a7; --line:#2b3b31;
  --accent:#4fd474; --accent-ink:#0c1a11; --accent-soft:#183323; --brand:#4fd474;
  --warn:#f2bd62; --warn-soft:#33270f; --ok:#6fdc8f; color-scheme:dark } }
:root[data-theme="dark"]{
  --bg:#0f1712; --surface:#17221b; --fg:#e7f1ea; --muted:#9fb6a7; --line:#2b3b31;
  --accent:#4fd474; --accent-ink:#0c1a11; --accent-soft:#183323; --brand:#4fd474;
  --warn:#f2bd62; --warn-soft:#33270f; --ok:#6fdc8f; color-scheme:dark }
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.5}
.wrap{max-width:760px;margin:0 auto;padding-block:24px 56px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:20px}
header{display:flex;flex-direction:column;gap:4px}
.brand{font-family:var(--display);font-weight:800;font-size:15px;color:var(--brand);letter-spacing:.02em}
.brand span{font-weight:600}
h1{font-family:var(--display);font-size:28px;line-height:1.15;margin:0;font-weight:800;text-wrap:balance}
.sub{color:var(--muted);margin:0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:16px;min-width:0}
.card h2{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:800}
label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14px;min-width:0}
input,select{font:inherit;font-weight:400;font-size:16px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);width:100%;box-sizing:border-box}
input:focus-visible,select:focus-visible,button:focus-visible,.opt:focus-within{outline:3px solid var(--brand);outline-offset:2px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.opt{position:relative;border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;cursor:pointer;background:var(--bg)}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt b{font-size:17px}
.opt small{color:var(--muted);font-variant-numeric:tabular-nums}
.opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.summary{display:grid;grid-template-columns:1fr auto;gap:8px 16px;margin:0;font-variant-numeric:tabular-nums}
.summary dt{color:var(--muted)}
.summary dd{margin:0;text-align:right;font-weight:700}
.summary .big{font-size:20px;color:var(--accent)}
.err{color:var(--warn);font-size:14px;font-weight:600}
.notice{background:var(--warn-soft);color:var(--warn);border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600}
button{font:inherit;font-weight:800;font-size:17px;border:0;border-radius:12px;padding:14px 18px;cursor:pointer}
.primary{background:var(--accent);color:var(--accent-ink)}
.ghost{background:transparent;color:var(--fg);border:1px solid var(--line)}
.row{display:flex;gap:10px;flex-wrap:wrap}
.row > button{flex:1 1 200px}
.ok{color:var(--ok);font-weight:700}
.board{display:flex;flex-direction:column;gap:8px}
.score{display:flex;gap:8px;flex-wrap:wrap}
.chip{background:var(--accent-soft);color:var(--fg);border-radius:999px;padding:6px 12px;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}
.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:14px}
.list li span:last-child{color:var(--muted);text-align:right;white-space:nowrap}
.empty{color:var(--muted);font-size:14px}
@media (prefers-reduced-motion: no-preference){ .opt{transition:background .15s, border-color .15s} }

/* --- acréscimos do serviço (fora do protótipo) --- */
a.primary,a.ghost{display:flex;align-items:center;justify-content:center;text-decoration:none;font-weight:800;font-size:17px;border-radius:12px;padding:14px 18px;flex:1 1 200px}
.tag{display:inline-block;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:800;margin-left:6px;background:var(--line);color:var(--fg)}
.tag.assinado{background:var(--accent-soft);color:var(--ok)}
.tag.falha_envio,.tag.verificar,.tag.cancelado{background:var(--warn-soft);color:var(--warn)}
.rank{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.rank li{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;background:var(--bg);border-radius:12px;padding:12px 16px}
.rank .pos{font-family:var(--display);font-weight:800;font-size:26px;color:var(--accent);text-align:center}
.rank .nome{font-weight:800;font-size:20px}
.rank .meta{color:var(--muted);font-size:14px}
.rank .n{font-family:var(--display);font-weight:800;font-size:34px;font-variant-numeric:tabular-nums}
.tv .wrap{max-width:1100px}
.tv h1{font-size:40px}
table.adm{width:100%;border-collapse:collapse;font-size:13px}
table.adm td,table.adm th{text-align:left;padding:8px 6px;border-top:1px solid var(--line);vertical-align:top}
table.adm button{font-size:13px;padding:6px 10px;border-radius:8px}
