/* Shared internal tabs + read/edit record — Client Account, Agent Profile
   (js/portal-record.js). Same language as the Owner Portal detail pages. */
.pr-tabs{ display:flex; gap:32px; border-bottom:1px solid var(--line, #e3ded3); overflow-x:auto; scrollbar-width:none; margin:0 0 40px; }
.pr-tabs::-webkit-scrollbar{ display:none; }
.pr-tab{ flex:none; display:inline-flex; align-items:baseline; gap:8px; background:none; border:0; border-bottom:2px solid transparent; margin-bottom:-1px; padding:12px 0; min-height:44px; font:12px var(--mono, ui-monospace, monospace); text-transform:uppercase; letter-spacing:.08em; color:var(--sage, #5f665c); cursor:pointer; white-space:nowrap; }
.pr-tab-n{ font-size:10px; opacity:.7; }
.pr-tab:hover{ color:var(--ink, #1c1c1a); }
.pr-tab.is-active{ color:var(--ink, #1c1c1a); border-bottom-color:var(--brass, #b08d57); }
.pr-tab:focus-visible{ outline:2px solid var(--brass, #b08d57); outline-offset:2px; }
.pr-panel > .vp-section:first-child, .pr-panel > :first-child{ margin-top:0; }
.pr-panel > * + *{ margin-top:64px; }
.pr-head{ display:flex; justify-content:space-between; align-items:center; gap:12px 24px; flex-wrap:wrap; margin-bottom:24px; }
.pr-head .vp-h2{ margin:0; }
.pr-actions{ display:flex; gap:12px; flex-wrap:wrap; }
.pr-note{ max-width:65ch; margin:0 0 24px; }
.pr-msg:empty{ display:none; }
.pr-msg.is-bad{ color:#9a3b2c; }
.pr-identity{ display:flex; align-items:center; gap:16px; margin:0 0 24px; min-width:0; }
.pr-identity b{ display:block; font:400 20px/1.3 var(--serif, Georgia, serif); color:var(--ink, #1c1c1a); overflow-wrap:anywhere; }
.pr-identity small{ display:block; font:13px/1.5 var(--sans, inherit); color:var(--sage, #5f665c); overflow-wrap:anywhere; }
.pr-rows{ border-top:1px solid var(--line, #e3ded3); }
.pr-row{ display:grid; grid-template-columns:minmax(12ch, 240px) minmax(0,1fr); gap:8px 24px; align-items:center; padding:12px 0; border-bottom:1px solid var(--line, #e3ded3); min-height:56px; box-sizing:border-box; }
.pr-row > *{ min-width:0; }
.pr-label{ font:10px var(--mono, ui-monospace, monospace); text-transform:uppercase; letter-spacing:.1em; color:var(--sage, #5f665c); }
.pr-value{ font:15px/1.5 var(--sans, inherit); color:var(--ink, #1c1c1a); overflow-wrap:anywhere; white-space:pre-line; }
.pr-row.is-static .pr-value{ color:var(--sage, #5f665c); }
.pr-input{ width:100%; box-sizing:border-box; min-height:44px; padding:10px 12px; font:15px var(--sans, inherit); color:var(--ink, #1c1c1a); background:transparent; border:1px solid var(--line, #e3ded3); border-radius:0; }
textarea.pr-input{ resize:vertical; line-height:1.5; }
.pr-input:focus{ outline:2px solid var(--brass, #b08d57); outline-offset:1px; }
.pr-control .cp-chip-group, .pr-control .pe-chip-group{ margin:0; }
.pr-control .cp-field, .pr-control .cp-address-field{ margin:0; }
.pr-control .cp-field label{ display:none; }
@media (max-width:767px){
  .pr-tabs{ gap:24px; margin-bottom:32px; }
  .pr-row{ grid-template-columns:minmax(0,1fr); gap:8px; }
  .pr-panel > * + *{ margin-top:40px; }
}
.pr-rows > .pr-group{ font:400 18px/1.3 var(--serif, Georgia, serif); color:var(--ink, #1c1c1a); margin:0; padding:32px 0 12px; border-bottom:1px solid var(--line, #e3ded3); }
.pr-rows > .pr-group:first-child{ padding-top:16px; }
.pr-rows:has(> .pr-group:first-child){ border-top:0; }

/* Requests (Client + Vendor portals) */
.pr-filters{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px 24px; align-items:end; margin:0 0 32px; }
.pr-filters .vp-pfield{ display:grid; gap:8px; min-width:0; }
.pr-filters select, .pr-filters input{ width:100%; min-height:44px; box-sizing:border-box; }
.cpr-form{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px 24px; max-width:880px; }
.cpr-form .vp-pfield{ display:grid; gap:8px; min-width:0; }
.cpr-form input, .cpr-form select, .cpr-form textarea{ width:100%; box-sizing:border-box; min-height:44px; padding:10px 12px; font:15px var(--sans, inherit); border:1px solid var(--line, #e3ded3); background:transparent; border-radius:0; color:var(--ink, #1c1c1a); }
.cpr-wide{ grid-column:1 / -1; }
.cpr-form-sec{ margin-bottom:48px; }
.cpr-action{ font:11px var(--mono, ui-monospace, monospace); text-transform:uppercase; letter-spacing:.08em; color:var(--sage, #5f665c); }
.cpr-action.is-warn{ color:#9a6a1c; }
.cpr-action.is-good{ color:#2f6b3f; }
.cpr-head-line{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:12px 0 0; }
.cpr-sub{ font:400 18px/1.3 var(--serif, Georgia, serif); margin:40px 0 12px; }
.cpr-scope, .cpr-msgtext{ white-space:pre-line; max-width:65ch; }
.cpr-tl{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line, #e3ded3); }
.cpr-tl li{ display:grid; grid-template-columns:140px minmax(0,1fr); gap:24px; padding:14px 0; border-bottom:1px solid var(--line, #e3ded3); }
.cpr-tl-date{ font:12px var(--mono, ui-monospace, monospace); color:var(--sage, #5f665c); }
.cpr-open{ font:12px var(--mono, ui-monospace, monospace); text-transform:uppercase; letter-spacing:.08em; }
.cpr-proj-actions{ margin-bottom:24px; }
@media (max-width:767px){
  .pr-filters, .cpr-form{ grid-template-columns:minmax(0,1fr); }
  .cpr-tl li{ grid-template-columns:minmax(0,1fr); gap:4px; }
}

/* Conversations (Communication Layer Phase 1 — js/conversation-view.js) */
.cv-list{ border-top:1px solid var(--line, #e3ded3); margin:0 0 24px; }
.cv-row{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 24px; width:100%; padding:18px 0; border:0; border-bottom:1px solid var(--line, #e3ded3); background:none; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.cv-row:hover b{ text-decoration:underline; }
.cv-row:focus-visible{ outline:2px solid var(--ink, #1c1c1a); outline-offset:2px; }
.cv-row-main{ display:grid; gap:4px; min-width:0; }
.cv-row-main b{ font-weight:400; font-size:17px; overflow-wrap:anywhere; }
.cv-row-main small, .cv-row-end small{ color:var(--sage, #5f665c); font-size:13px; overflow-wrap:anywhere; }
.cv-last{ color:var(--sage, #5f665c); font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cv-row-end{ display:grid; justify-items:end; align-content:start; gap:6px; }
.cv-kind{ font:11px var(--mono, ui-monospace, monospace); text-transform:uppercase; letter-spacing:.08em; color:var(--sage, #5f665c); }
.cv-unread{ display:inline-grid; place-items:center; min-width:22px; height:22px; padding:0 6px; border-radius:11px; background:var(--ink, #1c1c1a); color:var(--paper, #f4f1ea); font:600 12px/1 var(--sans, inherit); }
.cv-convo{ display:grid; gap:16px; max-width:880px; }
.cv-back{ justify-self:start; background:none; border:0; padding:0; cursor:pointer; }
.cv-head h2{ margin:4px 0; overflow-wrap:anywhere; }
.cv-context, .cv-people{ margin:0; color:var(--sage, #5f665c); font-size:14px; overflow-wrap:anywhere; }
.cv-thread{ display:grid; gap:12px; max-height:60vh; overflow-y:auto; padding:4px 0; border-top:1px solid var(--line, #e3ded3); border-bottom:1px solid var(--line, #e3ded3); }
.cv-msg{ max-width:min(560px, 92%); padding:12px 14px; border:1px solid var(--line, #e3ded3); justify-self:start; }
.cv-msg.is-mine{ justify-self:end; background:rgba(0,0,0,.03); }
.cv-msg p{ margin:4px 0 0; white-space:pre-line; overflow-wrap:anywhere; }
.cv-msg-meta{ font:11px var(--mono, ui-monospace, monospace); letter-spacing:.04em; color:var(--sage, #5f665c); }
.cv-compose{ display:grid; gap:8px; }
.cv-compose textarea{ width:100%; box-sizing:border-box; min-height:88px; padding:10px 12px; font:15px var(--sans, inherit); border:1px solid var(--line, #e3ded3); background:transparent; color:var(--ink, #1c1c1a); border-radius:0; resize:vertical; }
.cv-compose-row{ display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.cv-msg-status{ color:#9a6a1c; font-size:13px; }
@media (max-width:767px){ .cv-row{ grid-template-columns:minmax(0,1fr); } .cv-row-end{ justify-items:start; grid-auto-flow:column; justify-content:start; align-items:center; } }

/* Requests workspace — one layout for Client, Agent, Vendor and Owner
   (the Client Requests page is the reference): header, filter row,
   result count, list rows. Selectors carry enough weight to win over each
   portal's own form styles so the four pages render identically. */
.pr-filters .vp-pfield > span{ font:10px var(--mono, ui-monospace, monospace); text-transform:uppercase; letter-spacing:.08em; color:var(--sage, #5f665c); }
.pr-filters .vp-pfield select, .pr-filters .vp-pfield input{ box-sizing:border-box; width:100%; height:44px; min-height:44px; margin:0; padding:10px 12px; font:14px/20px var(--sans, inherit); color:var(--ink, #1c1c1a); background-color:transparent; border:1px solid var(--line, #d9d4c9); border-radius:3px; }
.pr-filters .vp-pfield select{ padding-right:34px; -webkit-appearance:none; appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--ink, #1c1c1a) 50%),linear-gradient(135deg,var(--ink, #1c1c1a) 50%,transparent 50%); background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%; background-size:5px 5px; background-repeat:no-repeat; }
.pr-filters .vp-pfield select:focus-visible, .pr-filters .vp-pfield input:focus-visible{ outline:2px solid var(--brass, #b09a6d); outline-offset:1px; }
.pr-filters .pr-grow{ grid-column:span 2; }
.pr-count{ font:12px var(--mono, ui-monospace, monospace); text-transform:uppercase; letter-spacing:.08em; color:var(--sage, #5f665c); margin:0 0 16px; }
.rq-list{ border-top:1px solid var(--line, #e3ded3); }
.rq-row{ display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) auto; gap:6px 24px; align-items:center; padding:20px 0; border-bottom:1px solid var(--line, #e3ded3); color:inherit; text-decoration:none; }
a.rq-row:hover .rq-title{ text-decoration:underline; text-underline-offset:3px; }
a.rq-row:focus-visible{ outline:2px solid var(--brass, #b09a6d); outline-offset:4px; }
.rq-main{ display:grid; gap:4px; min-width:0; }
.rq-title{ font:400 17px/1.3 var(--serif, Georgia, serif); color:var(--ink, #1c1c1a); overflow-wrap:anywhere; }
.rq-sub, .rq-meta{ font:13px/1.5 var(--sans, inherit); color:var(--sage, #5f665c); overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.rq-meta b{ font-weight:400; color:var(--ink, #1c1c1a); }
.rq-end{ display:grid; justify-items:end; gap:6px; }
.rq-end .vp-status{ white-space:nowrap; }
@media (max-width:1023px){ .pr-filters{ grid-template-columns:repeat(2, minmax(0,1fr)); } .pr-filters .pr-grow{ grid-column:1 / -1; } }
@media (max-width:767px){
  .pr-filters{ grid-template-columns:minmax(0,1fr); }
  .rq-row{ grid-template-columns:minmax(0,1fr); gap:8px; }
  .rq-end{ justify-items:start; grid-auto-flow:column; justify-content:start; align-items:center; gap:12px; }
}
