:root{
  --bg:#f5f3ee; --card:#fff; --ink:#1d2b2b; --muted:#5b6b6b; --line:#d9dfdc;
  --accent:#0f5c5c; --accent-ink:#fff; --accent-soft:#e3f0ee; --warn:#8a4b00; --warn-bg:#fff4e0; --bad:#a32222; --bad-bg:#fdeaea; --ok:#1b6b3a;
  --radius:14px;
}
*{box-sizing:border-box}
html{font-size:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:1.125rem/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-text-size-adjust:100%}
.skip{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:.5rem 1rem;z-index:99}
.skip:focus{left:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid #1c7ed6;outline-offset:2px}

.wrap{max-width:820px;margin:0 auto;padding:0 16px}
header.top{background:var(--accent);color:#fff}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;padding-bottom:12px}
.brand{font-weight:700;font-size:1.15rem;letter-spacing:.2px}
.brand small{display:block;font-weight:400;font-size:.8rem;opacity:.85}
.hdr-right{display:flex;align-items:center;gap:12px;font-size:.9rem}
.linkbtn{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;padding:6px;font-size:.9rem}
.savestat{opacity:.9;white-space:nowrap}
@media(max-width:560px){
  header.top .wrap{flex-wrap:wrap}
  .brand{flex:1 1 100%}
  .hdr-right{flex:1 1 100%;justify-content:space-between}
  .brand{font-size:1.05rem}
}
.savestat.err{background:var(--bad);padding:2px 8px;border-radius:8px}

.privacy{background:var(--warn-bg);color:var(--warn);border-bottom:1px solid #f0d9a8;font-size:.95rem}
.privacy .wrap{padding-top:8px;padding-bottom:8px}

/* Step navigation: every step always visible; pills wrap onto further rows, never scroll. */
nav.secs{background:#fff;border-bottom:1px solid var(--line);z-index:5}
nav.secs ul{list-style:none;margin:0 auto;padding:8px 16px;max-width:820px;display:flex;flex-wrap:wrap;gap:6px}
nav.secs li{display:flex}
nav.secs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font-size:.88rem;line-height:1.25;cursor:pointer;min-height:36px;text-align:center}
@media(min-width:768px){nav.secs{position:sticky;top:0}}
@media(max-width:560px){
  nav.secs ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  nav.secs button{width:100%;min-width:0;padding:8px 10px;min-height:40px}
}
nav.secs button[aria-current="step"]{background:var(--accent);color:#fff;border-color:var(--accent)}
nav.secs button.done::before{content:"\2713\00a0";color:var(--ok)}
nav.secs button[aria-current="step"].done::before{color:#fff}

.progress{max-width:820px;margin:16px auto 0;padding:0 16px}
.progress .lbl{font-size:.95rem;color:var(--muted);display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.bar{height:10px;background:#dfe6e3;border-radius:999px;overflow:hidden;margin-top:6px}
.bar>i{display:block;height:100%;background:var(--accent);transition:width .25s}

main#page{max-width:820px;margin:0 auto;padding:16px 16px 140px}
h1.sec{font-size:1.9rem;line-height:1.2;margin:.4rem 0 .4rem}
h2.pg{font-size:1.2rem;color:var(--muted);font-weight:600;margin:.1rem 0 1rem}
.intro{background:var(--accent-soft);border-left:5px solid var(--accent);padding:14px 16px;border-radius:8px;margin:0 0 20px;font-size:1.1rem}

.q{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin:0 0 16px}
.q>fieldset{border:0;margin:0;padding:0;min-width:0}
.q legend,.q .qlabel{font-weight:650;font-size:1.25rem;line-height:1.35;padding:0;margin:0 0 6px}
.help{color:var(--muted);font-size:1rem;margin:0 0 12px}
.note{background:#eef3fb;border:1px solid #cfdcf3;border-radius:var(--radius);padding:14px 16px;margin:0 0 16px;white-space:pre-line}

input[type=text],input[type=number],textarea,select{width:100%;border:2px solid #b9c4c1;border-radius:10px;padding:12px 14px;background:#fff;min-height:48px}
textarea{min-height:120px;resize:vertical}
input:focus,textarea:focus,select:focus{border-color:var(--accent)}

.opts{display:grid;gap:8px}
.opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:2px solid var(--line);border-radius:10px;cursor:pointer;min-height:48px;background:#fff}
.opt:hover{border-color:#9fb7b3}
.opt input{width:24px;height:24px;margin:1px 0 0;flex:none;accent-color:var(--accent)}
.opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.other-in{margin:8px 0 0 36px}

.idk{margin-top:12px;font-size:1rem;color:var(--muted)}
.idk label{display:inline-flex;gap:10px;align-items:center;cursor:pointer;min-height:44px}
.idk input{width:22px;height:22px;accent-color:var(--accent)}
details.cmt{margin-top:10px}
details.cmt summary{cursor:pointer;color:var(--accent);font-size:.98rem;min-height:40px;display:flex;align-items:center}
details.cmt textarea{min-height:80px;margin-top:6px}
.phi{display:none;margin-top:10px;background:var(--bad-bg);color:var(--bad);border:1px solid #efb7b7;padding:10px 12px;border-radius:10px;font-size:1rem}
.phi.show{display:block}
.phi.soft{background:var(--warn-bg);color:var(--warn);border-color:#f0d9a8}

/* tables -> stacked cards on small screens */
table.t{width:100%;border-collapse:separate;border-spacing:0 8px}
table.t th{text-align:left;font-size:.95rem;color:var(--muted);font-weight:600;padding:0 8px 2px}
table.t td{padding:0 8px 0 0;vertical-align:top}
table.t td.rl{font-weight:600;padding-right:12px;width:30%}
@media(max-width:640px){
  table.t thead{display:none}
  table.t,table.t tbody,table.t tr,table.t td{display:block;width:100%}
  table.t tr{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:#fbfcfb}
  table.t td{padding:4px 0}
  table.t td.rl{width:auto;font-size:1.05rem}
  table.t td[data-l]::before{content:attr(data-l);display:block;font-size:.88rem;color:var(--muted);margin-bottom:2px}
}

.mrow{border:1px solid var(--line);border-radius:12px;padding:12px;margin:0 0 10px;background:#fbfcfb}
.mrow .ml{font-weight:650;margin-bottom:8px}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pill{display:inline-flex;align-items:center;gap:8px;border:2px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;cursor:pointer;min-height:44px;font-size:1rem}
.pill input{width:20px;height:20px;accent-color:var(--accent);margin:0}
.pill:has(input:checked){border-color:var(--accent);background:var(--accent-soft);font-weight:600}

details.card{border:1px solid var(--line);border-radius:12px;margin:0 0 10px;background:#fbfcfb}
details.card>summary{cursor:pointer;padding:14px;font-weight:650;min-height:48px;display:flex;justify-content:space-between;align-items:center;gap:8px}
details.card>summary .cnt{font-weight:400;color:var(--muted);font-size:.95rem}
details.card .body{padding:0 14px 14px}
.gs-row{display:grid;grid-template-columns:1fr minmax(160px,220px);gap:10px;align-items:center;margin:0 0 8px}
@media(max-width:560px){.gs-row{grid-template-columns:1fr}}
.card .f{margin:0 0 12px}
.card .f>label,.card .f>.fl{display:block;font-size:.95rem;color:var(--muted);margin-bottom:3px}

.btn{border:2px solid var(--accent);background:#fff;color:var(--accent);border-radius:12px;padding:12px 22px;font-weight:650;cursor:pointer;min-height:52px;font-size:1.05rem}
.btn.primary{background:var(--accent);color:#fff}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.small{min-height:44px;padding:8px 14px;font-size:.98rem}
.cmpl{background:#fff;border:2px dashed #b9c4c1;border-radius:var(--radius);padding:18px;margin-top:24px}
.cmpl h3{margin:0 0 4px;font-size:1.1rem}
.cmpl .row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
@media(max-width:560px){.cmpl .row{grid-template-columns:1fr}}

footer.ctl{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 14px rgba(0,0,0,.06);z-index:6}
footer.ctl .wrap{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;padding-top:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
footer.ctl .btn:first-child{justify-self:start}
footer.ctl .btn:last-child{justify-self:end}
@media(max-width:480px){footer.ctl .btn{padding:12px 14px;font-size:1rem}}

/* login */
.login{max-width:480px;margin:10vh auto;padding:0 16px}
.login .q{padding:28px}
.err-msg{color:var(--bad);margin:10px 0 0;min-height:1.4em}

/* review */
.rev-sec{margin:0 0 22px}
.rev-sec h3{margin:0 0 8px;font-size:1.25rem;display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.rev-q{border-top:1px solid var(--line);padding:10px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}
.rev-q .rq{font-weight:600}
.rev-q .ra{grid-column:1/-1;white-space:pre-wrap;color:#223}
.rev-q .ra.empty{color:var(--muted);font-style:italic}
.rev-q .ed{align-self:start}
.badge{display:inline-block;border-radius:999px;font-size:.8rem;padding:2px 10px;background:#e6ecea;color:var(--muted);font-weight:600}
.badge.ok{background:#dff3e6;color:var(--ok)}
.confirmbox{background:#fff;border:2px solid var(--accent);border-radius:var(--radius);padding:18px;margin-top:18px}
.thanks{text-align:center;padding:40px 16px}
.thanks h1{font-size:2rem}
.local-banner{background:#fde8c8;color:#5a3300;padding:8px 16px;text-align:center;font-size:.95rem}

@media print{
  body{background:#fff;font-size:11pt}
  header.top,.privacy,nav.secs,.progress,footer.ctl,.ed,.btn,.skip{display:none!important}
  main#page{padding:0}
  .q,.confirmbox{border:0;padding:0}
}

/* Access grid: one row per information type, multi-select pills beneath the label */
.gs-multi{padding:10px 0;border-top:1px solid var(--line)}
.gs-multi:first-child{border-top:0;padding-top:4px}
.gs-multi .gsl{font-weight:600;margin-bottom:6px}
.gs-multi .pill{font-size:.95rem;min-height:40px;padding:6px 12px}
