/* ============================================================
   Admin chrome extras — Audit Journal (admc- prefix)
   The chrome itself is the shared pa-* set in proaudit-components.css;
   this file holds ONLY admin-specific deltas. Tokens + color-mix only.
   Spec: docs/superpowers/specs/2026-06-10-admin-unified-theme-design.md
   ============================================================ */

.pa-admin-layout { --pa-sidebar-w: 264px; }
.pa-admin-layout .pa-nav-group { margin-top: 8px; }
.pa-admin-layout .pa-nav-group > summary { letter-spacing: .09em; padding: 11px 10px 7px; }
.pa-admin-layout .admc-databases-group > summary { cursor: pointer; }
.pa-admin-layout .admc-databases-group > summary::after { display: block; }
.pa-admin-layout .admc-database-current { color: var(--pa-sidebar-text-bright); font-weight: 600; }
.pa-admin-layout .admc-database-views {
  margin: 2px 0 6px 18px;
  padding-left: 8px;
  border-left: 1px solid color-mix(in srgb, var(--pa-sidebar-text-bright) 18%, transparent);
}
.pa-admin-layout.pa-layout--collapsed:not(.admc-menu-open) .admc-database-views { margin: 0; padding-left: 0; border-left: 0; }
.admc-mobile-topbar, .admc-mobile-close, .admc-menu-backdrop { display: none; }

/* Alert Console open-count badge (class name kept — functional hook).
   Numeric font comes from the .pa-num markup utility on the span (the
   contract test rejects ANY font-family declaration in pa-pages css). */
/* The long admin rail must not stack above page content on phones. */
@media (max-width: 768px) {
  .pa-admin-layout:not(.admc-menu-open) .admc-database-views { margin: 0; padding-left: 0; border-left: 0; }
  .pa-admin-layout { display: grid; grid-template-columns: 64px minmax(0, 1fr); grid-template-rows: 1fr; }
  .pa-admin-layout > .pa-sidebar { grid-column: 1; grid-row: 1; position: sticky; top: 0; align-self: start; width: 64px; min-width: 0; height: 100dvh; min-height: 0; overflow: hidden; }
  .pa-admin-layout > .pa-main { grid-column: 2; grid-row: 1; margin-left: 0; width: 100%; min-width: 0; }
  .pa-admin-layout .pa-hide-collapsed, .pa-admin-layout .pa-collapse-btn { display: none; }
  .pa-admin-layout .pa-sidebar-logo { padding: 16px 0; justify-content: center; }
  .pa-admin-layout .pa-sidebar-nav { flex: 1; min-height: 0; padding: 10px 6px; overflow-y: auto; overflow-x: hidden; }
  .pa-admin-layout .pa-nav-item, .pa-admin-layout .pa-sidebar-search { justify-content: center; padding: 10px 0; }
  .admc-mobile-topbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; border-bottom: 1px solid var(--pa-hair); font-size: .8rem; }
  .admc-menu-backdrop { display: block; position: fixed; inset: 0; border: 0; background: var(--pa-scrim); backdrop-filter: var(--pa-scrim-filter); z-index: var(--pa-z-drawer); }
  .pa-admin-layout.admc-menu-open > .pa-sidebar { position: fixed; inset: 0 auto 0 0; width: min(264px, calc(100vw - 48px)); z-index: calc(var(--pa-z-drawer) + 1); }
  .pa-admin-layout.admc-menu-open .pa-hide-collapsed { display: revert !important; }
  .pa-admin-layout.admc-menu-open .pa-logo-text { display: flex !important; }
  .pa-admin-layout.admc-menu-open .pa-sidebar-logo { padding: 16px; justify-content: flex-start; flex-direction: row; }
  .pa-admin-layout.admc-menu-open .pa-sidebar-nav { padding: 10px 12px; }
  .pa-admin-layout.admc-menu-open .pa-nav-item, .pa-admin-layout.admc-menu-open .pa-sidebar-search { justify-content: flex-start; padding: 10px; min-height: 44px; }
  .pa-admin-layout.admc-menu-open .pa-nav-group > summary { display: flex !important; min-height: 44px; }
  .pa-admin-layout.admc-menu-open .admc-mobile-close { display: flex; align-items: center; justify-content: center; margin-left: auto; width: 32px; height: 36px; padding: 0; border: 1px solid color-mix(in srgb, var(--pa-sidebar-text-bright) 15%, transparent); border-radius: 6px; background: transparent; color: var(--pa-sidebar-text-bright); cursor: pointer; }
  /* The account card (AccountMenu, plan item 4.3a). On the 64px rail the root carries no
     pa-layout--collapsed, so the collapsed-rail pill rules are restated here. In the open
     drawer the revert !important above would turn the pill's name block inline; this rule
     has the same specificity and comes later, so it puts back the column it is everywhere. */
  .pa-admin-layout:not(.admc-menu-open) .pa-sidebar-bottom { padding: 0.5rem; }
  .pa-admin-layout:not(.admc-menu-open) .pa-bottom-row { justify-content: center; }
  .pa-admin-layout:not(.admc-menu-open) .pm-trigger { justify-content: center; padding: 0.375rem; }
  .pa-admin-layout.admc-menu-open .pm-trigger-text { display: flex !important; }
}

.pa-sidebar .adm-alert-badge {
  display: inline-block;
  padding: 1px 6px;
  background: var(--pa-orange);
  color: var(--pa-orange-fg);
  border-radius: 100px;
  font-variant-numeric: tabular-nums;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.4;
  margin-left: auto;
  min-width: 18px;
  text-align: center;
}

/* ============================================================
   Command palette (.dash-palette-*)
   Moved here from admin-dashboard.css (Batch 8): the palette is now mounted in
   AdminLayout and reachable on every admin page (Ctrl/⌘+K or the sidebar box),
   so its styles must load globally. Token-only, so the pa-pages contract holds.
   ============================================================ */

.dash-palette-backdrop {
    position: fixed;
    inset: 0;
    background: var(--pa-scrim);
    backdrop-filter: var(--pa-scrim-filter);
    z-index: var(--pa-z-dialog);
    animation: dash-backdrop-in 120ms ease both;
}

@keyframes dash-backdrop-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* dialog surface — width cap allowed by the width policy */
.dash-palette-overlay {
    position: fixed;
    top: 12vh;
    left: 50%;
    transform: translateX(-50%);
    width: min(680px, 92vw);
    background: var(--pa-card);
    border: 1px solid var(--pa-hair);
    border-radius: 0.625rem;
    box-shadow: var(--pa-shadow-dialog);
    z-index: calc(var(--pa-z-dialog) + 1);
    overflow: hidden;
    animation: dash-palette-in 120ms ease both;
}

@keyframes dash-palette-in {
    from { opacity: 0; transform: translateX(-50%) translateY(-8px) scale(0.97); }
    to   { opacity: 1; transform: translateX(-50%) translateY(0)    scale(1);    }
}

.dash-palette-input-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 0.875rem;
    border-bottom: 1px solid var(--pa-row-border);
}

.dash-palette-icon {
    font-size: 1rem;
    flex-shrink: 0;
    opacity: 0.55;
}

.dash-palette-input {
    font: inherit;
    flex: 1 1 auto;
    border: none;
    outline: none;
    background: transparent;
    font-size: 0.95rem;
    color: var(--pa-ink);
    min-width: 0;
    box-shadow: none;
}

.dash-palette-input:focus-visible {
    box-shadow: none;
}

.dash-palette-input::placeholder {
    color: var(--pa-faint-decor);
}

.dash-palette-results {
    max-height: 60vh;
    overflow-y: auto;
    padding: 0.375rem 0;
}

.dash-palette-loading,
.dash-palette-empty {
    padding: 1.25rem 1rem;
    font-size: 0.85rem;
    color: var(--pa-faint);
    text-align: center;
}

.dash-palette-section { padding: 0; }

.dash-palette-section-title {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--pa-faint);
    padding: 0.5rem 0.875rem 0.2rem;
}

.dash-palette-item {
    font: inherit;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.5rem 0.875rem;
    border: none;
    background: transparent;
    text-align: left;
    cursor: pointer;
    font-size: 0.88rem;
    color: var(--pa-ink);
    transition: background 120ms ease;
}

.dash-palette-item:hover,
.dash-palette-item--active {
    background: var(--pa-row-hover);
}

.dash-palette-item--run { color: var(--pa-ink); }

.dash-palette-item-label {
    flex: 1 1 auto;
    font-size: 0.88rem;
}

.dash-palette-item-hint {
    font-size: 0.72rem;
    color: var(--pa-faint);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px;
    font-variant-numeric: tabular-nums;
}

.dash-palette-item-run-badge {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--pa-orange-fg);
    background: var(--pa-orange);
    padding: 0.1rem 0.4rem;
    border-radius: 0.25rem;
    flex-shrink: 0;
}

/* Palette trigger in CommandBar (kbd keeps the UA monospace face) */
.dash-palette-trigger {
    font: inherit;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.25rem 0.625rem;
    border: 1px solid var(--pa-hair);
    border-radius: 0.375rem;
    background: var(--pa-card-tint);
    font-size: 0.78rem;
    color: var(--pa-muted);
    cursor: pointer;
    transition: background var(--pa-dur-fast) ease,
                border-color var(--pa-dur-fast) ease,
                color var(--pa-dur-fast) ease;
}

.dash-palette-trigger:hover {
    background: var(--pa-card);
    border-color: var(--pa-hair-strong);
    color: var(--pa-ink);
}

.dash-palette-trigger kbd {
    display: inline-flex;
    align-items: center;
    padding: 0.05rem 0.35rem;
    border: 1px solid var(--pa-hair);
    border-radius: 0.2rem;
    background: var(--pa-card);
    font-size: 0.7rem;
    color: var(--pa-faint);
}

/* ProRecovery admin pages (prva- prefix): page geometry only. The register body
   arrives with the engagements plan and may move this into its own sheet. */
.prva-page {
  min-height: 100vh;
  max-width: var(--pa-page-max);
  margin: 0 auto;
  padding: 28px 32px 48px;
}
@media (max-width: 768px) {
  .prva-page { padding: 20px 16px 40px; }
}

/* ProRecovery engagements register: the filter row and the enrol action share one toolbar line, wrapping on narrow
   screens. Layout only; colour comes from tokens. */
.prva-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px 14px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.prva-filters {
  display: flex;
  align-items: flex-end;
  gap: 10px 14px;
  flex-wrap: wrap;
  min-width: 0;
  flex: 1 1 auto;
}
.prva-filters__field {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.prva-filters__field--search { flex: 0 1 20rem; }
.prva-num { text-align: right; }
.prva-auth {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.prva-muted {
  color: var(--pa-muted);
  font-size: .8rem;
}

/* ProRecovery admin dialogs pass ContentClass="prva-dialog-content". MudBlazor pads .mud-dialog-content itself, and that
   padding stacks with the pa-dialog head, body and foot. The reset lives here, globally, because a dialog's scoped
   ::deep rule cannot reach an ANCESTOR of the dialog's own markup, and .mud-dialog-content is one. */
.mud-dialog-content.prva-dialog-content { padding: 0; }

/* ProRecovery engagement detail. Layout only; colour comes from tokens. */
.prva-crumbs {
  margin-bottom: 10px;
  font-size: .8rem;
}
.prva-crumbs a {
  color: var(--pa-muted);
  text-decoration: none;
}
.prva-crumbs a:hover { color: var(--pa-orange-text); }
.prva-detail-masthead {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.prva-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}
.prva-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  gap: 14px;
  margin-bottom: 14px;
}
.prva-terms-card__percent { margin: 6px 0 12px; }
.prva-terms-card__note {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0 0;
  color: var(--pa-muted);
  font-size: .82rem;
}
/* The display face comes from the pa-card-title primitive on the element: pa-pages sheets carry no font-family. */
.prva-terms-card__none { margin: 10px 0 4px; }
.prva-facts {
  display: grid;
  gap: 6px;
  margin: 0;
}
.prva-facts div {
  display: grid;
  grid-template-columns: 7rem minmax(0, 1fr);
  gap: 8px;
}
.prva-facts dd {
  margin: 0;
  min-width: 0;
  color: var(--pa-ink);
  font-size: .84rem;
  overflow-wrap: anywhere;
}
.prva-authorizations {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
.prva-authorizations li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
}
.prva-history__head { margin-bottom: 12px; }
.prva-history__head .pa-card-body { max-width: 72ch; }
.prva-history__row--superseded td { color: var(--pa-muted); }
.prva-history__reason {
  max-width: 32ch;
  overflow-wrap: anywhere;
}

/* ProRecovery admin action dialogs: shared layout. Each dialog's own scoped sheet redeclares the tokens. */
.prva-dialog-lede {
  margin: 6px 0 0;
  max-width: 60ch;
  color: var(--pa-muted);
}
.prva-dialog-body {
  display: grid;
  gap: 16px;
  min-width: 0;
}
.prva-dialog-body p { margin: 0; }
.prva-dialog-context { color: var(--pa-ink); }
.prva-dialog-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 16px;
}
@media (max-width: 600px) {
  .prva-dialog-grid { grid-template-columns: minmax(0, 1fr); }
}
.prva-dialog-reason {
  min-height: 4.5rem;
  resize: vertical;
}
.prva-dialog-choices {
  display: grid;
  gap: 6px;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.prva-dialog-choice {
  display: flex;
  align-items: center;
  gap: 8px;
}
.prva-dialog-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
}
.prva-dialog-facts dd { margin: 4px 0 0; }

/* Each register row opens its engagement detail. */
.prva-register-link {
  color: var(--pa-ink);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid var(--pa-hair-strong);
}
.prva-register-link:hover { border-bottom-color: var(--pa-orange-deep); }

/* ProRecovery: compact register, mandate file and action surfaces. */
.prva-register-head { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin-bottom: 20px; }
.prva-heading-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.prva-views { display: flex; flex-wrap: wrap; border-block: 1px solid var(--pa-hair); margin-bottom: 18px; }
.prva-view { font: inherit; display: flex; justify-content: flex-start; align-items: baseline; gap: 12px; flex: 1 1 auto; padding: 12px 16px; background: transparent; color: var(--pa-muted); border: 0; border-bottom: 2px solid transparent; cursor: pointer; font-size: .82rem; }
.prva-view strong { color: var(--pa-ink); font-size: 1.1rem; }
.prva-view:hover { background: var(--pa-row-hover); }
.prva-view.is-current { color: var(--pa-ink); background: var(--pa-row-selected); border-bottom-color: var(--pa-ink); }
.prva-view:focus-visible { outline: 2px solid var(--pa-ink); outline-offset: -3px; }
.prva-toolbar .pa-input { min-height: 36px; }
.prva-results { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; min-height: 32px; margin-bottom: 10px; font-size: .8rem; color: var(--pa-muted); }
.prva-row-sub { margin-top: 4px; font-size: .73rem; color: var(--pa-muted); font-weight: 400; }
.prva-authority { display: flex; gap: 12px; }
.prva-authority-slot { display: flex; align-items: center; gap: 5px; color: var(--pa-muted); font-size: .72rem; text-transform: uppercase; }
.prva-authority-box { width: 14px; height: 14px; display: inline-grid; place-items: center; line-height: 1; border: 1px dashed var(--pa-hair-strong); border-radius: 2px; }
.prva-authority-box.is-filed { background: var(--pa-ok-bg); color: var(--pa-ok-fg); border: 1px solid var(--pa-ok-border); }
.prva-sr-only { position: absolute; left: 0; top: 0; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.prva-menu-danger { color: var(--pa-bad-fg); }
.prva-page .pa-grid-scroll { min-width: 0; max-width: 100%; }
.prva-page .pa-grid { font-size: .82rem; }
.prva-page .pa-data-grid > tbody > tr > td { padding-block: 10px; }
.prva-page .pa-card { min-width: 0; padding: 18px; }
.prva-hero { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 12px; border-bottom: 1px solid var(--pa-hair); padding-bottom: 18px; margin-bottom: 18px; }
.prva-hero .pa-masthead { flex: 1 1 28rem; min-width: 0; margin: 0; }
.prva-hero-id { color: var(--pa-muted); font-size: .7rem; letter-spacing: .1em; margin-bottom: 6px; }
.prva-hero-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.prva-hero-meta { overflow-wrap: anywhere; }
.prva-detail-actions { align-items: center; justify-content: flex-end; margin: 0; }
.prva-detail-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; gap: 18px; }
.prva-detail-column { display: grid; gap: 14px; min-width: 0; }
.prva-terms-card__percent { margin: 8px 0 6px; }
.prva-terms-summary { margin: 0 0 16px; color: var(--pa-muted); font-size: .82rem; }
/* The terms card's three-way split: the shared split bar and its legend, between the figure and the facts. */
.prva-terms-split { margin: 0 0 18px; padding-bottom: 16px; border-bottom: 1px solid var(--pa-hair); }
.prva-history__split { white-space: nowrap; }
.prva-strip-wrap { min-width: 0; overflow-x: auto; margin: 20px 0 4px; padding-bottom: 8px; }
.prva-strip-caption { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 10px; color: var(--pa-muted); font-size: .72rem; }
.prva-strip { display: flex; align-items: stretch; min-width: 100%; width: 100%; }
.prva-strip-track { flex: 1 0 0; display: flex; gap: 3px; min-width: 100%; }
.prva-strip-segment { flex-grow: 1; flex-shrink: 1; display: flex; flex-direction: column; gap: 4px; }
.prva-strip-bar { display: flex; flex-direction: column; justify-content: center; gap: 3px; min-height: 48px; padding: 7px; background: var(--pa-hair-strong); color: var(--pa-ink); font-size: .8rem; }
.prva-strip-bar small { font-size: .67rem; }
.prva-strip-bar.is-current { background: var(--pa-teal-shade); color: var(--pa-sidebar-text-bright); }
.prva-strip-bar.is-suspended { background-image: repeating-linear-gradient(135deg, transparent, transparent 8px, color-mix(in srgb, var(--pa-warn-bg) 28%, transparent) 8px, color-mix(in srgb, var(--pa-warn-bg) 28%, transparent) 10px); }
.prva-strip-ghost { background: var(--pa-hair); color: var(--pa-muted); padding: 2px 6px; font-size: .7rem; }
.prva-strip-cap { border-right: 2px solid var(--pa-orange-deep); padding-right: 6px; color: var(--pa-orange-text); white-space: nowrap; }
.prva-strip-cap.is-ended { color: var(--pa-muted); border-color: var(--pa-hair-strong); }
.prva-authority-history, .prva-timeline { list-style: none; padding: 0; margin: 12px 0 0; }
.prva-authority-history li, .prva-timeline li { display: grid; gap: 4px; border-top: 1px solid var(--pa-hair); padding: 10px 0; font-size: .8rem; overflow-wrap: anywhere; }
.prva-authority-history li:first-child, .prva-timeline li:first-child { border-top: 0; padding-top: 0; }
.prva-history-meta { color: var(--pa-muted); font-size: .72rem; }
.prva-section-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
/* Every engagement card heading keeps the same gap to its first fact: a bare heading sat flush on its list. */
.prva-page .pa-card > h2.pa-kpi-label, .prva-page .pa-card > .prva-section-head { margin: 0 0 12px; }
.prva-page .pa-dialog-foot { gap: 8px; }
.pa-dialog:has(.prva-dialog-body) .pa-dialog-head, .prv-enroll-root .pa-dialog-head { padding: 20px 22px 14px; }
.pa-dialog:has(.prva-dialog-body) .pa-dialog-body, .prv-enroll-root .pa-dialog-body { padding: 16px 22px; }
.pa-dialog:has(.prva-dialog-body) .pa-dialog-foot, .prv-enroll-root .pa-dialog-foot { padding: 14px 22px; }
@media (max-width: 960px) { .prva-detail-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 768px) {
  .prva-view { padding: 10px; flex: 1 1 30%; gap: 8px; }
  .prva-filters { width: 100%; }
  .prva-filters__field { flex: 1 1 7rem; }
  .prva-filters__field--search { flex-basis: 100%; }
  .prva-detail-actions { justify-content: flex-start; }
  .prva-page .pa-card { padding: 14px; }
  .prva-heading-actions { width: 100%; }
  .prva-facts div { grid-template-columns: 6rem minmax(0, 1fr); }
}

/* ProRecovery engagement detail: the shop's ProAudit profile card. A profile on file reads like the terms card (its
   name, then the figure); without one, a dashed slot waits to be filled, the same mark the register gives paperwork
   not yet on file. Layout and tokens only. */
.prva-profile-name { margin: 12px 0 2px; overflow-wrap: anywhere; }
.prva-profile-count { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 10px; margin: 0; }
.prva-profile-count .pa-kpi-value { margin: 0; line-height: 1.15; }
.prva-profile-count-label { color: var(--pa-muted); font-size: .8rem; }
.prva-profile-use { margin: 4px 0 14px; color: var(--pa-muted); font-size: .82rem; }
.prva-profile-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 12px; border-top: 1px solid var(--pa-hair); }
.prva-profile-actions .mud-icon-root { font-size: 1rem; }
.prva-profile-slot { display: grid; justify-items: start; gap: 6px; margin-top: 12px; padding: 14px 16px; border: 1px dashed var(--pa-hair-strong); border-radius: var(--pa-radius-sm); }
.prva-profile-slot p { margin: 0; }
.prva-profile-slot .pa-card-body { max-width: 52ch; }
.prva-profile-slot .pa-btn { margin-top: 6px; }
@media (max-width: 768px) { .prva-profile-slot { padding: 12px; } }

/* The set-up dialog's template register: one row per template, its rule count in tabular figures on the right. */
.prva-profile-dialog { color: var(--pa-ink); }
.prva-template-list { display: grid; gap: 6px; min-width: 0; margin: 0; padding: 0; border: 0; }
.prva-template-options { display: grid; max-height: min(20rem, 45vh); overflow-y: auto; border: 1px solid var(--pa-hair); border-radius: var(--pa-radius-sm); }
.prva-template { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 4px 10px; padding: 11px 12px; border-top: 1px solid var(--pa-hair); cursor: pointer; }
.prva-template:first-child { border-top: 0; }
.prva-template:hover { background: var(--pa-row-hover); }
.prva-template.is-selected { background: var(--pa-row-selected); }
.prva-template:has(input:focus-visible) { outline: 2px solid var(--pa-ink); outline-offset: -2px; }
.prva-template input { margin: 2px 0 0; accent-color: var(--pa-orange-deep); }
.prva-template-name { display: block; color: var(--pa-ink); font-weight: 600; font-size: .86rem; overflow-wrap: anywhere; }
.prva-template-desc { display: block; margin-top: 2px; color: var(--pa-muted); font-size: .78rem; line-height: 1.45; }
.prva-template-count { padding-top: 1px; color: var(--pa-muted); font-size: .78rem; white-space: nowrap; }
.prva-template-state { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0; }
@media (max-width: 600px) {
  .prva-template { grid-template-columns: auto minmax(0, 1fr); }
  .prva-template-count { grid-column: 2; padding-top: 0; }
}

/* The enrol dialog's optional template: a step that runs after the enrolment, set apart by a hairline. */
.prv-enroll-template { padding-top: 12px; border-top: 1px solid var(--pa-hair); }
.prv-enroll-template-note { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; margin-top: 4px; }
.prv-enroll-template-note .pa-help { margin: 0; }

/* ProRecovery email templates (prva-tpl-): the desk's letter book. The index groups templates by purpose; the
   selected one sits on a tinted desk as the sheet an adjuster reads, an airmail edge over its envelope lines, each
   merge field marked where it lands (a dashed teal rule under a sample value, or the {Token} itself). The editor puts
   the form beside the same sheet. Layout and tokens only. */
.prva-tpl-book { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 8fr); gap: 22px; align-items: start; }
.prva-tpl-index { display: grid; gap: 18px; min-width: 0; }
.prva-tpl-group { min-width: 0; }
.prva-tpl-group-head {
  display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin: 0 0 6px; padding-bottom: 6px;
  border-bottom: 1px solid var(--pa-hair); color: var(--pa-muted); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
}
.prva-tpl-group ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.prva-tpl-row {
  font: inherit; display: grid; justify-content: stretch; justify-items: start; gap: 3px; width: 100%; min-width: 0; text-align: left;
  padding: 10px 12px 10px 14px; color: var(--pa-ink); background: transparent; cursor: pointer;
  border: 1px solid transparent; border-radius: var(--pa-radius-sm); box-shadow: inset 3px 0 0 transparent;
}
.prva-tpl-row:hover { background: var(--pa-row-hover); }
.prva-tpl-row.prva-tpl-row.is-selected {
  background: var(--pa-card); border-color: var(--pa-hair);
  box-shadow: inset 3px 0 0 var(--pa-orange), 0 8px 18px -16px color-mix(in srgb, var(--pa-shadow-ink) 60%, transparent);
}
.prva-tpl-row:focus-visible { outline: 2px solid var(--pa-ink); outline-offset: -2px; }
.prva-tpl-row-name { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-weight: 600; font-size: .9rem; overflow-wrap: anywhere; }
.prva-tpl-row.is-retired .prva-tpl-row-name { color: var(--pa-muted); }
.prva-tpl-row-subject { justify-self: stretch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--pa-muted); font-size: .78rem; }
.prva-tpl-row-meta { color: var(--pa-muted); font-size: .7rem; }
.prva-tpl-callout { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 12px; margin-bottom: 14px; }

.prva-page .pa-card.prva-tpl-detail { display: grid; gap: 16px; min-width: 0; padding: 20px; }
.prva-tpl-detail-head { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 12px; }
.prva-tpl-detail-title { min-width: 0; flex: 1 1 16rem; }
.prva-tpl-detail-title h2 { margin: 4px 0 4px; color: var(--pa-ink); font-size: 1.55rem; line-height: 1.2; overflow-wrap: anywhere; }
.prva-tpl-detail-hint { margin: 0; color: var(--pa-muted); font-size: .82rem; }
.prva-tpl-detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.prva-tpl-confirm { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 12px; margin: 0; }
.prva-tpl-confirm-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.prva-tpl-mode { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 0; }
.prva-tpl-mode-btn {
  font: inherit; display: flex; align-items: center; justify-content: center; padding: 6px 12px; margin-left: -1px;
  color: var(--pa-muted); background: var(--pa-card); border: 1px solid var(--pa-hair-strong); font-size: .78rem; cursor: pointer;
}
.prva-tpl-mode-btn:first-child { margin-left: 0; border-radius: var(--pa-radius-sm) 0 0 var(--pa-radius-sm); }
.prva-tpl-mode-btn:nth-child(2) { border-radius: 0 var(--pa-radius-sm) var(--pa-radius-sm) 0; }
.prva-tpl-mode-btn:hover { color: var(--pa-ink); }
.prva-tpl-mode-btn.prva-tpl-mode-btn[aria-pressed="true"] { color: var(--pa-ink); background: var(--pa-row-selected); box-shadow: inset 0 -2px 0 var(--pa-orange); }
.prva-tpl-mode-btn:focus-visible { position: relative; outline: 2px solid var(--pa-ink); outline-offset: 1px; }
.prva-tpl-mode-note { margin-left: 12px; color: var(--pa-muted); font-size: .76rem; }

/* The desk and the sheet on it. */
.prva-tpl-desk { padding: 22px; background: var(--pa-card-tint); border: 1px solid var(--pa-hair); border-radius: var(--pa-radius); min-width: 0; }
.prva-tpl-sheet {
  margin: 0; min-width: 0; overflow: hidden; background: var(--pa-card); border: 1px solid var(--pa-hair); border-radius: var(--pa-radius-sm);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--pa-shadow-ink) 6%, transparent), 0 18px 34px -26px color-mix(in srgb, var(--pa-shadow-ink) 70%, transparent);
}
.prva-tpl-sheet::before {
  content: ""; display: block; height: 4px;
  background: repeating-linear-gradient(-45deg, var(--pa-orange) 0 10px, transparent 10px 15px, var(--pa-teal) 15px 25px, transparent 25px 30px);
}
.prva-tpl-envelope { display: grid; gap: 6px; margin: 0; padding: 14px 22px 12px; border-bottom: 1px dashed var(--pa-hair-strong); }
.prva-tpl-envelope > div { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: 10px; align-items: baseline; }
.prva-tpl-envelope dt { margin: 0; color: var(--pa-muted); font-size: .64rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.prva-tpl-envelope dd { margin: 0; min-width: 0; color: var(--pa-muted); font-size: .82rem; overflow-wrap: break-word; }
.prva-tpl-envelope .is-subject dd { color: var(--pa-ink); font-size: .94rem; font-weight: 600; }
.prva-tpl-letter { padding: 18px 22px 22px; color: var(--pa-ink); font-size: .9rem; line-height: 1.65; overflow-wrap: break-word; }
.prva-tpl-letter p { margin: 0 0 12px; }
.prva-tpl-letter p:last-child { margin-bottom: 0; }
.prva-tpl-blank { color: var(--pa-muted); font-style: italic; }
.prva-tpl-caption { padding: 8px 22px 12px; color: var(--pa-muted); font-size: .72rem; border-top: 1px solid var(--pa-hair); }
.prva-tpl-field {
  padding: 0 2px; color: var(--pa-ink); background: color-mix(in srgb, var(--pa-teal) 9%, transparent);
  border-bottom: 1.5px dashed var(--pa-teal); border-radius: 2px 2px 0 0;
}
.prva-tpl-field.prva-tpl-field.is-empty {
  color: var(--pa-warn-fg); background: var(--pa-warn-bg); border-bottom-color: var(--pa-warn-border);
  font-size: .78em; font-weight: 600; letter-spacing: .02em;
}
.prva-tpl-token {
  padding: 0 5px; white-space: nowrap; font-size: .78em; color: var(--pa-teal-deep);
  background: color-mix(in srgb, var(--pa-teal) 8%, transparent); border: 1px dashed color-mix(in srgb, var(--pa-teal-deep) 55%, transparent); border-radius: 4px;
}
.prva-tpl-detail-foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 16px; padding-top: 12px; border-top: 1px solid var(--pa-hair); }
.prva-tpl-fields { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; min-width: 0; }
.prva-tpl-fields .pa-kpi-label { margin: 0; }
.prva-tpl-fields ul { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; }
.prva-tpl-fields li { padding: 2px 9px; color: var(--pa-ink); background: var(--pa-card-tint); border: 1px solid var(--pa-hair-strong); border-radius: 999px; font-size: .74rem; }
.prva-tpl-dates { margin: 0; color: var(--pa-muted); font-size: .74rem; }

/* The editor: the form beside the live sheet, the head and foot anchored, the body scrolling between them. */
.mud-dialog:has(.prva-tpl-editor) { max-width: min(1180px, calc(100% - 32px)); }
.pa-dialog.prva-tpl-editor { max-width: none; display: flex; flex-direction: column; height: min(88vh, 920px); }
.prva-tpl-editor > .prva-tpl-editor-head {
  flex: none; display: flex; justify-content: space-between; align-items: flex-start; gap: 12px;
  padding: 20px 22px 14px; border-bottom: 1px solid var(--pa-hair);
}
.prva-tpl-editor-head .prva-dialog-lede { max-width: 68ch; }
.prva-tpl-editor > .pa-dialog-body.prva-tpl-editor-body {
  flex: 1 1 auto; min-height: 0; overflow-y: auto; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 6fr);
  align-items: start; gap: 22px; padding: 18px 22px 22px;
}
.prva-tpl-editor > .pa-dialog-foot { flex: none; padding: 14px 22px; }
.prva-tpl-editor-form { display: grid; gap: 14px; min-width: 0; }
.prva-tpl-editor-form .pa-callout { margin: 0; }
.prva-tpl-editor-form .pa-help { margin: 4px 0 0; }
.prva-tpl-editor-row { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 12px; }
.prva-tpl-body-input { min-height: 16rem; resize: vertical; line-height: 1.55; }
.prva-tpl-palette { min-width: 0; margin: 0; padding: 0; border: 0; }
.prva-tpl-palette > legend { padding: 0; margin: 0 0 8px; }
.prva-tpl-palette-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); gap: 6px; }
.prva-tpl-chip {
  font: inherit; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 1px; min-width: 0; text-align: left;
  padding: 7px 10px; color: var(--pa-ink); background: var(--pa-card); border: 1px dashed var(--pa-hair-strong); border-radius: var(--pa-radius-sm);
  font-size: .78rem; cursor: pointer;
}
.prva-tpl-chip .pa-mono { max-width: 100%; overflow: hidden; text-overflow: ellipsis; color: var(--pa-teal-deep); font-size: .7rem; }
.prva-tpl-chip:hover:not(:disabled) { border-style: solid; border-color: var(--pa-teal); background: color-mix(in srgb, var(--pa-teal) 7%, var(--pa-card)); }
.prva-tpl-chip:focus-visible { outline: 2px solid var(--pa-ink); outline-offset: 1px; }
.prva-tpl-chip:disabled { cursor: default; opacity: .6; }
.prva-tpl-editor-preview { position: sticky; top: 0; display: grid; gap: 10px; min-width: 0; }
.prva-tpl-editor-preview-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.prva-tpl-editor-preview-head .pa-kpi-label { margin: 0; }
.prva-tpl-editor-preview .prva-tpl-desk { padding: 16px; }
@media (max-width: 960px) {
  .prva-tpl-book { grid-template-columns: minmax(0, 1fr); }
  .prva-tpl-editor > .pa-dialog-body.prva-tpl-editor-body { grid-template-columns: minmax(0, 1fr); }
  .prva-tpl-editor-preview { position: static; }
}
@media (max-width: 600px) {
  .mud-dialog.mud-dialog-width-full:has(.prva-tpl-editor) { width: calc(100% - 20px); max-width: none; max-height: calc(100dvh - 20px); }
  .pa-dialog.prva-tpl-editor { height: calc(100dvh - 20px); }
  .prva-tpl-editor > .prva-tpl-editor-head { padding: 16px 16px 12px; }
  .prva-tpl-editor-head .prva-dialog-lede { display: none; }
  .prva-tpl-editor > .pa-dialog-body.prva-tpl-editor-body { padding: 14px 16px 18px; }
  .prva-tpl-editor > .pa-dialog-foot { padding: 12px 16px; }
  .prva-tpl-editor > .pa-dialog-foot .pa-btn { flex: 1 1 auto; justify-content: center; }
  .prva-tpl-editor-row { grid-template-columns: minmax(0, 1fr); }
  .prva-tpl-palette-grid { grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr)); }
  .prva-tpl-desk, .prva-tpl-editor-preview .prva-tpl-desk { padding: 10px; }
  .prva-tpl-envelope { padding: 12px 14px 10px; }
  .prva-tpl-envelope > div { grid-template-columns: 4.2rem minmax(0, 1fr); }
  .prva-tpl-letter { padding: 14px 14px 18px; }
  .prva-tpl-mode-note { flex-basis: 100%; margin: 4px 0 0; }
  .prva-page .pa-card.prva-tpl-detail { padding: 14px; }
}

/* ============================================================
   Profile source (review ACC-08)
   The ProAudit profile set-up dialog copies from a template or from another company profile. The company step reuses
   the template register rows (.prva-template) as buttons, so only the button reset and the panel rhythm live here.
   ============================================================ */
.prva-source { display: grid; gap: 6px; min-width: 0; }
.prva-source-company-panel { display: grid; gap: 12px; min-width: 0; }
.prva-source-company-panel .pa-callout { margin: 0; }
.prva-template.prva-source-company {
  font: inherit; width: 100%; grid-template-columns: minmax(0, 1fr) auto; justify-content: stretch; align-items: baseline;
  text-align: left; color: inherit; background: transparent; border: 0; border-top: 1px solid var(--pa-hair); border-radius: 0;
}
.prva-template.prva-source-company:first-child { border-top: 0; }
.prva-template.prva-source-company:hover:not(:disabled) { background: var(--pa-row-hover); }
.prva-template.prva-source-company:focus-visible { outline: 2px solid var(--pa-ink); outline-offset: -2px; }
.prva-template.prva-source-company:disabled { cursor: default; opacity: .6; }
/* ============================================================
   Every ProRecovery admin dialog keeps its head and its actions in place and scrolls only its body (the house popup
   rule), at every width and on a short screen. MudBlazor caps .mud-dialog at the viewport less its app-bar height and
   scrolls .mud-dialog-content, which holds the whole pa-dialog, so head, body and foot used to scroll away together.
   The root is now a column capped at that same height; every child but the body (the head, a read-back line, the
   foot) keeps its size, and the body takes the room left and scrolls inside it. The set-up dialog grows with its
   company step, the enrol dialog with its candidates and split editor, the terms dialogs with the split editor. The
   template editor sizes its own fixed-height frame above, so it is left out.
   ============================================================ */
.pa-dialog.prva-dialog-root:not(.prva-tpl-editor), .pa-dialog.prv-enroll-root { display: flex; flex-direction: column; max-height: calc(100dvh - 64px); }
.prva-dialog-root:not(.prva-tpl-editor) > :not(.pa-dialog-body), .prv-enroll-root > :not(.pa-dialog-body) { flex: none; }
.prva-dialog-root:not(.prva-tpl-editor) > .pa-dialog-body, .prv-enroll-root > .pa-dialog-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
