.saved { font-size:var(--text-small); color:var(--text-muted); }
main.wrap { padding-top:8px; }

.progress { margin:4px 0 28px; }
.bar { height:6px; border-radius:6px; background:var(--n-200); overflow:hidden; }
.bar i { display:block; height:100%; width:0; background:var(--accent); transition:width .3s ease; }
.step { margin:8px 0 0; font-size:var(--text-small); color:var(--text-muted); }

.intro h1 { font-size:var(--text-h2); margin-bottom:.35em; }
.intro p { margin:0 0 28px; font-size:var(--text-lead); }
.part-tag { display:inline-block; font-size:var(--text-small); font-weight:600; color:var(--accent); margin-bottom:10px; letter-spacing:.02em; }

.q { margin:0 0 30px; padding:0; border:0; min-width:0; }
.q > legend, .q > label.lbl { display:block; color:var(--text); font-weight:600; font-size:1.0625rem; margin-bottom:6px; padding:0; }
.req-mark { color:var(--text-muted); font-weight:400; font-size:var(--text-small); }
.ex { margin:0 0 10px; font-size:var(--text-small); color:var(--text-muted); white-space:pre-line; }
.q input[type=text], .q input[type=email], .q input[type=tel], .q input[type=url], .q input[type=number], .q textarea, .q input[type=time] {
  width:100%; min-height:48px; padding:10px 14px; border:1.5px solid var(--border-input); border-radius:10px; background:var(--surface); color:var(--text);
}
.q input[type=number] { max-width:180px; }
.q textarea { min-height:120px; resize:vertical; line-height:1.5; }
.unit { margin-left:8px; color:var(--text-muted); }
.choices { display:grid; gap:8px; }
.choice { display:flex; align-items:flex-start; gap:12px; padding:12px 14px; border:1.5px solid var(--border); border-radius:10px; background:var(--surface); cursor:pointer; color:var(--text); }
.choice input { margin:3px 0 0; width:20px; height:20px; accent-color:var(--accent); flex:none; }
.choice:has(input:checked) { border-color:var(--accent); background:var(--teal-50); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .choice:has(input:checked) { background:#103231; } }
.other-box { margin-top:8px; }

.unsure { display:inline-flex; align-items:center; gap:8px; margin-top:10px; font-size:var(--text-small); color:var(--text-muted); cursor:pointer; }
.unsure input { width:18px; height:18px; accent-color:var(--accent); }
.q.is-unsure .field { opacity:.4; pointer-events:none; }

.warn { margin:10px 0 0; padding:10px 14px; border-radius:10px; background:var(--warn-bg); color:var(--warn-text); font-size:var(--text-small); }
.err { margin:8px 0 0; color:var(--error); font-size:var(--text-small); font-weight:600; }
.q.has-err input, .q.has-err textarea, .q.has-err .choice { border-color:var(--error); }
.note { padding:14px 16px; border-radius:10px; background:var(--surface-quiet); color:var(--text-body); margin:0 0 30px; }

.hours { display:grid; gap:8px; }
.hrow { display:grid; grid-template-columns:3.2rem auto 1fr 1fr; gap:8px 10px; align-items:center; }
.hrow .day { font-weight:600; color:var(--text); }
.hrow label.closed { display:flex; align-items:center; gap:6px; font-size:var(--text-small); }
.hrow input[type=time] { min-height:44px; padding:6px 10px; }
.hrow label.t { display:grid; gap:2px; font-size:.8125rem; color:var(--text-muted); }
.hrow.is-closed label.t { opacity:.35; }
@media (max-width:520px) { .hrow { grid-template-columns:1fr 1fr; padding-bottom:6px; border-bottom:1px solid var(--border); } .hrow label.closed { justify-self:end; } }

.nav { display:flex; justify-content:space-between; gap:12px; margin:8px 0 18px; }
.nav .btn { min-width:120px; }
.form-error { color:var(--error); font-weight:600; min-height:1.5em; margin:0 0 8px; }

.resume { margin:28px 0 0; padding:16px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface-quiet); font-size:var(--text-small); }
.resume p { margin:0 0 10px; }
.resume-row { display:flex; gap:8px; }
.resume-row input { flex:1; min-width:0; min-height:44px; padding:8px 12px; border:1.5px solid var(--border-input); border-radius:10px; background:var(--surface); color:var(--text); font-size:15px; }

.fork { display:grid; gap:14px; margin:6px 0 24px; }
.fork .card { border:1.5px solid var(--border); border-radius:var(--radius); padding:20px; background:var(--surface); }
.fork .card h2 { font-size:var(--text-h3); margin-bottom:.3em; }
.fork .card p { margin:0 0 14px; }

.review h2 { font-size:var(--text-h3); margin:30px 0 10px; display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
.review h2 button { font-size:var(--text-small); }
.review dl { margin:0; border-top:1px solid var(--border); }
.review .row { padding:10px 0; border-bottom:1px solid var(--border); }
.review dt { color:var(--text-muted); font-size:var(--text-small); }
.review dd { margin:2px 0 0; color:var(--text); white-space:pre-line; overflow-wrap:anywhere; }
.review .skipped dd { color:var(--warn-text); }
.review .unsure-ans dd { color:var(--text-muted); font-style:italic; }
.linkish { background:none; border:0; padding:0; color:var(--accent); text-decoration:underline; text-underline-offset:3px; cursor:pointer; font:inherit; }
.skips { padding:14px 16px; border-radius:10px; background:var(--warn-bg); color:var(--warn-text); margin:0 0 10px; }
.skips ul { margin:8px 0 0; padding-left:20px; }

/* Texting sign-up page */
.sms-form { margin-top:24px; }
.consent { display:flex; gap:12px; align-items:flex-start; padding:14px; border:1.5px solid var(--border-input); border-radius:10px; background:var(--surface); cursor:pointer; font-size:var(--text-small); color:var(--text); }
.consent input { width:22px; height:22px; margin-top:2px; flex:none; accent-color:var(--accent); }
.links { font-size:var(--text-small); margin:8px 0 0; }
#smsDone:focus { outline:none; }
