:root {
  --paper:#FAF8F3; --card:#FFFFFF; --ink:#20302C; --muted:#5F6F69;
  --line:#E4E1D8; --accent:#0C6152; --accent-ink:#08463B; --accent-soft:#E5EFEB;
  --gold:#9C7620; --gold-soft:#F4ECD8; --good:#0C6152; --field:#FBFAF6;
  --hint:#071047;
  --danger:#9D302D;
  --shadow:0 1px 2px rgba(32,48,44,.06),0 8px 24px rgba(32,48,44,.05);
}

/* Listing history is the same readable record in the account and admin shells. */
.listing-history-page{max-width:860px}.listing-history-head{margin:1.2rem 0 1.7rem}.listing-history-head h1{margin:.15rem 0 .5rem}.listing-history-entries{display:grid;gap:1rem}.listing-history-entry{border:1px solid #d8d4ca;border-radius:10px;background:#fff;padding:1rem 1.15rem}.listing-history-entry>header{color:#5a554e;margin-bottom:.7rem}.listing-history-entry dl{margin:0}.listing-history-change{display:grid;grid-template-columns:minmax(10rem,14rem) 1fr;gap:.45rem 1rem;padding:.7rem 0;border-top:1px solid #ebe8e1}.listing-history-change:first-child{border-top:0}.listing-history-change dt{font-weight:700}.listing-history-change dd{display:grid;gap:.2rem;margin:0;overflow-wrap:anywhere}.listing-history-empty{border:1px solid #d8d4ca;border-radius:10px;background:#fff;padding:1.2rem}@media(max-width:640px){.listing-history-change{grid-template-columns:1fr}.listing-history-entry{padding:.9rem}}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) {
    --paper:#141917; --card:#1C2321; --ink:#E9EEEB; --muted:#94A39D;
    --line:#2C3532; --accent:#4FB89F; --accent-ink:#7FD2BC; --accent-soft:#1E332C;
    --gold:#D6B15E; --gold-soft:#332B18; --good:#4FB89F; --field:#222927;
    --hint:#A9BCEC;
    --danger:#F2A5A0;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35);
  }
}
:root[data-theme="dark"] {
  --paper:#141917; --card:#1C2321; --ink:#E9EEEB; --muted:#94A39D;
  --line:#2C3532; --accent:#4FB89F; --accent-ink:#7FD2BC; --accent-soft:#1E332C;
  --gold:#D6B15E; --gold-soft:#332B18; --good:#4FB89F; --field:#222927;
  --hint:#A9BCEC;
  --danger:#F2A5A0;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35);
}

/* Public-profile contact values are intentionally absent until a visitor
   asks for one. These forms remain useful with scripting disabled. */
body.profile-page .reveal-form{display:inline-block;margin:0}
body.profile-page button.reveal{
  appearance:none;border:1px solid var(--accent);border-radius:9px;
  background:var(--accent-soft);color:var(--accent-ink);cursor:pointer;
  font:inherit;font-weight:650;padding:.6rem .85rem;text-align:center
}
body.profile-page button.reveal:hover{background:var(--card)}
body.profile-page button.reveal:focus-visible,
body.profile-page .reveal-error:focus{outline:2px solid var(--accent);outline-offset:2px}
body.profile-page button.reveal:disabled{cursor:wait;opacity:.65}
body.profile-page .ci-phone>.reveal-form,
body.profile-page .rail .panel>.reveal-form{display:block;margin-top:12px}
body.profile-page .rail .panel>.reveal-form button.reveal{width:100%}
/* The rail offers this number twice — as a number and as a call button.
   Covered, two identical buttons read as two numbers, so the second one
   waits until the number is shown (operator, 2026-09-09). It stays in the
   DOM: the reveal script replaces every control for the field at once. */
body.profile-page .rail .panel>.reveal-form.reveal-duplicate{display:none}
body.profile-page .contact-extra .reveal-form,
body.profile-page .meta .reveal-form{vertical-align:middle}
body.profile-page .reveal-error{color:var(--danger);font-size:14px;margin:8px 0}
body.profile-page.profile-paused .mention.reveal-notice:not([hidden]){display:block}
body.profile-page .callbar .reveal-form{display:flex;flex:1}
body.profile-page .callbar .reveal-form button.reveal{flex:1;min-height:50px;font-size:17px}
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { scroll-behavior:smooth; }
body {
  background:var(--paper); color:var(--ink); margin:0;
  font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  padding:0 1.25rem 5rem;
}
a { color:var(--accent); }
.serif { font-family:Georgia,"Iowan Old Style","Palatino Linotype",Palatino,serif; }
main { max-width:1120px; margin:0 auto; }
/* The bar wraps rather than overflowing, and wraps TIDILY: the brand keeps
   its row, the links reflow as a block beneath it, and the profession control
   never splits away from the links it belongs with. Removing items is not a
   fix — any bar overflows at some width. No JavaScript: this must work with
   scripting off, like the rest of the form. */
.nav {
  display:flex; align-items:center; justify-content:space-between; padding:1rem 0;
  border-bottom:1px solid var(--line); margin-bottom:1rem; gap:.6rem 1rem;
  flex-wrap:wrap;
}
.nav > .brand { flex:0 0 auto; }
.nav > .links { flex:1 1 auto; justify-content:flex-end; }
.brand { color:var(--ink); text-decoration:none; font-family:Georgia,serif; font-weight:700; font-size:1.1rem; letter-spacing:-.01em; display:flex; align-items:center; gap:.5rem; }
.brand .mark { width:1.5rem; height:1.5rem; border-radius:5px; background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center; font-size:.85rem; }
.links { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem 1.3rem; font-size:.9rem; }
.links a,.link-button { color:var(--muted); text-decoration:none; }
.inline-form { display:inline; }
.link-button { border:0; background:none; font:inherit; cursor:pointer; padding:0; }
.btn { appearance:none; border:none; cursor:pointer; border-radius:9px; font:inherit; font-weight:650; padding:.6rem 1.05rem; font-size:.92rem; display:inline-block; text-decoration:none; }
.btn:focus-visible,.in:focus-visible,.link-button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.btn:disabled { opacity:.45; cursor:not-allowed; }
.btn-primary { background:var(--accent); color:#fff; }
.btn-ghost { background:transparent; color:var(--accent); border:1.5px solid var(--accent); }
.btn-danger { background:#9d302d; color:#fff; }
.hero { padding:3rem 0 2.4rem; display:grid; grid-template-columns:1.55fr 1fr; gap:2rem; align-items:center; }
.hero .kicker,.kicker { font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:700; margin:0 0 .7rem; }
.hero h1 { font-size:2.25rem; line-height:1.12; margin:0 0 .8rem; letter-spacing:-.015em; text-wrap:balance; }
.hero p { color:var(--muted); margin:.5rem 0; max-width:58ch; }
.hero .join-needs { max-width:58ch; margin:1rem 0 0; padding:.7rem .85rem; border-left:3px solid var(--gold); border-radius:0 8px 8px 0; background:var(--gold-soft); }
.hero .join-needs p { margin:0; color:var(--ink); font-size:.9rem; }
.hero .cta { display:flex; gap:.7rem; flex-wrap:wrap; margin-top:1.3rem; }
.trust { display:flex; gap:1.3rem; margin-top:1.6rem; flex-wrap:wrap; }
.trust div { font-size:.8rem; color:var(--muted); max-width:13rem; }
.trust b { display:block; color:var(--ink); font-family:Georgia,serif; font-size:1.15rem; }
.herocard,.join-copy,.public-profile { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:1.25rem; box-shadow:var(--shadow); }
.herocard h2 { margin:0 0 .8rem; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.entry { display:flex; flex-direction:column; gap:.6rem; }
.entry a,.entry > div { display:flex; align-items:center; gap:.7rem; text-decoration:none; color:var(--ink); border:1px solid var(--line); border-radius:9px; padding:.7rem .8rem; background:var(--card); font-size:.9rem; }
.entry .ic { width:1.7rem; height:1.7rem; border-radius:6px; background:var(--accent-soft); color:var(--accent-ink); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.entry small { display:block; color:var(--muted); font-size:.78rem; }
.profession-choice { border-left:1px solid var(--line); padding-left:.8rem; }
.join-profession-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.join-profession-card { display:flex; flex-direction:column; color:var(--ink); text-decoration:none; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:1.15rem 1.15rem 1.05rem; box-shadow:var(--shadow); transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease; }
.join-profession-card:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(15,42,74,.14); border-color:var(--accent); }
.join-profession-card:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.join-profession-card h2,.join-profession-card h3 { margin:0 0 .35rem; font-family:var(--serif); font-size:1.35rem; letter-spacing:-.01em; }
.choose-instruction { font-weight:600; margin:1.1rem 0 .5rem; }
.hero .lead { font-weight:600; }
.profession-photo { display:block; width:100%; max-width:200px; aspect-ratio:173/143; object-fit:cover; height:auto; margin:0 auto .75rem; border-radius:10px; box-shadow:0 0 0 1px rgba(15,42,74,.08); }
/* Name sits directly under its picture and is centred on it — the card holds
   nothing else, so it reads as one unit rather than a heading with a gap. */
.join-profession-card { align-items:center; text-align:center; }
.join-profession-card h2 { margin:0; }
.join-profession-card p { margin:.25rem 0; color:var(--muted); font-size:.9rem; }
.faq-list dt { margin-top:1.2rem; font-weight:750; }
.faq-list dd { margin:.35rem 0 0; color:var(--ink); line-height:1.65; }
.terms-page { max-width:760px; margin:0 auto; }
.terms-page > h1 { margin:.15rem 0 .35rem; font-size:2rem; }
.terms-copy h2 { font-family:inherit; font-size:1em; font-weight:400; font-style:italic; color:inherit; letter-spacing:normal; text-transform:none; text-decoration:none; border:0; background:none; padding:0; margin:.9rem 0; }
.terms-version { margin:0 0 2rem; color:var(--muted); font-weight:600; }
.terms-copy { max-width:72ch; }
.terms-copy p { margin:.9rem 0; line-height:1.7; }
.declaration-row b { max-width:58ch; text-align:left; }
.fee-schedule-page > h1 { margin:.15rem 0 .35rem; font-size:2rem; }
.fee-schedule-page > .lead { color:var(--muted); font-weight:600; margin:0 0 2rem; }
.fee-schedule-profession + .fee-schedule-profession { margin-top:2rem; }
.fee-schedule-profession h2 { margin:0 0 .7rem; }
.fee-schedule-table-wrap { display:inline-block; max-width:100%; overflow-x:auto; border:1px solid var(--line); border-radius:10px; background:var(--card); }
/* Sized to its contents, not to the page. Stretching a five-column table
   across a wide screen padded the income column out to nothing. */
.fee-schedule-table { width:auto; border-collapse:collapse; font-size:.92rem; }
.fee-schedule-table th,.fee-schedule-table td { padding:.6rem .8rem; text-align:left; vertical-align:middle; }
.fee-schedule-table thead th { background:var(--field); color:var(--ink); font-weight:600; white-space:nowrap; border-bottom:1px solid var(--line); }
/* The one long heading wraps instead of setting the column's width. */
.fee-schedule-table thead th[rowspan] { white-space:normal; width:1%; }
.fee-schedule-table td { width:1%; }
.fee-schedule-table thead tr:first-child th[colspan] { text-align:center; }
.fee-schedule-table td { text-align:left; white-space:nowrap; }
.fee-schedule-table tbody th { white-space:nowrap; font-weight:400; }
/* Alternating bands, as on the published schedule — rows are wide and the
   eye needs help staying on one. */
.fee-schedule-table tbody tr:nth-child(even) { background:var(--field); }
.fee-schedule-profession + .fee-schedule-profession { margin-top:2rem; }
.senior-schedule-option { display:grid; grid-template-columns:175px minmax(0,1fr); gap:28px; align-items:center; max-width:780px; margin:1.5rem 0 2.25rem; padding:1.5rem; border:1px solid var(--line); border-left:4px solid var(--accent); border-radius:10px; background:var(--accent-soft); }
.senior-schedule-option h3 { margin:0 0 .6rem; font-size:1.3rem; color:var(--ink); }
.senior-schedule-option p { margin:.5rem 0 0; line-height:1.65; }
.senior-discount-figure strong { display:block; font-size:3.2rem; font-weight:650; line-height:1.05; color:var(--accent-ink); }
.senior-discount-figure span { display:block; max-width:15ch; margin-top:.4rem; font-size:.95rem; line-height:1.45; }
@media(max-width:560px) { .senior-schedule-option { grid-template-columns:1fr; gap:1rem; padding:1.2rem; } .senior-discount-figure span { max-width:none; } }
.how-to-apply { max-width:720px; margin:0 auto; }
.how-to-apply > h1 { margin:.15rem 0 .35rem; font-size:2rem; }
.how-to-apply > .lead { color:var(--muted); font-weight:600; margin:0; }
.before-you-start { margin:1.6rem 0; padding:1.25rem; background:var(--card); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); }
.before-you-start h2 { margin:0 0 .6rem; font-size:1.45rem; }
.before-you-start h3 { margin:1.4rem 0 .35rem; font-size:1rem; }
.before-you-start p { margin:.45rem 0; }
.before-you-start ul { margin:.8rem 0; padding-left:1.3rem; }
.before-you-start li + li { margin-top:.45rem; }
.join-copy { max-width:720px; margin:1rem auto 0; }
.join-copy h2 { margin-top:0; }
.join-section { padding:2.4rem 0; border-top:1px solid var(--line); }
.join-section > h2 { margin:.15rem 0 1.4rem; font-size:1.7rem; }
.join-steps { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; list-style:none; padding:0; margin:0; }
.join-steps li { display:flex; gap:.8rem; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:1rem; box-shadow:var(--shadow); }
.join-steps li > span { display:flex; align-items:center; justify-content:center; width:2rem; height:2rem; flex:0 0 auto; border-radius:50%; background:var(--accent-soft); color:var(--accent-ink); font-weight:750; }
.join-steps h3 { margin:.1rem 0 .25rem; font-size:1rem; }
.join-steps p { margin:0; color:var(--muted); font-size:.9rem; }
.join-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:2rem; align-items:start; }
.join-grid h2 { margin:.1rem 0 .7rem; font-size:1.7rem; }
.checker { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:1.1rem; box-shadow:var(--shadow); }
.checker h3 { margin:0; font-size:1rem; }
.checker .btn { margin-top:.9rem; }
.checker-result { margin:.9rem 0 0; border-radius:8px; padding:.65rem .75rem; background:var(--gold-soft); color:var(--gold); font-size:.88rem; font-weight:650; }
.checker-result.eligible { background:var(--accent-soft); color:var(--accent-ink); }
.credibility { display:grid; grid-template-columns:1fr 1.2fr; gap:2rem; }
.credibility h2 { margin:.1rem 0; }
.credibility blockquote { margin:0; background:var(--card); border-left:4px solid var(--gold); border-radius:0 12px 12px 0; padding:1.2rem 1.3rem; font-family:Georgia,serif; font-size:1.12rem; box-shadow:var(--shadow); }
.footer-cta { margin-top:2.4rem; background:var(--accent-soft); border-radius:14px; padding:1.4rem 1.6rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.footer-cta h2 { margin:0; font-size:1.35rem; }
.formpage { padding:1.6rem 1.4rem 2rem; max-width:720px; margin:0 auto; background:var(--card); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); }
.formpage.narrow { max-width:560px; margin-top:3rem; }
.formpage .head { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; flex-wrap:wrap; margin-bottom:.4rem; }
.formpage h1 { font-size:1.55rem; margin:0 0 .35rem; letter-spacing:-.01em; }
.formpage .head p,.muted { color:var(--muted); margin:.2rem 0; font-size:.92rem; max-width:52ch; }
.formpage .head > div { flex:1 1 auto; min-width:0; }
/* The preconditions are a paragraph of substance, not a one-line sub-head:
   the 52ch measure above is meant for the latter and wrapped this early.
   Must out-rank ".formpage .head p" (two classes + element), so it is
   qualified the same way — a bare ".listing-preconditions p" loses. */
.formpage .head .listing-preconditions p { max-width:none; }
.listing-preconditions { margin:.5rem 0 .9rem; }
.listing-preconditions h3 { font-size:1rem; margin:.8rem 0 .2rem; }
.eyebrow { font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); font-weight:700; margin:0 0 .6rem; }
.seal { background:var(--gold-soft); color:var(--gold); border:1px solid color-mix(in srgb,var(--gold) 40%,transparent); border-radius:999px; font-size:.75rem; font-weight:700; padding:.3rem .75rem; white-space:nowrap; }
.fsec { border:0; margin:2rem 0 0; padding:0; min-width:0; }
.fsec:first-of-type { margin-top:.8rem; }
/* Legacy-style section marker: the heading carries a long underline. */
.fsec > legend { display:block; width:100%; padding:0 0 .45rem; margin:0 0 1.1rem; font-size:1.12rem; font-weight:750; letter-spacing:-.005em; border-bottom:2px solid color-mix(in srgb,var(--accent) 55%,var(--line)); }
.field-group,.rate-fields { border:1px solid var(--line); border-radius:10px; background:var(--field); padding:.85rem; }
.field-group h3,.rate-fields h3 { margin:0 0 .65rem; font-size:.9rem; }
.phone-line { display:flex; flex-wrap:wrap; gap:.7rem; margin-bottom:.7rem; }
.phone-line .phone-extension .in { max-width:6rem; }
.account-panel { border-top:1px solid var(--line); padding-top:1rem; margin-top:1.5rem; }
.account-panel h2 { font-size:1.05rem; margin:0 0 .7rem; }
.account-home,.account-spoke { max-width:760px; }
/* The account home follows the legacy page: a titled rule, one line of
   instruction, a plain list of links, then the status lines. The colour is
   ours — gold for not-live rather than legacy's red, because gold is already
   what the Not-live pill uses and a red banner on someone's own dashboard
   reads as an error rather than a step outstanding. */
.account-identity { display:flex; align-items:center; gap:1rem; margin:.2rem 0 1.4rem; }
.account-whose { margin:.05rem 0; font:700 1.35rem Georgia,serif; color:var(--ink); }
.account-identity p { margin:.1rem 0; color:var(--muted); }
.account-avatar { width:74px; height:74px; flex:0 0 74px; display:grid; place-items:center; overflow:hidden; border-radius:12px; background:var(--accent-soft); color:var(--accent-ink); font:700 1.5rem Georgia,serif; }
.account-avatar img { width:100%; height:100%; object-fit:cover; }
.account-head { margin:.2rem 0 .9rem; padding-bottom:.7rem; border-bottom:2px solid var(--gold); }
.account-lede { margin:.2rem 0 1rem; }
.usermenu { list-style:none; margin:0 0 1.4rem; padding:0; display:grid; }
.usermenu li { display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap; padding:.5rem 0; border-bottom:1px solid var(--line); }
.usermenu li a { font-weight:600; }
.usermenu li small { color:var(--muted); font-size:.84rem; }
.account-status { margin:0 0 1.2rem; }
.account-status-line { margin:.35rem 0; }
.account-status-line b { letter-spacing:.02em; }
.state-live { color:var(--good); }
.state-dark { color:var(--gold); }
.account-status [data-not-live-reasons] { margin:.15rem 0 .8rem; }
.account-picker { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr)); gap:.45rem; margin:.8rem 0 1rem; }
.account-picker .btn { min-width:0; white-space:normal; text-align:left; }
.account-picker [aria-current="page"] { border-color:var(--accent); background:var(--accent-soft); color:var(--accent-ink); }
.account-home-actions { display:flex; align-items:center; gap:1.1rem; flex-wrap:wrap; padding-top:.3rem; }
.account-spoke-head { margin:.1rem 0 .8rem; }
.account-spoke-head h1 { margin:.45rem 0 0; }
.account-spoke .fsec:first-of-type { margin-top:1.25rem; }
.photo-only-form { display:flex; flex:1 1 20rem; align-items:end; gap:.7rem; flex-wrap:wrap; }
.photo-only-form .f { flex:1 1 15rem; margin:0; }
.payment-history { display:grid; }
.payment-history .row { display:flex; justify-content:space-between; gap:1rem; padding:.55rem 0; border-bottom:1px solid var(--line); }
.fsec h2 small { color:var(--muted); font-weight:400; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:.85rem .9rem; }
.grid3 { display:grid; grid-template-columns:.6fr 1fr 1fr; gap:.85rem .9rem; }
.licence-row { display:grid; grid-template-columns:1.1fr 1fr .5fr; gap:.85rem .9rem; }
.name-row { grid-column:1/-1; }
.spaced { margin-top:.85rem; }
.f { display:flex; flex-direction:column; gap:.28rem; }
.f.wide { grid-column:1/-1; }
.f label,fieldset legend,.credential-list-heading { font-size:.78rem; font-weight:650; color:var(--ink); }
.f label small,fieldset legend small,.credential-list-heading small { color:var(--muted); font-weight:400; }
.in { border:1.5px solid var(--line); border-radius:8px; background:var(--card); color:var(--ink); font:inherit; font-size:.92rem; padding:.55rem .7rem; width:100%; }
.in:focus-visible { outline-offset:1px; border-color:var(--accent); }
textarea.in { resize:vertical; line-height:1.5; }
.credential-list { display:grid; gap:.7rem; }
.credential-rows { display:grid; gap:.7rem; }
.credential-entry { min-width:0; margin:0; padding:.75rem; border:1px solid var(--line); border-radius:9px; background:var(--card); }
.credential-entry > legend { width:auto; margin:0; padding:0 .3rem; border:0; color:var(--muted); font-size:.76rem; }
.credential-entry-fields { display:grid; grid-template-columns:1fr 1.25fr 6.5rem; gap:.65rem; }
.credential-entry-detail { grid-column:1/-1; }
.credential-entry-actions,.credential-add { display:none; }
.credential-list.is-enhanced .credential-entry-actions { display:flex; justify-content:flex-end; gap:.8rem; margin-top:.55rem; font-size:.78rem; }
.credential-list.is-enhanced .credential-add { display:inline-block; justify-self:start; }
.credential-entry-actions .link-button:disabled { color:var(--muted); cursor:default; opacity:.55; }
.credential-remove { color:#9d302d; }
.credential-entry > .error { margin-top:.45rem; }
.credential-entry:has(> .error) .in { border-color:#9d302d; box-shadow:0 0 0 2px rgba(157,48,45,.12); }
.file-input { padding:.35rem; }
.count { font-size:.72rem; color:var(--muted); text-align:right; font-variant-numeric:tabular-nums; }
.prov { font-size:.74rem; color:var(--muted); margin:.6rem 0 0; }
.prov b { color:var(--accent); font-weight:600; }
/* Field explanations read as guidance, not as grey furniture — the
   legacy form sets them in the house navy and italics, and at .76rem
   in --muted they were being skipped. */
.hint { font-size:.84rem; color:var(--hint); font-style:italic; line-height:1.45; }
.bio-label-row { display:flex; align-items:baseline; justify-content:space-between; gap:.65rem; flex-wrap:wrap; }
/* Flex, not a max-content grid. The tips panel used to span two
   max-content columns, so its longest line SET those columns' width and
   pushed the row past the page edge (operator, 2026-08-25). As a flex item
   the panel takes the space that is left and wraps inside it. */
.assist-tools-row { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem .75rem; margin-top:.15rem; }
.assist-tools-row > .assist-trigger { position:relative; z-index:1; flex:0 0 auto; }
.assist-trigger { border:0; background:transparent; color:var(--accent); cursor:pointer; font:inherit; font-size:.76rem; font-weight:700; padding:.15rem 0; }
.assist-trigger:focus-visible { outline:2px solid var(--accent); outline-offset:2px; border-radius:4px; }
.assist-trigger:disabled { color:var(--muted); cursor:wait; }
.assist-trigger[aria-busy="true"]::before { content:""; display:inline-block; width:.65rem; height:.65rem; margin-right:.3rem; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; vertical-align:-.08rem; animation:assist-spin .8s linear infinite; }
@keyframes assist-spin { to { transform:rotate(360deg); } }
.useful-tips { color:var(--muted); font-size:.76rem; }
.assist-tools-row > .useful-tips { flex:0 1 auto; min-width:0; }
/* Open, it takes the whole row so the tips read full width beneath the
   controls — the same placement the old grid gave them, without the
   max-content columns that let a long line widen the page. */
.assist-tools-row > .useful-tips[open] { flex-basis:100%; }
.useful-tips > summary { cursor:pointer; font-weight:600; width:max-content; }
/* A caret that flips, so it is obvious the panel closes the same way it
   opened — there was no visible way back. */
.useful-tips > summary::after { content:" \25BE"; }
.useful-tips[open] > summary::after { content:" \25B4"; }
.useful-tips > div { display:flex; flex-direction:column; gap:.2rem; padding:.35rem 0 0 .7rem; min-width:0; overflow-wrap:anywhere; }
.assist-status { display:block; margin-top:.25rem; }
.writing-proposal { border:1px solid var(--line); border-radius:10px; background:var(--field); padding:.75rem; margin-top:.45rem; }
.voice-proposal { border-color:color-mix(in srgb,var(--accent) 45%,var(--line)); }
.about-offer { border-color:color-mix(in srgb,var(--gold) 65%,var(--line)); }
.about-guidance { margin:.7rem 0; padding:.65rem .8rem; border-left:3px solid var(--gold); background:var(--gold-soft); }
.about-guidance ul { margin:.35rem 0 0; padding-left:1.2rem; }
.proposal-label { color:var(--muted); font-size:.8rem; margin:0 0 .55rem; }
.proposal-grid { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; }
.proposal-grid > div { min-width:0; background:var(--card); border:1px solid var(--line); border-radius:8px; padding:.6rem; display:flex; flex-direction:column; }
.proposal-grid h4 { font-size:.74rem; margin:0 0 .35rem; color:var(--muted); }
.proposal-copy { white-space:pre-wrap; overflow-wrap:anywhere; margin:0; font-size:.86rem; line-height:1.45; flex:1; }
.bio-review-moment { margin-top:.8rem; padding:1rem; }
.bio-review-moment > h2 { margin:.1rem 0 .35rem; font-size:1.3rem; }
.bio-review-grid > div { display:block; padding:.8rem; }
.bio-review-grid h3,.bio-review-section h3 { margin:0 0 .55rem; font-size:1rem; }
.bio-answer-list { margin:0; }
.bio-answer-list > div { border-left:3px solid transparent; padding:.45rem .55rem; transition:background .15s ease,border-color .15s ease; }
.bio-answer-list dt { color:var(--muted); font-size:.76rem; font-weight:700; }
.bio-answer-list dd { margin:.18rem 0 0; white-space:pre-wrap; overflow-wrap:anywhere; font-size:.88rem; }
[data-bio-source].is-bio-source { border-left-color:var(--accent); background:var(--accent-soft); }
.bio-sentence-map { margin-top:.75rem; padding-top:.7rem; border-top:1px solid var(--line); line-height:1.8; }
.bio-sentence { color:var(--ink); text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:.08em; text-underline-offset:.16em; border-radius:3px; }
.bio-sentence:hover,.bio-sentence:focus-visible { color:var(--accent-ink); background:var(--accent-soft); outline:2px solid transparent; }
.bio-review-section { margin-top:1rem; }
.bio-flag-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(14rem,1fr)); gap:.65rem; }
.bio-flag-card { border:1px solid var(--line); border-left:3px solid var(--gold); border-radius:8px; background:var(--card); padding:.7rem .8rem; }
.bio-flag-card blockquote { margin:0 0 .45rem; font-weight:650; }
.bio-flag-card p { margin:0; color:var(--muted); font-size:.86rem; }
.bio-left-out-list { margin:.35rem 0 0; padding-left:1.25rem; }
.bio-left-out-list li + li { margin-top:.4rem; }
.bio-history-note { margin:.9rem 0 0; }
.proposal-choice { align-self:flex-start; font-size:.78rem; margin-top:.65rem; padding:.4rem .65rem; }
.proposal-actions { display:flex; align-items:center; gap:.55rem; flex-wrap:wrap; margin-top:.65rem; }
.proposal-actions .btn { font-size:.78rem; padding:.4rem .65rem; }
.error { color:#9d302d; font-size:.78rem; font-weight:650; display:block; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.flash-stack { max-width:720px; margin:0 auto 1rem; }
.flash { padding:.7rem .9rem; border:1px solid var(--line); border-radius:9px; margin:.4rem 0; background:var(--card); }
.flash-success { border-color:var(--accent); background:var(--accent-soft); }
.flash-error { border-color:#9d302d; }
.flash-info,.flash-notice { border-color:var(--gold); background:var(--gold-soft); }
.area-fieldset { border:0; margin:0; padding:0; min-width:0; }
.selected-tags { display:flex; flex-wrap:wrap; gap:.4rem .45rem; min-height:.25rem; margin:.4rem 0; }
.tag { display:inline-flex; align-items:center; gap:.35rem; font-size:.84rem; background:var(--accent-soft); color:var(--accent-ink); border-radius:7px; padding:.3rem .3rem .3rem .6rem; }
.tag button { border:none; background:none; color:inherit; cursor:pointer; font-size:.9rem; line-height:1; padding:.05rem .3rem; border-radius:4px; }
.tag button:hover { background:color-mix(in srgb,var(--accent) 18%,transparent); }
.tag.main { background:var(--accent); color:var(--card); font-weight:650; }
.tag.main button:hover { background:color-mix(in srgb,var(--card) 25%,transparent); }
.areapick { position:relative; }
.areapick > summary { list-style:none; cursor:pointer; display:inline-flex; align-items:center; gap:.3rem; font-size:.84rem; color:var(--accent); border:1.5px dashed color-mix(in srgb,var(--accent) 45%,transparent); border-radius:7px; padding:.3rem .6rem; font-weight:600; }
.areapick > summary::-webkit-details-marker,.areapick .menu details summary::-webkit-details-marker { display:none; }
.areapick[open] > summary { background:var(--accent-soft); }
.areapick .menu { position:absolute; z-index:5; top:calc(100% + .35rem); left:0; background:var(--card); border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); padding:.5rem; min-width:300px; max-height:300px; overflow-y:auto; }
.areapick .menu label { display:flex; gap:.5rem; align-items:center; font-size:.86rem; padding:.35rem .4rem; border-radius:6px; cursor:pointer; }
.areapick .menu label:hover { background:var(--field); }
.areapick .menu input,.checks input,.check input { accent-color:var(--accent); }
.areapick .menu details { margin:0 0 .15rem 1.6rem; }
.areapick .menu details summary { list-style:none; cursor:pointer; font-size:.76rem; color:var(--accent); padding:.1rem .4rem; border-radius:5px; font-weight:600; }
.areapick .menu .subs label { font-size:.82rem; padding:.25rem .4rem .25rem .9rem; }
.checks { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:.15rem .8rem; }
.checks-columnwise { display:block; columns:130px; column-gap:.8rem; }
.checks-columnwise label { break-inside:avoid; }
.checks label { display:flex; gap:.45rem; align-items:center; font-size:.88rem; padding:.22rem 0; }
.checks input { width:1rem; height:1rem; }
.feechoice { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.feechoice-single { grid-template-columns:1fr; }
.feeopt { border:1.5px solid var(--line); border-radius:10px; padding:.8rem .9rem; cursor:pointer; display:flex; gap:.6rem; align-items:flex-start; background:var(--card); }
.feeopt input { margin-top:.2rem; accent-color:var(--accent); }
.feeopt b { display:block; font-size:.92rem; }
.feeopt small { color:var(--muted); font-size:.8rem; line-height:1.45; display:block; margin-top:.15rem; }
.feeopt:has(input:checked) { border-color:var(--accent); background:color-mix(in srgb,var(--accent-soft) 55%,var(--card)); }
.feeopt:has(input:disabled) { opacity:.55; cursor:not-allowed; }
.standard-rate { margin-top:.8rem; }
.rate-row { display:flex; align-items:center; gap:.5rem; }
.rate-input { max-width:120px; }
/* Busy state while a submission is in flight. */
.is-submitting { cursor:progress; }
.btn.is-busy { pointer-events:none; opacity:.8; }
.btn.is-busy::before {
  content:""; display:inline-block; width:.85em; height:.85em; margin-right:.5em;
  vertical-align:-.08em; border:2px solid currentColor; border-right-color:transparent;
  border-radius:50%; animation:jn-spin .7s linear infinite;
}
@keyframes jn-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) {
  .btn.is-busy::before { animation:none; border-right-color:currentColor; opacity:.5; }
}
/* The standard hourly rate only means anything alongside the percentage
   arrangement, so it appears when that box is ticked. Done in CSS so it works
   with scripting off; where :has() is unsupported the rule simply does not
   match and the field stays visible, which is the previous behaviour rather
   than a broken one. The server drops a stale value either way. */
.grid2:has([data-widget="senior-discount-checkbox"] input:not(:checked))
  > [data-catalogue-field="standard_hourly_rate"] { display:none; }
.retainer { margin-top:.7rem; max-width:320px; }
.fee-details { grid-column:1/-1; }
.consultation-minutes { grid-column:1/2; }
.in-minutes { max-width:11rem; }  /* fits "120 minutes" plus the dropdown arrow */
.photorow { display:flex; align-items:center; gap:.9rem; margin-top:.85rem; }
.photoavatar { width:64px; height:64px; border-radius:10px; overflow:hidden; background:linear-gradient(135deg,var(--accent),var(--accent-ink)); color:#fff; font-family:Georgia,serif; font-size:1.4rem; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.photo-preview { width:100%; height:100%; object-fit:cover; }
.check { display:flex; gap:.6rem; align-items:flex-start; padding:.45rem 0; font-size:.9rem; }
.check input { margin-top:.2rem; width:1.05rem; height:1.05rem; flex:0 0 auto; }
.signinnote { font-size:.82rem; color:var(--muted); background:var(--field); border:1px solid var(--line); border-radius:9px; padding:.65rem .8rem; margin-top:.8rem; }
.acceptbar { display:flex; align-items:center; gap:1rem; margin-top:1.2rem; flex-wrap:wrap; }
.acceptbar .btn-primary { font-size:1rem; padding:.7rem 1.4rem; }
.acceptnote { font-size:.82rem; color:var(--muted); }
.statusbar { display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; padding:1rem 1.4rem; border:1px solid var(--line); border-radius:14px 14px 0 0; background:var(--field); }
.statusbar span { color:var(--muted); font-size:.84rem; }
.statusbar .push-right { margin-left:auto; font-weight:600; text-decoration:none; }
.admin-search { margin-top:1.2rem; }
.admin-search-row { display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; margin-top:.35rem; }
.admin-search-row .in { flex:1 1 24rem; max-width:38rem; }
.admin-result-count { margin:1.1rem 0 .7rem; }
.admin-table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:10px; background:var(--card); }
.admin-table { width:100%; min-width:1120px; border-collapse:collapse; font-size:.86rem; }
.admin-table th { background:var(--field); color:var(--muted); font-size:.72rem; letter-spacing:.04em; text-align:left; white-space:nowrap; }
.admin-table th,.admin-table td { border-bottom:1px solid var(--line); padding:.7rem .75rem; vertical-align:top; }
.admin-table tbody tr:last-child td { border-bottom:0; }
.admin-table td:first-child { min-width:12rem; }
.admin-table td:nth-child(2) { min-width:14rem; }
.admin-table td:nth-child(4) { min-width:13rem; }
.admin-sort { display:inline-flex; gap:.15rem; margin-left:.25rem; }
.admin-sort a { color:var(--accent); font-size:.9rem; line-height:1; text-decoration:none; }
.admin-sort a:hover { color:var(--accent-ink); }
.admin-badge { display:inline-flex; align-items:center; gap:.35rem; border-radius:999px; padding:.25rem .55rem; font-size:.74rem; font-weight:700; white-space:nowrap; }
.admin-dot { width:.48rem; height:.48rem; border-radius:50%; background:currentColor; }
.admin-badge-live { color:var(--good); background:var(--accent-soft); }
.admin-badge-not_live { color:var(--muted); background:var(--field); border:1px solid var(--line); }
.admin-badge-restricted { color:var(--danger); background:color-mix(in srgb, var(--danger) 12%, var(--card)); }
.admin-badge-neutral { color:var(--muted); background:var(--field); border:1px solid var(--line); }
.admin-badge-attention { color:#9d302d; background:color-mix(in srgb,#f4c9c5 42%,var(--card)); border:1px solid color-mix(in srgb,#9d302d 38%,var(--line)); }
.admin-pagination { display:flex; align-items:center; gap:.8rem; margin-top:1rem; font-size:.88rem; }
.admin-pagination a { font-weight:650; text-decoration:none; }
.admin-pagination span { color:var(--muted); }
.admin-detail-page { max-width:900px; }
.admin-detail-back { margin-bottom:.7rem !important; font-size:.86rem; }
.admin-detail-back a { font-weight:650; text-decoration:none; }
.admin-identity-card { border:1px solid var(--line); border-radius:12px 12px 0 0; background:var(--field); padding:1.1rem 1.2rem; }
.admin-identity-card h1 { margin-bottom:.2rem; }
.admin-identity-line { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin:.1rem 0 .8rem; color:var(--muted); }
.admin-identity-line a { overflow-wrap:anywhere; }
.admin-badge-row { display:flex; gap:.45rem; flex-wrap:wrap; align-items:center; }
.admin-action-bar { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; border:1px solid var(--line); border-top:0; border-radius:0 0 12px 12px; background:var(--card); padding:.7rem; box-shadow:var(--shadow); }
.admin-action-bar .btn { font-size:.8rem; padding:.45rem .65rem; }
.admin-action-form { display:inline-flex; align-items:center; gap:.35rem; margin:0; }
.admin-action-context { color:var(--muted); font-size:.76rem; font-weight:700; }
.admin-action-help { max-width:12rem; color:var(--muted); font-size:.68rem; line-height:1.25; }
.admin-pause-form { border-left:1px solid var(--line); padding-left:.5rem; }
.admin-pause-form .in { width:9.6rem; padding:.38rem .45rem; font-size:.8rem; }
.admin-detail-folds { display:flex; flex-direction:column; gap:.55rem; margin-top:1rem; }
.admin-detail-fold { border:1px solid var(--line); border-radius:10px; background:var(--card); scroll-margin-top:1rem; overflow:hidden; }
.admin-detail-fold > summary { display:flex; align-items:center; gap:.65rem; min-height:2.9rem; padding:.65rem .8rem; cursor:pointer; list-style:none; }
.admin-detail-fold > summary::-webkit-details-marker { display:none; }
.admin-detail-fold > summary::before { content:"›"; color:var(--accent); font-size:1.2rem; font-weight:800; line-height:1; transition:transform .15s ease; }
.admin-detail-fold[open] > summary::before { transform:rotate(90deg); }
.admin-detail-fold[open] > summary { background:var(--field); }
.admin-detail-fold:target { border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent); }
.admin-fold-title { flex:0 0 9.4rem; color:var(--ink); font-weight:750; }
.admin-fold-facts { flex:1 1 auto; min-width:0; color:var(--muted); font-size:.84rem; overflow-wrap:anywhere; }
.admin-fold-attention { margin-left:auto; }
.admin-fold-body { border-top:1px solid var(--line); padding:.85rem; }
.admin-fold-body > * + * { margin-top:.85rem; }
.admin-fold-body > h3 { margin-bottom:.35rem; font-size:.9rem; }
.admin-fold-body .lockbox + h3 { margin-top:1rem; }
.admin-fold-body article.lockbox + article.lockbox { margin-top:.75rem; }
.admin-fold-body .field-group + .field-group { margin-top:.75rem; }
.admin-evidence { margin:.2rem 0 .55rem; color:var(--muted); font-size:.76rem; }
.admin-evidence > summary { cursor:pointer; font-weight:650; width:max-content; }
.admin-evidence pre { overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; }
.pill-live { background:var(--gold-soft); color:var(--gold) !important; border-radius:999px; font-size:.76rem; font-weight:700; padding:.28rem .7rem; display:inline-flex; gap:.35rem; align-items:center; }
.pill-live .d { width:.5rem; height:.5rem; border-radius:50%; background:var(--gold); }
.not-live-status { padding:.75rem 1.4rem 0; }
.not-live-reasons { display:grid; gap:.4rem; list-style:none; margin:0; padding:0; color:var(--ink); font-size:.82rem; line-height:1.4; max-width:40rem; }
/* Icon, sentence, and — where there is one — the action, on a single row.
   The icon column is fixed so the sentences line up with each other. */
.not-live-reasons li { display:grid; grid-template-columns:1rem 1fr; gap:.5rem; align-items:start; padding-left:.75rem; border-left:2px solid var(--line); }
/* The sentence and its action share the second column, so the action reads
   as part of the row and a wrapped sentence stays clear of the icon. */
.reason-icon { width:1rem; height:1rem; margin-top:.08rem; color:var(--gold); }
.reason-action { font-weight:650; white-space:nowrap; }
.jump { display:flex; gap:.2rem; flex-wrap:wrap; padding:.55rem 1.1rem; border:1px solid var(--line); border-top:0; position:sticky; top:0; background:var(--card); z-index:4; margin-bottom:1rem; }
.jump a { font-size:.84rem; color:var(--muted); text-decoration:none; padding:.35rem .65rem; border-radius:7px; font-weight:600; }
.jump a:hover { background:var(--accent-soft); color:var(--accent-ink); }
.toggle { display:flex; align-items:center; gap:.6rem; background:var(--field); border:1px solid var(--line); border-radius:10px; padding:.7rem .9rem; font-size:.9rem; margin-top:.6rem; }
/* A real control now, so it must look and behave like one: no button
   chrome, a pointer, a visible focus ring, and it submits the form. */
.switch { width:2.4rem; height:1.35rem; border-radius:999px; background:var(--accent); position:relative; flex:0 0 auto; border:0; padding:0; cursor:pointer; -webkit-appearance:none; appearance:none; }
.switch:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
/* Switch first, then the sentence, then the date beside them — the date is
   a qualifier on the pause, not a step before it (operator, 2026-08-25). */
.availability-form.toggle { flex-wrap:wrap; align-items:center; gap:.6rem .9rem; }
.availability-form.toggle > .switch { order:1; }
.availability-form.toggle > span { order:2; flex:1 1 14rem; min-width:0; }
.availability-form.toggle > .f { order:3; flex:0 0 auto; margin:0; }
.availability-form.toggle > .f .in { max-width:10.5rem; }
.availability-form.toggle > .f label { font-size:.8rem; }
.visually-hidden { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.switch::after { content:""; position:absolute; top:.17rem; right:.17rem; width:1rem; height:1rem; border-radius:50%; background:#fff; }
.switch.off { background:var(--line); }
.switch.off::after { right:1.23rem; }
.availability-form { display:flex; gap:.8rem; align-items:end; flex-wrap:wrap; margin-top:.8rem; }
.availability-form.resume-date-form { margin-top:.4rem; }
.availability-form.resume-date-form .f { margin:0; }
.availability-form.resume-date-form .in { max-width:10.5rem; }
.date-input { width:auto; }
.lockbox { background:var(--field); border:1px solid var(--line); border-radius:10px; padding:.9rem 1rem; }
.lockbox .row { display:flex; justify-content:space-between; gap:1rem; font-size:.88rem; padding:.3rem 0; flex-wrap:wrap; }
.lockbox .row span:first-child { color:var(--muted); }
.lockbox .row b { font-weight:650; }
.lockbox .note { font-size:.76rem; color:var(--muted); margin-top:.5rem; border-top:1px solid var(--line); padding-top:.55rem; }
.savebar { display:flex; align-items:center; gap:.9rem; margin-top:1.4rem; border-top:1px solid var(--line); padding-top:1.2rem; flex-wrap:wrap; }
.verified { color:var(--gold); font-weight:700; }
.completeness { display:flex; flex-direction:column; gap:.2rem; font-size:.82rem; background:var(--gold-soft); color:var(--muted); border-radius:9px; padding:.7rem .9rem; margin:1rem 0; }
.completeness b { color:var(--gold); }
.status-actions { display:flex; align-items:center; gap:.8rem; }
.code-input { max-width:10rem; font-size:1.35rem; letter-spacing:.25em; font-variant-numeric:tabular-nums; }
.payment-page { max-width:620px; }
.registration-progress { margin:.8rem 0 1rem; }
.registration-progress progress { display:block; width:100%; height:.65rem; accent-color:var(--accent); }
.registration-progress ol { display:flex; flex-wrap:wrap; gap:.4rem 1.5rem; margin:.75rem 0; padding-left:1.3rem; font-size:.8rem; }
.registration-progress li { padding-right:.3rem; max-width:100%; overflow-wrap:anywhere; }
.registration-progress li[aria-current="step"] { font-weight:700; color:var(--accent-ink); }
.additional-languages summary { cursor:pointer; overflow-wrap:anywhere; }
.additional-languages .checks { margin-top:.75rem; }
[data-listing-form] [aria-invalid="true"] { border-color:var(--danger, #b42318); }
[data-listing-form] :target { scroll-margin-top:1.5rem; }
.registration-autosave-note { margin:.75rem 0 1.15rem; padding:.75rem .9rem; border-radius:9px; background:var(--accent-soft); color:var(--accent-ink); font-size:.88rem; }
.registration-autosave-note[data-save-state="saving"] { opacity:.8; }
.registration-autosave-note[data-save-state="saved"] { font-weight:600; }
.registration-autosave-note[data-save-state="failed"],
.registration-autosave-note[data-save-state="stale"] { background:#fff2df; color:#753c00; }

.registration-navigation { display:flex; justify-content:space-between; align-items:center; gap:.8rem; margin-top:1.4rem; border-top:1px solid var(--line); padding-top:1.2rem; }
.registration-navigation .btn-primary { order:2; margin-left:auto; }
.registration-navigation .btn-ghost { order:1; }
.registration-review { margin:1rem 0 1.4rem; }
.registration-review > h2 { font:700 1.35rem Georgia,serif; }
.registration-review-section { border:1px solid var(--line); border-radius:9px; padding:.75rem .9rem; margin:.65rem 0; background:var(--field); }
.registration-review-next { border-style:dashed; }
.registration-review-next p { margin:.5rem 0 0; }
.account-about-missing { border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line)); border-radius:10px; padding:1rem 1.1rem; margin:1.1rem 0 0; background:var(--field); }
.about-primary-save { margin:.9rem 0 .2rem; }
.guided-about-alternative { margin-top:1.4rem; border-top:1px solid var(--line); padding-top:.9rem; }
.guided-about-alternative > summary { font-weight:650; cursor:pointer; }
.account-about-missing h2 { margin:0 0 .4rem; font-size:1.1rem; }
.account-about-missing p { margin:.45rem 0 0; max-width:62ch; }
.account-about-missing p:last-child { margin-top:.8rem; }
.registration-review-heading { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; }
.registration-review-heading h3 { margin:0; font-size:1rem; }
.registration-review-heading a { font-size:.82rem; font-weight:650; }
.registration-review dl { margin:.55rem 0 0; }
.registration-review dl > div { display:grid; grid-template-columns:minmax(9rem,.7fr) minmax(0,1.3fr); gap:.5rem 1rem; padding:.25rem 0; }
.registration-review dt { color:var(--muted); }
.registration-review dd { margin:0; overflow-wrap:anywhere; }
.payment-summary { border:1px solid var(--line); border-radius:10px; margin:1.1rem 0; padding:.65rem .85rem; background:var(--field); }
.payment-summary > div { display:flex; justify-content:space-between; gap:1rem; padding:.35rem 0; font-size:.9rem; }
.payment-summary span { color:var(--muted); }
.payment-summary .payment-total { border-top:1px solid var(--line); margin-top:.25rem; padding-top:.65rem; font-size:1rem; }
.payment-summary .payment-total span,.payment-summary .payment-total b { color:var(--ink); }
[data-dropin-container] { min-height:11rem; }
.etransfer { border-top:1px solid var(--line); margin-top:1.5rem; padding-top:1rem; }
.etransfer summary { color:var(--accent); cursor:pointer; font-weight:650; }
.etransfer p { color:var(--muted); font-size:.88rem; }
.etransfer form { margin-top:.8rem; }
.public-profile { max-width:820px; margin:1.5rem auto 3rem; padding:0; overflow:visible; }
.public-profile h1 { font-size:clamp(1.8rem,7vw,2.6rem); line-height:1.08; margin:.15rem 0; overflow-wrap:anywhere; }
.profile-identity { display:grid; gap:1rem; padding:1.25rem; background:var(--accent-soft); border-radius:12px 12px 0 0; }
.profile-portrait { width:104px; height:132px; }
.public-photo,.profile-initials { display:grid; place-items:center; width:100%; height:100%; border-radius:12px; }
.public-photo { object-fit:cover; }
.profile-initials { background:var(--accent); color:var(--card); font:700 2rem Georgia,serif; letter-spacing:.04em; }
.profile-identity-copy { min-width:0; }
.profile-profession { margin:.35rem 0 0; font-weight:750; }
.profile-main-areas { margin:.2rem 0; font-family:Georgia,serif; font-size:1.05rem; }
.profile-place { margin:.2rem 0; color:var(--muted); overflow-wrap:anywhere; }
.profile-badges { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.8rem; }
.profile-badge { border:1px solid var(--line); border-radius:999px; background:var(--card); padding:.3rem .65rem; font-size:.78rem; font-weight:700; line-height:1.3; }
.availability-open { color:var(--accent-ink); }
.availability-paused { color:var(--gold); background:var(--gold-soft); }
.consultation-badge { color:var(--accent-ink); }
.profile-section,.before-call,.profile-footer { margin:0 1.25rem; padding:1.25rem 0; border-top:1px solid var(--line); }
.profile-section h2,.before-call h2 { margin:0 0 .65rem; font:700 1.3rem Georgia,serif; }
.profile-section p,.before-call p { margin:.45rem 0; }
.primary-call { display:flex; align-items:baseline; gap:.35rem .7rem; flex-wrap:wrap; padding:.75rem .85rem; border-radius:10px; background:var(--accent); color:var(--card); }
.primary-call > span:first-child { flex-basis:100%; font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.primary-call a { color:inherit; font-size:1.3rem; font-weight:750; text-decoration-thickness:.08em; overflow-wrap:anywhere; }
.primary-call-paused { background:var(--field); color:var(--muted); border:1px solid var(--line); }
.paused-note { color:var(--muted); }
.reach-details,.profile-facts { display:grid; grid-template-columns:1fr; gap:.2rem .9rem; margin:.8rem 0 0; }
.reach-details dt,.profile-facts dt { color:var(--muted); margin-top:.45rem; }
.reach-details dd,.profile-facts dd { margin:0; min-width:0; overflow-wrap:anywhere; }
.mobile-sticky-call { display:none; }
.before-call { background:var(--field); padding:1rem; margin-top:1rem; border:1px solid var(--line); border-radius:10px; }
.before-call ul,.cost-details { margin:.55rem 0 0; padding-left:1.25rem; }
.before-call li + li,.cost-details li + li { margin-top:.3rem; }
.profile-about { white-space:pre-line; overflow-wrap:anywhere; }
.profile-summary { font-family:Georgia,serif; font-size:1.14rem; font-weight:650; }
.practice-chips { display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; margin:0; padding:0; }
.practice-chip { border:1px solid var(--line); border-radius:999px; background:var(--field); padding:.42rem .7rem; line-height:1.25; }
.practice-chip-main { background:var(--accent-soft); border-color:var(--accent); }
.practice-chip span { color:var(--muted); font-size:.72rem; font-weight:700; text-transform:uppercase; white-space:nowrap; }
.office-grid { display:grid; gap:1rem; }
.office-grid address { font-style:normal; }
.map-note,.office-map figcaption { color:var(--muted); font-size:.82rem; }
.office-map { margin:0; min-width:0; }
.office-map img { display:block; width:100%; height:auto; aspect-ratio:2/1; object-fit:cover; border:1px solid var(--line); border-radius:10px; }
.office-map figcaption { margin-top:.3rem; }
.profile-section.credentials-block { margin-top:0; padding-top:1.25rem; }
.credential-confirmed { color:var(--accent-ink); font-size:.76rem; font-weight:700; }
.profile-footer { font-weight:700; }
.location-choices { margin:1rem 0 0; padding:.8rem; border:1px solid var(--line); border-radius:9px; }
.location-choices legend { width:auto; margin:0; padding:0 .25rem; border:0; font-size:.86rem; }
.location-choices label { display:flex; align-items:flex-start; gap:.5rem; padding:.35rem 0; font-size:.88rem; }
.location-choices input { margin-top:.25rem; accent-color:var(--accent); }
.location-choices .hint { margin:.4rem 0 0; }
.locality-editor { margin-top:1rem; padding:.9rem; border:1px solid var(--line); border-radius:9px; background:var(--surface-2); }
.locality-editor.locality-promoted { border-width:2px; border-color:var(--accent); background:var(--surface); }
.locality-editor .count { display:block; margin-top:.2rem; }
.locality-display-row { display:flex; align-items:center; justify-content:space-between; gap:.55rem 1rem; flex-wrap:wrap; }
.locality-actions { display:inline-flex; align-items:center; gap:.75rem; flex-wrap:wrap; }
.locality-actions .link-button,.locality-remove-pending .link-button { color:var(--accent); }
.locality-changed { margin:.65rem 0 0; font-size:.9rem; }
.locality-changed .locality-actions { margin-left:.55rem; }
.locality-remove-pending { margin:0; }
.locality-suggestions { margin-top:.75rem; }
.locality-suggestions > p:first-child { margin:0 0 .45rem; font-size:.84rem; font-weight:650; }
.locality-chips { display:flex; flex-wrap:wrap; gap:.45rem; }
.locality-chip { border:1px solid var(--accent); border-radius:999px; background:var(--surface); color:var(--accent-ink); padding:.38rem .68rem; font:inherit; font-size:.82rem; line-height:1.3; cursor:pointer; }
.locality-chip:hover,.locality-chip:focus-visible { background:var(--accent); color:#fff; }
.locality-caution { margin:.65rem 0 0; }
.osm-attribution { margin:.35rem 0 0; color:var(--muted); font-size:.72rem; }
.locality-warning { margin:.7rem 0 0; padding:.55rem .7rem; border-left:3px solid var(--gold); background:var(--gold-tint); font-size:.84rem; }
.listing-completeness { margin:1rem 0 1.25rem; padding:1rem; border:1px solid var(--line); border-radius:10px; background:var(--surface-2); }
.listing-completeness-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; }
.listing-completeness-heading h2,.listing-completeness-heading p { margin:0; }
.listing-completeness-heading strong { font-size:1.35rem; color:var(--accent-ink); }
.listing-completeness progress { width:100%; height:1rem; margin:.65rem 0 .8rem; accent-color:var(--accent); }
.listing-completeness-group + .listing-completeness-group { margin-top:.8rem; padding-top:.7rem; border-top:1px solid var(--line); }
.listing-completeness-group h3 { margin:0 0 .35rem; font-size:.82rem; text-transform:uppercase; letter-spacing:.035em; }
.listing-completeness-group[data-completeness-kind="makes your listing stronger"] h3 { color:var(--muted); }
.listing-completeness-group ul { list-style:none; margin:0; padding:0; display:grid; gap:.25rem; }
.listing-completeness-group li { display:flex; gap:.45rem; align-items:baseline; font-size:.9rem; }
.listing-completeness-group .is-done { color:var(--muted); }
.confirmation-current-about { margin:.8rem 0; padding:.75rem .85rem; border-left:3px solid var(--accent); background:var(--surface-2); }
.confirmation-current-about h3,.confirmation-current-about p { margin:.15rem 0; }
@media(min-width:640px) {
  .profile-identity { grid-template-columns:140px minmax(0,1fr); align-items:start; padding:1.6rem; }
  .profile-portrait { width:140px; height:180px; }
  .profile-section,.profile-footer { margin-left:1.6rem; margin-right:1.6rem; }
  .before-call { margin-left:1.6rem; margin-right:1.6rem; }
  .reach-details,.profile-facts { grid-template-columns:minmax(9rem,auto) minmax(0,1fr); }
  .reach-details dt,.profile-facts dt { margin-top:0; }
  .office-grid { grid-template-columns:minmax(10rem,.8fr) minmax(0,1.4fr); align-items:start; }
}
@media(max-width:720px) {
  body { padding-left:.7rem; padding-right:.7rem; }
  /* Below this width the links get their own full-width row under the brand
     and read left-to-right, instead of being squeezed against the edge. */
  .nav > .links { flex-basis:100%; justify-content:flex-start; gap:.45rem 1rem; }
  .profession-choice { border-left:0; padding-left:0; }
  .links a,.link-button { padding:.15rem 0; }
  .hero,.grid2,.grid3,.licence-row,.feechoice,.join-steps,.join-grid,.join-profession-cards,.credibility,.phone-line,.proposal-grid { grid-template-columns:1fr; }
  .credential-entry-fields { grid-template-columns:1fr; }
  .credential-entry-detail { grid-column:auto; }
  .registration-review dl > div { grid-template-columns:1fr; gap:.1rem; }
  .footer-cta { align-items:flex-start; flex-direction:column; }
  .formpage { padding:1.2rem .85rem; }
  .usermenu li { flex-direction:column; gap:.1rem; }
  .account-identity { align-items:flex-start; }
  .account-avatar { width:58px; height:58px; flex-basis:58px; }
  .areapick .menu { position:static; min-width:0; width:100%; }
  .admin-action-bar { align-items:stretch; }
  .admin-action-form { flex:1 1 auto; }
  .admin-pause-form { flex-basis:100%; border-left:0; border-top:1px solid var(--line); padding:.55rem 0 0; }
  .admin-detail-fold > summary { align-items:flex-start; flex-wrap:wrap; gap:.25rem .55rem; }
  .admin-fold-title { flex-basis:calc(100% - 1.8rem); }
  .admin-fold-facts { flex-basis:100%; padding-left:1.8rem; }
  .admin-fold-attention { margin-left:1.8rem; }
  .mobile-sticky-call { position:sticky; bottom:.5rem; z-index:5; display:block; width:calc(100% - 1.4rem); margin:.5rem .7rem; padding:.7rem .9rem; border-radius:10px; background:var(--accent); color:var(--card); text-align:center; text-decoration:none; font-weight:750; box-shadow:var(--shadow); }
  .mobile-sticky-call-paused { background:var(--field); color:var(--muted); border:1px solid var(--line); }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .assist-trigger[aria-busy="true"]::before { animation:none; } }
.error-summary { border:1.5px solid #9d302d; border-radius:10px; padding:.9rem 1.1rem; margin:0 0 1.1rem; background:#fdf3f2; }
.error-summary b { color:#9d302d; }
.error-summary ul { margin:.5rem 0 0; padding-left:1.2rem; }
.error-summary a { color:#9d302d; font-weight:600; }

/* Error visibility (operator, 2026-08-10): red-border invalid fields. */
.f:has(> .error) .in, .f:has(> .error) select.in { border-color:#9d302d; box-shadow:0 0 0 2px rgba(157,48,45,.12); }
.in-salutation { max-width:8rem; }
.in-name { max-width:20rem; }
.in-year { max-width:6.5rem; }
.profession-options { display:flex; flex-wrap:wrap; gap:.7rem 1rem; margin-bottom:.8rem; }
.profession-options label { display:flex; align-items:center; gap:.4rem; border:1px solid var(--line); border-radius:8px; padding:.55rem .75rem; background:var(--field); font-weight:650; }
.profession-options input { accent-color:var(--accent); }
.accreditation-body + .accreditation-body { margin-top:.75rem; }
.accreditation-row { display:flex; align-items:center; justify-content:space-between; gap:.7rem; break-inside:avoid; padding:.22rem 0; }
.accreditation-row > label { display:flex; align-items:center; gap:.45rem; font-size:.88rem; }
.accreditation-year { flex:0 0 6.5rem; }
.credentials-block { border-top:1px solid var(--line); margin-top:1.1rem; padding-top:.9rem; }
.credentials-block h2 { font-size:1rem; margin:0 0 .35rem; }
.credentials-block ul { margin:.2rem 0 0 1.2rem; padding:0; }
.credentials-block li { font-size:.9rem; }
.in-lso { max-width:8rem; }
.profession-plain { margin:0 0 1.1rem; }
.profession-plain .f { flex-direction:row; align-items:center; gap:.6rem; }
.profession-plain label { font-size:.95rem; font-weight:400; color:var(--ink); text-transform:none; }
.website-prefill { display:flex; align-items:end; justify-content:space-between; gap:.8rem 1rem; flex-wrap:wrap; border:1px solid var(--line); border-radius:10px; background:var(--field); padding:.75rem .85rem; margin:.2rem 0 1rem; }
.website-prefill h2 { font-size:.92rem; margin:0; }
.website-prefill p { color:var(--muted); font-size:.8rem; margin:.1rem 0 0; }
.website-prefill-controls { display:grid; grid-template-columns:minmax(12rem,1fr) max-content; gap:.35rem .55rem; align-items:end; flex:1 1 25rem; }
.website-prefill-controls label { grid-column:1/-1; font-size:.76rem; font-weight:650; }
.website-prefill-controls .btn { white-space:nowrap; }
.f.inline-field { flex-direction:row; align-items:center; gap:.6rem; }
.in::placeholder { color:color-mix(in srgb,var(--muted) 55%,transparent); opacity:1; }
.accr-org { display:flex; flex-wrap:wrap; align-items:baseline; gap:.4rem .9rem; padding:.35rem 0; border-top:1px solid var(--line); }
.accr-org:first-of-type { border-top:none; }
.accr-org-name { flex:0 0 15rem; font-weight:650; font-size:.9rem; }
.accr-org-items { display:flex; flex-wrap:wrap; gap:.35rem 1.1rem; }
.accr-item { display:inline-flex; align-items:center; gap:.45rem; }
.accr-item .in-year { max-width:5.5rem; }
/* Right-size inputs to their content (PS59); columns stay responsive. */
#title { max-width:9rem; }
#first_name,#middle_name,#last_name { max-width:20rem; }
#credentials_suffix { max-width:16rem; }
#postal { max-width:8rem; }
#city { max-width:16rem; }
#office_phone,#alt_phone,#fax { max-width:13rem; }
#office_phone_ext,#alt_phone_ext { max-width:6rem; }
#practising_since { max-width:6.5rem; }
#free_consultation,#limited_scope,#wheelchair,#virtual_services { max-width:11rem; }
#retainer_range { max-width:14rem; }
#category { max-width:13rem; }
#website_prefill_url { max-width:28rem; }
@media(max-width:520px) { .website-prefill-controls { grid-template-columns:1fr; } .website-prefill-controls label { grid-column:auto; } .website-prefill-controls .btn { justify-self:start; } }

/* ADMIN-LIST legacy treatment (operator ruling 2026-08-20): the
   professionals overview follows the legacy admin grammar — plain
   underlined title, boxed tinted Search fieldset, dense striped table
   with a solid header band and count/pager info bands — in the house
   palette. Scoped under .admin-legacy; other admin pages unaffected. */
.admin-legacy .admin-table-wrap { border-radius:0; }
.admin-pager { display:inline-flex; align-items:center; gap:.7rem; }
.admin-pager a { font-weight:650; text-decoration:none; }

/* Legacy treatment, second ruling (operator 2026-08-20): admin pages
   break out of the narrow card and span the full screen, and the
   professional DETAIL page drops the badge pills for plain legacy text.
   Everything scoped under .admin-legacy. */
.formpage.admin-legacy { max-width:none; margin:0; background:transparent; border:0; border-radius:0; box-shadow:none; padding:1rem 1.6rem 2rem; }
.admin-legacy .admin-table { min-width:0; }
.admin-legacy .admin-identity-card { border-radius:0; background:var(--field); padding:.9rem 1.1rem .7rem; }
.admin-legacy .admin-identity-card h1 { font-size:1.3rem; letter-spacing:-.005em; }
.admin-legacy .admin-action-bar { border-radius:0; box-shadow:none; }
/* Badge pills become plain separated text; the colored dot goes away.
   Attention states keep a dark-red emphasis so scanning still works. */
.admin-legacy .admin-badge-row { display:flex; flex-wrap:wrap; gap:.3rem .45rem; margin-top:.5rem; padding-top:.45rem; border-top:1px solid var(--line); }
/* Folds: square, dense, tinted summary band like the legacy info rows. */
.admin-legacy .admin-detail-fold { border-radius:0; }
.admin-legacy .admin-detail-fold > summary { min-height:2.3rem; padding:.45rem .7rem; background:var(--field); font-size:.85rem; }
.admin-legacy .admin-detail-folds { gap:.35rem; }
.admin-legacy .admin-fold-facts { font-size:.78rem; }

/* PS77b: the page shell's <main> cap was the remaining inner box on
   admin pages — lift it wherever a legacy-treatment page is present. */
main:has(.admin-legacy) { max-width:none; }

.preview-banner { display:grid; gap:.35rem; margin:0 0 1.2rem; padding:.8rem 1rem; border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:10px; background:var(--field); font-size:.86rem; }
.preview-banner ul { margin:0; padding-left:1.1rem; }
.preview-banner a { font-weight:600; }

/* ------------------------------------------------------------------ admin
   The professionals roster is a working list, not a reading page: an
   administrator scans many rows to find the few needing action, so the
   density target is "as many complete rows on one screen as stay legible".
   Every colour comes from the shared tokens, so both themes follow. */
body.admin-app { background:var(--paper); }
/* The public card is pulled up by -112px so it overlaps the coloured
   band. The admin shell has no band, so that margin would slide the
   whole workspace up underneath the bar and clip it. */
body.admin-app .site-content { max-width:none; margin:0; padding:1rem 1.25rem 2.5rem;
  border-radius:0; box-shadow:none; min-height:0; background:transparent; }

.admin-bar { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; padding:.5rem 1.25rem; background:var(--card); border-bottom:1px solid var(--line); }
.admin-bar-brand { display:inline-flex; align-items:center; gap:.5rem; text-decoration:none; color:var(--ink); font-size:.95rem; }
.admin-bar-brand b { color:var(--accent-ink); }
.admin-bar-seal { width:18px; height:18px; border-radius:50%; background:var(--accent); flex:0 0 auto; }
.admin-bar-nav { display:flex; gap:.15rem; flex-wrap:wrap; }
.admin-bar-nav a { padding:.3rem .6rem; border-radius:7px; text-decoration:none; color:var(--muted); font-size:.85rem; }
.admin-bar-nav a:hover { background:var(--field); color:var(--ink); }
.admin-bar-nav a.is-current { background:var(--accent-soft); color:var(--accent-ink); font-weight:700; }
.admin-bar-identity { margin-left:auto; display:flex; align-items:center; gap:.7rem; color:var(--muted); font-size:.8rem; }
.admin-bar-stepup { font-weight:700; }
.admin-bar-stepup.is-fresh { color:var(--good); }

.admin-filters { border:1px solid var(--line); border-radius:10px; background:var(--card); padding:.6rem .75rem; margin:0 0 .6rem; }
.admin-filters-row { display:flex; gap:.5rem; flex-wrap:wrap; align-items:flex-end; }
.admin-field { display:flex; flex-direction:column; gap:.15rem; min-width:8.5rem; }
.admin-field-wide { flex:1 1 20rem; }
.admin-field > span { font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); font-weight:700; }
.admin-field .in { padding:.35rem .5rem; font-size:.84rem; }
.admin-filters-actions { display:flex; align-items:center; gap:.6rem; }
.admin-filters-actions .btn { padding:.4rem .9rem; }

.admin-listbar { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; padding:.25rem .1rem .5rem; font-size:.84rem; color:var(--muted); }
.admin-listbar .admin-pager { margin-left:auto; }
.admin-listbar-foot { padding-top:.6rem; }
.admin-pager { display:inline-flex; align-items:center; gap:.6rem; }

/* Two facts per cell: the answer on the first line, its qualifier on the
   second. This is what buys the extra columns without a taller row. */
.admin-roster { min-width:1180px; font-size:.82rem; }
.admin-roster th, .admin-roster td { padding:.3rem .55rem; vertical-align:top; }
.admin-roster th { position:sticky; top:0; z-index:1; background:var(--field); font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; }
.admin-roster tbody tr:nth-child(even) { background:color-mix(in srgb, var(--field) 55%, var(--card)); }
.admin-roster tbody tr:hover { background:var(--accent-soft); }
.admin-roster .sub { display:block; color:var(--muted); font-size:.74rem; line-height:1.25; margin-top:.05rem; overflow-wrap:anywhere; }
.admin-roster .sub.reasons { color:var(--danger); font-weight:600; }
.admin-roster .warn { color:var(--danger); }
.admin-roster .num { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.admin-roster th.num { text-align:right; }
.admin-roster .who-name { font-weight:700; text-decoration:none; }
.admin-roster .who-name:hover { text-decoration:underline; }
.admin-roster .cell-who { min-width:13rem; }
.admin-roster .cell-contact { min-width:12rem; }
.admin-roster .cell-publication { min-width:11rem; }
.admin-roster .cell-links { white-space:nowrap; }
.admin-roster .cell-links a { margin-right:.5rem; }
.admin-roster .items { font-weight:700; }
.admin-roster .admin-badge { padding:.1rem .45rem; font-size:.7rem; }

.admin-sort { display:inline-flex; align-items:center; gap:.25rem; text-decoration:none; color:inherit; }
.admin-sort span { opacity:.45; font-size:.7rem; }
.admin-sort.is-active { color:var(--accent-ink); }
.admin-sort.is-active span { opacity:1; }

/* The one control the legacy tools had that this page lacked. */
.toggle { display:inline-flex; align-items:center; gap:.35rem; border:1px solid var(--line); border-radius:999px; background:var(--card); color:var(--ink); font:inherit; font-size:.72rem; font-weight:700; padding:.12rem .5rem; cursor:pointer; }
.toggle .dot { width:.5rem; height:.5rem; border-radius:50%; background:var(--good); }
.toggle.is-paused .dot { background:var(--gold); }
.toggle.is-paused { color:var(--gold); border-color:color-mix(in srgb, var(--gold) 45%, var(--line)); }
.toggle:hover { border-color:var(--accent); }
.toggle:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }

@media (max-width:900px) {
  .admin-bar-identity { margin-left:0; }
  body.admin-app .site-content { padding:.75rem .6rem 2rem; }
}

/* ------------------------------------------------ admin: one professional
   The record was a single narrow column of thirteen collapsed rows, each
   showing a one-line digest across the full width of a 1680px screen. The
   portrait sat full-width between the name and the details, so it read as a
   banner rather than as part of the identity. */
.admin-identity-row { display:flex; align-items:flex-start; gap:1rem; }
.admin-identity-text { flex:1 1 auto; min-width:0; }
.admin-avatar { flex:0 0 auto; width:74px; height:74px; border-radius:12px; object-fit:cover; border:1px solid var(--line); background:var(--field); }
.admin-avatar-blank { display:inline-flex; align-items:center; justify-content:center; font-weight:700; font-size:1.5rem; color:var(--muted); letter-spacing:.02em; }
.admin-blockers { margin:.5rem 0 0; color:var(--danger); font-size:.86rem; }
.admin-blockers b { font-weight:700; }

/* Two columns of folds: twice as much of the record is legible before
   anything is expanded, and an expanded section keeps its own height. */
.admin-detail-folds { display:grid; gap:.5rem; align-items:start; }
@media (min-width:1100px) {
  .admin-detail-folds { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  /* Anything an operator opens to work in gets the full width. */
  .admin-detail-folds > details[open] { grid-column:1 / -1; }
}
/* Administration evidence must scroll within its own block at narrow widths. */
.admin-app .formpage, .admin-app .fsec, .admin-app .lockbox,
.admin-app .grid2 > *, .admin-app .head > *, .admin-app .row > * {
  min-width: 0;
  max-width: 100%;
}
.admin-app .formpage { overflow-wrap: anywhere; }
.admin-app pre { max-width: 100%; overflow-x: auto; white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-app .in { min-width: 0; max-width: 100%; box-sizing: border-box; }
.admin-app .field-group > label { display: block; }
.admin-app .field-group > label .in, .admin-app .grid2 > label .in { display: block; width: 100%; }
.admin-app .admin-action-form { min-width: 0; max-width: 100%; flex-wrap: wrap; }
.admin-app .btn { white-space: normal; overflow-wrap: anywhere; }
.admin-app .admin-badge { white-space: normal; max-width: 100%; overflow-wrap: anywhere; }
@media (max-width: 480px) {
  .admin-app .admin-action-form, .admin-app .admin-action-form .in { width: 100%; }
  .admin-app .row { flex-wrap: wrap; gap: .5rem; }
  .admin-app .row > b { text-align: left; }
}

/* Keep the client entry and profession entry visible beside the language menu. */
body.profile-page header.jn_header .jn-header-tools {
  flex-wrap: wrap;
  row-gap: 8px;
}

/* Shared professional footer: existing colours, clear groups and touch targets. */
.professional-footer .footer-grid { grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:32px 64px; padding-top:36px; padding-bottom:24px; }
.professional-footer .footer-brand { display:inline-flex; align-items:center; gap:13px; margin-bottom:15px; text-decoration:none; }
.professional-footer .footer-brand strong { display:block; font-family:var(--serif); font-size:25px; font-weight:500; line-height:1.15; }
.professional-footer .footer-brand small { display:block; margin-top:4px; color:var(--white-60); font-size:13px; }
.professional-footer .footer-intro p { max-width:40ch; margin:0; font-size:14px; line-height:1.7; }
.professional-footer .footer-links ul { gap:2px; }
.professional-footer .footer-links a { display:inline-block; padding:6px 0; font-size:14px; line-height:1.45; }
.professional-footer a:focus-visible { outline:2px solid var(--gold); outline-offset:4px; border-radius:2px; }
.professional-footer .footer-bottom { grid-column:1/-1; border-top:1px solid var(--white-12); padding-top:20px; display:grid; grid-template-columns:minmax(230px,1fr) minmax(0,2fr); gap:12px 36px; }
.professional-footer .footer-bottom p { margin:0; font-size:12px; line-height:1.65; }
.professional-footer .footer-copyright { color:var(--white-80); }
.professional-footer .footer-disclaimer { max-width:80ch; color:var(--white-60); }
@media(max-width:800px) {
 .professional-footer .footer-grid { grid-template-columns:1fr; gap:24px; }
 .professional-footer .footer-intro { grid-column:1/-1; }
 .professional-footer .footer-intro p { max-width:65ch; }
 .professional-footer .footer-bottom { grid-template-columns:1fr; gap:8px; }
 .professional-footer .footer-links a { min-height:44px; padding:10px 0; }
}

/* Covered office number is offered by the mobile call bar once. */
@media (max-width:1023px){
  body.profile-page .main .reveal-form.reveal-mobile-duplicate{display:none}
}

.profession-switch{max-width:1120px;margin:0 auto;padding:12px 24px;font-size:15px}
