/* /audit page, v2 "Business Notebook". Loaded AFTER buttons.css, auth-v2.css and auth-brand.css; reuses their tokens (--paper, --ink, --blue, --rule ...).
   No green, no yellow, no gradients. CSP-safe (no inline styles/scripts). Mobile first. Hooks unchanged: .opt(s) .slot .panel .field--err .check .hp .thanks ... */
body[data-page=audit] main#main { max-width: 64rem; }
.audit-head { margin: .6rem 0 1.4rem; max-width: 46rem; }
.audit-head .eyebrow, .thanks .eyebrow { margin-bottom: .6rem !important; }
.audit-head h1 { font-size: clamp(2.6rem, 10vw, 4.4rem); }
.audit-head p:last-child { font-size: 1.1rem; line-height: 1.55; color: var(--mute); max-width: 52ch; }

/* ---------- option cards (radio cards) ---------- */
.opts { border: 0; margin: 0 0 1.1rem; padding: 0; min-width: 0; }
.opts__legend { padding: 0; margin: 0 0 .8rem; font-family: var(--serif); font-size: 1.8rem; line-height: 1; color: var(--ink); }
.opts__grid { display: grid; gap: .8rem; grid-template-columns: 1fr; }
.opt { position: relative; display: flex; align-items: flex-start; gap: .9rem; margin: 0; padding: 1rem 1rem 1.05rem; min-height: 44px; cursor: pointer; color: var(--ink); background: var(--card); border: 1.5px solid var(--rule); border-radius: 16px; transition: border-color .2s, background-color .2s, transform .25s var(--ease); }
.opt input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.opt__icon { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; color: var(--blue2); background: var(--sky); transition: background-color .2s, color .2s; }
.opt__icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.opt__body { display: flex; flex-direction: column; gap: .25rem; min-width: 0; padding-right: 1.9rem; }
.opt__tag { font: 500 .68rem/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--blue2); }
.opt__title { font-weight: 700; font-size: 1.1rem; line-height: 1.25; color: var(--ink); }
.opt__text { color: var(--mute); font-size: .93rem; line-height: 1.45; }
.opt__pick { position: absolute; right: .9rem; top: .95rem; width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--rule2); background: var(--card); transition: border-color .2s, background-color .2s; }
.opt__pick::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: #fff; transform: scale(0); transition: transform .2s var(--ease); }
@media (hover: hover) { .opt:hover { border-color: var(--blue); } }
.opt:has(input:focus-visible) { outline: 3px solid var(--blue); outline-offset: 3px; }
.opt--selected, .opt:has(input:checked) { background: var(--ink); border-color: var(--ink); }
.opt--selected .opt__icon, .opt:has(input:checked) .opt__icon { color: #fff; background: var(--blue); }
.opt--selected .opt__title, .opt:has(input:checked) .opt__title { color: #fff; }
.opt--selected .opt__tag, .opt:has(input:checked) .opt__tag { color: var(--sky2); }
.opt--selected .opt__text, .opt:has(input:checked) .opt__text { color: var(--mute-d); }
.opt--selected .opt__pick, .opt:has(input:checked) .opt__pick { border-color: #fff; background: var(--blue); }
.opt--selected .opt__pick::after, .opt:has(input:checked) .opt__pick::after { transform: scale(1); }
@media (min-width: 52rem) {
  .opts__grid { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
  .opt { flex-direction: column; padding: 1.2rem 1.15rem 1.25rem; }
  .opt__body { padding-right: 0; }
  .opt__pick { top: 1.1rem; right: 1.1rem; }
  .opt__icon { width: 50px; height: 50px; }
}

/* ---------- form + aside layout ---------- */
.audit-grid { display: grid; gap: 1rem; align-items: start; grid-template-columns: minmax(0, 1fr); }
.audit-card { padding: 1.3rem 1.15rem 1.3rem; }
.audit-card h2, .audit-h2, .audit-next h2 { font-family: var(--serif); font-size: 2rem; line-height: 1; margin: 0 0 .4rem; color: var(--ink); }
.panel { margin: 0 0 .4rem; }
.panel[hidden] { display: none; }
.panel__lead { margin: 0 0 .9rem; font-size: .95rem; line-height: 1.5; }
.panel__or { display: flex; align-items: center; gap: .8rem; margin: 1rem 0 .7rem; color: var(--faint); font: 500 .74rem/1 var(--mono); text-transform: uppercase; letter-spacing: .14em; }
.panel__or::before, .panel__or::after { content: ""; flex: 1; height: 1px; background: var(--rule); }
.audit-sep { border: 0; height: 1px; background: var(--rule); margin: 1.2rem 0 1.1rem; }
.audit-h2 { margin-bottom: .8rem; }
.req { color: var(--blue2); }
#wa-open svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }

.audit-two { display: grid; gap: 0 1rem; grid-template-columns: 1fr; }
.slot { border: 1px solid var(--rule); border-radius: 12px; margin: 0 0 .75rem; padding: .7rem .85rem .1rem; min-width: 0; background: var(--paper); }
.slot__legend { padding: 0 .4rem; font: 500 .72rem/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--blue2); }
.slot__row { display: grid; gap: 0 .8rem; grid-template-columns: 1fr; }
.slot--err { border-color: var(--red-line); }
@media (min-width: 40rem) { .slot__row { grid-template-columns: 1fr 1fr 1.2fr; } .slot__row--2 { grid-template-columns: 1fr 1fr; } .audit-two { grid-template-columns: 1fr 1fr; } }
@media (min-width: 62rem) { .audit-grid { grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); gap: 1.2rem; } .audit-card { padding: 1.7rem 1.7rem 1.5rem; } .audit-next { position: sticky; top: 92px; } }

/* select + textarea + date: same look as the auth-v2 inputs */
.auth select, .auth textarea { display: block; width: 100%; font: inherit; color: var(--ink); background: var(--card); border: 1.5px solid var(--rule2); border-radius: 10px; transition: border-color .2s, box-shadow .2s; }
.auth select { min-height: 52px; padding: .8rem 2.4rem .8rem 1rem; appearance: none; -webkit-appearance: none; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, #0b0f1e 50%), linear-gradient(135deg, #0b0f1e 50%, transparent 50%); background-repeat: no-repeat; background-position: calc(100% - 1.25rem) 50%, calc(100% - .9rem) 50%; background-size: .42rem .42rem, .42rem .42rem; }
.auth select option { background: #fff; color: #0b0f1e; }
.auth textarea { min-height: 7.5rem; padding: .8rem 1rem; resize: vertical; line-height: 1.5; }
.auth select:hover, .auth textarea:hover { border-color: var(--ink); }
.auth select:focus, .auth textarea:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 4px rgba(37, 99, 255, .22); }
.auth input[type=date] { min-height: 52px; }
.hint--count::before { display: none; }
.hint--count.over { color: var(--red); }

/* field errors: soft red, never the only cue (text + border + aria-invalid) */
.field--err > label, .field--err .check__text { color: #7a1c14; }
.auth .field--err input:not([type=checkbox]), .auth .field--err select, .auth .field--err textarea { border-color: var(--red); background: var(--red-bg); }
.auth [aria-invalid=true]:focus { border-color: var(--red); box-shadow: 0 0 0 4px rgba(180, 35, 24, .2); }
.field__err { margin: .4rem 0 0 !important; font-size: .88rem; color: var(--red); display: flex; gap: .4rem; align-items: flex-start; }
.field__err::before { content: ""; flex: none; width: 14px; height: 14px; margin-top: .2rem; border-radius: 50%; border: 2px solid currentColor; background: radial-gradient(circle, currentColor 0 1.5px, transparent 2px); }
.flash.err a { color: #5c140e; text-decoration: underline; text-underline-offset: 3px; }
.flash__title { margin: 0 0 .35rem; font-weight: 700; }
.flash__list { margin: 0; padding-left: 1.1rem; }
.flash__list li { margin: .15rem 0; }
#form-error:focus { outline: 3px solid var(--blue); outline-offset: 3px; }

/* consent checkbox */
.field--check { margin: 1rem 0 1.1rem; }
label.check { display: flex; align-items: flex-start; gap: .75rem; cursor: pointer; color: var(--ink); font-weight: 400; font-size: .94rem; line-height: 1.45; margin: 0; min-height: 44px; }
label.check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.check__box { flex: none; width: 24px; height: 24px; margin-top: 1px; border-radius: 6px; border: 2px solid var(--rule2); background: var(--card); display: grid; place-items: center; transition: background-color .2s, border-color .2s; }
.check__box::after { content: ""; width: 12px; height: 7px; border: solid #fff; border-width: 0 0 2.5px 2.5px; transform: rotate(-45deg) scale(0) translate(1px, -1px); transition: transform .2s var(--ease); }
label.check input:checked + .check__box { background: var(--blue); border-color: var(--blue); }
label.check input:checked + .check__box::after { transform: rotate(-45deg) scale(1) translate(1px, -1px); }
label.check input:focus-visible + .check__box { outline: 3px solid var(--blue); outline-offset: 3px; }
.field--err .check__box { border-color: var(--red); }
.check__text a { color: var(--blue2); }

/* honeypot: off-screen, not display:none (some bots skip hidden fields), not focusable */
.hp { position: absolute !important; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.audit-fine { text-align: center; font-size: .86rem; margin: .8rem 0 0; }
.audit-submit-busy, #audit-submit[aria-busy=true] { opacity: .7; pointer-events: none; }

/* ---------- what happens next ---------- */
.audit-next { padding: 1.4rem 1.3rem; background: var(--ink); border-color: var(--ink); color: #fff; }
.audit-next h2 { color: #fff; }
.steps-list { list-style: none; margin: .7rem 0 0; padding: 0; counter-reset: s; display: grid; gap: 1rem; }
.steps-list li { position: relative; padding-left: 2.8rem; display: flex; flex-direction: column; gap: .15rem; counter-increment: s; }
.steps-list li::before { content: counter(s); position: absolute; left: 0; top: 0; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; font: 500 .85rem/1 var(--mono); color: #fff; background: var(--blue); }
.steps-list strong { color: #fff; font-weight: 700; font-size: 1.02rem; }
.steps-list span { color: var(--mute-d); font-size: .92rem; line-height: 1.45; }
.audit-next__alt { margin: 1.1rem 0 0; padding-top: .9rem; border-top: 1px solid rgba(255, 255, 255, .18); font-size: .92rem; color: var(--mute-d); }
.audit-next a { color: var(--sky2); }
.audit-next a:hover { color: #fff; }
.auth .audit-next :focus-visible { outline-color: var(--sky2); }

/* ---------- thank-you ---------- */
.thanks { max-width: 40rem; margin: 1rem auto 0; text-align: left; }
.thanks:focus { outline: none; }
.thanks__mark { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 0 1rem; border-radius: 50%; color: #fff; background: var(--blue); }
.thanks__mark svg { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.thanks h1 { font-size: clamp(2.6rem, 10vw, 4rem); margin: 0 0 .6rem; }
.thanks__lead { font-size: 1.15rem; color: var(--ink); margin: 0 0 .6rem; font-weight: 500; }
.thanks p { margin: 0 0 .7rem; line-height: 1.55; }
.thanks__actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.3rem; }
.thanks__actions .btn { flex: 1 1 11rem; }

@media (prefers-reduced-motion: no-preference) {
  @keyframes popin { 0% { opacity: 0; transform: scale(.8); } 100% { opacity: 1; transform: none; } }
  .thanks__mark { animation: popin .5s var(--ease) both; }
  .audit-card, .audit-next, .opt { animation: rise .7s var(--ease) both; }
  .opt:nth-child(2) { animation-delay: .07s; } .opt:nth-child(3) { animation-delay: .14s; }
  @media (hover: hover) { .opt:hover { transform: translateY(-3px); } }
}
@media (prefers-reduced-motion: reduce) {
  .opt, .opt__pick, .opt__pick::after, .check__box, .check__box::after, .opt__icon { transition: none; }
}
