:root {
    --pc-ink: #0b2744;
    --pc-copy: #243b4d;
    --pc-muted: #52697a;
    --pc-blue: #0b63a3;
    --pc-action: #147fc1;
    --pc-teal: #147a78;
    --pc-canvas: #f4f7f9;
    --pc-surface: #ffffff;
    --pc-soft-blue: #edf6fc;
    --pc-soft-teal: #eaf6f4;
    --pc-line: #d5e0e7;
    --pc-danger: #a93232;
    --pc-soft-danger: #fff3f2;
    --pc-warning: #77571a;
    --pc-soft-warning: #fff9e9;
    --pc-focus: #147fc1;
    --pc-primary: var(--pc-action);
    --pc-navy: var(--pc-ink);
    --pc-success: #10b981;
    --pc-success-soft: #e8f8f3;
    /* Spec-named aliases (primecare_master_responsive_dashboard_pwa_voice_kimi_prompt.md, Phase 2):
       kept in sync with this file's canonical tokens above so var(--pc-text) etc. resolve
       globally instead of relying on per-call fallback values. Page-scoped token sets
       (e.g. .pcd-body) still take precedence for their own pages via normal cascade. */
    --pc-text: var(--pc-copy);
    --pc-bg: var(--pc-canvas);
    --pc-border: var(--pc-line);
    --pc-radius-sm: 8px;
    --pc-radius: 12px;
    --pc-radius-md: 12px;
    --pc-radius-lg: 16px;
    --pc-radius-xl: 20px;
    --pc-shadow-card: 0 3px 14px rgba(20, 54, 76, .07);
    --pc-space-1: 4px;
    --pc-space-2: 8px;
    --pc-space-3: 12px;
    --pc-space-4: 16px;
    --pc-space-5: 24px;
    --pc-space-6: 32px;
    --pc-space-7: 48px;
    --pc-space-8: 64px;
    --pc-space-10: 40px;
    --pc-z-sticky: 20;
    --pc-z-dropdown: 30;
    --pc-z-backdrop: 40;
    --pc-z-drawer: 50;
    /* Modal and tooltip were named in DESIGN.md's layer scale but never
       declared, so .pc-dialog's z-index: var(--pc-z-modal) resolved to
       nothing and dialogs stacked below sticky chrome. */
    --pc-z-modal: 60;
    --pc-z-toast: 70;
    --pc-z-tooltip: 80;
    --pc-ease: cubic-bezier(.22, 1, .36, 1);
    color-scheme: light;
}

html { scroll-behavior: smooth; }

.pc-shell-body {
    background: var(--pc-canvas);
    color: var(--pc-copy);
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    font-size: 16px;
    line-height: 1.55;
    margin: 0;
    min-width: 320px;
}

.pc-shell-body :where(h1, h2, h3, .pcd-title, .pcd-card-title, .pcd-focus__title) {
    font-family: 'Plus Jakarta Sans', 'Outfit', -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    letter-spacing: -0.02em;
}

.pc-shell-body :where(.fa, .fas, .far, .fal, .fad, .fab, [class*="fa-"]) {
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome" !important;
}

.pc-shell-body :where(.fab, [class*="fa-brands"]) {
    font-family: "Font Awesome 6 Brands", "Font Awesome 5 Brands", "FontAwesome" !important;
}

.pc-shell-body *, .pc-shell-body *::before, .pc-shell-body *::after,
.pc-auth-body, .pc-auth-body *, .pc-auth-body *::before, .pc-auth-body *::after { box-sizing: border-box; }
.pc-shell-body :where(h1, h2, h3) { color: var(--pc-ink); font-weight: 800; letter-spacing: -.02em; text-wrap: balance; }
.pc-shell-body :where(p, li) { text-wrap: pretty; }
.pc-shell-body :where(a, button, input, select, textarea, summary):focus-visible {
    outline: 2px solid var(--pc-focus) !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 2px var(--pc-surface) !important;
}
.pc-shell-body :where(button, summary) { cursor: pointer; }
.pc-shell-body :where(a) { color: var(--pc-blue); }
.pc-shell-body :where(a:hover) { color: var(--pc-ink); }

.pc-skip-link {
    background: var(--pc-ink);
    border-radius: 0 0 var(--pc-radius-sm) var(--pc-radius-sm);
    color: #fff !important;
    font-weight: 750;
    left: 16px;
    padding: 11px 16px;
    position: fixed;
    text-decoration: none;
    top: -80px;
    transition: top 160ms var(--pc-ease);
    z-index: var(--pc-z-toast);
}
.pc-skip-link:focus { top: 0; }

.pc-shell { min-height: 100dvh; }
.pc-shell__stage { min-height: 100dvh; min-width: 0; }
.pc-shell-header {
    align-items: center;
    background: #ffffff !important;
    border-bottom: 1px solid var(--pc-line);
    display: flex;
    gap: var(--pc-space-5);
    height: 72px;
    justify-content: space-between;
    padding: 0 clamp(16px, 3vw, 40px);
    position: sticky;
    top: 0;
    z-index: var(--pc-z-sticky);
}
.pc-shell-header__start { align-items: center; display: flex; gap: 10px; min-width: 0; }
.pc-shell-brand { align-items: center; color: var(--pc-ink) !important; display: inline-flex; flex: none; gap: 12px; text-decoration: none !important; }
.pc-shell-brand img { display: block; height: 42px; max-width: 170px; object-fit: contain; }
.pc-shell-brand span { border-left: 1px solid var(--pc-line); font-size: .8rem; font-weight: 800; padding-left: 12px; }
.pc-shell-main { margin: 0 auto; max-width: 1520px; min-width: 0; padding: clamp(20px, 3vw, 40px); width: 100%; }

.pc-icon-button {
    align-items: center;
    background: transparent;
    border: 1px solid var(--pc-line);
    border-radius: var(--pc-radius-sm);
    color: var(--pc-ink);
    display: inline-flex;
    height: 44px;
    justify-content: center;
    padding: 0;
    width: 44px;
}
.pc-icon-button:hover { background: var(--pc-soft-blue); border-color: #aecfe4; }

/* Locked, not hidden - matches .pc-sidebar__item--locked in
   prime-care-portal-layout.css. A <span>, not a link. */
.pc-icon-button--locked { cursor: not-allowed; opacity: .55; }
.pc-icon-button--locked:hover { background: transparent; border-color: var(--pc-line); }

.pc-patient-nav { align-items: stretch; display: flex; gap: var(--pc-space-1); }
.pc-patient-nav > :where(a, span, button) {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: var(--pc-radius-sm);
    color: var(--pc-muted);
    cursor: pointer;
    display: flex;
    font-family: inherit;
    font-size: .84rem;
    font-weight: 750;
    gap: 8px;
    justify-content: center;
    min-height: 44px;
    padding: 9px 12px;
    text-decoration: none;
}
.pc-patient-nav > :where(a, button):hover { background: var(--pc-soft-blue); color: var(--pc-ink); }
.pc-patient-nav > .is-current { background: var(--pc-soft-blue); color: var(--pc-blue); }
.pc-patient-nav > span[aria-disabled="true"] { cursor: not-allowed; opacity: .62; }
.pc-patient-nav small { display: none; }
.pc-patient-nav--bottom { display: none; }

.pc-account-menu { margin-left: auto; position: relative; }
.pc-account-menu > summary {
    align-items: center;
    border-radius: var(--pc-radius-sm);
    color: var(--pc-ink);
    display: flex;
    gap: 8px;
    list-style: none;
    min-height: 44px;
    padding: 4px 8px;
}
.pc-account-menu > summary::-webkit-details-marker { display: none; }
.pc-account-menu > summary > span, .pc-workspace-rail__identity > span {
    align-items: center;
    background: var(--pc-soft-blue);
    border-radius: 50%;
    color: var(--pc-blue);
    display: inline-flex;
    font-weight: 850;
    height: 36px;
    justify-content: center;
    width: 36px;
}
.pc-account-menu > summary b { font-size: .86rem; }
.pc-account-menu > summary i { font-size: .7rem; }
.pc-account-menu > div {
    background: #ffffff !important;
    border: 1px solid var(--pc-line, #d7e4ed);
    border-radius: 12px;
    box-shadow: 0 10px 25px -5px rgba(16, 42, 67, 0.15), 0 8px 10px -6px rgba(16, 42, 67, 0.1);
    min-width: 230px;
    padding: 8px;
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    z-index: var(--pc-z-dropdown);
}
.pc-account-menu p { border-bottom: 1px solid var(--pc-line); margin: 0 0 6px; padding: 10px; }
.pc-account-menu p :where(strong, small) { display: block; }
.pc-account-menu p small { color: var(--pc-muted); margin-top: 2px; }
.pc-account-menu :where(a, button) {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 7px;
    color: var(--pc-copy);
    display: flex;
    font: inherit;
    font-size: .88rem;
    gap: 9px;
    min-height: 42px;
    padding: 9px 10px;
    text-align: left;
    text-decoration: none;
    width: 100%;
}
.pc-account-menu :where(a, button):hover { background: var(--pc-soft-blue); color: var(--pc-ink); }
.pc-account-menu form { margin: 0; }

/* Locked, not hidden - matches .pc-sidebar__item--locked. A <span>, not a
   link, so there is no href to click through server-side auth for. */
.pc-account-menu__item--locked {
    align-items: center;
    color: var(--pc-muted);
    cursor: not-allowed;
    display: flex;
    font-size: .88rem;
    gap: 9px;
    min-height: 42px;
    opacity: .7;
    padding: 9px 10px;
    width: 100%;
}
.pc-account-menu__item--locked i:last-child { font-size: .7rem; margin-left: auto; }

.pc-shell--professional { display: grid; grid-template-columns: 248px minmax(0, 1fr); }
.pc-workspace-rail {
    background: var(--pc-ink);
    color: #fff;
    display: flex;
    flex-direction: column;
    height: 100dvh;
    overflow-y: auto;
    padding: 18px 14px;
    position: sticky;
    top: 0;
}
.pc-workspace-rail__brand { align-items: center; display: flex; justify-content: space-between; min-height: 48px; padding: 0 8px 18px; }
.pc-workspace-rail__brand img { filter: brightness(0) invert(1); max-height: 42px; max-width: 168px; object-fit: contain; }
.pc-workspace-rail__close { display: none; }
.pc-workspace-rail__close { border-color: rgba(255,255,255,.28); color: #fff; }
.pc-workspace-rail__close:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.46); color: #fff; }
.pc-workspace-rail__identity { align-items: center; border-block: 1px solid rgba(255,255,255,.14); display: flex; gap: 10px; margin-bottom: 16px; padding: 16px 8px; }
.pc-workspace-rail__identity > span { background: rgba(255,255,255,.12); color: #fff; flex: none; }
.pc-workspace-rail__identity strong, .pc-workspace-rail__identity small { display: block; }
.pc-workspace-rail__identity strong { color: #fff; font-size: .86rem; }
.pc-workspace-rail__identity small { color: #b9ccdb; font-size: .73rem; margin-top: 2px; }
.pc-workspace-nav { display: grid; gap: 4px; }
.pc-workspace-nav > :where(a, span) {
    align-items: center;
    border-radius: var(--pc-radius-sm);
    color: #d7e4ed;
    display: grid;
    font-size: .9rem;
    font-weight: 700;
    gap: 12px;
    grid-template-columns: 22px minmax(0, 1fr);
    min-height: 46px;
    padding: 10px 12px;
    text-decoration: none;
}
.pc-workspace-nav > a:hover { background: rgba(255,255,255,.1); color: #fff; }
.pc-workspace-nav > .is-current { background: #fff; color: var(--pc-ink); }
.pc-workspace-nav > :where(a, span) > i { text-align: center; }
.pc-workspace-nav__disabled { cursor: not-allowed; opacity: .55; }
.pc-workspace-nav__disabled small { display: block; font-size: .65rem; font-weight: 650; margin-top: 1px; }
.pc-workspace-rail__footer { border-top: 1px solid rgba(255,255,255,.14); display: grid; gap: 3px; margin-top: auto; padding-top: 14px; }
.pc-workspace-rail__footer :where(a, button) { align-items: center; background: transparent; border: 0; border-radius: 7px; color: #d7e4ed; display: flex; font: inherit; font-size: .84rem; gap: 10px; min-height: 42px; padding: 8px 11px; text-decoration: none; width: 100%; }
.pc-workspace-rail__footer :where(a, button):hover { background: rgba(255,255,255,.1); color: #fff; }
.pc-workspace-rail__footer form { margin: 0; }
.pc-shell-header__menu { display: none; }
.pc-shell--professional .pc-shell-header { height: 64px; }

.pc-button {
    align-items: center;
    border: 1px solid transparent;
    border-radius: var(--pc-radius-sm);
    display: inline-flex;
    font: inherit;
    font-size: .9rem;
    font-weight: 800;
    gap: 9px;
    justify-content: center;
    min-height: 44px;
    padding: 10px 16px;
    text-decoration: none !important;
    transition: background-color 160ms var(--pc-ease), border-color 160ms var(--pc-ease), color 160ms var(--pc-ease), transform 160ms var(--pc-ease);
}
.pc-button:hover { transform: translateY(-1px); }
.pc-button--primary { background: var(--pc-action); color: #fff !important; }
.pc-button--primary:hover { background: var(--pc-ink); }
.pc-button--secondary { background: var(--pc-surface); border-color: var(--pc-blue); color: var(--pc-blue) !important; }
.pc-button--secondary:hover { background: var(--pc-soft-blue); color: var(--pc-ink) !important; }
.pc-button--quiet { background: transparent; color: var(--pc-blue) !important; }
.pc-button--quiet:hover { background: var(--pc-soft-blue); }
.pc-button--danger { background: var(--pc-danger); color: #fff !important; }
.pc-button--danger:hover { background: #7f2424; }
.pc-button:disabled, .pc-button[aria-disabled="true"] { cursor: not-allowed; opacity: .55; transform: none; }

.pc-alert { align-items: start; border: 1px solid; border-radius: var(--pc-radius); display: grid; gap: 12px; grid-template-columns: 22px minmax(0, 1fr); padding: 14px 16px; }
.pc-alert strong { color: currentColor; display: block; margin-bottom: 2px; }
.pc-alert--info { background: var(--pc-soft-blue); border-color: #b8d6e9; color: #174f76; }
.pc-alert--success { background: var(--pc-soft-teal); border-color: #9ccbc7; color: #0d5e5c; }
.pc-alert--warning { background: var(--pc-soft-warning); border-color: #dfce94; color: var(--pc-warning); }
.pc-alert--danger { background: var(--pc-soft-danger); border-color: #e3b5b1; color: var(--pc-danger); }

.pc-status { align-items: center; border-radius: 999px; display: inline-flex; font-size: .74rem; font-weight: 800; gap: 6px; line-height: 1.2; padding: 6px 9px; }
.pc-status--neutral { background: #e9eef2; color: #3e5668; }
.pc-status--info { background: var(--pc-soft-blue); color: var(--pc-blue); }
.pc-status--success { background: var(--pc-soft-teal); color: #0d5e5c; }
.pc-status--warning { background: var(--pc-soft-warning); color: var(--pc-warning); }
.pc-status--danger { background: var(--pc-soft-danger); color: var(--pc-danger); }

.pc-progress { max-width: 720px; }
.pc-progress__copy { align-items: center; display: flex; font-size: .82rem; justify-content: space-between; margin-bottom: 7px; }
.pc-progress__copy span { color: var(--pc-muted); }
.pc-progress__copy strong { color: var(--pc-ink); font-variant-numeric: tabular-nums; }
.pc-progress__track { background: #dce7ed; border-radius: 999px; height: 8px; overflow: hidden; }
.pc-progress__track span { background: var(--pc-teal); border-radius: inherit; display: block; height: 100%; transform: scaleX(calc(var(--pc-progress) / 100%)); transform-origin: left; transition: transform 220ms var(--pc-ease); width: 100%; }

.pc-empty-state { align-items: start; border-block: 1px solid var(--pc-line); display: grid; gap: 18px; grid-template-columns: 44px minmax(0, 1fr); padding: 28px 0; }
.pc-empty-state > i { align-items: center; background: var(--pc-soft-blue); border-radius: 50%; color: var(--pc-blue); display: flex; height: 44px; justify-content: center; }
.pc-empty-state h2 { font-size: 1.1rem; margin: 0 0 5px; }
.pc-empty-state__copy { color: var(--pc-muted); max-width: 65ch; }
.pc-empty-state__copy p { margin: 0; }
.pc-empty-state__action { margin-top: 14px; }

.pc-page-header { align-items: start; border-bottom: 1px solid var(--pc-line); display: flex; gap: 24px; justify-content: space-between; margin-bottom: 24px; padding-bottom: 20px; }
.pc-page-header > div:first-child { flex: 1 1 auto; min-width: 0; }
.pc-page-header h1 { font-size: clamp(1.7rem, 3vw, 2.5rem); line-height: 1.1; margin: 0; }
.pc-page-header p { color: var(--pc-muted); margin: 7px 0 0; max-width: 62ch; }
.pc-page-header__actions { display: flex; flex: none; flex-wrap: wrap; gap: 8px; }

.pc-field { display: grid; gap: 7px; }
.pc-field > span { color: var(--pc-ink); font-size: .86rem; font-weight: 750; }
.pc-field :where(input, select, textarea) { background: #fff; border: 1px solid #aebfca; border-radius: var(--pc-radius-sm); color: var(--pc-ink); font: inherit; min-height: 44px; padding: 9px 11px; width: 100%; }
.pc-field textarea { min-height: 96px; resize: vertical; }
.pc-field :where(input, textarea)::placeholder { color: #52697a; opacity: 1; }
.pc-field small { color: var(--pc-muted); }
.pc-field__range { align-items: center; display: flex; gap: 10px; }
.pc-field__range input { flex: 1 1 0; min-width: 0; }
.pc-field__range span { color: var(--pc-muted); font-size: 0.85rem; white-space: nowrap; }
.pc-field--error :where(input, select, textarea) { border-color: var(--pc-danger); }
.pc-field--error small:not(.pc-field-help) { color: var(--pc-danger); }
.pc-field-help { color: var(--pc-muted); }

.pc-connection-status { background: var(--pc-ink); border-radius: var(--pc-radius-sm); bottom: 18px; color: #fff; left: 50%; max-width: min(560px, calc(100vw - 32px)); padding: 12px 16px; position: fixed; transform: translateX(-50%); z-index: var(--pc-z-toast); }

.pc-system-gallery { display: grid; gap: 32px; }
.pc-system-gallery__intro { background: var(--pc-ink); border-radius: var(--pc-radius); color: #fff; display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr) auto; padding: clamp(24px, 4vw, 48px); }
.pc-system-gallery__intro h1 { color: #fff; font-size: clamp(2rem, 5vw, 4.25rem); line-height: .98; margin: 0; max-width: 12ch; }
.pc-system-gallery__intro p { color: #d1e0ea; margin: 14px 0 0; max-width: 62ch; }
.pc-system-gallery__intro dl { align-self: end; border-left: 1px solid rgba(255,255,255,.2); display: grid; gap: 12px; margin: 0; min-width: 210px; padding-left: 24px; }
.pc-system-gallery__intro dt { color: #aac1d1; font-size: .75rem; }
.pc-system-gallery__intro dd { color: #fff; font-weight: 800; margin: 1px 0 0; }
.pc-system-section { border-top: 1px solid var(--pc-line); display: grid; gap: 24px; grid-template-columns: minmax(180px, .34fr) minmax(0, 1fr); padding-top: 28px; }
.pc-system-section > header h2 { font-size: 1.2rem; margin: 0 0 6px; }
.pc-system-section > header p { color: var(--pc-muted); font-size: .86rem; margin: 0; }
.pc-system-section__content { display: grid; gap: 16px; min-width: 0; }
.pc-system-row { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; }
.pc-system-surface { background: var(--pc-surface); border: 1px solid var(--pc-line); border-radius: var(--pc-radius); padding: 20px; }
.pc-system-state-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.pc-system-state { background: #fff; border: 1px solid var(--pc-line); border-radius: var(--pc-radius); min-height: 150px; padding: 18px; }
.pc-system-state h3 { font-size: 1rem; margin: 0 0 12px; }
.pc-skeleton { display: grid; gap: 10px; }
.pc-skeleton span { animation: pc-pulse 1.3s ease-in-out infinite alternate; background: #e4ebef; border-radius: 6px; display: block; height: 14px; }
.pc-skeleton span:first-child { height: 22px; width: 60%; }
.pc-skeleton span:last-child { width: 78%; }
@keyframes pc-pulse { to { background: #cfdce4; } }

/* Existing patient surfaces now live inside the shared shell. */
.pc-shell .pcd-app, .pc-shell .pcc-app { min-height: 0; }
.pc-shell .pcd-header, .pc-shell .pcc-header { display: none; }
.pc-shell .pcd-main, .pc-shell .pcc-main { max-width: none; padding: 0; }
.pc-shell #track-today { scroll-margin-top: 92px; }

.pc-today { display: grid; gap: 0px; }
.pc-today__date { color: var(--pc-muted); font-size: .86rem; margin: -12px 0 0; }
.pc-today-action { border-bottom: 1px solid var(--pc-line); display: grid; gap: 10px; justify-items: start; padding-bottom: 24px; }
.pc-today-action h2 { font-size: 1.75rem; line-height: 1.15; margin: 0; max-width: 22ch; text-wrap: balance; }
.pc-today-action p { color: var(--pc-copy); margin: 0; max-width: 65ch; }
.pc-today-responses { display: grid; gap: 12px; }
.pc-today-responses h2 { font-size: 1.05rem; margin: 0; }
.pc-today-responses > p { color: var(--pc-muted); margin: 0; max-width: 65ch; }
.pc-today-responses__grid { display: flex; flex-wrap: wrap; gap: 8px; }
.pc-today-chip {
    background: var(--pc-surface);
    border: 1px solid var(--pc-line);
    border-radius: 999px;
    color: var(--pc-ink);
    font: inherit;
    font-size: .88rem;
    font-weight: 700;
    min-height: 44px;
    padding: 8px 16px;
}
.pc-today-chip:hover { border-color: var(--pc-blue); color: var(--pc-blue); }
.pc-today-chip:focus-visible { outline: 2px solid var(--pc-ink); outline-offset: 2px; }
.pc-today-more { border-top: 1px solid var(--pc-line); padding-top: 10px; }
.pc-today-more > summary { cursor: pointer; font-weight: 750; min-height: 44px; padding: 10px 0; }
.pc-today-note { display: grid; gap: 12px; max-width: 40rem; }
.pc-today-snapshot { display: grid; gap: 12px; }
.pc-today-snapshot__heading { align-items: baseline; display: flex; justify-content: space-between; gap: 16px; }
.pc-today-snapshot h2 { font-size: 1.05rem; margin: 0; }
.pc-today-snapshot dl { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); margin: 0; }
.pc-today-snapshot dt { color: var(--pc-muted); font-size: .78rem; font-weight: 750; }
.pc-today-snapshot dd { margin: 4px 0 0; }
.pc-today-snapshot small { color: var(--pc-muted); display: block; font-size: .78rem; margin-top: 4px; }
.pc-plan { display: grid; gap: 8px; }
.pc-plan-section { border-top: 1px solid var(--pc-line); display: grid; gap: 16px; padding: 24px 0; }
.pc-plan-section header h2 { font-size: 1.2rem; margin: 0 0 6px; }
.pc-plan-section header p { color: var(--pc-muted); margin: 0; max-width: 70ch; }
.pc-plan-section blockquote { background: #eef6f6; border: 1px solid var(--pc-line); border-radius: 8px; margin: 0; padding: 16px; }
.pc-plan-section blockquote p { font-size: 1.15rem; margin: 0 0 10px; }
.pc-plan-section blockquote footer { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; }
.pc-plan-form { display: grid; gap: 12px; max-width: 40rem; }
.pc-plan-list { display: grid; gap: 12px; list-style: none; margin: 0; padding: 0; }
.pc-plan-list li { border-bottom: 1px solid var(--pc-line); display: grid; gap: 4px; padding-bottom: 12px; }
.pc-plan-list small { color: var(--pc-muted); }
.pc-plan-facts { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); margin: 0; }
.pc-plan-facts dt { color: var(--pc-muted); font-size: .78rem; font-weight: 750; }
.pc-plan-facts dd { margin: 4px 0 0; }
.pc-plan-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.pc-goals { display: grid; gap: 8px; }
.pc-goal-form { display: grid; gap: 8px; max-width: 44rem; }
.pc-goal-duration, .pc-goal-reminder-fields fieldset { border: 0; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.pc-goal-chip {
    align-items: center;
    background: var(--pc-surface);
    border: 1px solid var(--pc-line);
    border-radius: 999px;
    display: inline-flex;
    gap: 8px;
    min-height: 44px;
    padding: 8px 14px;
}
.pc-goal-chip input { margin: 0; }
.pc-goal-chip:has(input:checked) { border-color: var(--pc-blue); color: var(--pc-blue); }
.pc-goal-quiet { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.pc-field--inline { align-items: center; display: flex; gap: 10px; }
.pc-field--inline input { width: auto; }
.pc-muted { color: var(--pc-muted); }
.pc-alert p { margin: 0 0 8px; }
.pc-alert p:last-child { margin-bottom: 0; }
.visually-hidden { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.pc-track { display: grid; gap: 20px; }
.pc-track-metrics, .pc-track-ranges { display: flex; flex-wrap: wrap; gap: 8px; }
.pc-track-metrics a, .pc-track-ranges a { border: 1px solid var(--pc-line); border-radius: 999px; color: var(--pc-ink); min-height: 44px; padding: 8px 14px; text-decoration: none; }
.pc-track-metrics a small { color: var(--pc-muted); display: block; font-size: .72rem; }
.pc-track-metrics a.is-current, .pc-track-ranges a.is-current { background: var(--pc-soft-blue); border-color: var(--pc-blue); color: var(--pc-blue); }
.pc-track-spark { background: #fff; border: 1px solid var(--pc-line); border-radius: var(--pc-radius); max-width: 420px; width: 100%; }
.pc-track-spark__line { stroke: var(--pc-teal); }
.pc-track-table { border-collapse: collapse; width: min(720px, 100%); }
.pc-track-table th, .pc-track-table td { border-bottom: 1px solid var(--pc-line); padding: 10px 8px; text-align: left; }
.pc-library { display: grid; gap: 24px; }
.pc-library-toolbar { align-items: end; display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; }
.pc-library-toolbar__search { flex: 1 1 260px; min-width: 0; position: relative; }
.pc-library-toolbar__input { background: #fff; border: 1px solid #aebfca; border-radius: var(--pc-radius-sm); color: var(--pc-ink); font: inherit; min-height: 44px; padding: 9px 11px 9px 38px; width: 100%; }
.pc-library-toolbar__input::placeholder { color: #52697a; opacity: 1; }
.pc-library-toolbar__search-icon { align-items: center; color: var(--pc-muted); display: flex; height: 44px; justify-content: center; left: 0; pointer-events: none; position: absolute; top: 0; width: 38px; }
.pc-library-toolbar__filters { align-items: end; display: flex; flex-wrap: wrap; gap: 12px; }
.pc-library-toolbar__filters .pc-field { flex: none; margin: 0; }
.pc-library-toolbar__filters select { min-width: 160px; }
.pc-library-filters { align-items: end; display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 20px; }
.pc-library-filters .pc-field { flex: 1 1 220px; margin: 0; min-width: 0; }
.pc-library-filters .pc-button { flex: none; }
.pc-library-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); list-style: none; margin: 0; padding: 0; }
.pc-library-card { background: var(--pc-surface); border: 1px solid var(--pc-line); border-radius: var(--pc-radius); display: grid; gap: 16px; grid-template-columns: auto minmax(0, 1fr) auto; padding: 16px; transition: border-color 160ms var(--pc-ease), box-shadow 160ms var(--pc-ease); }
.pc-library-card:hover { border-color: #aecfe4; box-shadow: 0 4px 12px rgba(11, 39, 68, .06); }
.pc-library-card__media { align-self: start; }
.pc-library-card__icon { align-items: center; border-radius: var(--pc-radius-sm); display: inline-flex; font-size: 1.15rem; height: 44px; justify-content: center; width: 44px; }
.pc-library-card__icon--article { background: var(--pc-soft-blue); color: var(--pc-blue); }
.pc-library-card__icon--document { background: #f0f4f7; color: var(--pc-muted); }
.pc-library-card__icon--video { background: var(--pc-soft-warning); color: var(--pc-warning); }
.pc-library-card__icon--audio { background: var(--pc-soft-teal); color: var(--pc-teal); }
.pc-library-card__body { display: grid; gap: 8px; min-width: 0; }
.pc-library-card__meta { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; }
.pc-library-card__program { color: var(--pc-muted); font-size: .82rem; }
.pc-library-card__title { font-size: 1.05rem; line-height: 1.25; margin: 0; }
.pc-library-card__title a { color: var(--pc-ink); text-decoration: none; }
.pc-library-card__title a:hover { color: var(--pc-blue); }
.pc-library-card__summary { color: var(--pc-copy); display: -webkit-box; font-size: .92rem; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.5; margin: 0; overflow: hidden; }
.pc-library-card__tags { align-items: center; display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 4px 0 0; padding: 0; }
.pc-library-card__tags li { background: #f0f4f7; border-radius: 999px; color: var(--pc-muted); font-size: .74rem; font-weight: 700; padding: 4px 9px; }
.pc-library-card__action { align-self: start; }
.pc-library-card__save { border-color: var(--pc-line); color: var(--pc-muted); }
.pc-library-card__save:hover { background: var(--pc-soft-blue); border-color: var(--pc-blue); color: var(--pc-blue); }
.pc-library-card__save[aria-pressed="true"] { background: var(--pc-soft-teal); border-color: var(--pc-teal); color: var(--pc-teal); }
.pc-library-card__save[aria-pressed="true"]:hover { background: #d8eeec; border-color: #0d5e5c; color: #0d5e5c; }
.pc-library-body { max-width: 70ch; }
.pc-library-body p { margin: 0 0 1em; }
.pc-library-article { display: grid; gap: 20px; }
.pc-library-article__save { display: inline-flex; }
.pc-library-article__meta { align-items: center; display: flex; gap: 14px; flex-wrap: wrap; }
.pc-library-article__meta-list { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; color: var(--pc-muted); font-size: .88rem; }
.pc-library-article__tags { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: -8px 0 0; padding: 0; }
.pc-library-article__tags li { background: var(--pc-soft-blue); border-radius: 999px; color: var(--pc-blue); font-size: .82rem; font-weight: 750; padding: 6px 12px; }
.pc-library-article__external { padding-top: 8px; }
.pcl-next-action { background: #fff; border: 1px solid var(--pc-line); border-radius: var(--pc-radius); display: grid; gap: 10px; margin: 24px 0; padding: 20px; }
/* Shrinks a fas fa-circle down to a status bullet. Sat in prime-care-community.css,
   but its only caller is the goal detail page, which has no reason to pull a
   214-class community stylesheet in for one font-size. */
.pc-dot-icon { font-size: 0.5rem; }
.pc-thread { display: grid; gap: 12px; list-style: none; margin: 0; padding: 0; }
.pc-thread__item { border: 1px solid var(--pc-line); border-radius: var(--pc-radius); padding: 12px 14px; }
.pc-thread__item--patient { background: #fff; }
.pc-thread__item--staff { background: var(--pc-soft-blue); }
.pc-thread__item--system { background: #eef2f4; }
.pc-thread__item--ai { background: #f3f7f4; border-style: dashed; }
.pc-thread__item--note { background: var(--pc-soft-warning); }
.pc-thread__meta { color: var(--pc-muted); display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; margin: 0 0 6px; }
/* Lived in prime-care-support.css scoped to .pcs-message-list, so it reached the
   patient support thread but not the staff care-team thread, which builds the same
   .pc-thread markup without that wrapper - newlines in a message collapsed there.
   The rest of the .pc-thread block is already global; __body belongs beside it. */
.pc-thread__body { color: var(--pc-copy); line-height: 1.55; white-space: pre-wrap; }
.pc-thread__item p:last-child { margin: 0; }
.pc-care-actions, .pc-care-compose { display: flex; flex-wrap: wrap; gap: 10px; }
.pc-care-compose { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
@media (max-width: 767.98px) {
    .pc-library-toolbar { align-items: stretch; flex-direction: column; }
    .pc-library-toolbar__filters { display: grid; grid-template-columns: 1fr 1fr; }
    .pc-library-toolbar__filters .pc-button { grid-column: 1 / -1; }
    .pc-library-grid { grid-template-columns: 1fr; }
    .pc-library-card { gap: 12px; padding: 14px; }
}

@media (max-width: 1100px) {
    .pc-patient-nav--top > :where(a, span) { padding-inline: 9px; }
    .pc-patient-nav--top i { display: none; }
    .pc-account-menu > summary b { display: none; }
}

@media (max-width: 1023.98px) {
    .pc-shell--professional { display: block; }
    .pc-workspace-rail { box-shadow: 8px 0 18px rgba(11,39,68,.18); left: 0; max-width: min(86vw, 288px); position: fixed; top: 0; transform: translateX(-105%); transition: transform 220ms var(--pc-ease); width: 100%; z-index: var(--pc-z-drawer); }
    .pc-shell.is-drawer-open .pc-workspace-rail { transform: translateX(0); }
    .pc-shell__backdrop { background: rgba(5,24,43,.56); inset: 0; position: fixed; z-index: var(--pc-z-backdrop); }
    .pc-shell.is-drawer-open .pc-shell__backdrop { display: block; }
    .pc-workspace-rail__close, .pc-shell-header__menu { display: inline-flex; }
    .pc-shell--professional .pc-shell-brand { display: none; }
}

@media (max-width: 767.98px) {
    .pc-shell-header { height: 64px; padding-inline: 14px; }
    .pc-shell-brand img { height: 38px; max-width: 150px; }
    .pc-shell-brand span { display: none; }
    .pc-patient-nav--top { display: none; }
    .pc-patient-nav--bottom { background: #fff; border-top: 1px solid var(--pc-line); bottom: 0; display: grid; grid-template-columns: repeat(4, 1fr); left: 0; padding: 5px max(6px, env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left)); position: fixed; right: 0; z-index: var(--pc-z-sticky); }
    .pc-patient-nav--bottom > :where(a, span, button) { flex-direction: column; font-size: .68rem; gap: 2px; min-height: 54px; padding: 5px 2px; }
    .pc-patient-nav--bottom i { font-size: 1rem; }
    .pc-shell-body--patient .pc-shell-main { padding-bottom: calc(82px + env(safe-area-inset-bottom)); }
    .pc-shell-main { padding: 18px 14px; }
    .pc-account-menu > summary > span { height: 34px; width: 34px; }
    .pc-system-gallery__intro, .pc-system-section { grid-template-columns: 1fr; }
    .pc-system-gallery__intro dl { border-left: 0; border-top: 1px solid rgba(255,255,255,.2); padding: 18px 0 0; }
    .pc-page-header { align-items: start; flex-direction: column; }
    .pc-page-header__actions, .pc-page-header__actions .pc-button { width: 100%; }
    .pc-empty-state { grid-template-columns: 1fr; }
}

@media (max-width: 379.98px) {
    .pc-patient-nav--bottom > :where(a, span, button) { font-size: .62rem; }
    .pc-account-menu > summary i { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
    .pc-button:hover { transform: none; }
}

/* Phase 13 — professional operations */
.pc-stat-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); margin: 4px 0 8px; }
.pc-stat { background: var(--pc-surface); border: 1px solid var(--pc-line); border-radius: var(--pc-radius); display: grid; gap: 2px; padding: 16px; }
.pc-stat strong { color: var(--pc-ink); font-size: 1.9rem; font-weight: 800; letter-spacing: -.03em; line-height: 1.05; }
.pc-stat span { color: var(--pc-muted); font-size: .8rem; }
.pc-ops-cols { display: grid; gap: 32px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.pc-kv { border: 1px solid var(--pc-line); border-radius: var(--pc-radius); display: grid; gap: 0; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: 8px 0 0; overflow: hidden; }
.pc-kv > div { border-bottom: 1px solid var(--pc-line); display: grid; gap: 3px; padding: 10px 12px; }
.pc-kv > div:last-child { border-bottom: 0; }
.pc-kv span { color: var(--pc-muted); font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; }
.pc-kv strong { font-size: .92rem; }
.pc-muted { color: var(--pc-muted); }
.pc-section-title { margin: 20px 0 10px; }
.pc-draft { background: var(--pc-surface); border: 1px dashed var(--pc-blue); border-radius: var(--pc-radius); display: grid; gap: 10px; margin-top: 12px; padding: 14px; }
.pc-draft-section { margin-top: 8px; }
.pc-inline-form { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.pc-field--inline { margin: 0; min-width: 0; width: auto; }
.pc-staff-row { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; }
.pc-form-narrow { max-width: 520px; }
.pc-form-types { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 20px; }
.pc-form-types__item { align-items: center; background: var(--pc-surface); border: 1px solid var(--pc-line); border-radius: 999px; color: var(--pc-copy); display: inline-flex; gap: 8px; min-height: 44px; padding: 8px 14px; text-decoration: none !important; }
.pc-form-types__item:hover { border-color: var(--pc-blue); color: var(--pc-ink); }
.pc-form-types__item.is-active { background: var(--pc-soft-blue); border-color: var(--pc-blue); color: var(--pc-blue); }
.pc-form-types__item i { font-size: .92rem; }
.pc-form-types__item b { background: rgba(11, 39, 68, .08); border-radius: 999px; font-size: .76rem; font-weight: 800; padding: 2px 8px; }
.pc-form-types__item.is-active b { background: rgba(20, 127, 193, .15); }
.pc-data-table { border-collapse: collapse; width: 100%; }
.pc-data-table th { border-bottom: 1px solid var(--pc-line); color: var(--pc-muted); font-size: .74rem; font-weight: 750; letter-spacing: .04em; padding: 10px 12px; text-align: left; text-transform: uppercase; white-space: nowrap; }
.pc-data-table td { border-bottom: 1px solid var(--pc-line); color: var(--pc-copy); padding: 12px; vertical-align: middle; }
.pc-data-table tbody tr:last-child td { border-bottom: 0; }
.pc-data-table strong { color: var(--pc-ink); }
.pc-data-table__wrap { overflow-x: auto; }

/* Form submission detail (admin) */
.pc-detail-grid { align-items: start; display: grid; gap: var(--pc-space-5); grid-template-columns: 320px minmax(0, 1fr); }
.pc-detail-signup { border-top: 1px solid var(--pc-line); margin-top: var(--pc-space-4); padding-top: var(--pc-space-4); }
.pc-code-row { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.pc-code-row code { background: var(--pc-canvas); border: 1px solid var(--pc-line); border-radius: var(--pc-radius-sm); color: var(--pc-ink); font-size: 1rem; font-weight: 800; letter-spacing: .03em; padding: 6px 12px; }
.pc-copy-btn { background: var(--pc-action); border: 0; border-radius: var(--pc-radius-sm); color: #fff; cursor: pointer; font-weight: 700; padding: 8px 14px; transition: background .2s ease; }
.pc-copy-btn.is-copied { background: var(--pc-teal); }

.pc-payload-grid { display: grid; gap: 12px; }
.pc-payload-row { background: var(--pc-canvas); border: 1px solid var(--pc-line); border-radius: var(--pc-radius-sm); padding: 14px 16px; }
.pc-payload-row span { color: var(--pc-muted); display: block; font-size: .74rem; font-weight: 800; letter-spacing: .04em; margin-bottom: 4px; text-transform: uppercase; }
.pc-payload-row strong { color: var(--pc-ink); display: block; font-size: .95rem; line-height: 1.5; white-space: pre-wrap; word-break: break-word; }

.pc-submission-section { border-bottom: 1px solid var(--pc-line); display: grid; gap: 14px; margin-bottom: var(--pc-space-4); padding-bottom: var(--pc-space-4); }
.pc-submission-section h3 { color: var(--pc-ink); font-size: 1rem; margin: 0; }
.pc-submission-list { display: grid; gap: 10px; list-style: none; margin: 0; padding: 0; }
.pc-submission-list li { background: var(--pc-canvas); border: 1px solid var(--pc-line); border-radius: var(--pc-radius-sm); color: var(--pc-copy); line-height: 1.5; padding: 14px 16px; }
.pc-submission-list li strong { color: var(--pc-ink); display: block; margin-bottom: 2px; }
.pc-submission-doc-link { align-items: center; background: var(--pc-soft-blue); border-radius: var(--pc-radius-sm); color: var(--pc-blue) !important; display: inline-flex; font-weight: 700; gap: 7px; padding: 8px 12px; text-decoration: none !important; }
.pc-submission-doc-link:hover { background: #d8eefc; }
.pc-email-card { grid-column: 1 / -1; scroll-margin-top: 24px; }

@media (max-width: 991.98px) {
    .pc-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
    .pc-ops-cols { grid-template-columns: 1fr; }
    .pc-inline-form { justify-content: flex-start; }
    .pc-staff-row { align-items: flex-start; flex-direction: column; }
}

/* Phase 9 — shared design system additions */
.pc-badge {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: .72rem;
    font-weight: 800;
    gap: 5px;
    line-height: 1.2;
    padding: 4px 8px;
}
.pc-badge--neutral { background: #e9eef2; color: #3e5668; }
.pc-badge--info { background: var(--pc-soft-blue); color: var(--pc-blue); }
.pc-badge--success { background: var(--pc-soft-teal); color: #0d5e5c; }
.pc-badge--warning { background: var(--pc-soft-warning); color: var(--pc-warning); }
.pc-badge--danger { background: var(--pc-soft-danger); color: var(--pc-danger); }

.pc-tabs__list {
    border-bottom: 1px solid var(--pc-line);
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}
.pc-tabs__list button {
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    color: var(--pc-muted);
    cursor: pointer;
    font: inherit;
    font-size: .88rem;
    font-weight: 750;
    margin-bottom: -1px;
    min-height: 44px;
    padding: 10px 14px;
}
.pc-tabs__list button:hover { color: var(--pc-ink); }
.pc-tabs__list button.is-active { border-bottom-color: var(--pc-action); color: var(--pc-action); }
.pc-tabs__list a.pc-tabs__nav-link {
    align-items: center;
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    color: var(--pc-action, #0284c7);
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-size: .88rem;
    font-weight: 750;
    gap: 0.35rem;
    margin-bottom: -1px;
    margin-left: auto;
    min-height: 44px;
    padding: 10px 14px;
    text-decoration: none;
    transition: color 0.15s ease, border-color 0.15s ease;
}
.pc-tabs__list a.pc-tabs__nav-link:hover {
    color: #0369a1;
    border-bottom-color: #0369a1;
    text-decoration: none;
}
.pc-tabs__panel { padding: 20px 0; }
.pc-tabs__panel:not(.is-active) { display: none; }

.pc-dialog {
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 18px;
    position: fixed;
    z-index: var(--pc-z-modal);
}
.pc-dialog__backdrop {
    background: rgba(5,24,43,.56);
    inset: 0;
    position: absolute;
    z-index: -1;
}
.pc-dialog__panel {
    background: var(--pc-surface);
    border-radius: var(--pc-radius);
    box-shadow: 0 18px 50px rgba(11,39,68,.22);
    display: grid;
    max-height: calc(100dvh - 36px);
    overflow: auto;
    width: 100%;
}
.pc-dialog__header {
    align-items: center;
    border-bottom: 1px solid var(--pc-line);
    display: flex;
    gap: 16px;
    justify-content: space-between;
    padding: 16px 20px;
}
.pc-dialog__header h2 { font-size: 1.1rem; margin: 0; }
.pc-dialog__body { padding: 20px; }
.pc-dialog__footer {
    border-top: 1px solid var(--pc-line);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    padding: 16px 20px;
}

.pc-skeleton__avatar {
    animation: pc-pulse 1.3s ease-in-out infinite alternate;
    background: #e4ebef;
    border-radius: 50%;
    display: block;
    height: 44px;
    width: 44px;
}

.pc-wizard ol {
    display: flex;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.pc-wizard li { flex: 1; min-width: 0; }
.pc-wizard__step {
    align-items: center;
    display: flex;
    gap: 8px;
    min-height: 44px;
    padding: 8px 0;
}
.pc-wizard__number {
    align-items: center;
    background: #e4ebef;
    border-radius: 50%;
    color: var(--pc-muted);
    display: inline-flex;
    flex: none;
    font-size: .8rem;
    font-weight: 800;
    height: 28px;
    justify-content: center;
    width: 28px;
}
.pc-wizard li.is-completed .pc-wizard__number { background: var(--pc-teal); color: #fff; }
.pc-wizard li.is-current .pc-wizard__number { background: var(--pc-action); color: #fff; }
.pc-wizard__label {
    color: var(--pc-muted);
    font-size: .82rem;
    font-weight: 750;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.pc-wizard li.is-current .pc-wizard__label { color: var(--pc-ink); }

.pc-timeline {
    display: grid;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}
.pc-timeline__item {
    display: grid;
    gap: 12px;
    grid-template-columns: 28px minmax(0, 1fr);
    min-height: 44px;
    padding-bottom: 18px;
    position: relative;
}
.pc-timeline__item:not(:last-child)::before {
    background: var(--pc-line);
    bottom: 0;
    content: "";
    left: 13px;
    position: absolute;
    top: 28px;
    width: 2px;
}
.pc-timeline__item.is-completed:not(:last-child)::before { background: var(--pc-teal); }
.pc-timeline__marker {
    align-items: center;
    background: #fff;
    border: 2px solid var(--pc-line);
    border-radius: 50%;
    color: var(--pc-muted);
    display: inline-flex;
    flex: none;
    font-size: .72rem;
    font-weight: 800;
    height: 28px;
    justify-content: center;
    width: 28px;
    z-index: 1;
}
.pc-timeline__item.is-completed .pc-timeline__marker { background: var(--pc-teal); border-color: var(--pc-teal); color: #fff; }
.pc-timeline__item.is-current .pc-timeline__marker { border-color: var(--pc-action); color: var(--pc-action); }
.pc-timeline__content strong { color: var(--pc-ink); font-size: .95rem; }
.pc-timeline__content p { color: var(--pc-muted); font-size: .84rem; margin: 2px 0 0; }

.pc-appointment-card {
    background: var(--pc-surface);
    border: 1px solid var(--pc-line);
    border-radius: var(--pc-radius);
    display: grid;
    gap: 16px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: 16px;
}
.pc-appointment-card__time {
    align-items: center;
    border-right: 1px solid var(--pc-line);
    display: flex;
    flex: none;
    padding-right: 16px;
}
.pc-appointment-card__time strong { display: block; font-size: 1.1rem; }
.pc-appointment-card__time span { color: var(--pc-muted); display: block; font-size: .78rem; }
.pc-appointment-card__body { min-width: 0; }
.pc-appointment-card__meta { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; }
.pc-appointment-card__meta h3 { font-size: 1rem; margin: 0; }
.pc-appointment-card__provider { color: var(--pc-muted); font-size: .86rem; margin: 4px 0 0; }
.pc-appointment-card__actions { align-items: center; display: flex; flex: none; gap: 8px; }

.pc-matching-card {
    align-items: start;
    background: var(--pc-surface);
    border: 1px solid var(--pc-line);
    border-radius: var(--pc-radius);
    display: grid;
    gap: 14px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: 16px;
}
.pc-matching-card__avatar {
    align-items: center;
    background: var(--pc-soft-blue);
    border-radius: 50%;
    color: var(--pc-blue);
    display: inline-flex;
    flex: none;
    font-size: .9rem;
    font-weight: 800;
    height: 46px;
    justify-content: center;
    width: 46px;
}
.pc-matching-card__body h3 { font-size: 1rem; margin: 0; }
.pc-matching-card__meta {
    color: var(--pc-muted);
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    font-size: .82rem;
    list-style: none;
    margin: 6px 0 0;
    padding: 0;
}
.pc-matching-card__score { align-self: center; }
.pc-matching-card__actions { align-items: center; display: flex; flex: none; gap: 8px; }

.pc-conversation-card {
    align-items: start;
    border-bottom: 1px solid var(--pc-line);
    color: inherit;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 14px 0;
    text-decoration: none;
}
.pc-conversation-card:hover { background: var(--pc-soft-blue); }
.pc-conversation-card h3 { font-size: .95rem; margin: 0; }
.pc-conversation-card__sender { color: var(--pc-muted); font-size: .84rem; margin: 4px 0 0; }
.pc-conversation-card__sender strong { color: var(--pc-ink); }
.pc-conversation-card__meta { align-items: end; display: flex; flex-direction: column; gap: 6px; }
.pc-conversation-card__meta time { color: var(--pc-muted); font-size: .75rem; }
.pc-conversation-card__dot { background: var(--pc-action); border-radius: 50%; height: 8px; width: 8px; }
.pc-conversation-card.is-unread h3 { color: var(--pc-action); }

.pc-queue-item {
    align-items: center;
    background: var(--pc-surface);
    border: 1px solid var(--pc-line);
    border-radius: var(--pc-radius);
    display: grid;
    gap: 14px;
    grid-template-columns: 6px minmax(0, 1fr) auto;
    padding: 14px 16px;
}
.pc-queue-item__priority { border-radius: 999px; height: 36px; width: 6px; }
.pc-queue-item__priority[data-priority="low"] { background: var(--pc-teal); }
.pc-queue-item__priority[data-priority="normal"] { background: var(--pc-blue); }
.pc-queue-item__priority[data-priority="high"] { background: var(--pc-warning); }
.pc-queue-item__priority[data-priority="urgent"] { background: var(--pc-danger); }
.pc-queue-item__header { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; }
.pc-queue-item__header h3 { font-size: .98rem; margin: 0; }
.pc-queue-item__header a { color: var(--pc-ink); text-decoration: none; }
.pc-queue-item__meta { color: var(--pc-muted); display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .82rem; margin: 4px 0 0; }
.pc-queue-item__actions { align-items: center; display: flex; flex: none; gap: 8px; }

.pc-moderation-card {
    background: var(--pc-surface);
    border: 1px solid var(--pc-line);
    border-radius: var(--pc-radius);
    display: grid;
    gap: 12px;
    padding: 16px;
}
.pc-moderation-card__header {
    align-items: center;
    color: var(--pc-muted);
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    font-size: .82rem;
    justify-content: space-between;
}
.pc-moderation-card__author { color: var(--pc-ink); font-weight: 750; }
.pc-moderation-card__content {
    border-left: 3px solid var(--pc-line);
    color: var(--pc-copy);
    margin: 0;
    padding: 0 0 0 14px;
}
.pc-moderation-card__meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
}
.pc-moderation-card__actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }

@media (max-width: 767.98px) {
    .pc-appointment-card,
    .pc-matching-card,
    .pc-queue-item { grid-template-columns: 1fr; }
    .pc-appointment-card__time { border-bottom: 1px solid var(--pc-line); border-right: 0; padding: 0 0 12px; }
    .pc-wizard__label { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .pc-dialog__panel { transition: none; }
}

/* Auth layout */
.pc-auth-body {
    background: var(--pc-canvas);
    color: var(--pc-copy);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    font-size: 16px;
    line-height: 1.55;
    margin: 0;
    min-height: 100dvh;
}
.pc-auth-shell {
    display: grid;
    grid-template-rows: auto 1fr auto;
    min-height: 100dvh;
    padding: 24px clamp(16px, 4vw, 40px);
}
.pc-auth-shell__brand {
    display: flex;
    justify-content: center;
    padding: 16px 0 24px;
}
.pc-auth-shell__brand a { display: inline-block; }
.pc-auth-shell__brand img { display: block; height: 44px; max-width: 190px; object-fit: contain; }
.pc-auth-shell__main {
    align-items: center;
    display: flex;
    justify-content: center;
    padding: 16px 0;
}
.pc-auth-card {
    background: var(--pc-surface);
    border: 1px solid var(--pc-line);
    border-radius: var(--pc-radius);
    box-shadow: 0 8px 30px rgba(11,39,68,.08);
    padding: clamp(24px, 4vw, 40px);
    width: min(100%, 460px);
}
.pc-auth-card > .pc-alert { margin-bottom: 20px; }
.pc-auth-shell__footer {
    color: var(--pc-muted);
    font-size: .78rem;
    padding: 24px 0 0;
    text-align: center;
}
.pc-auth-shell__footer p { margin: 0 0 4px; }
.pc-auth-form { display: grid; gap: 16px; }
.pc-auth-form__actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; margin-top: 4px; }
.pc-auth-links { color: var(--pc-muted); font-size: .86rem; margin-top: 16px; text-align: center; }
.pc-auth-links a { color: var(--pc-blue); text-decoration: none; }
.pc-auth-links a:hover { color: var(--pc-ink); text-decoration: underline; }
.pc-auth-card__header { margin-bottom: 24px; }
.pc-auth-card__header h1 { font-size: 1.5rem; line-height: 1.2; margin: 0 0 6px; }
.pc-auth-card__header p { color: var(--pc-muted); margin: 0; }
.pc-field.pc-auth-checkbox { align-items: start; gap: 8px; grid-template-columns: auto 1fr; }
.pc-field.pc-auth-checkbox input[type="checkbox"] { accent-color: var(--pc-blue); cursor: pointer; margin-top: 4px; min-height: auto; width: auto; }
.pc-field.pc-auth-checkbox > span { font-weight: 500; }
.pc-field.pc-auth-checkbox a { color: var(--pc-blue); text-decoration: underline; }
.pc-field.pc-auth-checkbox a:hover { color: var(--pc-ink); }

/* Notification Dropdown (Hover & Focus) */
.pc-notification-dropdown {
    position: relative;
    display: inline-block;
}

.pc-notification-bell {
    position: relative;
    color: var(--pc-navy, #0b2744);
    font-size: 1.15rem;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #f0f4f8;
    transition: background 180ms ease, color 180ms ease;
    cursor: pointer;
}

.pc-notification-bell:hover {
    background: #e2e8f0;
    color: var(--pc-primary, #0967d2);
}

.pc-notification-badge {
    position: absolute;
    top: 0px;
    right: 0px;
    background: var(--pc-red, #e53e3e);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 800;
    border-radius: 999px;
    min-width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    border: 2px solid #fff;
}

.pc-notification-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 320px;
    background: #ffffff;
    border: 1px solid var(--pc-line, #d7e4ed);
    border-radius: 12px;
    box-shadow: 0 10px 25px -5px rgba(16, 42, 67, 0.15), 0 8px 10px -6px rgba(16, 42, 67, 0.1);
    z-index: 1050;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: opacity 200ms ease, transform 200ms ease, visibility 200ms ease;
}

/* Open dropdown on hover over trigger or menu itself */
.pc-notification-dropdown:hover .pc-notification-menu,
.pc-notification-dropdown:focus-within .pc-notification-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.pc-notification-menu__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid #edf2f7;
    font-size: 0.95rem;
    color: var(--pc-navy, #0b2744);
}

.pc-notification-menu__list {
    max-height: 280px;
    overflow-y: auto;
    padding: 6px 0;
}

.pc-notification-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 16px;
    text-decoration: none;
    color: var(--pc-ink, #102a43);
    transition: background 150ms ease;
    border-bottom: 1px solid #f7fafc;
}

.pc-notification-item:last-child {
    border-bottom: none;
}

.pc-notification-item:hover {
    background: #f7fafc;
}

.pc-notification-item--unread {
    background: #f0f7ff;
}

.pc-notification-item--unread:hover {
    background: #e1effe;
}

.pc-notification-item--warning {
    background: #fffbeb;
}

.pc-notification-item--warning:hover {
    background: #fef3c7;
}

.pc-notification-item__icon {
    margin-top: 2px;
    font-size: 1rem;
    color: var(--pc-primary, #0967d2);
    flex-shrink: 0;
}

.pc-notification-item--warning .pc-notification-item__icon {
    color: #d97706;
}

.pc-notification-item__content {
    flex: 1;
    min-width: 0;
}

.pc-notification-item__content strong {
    display: block;
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--pc-navy, #0b2744);
    margin-bottom: 2px;
}

.pc-notification-item__content p {
    margin: 0;
    font-size: 0.78rem;
    color: #485563;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pc-notification-item__content small {
    display: block;
    margin-top: 4px;
    font-size: 0.7rem;
    color: #829ab1;
}

.pc-notification-item--empty {
    padding: 24px 16px;
    text-align: center;
}

.pc-notification-item--empty__icon {
    color: var(--pc-muted);
    font-size: 1.5rem;
    margin-bottom: 4px;
}

.pc-notification-item--empty__text {
    color: var(--pc-muted);
    font-size: 0.85rem;
    margin: 0;
}

.pc-notification-menu__footer {
    padding: 10px 16px;
    border-top: 1px solid #edf2f7;
    background: #fafbfc;
    border-radius: 0 0 12px 12px;
    text-align: center;
}

.pc-badge--info {
    background: #e0f2fe;
    border-radius: 999px;
    color: #0369a1;
    font-size: 0.72rem;
    padding: 2px 8px;
}

.pc-btn-view-all {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--pc-primary, #0967d2);
    text-decoration: none;
    transition: color 150ms ease;
}

.pc-btn-view-all:hover {
    color: #0445af;
    text-decoration: underline;
}

.pc-btn-view-all__icon {
    font-size: 0.8em;
    margin-left: 4px;
}

.pc-shell-header__end {
    align-items: center;
    display: flex;
    gap: 12px;
}

.pc-panel {
    background: var(--pc-surface);
    border: 1px solid var(--pc-line);
    border-radius: var(--pc-radius);
    padding: var(--pc-space-5);
}
.pc-empty-state {
    text-align: center;
}
.pc-empty-state__icon {
    align-items: center;
    background: var(--pc-soft-blue);
    border-radius: 50%;
    color: var(--pc-blue);
    display: inline-flex;
    font-size: 1.5rem;
    height: 64px;
    justify-content: center;
    margin-bottom: var(--pc-space-3);
    width: 64px;
}
.pc-empty-state h2 {
    font-size: 1.25rem;
    margin: 0 0 8px;
}
.pc-empty-state > p {
    color: var(--pc-muted);
    font-size: 0.9rem;
    line-height: 1.5;
    margin: 0 auto;
    max-width: 480px;
}
.pc-empty-state--centered {
    border-block: 0;
    display: block;
    padding: 40px 20px;
}
.pc-empty-state--compact {
    align-items: center;
    background: var(--pc-canvas);
    border: 1px dashed var(--pc-line);
    border-radius: var(--pc-radius-sm);
    display: flex;
    gap: var(--pc-space-3);
    padding: var(--pc-space-4);
    text-align: left;
}
.pc-empty-state--compact .pc-empty-state__icon {
    background: transparent;
    color: var(--pc-muted);
    font-size: 1.5rem;
    height: auto;
    margin: 0;
    width: auto;
}
.pc-empty-state--compact > p {
    color: var(--pc-muted);
    font-size: 0.86rem;
    line-height: 1.5;
    margin: 0;
}
    .pc-panel { padding: var(--pc-space-4); }
/* Appointments page */
.pc-appointments-layout {
    align-items: start;
    display: grid;
    gap: var(--pc-space-5);
    grid-template-columns: minmax(min(100%, 360px), 420px) minmax(min(100%, 480px), 1fr);
}

@media (max-width: 991.98px) {
    .pc-appointments-layout { grid-template-columns: minmax(0, 1fr); }
}

.pc-appointment-request h2,
.pc-appointment-history h2 {
    align-items: center;
    display: flex;
    font-size: 1.15rem;
    gap: 10px;
    margin: 0 0 4px;
}

.pc-appointment-request h2 i,
.pc-appointment-history h2 i { color: var(--pc-blue); }

.pc-appointment-request > p,
.pc-appointment-history__header > div > p {
    color: var(--pc-muted);
    font-size: 0.88rem;
    margin: 0 0 var(--pc-space-4);
}

.pc-appointment-request__form {
    display: grid;
    gap: var(--pc-space-4);
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.pc-appointment-request__actions {
    grid-column: 1 / -1;
    margin-top: var(--pc-space-2);
}

.pc-field__optional {
    color: var(--pc-muted);
    font-weight: 500;
}

/* Appointment history list */
.pc-appointment-history__header {
    align-items: start;
    display: flex;
    justify-content: space-between;
    margin-bottom: var(--pc-space-3);
}

.pc-appointment-list {
    display: grid;
    gap: var(--pc-space-3);
    list-style: none;
    margin: 0;
    padding: 0;
}

.pc-appointment-list__item {
    align-items: center;
    background: var(--pc-surface);
    border: 1px solid var(--pc-line);
    border-radius: var(--pc-radius);
    color: inherit;
    display: grid;
    gap: var(--pc-space-4);
    grid-template-columns: 64px minmax(0, 1fr) auto;
    padding: var(--pc-space-4);
    text-decoration: none;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}

.pc-appointment-list__item:hover {
    border-color: #aecfe4;
    box-shadow: 0 4px 14px -4px rgba(11, 39, 68, 0.1);
}

.pc-appointment-list__item:hover .pc-appointment-list__chevron { color: var(--pc-blue); transform: translateX(2px); }

.pc-appointment-list__time {
    align-items: center;
    background: var(--pc-soft-blue);
    border-radius: var(--pc-radius-sm);
    color: var(--pc-blue);
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 64px;
    padding: 8px;
    text-align: center;
}

.pc-appointment-list__month {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.pc-appointment-list__day {
    font-size: 1.6rem;
    font-weight: 800;
    line-height: 1;
}

.pc-appointment-list__clock {
    color: var(--pc-muted);
    font-size: 0.72rem;
    font-weight: 700;
    margin-top: 2px;
}

.pc-appointment-list__body { min-width: 0; }

.pc-appointment-list__meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
}

.pc-appointment-list__body h3 {
    font-size: 1.05rem;
    margin: 0 0 4px;
}

.pc-appointment-list__body > p {
    color: var(--pc-muted);
    font-size: 0.85rem;
    margin: 0;
}

.pc-appointment-list__body > p i { margin-right: 4px; }
.pc-appointment-list__body > p span[aria-hidden="true"] { margin: 0 6px; }

.pc-appointment-list__chevron {
    color: var(--pc-line);
    font-size: 0.9rem;
    transition: color 150ms ease, transform 150ms ease;
}

@media (max-width: 767.98px) {
    .pc-appointment-list__item { grid-template-columns: 56px minmax(0, 1fr); }
    .pc-appointment-list__chevron { display: none; }
    .pc-appointment-request__actions .pc-button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .pc-appointment-list__item,
    .pc-appointment-list__chevron { transition: none; }
}


/* Goals page */
.pc-goals {
    margin: 0 auto;
    max-width: 1100px;
}

.pc-goals-explore header {
    margin-bottom: var(--pc-space-4);
}

.pc-goals-explore header h2 {
    font-size: 1.2rem;
    margin: 0 0 4px;
}

.pc-goals-explore header p {
    color: var(--pc-muted);
    font-size: 0.92rem;
    margin: 0;
}

.pc-goals-area-grid {
    display: grid;
    gap: var(--pc-space-4);
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.pc-goals-area-card {
    align-items: center;
    display: flex;
    gap: var(--pc-space-4);
    text-decoration: none;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}

.pc-goals-area-card:hover {
    border-color: #aecfe4;
    box-shadow: 0 4px 14px -4px rgba(11, 39, 68, 0.1);
}

.pc-goals-area-card:hover .pc-goals-area-card__chevron { color: var(--pc-blue); transform: translateX(2px); }

.pc-goals-area-card__icon {
    align-items: center;
    background: var(--pc-soft-blue);
    border-radius: 50%;
    color: var(--pc-blue);
    display: inline-flex;
    flex: none;
    font-size: 1.1rem;
    height: 48px;
    justify-content: center;
    width: 48px;
}

.pc-goals-area-card__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.pc-goals-area-card__content strong {
    color: var(--pc-ink);
    font-size: 1rem;
}

.pc-goals-area-card__content span {
    color: var(--pc-muted);
    font-size: 0.85rem;
    line-height: 1.4;
}

.pc-goals-area-card__chevron {
    color: var(--pc-line);
    flex: none;
    font-size: 0.85rem;
    transition: color 150ms ease, transform 150ms ease;
}

/* Goals summary */
.pc-goals-summary {
    align-items: center;
    background-color: var(--pc-ink);
    background-image:
        linear-gradient(135deg, rgba(11, 99, 163, 0.72) 0%, rgba(20, 122, 120, 0.72) 100%),
        url('../images/goals-summary-bg.webp');
    background-position: center;
    background-size: cover;
    border: 0;
    color: #fff;
    display: flex;
    gap: var(--pc-space-4);
    justify-content: space-between;
    margin-bottom: var(--pc-space-5);
    min-height: 160px;
}

.pc-goals-summary__text h2 {
    color: #fff;
    font-size: 1.35rem;
    margin: 0 0 8px;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.pc-goals-summary__text p {
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.95rem;
    line-height: 1.5;
    margin: 0;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

.pc-goals-summary__text p strong { color: #fff; }

/* Goals layout */
.pc-goals-layout {
    align-items: start;
    display: grid;
    gap: var(--pc-space-5);
    grid-template-columns: minmax(min(100%, 560px), 1fr) 280px;
}

.pc-goals-layout__main { min-width: 0; }
.pc-goals-layout__side { min-width: 0; }

@media (max-width: 991.98px) {
    .pc-goals-layout { grid-template-columns: minmax(0, 1fr); }
}

/* Goals sections */
.pc-goals-section { margin-bottom: var(--pc-space-5); }

.pc-goals-section__label {
    color: var(--pc-blue);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    margin: 0 0 var(--pc-space-3);
    text-transform: uppercase;
}

.pc-goals-section--completed .pc-goals-section__label { color: var(--pc-muted); }

.pc-goals-list {
    display: grid;
    gap: var(--pc-space-3);
    list-style: none;
    margin: 0;
    padding: 0;
}

.pc-goals-row {
    align-items: center;
    display: flex;
    gap: var(--pc-space-4);
    padding: var(--pc-space-4);
    text-decoration: none;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}

.pc-goals-row:hover {
    border-color: #aecfe4;
    box-shadow: 0 4px 12px -4px rgba(11, 39, 68, 0.08);
}

.pc-goals-row:hover .pc-goals-row__chevron { color: var(--pc-blue); transform: translateX(2px); }

.pc-goals-row__icon {
    align-items: center;
    background: var(--pc-soft-blue);
    border-radius: 50%;
    color: var(--pc-blue);
    display: inline-flex;
    flex: none;
    font-size: 1.1rem;
    height: 46px;
    justify-content: center;
    width: 46px;
}

.pc-goals-row__icon--completed {
    background: var(--pc-soft-teal);
    color: var(--pc-teal);
}

.pc-goals-row__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.pc-goals-row__content strong {
    color: var(--pc-ink);
    font-size: 1rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pc-goals-row--completed .pc-goals-row__content strong {
    color: var(--pc-muted);
    font-weight: 600;
}

.pc-goals-row__meta {
    color: var(--pc-muted);
    font-size: 0.84rem;
    font-weight: 600;
}

.pc-goals-row__progress {
    align-items: center;
    display: flex;
    gap: var(--pc-space-3);
    margin-top: 2px;
}

.pc-goals-row__chevron {
    color: var(--pc-line);
    flex: none;
    font-size: 0.85rem;
    transition: color 150ms ease, transform 150ms ease;
}

/* Progress bar */
.pc-progress {
    background: var(--pc-canvas);
    border-radius: 999px;
    flex: 1;
    height: 6px;
    max-width: 160px;
    overflow: hidden;
}

.pc-progress__bar {
    background: var(--pc-teal);
    border-radius: 999px;
    display: block;
    height: 100%;
    transform: scaleX(var(--pc-progress, 0));
    transform-origin: left;
    transition: transform 400ms ease;
    width: 100%;
}

.pc-progress__label {
    color: var(--pc-teal);
    font-size: 0.78rem;
    font-weight: 700;
    white-space: nowrap;
}

/* Side CTA */
.pc-goals-side-cta h3 {
    font-size: 1.05rem;
    margin: 0 0 4px;
}

.pc-goals-side-cta p {
    color: var(--pc-muted);
    font-size: 0.86rem;
    line-height: 1.5;
    margin: 0 0 var(--pc-space-4);
}

.pc-goals-side-cta .pc-button { width: 100%; }

@media (max-width: 767.98px) {
    .pc-goals-summary { flex-direction: column; align-items: flex-start; }
    .pc-goals-summary__motif { width: 90px; }
    .pc-goals-area-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .pc-goals-area-card,
    .pc-goals-row,
    .pc-goals-area-card__chevron,
    .pc-goals-row__chevron,
    .pc-progress__bar { transition: none; }
}


/* Notifications page */
.pc-notifications {
    margin: 0 auto;
    max-width: 820px;
}

.pc-notifications__alert-form {
    margin-top: var(--pc-space-3);
}

.pc-notification-list {
    display: grid;
    gap: var(--pc-space-3);
    list-style: none;
    margin: 0;
    padding: 0;
}

.pc-notification-card {
    align-items: center;
    color: inherit;
    display: grid;
    gap: var(--pc-space-3);
    grid-template-columns: 4px 44px minmax(0, 1fr) auto;
    padding: var(--pc-space-4);
    text-decoration: none;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}

.pc-notification-card:hover {
    border-color: #aecfe4;
    box-shadow: 0 4px 14px -4px rgba(11, 39, 68, 0.1);
}

.pc-notification-card:hover .pc-notification-card__chevron {
    color: var(--pc-blue);
    transform: translateX(2px);
}

.pc-notification-card__dot {
    background: var(--pc-action);
    border-radius: 999px;
    height: 8px;
    justify-self: center;
    width: 8px;
}

.pc-notification-card.is-read .pc-notification-card__dot {
    background: var(--pc-line);
}

.pc-notification-card__icon {
    align-items: center;
    background: var(--pc-soft-blue);
    border-radius: 50%;
    color: var(--pc-blue);
    display: inline-flex;
    flex: none;
    font-size: 1rem;
    height: 44px;
    justify-content: center;
    width: 44px;
}

.pc-notification-card__body { min-width: 0; }

.pc-notification-card__meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 4px;
}

.pc-notification-card__meta strong {
    color: var(--pc-ink);
    font-size: 1rem;
}

.pc-notification-card.is-read .pc-notification-card__meta strong {
    color: var(--pc-copy);
    font-weight: 600;
}

.pc-notification-card__body > p {
    color: var(--pc-muted);
    font-size: 0.88rem;
    line-height: 1.45;
    margin: 0 0 4px;
}

.pc-notification-card__body > time {
    color: var(--pc-muted);
    font-size: 0.76rem;
    font-weight: 600;
}

.pc-notification-card__chevron {
    color: var(--pc-line);
    flex: none;
    font-size: 0.9rem;
    transition: color 150ms ease, transform 150ms ease;
}

@media (max-width: 767.98px) {
    .pc-notification-card {
        grid-template-columns: 4px 40px minmax(0, 1fr);
    }
    .pc-notification-card__chevron { display: none; }
    .pc-notification-card__icon {
        height: 40px;
        width: 40px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pc-notification-card,
    .pc-notification-card__chevron { transition: none; }
}

/* Offcanvas base styles — the custom Bootstrap build omits the offcanvas component,
   so portal pages that rely on .offcanvas (mobile sheets, tracking drawers, voice sheet)
   need these primitives to stay hidden until toggled. */
.pc-shell-body .offcanvas {
    position: fixed;
    bottom: 0;
    z-index: var(--pc-z-drawer, 50);
    display: flex;
    flex-direction: column;
    max-width: 100%;
    visibility: hidden;
    background-color: var(--pc-surface, #fff);
    background-clip: padding-box;
    outline: 0;
    transition: transform 0.3s ease-in-out, visibility 0.3s ease-in-out;
}

.pc-shell-body .offcanvas.show {
    visibility: visible;
}

.pc-shell-body .offcanvas.offcanvas-start {
    top: 0;
    left: 0;
    width: 400px;
    border-right: 1px solid var(--pc-line, rgba(0, 0, 0, 0.2));
    transform: translateX(-100%);
}

.pc-shell-body .offcanvas.offcanvas-end {
    top: 0;
    right: 0;
    width: 400px;
    border-left: 1px solid var(--pc-line, rgba(0, 0, 0, 0.2));
    transform: translateX(100%);
}

.pc-shell-body .offcanvas.offcanvas-top {
    top: 0;
    right: 0;
    left: 0;
    height: 30vh;
    max-height: 100%;
    border-bottom: 1px solid var(--pc-line, rgba(0, 0, 0, 0.2));
    transform: translateY(-100%);
}

.pc-shell-body .offcanvas.offcanvas-bottom {
    right: 0;
    left: 0;
    height: 30vh;
    max-height: 100%;
    border-top: 1px solid var(--pc-line, rgba(0, 0, 0, 0.2));
    transform: translateY(100%);
}

.pc-shell-body .offcanvas.show:not(.hiding) {
    transform: none;
}

/* Bootstrap appends offcanvas backdrops directly to <body> with a framework
   z-index (1090). Keep the scrim below PrimeCare drawers so it dims the page
   without intercepting clicks intended for the open drawer. */
.pc-shell-body .offcanvas-backdrop {
    z-index: var(--pc-z-backdrop, 40);
}

@media (max-width: 575.98px) {
    .pc-shell-body .offcanvas.offcanvas-start,
    .pc-shell-body .offcanvas.offcanvas-end {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pc-shell-body .offcanvas {
        transition: none;
    }
}

/* Redesigned Goal Detail Page Layout */
.pc-goal-detail-wrapper {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    margin-bottom: 2.5rem;
}

.pc-goal-top-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.pc-goal-hero-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 1.75rem 2rem;
    box-shadow: 0 4px 20px -4px rgba(11, 39, 68, 0.06);
    position: relative;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.pc-goal-hero-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #0284c7 0%, #10b981 100%);
}

.pc-goal-title-wrap {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.pc-goal-main-title {
    font-size: 1.85rem;
    font-weight: 800;
    color: #0f172a;
    margin: 0;
    line-height: 1.25;
}

.pc-goal-badges-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.35rem;
}

.pc-goal-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.75rem;
    border-radius: 20px;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: capitalize;
}

.pc-goal-pill--active {
    background: #dcfce7;
    color: #15803d;
    border: 1px solid #bbf7d0;
}

.pc-goal-pill--paused {
    background: #fef3c7;
    color: #92400e;
    border: 1px solid #fde68a;
}

.pc-goal-pill--info {
    background: #e0f2fe;
    color: #0369a1;
    border: 1px solid #bae6fd;
}

/* Timeline progress bar */
.pc-goal-progress-bar-container {
    background: #f8fafc;
    border: 1px solid #f1f5f9;
    border-radius: 14px;
    padding: 1.25rem 1.5rem;
    margin-top: 1.25rem;
}

.pc-goal-progress-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.85rem;
    font-weight: 700;
    color: #334155;
    margin-bottom: 0.6rem;
}

.pc-goal-progress-track {
    height: 10px;
    background: #e2e8f0;
    border-radius: 999px;
    overflow: hidden;
    position: relative;
}

.pc-goal-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #0284c7 0%, #10b981 100%);
    border-radius: 999px;
    transition: width 0.6s ease;
}

.pc-goal-facts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 1rem;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid #f1f5f9;
}

.pc-fact-item__label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
    margin-bottom: 0.2rem;
}

.pc-fact-item__val {
    font-size: 0.95rem;
    font-weight: 700;
    color: #0f172a;
}

/* Grid Layout */
.pc-goal-grid {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 1.5rem;
    align-items: start;
}

@media (max-width: 991px) {
    .pc-goal-grid {
        grid-template-columns: 1fr;
    }
}

/* Card Containers */
.pc-card-v2 {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    box-shadow: 0 4px 16px -4px rgba(11, 39, 68, 0.05);
}

.pc-card-v2__title {
    font-size: 1.1rem;
    font-weight: 800;
    color: #0f172a;
    margin: 0 0 1.25rem;
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.pc-card-v2__title i {
    color: #0284c7;
}

/* Milestones Vertical Timeline */
.pc-milestones-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    position: relative;
    padding-left: 0.5rem;
}

.pc-milestone-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    position: relative;
    padding-bottom: 1rem;
    border-bottom: 1px dashed #f1f5f9;
}

.pc-milestone-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.pc-milestone-icon {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    flex-shrink: 0;
}

.pc-milestone-icon--completed {
    background: #dcfce7;
    color: #15803d;
    border: 1px solid #bbf7d0;
}

.pc-milestone-icon--pending {
    background: #f1f5f9;
    color: #94a3b8;
    border: 1px solid #e2e8f0;
}

.pc-milestone-content {
    flex: 1;
}

.pc-milestone-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 0.2rem;
}

.pc-milestone-status {
    font-size: 0.78rem;
    color: #64748b;
    margin: 0;
}

/* Progress History List */
.pc-progress-timeline {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    margin-top: 1.25rem;
}

.pc-progress-entry {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 0.85rem 1rem;
}

.pc-progress-entry__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.78rem;
    font-weight: 700;
    color: #64748b;
    margin-bottom: 0.35rem;
}

.pc-progress-entry__body {
    font-size: 0.9rem;
    color: #334155;
    margin: 0;
}

/* Form Chip Selector for Close Reasons */
.pc-chip-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.pc-chip-radio {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 0.85rem;
    border-radius: 20px;
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    font-size: 0.82rem;
    font-weight: 600;
    color: #475569;
    cursor: pointer;
    transition: all 0.15s ease;
    user-select: none;
}

.pc-chip-radio input {
    display: none;
}

.pc-chip-radio:has(input:checked) {
    background: #e0f2fe;
    color: #0369a1;
    border-color: #0284c7;
    box-shadow: 0 2px 6px rgba(2, 132, 199, 0.15);
}

/* Days of week picker */
.pc-days-picker {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.pc-day-chip {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 700;
    color: #64748b;
    cursor: pointer;
    transition: all 0.15s ease;
    user-select: none;
}

.pc-day-chip input {
    display: none;
}

.pc-day-chip:has(input:checked) {
    background: #0284c7;
    color: #ffffff;
    border-color: #0284c7;
    box-shadow: 0 2px 6px rgba(2, 132, 199, 0.25);
}

