/* Relationship Touch modal — same branded Log a Touch dialog as Contact Management. */
.jrt-modal {
  position: fixed; inset: 0; background: rgba(32, 32, 32, 0.45);
  display: none; align-items: center; justify-content: center; z-index: 1400; padding: 20px;
}
.jrt-modal.open { display: flex; }
.jrt-card {
  width: min(860px, 100%); max-height: 94vh; overflow: auto;
  background: #fff; border: 0; box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
}
.jrt-hd {
  position: relative; overflow: hidden; background: #202020;
  color: #E6E6E6; padding: 24px 28px 22px;
}
.jrt-hd::after {
  content: ""; position: absolute; top: -40px; right: -20px; width: 210px; height: 230px;
  background:
    linear-gradient(116deg, transparent 40%, #E92A2C 40%, #E92A2C 48%, transparent 48%),
    linear-gradient(116deg, transparent 56%, #A71F23 56%, #A71F23 62%, transparent 62%),
    linear-gradient(116deg, transparent 70%, #E92A2C 70%, #E92A2C 74%, transparent 74%);
  pointer-events: none;
}
.jrt-x {
  position: absolute; top: 16px; right: 20px; z-index: 2; padding: 4px 6px;
  background: none; border: 0; color: #E92A2C; font-size: 22px; line-height: 1; cursor: pointer;
}
.jrt-x:hover { color: #fff; }
.jrt-eyebrow {
  font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: #BFBFBF;
}
.jrt-card h2 {
  margin: 8px 0 12px; font-size: 34px; line-height: 1.05; letter-spacing: -0.02em;
  font-weight: 400; text-transform: none; color: #fff; position: relative; z-index: 1;
  font-family: "Neue Haas Grotesk Display", Arial, Helvetica, sans-serif;
}
.jrt-card h2 strong {
  font-weight: 900;
  font-family: "Neue Haas Grotesk Display", "Arial Black", Arial, sans-serif;
}
.jrt-meta { margin: 0; font-size: 13.5px; color: #BFBFBF; position: relative; z-index: 1; }
.jrt-meta strong { color: #fff; font-weight: 700; }
.jrt-meta .sep { color: #6a6a6a; margin: 0 8px; }
.jrt-meta .ttl { color: #9A9A9A; }
.jrt-who { margin-top: 14px; position: relative; z-index: 1; }
.jrt-who[hidden] { display: none; }
.jrt-who-hd {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 8px;
}
.jrt-who label {
  display: block; font-size: 9.5px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.1em; color: #8E8E8E; margin: 0;
}
.jrt-who-acts { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
/* Scrolls rather than pushing the form off screen: an account can carry 30 contacts. */
.jrt-people {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 4px;
  max-height: 168px; overflow-y: auto; padding-right: 2px;
}
.jrt-person {
  display: flex; align-items: center; gap: 8px; padding: 6px 9px; cursor: pointer;
  border: 1px solid rgba(230, 230, 230, 0.16); border-radius: 2px;
  font-size: 12.5px; color: #BFBFBF; text-transform: none; letter-spacing: 0;
}
.jrt-person:hover { border-color: rgba(233, 42, 44, 0.6); color: #E6E6E6; }
.jrt-person.on { background: rgba(255, 255, 255, 0.07); border-color: rgba(230, 230, 230, 0.34); color: #fff; }
.jrt-person.active { border-left: 3px solid #E92A2C; }
.jrt-person input { width: 14px; height: 14px; margin: 0; flex: none; accent-color: #E92A2C; }
.jrt-person .nm { font-weight: 700; color: inherit; white-space: nowrap; }
.jrt-person .pri {
  margin-left: 6px; padding: 1px 5px; background: rgba(233, 42, 44, 0.22); color: #FFC9CA;
  font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em;
}
.jrt-person .ttl {
  color: #8E8E8E; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
}
.jrt-person .tag {
  margin-left: auto; padding-left: 8px; font-size: 11px; color: #8E8E8E;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 45%;
}
.jrt-person .tag.none, .jrt-person .tag.bad {
  color: #FF9A9C; font-size: 9.5px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.08em; max-width: none;
}
.jrt-reach {
  display: flex; flex-wrap: wrap; gap: 8px; margin-top: 15px; position: relative; z-index: 1;
}
.jrt-reach[hidden] { display: none; }
.jrt-chip {
  display: inline-flex; align-items: center; gap: 8px; padding: 5px 6px 5px 10px;
  border: 1px solid rgba(230, 230, 230, 0.24); border-radius: 2px;
  font-size: 12.5px; color: #E6E6E6;
}
.jrt-chip .ic { color: #E92A2C; font-size: 11px; }
.jrt-chip .lb {
  font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #8E8E8E;
}
.jrt-chip a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(233, 42, 44, 0.75); }
.jrt-chip a:hover { border-bottom-color: #fff; }
.jrt-chip.gap {
  color: #8E8E8E; border-style: dashed; padding-right: 6px; font-family: inherit; cursor: pointer;
}
.jrt-chip.gap:hover { color: #E6E6E6; border-color: rgba(233, 42, 44, 0.7); }
.jrt-chip.gap .add {
  padding: 4px 8px; background: rgba(230, 230, 230, 0.12); color: #E6E6E6;
  font-size: 9.5px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.09em;
}
.jrt-chip.gap:hover .add { background: linear-gradient(135deg, #E92A2C, #A71F23); color: #fff; }
.jrt-chip.dead { border-color: rgba(233, 42, 44, 0.55); }
.jrt-chip.dead s { color: #9A9A9A; }
.jrt-chip.dead .lb { color: #FF9A9C; }
.jrt-go {
  padding: 4px 8px; border: 0; border-radius: 2px;
  background: linear-gradient(135deg, #E92A2C, #A71F23); color: #fff;
  font-family: inherit; font-size: 9.5px; font-weight: 800;
  text-transform: uppercase; letter-spacing: 0.09em; cursor: pointer;
}
.jrt-go:hover { filter: brightness(1.12); }
.jrt-quiet {
  padding: 4px 8px; border: 1px solid rgba(230, 230, 230, 0.24); border-radius: 2px;
  background: transparent; color: #8E8E8E; font-family: inherit; font-size: 9.5px;
  font-weight: 700; text-transform: uppercase; letter-spacing: 0.09em; cursor: pointer;
}
.jrt-quiet:hover { color: #E6E6E6; border-color: rgba(233, 42, 44, 0.7); }
.jrt-add { display: flex; align-items: center; gap: 8px; margin-top: 10px; position: relative; z-index: 1; }
.jrt-add[hidden] { display: none; }
.jrt-add label {
  font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #8E8E8E;
}
.jrt-add input {
  width: 260px; height: 30px; padding: 0 8px; font-family: inherit; font-size: 13px;
  color: #fff; background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(230, 230, 230, 0.28); border-radius: 2px;
}
.jrt-add input:focus { outline: none; border-color: #E92A2C; }
.jrt-add .jrt-btn { height: 30px; }
.jrt-add .jrt-btn:not(.primary) {
  background: transparent; color: #E6E6E6; border-color: rgba(230, 230, 230, 0.28);
}
.jrt-add-msg { font-size: 11.5px; color: #FF9A9C; }
.jrt-body { padding: 24px 28px 20px; }
.jrt-body label {
  display: block; font-size: 11px; letter-spacing: 0.14em; color: #8A8A8A; margin-bottom: 10px;
  text-transform: uppercase;
}
.jrt-body label .opt { letter-spacing: 0.02em; text-transform: lowercase; color: #B0B0B0; }
.jrt-body label .req { letter-spacing: 0.08em; color: #A71F23; font-weight: 700; }
.jrt-next-banner {
  background: #fdf6f6; border: 1px solid #f0d8d8; padding: 8px 10px;
  font-size: 12.5px; color: #A71F23; margin-bottom: 12px;
}
.jrt-next-banner[hidden] { display: none; }
.jrt-chan { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.jrt-chan button {
  height: 38px; padding: 0 14px; border: 1px solid #D9D9D9; background: #fff;
  color: #202020; font-size: 11.5px; letter-spacing: 0.09em; text-transform: uppercase;
  font-family: inherit; cursor: pointer;
}
.jrt-chan button::before {
  content: "/"; display: inline-block; margin-right: 8px; color: #E92A2C;
  font-weight: 700; transform: skewX(-12deg);
}
.jrt-chan button.on { background: #202020; border-color: #202020; color: #fff; }
.jrt-chan-note {
  border-left: 3px solid #A71F23; background: #FDF3F3; padding: 10px 14px;
  margin: -8px 0 20px; font-size: 12.5px; color: #7A1D20; line-height: 1.45;
}
.jrt-chan-note[hidden] { display: none; }
.jrt-mail {
  border-left: 3px solid #E92A2C; background: #FAFAFA;
  padding: 14px 16px 0; margin-bottom: 20px;
}
.jrt-mail[hidden] { display: none; }
.jrt-mail-hd { display: flex; align-items: baseline; gap: 10px; margin-bottom: 12px; }
.jrt-mail-title {
  font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; color: #202020;
}
.jrt-mail-status { margin-left: auto; font-size: 11.5px; color: #6E6E6E; }
.jrt-mail-status.ok { color: #202020; font-weight: 700; }
.jrt-mail-status.warn { color: #A71F23; font-weight: 700; }
.jrt-mail-note { margin: 0 0 14px; font-size: 11.5px; line-height: 1.45; color: #8A8A8A; }
.jrt-meet {
  border-left: 3px solid #E92A2C; background: #FAFAFA;
  padding: 14px 16px 0; margin-bottom: 20px;
}
.jrt-meet[hidden] { display: none; }
.jrt-recip {
  display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; min-height: 26px;
}
.jrt-recip-empty { font-size: 12.5px; color: #9A9A9A; }
.jrt-recip-chip {
  display: inline-flex; align-items: center; gap: 6px; padding: 4px 4px 4px 9px;
  background: #fff; border: 1px solid #D9D9D9; border-radius: 2px;
  font-size: 12.5px; color: #202020;
}
.jrt-recip-chip .addr { color: #8A8A8A; font-size: 11.5px; }
.jrt-recip-chip .x {
  border: 0; background: none; color: #A71F23; font-size: 15px; line-height: 1;
  padding: 0 4px; cursor: pointer; font-family: inherit;
}
.jrt-recip-chip .x:hover { color: #202020; }
.jrt-recip-warn {
  border-left: 3px solid #A71F23; background: #FDF3F3;
  padding: 10px 12px; margin: -4px 0 14px;
}
.jrt-recip-warn[hidden] { display: none; }
.jrt-recip-warn-hd {
  font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em;
  color: #7A1D20; margin-bottom: 8px;
}
.jrt-recip-warn-list { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.jrt-recip-fix {
  display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px;
  background: #fff; border: 1px dashed #D8A3A4; border-radius: 2px;
  font-family: inherit; font-size: 12.5px; color: #202020; cursor: pointer;
}
.jrt-recip-fix:hover { border-color: #A71F23; border-style: solid; }
.jrt-recip-fix .why {
  font-size: 9.5px; font-weight: 800; text-transform: uppercase;
  letter-spacing: 0.08em; color: #A71F23;
}
.jrt-recip-warn .jrt-quiet { color: #7A1D20; border-color: #D8A3A4; }
.jrt-recip-warn .jrt-quiet:hover { color: #202020; border-color: #A71F23; }
/* Beats the `.jrt-body label` / `.jrt-body input` base rules, which assume a stacked
   field label over a full-width control rather than a checkbox on its own line. */
.jrt-body label.jrt-check {
  display: flex; align-items: center; gap: 8px; margin: 0 0 14px;
  font-size: 12.5px; letter-spacing: 0; text-transform: none; color: #404040; cursor: pointer;
}
.jrt-body label.jrt-check[hidden] { display: none; }
.jrt-body .jrt-check input {
  width: 15px; height: 15px; margin: 0; flex: none; accent-color: #E92A2C;
}
.jrt-body .jrt-check input:disabled + span { color: #9A9A9A; }
.jrt-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.jrt-span2 { grid-column: 1 / -1; }
.jrt-body input, .jrt-body select {
  width: 100%; height: 42px; padding: 0 2px; margin-bottom: 20px; border: 0; border-bottom: 1px solid #202020;
  border-radius: 0; background: transparent; font-size: 15px; color: #202020; font-family: inherit;
}
.jrt-body input::placeholder { color: #B0B0B0; }
.jrt-body input:focus, .jrt-body select:focus, .jrt-body textarea:focus { outline: 0; border-color: #E92A2C; }
.jrt-body textarea {
  width: 100%; min-height: 88px; padding: 11px 13px; margin-bottom: 20px;
  border: 1px solid #C9C9C9; font-size: 14px; font-family: inherit; resize: vertical;
}
.jrt-when { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.jrt-when button {
  height: 30px; padding: 0 11px; border: 1px solid #D9D9D9; border-radius: 2px;
  background: #fff; color: #404040; font-size: 11px; font-weight: 700;
  letter-spacing: 0.06em; cursor: pointer; font-family: inherit;
}
.jrt-when button:hover { border-color: #E92A2C; color: #202020; }
.jrt-when button.on { background: #202020; border-color: #202020; color: #fff; }
.jrt-m365 {
  margin: -8px 0 4px; padding: 9px 12px; border-left: 2px solid #E92A2C;
  background: #F7F7F7; font-size: 12.5px; color: #404040; line-height: 1.45;
}
.jrt-m365[hidden] { display: none; }
.jrt-msg { margin: 0 0 12px; font-size: 13px; color: #A71F23; }
.jrt-msg[hidden] { display: none; }
.jrt-actions {
  display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; align-items: center;
  border-top: 1px solid #ECECEC; padding-top: 20px;
}
.jrt-btn {
  height: 46px; padding: 0 26px; font-size: 12px; font-weight: 800;
  letter-spacing: 0.12em; text-transform: uppercase; font-family: inherit; cursor: pointer;
}
.jrt-btn.cancel { border: 1px solid #202020; background: #fff; color: #202020; }
.jrt-btn.cancel:hover { background: #202020; color: #fff; }
.jrt-btn.primary {
  position: relative; overflow: hidden; border: 0; color: #fff;
  background: linear-gradient(135deg, #E92A2C, #A71F23);
}
.jrt-btn.primary::before {
  content: ""; position: absolute; top: -12px; left: 10px; width: 26px; height: 70px;
  background: rgba(255, 255, 255, 0.18); transform: skewX(-26deg); pointer-events: none;
}
.jrt-btn.quiet { background: #fff; border: 1px solid #202020; color: #202020; }
.jrt-btn.quiet::before { display: none; }
.jrt-btn.quiet:hover { background: #202020; color: #fff; }
.jrt-btn:disabled { opacity: 0.6; cursor: default; }
.jrt-hist {
  background: #F4F4F4; border-top: 1px solid #E4E4E4; padding: 18px 28px 24px;
}
.jrt-hist[hidden] { display: none; }
.jrt-hist-hd {
  display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; align-items: baseline;
  margin-bottom: 10px;
}
.jrt-hist-hd h3 {
  margin: 0; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: #666;
}
.jrt-hist-hd .count { font-size: 11.5px; color: #8A8A8A; }
.jrt-hist-row { position: relative; padding: 9px 0 9px 22px; }
.jrt-hist-row::before {
  content: ""; position: absolute; left: 2px; top: 13px; width: 3px; height: 13px;
  background: #E92A2C; transform: skewX(-12deg);
}
.jrt-hist-when {
  font-size: 11.5px; letter-spacing: 0.06em; text-transform: uppercase; color: #404040;
}
.jrt-hist-badge {
  display: inline-block; margin-left: 8px; padding: 1px 6px; background: #E4E4E4; color: #555;
  font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 10.5px;
}
.jrt-hist-note { font-size: 13.5px; color: #202020; line-height: 1.45; overflow-wrap: anywhere; }
@media (max-width: 620px) {
  .jrt-card h2 { font-size: 26px; }
  .jrt-hd, .jrt-body, .jrt-hist { padding-left: 18px; padding-right: 18px; }
  .jrt-grid { grid-template-columns: 1fr; }
}
