.narrow{width:min(100% - 2rem,42rem)}
.start{padding:2.5rem 0 4rem}
.start h1{font-size:clamp(2rem,7vw,3rem)}
.start h2{font-size:clamp(1.6rem,5vw,2.1rem);margin-bottom:1.4rem}
.start h3{margin:1.8rem 0 .6rem;font-size:1.2rem}
.start .lead{margin-top:1rem}
.progress{margin:2rem 0 1.6rem}
.bar{height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden}
.bar i{display:block;height:100%;width:12.5%;background:var(--accent);border-radius:4px;transition:width .4s var(--ease)}
.progress p{margin:.5rem 0 0;color:var(--muted);font-size:.95rem}
.step[hidden],.done[hidden]{display:none}
.step{display:grid;gap:1.3rem;padding:0}
.step h2{margin-bottom:.2rem}
fieldset.field{border:0;padding:0;margin:0;min-width:0}
legend{font-weight:600;padding:0;margin-bottom:.6rem}
.choices{display:grid;gap:.6rem}
.choices label{display:flex;align-items:flex-start;gap:.75rem;min-height:52px;padding:.75rem 1rem;background:var(--bg);border:1.5px solid #3a485b;border-radius:10px;font-weight:500;cursor:pointer}
.choices label:hover{border-color:var(--muted)}
.choices input{width:22px;min-height:22px;height:22px;flex:none;margin:.1rem 0 0;accent-color:var(--accent)}
.choices label:has(input:checked){border-color:var(--accent);background:var(--surface-2)}
.hint{margin:.4rem 0 0;color:var(--muted);font-size:.95rem}
.nav-row{display:flex;gap:.8rem;margin-top:1.8rem}
.nav-row .btn{flex:1}
.nav-row #back{flex:0 0 auto}
#form-err{margin-top:1rem}
.upload{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:.9rem 1.7rem;background:var(--surface-2);border:2px dashed var(--muted);border-radius:12px;cursor:pointer;font-weight:600;width:100%}
.upload:hover{border-color:var(--accent)}
#photos{position:absolute;left:-9999px}
#photos:focus-visible + .hint,#photos:focus-visible{outline:3px solid var(--ok)}
.files{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.5rem}
.files li{display:flex;justify-content:space-between;gap:1rem;padding:.6rem .9rem;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:.95rem;word-break:break-all}
.files .ok{color:var(--ok);flex:none}
.files .bad{color:var(--bad);flex:none}
.review{display:grid;gap:.2rem;margin:0 0 1rem;padding:1rem 1.2rem;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.review dt{color:var(--muted);font-size:.85rem;margin-top:.7rem}
.review dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.contract{max-height:18rem;overflow:auto;padding:1rem 1.2rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;font-size:.98rem}
.contract p{margin:0 0 .8rem}
.agree{display:flex;align-items:flex-start;gap:.75rem;margin:1.4rem 0 1rem;font-weight:500}
.agree input{width:22px;min-height:22px;height:22px;flex:none;margin-top:.1rem;accent-color:var(--accent)}
.done{display:grid;gap:1.2rem}
.pay-btn{text-align:center}
.resume{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--line);color:var(--muted)}
.resume input{font-size:.9rem}
@media print{
  header,footer,.progress,#intro,#nav-row,.resume,#print,.hint{display:none!important}
  body{background:#fff;color:#000}
  .contract{max-height:none;overflow:visible;border:0}
  .agree,.field,.step h2,#review{display:none!important}
}
