/* ZIP5 additive layout patterns. Load after design-tokens.css and
   design-primitives.css. Archive SHA-256:
   270ad88bae34551d144c3cdd48eafc1f7cd6400881d3018d158da539cea740b9
   Sources: poly-v2.css:84-150,271-289,301-347,595-618;
   tokens/semantic.css:23-27; assets/app/login.css; assets/app/app.css.

   Both .ps-design and a named layout opt-in are required. No host imports are
   added by this foundation change. Existing primitives, typography, tables,
   routes, auth state, labels, validation and legal text remain host-owned.
   The 44px label action intentionally corrects the prototype's min-height:0.
*/

/* The page boundary is explicit; no body/:has rule can affect other pages. */
.ps-design.ps-auth-page,
.ps-design .ps-auth-page {
  box-sizing:border-box; display:flex; flex-direction:column; min-height:100dvh;
  background:var(--ps-surface-page);
}
.ps-design .ps-auth-main {
  box-sizing:border-box; flex:1 0 auto; display:flex; justify-content:center; align-items:flex-start;
  min-width:0; padding:var(--ps-sp-8) var(--ps-sp-5) var(--ps-sp-10);
}
.ps-design .ps-auth-card {
  box-sizing:border-box; width:100%; max-width:440px; min-width:0;
  margin:var(--ps-sp-8) 0 0; padding:var(--ps-sp-7);
  border:1px solid var(--ps-border-default); border-radius:10px;
  background:var(--ps-surface-card); color:var(--ps-text-body);
}
.ps-design .ps-auth-card--wide { max-width:720px; }
.ps-design .ps-auth-title {
  margin:0; color:var(--ps-text-heading); overflow-wrap:anywhere;
  font:var(--ps-w-regular) var(--ps-t-h3)/var(--ps-lh-control) var(--ps-serif);
  letter-spacing:-.012em;
}
.ps-design .ps-auth-context {
  margin:var(--ps-sp-3) 0 0; color:var(--ps-text-muted); overflow-wrap:anywhere;
  font:var(--ps-w-regular) var(--ps-fs-control)/var(--ps-lh-lead) var(--ps-sans);
}
.ps-design .ps-auth-form { margin-top:var(--ps-sp-4); }
.ps-design .ps-auth-form .ps-field { margin-top:var(--ps-sp-4); }
.ps-design .ps-auth-form .ps-hint { margin-top:var(--ps-sp-1); }
.ps-design .ps-auth-actions {
  display:flex; flex-wrap:wrap; gap:var(--ps-sp-3); margin-top:var(--ps-sp-6);
}
.ps-design .ps-auth-actions .ps-button { flex:1 1 auto; overflow-wrap:anywhere; }
.ps-design .ps-auth-fieldrow {
  display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between;
  gap:0 var(--ps-sp-4); min-width:0; margin-bottom:7px;
}
.ps-design .ps-auth-fieldrow .ps-label { margin:0; overflow-wrap:anywhere; }
.ps-design .ps-auth-label-action {
  display:inline-flex; align-items:center; min-height:var(--ps-h-ctrl-app); min-width:var(--ps-h-ctrl-app);
  max-width:100%; padding:0; border:0; text-align:left; white-space:normal; overflow-wrap:anywhere;
  font-size:var(--ps-fs-caption); color:var(--ps-text-muted);
}
.ps-design .ps-auth-password { position:relative; min-width:0; }
.ps-design .ps-auth-password__input { padding-right:var(--ps-sp-9); }
.ps-design .ps-auth-password__toggle {
  position:absolute; top:0; right:0; bottom:0; width:58px; min-height:var(--ps-h-ctrl-app);
  padding:0; margin:0; border:0; border-radius:var(--ps-radius-control); background:none;
  color:var(--ps-ink2); font:var(--ps-w-medium) var(--ps-fs-caption)/var(--ps-lh-control) var(--ps-sans);
  cursor:pointer;
}
.ps-design .ps-auth-password__toggle:hover:not(:disabled) { color:var(--ps-ink); }
.ps-design .ps-auth-password__toggle:disabled { opacity:.32; cursor:not-allowed; }
.ps-design .ps-auth-password__toggle:focus-visible {
  outline:2px solid var(--ps-focus-ring); outline-offset:-2px;
}
.ps-design .ps-auth-methods { display:grid; gap:var(--ps-sp-2); margin-top:var(--ps-sp-7); }
.ps-design .ps-auth-methods .ps-button { width:100%; gap:var(--ps-sp-3); overflow-wrap:anywhere; }
.ps-design .ps-auth-divider {
  margin:0; text-align:center; color:var(--ps-text-muted);
  font:var(--ps-w-regular) var(--ps-fs-caption)/var(--ps-lh-body) var(--ps-sans);
}
.ps-design .ps-auth-foot {
  display:grid; gap:var(--ps-sp-2); margin-top:var(--ps-sp-6); text-align:left; overflow-wrap:anywhere;
}
.ps-design .ps-auth-status {
  margin:var(--ps-sp-3) 0 0; color:var(--ps-text-body); text-align:left; overflow-wrap:anywhere;
  font:var(--ps-w-regular) var(--ps-fs-ui)/var(--ps-lh-body) var(--ps-sans);
}
.ps-design .ps-auth-status--standalone { text-align:center; }
.ps-design .ps-auth-status--error { color:var(--ps-error); }
.ps-design .ps-auth-footer { flex:none; margin-top:auto; }

/* Pairing differs deliberately from the existing 720px general form grid. */
.ps-design .ps-field-pair {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--ps-sp-4);
  min-width:0; margin-top:var(--ps-sp-4);
}
.ps-design .ps-field-pair .ps-field { margin:0; }

/* Legal content and signature/acceptance requirements belong to the host. */
.ps-design .ps-agreement-reader {
  box-sizing:border-box; max-height:300px; overflow-y:auto; overflow-wrap:anywhere; white-space:pre-wrap;
  padding:var(--ps-sp-4); border:1px solid var(--ps-border-default); border-radius:var(--ps-radius-control);
  background:var(--ps-surface-card); color:var(--ps-text-body);
  font:var(--ps-w-regular) var(--ps-fs-ui)/1.6 var(--ps-sans);
}
.ps-design .ps-agreement-reader:focus-visible,
.ps-design .ps-agreement-check__input:focus-visible {
  outline:2px solid var(--ps-focus-ring); outline-offset:2px;
}
.ps-design .ps-agreement-signature { display:grid; gap:var(--ps-sp-4); margin-top:var(--ps-sp-4); }
.ps-design .ps-agreement-check {
  display:flex; gap:var(--ps-sp-3); align-items:flex-start; min-height:var(--ps-h-ctrl-app);
  margin:0; color:var(--ps-text-body); overflow-wrap:anywhere;
  font:var(--ps-w-regular) var(--ps-fs-control)/var(--ps-lh-lead) var(--ps-sans);
}
.ps-design .ps-agreement-check__input {
  box-sizing:border-box; flex:none; width:18px; height:18px; margin:2px 0 0; padding:0; accent-color:var(--ps-ink);
}
.ps-design .ps-agreement-check__input:disabled { cursor:not-allowed; }

/* Data summaries opt in independently of existing serif summary bands. */
.ps-design .ps-data-stats {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));
  gap:var(--ps-sp-4) var(--ps-sp-7); padding:0; border:0; margin:0; min-width:0;
}
.ps-design .ps-data-stat { display:flex; flex-direction:column; min-width:0; }
.ps-design .ps-data-stat__label {
  order:-1; margin:0; color:var(--ps-text-muted); overflow-wrap:anywhere;
  font:var(--ps-w-regular) var(--ps-fs-caption)/var(--ps-lh-body) var(--ps-sans);
}
.ps-design .ps-data-stat__value {
  margin:var(--ps-sp-1) 0 0; color:var(--ps-text-heading); overflow-wrap:anywhere;
  font:var(--ps-w-medium) 22px/var(--ps-lh-control) var(--ps-sans);
  font-variant-numeric:tabular-nums;
}
.ps-design .ps-display-stat__label {
  margin:0; color:var(--ps-text-muted);
  font:var(--ps-w-medium) var(--ps-fs-caption)/var(--ps-lh-body) var(--ps-sans);
}
.ps-design .ps-display-stat__value {
  margin:var(--ps-sp-1) 0 0; color:var(--ps-text-heading); overflow-wrap:anywhere;
  font:var(--ps-w-light) var(--ps-t-h2)/1.04 var(--ps-serif); letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}

.ps-design .ps-heading-row {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:var(--ps-sp-5); min-width:0; margin-bottom:var(--ps-sp-6);
}
.ps-design .ps-heading-row__copy { flex:1 1 280px; min-width:0; }
.ps-design .ps-heading-row__action { flex:0 1 auto; max-width:100%; overflow-wrap:anywhere; }
.ps-design .ps-view-heading { margin-bottom:var(--ps-sp-6); min-width:0; }
.ps-design .ps-heading-row .ps-view-heading { margin-bottom:0; }
.ps-design .ps-view-subhead {
  margin:var(--ps-sp-2) 0 0; max-width:none; color:var(--ps-text-muted); overflow-wrap:anywhere;
  font:var(--ps-w-regular) var(--ps-fs-ui)/var(--ps-lh-lead) var(--ps-sans);
}
.ps-design .ps-prose { max-width:var(--ps-measure); overflow-wrap:anywhere; }
.ps-design .ps-prose--tight { max-width:var(--ps-measure-tight); }

/* Variants compose with unchanged .ps-table-wrap/.ps-table/.ps-control. */
.ps-design .ps-record-table-wrap { max-width:100%; min-width:0; }
.ps-design .ps-record-table { width:100%; table-layout:auto; }
.ps-design .ps-record-table th:first-child { width:var(--ps-table-label-col); }
.ps-design .ps-record-table td:first-child { overflow-wrap:anywhere; }
.ps-design .ps-record-table th { white-space:normal; overflow-wrap:anywhere; }
.ps-design .ps-record-table .ps-record-table__number {
  width:1%; text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap;
}
.ps-design .ps-record-table th:last-child,
.ps-design .ps-record-table td:last-child { text-align:right; }
.ps-design .ps-record-table td:last-child .ps-pill { margin-left:auto; }
.ps-design .ps-record-search {
  height:var(--ps-h-ctrl-sm); min-height:var(--ps-h-ctrl-sm); padding:0 var(--ps-sp-3);
}
.ps-design .ps-record-search:focus-visible {
  outline:2px solid var(--ps-focus-ring); outline-offset:2px; border-color:var(--ps-ink);
}
.ps-design .ps-record-results { display:flex; flex-wrap:wrap; align-items:center; gap:var(--ps-sp-3); margin-top:var(--ps-sp-4); }
.ps-design .ps-record-count {
  margin:0; color:var(--ps-text-body); overflow-wrap:anywhere;
  font:var(--ps-w-regular) var(--ps-fs-caption)/var(--ps-lh-body) var(--ps-sans);
}

/* Native hidden wins on every layout that declares display. */
.ps-design.ps-auth-page[hidden],
.ps-design .ps-auth-page[hidden],
.ps-design .ps-auth-main[hidden],
.ps-design .ps-auth-actions[hidden],
.ps-design .ps-auth-fieldrow[hidden],
.ps-design .ps-auth-label-action[hidden],
.ps-design .ps-auth-methods[hidden],
.ps-design .ps-auth-foot[hidden],
.ps-design .ps-field-pair[hidden],
.ps-design .ps-agreement-signature[hidden],
.ps-design .ps-agreement-check[hidden],
.ps-design .ps-data-stats[hidden],
.ps-design .ps-data-stat[hidden],
.ps-design .ps-heading-row[hidden],
.ps-design .ps-record-results[hidden],
.ps-design .ps-record-count[hidden] { display:none!important; }

@media (max-width:520px) {
  .ps-design .ps-field-pair { grid-template-columns:1fr; }
}
@media (max-width:480px) {
  .ps-design .ps-auth-main { padding:var(--ps-sp-7) var(--ps-sp-5) var(--ps-sp-9); }
  .ps-design .ps-auth-card { margin-top:var(--ps-sp-6); padding:var(--ps-sp-6); }
}

/* BUILD-DESIGN-V9-NAV-REFERRALS §2.1: v9 black sidenav restyle, scoped to internal/crm.html's
   #side. Loaded after that page's inline <style>, so these win on source order for equal
   specificity; no baseline byte inside the inline block is touched. Fraunces/Inter are already
   loaded on that page via its existing account-presentation import chain. */
#side .brandbar{gap:10px}
#side .wordmark{font-family:'Fraunces',var(--serif);font-weight:500;letter-spacing:-.012em;text-transform:none}
#side .glabel{font-size:13px;letter-spacing:normal;text-transform:none;color:rgba(255,255,255,.48);padding:18px 8px 7px;font-weight:500;font-family:'Inter',var(--sans)}
#side .navitem{min-height:44px;border-radius:8px;font-size:14px;font-family:'Inter',var(--sans)}
#side .whobar{border-top-color:rgba(255,255,255,.18)}
#side .av{font-size:12px;font-weight:500;letter-spacing:normal;font-family:'Inter',var(--sans)}
#side .who b{font-size:13px;font-weight:500;font-family:'Inter',var(--sans)}
#side .who small{font-size:12px;letter-spacing:normal;text-transform:none;font-family:'Inter',var(--sans)}

/* BUILD-DESIGN-V9-PIPELINE-BOARD §2.2: saved-view tabs, owner display, in-place search,
   per-view stage show/hide. Scoped to internal/crm.html's #board so nothing leaks onto
   portal.html/intake.html/buyer.html, which also load this file. Loaded after that page's
   inline <style>, so these win on source order for equal specificity; no baseline byte
   inside the inline block is touched. The collapsed rail is pinned exactly (packet §2.2):
   52px wide, 300px tall, fixed, on --paper3 whatever the label says; the label runs
   vertically and ellipsizes rather than stretching the rail; the count sits above the eye
   at the foot of every rail; the eye's 44px hit box pulls its own margin back inside the
   48px header. */
#board .col.narrow{width:52px;min-width:52px;flex:none;background:var(--paper3);height:300px;display:flex;flex-direction:column}
#board .col.narrow h3{height:300px;padding:10px 0;border-bottom:0;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;overflow:hidden;white-space:nowrap}
#board .col.narrow h3>span:first-child{writing-mode:vertical-rl;transform:rotate(180deg);min-height:0;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto}
#board .col.narrow h3 .cnt{flex:none;margin-top:auto}
#board .col.narrow h3 .colx{margin:0;flex:none}
#board .col.narrow .cards{display:none}
#board .col .colx{width:44px;height:44px;margin:0 -8px;display:flex;align-items:center;justify-content:center;border-radius:6px;flex:none}
#board .col .colx:hover{background:var(--paper3)}
/* on a phone the rail is a normal full column row (44px header), not a scaled-down
   52px rail — the existing board stays a horizontal-scroll strip at this width. */
@media(max-width:820px){
  #board .col.narrow{width:262px;min-width:262px;height:auto;background:var(--card)}
  #board .col.narrow h3{writing-mode:horizontal-tb;transform:none;height:44px;padding:10px 12px;flex-direction:row;justify-content:space-between}
  #board .col.narrow h3>span:first-child{writing-mode:horizontal-tb;transform:none}
}

/* BUILD-DESIGN-V9-DRAWER §2.5: the Pipeline ticket body. Every rule below is scoped to
   #dBody.ps-crm-ticket — the class openLead() adds and openDrawer() clears — because
   #drawer/#dBody is ONE overlay shared by change password, New lead, Assign owner,
   Record payment and Submit a quote (packet §2.5.2). A naive restyle of the shared
   .fld/.section-h rules would silently redesign the AR Record-payment and offtaker
   quote forms, both out of scope, so those rules are left untouched and nothing here
   reaches #dBody without the ticket class. It lives here rather than in crm.html’s own
   inline <style> because that block is byte-frozen by BOTH guard paths (check_app_html
   head entries and check_crm_html), the same finding BUILD-DESIGN-V9-PIPELINE-BOARD
   recorded; see the packet note. Loaded after that inline block, so these win on source
   order at equal specificity. buyer.html also has a #dBody, so the id alone is NOT the
   boundary — the required .ps-crm-ticket class is, and only internal/crm.html's
   openLead() ever sets it. Nothing here can reach portal.html/intake.html/buyer.html,
   which also load this file.
   BUILD-CRM-DRAWERS-FORMS-DS-WEB (legacy sweep packet §5.4 R4): re-skinned in place onto the --ps-* tokens, which
   resolve because openLead() now adds ps-design to #drawer; sentence case, weights ≤500, 1px --ps-line borders and
   the lifecycle ticket's .lc-work card (crm-lifecycle.css). Selectors, layout and the 820px rules are unchanged. */
#dBody.ps-crm-ticket .stageline{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
#dBody.ps-crm-ticket .stageline select{font-weight:500;min-height:40px}
#dBody.ps-crm-ticket .stageline .pos{font-size:var(--ps-fs-caption);color:var(--ps-muted);white-space:nowrap}
#dBody.ps-crm-ticket .kebab{margin-left:auto;position:relative}
#dBody.ps-crm-ticket .kebab>summary{list-style:none;display:flex;align-items:center;justify-content:center;width:44px;height:40px;border:1px solid var(--ps-line);border-radius:var(--ps-r-ctrl);background:var(--ps-paper2);color:var(--ps-ink2);cursor:pointer}
#dBody.ps-crm-ticket .kebab>summary::-webkit-details-marker{display:none}
#dBody.ps-crm-ticket .kebab>summary:hover{color:var(--ps-ink);border-color:var(--ps-ink)}
#dBody.ps-crm-ticket .kmenu{position:absolute;right:0;top:calc(100% + 6px);z-index:5;min-width:206px;background:var(--ps-paper2);border:1px solid var(--ps-line);border-radius:10px;padding:6px}
#dBody.ps-crm-ticket .kitem{display:block;width:100%;text-align:left;background:none;border:0;padding:10px;font:400 var(--ps-fs-ui) var(--ps-sans);color:var(--ps-ink);border-radius:6px;min-height:40px}
#dBody.ps-crm-ticket .kitem:hover{background:var(--ps-paper);color:var(--ps-ink)}
#dBody.ps-crm-ticket .confirmbox{border:1px solid var(--ps-line);border-radius:10px;background:var(--ps-paper2);padding:12px 14px;margin:0 0 14px}
#dBody.ps-crm-ticket .confirmbox[hidden]{display:none}
#dBody.ps-crm-ticket .ckl{font-weight:500;font-size:var(--ps-fs-ui);color:var(--ps-ink)}
#dBody.ps-crm-ticket .ckm{font-size:var(--ps-fs-caption);color:var(--ps-muted);margin:4px 0 10px}
#dBody.ps-crm-ticket .work{border:1px solid var(--ps-line);border-radius:10px;background:var(--ps-paper2);padding:16px 18px;margin:0 0 14px}
#dBody.ps-crm-ticket .work .pl{font-size:var(--ps-fs-caption);letter-spacing:0;text-transform:none;color:var(--ps-muted)}
#dBody.ps-crm-ticket .work .pa{font:500 var(--ps-fs-input)/var(--ps-lh-control) var(--ps-sans);font-variation-settings:normal;color:var(--ps-ink);margin-top:4px}
#dBody.ps-crm-ticket .work .pm{font-size:var(--ps-fs-caption);color:var(--ps-muted);margin-top:5px}
#dBody.ps-crm-ticket .qrow{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--ps-line2)}
#dBody.ps-crm-ticket .qrow:last-child{border-bottom:0}
#dBody.ps-crm-ticket .qwho{font-size:var(--ps-fs-ui);font-weight:500;color:var(--ps-ink)}
#dBody.ps-crm-ticket .qsub{font-size:var(--ps-fs-caption);color:var(--ps-muted)}
#dBody.ps-crm-ticket .qamt{font-size:var(--ps-fs-control);font-weight:500;font-variant-numeric:tabular-nums;text-align:right}
#dBody.ps-crm-ticket .alertline{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between;border:1px solid var(--ps-line);border-left:3px solid var(--ps-status-warn-border);border-radius:6px;background:var(--ps-paper2);padding:9px 12px;margin:0 0 8px;font-size:var(--ps-fs-ui);color:var(--ps-ink2)}
#dBody.ps-crm-ticket .linkbtn{background:none;border:0;border-radius:0;padding:0;min-height:44px;display:inline-flex;align-items:center;font:inherit;font-size:var(--ps-fs-ui);color:var(--ps-ink2);cursor:pointer;line-height:1.3;text-decoration:underline;text-decoration-color:var(--ps-line2);text-underline-offset:4px}
#dBody.ps-crm-ticket .linkbtn:hover{color:var(--ps-ink);text-decoration-color:var(--ps-ink)}
#dBody.ps-crm-ticket .linkline{margin-top:10px}
#dBody.ps-crm-ticket .tsec,#dBody.ps-crm-ticket .dmore{border-top:1px solid var(--ps-line)}
#dBody.ps-crm-ticket .tsec:last-of-type{border-bottom:1px solid var(--ps-line)}
#dBody.ps-crm-ticket .dmore{margin:0 0 14px;border-bottom:1px solid var(--ps-line)}
#dBody.ps-crm-ticket .tsec>summary,#dBody.ps-crm-ticket .dmore>summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 0;cursor:pointer;font-size:var(--ps-fs-control);color:var(--ps-ink)}
#dBody.ps-crm-ticket .tsec>summary::-webkit-details-marker,#dBody.ps-crm-ticket .dmore>summary::-webkit-details-marker{display:none}
#dBody.ps-crm-ticket .stitle{flex:none;font-weight:500}
#dBody.ps-crm-ticket .ssum{flex:1 1 auto;min-width:0;text-align:right;font-size:var(--ps-fs-caption);color:var(--ps-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#dBody.ps-crm-ticket .caret{flex:none;color:var(--ps-muted);font-size:16px;line-height:1;transition:transform .12s ease}
#dBody.ps-crm-ticket details[open]>summary .caret{transform:rotate(90deg)}
#dBody.ps-crm-ticket .dbody{padding:2px 0 16px}
#dBody.ps-crm-ticket .dsub{font-size:var(--ps-fs-caption);font-weight:500;letter-spacing:0;text-transform:none;color:var(--ps-muted);margin:16px 0 6px}
#dBody.ps-crm-ticket .dprose{font-size:var(--ps-fs-ui);color:var(--ps-ink2)}
#dBody.ps-crm-ticket .qual{font-size:var(--ps-fs-caption);font-weight:400;color:var(--ps-muted);text-transform:none;letter-spacing:normal}
#dBody.ps-crm-ticket .mmeta{font-size:var(--ps-fs-caption);color:var(--ps-muted);margin-bottom:8px;overflow-wrap:anywhere}
#dBody.ps-crm-ticket .mailprev,#dBody.ps-crm-ticket .mailmsg{border:1px solid var(--ps-line);border-radius:8px;padding:9px 11px;margin-bottom:6px;background:var(--ps-paper2)}
#dBody.ps-crm-ticket .mailmsg.out{background:var(--ps-paper3)}
#dBody.ps-crm-ticket .mpl{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
#dBody.ps-crm-ticket .mdir{font-size:var(--ps-fs-caption);font-weight:500;letter-spacing:0;text-transform:none;color:var(--ps-muted)}
#dBody.ps-crm-ticket .msub{font-size:var(--ps-fs-ui);font-weight:500;min-width:0;overflow-wrap:anywhere}
#dBody.ps-crm-ticket .mpm{font-size:var(--ps-fs-caption);color:var(--ps-muted);margin-top:2px}
#dBody.ps-crm-ticket .mpb{font-size:var(--ps-fs-ui);white-space:pre-wrap;margin-top:4px}
#dBody.ps-crm-ticket .failbox{border:1px solid var(--ps-status-bad-border);border-radius:6px;background:var(--ps-status-bad-bg);color:var(--ps-status-bad-text);padding:9px 11px;font-size:var(--ps-fs-ui)}
/* 390/320: the drawer is already full-width here under its own protected rule, so the
   work left is the 44px touch floor and keeping the stage row from crushing the kebab. */
@media(max-width:820px){
  #dBody.ps-crm-ticket .stageline select{flex:1 1 100%;min-height:44px}
  #dBody.ps-crm-ticket .kebab{margin-left:0}
  #dBody.ps-crm-ticket .kebab>summary{height:44px}
  #dBody.ps-crm-ticket .btn.sm,#dBody.ps-crm-ticket .kitem{min-height:44px}
  #dBody.ps-crm-ticket .kmenu{right:auto;left:0}
  #dBody.ps-crm-ticket .qrow{grid-template-columns:1fr auto}
  #dBody.ps-crm-ticket .qrow>:last-child{grid-column:1 / -1;justify-self:start}
}
/* BUILD-CRM-FINAL: folded composer, note and task disclosures, per-message email disclosure, linked-record facts. Append only; no new shadow, gradient, uppercase label or motion beyond the existing caret. */
#dBody.ps-crm-ticket details.disc{margin-top:10px}
#dBody.ps-crm-ticket details.disc>summary,#dBody.ps-crm-ticket details.mailmsg>summary{list-style:none;cursor:pointer}
#dBody.ps-crm-ticket details.disc>summary::-webkit-details-marker,#dBody.ps-crm-ticket details.mailmsg>summary::-webkit-details-marker{display:none}
#dBody.ps-crm-ticket details.disc>summary{display:flex;align-items:center;min-height:44px;padding:4px 0;font-size:var(--ps-fs-ui);font-weight:500;color:var(--ps-ink2)}
#dBody.ps-crm-ticket details.disc>summary::after{content:"\203A";margin-left:8px;color:var(--ps-muted);transition:transform .12s ease}
#dBody.ps-crm-ticket details.disc[open]>summary::after{transform:rotate(90deg)}
#dBody.ps-crm-ticket details.mailmsg>summary{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-height:44px}
#dBody.ps-crm-ticket .mwhen{margin-left:auto;font-size:var(--ps-fs-caption);color:var(--ps-muted);text-align:right}
#dBody.ps-crm-ticket .mailhead{display:flex;gap:10px;font-size:var(--ps-fs-caption);margin-bottom:4px;overflow-wrap:anywhere}
#dBody.ps-crm-ticket .mailhead span{flex:none;width:44px;color:var(--ps-muted)}
#dBody.ps-crm-ticket .mailhead b{font-weight:500;min-width:0}
#dBody.ps-crm-ticket .note{font-size:var(--ps-fs-caption);color:var(--ps-muted);margin:8px 0 0}
#dBody.ps-crm-ticket .tsec .fld{overflow-wrap:anywhere}
#dBody.ps-crm-ticket .tsec .qwho,#dBody.ps-crm-ticket .tsec .qsub,#dBody.ps-crm-ticket .msub{overflow-wrap:anywhere}
#dBody.ps-crm-ticket .tsec + :not(.tsec){border-top:1px solid var(--ps-line)}
#dBody.ps-crm-ticket .tsec + .section-h{margin-top:0;padding-top:20px}
@media(max-width:820px){
  #dBody.ps-crm-ticket details.disc input,#dBody.ps-crm-ticket details.disc textarea,#dBody.ps-crm-ticket details.disc select{min-height:48px}
}
