/* One shared UI: tokens → domain layouts → components → application layout. */
@layer tokens, features, components, layout;
@import url('ui/fonts.css');
@import url('ui/features.css');
@layer tokens {
:root { color-scheme:light; --brand-navy:#222656; --brand-purple:#653078; --brand-pink:#df2775; --brand-action:#ac205d; --brand-wash:#faf0f6; --ink:#292b3e; --muted:#626375; --line:#e2e3eb; --bg:#f5f6f9; --purple:var(--brand-purple); --console-ink:var(--ink); --console-muted:var(--muted); --console-line:var(--line); --console-accent:var(--brand-purple); --font-body:'Heebo',Arial,sans-serif; --font-heading:'Rubik','Heebo',Arial,sans-serif; --radius:8px; --space:8px; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; background:var(--bg); color:var(--ink); font:1rem/1.65 var(--font-body); }
img { max-width:100%; }
button,input,select,textarea { font:inherit; }
a { color:var(--brand-purple); text-underline-offset:.2em; }
a:hover { text-decoration-thickness:2px; }
h1,h2,h3 { font-family:var(--font-heading); color:var(--brand-navy); line-height:1.4; overflow-wrap:anywhere; }
h1 { font-size:1.75rem; margin:0 0 8px; }
h2 { font-size:1.2rem; margin:0 0 12px; }
h3 { font-size:1.0625rem; margin:16px 0 8px; }
p { margin:8px 0 16px; }
p,li,dd { overflow-wrap:anywhere; }
small,.small { font-size:.9375rem; }
summary { cursor:pointer; }
:focus-visible { outline:3px solid #176579; outline-offset:3px; }
:target { scroll-margin-block-start:24px; }
[dir=ltr],bdi,time { font-variant-numeric:tabular-nums; }
bdi { unicode-bidi:isolate; }
main { max-width:1120px; margin:auto; padding:28px 24px; min-width:0; min-height:65vh; }
footer { color:var(--muted); font-size:.9375rem; text-align:center; padding:18px; border-top:1px solid var(--line); background:#fff; }
body>p:has(a) { text-align:center; }
.skip { position:absolute; inset-block-start:-100px; z-index:100; padding:12px; background:#fff; }
.skip:focus { inset-block-start:0; }
.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; }
}
@layer components {
/* Buttons and links keep words visible; icons are supporting cues. */
button,.button,.header-login,.logout-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; max-width:100%; border:1px solid transparent; border-radius:6px; padding:8px 16px; background:var(--brand-action); color:#fff; font-size:1rem; line-height:1.5; font-weight:600; text-decoration:none; cursor:pointer; white-space:normal; vertical-align:middle; }
button:hover,.button:hover { filter:brightness(.94); }
.secondary,button.secondary,.button.secondary,.logout-button { color:var(--brand-purple); background:#fff; border-color:#c9c4d4; }
.danger-button { background:#ad293d; color:white; }
.danger-link,.errorlist { color:#a01c34; }
button:disabled,input:disabled,select:disabled,textarea:disabled { opacity:.65; cursor:not-allowed; }
button[aria-busy=true] { cursor:progress; }
.ui-icon { width:20px; height:20px; flex:0 0 20px; vertical-align:middle; padding:0; background:none; color:currentColor; }
a>.ui-icon { margin-inline-end:5px; }
.button>.ui-icon,.console-nav .ui-icon { margin-inline-end:0; }
.back,.row-action,.pagination a,.console-pagination a,.form-actions>a { display:inline-flex; align-items:center; min-height:44px; }
.row-action { font-weight:600; }
.muted,.help,.field-help,.last-login,.account-phone { color:var(--muted); }
.overline,.eyebrow { color:var(--brand-purple); font-weight:600; font-size:.9375rem; margin:0 0 4px; }
/* Field sizing and validation are shared by all form families. */
label { display:block; font-weight:600; margin:12px 0 6px; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea { width:100%; min-width:0; max-width:100%; min-height:44px; padding:9px 12px; border:1px solid #8a899a; border-radius:6px; color:var(--ink); background:#fff; }
input[type=tel],input[type=email],input[type=date],input[type=datetime-local] { direction:ltr; text-align:start; }
textarea { min-height:110px; resize:vertical; }
input[type=checkbox],input[type=radio] { width:20px; height:20px; flex:0 0 20px; accent-color:var(--brand-purple); vertical-align:middle; }
.check,label:has(>input[type=checkbox]),label:has(>input[type=radio]) { display:flex; align-items:center; gap:10px; font-weight:400; min-height:44px; margin-block:2px; }
fieldset { min-width:0; border:1px solid var(--line); border-radius:var(--radius); padding:16px; margin:0 0 20px; }
legend { font-weight:600; color:var(--brand-navy); padding-inline:6px; }
.form-field,.field { margin-block-end:18px; }
.field-help,.help { font-size:.9375rem; margin:4px 0 8px; }
.required-label { color:var(--muted); font-weight:400; font-size:.875rem; }
.errorlist { padding-inline-start:22px; margin:8px 0; }
[aria-invalid=true] { border-color:#a01c34 !important; border-width:2px !important; }
.form-field:has(.errorlist),.field:has(.errorlist) { border-inline-start:3px solid #a01c34; padding-inline-start:12px; }
.error,.notice,.task-mail-note { padding:12px 16px; border-radius:6px; margin-block:12px; border:1px solid #d8d4e3; background:#f4f0f8; color:var(--ink); }
.error { background:#fff1f2; border-color:#dfadb5; color:#841a2b; }
.notice { background:#eef7f2; border-color:#b4d6c4; color:#205740; }
.error-summary a { color:inherit; }
.error-summary ul { margin-block:8px; }
.form-actions,.filter-actions,.toolbar-actions,.pagination { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.form-actions { border-top:1px solid var(--line); margin-top:24px; padding-top:16px; }
.form-actions.sticky-actions { position:sticky; bottom:0; background:#fff; padding:12px; z-index:4; box-shadow:0 -2px 8px #2226560a; }
.form-layout,.participant-form-layout { display:grid; grid-template-columns:minmax(0,720px) minmax(200px,1fr); gap:24px; align-items:start; }
.form-guidance { color:var(--muted); border-inline-start:2px solid var(--line); padding-inline-start:20px; }
.account-form,.confirmation-card { max-width:760px; }
.login { max-width:480px; margin:24px auto; padding:28px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.login .primary { width:100%; margin-top:20px; }
/* Surfaces: modest borders, no repeated decorative shadows. */
.panel,.console-panel,.card,.empty { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:20px; min-width:0; box-shadow:none; }
.panel,.private-section { margin-block:20px; }
.console-panel>h2:first-child,.panel>h2:first-child { margin-top:0; }
.console-empty,.empty { padding:32px 20px; text-align:center; color:var(--muted); }
.console-empty p { margin-bottom:0; }
.danger-zone { border-color:#dfadb5; }
.badge,.role-pill,.state-pill { display:inline-flex; align-items:center; gap:5px; font-size:.875rem; line-height:1.5; border-radius:5px; padding:3px 8px; background:#f0edf6; color:#524166; white-space:normal; }
.state-active { color:#215e46; background:#eaf6ef; }
.state-frozen { color:#7b5010; background:#fff3d9; }
.state-deleted,.blocked { color:#921e35; background:#fcecf0; }
.profile-progress { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:16px 20px; margin-block:16px; border:1px solid #ddd2e8; border-inline-start:4px solid var(--brand-purple); border-radius:6px; background:#faf7fc; }
.profile-progress h2 { margin:0; }
.profile-progress p { margin:4px 0; }
.profile-progress .button { flex-shrink:0; }
.console-heading,.page-heading,.section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.console-heading { margin-bottom:20px; }
.console-heading p { margin:4px 0; color:var(--muted); }
.console-heading .overline { color:var(--brand-purple); }
.section-heading { margin-bottom:16px; }
.section-heading h2 { margin:0; }
.console-columns,.profile-grid,.cards,.work-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start; }
.console-metrics,.workspace-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:0; background:#fff; border:1px solid var(--line); border-radius:8px; margin:16px 0 24px; }
.console-metrics>a,.workspace-metrics>a { padding:12px 20px; text-decoration:none; color:var(--ink); border-inline-end:1px solid var(--line); display:flex; flex-direction:column; border-radius:0; box-shadow:none; background:none; }
.console-metrics>a:last-child,.workspace-metrics>a:last-child { border-inline-end:0; }
.console-metrics strong,.workspace-metrics strong { font-size:1.65rem; line-height:1.3; color:var(--brand-navy); }
.console-metrics span,.workspace-metrics span,.console-metrics small { font-size:.9375rem; color:var(--muted); }
.shortcut-grid { display:grid; gap:0; }
.shortcut-grid>a { padding:14px 0; border-bottom:1px solid var(--line); text-decoration:none; }
.shortcut-grid strong,.shortcut-grid span { display:block; }
.shortcut-grid span { color:var(--muted); }
.event-row,.account-action,.assignment-line { padding:14px 0; border-bottom:1px solid var(--line); }
.event-row p,.account-action p { margin:4px 0 10px; }
.event-row time { color:var(--muted); font-size:.9375rem; }
.profile-facts,.account-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:0; }
dt { color:var(--muted); font-size:.9375rem; }
dd { margin:3px 0 0; }
.profile-facts dd[dir=ltr] { text-align:right; }
.journal-text,.communication-body { white-space:normal; overflow-wrap:anywhere; line-height:1.8; max-width:75ch; }
.communication-body { white-space:pre-wrap; }
/* Data tables retain all columns and their sorting, with local overflow. */
.table-scroll,.communication-table,.account-directory { max-width:100%; overflow-x:auto; border:1px solid var(--line); border-radius:8px; background:#fff; padding:0; }
table { width:100%; border-collapse:collapse; font-size:1rem; text-align:start; }
th,td { padding:12px 14px; border-bottom:1px solid var(--line); text-align:start; vertical-align:top; }
th { background:#f6f6fa; color:var(--muted); font-weight:600; }
tbody tr:hover { background:#faf8fc; }
.table-sort-link { color:inherit; display:inline-flex; align-items:center; gap:4px; min-height:32px; text-decoration:none; }
.table-sort-link:hover { text-decoration:underline; }
.directory-table,.journal-table { min-width:760px; }
.batch-table table { min-width:1200px; table-layout:auto; font-size:1rem; }
.batch-table th,.batch-table td { padding:12px; }
.account-name { color:var(--brand-navy); font-weight:600; }
.account-identity,.profile-heading { display:flex; align-items:center; gap:12px; }
.account-phone,.last-login small { display:block; font-size:.9375rem; }
.account-avatar,.profile-avatar { display:grid; place-items:center; width:38px; height:38px; flex:0 0 38px; border-radius:50%; background:#f2edf6; color:var(--brand-purple); }
.account-avatar.large { width:56px; height:56px; flex-basis:56px; }
.directory-toolbar,.filters,.case-filters,.directory-filter,.communication-filters { display:flex; flex-wrap:wrap; align-items:end; gap:12px; padding:16px; background:#fff; border:1px solid var(--line); border-radius:8px; margin:0 0 16px; }
.directory-toolbar>div,.filters>div,.case-filters>div,.directory-filter>div,.communication-filters>div { flex:1 1 150px; min-width:0; }
.directory-toolbar>.directory-matchmaker { flex-basis:260px; }
.directory-toolbar label,.filters label,.case-filters label,.directory-filter label,.communication-filters label { margin-top:0; }
.account-directory .table-scroll { border:0; border-radius:0; }
.account-directory .directory-table { min-width:1040px; }
.directory-refine-title { font-size:1.125rem; margin:20px 16px 12px; }
.directory-help { margin:12px 16px; color:var(--muted); max-width:90ch; }
.directory-caption { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; padding:12px 16px; color:var(--muted); }
.console-pagination { display:flex; align-items:center; justify-content:center; gap:20px; padding:16px; }
.return-links,.breadcrumbs { display:flex; align-items:center; flex-wrap:wrap; gap:12px; font-size:.9375rem; margin:0 0 12px; }
.return-links:empty { display:none; }
.communication-tabs,.communication-settings-nav,.task-tabs,.work-center-tabs { display:flex; flex-wrap:wrap; gap:0; border-bottom:1px solid var(--line); background:none; padding:0; margin:0 0 20px; border-radius:0; }
.communication-tabs a,.communication-settings-nav a,.task-tabs a,.work-center-tabs a { display:flex; align-items:center; gap:8px; padding:12px 16px; border:0; border-bottom:3px solid transparent; border-radius:0; color:var(--muted); background:none; text-decoration:none; font-size:1rem; }
.communication-tabs a[aria-current=page],.communication-settings-nav a[aria-current=page],.task-tabs a[aria-current=page],.work-center-tabs a[aria-current=page] { color:var(--brand-purple); border-bottom-color:var(--brand-pink); background:#faf4f9; font-weight:600; }
.task-feed { display:grid; gap:0; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#fff; }
.task-row,.work-center-item { background:#fff; border:0; border-bottom:1px solid var(--line); border-radius:0; padding:18px; box-shadow:none; }
.communication-heading { display:block; background:none; border:0; padding:0; }
.communication-settings-grid .console-panel { margin:0; }
.sms-compose-grid { gap:20px; }
.sms-compose-grid>.console-panel { margin:0; }
.sms-recipient-list { max-height:360px; }
.sms-preview-recipients { max-height:350px; }
.participant-profile-photo { width:72px; height:72px; flex:0 0 72px; object-fit:cover; border-radius:50%; box-shadow:none; border:1px solid var(--line); }
.participant-profile-placeholder { display:grid; place-items:center; background:#f2eaf6; color:var(--brand-purple); font-size:1.5rem; }
.participant-identity { display:flex; align-items:center; gap:16px; min-width:0; }
.participant-sections { grid-template-columns:1fr; }
.profile-card-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.registration-axis { background:white; border:1px solid var(--line); border-radius:8px; padding:16px; margin:16px 0; }
.registration-step h3 { font-size:1rem; }
}
@layer layout {
.app-header { min-height:76px; display:flex; align-items:center; gap:24px; padding:8px 24px; background:#fff; border-top:3px solid var(--brand-pink); border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:16px; text-decoration:none; }
.brand-logo { width:118px; height:auto; display:block; }
.brand-tagline { display:none; }
.header-date { display:flex; flex-direction:column; color:var(--muted); font-size:.875rem; line-height:1.4; }
.identity { display:flex; align-items:center; gap:12px; margin-inline-start:auto; min-width:0; }
.account-label small { display:block; font-size:.875rem; color:var(--muted); }
.account-label a { color:var(--ink); text-decoration:none; font-weight:600; }
.user-avatar { display:grid; place-items:center; background:#f3eaf2; color:var(--brand-purple); border-radius:50%; width:36px; height:36px; flex-shrink:0; }
.logout-button { padding-inline:10px; font-size:.9375rem; }
.system-layout { display:grid; grid-template-columns:222px minmax(0,1fr); min-height:calc(100vh - 76px); align-items:start; }
.system-sidebar { display:flex; flex-direction:column; gap:16px; padding:20px 12px; background:#fff; border-inline-end:1px solid var(--line); min-height:calc(100vh - 76px); }
.sidebar-heading { padding:0 10px 14px; border-bottom:1px solid var(--line); }
.sidebar-heading .console-symbol,.sidebar-heading div>span { display:none; }
.sidebar-heading strong { color:var(--brand-navy); font-size:1rem; }
.console-nav,.sidebar-bottom { display:grid; gap:3px; }
.console-nav>a,.sidebar-bottom>a { display:flex; align-items:center; gap:9px; min-height:44px; padding:8px 10px; text-decoration:none; color:var(--muted); border-radius:6px; font-size:.9375rem; line-height:1.5; }
.console-nav>a:hover,.sidebar-bottom>a:hover { background:#f5f3f8; color:var(--brand-purple); }
.console-nav>a[aria-current=page] { background:#fbeef5; color:#922054; font-weight:600; border-inline-start:3px solid var(--brand-pink); }
.nav-count { margin-inline-start:auto; padding:0 6px; border-radius:5px; background:#f1eaf5; color:var(--brand-purple); font-size:.8125rem; }
.admin-nav-group { border:0; margin:0; padding:0; }
.admin-nav-group summary { padding:8px 10px; color:var(--brand-navy); font-weight:600; font-size:.9375rem; }
.admin-nav-group[open] summary { margin-bottom:3px; }
.admin-nav-note { color:var(--muted); font-size:.875rem; padding:0 10px; }
.sidebar-bottom { margin-top:16px; padding-top:16px; border-top:1px solid var(--line); }
.console-main { width:100%; max-width:1600px; padding:24px 28px 40px; margin:0 auto; }
.personal-card-layout { max-width:1080px; margin:auto; }
.navigation-toggle { display:none; }
/* The people workbench uses the same authorized card as the full page. */
.people-workbench { display:grid; grid-template-columns:minmax(245px,30%) minmax(0,1fr); gap:20px; align-items:start; }
.people-index { background:#fff; border:1px solid var(--line); border-radius:8px; overflow:hidden; position:sticky; top:16px; max-height:calc(100vh - 32px); overflow-y:auto; }
.people-count { padding:12px 16px; margin:0; border-bottom:1px solid var(--line); font-weight:600; color:var(--brand-navy); }
.people-row { display:block; text-decoration:none; padding:16px; border-bottom:1px solid var(--line); color:var(--ink); border-inline-start:3px solid transparent; }
.people-row:hover { background:#faf7fc; }
.people-row[aria-current=true] { border-inline-start-color:var(--brand-pink); background:#fbeff6; }
.people-row strong { display:block; font-size:1.0625rem; overflow-wrap:anywhere; }
.people-row small { display:block; color:var(--muted); margin-block:4px; }
.people-detail { min-width:0; }
.people-detail>.console-heading { background:#fff; border:1px solid var(--line); border-radius:8px; padding:20px; }
.people-detail .console-heading h2 { font-size:1.5rem; margin:0; }
.people-detail .profile-grid { grid-template-columns:1fr; }
.people-detail .return-links:last-child { display:none; }
.people-detail>.console-panel { margin-block:16px; }
.workbench-back { display:none; }
@media(max-width:1100px) {
 .system-layout { grid-template-columns:200px minmax(0,1fr); }
 .console-main { padding:20px; }
 .people-workbench { grid-template-columns:minmax(210px,34%) minmax(0,1fr); gap:16px; }
 .form-layout,.participant-form-layout { grid-template-columns:1fr; }
 .form-guidance { border-inline-start:0; padding:0; }
}
@media(max-width:800px) {
 .app-header { padding:8px 16px; gap:12px; flex-wrap:wrap; }
 .brand-logo { width:94px; }
 .header-date,.user-avatar { display:none; }
 .account-label { max-width:150px; font-size:.9375rem; }
 .identity { gap:8px; }
 .logout-button { font-size:0; padding:10px; }
 .logout-button .ui-icon { font-size:1rem; }
 .system-layout { display:block; }
 .navigation-toggle:not([hidden]) { display:inline-flex; padding:8px; }
 .system-sidebar { min-height:0; border-inline-end:0; border-bottom:1px solid var(--line); }
 .navigation-ready .system-sidebar:not(.is-open) { display:none; }
 .console-main,main { padding:20px 16px 32px; }
 .console-columns,.profile-grid,.cards,.work-cards,.sms-compose-grid { grid-template-columns:1fr; }
 .console-metrics,.workspace-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .console-metrics>a { padding:12px; border-bottom:1px solid var(--line); }
 .people-workbench { grid-template-columns:1fr; }
 .people-index { position:static; max-height:none; }
 .people-workbench.has-selection .people-index { display:none; }
 .people-workbench:not(.has-selection) .people-detail { display:none; }
 .workbench-back { display:inline-flex; margin-bottom:12px; }
 .profile-progress { flex-direction:column; align-items:start; gap:12px; }
 .console-heading { gap:12px; }
 .directory-table,.journal-table { display:table; }
 .directory-table thead,.journal-table thead { display:table-header-group; position:static; width:auto; height:auto; clip:auto; }
 .directory-table tbody,.journal-table tbody { display:table-row-group; }
 .directory-table tr,.journal-table tr { display:table-row; }
 .directory-table th,.directory-table td,.directory-table .last-login,.journal-table th,.journal-table td { display:table-cell; }
 .directory-table td:before,.journal-table td:before { display:none; }
 .directory-table thead th,.journal-table thead th { display:table-cell; }
 .directory-table td,.journal-table td { border-bottom:1px solid var(--line); }
 .task-tabs,.work-center-tabs { flex-wrap:nowrap; overflow-x:auto; }
 .task-tabs>a,.work-center-tabs>a { flex-shrink:0; }
 .communication-tabs a { padding:10px; flex:1 1 45%; justify-content:center; }
 .registration-axis { display:block; }
}
@media(max-width:420px) {
 .app-header { gap:8px; }
 .brand-logo { width:80px; }
 .account-label { max-width:105px; }
 .navigation-toggle span { display:none; }
 h1 { font-size:1.5rem; }
 .console-panel,.panel { padding:16px; }
 .profile-facts,.account-facts { grid-template-columns:1fr; gap:12px; }
 .directory-filter>div,.filters>div,.directory-toolbar>div,.communication-filters>div { flex-basis:100%; }
 .participant-profile-photo { width:56px; height:56px; flex-basis:56px; }
}
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto !important; transition:none !important; } }
@media print { .app-header,.system-sidebar,.form-actions,.return-links { display:none; } .system-layout { display:block; } .console-main { padding:0; } }
}
@layer components {
.availability-disclosure { margin-block:16px; }
.availability-disclosure summary { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.availability-disclosure summary span { color:var(--brand-purple); text-decoration:underline; font-size:.9375rem; }
.availability-disclosure[open] summary { padding-bottom:12px; border-bottom:1px solid var(--line); }
.journal-table-panel { overflow-x:auto; }
.case-tabs,.journal-row-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-block:16px; }
.case-tabs { border-bottom:1px solid var(--line); }
.case-tabs a { padding:10px 8px; text-decoration:none; }
.case-tabs a[aria-current=page] { border-bottom:3px solid var(--brand-pink); color:var(--brand-purple); font-weight:600; }
.journal-filter { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-block:20px; }
.journal-filter select { width:auto; max-width:100%; }
.timeline { border-inline-start:2px solid var(--line); padding-inline-start:20px; margin-block:20px; }
.journal-entry { background:white; border:1px solid var(--line); padding:20px; border-radius:8px; margin-bottom:16px; }
.journal-entry-header { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; }
.work-late,.overdue { color:#9a263b; }
.task-date { border-inline-start:3px solid var(--brand-purple); padding-inline-start:12px; }
.task-kicker { color:var(--brand-purple); font-weight:600; margin:0 0 4px; }
.task-main h2 { margin:0 0 8px; }
.welcome-panel { padding:0; margin-bottom:24px; }
.matchmaker-home-top { display:grid; grid-template-columns:2fr 1fr; gap:24px; margin-bottom:24px; }
.matchmaker-status { padding:16px; border-inline-start:3px solid var(--brand-purple); background:#faf7fc; }
.matchmaker-status strong,.matchmaker-status a { display:block; }
.matchmaker-start { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.matchmaker-start-card { display:flex; align-items:start; gap:12px; padding:20px; background:white; border:1px solid var(--line); border-radius:8px; text-decoration:none; }
.matchmaker-start-card strong,.matchmaker-start-card small { display:block; }
.matchmaker-start-card small { color:var(--muted); margin-block:8px; }
.message-section { margin-bottom:20px; }
.message-row { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:14px 0; border-top:1px solid var(--line); }
.account-row-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.account-row-actions button { background:#fff; color:var(--brand-purple); border:1px solid #c9c4d4; }
.profile-columns>div { display:grid; gap:20px; }
.console-main>.console-panel+.console-panel { margin-top:20px; }
.status-note { color:var(--muted); font-size:.9375rem; }
.grouped-admin-sidebar .sidebar-count-note { color:var(--muted); font-size:.875rem; }
@media(max-width:800px) {
 .matchmaker-home-top,.matchmaker-start { grid-template-columns:1fr; }
 .message-row { flex-wrap:wrap; }
 .journal-table-panel { padding:0; }
}
}
@layer components {
button[aria-busy=true]::after { content:'…'; }
.people-detail>.case-summary { padding:20px; background:white; border:1px solid var(--line); border-radius:8px; margin-bottom:16px; }
.task-row { display:flex; align-items:start; gap:20px; }
.task-main { flex:1; min-width:0; }
.task-row>.button { flex-shrink:0; }
.directory-scope { font-size:.9375rem; }
@media(max-width:600px) { .task-row { flex-wrap:wrap; } .task-main { flex-basis:100%; } }
}
@layer components {
.registration-progress { margin-block:16px; }
.registration-axis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; list-style:none; padding:0; margin:12px 0 0; border:0; background:none; }
.registration-step { padding:0; text-align:start; min-width:0; }
.registration-step::before,.registration-step::after { display:none; }
.registration-step a { display:grid; grid-template-columns:24px minmax(0,1fr); gap:2px 8px; padding:8px; border:1px solid var(--line); border-radius:6px; text-decoration:none; color:var(--ink); min-height:64px; }
.progress-dot { width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font-size:.875rem; margin:0; grid-row:1/3; }
.registration-step strong { font-size:.9375rem; font-weight:600; }
.progress-state { font-size:.875rem; color:var(--muted); }
.people-detail .registration-axis { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:800px) { .registration-axis { grid-template-columns:repeat(2,minmax(0,1fr)); } }
}
@layer components {
.medical-image { display:block; width:auto; max-width:100%; max-height:none; height:auto; margin:auto; }
.document-panel { text-align:center; }
.file-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:16px 0; border-bottom:1px solid var(--line); }
.file-row .form-actions { border:0; padding:0; margin:0; }
.intake-history article,.profile-history article,.recommendation-row { padding-block:16px; border-bottom:1px solid var(--line); }
.recommendation-row:last-child { border-bottom:0; }
.account-choice-grid { display:grid; gap:16px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.account-choice { display:flex; gap:12px; text-decoration:none; }
.account-choice strong,.account-choice small { display:block; }
.account-choice small { color:var(--muted); margin-top:8px; }
@media(max-width:800px) { .account-choice-grid { grid-template-columns:1fr; } }
}
@layer components {
.choice-field { border:0; padding:0; margin:0; }
.choice-field legend { padding:0; color:var(--ink); font-family:var(--font-body); }
.choice-field>div>div { margin:0; }
}
@layer components {
.step-form,.inquiry-panel { max-width:760px; }
.inquiry-panel { margin-inline:auto; }
.report-controls { display:flex; align-items:end; flex-wrap:wrap; gap:16px; }
.report-controls .form-field { flex:1 1 220px; margin:0; }
.report-controls .form-field label { margin-top:0; }
.report-controls .error-summary { flex-basis:100%; }
.work-center-tabs { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:8px; border:0; }
.work-center-tabs a { padding:12px; border:1px solid var(--line); border-radius:6px; background:#fff; justify-content:space-between; }
.work-center-tabs a[aria-current=page] { border-color:var(--brand-pink); background:#fbeef5; }
.task-tabs a { flex:0 0 auto; }
@media(max-width:800px) {
 .work-center-tabs { display:flex; flex-wrap:nowrap; overflow-x:auto; padding-bottom:6px; }
 .work-center-tabs a { flex:0 0 170px; }
}
}
@layer components {
button.danger,.button.danger { background:#ad293d; color:#fff; }
.secondary.danger-link { color:#9a263b; border-color:#dfadb5; }
}

/* Shared character-count hint; errors use text as well as color. */
.character-count { display:block; margin-block:6px 12px; color:var(--muted); font-size:.9rem; line-height:1.6; }
.character-count.is-over-limit { color:#a01c34; font-weight:600; }
.admin-nav-group[open] .pending-inquiries-summary { display:none; }

.legacy-source-field { padding-block: 12px; border-bottom: 1px solid var(--border); }
.legacy-source-field summary { cursor: pointer; font-weight: 600; }
.legacy-source-field .journal-text { padding-block: 12px; overflow-wrap: anywhere; }
