  :root{
    --sheet:#F2F3F1;
    --card:#FFFFFF;
    --ink:#14202B;
    --steel:#5B6B76;
    --rule:#C3C9CC;
    --rule-2:#E0E4E4;
    --navy:#003561;
    --laser:#004884;
    --laser-soft:#E6EEF5;
    --stamp:#9B1C31;
    --sans:"Barlow",ui-sans-serif,system-ui,sans-serif;
    --cond:"Barlow Condensed","Barlow",ui-sans-serif,system-ui,sans-serif;
  }

  *{box-sizing:border-box;}
  html,body{overflow-x:hidden;}
  body{
    margin:0;background:var(--sheet);color:var(--ink);
    font-family:var(--sans);font-size:16.5px;line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{margin:0;font-weight:600;}


  /* ── cabeçalho ──────────────────────────────────────── */
  header{
    background:var(--navy);padding-top:env(safe-area-inset-top,0px);
  }
  .head{
    max-width:1120px;margin:0 auto;padding:16px 20px;
    display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  }
  .mark{display:block;height:30px;width:auto;max-width:100%;}
  .head p{margin:0;color:#BFD3E6;font-size:15px;}

  /* ── grade principal ────────────────────────────────── */
  .grid{
    max-width:1120px;margin:0 auto;padding:30px 20px 140px;
    display:grid;grid-template-columns:minmax(0,1fr) 316px;gap:40px;align-items:start;
  }
  @media (max-width:900px){
    .grid{grid-template-columns:minmax(0,1fr);gap:0;padding-bottom:104px;}
  }

  /* ── passo ──────────────────────────────────────────── */
  .stepno{
    font-family:var(--cond);font-size:15px;font-weight:600;
    color:var(--steel);letter-spacing:.06em;margin-bottom:6px;
  }
  .q{
    font-family:var(--cond);font-size:31px;font-weight:600;
    line-height:1.1;letter-spacing:-.005em;margin-bottom:4px;
  }
  .sub{color:var(--steel);font-size:15.5px;margin:0 0 22px;max-width:58ch;}

  fieldset{border:0;padding:0;margin:0 0 26px;}
  legend{
    font-family:var(--cond);font-size:18px;font-weight:600;
    padding:0;margin-bottom:9px;
  }
  .hint{color:var(--steel);font-size:14.5px;margin:-4px 0 10px;}

  /* ── opções ─────────────────────────────────────────── */
  .opts{display:grid;gap:8px;}
  .opts.two{grid-template-columns:1fr 1fr;}
  @media (max-width:520px){.opts.two{grid-template-columns:1fr;}}

  .opt{
    position:relative;display:flex;align-items:center;gap:11px;
    background:var(--card);border:1px solid var(--rule);
    padding:13px 15px;cursor:pointer;
    transition:border-color .12s,background .12s;
  }
  .opt:hover{border-color:var(--steel);}
  .opt input{
    appearance:none;-webkit-appearance:none;margin:0;flex:0 0 auto;
    width:17px;height:17px;border:1.5px solid var(--steel);border-radius:50%;
    background:var(--card);cursor:pointer;
  }
  .opt input[type=checkbox]{border-radius:2px;}
  .opt input:checked{border-color:var(--laser);border-width:5px;}
  .opt input[type=checkbox]:checked{
    border-width:1.5px;background:var(--laser);border-color:var(--laser);
  }
  .opt:has(input:checked){border-color:var(--laser);background:var(--laser-soft);}
  .opt:has(input:focus-visible){outline:2px solid var(--laser);outline-offset:2px;}
  .opt .t{font-size:16px;}
  .opt .d{display:block;color:var(--steel);font-size:14px;line-height:1.35;}

  /* ── campos de texto ────────────────────────────────── */
  .row{display:grid;gap:14px;grid-template-columns:1fr 1fr;}
  @media (max-width:560px){.row{grid-template-columns:1fr;}}
  .fld{display:block;margin-bottom:14px;}
  .fld > span{
    display:block;font-family:var(--cond);font-size:16px;font-weight:600;margin-bottom:5px;
  }
  input[type=text],input[type=tel],input[type=email],select,textarea{
    width:100%;font-family:var(--sans);font-size:16px;color:var(--ink);
    background:var(--card);border:1px solid var(--rule);border-radius:0;
    padding:12px 13px;
  }
  select{appearance:none;background-image:none;}
  textarea{min-height:104px;resize:vertical;}
  input:focus,select:focus,textarea:focus{
    outline:none;border-color:var(--laser);box-shadow:inset 0 0 0 1px var(--laser);
  }
  .file{
    border:1.5px dashed var(--rule);background:var(--card);
    padding:22px 18px;text-align:center;
  }
  .file p{margin:0 0 10px;color:var(--steel);font-size:15px;}
  .file input{display:block;margin:0 auto;font-size:14.5px;max-width:100%;}
  .files{margin:11px 0 0;padding:0;list-style:none;font-size:14.5px;color:var(--steel);}
  .files li{border-top:1px solid var(--rule-2);padding:6px 0;}

  /* ── botões ─────────────────────────────────────────── */
  .nav{display:flex;gap:11px;align-items:center;margin-top:28px;flex-wrap:wrap;}
  button{font-family:var(--sans);font-size:16px;cursor:pointer;border-radius:0;}
  .go{
    background:var(--laser);color:#fff;border:1px solid var(--laser);
    font-weight:600;padding:13px 28px;
  }
  .go:hover{background:var(--navy);border-color:var(--navy);}
  a.go{display:inline-block;text-decoration:none;font-size:16px;}
  .out a.go{color:#fff;}
  .back{background:none;border:0;color:var(--steel);padding:13px 4px;text-decoration:underline;}
  button:focus-visible{outline:2px solid var(--laser);outline-offset:2px;}
  .err{color:var(--stamp);font-size:14.5px;margin:12px 0 0;min-height:1px;}

  /* ── carimbo ────────────────────────────────────────── */
  .stamp{
    background:var(--card);border:1px solid var(--ink);
    position:sticky;top:24px;
  }
  .stamp h2{
    font-family:var(--cond);font-size:15px;font-weight:700;letter-spacing:.1em;
    padding:9px 13px;border-bottom:1px solid var(--ink);
  }
  .stamp dl{margin:0;}
  .cell{
    display:flex;justify-content:space-between;gap:12px;
    padding:8px 13px;border-bottom:1px solid var(--rule-2);
    font-family:var(--cond);font-size:15.5px;letter-spacing:.045em;
  }
  .cell:last-child{border-bottom:0;}
  .cell dt{color:var(--steel);font-weight:600;}
  .cell dd{margin:0;text-align:right;color:var(--rule);font-weight:600;}
  .cell dd.on{color:var(--ink);}
  .cell dd:empty::after{
    content:"";display:inline-block;width:14px;
    border-top:1.5px solid var(--rule);vertical-align:middle;
  }
  .prog{
    border-top:1px solid var(--ink);padding:9px 13px;
    font-family:var(--cond);font-size:14.5px;color:var(--steel);letter-spacing:.05em;
  }
  .bar{height:3px;background:var(--rule-2);margin-top:7px;}
  .bar i{display:block;height:100%;background:var(--laser);width:25%;transition:width .3s ease;}

  .stamp .line{display:none;}

  /* carimbo vira faixa no celular */
  @media (max-width:900px){
    .stamp{
      position:fixed;left:0;right:0;bottom:0;top:auto;border:0;
      border-top:1px solid var(--ink);z-index:20;
      padding-bottom:env(safe-area-inset-bottom,0px);
    }
    .stamp h2,.stamp dl{display:none;}
    .prog{border-top:0;padding:10px 20px;}
    .stamp .line{
      display:block;padding:9px 20px 0;font-family:var(--cond);
      font-size:15.5px;letter-spacing:.05em;color:var(--ink);
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    }
  }

  /* ── telas de saída ─────────────────────────────────── */
  .out{max-width:640px;}
  .seal{
    display:block;color:var(--stamp);
    font-family:var(--cond);font-weight:700;font-size:35px;letter-spacing:.01em;
    line-height:1.1;margin-bottom:10px;
  }
  .out h2{font-family:var(--cond);font-size:32px;line-height:1.12;margin-bottom:12px;}
  .out p{color:var(--steel);max-width:60ch;margin:0 0 14px;}
  .out a{color:var(--laser);}
  .scope{
    background:var(--card);border:1px solid var(--rule);padding:16px 18px;margin-top:22px;
  }
  .scope h3{font-family:var(--cond);font-size:17px;margin-bottom:7px;}
  .scope ul{margin:0;padding-left:19px;color:var(--steel);font-size:15.5px;}
  .scope li{margin-bottom:3px;}

  .ok-no{
    font-family:var(--cond);font-size:44px;font-weight:700;letter-spacing:.02em;
    line-height:1;margin-bottom:6px;
  }
  .ok-lb{font-family:var(--cond);font-size:15px;color:var(--steel);letter-spacing:.09em;margin-bottom:24px;}


  [hidden]{display:none!important;}
  .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
  @media (prefers-reduced-motion:reduce){*{transition:none!important;}}
