/* ==========================================================================
   pulse-5.css — HR › Former Employees + Forms & Links + hiring Approvals lane
   (2026-07-22). Reuses the Organization anatomy (.org-row/.oav/.oline from
   pulse-3.css — and NOTE: "reuses" means #fe-view-list is named in those
   selectors. It was not, until 2026-07-29; the list rendered with no row flex
   and an unstyled .oav, which printed the initials INTO the name.);
   everything new is .fe-* / .fx-* / .hx-*.
   Numeral-lock: .fx-num = Inter, lining + tabular — every displayed digit in
   these surfaces rides it.
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap');

.fx-num{ font-family:'Inter',sans-serif; font-variant-numeric:lining-nums tabular-nums; }

/* ---------- Former Employees ---------- */
.fe-row{ cursor:default; }
.fe-right{ display:flex; align-items:center; gap:10px; flex:none; }
.fe-exit{ font-size:12px; color:#8a6940; }
.fe-exit .fx-num{ font-size:12px; font-weight:600; color:#6e5a47; }
.fe-chip{ font-family:'Jost',sans-serif; font-size:10px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; border-radius:999px; padding:4px 11px; }
.fe-chip.res{ background:#fff5e8; color:#8a6940; border:1px solid #e8ddd0; }
.fe-chip.term{ background:#faf0ee; color:#7a2e2e; border:1px solid #e6cfc9; }

/* ---------- Forms & Links ---------- */
.fx-links{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:4px 0 22px; }
.fx-link{ background:var(--bg-panel,#fff); border:1px solid #e8ddd0; border-radius:13px; padding:18px 17px; }
.fx-link .nm{ font-family:'Cormorant Garamond',serif; font-size:21px; font-weight:600; color:#4a2c17; }
.fx-link .ds{ font-family:'Jost',sans-serif; font-size:13px; color:#6e5a47; line-height:1.55; margin:7px 0 13px; }
.fx-linkmeta{ font-family:'Jost',sans-serif; font-size:11.5px; font-weight:500; letter-spacing:.12em;
  text-transform:uppercase; color:#8a6940; }
.fx-rows{ display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.fx-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  background:var(--bg-panel,#fff); border:1px solid #e8ddd0; border-radius:11px; padding:12px 14px; }
.fx-row .onm{ font-family:'Jost',sans-serif; font-size:14.5px; font-weight:600; color:#3a2e24; }
.fx-row .oti{ font-family:'Jost',sans-serif; font-size:12.5px; color:#8a6940; }
.fx-rowright{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.fx-when{ font-family:'Jost',sans-serif; font-size:12px; color:#8a6940; }
.fx-when .fx-num{ font-size:12px; font-weight:600; color:#6e5a47; }
.fx-chip{ font-family:'Jost',sans-serif; font-size:10px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; border-radius:999px; padding:4px 11px; white-space:nowrap; }
.fx-chip.draft{ background:#fdf8f3; color:#8a6940; border:1px solid #e8ddd0; }
.fx-chip.sent{ background:#fff5e8; color:#b9770f; border:1px solid #ecd9b8; }
.fx-chip.act{ background:#3d2417; color:#c5a572; border:1px solid #3d2417; }
.fx-chip.hired{ background:#eef5ee; color:#2e5d3a; border:1px solid #cfe0d1; }
.fx-chip.no{ background:#faf0ee; color:#7a2e2e; border:1px solid #e6cfc9; }
.fx-actions{ display:flex; gap:7px; }
.fx-act{ font-family:'Jost',sans-serif; font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  background:#3d2417; color:#fdf8f3; border:1px solid #3d2417; border-radius:7px; padding:8px 13px; cursor:pointer; }
.fx-act.ghost{ background:none; color:#8a6940; border:1px solid #e8ddd0; }
.fx-act:hover{ opacity:.92; }
/* Anchors wearing .fx-act. A link is the ONLY reliable way to open a file once an
   await has spent the user's tap — window.open is refused from there, silently. */
a.fx-act{ display:inline-block; text-decoration:none; }
.fl-open-row{ display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  background:#fdf8f3; border:1px solid #e8ddd0; border-radius:9px; padding:9px 11px; }
.fl-open-row .lbl{ font-family:'Jost',sans-serif; font-size:11px; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; color:#8a6940; width:100%; }
/* Shared-link landing banner: reached by navigation, so there is no gesture at
   all and a pop-up is refused on every browser, desktop included. */
#fl-sharebar{ position:fixed; left:50%; transform:translateX(-50%); bottom:18px; z-index:120;
  display:flex; align-items:center; gap:12px; flex-wrap:wrap; max-width:min(560px, calc(100vw - 24px));
  background:#fdf8f3; border:1px solid #e8ddd0; border-radius:13px; padding:13px 15px;
  box-shadow:0 10px 30px rgba(61,36,23,.16); }
#fl-sharebar .t{ font-family:'Cormorant Garamond',serif; font-size:18px; font-weight:600; color:#4a2c17; }
#fl-sharebar .d{ font-family:'Jost',sans-serif; font-size:12px; color:#8a6940; width:100%; margin-top:-6px; }
.fx-lethint{ font-family:'Jost',sans-serif; font-size:12px; color:#8a6940; margin:2px 0 8px; }
#fx-view-compose textarea{ width:100%; font-family:'Jost',sans-serif; font-size:14.5px; color:#3a2e24; line-height:1.6;
  padding:12px 13px; border:1px solid #e8ddd0; border-radius:10px; background:#fdf8f3; outline:none; resize:vertical; }
#fx-view-compose textarea:focus{ border-color:#c5a572; }
.po-ctl-btn.primary{ background:#3d2417; color:#fdf8f3; border-color:#3d2417; }

/* ---------- Approvals · hiring lane ---------- */
.hx-card{ background:var(--bg-panel,#fff); border:1px solid #e8ddd0; border-radius:13px; padding:16px 16px 14px; margin:0 0 12px; }
.hx-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.hx-kind{ font-family:'Jost',sans-serif; font-size:10px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  background:#3d2417; color:#c5a572; border-radius:6px; padding:5px 10px; }
.hx-kind.onb{ background:#fff5e8; color:#b9770f; border:1px solid #ecd9b8; }
.hx-when{ font-family:'Jost',sans-serif; font-size:12px; color:#8a6940; }
.hx-when .fx-num{ font-weight:600; color:#6e5a47; }
.hx-name{ font-family:'Cormorant Garamond',serif; font-size:23px; font-weight:600; color:#4a2c17; }
.hx-meta{ font-family:'Jost',sans-serif; font-size:13px; color:#6e5a47; margin:2px 0 8px; }
.hx-facts{ display:flex; flex-wrap:wrap; gap:7px; margin:4px 0 10px; }
.hx-facts span{ font-family:'Jost',sans-serif; font-size:11.5px; color:#6e5a47; background:#fdf8f3;
  border:1px solid #e8ddd0; border-radius:999px; padding:4px 11px; }
.hx-line{ font-family:'Jost',sans-serif; font-size:13px; color:#3a2e24; margin:5px 0; display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.hx-line.soft{ color:#8a6940; font-size:12px; line-height:1.55; display:block; }
.hx-datelbl{ font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#8a6940; }
.hx-date{ font-size:14px; color:#3a2e24; padding:8px 10px; border:1px solid #e8ddd0; border-radius:8px; background:#fdf8f3; outline:none; }
.hx-date:focus{ border-color:#c5a572; }
.hx-actions{ display:flex; gap:9px; margin-top:10px; }
.hx-btn{ font-family:'Jost',sans-serif; font-size:11.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  border-radius:8px; padding:11px 18px; cursor:pointer; }
.hx-btn.ok{ background:#3d2417; color:#fdf8f3; border:1px solid #3d2417; }
.hx-btn.no{ background:none; color:#7a2e2e; border:1px solid #d9b8a8; }
.hx-btn:hover{ opacity:.92; }

@media (max-width:640px){
  .fx-links{ grid-template-columns:1fr; }
  .fx-row{ flex-direction:column; align-items:flex-start; }
  .fx-rowright{ width:100%; justify-content:space-between; }
}

/* ---------- HR › Organization — Key Dates field alignment (2026-07-22) ----------
   Placed here (all Pulse CSS loads globally) as a cross-cutting HR fix. The
   Organization record's Role/Comp fields are text + <select>, locked to a 36px
   left-aligned box by pulse-1/pulse-3. The "Key dates" fields (Start date, Date
   of birth, Date of exit) are native <input type="date">, which iOS renders
   centered and oversized — out of line with the rest of the form. Normalize
   them to the same box: appearance reset so height applies, 36px tall,
   left-aligned value, Inter tabular digits (numeral-lock). */
#org-view-detail .po-fld input[type="date"]{
  -webkit-appearance:none; appearance:none;
  height:36px; line-height:normal; text-align:left;
  font-family:'Inter',sans-serif; font-variant-numeric:lining-nums tabular-nums;
}
#org-view-detail .po-fld input[type="date"]::-webkit-date-and-time-value{
  text-align:left; margin:0;
}
#org-view-detail .po-fld input[type="date"]::-webkit-calendar-picker-indicator{
  margin-left:auto; opacity:.5;
}

/* ==========================================================================
   HR › Offer Letters (renamed from Forms & Links) + Forms + Job Descriptions
   (2026-07-22). Breadcrumb-as-title §13.2 + §13.8 sub — these subviews were
   falling back to the global serif .sv-title (design-protocol miss). Bring them
   in line with Organization / Pending / Approvals (JetBrains Mono 11/600/.3em
   walnut nameplate · gold sep · chocolate leaf · Jost description).
   ========================================================================== */
#sv-former-employees .sv-title, #sv-forms-links .sv-title, #sv-forms .sv-title, #sv-job-descriptions .sv-title{
  font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:600; letter-spacing:.3em;
  text-transform:uppercase; color:#8a6940; line-height:1.5; margin:0 0 7px;
}
#sv-former-employees .sv-title .po-cr-link, #sv-forms-links .sv-title .po-cr-link, #sv-forms .sv-title .po-cr-link, #sv-job-descriptions .sv-title .po-cr-link{
  background:none; border:0; padding:0; font:inherit; letter-spacing:inherit; text-transform:inherit; color:#8a6940; cursor:pointer;
}
#sv-former-employees .sv-title .po-cr-link:hover, #sv-forms-links .sv-title .po-cr-link:hover, #sv-forms .sv-title .po-cr-link:hover, #sv-job-descriptions .sv-title .po-cr-link:hover{ color:#4a2c17; }
#sv-former-employees .sv-title .po-cr-sep, #sv-forms-links .sv-title .po-cr-sep, #sv-forms .sv-title .po-cr-sep, #sv-job-descriptions .sv-title .po-cr-sep{ color:#c5a572; }
#sv-former-employees .sv-title .crumb-leaf, #sv-forms-links .sv-title .crumb-leaf, #sv-forms .sv-title .crumb-leaf, #sv-job-descriptions .sv-title .crumb-leaf{ color:#4a2c17; }
#sv-former-employees .sv-sub, #sv-forms-links .sv-sub, #sv-forms .sv-sub, #sv-job-descriptions .sv-sub{
  font-family:'Jost',sans-serif; font-style:normal; font-size:12.5px; color:#6e5a3f; line-height:1.45; margin:0 0 16px;
}

/* ---------- Forms library (the "Forms" tile) ---------- */
#sv-forms .po-fld.w2{ grid-column:span 2; }
@media (max-width:820px){ #sv-forms .po-fld.w2{ grid-column:1 / -1; } }
.vm-actions{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.fl-builder{ background:#fffcf8; border:1px solid #e8ddd0; border-radius:13px; padding:16px 18px; margin:2px 0 18px; }
.fl-builder-t{ font-family:'Cormorant Garamond',serif; font-size:20px; font-weight:600; color:#4a2c17; }
.fl-builder-d{ font-family:'Jost',sans-serif; font-size:13px; color:#6e5a47; line-height:1.55; margin:5px 0 12px; }
.fl-upload{ margin:0 0 18px; }
.fl-upload.hidden{ display:none; }
.fl-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:4px 0 20px; }
@media (max-width:640px){ .fl-grid{ grid-template-columns:1fr; } }
.fl-card{ background:var(--bg-panel,#fff); border:1px solid #e8ddd0; border-radius:13px; padding:15px 16px; }
.fl-card-top{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; }
.fl-card-nm{ font-family:'Cormorant Garamond',serif; font-size:20px; font-weight:600; color:#4a2c17; line-height:1.15; }
.fl-origin{ font-family:'Jost',sans-serif; font-size:9px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:#8a6940; background:#f3ece0; border-radius:999px; padding:3px 9px; white-space:nowrap; flex:none; }
.fl-card-ds{ font-family:'Jost',sans-serif; font-size:12.5px; color:#6e5a47; line-height:1.5; margin:6px 0 8px; }
.fl-card-meta{ font-family:'Jost',sans-serif; font-size:11.5px; color:#8a6940; margin-bottom:11px; }
.fl-actions{ display:flex; flex-wrap:wrap; gap:7px; }
.fl-share{ margin-top:10px; }
.fl-share:empty{ margin-top:0; }
.fl-share-wait{ font-family:'Jost',sans-serif; font-size:12px; color:#8a6940; }
.fl-share-row{ display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  background:#fdf8f3; border:1px solid #e8ddd0; border-radius:9px; padding:9px 11px; }
.fl-share-lbl{ font-family:'Jost',sans-serif; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#8a6940; width:100%; }
.fl-share-url{ flex:1; min-width:0; font-family:'Inter',sans-serif; font-variant-numeric:lining-nums tabular-nums;
  font-size:12px; color:#3a2e24; background:#fff; border:1px solid #e8ddd0; border-radius:7px; padding:7px 9px; outline:none; }
.fl-share-note{ font-family:'Jost',sans-serif; font-size:11px; color:#9a7b5a; margin-top:6px; }

/* ---------- Job Descriptions (coming soon) ---------- */
.jd-soon{ background:#fffcf8; border:1px solid #e8ddd0; border-radius:13px; padding:22px 22px; }
.jd-soon .jd-eye{ font-family:'Jost',sans-serif; font-size:10px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:#b9770f; }
.jd-soon .jd-t{ font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:600; color:#4a2c17; margin:6px 0 8px; }
.jd-soon .jd-d{ font-family:'Jost',sans-serif; font-size:13.5px; color:#6e5a47; line-height:1.6; }

/* ========================================================================
   SHAMAN tab (app-9, 2026-07-23) — Phase-1 shell + intake. Pre-announcement
   surface (Peter + Sarah only). Subview nameplates reuse the global §13.2
   .sv-title/.crumb-leaf anatomy; everything new is .sh-*.
   Numeral-lock: every displayed digit rides .fx-num (defined above).
   ======================================================================== */

/* §13.2 breadcrumb-as-title nameplate + §13.8 sub for the four Shaman
   subviews — same anatomy as Organization / Forms / Job Descriptions
   (JetBrains Mono 11/600/.3em walnut · gold sep · chocolate leaf · Jost sub). */
#sv-shaman-dashboard .sv-title, #sv-shaman-voice .sv-title, #sv-shaman-document .sv-title, #sv-shaman-journal .sv-title{
  font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:600; letter-spacing:.3em;
  text-transform:uppercase; color:#8a6940; line-height:1.5; margin:0 0 7px;
}
#sv-shaman-dashboard .sv-title .po-cr-link, #sv-shaman-voice .sv-title .po-cr-link, #sv-shaman-document .sv-title .po-cr-link, #sv-shaman-journal .sv-title .po-cr-link{
  background:none; border:0; padding:0; font:inherit; letter-spacing:inherit; text-transform:inherit; color:#8a6940; cursor:pointer;
}
#sv-shaman-dashboard .sv-title .po-cr-link:hover, #sv-shaman-voice .sv-title .po-cr-link:hover, #sv-shaman-document .sv-title .po-cr-link:hover, #sv-shaman-journal .sv-title .po-cr-link:hover{ color:#4a2c17; }
#sv-shaman-dashboard .sv-title .po-cr-sep, #sv-shaman-voice .sv-title .po-cr-sep, #sv-shaman-document .sv-title .po-cr-sep, #sv-shaman-journal .sv-title .po-cr-sep{ color:#c5a572; }
#sv-shaman-dashboard .sv-title .crumb-leaf, #sv-shaman-voice .sv-title .crumb-leaf, #sv-shaman-document .sv-title .crumb-leaf, #sv-shaman-journal .sv-title .crumb-leaf{ color:#4a2c17; }
#sv-shaman-dashboard .sv-sub, #sv-shaman-voice .sv-sub, #sv-shaman-document .sv-sub, #sv-shaman-journal .sv-sub{
  font-family:'Jost',sans-serif; font-style:normal; font-size:12.5px; color:#6e5a3f; line-height:1.45; margin:0 0 16px;
}
#sv-shaman-dashboard .po-fld.w2, #sv-shaman-voice .po-fld.w2, #sv-shaman-document .po-fld.w2, #sv-shaman-journal .po-fld.w2{ grid-column:span 2; }
@media (max-width:820px){
  #sv-shaman-dashboard .po-fld.w2, #sv-shaman-voice .po-fld.w2, #sv-shaman-document .po-fld.w2, #sv-shaman-journal .po-fld.w2{ grid-column:1 / -1; }
}
#sv-shaman-voice textarea, #sv-shaman-journal textarea{
  width:100%; font-family:'Jost',sans-serif; font-size:14.5px; color:#3a2e24; line-height:1.6;
  padding:12px 13px; border:1px solid #e8ddd0; border-radius:10px; background:#fdf8f3; outline:none; resize:vertical;
}
#sv-shaman-voice textarea:focus, #sv-shaman-journal textarea:focus{ border-color:#c5a572; }

/* dashboard stat strip */
.sh-stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px; margin:6px 0 12px; }
.sh-stat{ background:var(--bg-panel,#fff); border:1px solid #e8ddd0; border-radius:13px; padding:15px 16px 13px; }
.sh-stat .n{ display:block; font-family:'Inter',sans-serif; font-variant-numeric:lining-nums tabular-nums; font-size:27px; font-weight:600; color:#4a2c17; line-height:1.1; }
.sh-stat .n.dash{ font-family:'Inter',sans-serif; color:#cbb89d; }
.sh-stat .l{ display:block; font-family:'Jost',sans-serif; font-size:10px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:#8a6940; margin-top:5px; }
.sh-note{ font-family:'Jost',sans-serif; font-size:12.5px; color:#8a6940; margin:0 0 18px; }
.sh-note .fx-num{ font-weight:600; color:#6e5a47; }

/* honest empty states — the belief lanes before the schema exists */
.sh-empty{ background:#fdf8f3; border:1px dashed #dcc9a8; border-radius:13px; padding:16px 18px;
  font-family:'Jost',sans-serif; font-size:13px; color:#6e5a47; line-height:1.6; margin:0 0 18px; }
.sh-empty .fx-num{ font-weight:600; color:#6e5a47; }

/* intake status chips (Queued → Extracting → Confirmed) */
.sh-chip{ font-family:'Jost',sans-serif; font-size:10px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; border-radius:999px; padding:4px 11px; white-space:nowrap; }
.sh-chip.queued{ background:#fdf8f3; color:#8a6940; border:1px solid #e8ddd0; }
.sh-chip.extracting{ background:#fff5e8; color:#b9770f; border:1px solid #ecd9b8; }
.sh-chip.confirmed{ background:#f0f5ee; color:#4a6741; border:1px solid #d5e0cf; }

/* intake feed cards (dashboard + each door's recent list) */
.sh-feed{ display:flex; flex-direction:column; gap:8px; margin:0 0 18px; }
.sh-item{ background:var(--bg-panel,#fff); border:1px solid #e8ddd0; border-radius:11px; padding:13px 15px; }
.sh-item-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.sh-item-nm{ font-family:'Jost',sans-serif; font-size:14.5px; font-weight:600; color:#3a2e24; }
.sh-item-sub{ font-family:'Jost',sans-serif; font-size:11.5px; font-weight:500; letter-spacing:.1em;
  text-transform:uppercase; color:#8a6940; margin-top:3px; }
.sh-item-body{ font-family:'Jost',sans-serif; font-size:13px; color:#6e5a47; line-height:1.55; margin-top:7px; }
.sh-item-meta{ font-family:'Jost',sans-serif; font-size:12px; color:#8a6940; margin-top:7px; }
.sh-item-meta .fx-num{ font-weight:600; color:#6e5a47; }
.sh-acts{ margin-top:10px; }

/* capture forms (the three doors) */
.sh-capture{ background:var(--bg-panel,#fff); border:1px solid #e8ddd0; border-radius:13px;
  padding:18px 17px; margin:0 0 20px; }

/* voice recorder */
.sh-rec-row{ display:flex; align-items:center; gap:14px; margin:0 0 10px; }
.sh-rec-btn{ font-family:'Jost',sans-serif; font-size:12px; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; color:#fff; background:#7a5c3e; border:none; border-radius:999px;
  padding:11px 22px; cursor:pointer; }
.sh-rec-btn.on{ background:#a03d2e; animation:sh-pulse 1.4s ease-in-out infinite; }
@keyframes sh-pulse{ 0%,100%{ opacity:1; } 50%{ opacity:.72; } }
.sh-timer .fx-num{ font-size:17px; font-weight:600; color:#4a2c17; }
#sh-v-preview audio{ width:100%; max-width:420px; display:block; margin:4px 0 2px; }
