/* Lighthouse shell — design tokens and layout lifted from the approved
   clickable prototype (prototype.html), trimmed to what the app uses.
   Light + dark via prefers-color-scheme and [data-theme]. */

:root{
  --surface-page:#F1F4F3; --surface-card:#FFFFFF; --surface-sunken:#E7ECEA; --surface-rail:#FAFBFB;
  --border:#DBE2E0; --border-strong:#C2CDCA;
  --text-primary:#0F1E22; --text-secondary:#566461; --text-muted:#85918F;
  --accent:#17627A; --accent-bg:#E4F0F3; --accent-border:#A9CFD9; --accent-fg:#FFFFFF;
  --warn:#8F5D10; --warn-bg:#F7EEDC; --warn-dot:#C8891F;
  --danger:#9C2E29; --danger-bg:#F9E8E6; --danger-border:#E5BDB8;
  --success:#2E6B47; --success-bg:#E6F0E9;
  --radius:6px; --radius-lg:10px;
  --font-ui:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-data:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --surface-page:#0C1618; --surface-card:#121F22; --surface-sunken:#0F1A1C; --surface-rail:#101B1E;
    --border:#24383B; --border-strong:#375054;
    --text-primary:#E6EDEC; --text-secondary:#9FB0AE; --text-muted:#6F817F;
    --accent:#5BB6C9; --accent-bg:#10333B; --accent-border:#1F5765; --accent-fg:#06181D;
    --warn:#E0A94A; --warn-bg:#332913; --warn-dot:#E0A94A;
    --danger:#E8918A; --danger-bg:#361B18; --danger-border:#5B2A25;
    --success:#7FC08F; --success-bg:#152C1D;
  }
}
:root[data-theme="dark"]{
  --surface-page:#0C1618; --surface-card:#121F22; --surface-sunken:#0F1A1C; --surface-rail:#101B1E;
  --border:#24383B; --border-strong:#375054;
  --text-primary:#E6EDEC; --text-secondary:#9FB0AE; --text-muted:#6F817F;
  --accent:#5BB6C9; --accent-bg:#10333B; --accent-border:#1F5765; --accent-fg:#06181D;
  --warn:#E0A94A; --warn-bg:#332913; --warn-dot:#E0A94A;
  --danger:#E8918A; --danger-bg:#361B18; --danger-border:#5B2A25;
  --success:#7FC08F; --success-bg:#152C1D;
}

*{box-sizing:border-box}
body{margin:0;background:var(--surface-page);color:var(--text-primary);font-family:var(--font-ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
.num{font-variant-numeric:tabular-nums}
svg.i{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
svg.i.sm{width:15px;height:15px}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}

.app{display:grid;grid-template-columns:198px minmax(0,1fr);min-height:100vh}
.rail{background:var(--surface-rail);border-right:1px solid var(--border);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:14px 10px;gap:2px;overflow-y:auto}
.brand{display:flex;align-items:center;gap:9px;padding:4px 8px 14px}
.brand-mark{width:26px;height:26px;border-radius:7px;background:var(--text-primary);color:var(--surface-card);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex:none}
.brand-name{font-size:14px;font-weight:600;letter-spacing:-0.01em}
.brand-sub{font-size:11px;color:var(--text-muted)}
.nav-item{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:var(--radius);font-size:13px;color:var(--text-secondary);background:none;border:0;width:100%;text-align:left;cursor:pointer;font-family:inherit;text-decoration:none}
.nav-item:hover{background:var(--surface-sunken);color:var(--text-primary)}
.nav-item[aria-current="page"]{background:var(--accent-bg);color:var(--accent);font-weight:500}
.nav-count{margin-left:auto;font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}
.nav-sep{height:1px;background:var(--border);margin:10px 4px}
.nav-label{font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted);padding:6px 9px 3px}

.topbar{position:sticky;top:0;z-index:20;background:var(--surface-page);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:10px 22px}
.search{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;color:var(--text-muted);font-size:12.5px;background:var(--surface-card);min-width:280px}
.search input{border:0;background:none;outline:none;flex:1;font:inherit;color:var(--text-primary);padding:0}
.avatar{width:26px;height:26px;border-radius:50%;background:var(--surface-sunken);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:10.5px;color:var(--text-secondary);font-weight:500;flex:none}

.page{padding:20px 22px 90px;max-width:1120px}
h1{font-size:22px;font-weight:600;letter-spacing:-0.015em;margin:0;text-wrap:balance}
.sub{font-size:12.5px;color:var(--text-secondary)}
.muted{color:var(--text-muted)}
.page-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:4px}

.list{border-top:1px solid var(--border)}
.row{display:flex;align-items:center;gap:12px;padding:11px 6px;border-bottom:1px solid var(--border);background:none;width:100%;text-align:left;font-family:inherit;font-size:14px;color:inherit;cursor:pointer;text-decoration:none}
.row:hover{background:var(--surface-card)}
.row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.row-title{display:block;font-size:13.5px;font-weight:500;line-height:1.35}
.row-sub{display:block;font-size:11.5px;color:var(--text-secondary);line-height:1.4}

.chip{font-size:11px;border-radius:20px;padding:2px 9px;border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap;flex:none}
.chip.warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}
.chip.danger{background:var(--danger-bg);color:var(--danger);border-color:transparent}
.chip.accent{background:var(--accent-bg);color:var(--accent);border-color:transparent}
.chip.ok{background:var(--success-bg);color:var(--success);border-color:transparent}
select.chip-select{width:auto;min-width:0;height:auto;line-height:1.5;margin:0;box-shadow:none;font:inherit;font-size:11px;border-radius:20px;padding:2px 20px 2px 9px;border:1px solid var(--border);color:var(--text-secondary);background:var(--surface-card) url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%278%27 height=%275%27%3E%3Cpath d=%27M0 0l4 5 4-5z%27 fill=%27%23888%27/%3E%3C/svg%3E") no-repeat right 8px center;appearance:none;-webkit-appearance:none;cursor:pointer}
select.chip-select:hover{border-color:var(--text-secondary);color:var(--text-primary)}

.btn{font-family:inherit;font-size:12.5px;border:1px solid var(--border-strong);background:var(--surface-card);color:var(--text-secondary);border-radius:var(--radius);padding:6px 12px;cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-block}
.btn:hover{border-color:var(--text-secondary);color:var(--text-primary)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:500}
.btn.sm{padding:4px 9px;font-size:11.5px}

.card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px}
.banner{display:flex;align-items:center;gap:11px;border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent);border-radius:var(--radius-lg);padding:12px 15px}
.banner.warn{border-color:transparent;background:var(--warn-bg);color:var(--warn)}

label.lbl{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:5px}
input[type=text],input[type=password],input[type=number],input[type=email],input[type=date],input[type=time],textarea,select{width:100%;font-family:inherit;font-size:13.5px;padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-card);color:var(--text-primary)}

@media (max-width:900px){
  .app{grid-template-columns:56px minmax(0,1fr)}
  .rail{padding:12px 6px;align-items:center}
  .brand{padding:2px 0 12px}
  .brand div:last-child,.nav-t,.nav-label,.nav-count{display:none}
  .nav-item{justify-content:center;padding:9px 0;gap:0}
  .nav-sep{width:32px;margin:8px 0}
  .search{min-width:0;flex:1}
  .topbar{padding:10px 14px}
  .page{padding:16px 14px 90px}
}

.rec-head{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:15px 17px;margin-bottom:14px}
.tabs{display:flex;gap:18px;border-bottom:1px solid var(--border);margin:0 0 18px;flex-wrap:wrap}
.tab{font-size:13px;color:var(--text-secondary);padding-bottom:9px;background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;font-family:inherit;margin-bottom:-1px}
.tab[aria-selected="true"]{color:var(--text-primary);font-weight:500;border-bottom-color:var(--text-primary)}
/* People, pets and roles: the five relationship tabs sit inside a page tab, so they are a quieter segmented row */
.rtabs{display:flex;gap:4px;flex-wrap:wrap;padding:3px;background:var(--surface-sunken);border-radius:8px;width:fit-content;max-width:100%}
.rtab{font:inherit;font-size:13px;color:var(--text-secondary);background:none;border:0;border-radius:6px;padding:6px 12px;cursor:pointer}
.rtab[aria-selected="true"]{background:var(--surface-card);color:var(--text-primary);font-weight:500;box-shadow:0 0 0 1px var(--border)}
.rtab:focus-visible{outline:2px solid var(--text-primary);outline-offset:1px}
.rtab-n{display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;border-radius:9px;background:var(--surface-sunken);font-size:11px;line-height:18px;text-align:center;color:var(--text-secondary)}
.rtab[aria-selected="true"] .rtab-n{background:var(--text-primary);color:var(--surface-card)}
.rtabs.searching{opacity:.55}
.rtab:not([aria-selected="true"]) .rtab-n{background:var(--surface-card)}
.is-filtered{display:none !important}
input.pp-search{width:280px;max-width:100%}
button.linkish.members-act{font-size:12px;margin-left:4px}
.rtab-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
.members-row{padding:10px 0;border-bottom:1px solid var(--border)}
.rel-name{background:none;border:0;padding:0;font:inherit;text-align:left;cursor:pointer}
.pane{display:none}
.pane.on{display:block}
.field{padding:6px 0;border-bottom:1px solid var(--border)}
.field-l{font-size:11.5px;color:var(--text-secondary)}
.field-v{display:flex;align-items:center;gap:7px;font-size:13.5px;margin-top:1px}
.fgroup{border:1px solid var(--border);border-radius:var(--radius);padding:11px 13px;margin-bottom:9px}
.scrim{position:fixed;inset:0;background:rgba(8,20,22,0.45);z-index:60;display:none;align-items:flex-start;justify-content:center;padding:48px 20px;overflow-y:auto}
.scrim.on{display:flex}
.modal{background:var(--surface-card);border:1px solid var(--border);border-radius:12px;width:600px;max-width:100%;display:flex;flex-direction:column;max-height:calc(100vh - 96px)}
.drawer-h{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}
.drawer-b{padding:16px 18px;overflow-y:auto;flex:1}
.drawer-f{padding:13px 18px;border-top:1px solid var(--border);display:flex;gap:8px;align-items:center}
.tag{font-size:11px;border-radius:var(--radius);padding:2px 8px;background:var(--surface-sunken);color:var(--text-secondary);white-space:nowrap}
.linkish{color:var(--accent);cursor:pointer;font-size:inherit;background:none;border:0;font-family:inherit;padding:0;text-decoration:none}
.linkish:hover{text-decoration:underline}
.banner.grey{border:1px solid var(--border);background:var(--surface-sunken);color:var(--text-secondary)}

.splitp{display:grid;grid-template-columns:190px minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:900px){.splitp{grid-template-columns:minmax(0,1fr)}}
.secnav{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:8px 6px}
.secnav button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font-family:inherit;font-size:12px;color:var(--text-secondary);background:none;border:0;padding:6px 8px;border-radius:var(--radius);cursor:pointer}
.secnav button:hover{background:var(--surface-sunken)}
.secnav button[aria-current="true"]{background:var(--accent-bg);color:var(--accent);font-weight:500}
.secnav .pc{margin-left:auto;font-size:10.5px;font-variant-numeric:tabular-nums}
.fkids{border-left:2px solid var(--border);padding-left:12px;display:flex;flex-direction:column;gap:10px}
.fval{font-size:13.5px;border-bottom:1px solid var(--border-strong);padding:3px 0 5px}
.fempty{font-size:13px;border-bottom:1px dashed var(--border);padding:2px 0 4px;color:var(--text-muted)}

.kanban{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}
.lane{width:190px;flex:none}
.lane-h{padding-bottom:8px;border-bottom:2px solid var(--border-strong);margin-bottom:10px;display:flex;justify-content:space-between;align-items:baseline}
.kcard{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius);padding:9px 10px;margin-bottom:7px}
.split{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
@media (max-width:900px){.split{grid-template-columns:minmax(0,1fr)}}

.dot{width:7px;height:7px;border-radius:50%;flex:none}
.dot.us{background:var(--warn-dot)} .dot.client{background:var(--accent)} .dot.third{background:var(--text-muted)}
.group-label.danger{color:var(--danger)}

[x-cloak]{display:none!important}

.split2{display:grid;grid-template-columns:300px minmax(0,1fr);gap:0;align-items:stretch}
@media (max-width:900px){.split2{grid-template-columns:minmax(0,1fr)}}

/* shared data tables (G9) */
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:left;font-weight:600;color:var(--text-secondary);padding:6px 8px;border-bottom:1px solid var(--border)}
.tbl td{padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:top}
.tbl .r{text-align:right}
.kpi{font-size:24px;font-weight:600;line-height:1.1}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;margin-top:14px}

/* Copy buttons on the key-info block (Jonathan, 15 Sep). Quiet until
   hovered — six of them shouting at once would compete with the data. */
.copybtn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  width:22px;height:22px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm,4px);
  background:none;color:var(--text-muted);cursor:pointer;font-size:11px;line-height:1}
.copybtn:hover{border-color:var(--border);background:var(--surface-sunken);color:var(--text-secondary)}
.copybtn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.copybtn.copied{width:auto;padding:0 7px;border-color:var(--border);color:var(--success,#4a7c59)}

/* --- Profile tab as one page (5 Oct redesign) ----------------------------- */
.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}
.pf{display:flex;flex-direction:column;gap:14px}
.pf-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pf-find{display:flex;align-items:center;gap:8px;background:var(--surface-card);border:1px solid var(--border);border-radius:8px;padding:0 12px;height:40px;flex:1 1 240px;max-width:360px}
.pf-find input{border:0;outline:none;background:transparent;flex:1;height:38px;font:inherit;color:inherit;padding:0}
.pf-seg{display:flex;background:var(--surface-sunken);border-radius:8px;padding:3px;gap:2px}
.pf-seg button{border:0;border-radius:6px;height:34px;padding:0 12px;background:transparent;color:var(--text-secondary);font:inherit;font-size:13px;cursor:pointer}
.pf-seg button[aria-pressed="true"]{background:var(--surface-card);color:var(--text-primary);font-weight:600;box-shadow:0 1px 2px rgba(15,30,34,.12)}
.pf-seg .num{opacity:.75;margin-left:2px}
.pf-note{margin-left:auto}
.pf-body{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.pf-index{flex:0 1 236px;min-width:200px;display:flex;flex-direction:column;gap:16px;position:sticky;top:64px;max-height:calc(100vh - 80px);overflow-y:auto}
@media (max-width:900px){.pf-index{position:static;max-height:none;flex-basis:100%}}
.pf-part{display:flex;flex-direction:column;gap:2px}
.pf-part-h{font-size:13px;font-weight:600;padding:0 10px 6px}
.pf-link{display:block;text-decoration:none;color:var(--text-primary);border-radius:8px;padding:7px 10px}
.pf-link:hover{background:var(--surface-sunken)}
.pf-link[aria-current="true"]{background:var(--accent-bg);color:var(--accent);font-weight:600}
.pf-link-row{display:flex;justify-content:space-between;gap:8px;font-size:13.5px}
.pf-count{font-size:12px;color:var(--text-secondary);font-weight:400}
.pf-bar{display:block;height:4px;border-radius:2px;background:var(--surface-sunken);margin-top:5px;overflow:hidden}
.pf-bar-fill{display:block;height:100%;background:var(--border-strong)}
.pf-bar-fill.mid{background:var(--accent)}
.pf-bar-fill.full{background:var(--success)}
.pf-sections{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:12px}
.pf-part-label{margin:6px 2px -4px}
.pf-sec{padding:16px 22px 14px;scroll-margin-top:72px}
.pf-sec.editing{border-color:var(--accent-border)}
.pf-sec-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.pf-sec-h h3{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em}
.pf-edit{margin-left:auto;display:inline-flex;align-items:center;gap:6px}
.pf-saved{margin:6px 0 8px;background:var(--success-bg);color:var(--success)}
.pf-rows{margin:0;display:flex;flex-direction:column}
.pf-row{display:grid;grid-template-columns:minmax(150px,36%) minmax(0,1fr);gap:16px;padding:9px 0;border-top:1px solid var(--border);align-items:baseline}
.pf-row dt{font-size:13px;color:var(--text-secondary)}
.pf-row dd{margin:0;font-size:14px;overflow-wrap:anywhere}
.pf-row.depth-1 dt{padding-left:16px}.pf-row.depth-2 dt{padding-left:32px}.pf-row.depth-3 dt{padding-left:48px}
.pf-unanswered{color:var(--text-secondary);font-style:italic}
.pf-byline{display:block;font-size:12px;color:var(--text-secondary);margin-top:2px;font-style:normal}
.pf-help{font-size:12px;color:var(--text-secondary)}
.pf-group{border-top:1px solid var(--border);padding:9px 0 4px}
.pf-group-h{display:flex;align-items:baseline;gap:10px}
.pf-group-h dt{font-size:13px;color:var(--text-secondary)}
.pf-group-h .linkish{margin-left:auto}
.pf-entries{margin:6px 0 0;display:flex;flex-direction:column;gap:6px}
.pf-entry{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--surface-sunken);border-radius:8px;padding:9px 12px}
.pf-entry-cells{display:flex;flex-wrap:wrap;gap:6px 18px;flex:1;min-width:0}
.pf-cell{font-size:14px}
.pf-cell-l{display:block;font-size:11.5px;color:var(--text-secondary)}
.pf-entry-actions{display:flex;gap:14px;align-items:center}
.pf-unlinked{color:var(--warn)}
.pf-none{padding:4px 0}
.pf-ask{border-top:1px solid var(--border);padding-top:9px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.pf-empty{padding:20px;color:var(--text-secondary)}
.pf-form{display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--border);padding-top:12px}
.pf-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px 22px}
.pf-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.pf-field.wide{grid-column:1/-1}
.pf-field.depth-1,.pf-field.depth-2,.pf-field.depth-3{padding-left:14px;border-left:2px solid var(--border)}
.pf-field>label,.pf-field legend{font-size:13px;color:var(--text-secondary);padding:0}
.pf-field fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.pf-field input[type=text],.pf-field select,.pf-field textarea{height:40px;border:1px solid var(--border-strong);border-radius:6px;padding:0 10px;background:var(--surface-card);color:var(--text-primary);font:inherit;width:100%}
.pf-field textarea{height:auto;padding:8px 10px}
.pf-pills{display:flex;gap:6px;flex-wrap:wrap}
.pf-pill{position:relative;display:inline-flex}
.pf-pill input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.pf-pill span{display:inline-flex;align-items:center;height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface-card);font-size:13px}
.pf-pill input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.pf-pill.quiet input:checked+span{background:var(--surface-sunken);border-color:var(--border-strong);color:var(--text-secondary)}
.pf-pill input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.pf-form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;position:sticky;bottom:0;background:var(--surface-card);padding:10px 0 2px}
.pf-form .banner{flex-direction:column;align-items:flex-start;gap:4px}

/* --- Users (6 Oct): clickable rows, one page per login ------------------- */
.users-tbl{width:100%}
.users-tbl th{white-space:nowrap}
.users-row{cursor:pointer}
.users-row:hover td{background:var(--surface-sunken)}
.users-row.inactive td{opacity:.6}
.users-name{color:var(--text-primary);font-weight:500;text-decoration:none}
.users-row:hover .users-name{color:var(--accent);text-decoration:underline}
.user-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;margin-top:14px}
.user-h{font-size:15px;margin:0 0 12px}
.user-form{display:flex;flex-direction:column;gap:10px}
.user-actions{display:flex;gap:8px;flex-wrap:wrap}
.pf.compact .pf-sections{flex-basis:100%}
.pf-moved{display:block;padding:0 10px 4px;font-size:12px}
.mw{margin:16px 0}
.mw-h{display:flex;align-items:baseline;gap:10px;margin:0 0 10px}
.mw-h h2{margin:0;font-size:16px}
.mw-person{margin-bottom:14px}
.mw-person-h{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-weight:600;font-size:14px}

/* Key info fold (#463) */
.ki-toggle{display:inline-flex;align-items:center;gap:6px;padding:0;margin-right:4px;text-decoration:none}
.ki-toggle:hover{text-decoration:none}
.ki-toggle:hover .sub{color:var(--text-primary)}
.ki-chev{display:inline-block;font-size:12px;line-height:1;color:var(--text-secondary);transition:transform .15s}
.ki-toggle[aria-expanded="true"] .ki-chev{transform:rotate(90deg)}
.ki-summary{display:inline-flex;gap:16px;flex-wrap:wrap;margin-left:6px;min-width:0;overflow-wrap:anywhere}
@media (prefers-reduced-motion:reduce){.ki-chev{transition:none}}

/* Discovery meeting (#466) */
.dm-part{margin-top:14px}
.dm-part h2{font-size:15px;margin:0 0 6px}
.dm-qs{margin:0;padding-left:22px}
.dm-qs>li{padding:12px 0 12px 6px;border-bottom:1px solid var(--border)}
.dm-qs>li:last-child{border-bottom:0}
.dm-qs>li::marker{color:var(--text-secondary);font-size:12.5px}
.dm-q{display:block;font-size:13.5px;font-weight:500;margin-bottom:8px}
.dm-choices{display:flex;gap:6px;flex-wrap:wrap}
.dm-choice{display:inline-flex;align-items:center;cursor:pointer}
.dm-choice input{position:absolute;opacity:0;pointer-events:none}
.dm-choice span{border:1px solid var(--border-strong);border-radius:999px;padding:5px 12px;font-size:13px;background:var(--surface-card)}
.dm-choice input:checked+span{background:var(--text-primary);border-color:var(--text-primary);color:var(--surface-card)}
.dm-choice input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.dm-choice input:disabled+span{cursor:default;opacity:.8}
.dm-follow{margin-top:10px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.dm-follow textarea,.dm-follow input[type=text]{max-width:520px}
.dm-bar{position:sticky;bottom:0;display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap;padding:12px 0;margin-top:14px;background:var(--surface-page);border-top:1px solid var(--border)}
.dm-bar .sub{margin-right:auto}

/* Contact history on the Briefing tab (#485) */
.ch-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin:0 0 7px}
.ch-filters{display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.ch-filter{font:inherit;font-size:12.5px;border:1px solid var(--border-strong);background:var(--surface-card);color:var(--text-secondary);border-radius:999px;padding:3px 10px;cursor:pointer}
.ch-filter[aria-pressed="true"]{background:var(--text-primary);border-color:var(--text-primary);color:var(--surface-card)}
.ch-bulk{margin-left:auto}
.ch-title{background:none;border:0;padding:0;font:inherit;text-align:left;cursor:pointer;color:inherit}
.ch-title:disabled{cursor:default}
.ch-title:not(:disabled):hover{text-decoration:underline}
.ch-body{margin:8px 0 2px 28px;padding:10px 12px;border-left:2px solid var(--border-strong);font-size:13px;line-height:1.55;max-height:360px;overflow:auto;overflow-wrap:anywhere}


/* Forms (#487): filling one in, and the editor */
.fr-heading{display:block;list-style:none;margin-left:-22px;padding-top:18px!important}
.fr-heading h2{font-size:15px;margin:0}
.fr-slot{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:center;margin-top:6px}
.fr-slot:not(:has(.fr-who)){grid-template-columns:1fr}
.fr-who{font-size:12.5px;color:var(--text-secondary);min-width:70px}
.fr-answer{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.fr-answer textarea,.fr-answer input[type=text]{max-width:520px}
.fr-note{grid-column:-2/-1;max-width:520px;font-size:13px}
.fr-binds{display:block;margin-top:6px;font-size:12px}
.fr-people{margin-top:8px;padding:10px 12px;border-left:2px solid var(--border-strong);display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.fr-people-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13.5px}
.fr-people-add{display:flex;flex-direction:column;gap:10px;width:100%;max-width:520px}
.fr-people-add .lbl>span{display:block;margin-bottom:4px}
.fr-age{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.dm-choice.is-new input:checked+span{background:var(--success);border-color:var(--success);color:var(--surface-card)}
.fr-answer.is-new>input[type=text],.fr-answer.is-new .fr-date>input[type=text],.fr-answer.is-new>textarea,.fr-answer.is-new .ta-input{border-color:var(--success);box-shadow:inset 3px 0 0 var(--success)}
/* people named for a role (Intentions, 19 Oct) */
.fr-roles{display:flex;flex-direction:column;gap:8px;width:100%;max-width:620px}
.fr-roles-list{list-style:decimal;margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.fr-roles-list li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--border)}
.fr-roles-list li.is-new .fr-roles-name{color:var(--success);font-weight:600}
.fr-roles-name{font-weight:500}
.fr-roles-share{display:inline-flex;gap:4px;align-items:center}
.fr-roles-move{margin-left:auto;display:inline-flex;gap:8px}
.fr-roles-health{flex-basis:100%;color:var(--warning,var(--text-secondary))}
.fr-roles-off{color:var(--danger)}
.fr-roles-tools{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.fr-roles-search{position:relative;flex:1 1 240px;max-width:340px}
.fr-roles-search input{width:100%}
.fr-roles-matches{position:absolute;z-index:5;left:0;right:0;top:100%;margin:2px 0 0;padding:6px 10px;list-style:none;background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.fr-roles-same{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;font-size:13px}
@media (pointer:coarse){.fr-roles-move .linkish{padding:6px 8px}}
.fr-key{margin:10px 0 0}
.fr-key-known,.fr-key-new{font-weight:600;color:var(--text-primary)}
.fr-key-new{color:var(--success)}

/* an iPad with a pencil or a finger, not a mouse (#497) */
@media (pointer:coarse){.dm-choice span{padding:9px 16px;font-size:14.5px}.dm-choices{gap:8px}}
.fr-done{margin:0}
.fr-done h2{font-size:15px;margin:16px 0 4px}
.fr-done-row{display:grid;grid-template-columns:minmax(180px,40%) 1fr;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}
.fr-done-row:last-child{border-bottom:0}
.fr-done dt{font-size:13.5px}
.fr-done dd{margin:0;font-size:13.5px;font-weight:500}
.fr-done-note{display:block;font-weight:400;color:var(--text-secondary);margin-top:4px}
.fq-edit{display:flex;flex-direction:column;gap:10px;margin-top:10px;padding-left:28px}
.fq{display:flex;flex-direction:column;gap:8px}
.fq-row{display:flex;gap:10px;flex-wrap:wrap}
.fq-row>.lbl{flex:1;min-width:220px}
@media (max-width:640px){.fr-done-row{grid-template-columns:1fr;gap:2px}.fq-edit{padding-left:0}}

/* Process steps (#488) */
.ps-title{font-size:13.5px;margin:0;font-weight:600}
.ps-steps{margin:6px 0 0;padding:0;list-style:none}
.ps-action{display:flex;gap:8px;align-items:baseline;margin-top:3px}
.ps-record{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:4px 0;font-size:13px}

/* Coming up on the Briefing (#489) */
.up-row{display:flex;gap:10px;align-items:center}
.up{margin-bottom:12px}
.up-acts{display:flex;gap:6px;flex-shrink:0}
@media (max-width:560px){.up-due{flex-wrap:wrap}.up-acts{width:100%;padding-left:24px}}
/* the one box to log or book contact (#495) */
.lb{display:flex;flex-direction:column;gap:10px;margin-bottom:12px;border-color:var(--accent-border)}
.lb-row{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-end}
.lb-call{display:flex;flex-direction:column;gap:10px}
.lb-fields{gap:10px}
.lb-fields>.lbl{flex:1;min-width:150px;margin:0}
.lb-fields .ta{display:block}
.lb-steps{border:0;padding:0;margin:0;display:flex;gap:6px 16px;flex-wrap:wrap;font-size:13px}
.lb-steps legend{padding:0;margin-bottom:5px}
.lb-steps label{display:inline-flex;gap:6px;align-items:center}
.lb-steps input{width:auto}
.lb-matter{margin:0;max-width:360px}
.lb textarea{min-height:64px}
.lb-foot{display:flex;justify-content:flex-end}
.ch-forms{list-style:none;margin:6px 0 0 28px;padding:0;font-size:12.5px;display:flex;flex-direction:column;gap:3px}
@media (pointer:coarse){.lb-steps label{min-height:40px}.up-acts .btn{padding:8px 14px;font-size:13px}}
.fr-partner{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin-top:8px}
.fq-grip{cursor:grab;user-select:none;letter-spacing:-2px;font-size:13px}
.fq-list>li.is-dragging{opacity:.5}

/* type-ahead in front of every dropdown (static/js/typeahead.js) */
.ta{position:relative;display:block;width:100%}
.ta>.ta-native{position:absolute;inset:auto 0 0 0;width:100%;height:1px;opacity:0;pointer-events:none;padding:0;border:0}
.ta-input{min-width:180px;padding-right:30px!important;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--text-secondary) 50%),linear-gradient(135deg,var(--text-secondary) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.ta-input:focus{cursor:text}
.ta-input[readonly]{cursor:pointer}
.ta-list{position:absolute;z-index:40;color:var(--text-primary);font-weight:400;left:0;right:0;top:calc(100% + 4px);min-width:220px;max-height:280px;overflow:auto;margin:0;padding:4px;list-style:none;background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 8px 24px rgba(0,0,0,.14)}
.ta-option{padding:7px 10px;border-radius:4px;cursor:pointer;font-size:13.5px}
.ta-option[aria-selected=true]{font-weight:600}
.ta-option.is-active,.ta-option:hover{background:var(--accent-bg)}
.ta-group{padding:8px 10px 4px;font-size:11.5px;font-weight:600;color:var(--text-secondary)}
.ta-empty{padding:7px 10px;font-size:13px;color:var(--text-secondary)}
@media (pointer:coarse){.ta-option{padding:11px 12px;font-size:15px}}
/* a date as the client says it (#501): the box, a calendar, and what it was read as */
.fr-date{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}
.fr-date>input[type=text]{width:170px}
.fr-date-cal{position:relative;display:inline-flex}
.fr-date-cal .btn{display:inline-flex;align-items:center;padding:7px 9px}
.fr-date-cal input[type=date]{position:absolute;inset:0;width:100%;height:100%;opacity:0;padding:0;border:0;pointer-events:none}
@media (pointer:coarse){.fr-date-cal input[type=date]{pointer-events:auto}.fr-date-cal .btn{padding:10px 12px}}
.fr-date-hint{min-width:0}

/* the estate planning journey (mockup, 28 Oct): a strip on every page about
   the client, the full journey on the matter, one next-step card */
.jstrip-card{margin:12px 0 14px;padding:11px 15px}
.jstrip-top{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:7px}
.jstrip-name{font-size:13px;font-weight:600}
.jstrip + .jstrip{margin-top:12px}
.jstrip-stages{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px}
.jstage a{display:flex;flex-direction:column;gap:5px;text-decoration:none;color:var(--text-muted);border-radius:4px;padding:2px 0}
.jstage a:hover .jlabel{color:var(--text-primary)}
.jstage a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.jbar{display:block;height:6px;border-radius:3px;background:var(--surface-sunken);border:1px solid var(--border)}
.jlabel{font-size:11px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jstage.done .jbar{background:var(--success);border-color:var(--success)}
.jstage.done .jlabel{color:var(--text-secondary)}
.jstage.now .jbar{background:var(--accent);border-color:var(--accent);height:8px;margin-top:-1px}
.jstage.now .jlabel{color:var(--accent);font-weight:600}
.jstage.gap .jbar{background:var(--warn-bg);border:1px dashed var(--warn-dot)}
.jstage.gap .jlabel{color:var(--warn)}
@media (max-width:640px){.jstage:not(.now) .jlabel{visibility:hidden}.jstage.now .jlabel{overflow:visible}}

.nextstep{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:var(--radius-lg);padding:10px 13px}
.nextstep-t{flex:1;min-width:200px;display:flex;flex-direction:column;gap:2px;font-size:13px}
.nextstep.gap{border-color:transparent;background:var(--warn-bg)}
.nextstep.gap b{color:var(--warn)}
.nextstep.wait{border-color:var(--border);background:var(--surface-sunken)}
.nextstep form{margin:0}

.journey{margin-bottom:14px}
.journey-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.journey-h h2{font-size:14px;font-weight:600;margin:0;flex:1}
.journey-move summary{cursor:pointer;list-style:none}
.journey-move summary::-webkit-details-marker{display:none}
.journey-move[open] summary{margin-bottom:8px}
.journey-move-f{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-rail)}
.journey-move-f select{width:auto}
.journey-move-f input[type=text]{flex:1;min-width:200px}
.jphases{list-style:none;margin:0;padding:0}
.jphase{position:relative;padding-left:26px}
.jphase::before{content:"";position:absolute;left:8px;top:22px;bottom:-4px;width:2px;background:var(--border)}
.jphase:last-child::before{display:none}
.jphase.done::before{background:var(--success)}
.jphase summary{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:7px 0;cursor:pointer;list-style:none;font-size:13.5px}
.jphase summary::-webkit-details-marker{display:none}
.jphase summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.jdot{position:absolute;left:0;top:9px;width:18px;height:18px;border-radius:50%;border:2px solid var(--border-strong);background:var(--surface-card);display:grid;place-items:center;font-size:10px;line-height:1}
.jphase.done .jdot{background:var(--success);border-color:var(--success);color:#fff}
.jphase.now .jdot{border-color:var(--accent);box-shadow:inset 0 0 0 3px var(--surface-card),inset 0 0 0 9px var(--accent)}
.jphase.gap .jdot{border-style:dashed;border-color:var(--warn-dot)}
.jphase.later summary b{color:var(--text-secondary);font-weight:500}
.jsteps{padding:2px 0 10px}
.jstep{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:4px 0;font-size:13px}
.jstep form{display:inline-flex;gap:9px;align-items:center;flex-wrap:wrap;margin:0}
.journey-move[open]{flex-basis:100%;order:2}
.journey-move[open] summary{text-align:right}

/* --- the estate plan overview, as the PDF lays it out (30 Oct) ------------- */
.epo-doc{padding:22px 26px;font-size:13.5px;line-height:1.6}
.epo-cover{border-bottom:1px solid var(--border);padding-bottom:14px;margin-bottom:6px}
.epo-title{font-family:Georgia,serif;font-size:21px;color:#5E9FA1;line-height:1.35}
.epo-meta{display:grid;grid-template-columns:110px 1fr;gap:2px 10px;margin:12px 0 0;font-size:13px}
.epo-meta dt{color:var(--text-secondary)} .epo-meta dd{margin:0}
.epo-h{font-size:16px;font-weight:400;color:#8C7553;margin:18px 0 6px}
.epo-sub{font-size:15px;margin-top:2px}
.epo-list{margin:0;padding-left:22px}
.epo-lines{list-style:disc;margin:0;padding-left:22px}
.epo-lines li span:first-child{display:inline-block;min-width:200px;color:var(--text-secondary)}
.epo-lines sup{font-size:.7em}
.epo-ri-wrap{overflow-x:auto;margin:6px 0}
.epo-ri,.epo-ri-edit{border-collapse:collapse;font-size:11.5px;min-width:760px;width:100%}
.epo-ri th,.epo-ri td,.epo-ri-edit th,.epo-ri-edit td{border:1px solid var(--border-strong);padding:5px 6px;text-align:left;vertical-align:middle}
.epo-ri th,.epo-ri-edit th{background:var(--surface-sunken);font-weight:500}
.epo-ri td.x,.epo-ri-edit td.x{text-align:center;color:var(--text-secondary)}
.epo-ri td.outstanding{background:var(--warn-bg)}
.epo-ri-edit td.outstanding input{border-color:var(--warn-dot)}
.epo-ri-edit input{width:100%;min-width:90px;font-size:11.5px;padding:4px 6px}
@media (max-width:640px){.epo-doc{padding:16px}.epo-lines li span:first-child{display:block;min-width:0}}
