/* Owner Portal Phase 1 workspace (js/owner-workspace.js) — additions on
   top of css/portal-shell.css + css/agent-workspace.css; spacing comes
   from css/portal-layout-standard.css. */
.ow .vp-nav a{ gap:12px; }
.ow-nav-soon{ margin-left:auto; font:9px var(--mono); text-transform:uppercase; letter-spacing:.1em; color:var(--sage); opacity:.8; white-space:nowrap; }
.ow .vp-nav a.is-active .ow-nav-soon{ color:var(--ink); }
.ow-stats{ grid-template-columns:repeat(3, minmax(0,1fr)) !important; }
.ow .aw-row.ow-attn{ grid-template-columns:minmax(0,1fr) 180px 112px; }
.ow .aw-row.ow-attn .aw-row-meta{ text-align:right; }
.ow #ow-home > .ow-stats + *{ margin-top:var(--lps-section, 64px); }
.ow .aw-row.ow-stage{ grid-template-columns:minmax(0,1fr) auto; }
.ow-count{ font:400 22px/1 var(--serif); font-variant-numeric:tabular-nums; }
.ow .aw-row.ow-project{ grid-template-columns:minmax(0,1.6fr) minmax(200px,1fr) 140px; }
.ow-progress{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 12px; align-items:center; }
.ow-progress-stage{ grid-column:1 / -1; font:13px var(--sans); color:var(--ink); }
.ow-progress-pct{ min-width:4ch; text-align:right; font:12px var(--sans); color:var(--sage); font-variant-numeric:tabular-nums; }
.ow-bar{ display:block; height:4px; background:var(--line); border-radius:2px; overflow:hidden; }
.ow-bar i{ display:block; height:100%; background:var(--ink); }
.ow .aw-row.ow-project .aw-row-meta{ text-align:right; }
.ow-actions{ margin-top:24px; justify-content:flex-start !important; }
@media (max-width:1023px){ .ow .aw-row.ow-project{ grid-template-columns:minmax(0,1fr) minmax(180px,1fr); } .ow .aw-row.ow-project .aw-row-meta{ grid-column:1 / -1; text-align:left; } }
@media (max-width:767px){
  .ow-stats{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; }
  .ow .aw-row.ow-attn, .ow .aw-row.ow-project{ grid-template-columns:minmax(0,1fr); }
  .ow .aw-row.ow-attn .aw-row-meta{ text-align:left; }
  .ow .aw-row.ow-project .aw-row-meta{ text-align:left; }
}

/* ---------------- Phase 2: Projects + Requests ---------------- */
.ow-link{ font:11px var(--mono); text-transform:uppercase; letter-spacing:.08em; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--ink); padding-bottom:2px; white-space:nowrap; }
.ow-link:hover{ color:var(--brass); border-color:var(--brass); }
.ow-break{ overflow-wrap:anywhere; }
.ow-t1{ display:block; font:400 17px/1.3 var(--serif); color:var(--ink); overflow-wrap:anywhere; }
.ow-t2{ display:block; font:13px/1.5 var(--sans); color:var(--sage); overflow-wrap:anywhere; }
.ow-t3{ display:block; font:14px/1.45 var(--sans); color:var(--ink); overflow-wrap:anywhere; }
.ow-stage-line{ font:10px var(--mono); text-transform:uppercase; letter-spacing:.1em; color:var(--sage); margin:16px 0 0; }
.ow-count-line{ font:12px var(--mono); text-transform:uppercase; letter-spacing:.08em; color:var(--sage); margin:0 0 16px; }

/* Filters */
.ow-field{ display:grid; gap:8px; min-width:0; }
.ow-field > span{ font:10px var(--mono); text-transform:uppercase; letter-spacing:.1em; color:var(--sage); }
.ow-field input, .ow-field select, .ow-field textarea{ width:100%; box-sizing:border-box; min-height:44px; padding:10px 12px; font:14px var(--sans); color:var(--ink); background:transparent; border:1px solid var(--line); border-radius:3px; }
.ow-field textarea{ min-height:88px; resize:vertical; line-height:1.5; }
.ow-field input:focus-visible, .ow-field select:focus-visible, .ow-field textarea:focus-visible{ outline:2px solid var(--brass); outline-offset:1px; }
.ow-check{ display:flex; gap:12px; align-items:center; font:14px var(--sans); color:var(--ink); min-height:44px; }
.ow-check input{ width:18px; height:18px; }

/* Table (rows are links; stacks on mobile) */
.ow-table{ border-top:1px solid var(--line); }
.ow-tr{ display:grid; gap:8px 24px; align-items:center; padding:20px 0; border-bottom:1px solid var(--line); color:var(--ink); text-decoration:none; min-height:64px; box-sizing:border-box; }
.ow-tr > *{ min-width:0; }
a.ow-tr:hover .ow-t1{ text-decoration:underline; text-underline-offset:3px; }
a.ow-tr:focus-visible, a.ow-rowlink:focus-visible{ outline:2px solid var(--brass); outline-offset:4px; }
.ow-th{ padding:12px 0; min-height:0; font:10px var(--mono); text-transform:uppercase; letter-spacing:.1em; color:var(--sage); }
.ow-proj{ grid-template-columns:minmax(0,2.2fr) minmax(170px,1.3fr) minmax(0,1.5fr) minmax(90px,.8fr) 110px; }
.ow-req{ grid-template-columns:minmax(0,2fr) minmax(0,1.5fr) minmax(0,1.4fr) 170px 110px; }
.ow-prog{ display:grid; grid-template-columns:minmax(0,1fr) 4ch; gap:6px 10px; align-items:center; }
.ow-prog .ow-t3{ grid-column:1 / -1; font-size:13px; }
.ow-pct{ font:12px var(--sans); color:var(--sage); text-align:right; font-variant-numeric:tabular-nums; }
.ow-pager{ display:flex; gap:16px; align-items:center; justify-content:flex-end; margin-top:24px; font:13px var(--sans); color:var(--sage); }

/* Workspace */
.ow-tabs{ overflow-x:auto; max-width:none; gap:8px; margin:0 0 8px; }
.ow-tabs .vp-tab{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:14px 16px 16px; text-decoration:none; white-space:nowrap; }
.ow-tabs .vp-tab:first-child{ padding-left:0; }
.ow-tab-n{ font-size:9px; opacity:.8; }
#owp-tab{ margin-top:40px; }
.ow-tab-head{ display:flex; justify-content:space-between; align-items:center; gap:16px 24px; flex-wrap:wrap; margin:0 0 40px; }
.ow .aw-row.ow-rel{ grid-template-columns:120px minmax(0,1fr) auto; align-items:center; }
.ow-rel-k{ font:10px var(--mono); text-transform:uppercase; letter-spacing:.1em; color:var(--sage); }
.ow-rel-v{ min-width:0; font:15px/1.45 var(--sans); color:var(--ink); }
.ow .aw-row.ow-pay, .ow .aw-row.ow-rec, .ow .aw-row.ow-rv{ grid-template-columns:minmax(0,1fr) minmax(120px,auto) auto; align-items:center; }
a.ow-rowlink{ color:var(--ink); text-decoration:none; }
a.ow-rowlink:hover .ow-t1{ text-decoration:underline; text-underline-offset:3px; }
.ow-actions-cell{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:flex-end; }

/* Forms */
.ow-form{ display:grid; gap:24px; max-width:720px; }
.ow-form.ow-inline{ grid-template-columns:minmax(0,1fr) auto; align-items:end; max-width:none; margin-top:32px; }
.ow-form.ow-inline .ow-form-actions{ margin:0; }
.ow-subform{ margin-top:48px; padding-top:32px; border-top:1px solid var(--line); }
.ow-h3{ font:400 17px var(--serif); margin:0; }
.ow-form-actions{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.ow-danger{ color:#9a3b2c !important; border-color:#c9897c !important; }
.ow-msg{ margin:0; min-height:1.6em; }
.ow-msg.is-good{ color:#3f6b3a; }
.ow-msg.is-bad{ color:#9a3b2c; }
.ow-prose{ font:15px/1.7 var(--sans); max-width:65ch; margin:0; white-space:pre-wrap; }

/* Timeline + messages */
.ow-tl{ list-style:none; margin:32px 0 0; padding:0; border-top:1px solid var(--line); }
.ow-tl li{ display:grid; grid-template-columns:14px minmax(0,1fr) auto; gap:16px; align-items:center; min-height:52px; padding:12px 0; border-bottom:1px solid var(--line); }
.ow-tl-dot{ width:10px; height:10px; border-radius:50%; border:1px solid var(--sage); }
.ow-tl li.is-completed .ow-tl-dot{ background:var(--ink); border-color:var(--ink); }
.ow-tl li.is-current .ow-tl-dot{ background:var(--brass); border-color:var(--brass); }
.ow-tl li.is-current .ow-t3{ font-weight:600; }
.ow-thread{ display:flex; flex-direction:column; gap:12px; }
.ow-msgbox{ max-width:620px; padding:14px 16px; border:1px solid var(--line); }
.ow-msgbox.is-2s{ align-self:flex-end; background:rgba(0,0,0,.03); }
.ow-msgbox p{ margin:6px 0 0; font:14px/1.6 var(--sans); white-space:pre-wrap; overflow-wrap:anywhere; }
.ow-msg-meta{ font:10px var(--mono); text-transform:uppercase; letter-spacing:.08em; color:var(--sage); }

/* Embedded project editor */
.ow-editor{ margin-top:24px; }
.ow-editor-bar{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin:0 0 24px; position:relative; }

@media (max-width:1199px){
  .ow-proj{ grid-template-columns:minmax(0,2fr) minmax(160px,1.2fr) minmax(0,1.4fr) 100px; }
  .ow-proj > :nth-child(4){ display:none; }
  .ow-req{ grid-template-columns:minmax(0,2fr) minmax(0,1.5fr) 160px 100px; }
  .ow-req > :nth-child(3){ display:none; }
}
@media (max-width:767px){
  .ow-th{ display:none; }
  .ow-proj, .ow-req{ grid-template-columns:minmax(0,1fr); gap:10px; }
  .ow-proj > :nth-child(4), .ow-req > :nth-child(3){ display:block; }
  .ow .aw-row.ow-rel{ grid-template-columns:minmax(0,1fr); gap:6px; }
  .ow .aw-row.ow-pay, .ow .aw-row.ow-rec, .ow .aw-row.ow-rv{ grid-template-columns:minmax(0,1fr); gap:10px; }
  .ow-actions-cell{ justify-content:flex-start; }
  .ow-form.ow-inline{ grid-template-columns:minmax(0,1fr); }
  .ow-tl li{ grid-template-columns:14px minmax(0,1fr); }
  .ow-tl li > :last-child{ grid-column:2; }
  #owp-tab{ margin-top:32px; }
}
/* Header → first block inside the Project / Request workspaces */
#owp-ws > .aw-head + *, #owr-ws > .aw-head + *{ margin-top:var(--lps-header, 48px); }
#owr-ws > .vp-section + .vp-section{ margin-top:var(--lps-section, 64px); }

/* ---------------- Phase 3: Finance ---------------- */
.owf-tiles{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); margin-bottom:var(--lps-section, 64px); }
.owf-tile{ display:grid; align-content:start; gap:10px; padding:24px; min-height:136px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); color:var(--ink); text-decoration:none; min-width:0; }
a.owf-tile:hover{ background:rgba(0,0,0,.025); }
a.owf-tile:focus-visible{ outline:2px solid var(--brass); outline-offset:-2px; }
.owf-tile-k{ font:10px var(--mono); text-transform:uppercase; letter-spacing:.1em; color:var(--sage); }
.owf-tile-v{ font:400 26px/1.1 var(--serif); font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.owf-num{ font-variant-numeric:tabular-nums; }
.owf-ref{ font-family:var(--mono); font-size:11px; letter-spacing:.02em; }
a.owf-a{ text-decoration:none; color:var(--ink); }
a.owf-a:hover{ text-decoration:underline; text-underline-offset:3px; }
.owf-ord{ grid-template-columns:minmax(0,1.6fr) minmax(0,1.3fr) 120px 110px minmax(0,1.5fr); }
.owf-rev{ grid-template-columns:minmax(0,1.6fr) minmax(0,1.4fr) minmax(0,1.2fr) 120px 130px; }
.owf-earn{ grid-template-columns:minmax(0,1.3fr) minmax(0,1.8fr) 110px 120px minmax(170px,1.1fr); }
.owf-act{ justify-content:flex-start; }
.owf-table .ow-tr{ align-items:start; }
.owf-table .ow-tr > span > .vp-status{ margin-bottom:6px; }
#owf-panel{ margin-top:40px; }
@media (max-width:1199px){
  .owf-tiles{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .owf-ord{ grid-template-columns:minmax(0,1.5fr) minmax(0,1.2fr) 110px 110px; }
  .owf-ord > :nth-child(5){ grid-column:1 / -1; }
  .owf-rev{ grid-template-columns:minmax(0,1.5fr) minmax(0,1.3fr) 110px 120px; }
  .owf-rev > :nth-child(3){ display:none; }
  .owf-earn{ grid-template-columns:minmax(0,1.2fr) minmax(0,1.5fr) 100px 110px; }
  .owf-earn > :nth-child(5){ grid-column:1 / -1; }
  .owf-table .ow-th > :nth-child(5){ display:none; }
}
@media (max-width:767px){
  .owf-tiles{ grid-template-columns:minmax(0,1fr); }
  .owf-tile{ min-height:0; padding:20px; }
  .owf-ord, .owf-rev, .owf-earn{ grid-template-columns:minmax(0,1fr); gap:8px; }
  .owf-rev > :nth-child(3){ display:block; }
  #owf-panel{ margin-top:32px; }
}

/* Phase 4 — 04 Clients / 05 Agents */
.owp-cl{ grid-template-columns:minmax(0,1.6fr) minmax(0,1.6fr) minmax(0,1.1fr) minmax(0,1.1fr) 110px; }
.owp-ag{ grid-template-columns:minmax(0,1.8fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) 120px; }
.owp-prog{ min-width:0; }
.owp-legacy{ padding:12px 16px; border:1px dashed var(--line); margin:0 0 32px; }
@media (max-width:1023px){ .owp-cl, .owp-ag{ grid-template-columns:minmax(0,1.6fr) minmax(0,1.4fr) minmax(0,1fr) 110px; } .owp-cl > :nth-child(5), .owp-ag > :nth-child(4){ display:none; } }
@media (max-width:767px){ .owp-cl, .owp-ag{ grid-template-columns:minmax(0,1fr); gap:10px; } .owp-cl > :nth-child(5), .owp-ag > :nth-child(4){ display:block; } }
.owp-tab{ margin-top:40px; }

/* Phase 5 — 06 Vendors / 07 Catalog */
.owv-vl{ grid-template-columns:minmax(0,1.6fr) minmax(0,1.6fr) minmax(0,1fr) minmax(0,1.2fr) 130px; }

.owv-prod{ display:grid; grid-template-columns:48px minmax(0,1fr); gap:16px; align-items:center; min-width:0; }
.owv-prod img, .owv-noimg{ width:48px; height:48px; object-fit:cover; display:block; background:rgba(0,0,0,.05); }
.owv-head{ align-items:flex-start; }
.owv-cover{ width:120px; height:120px; object-fit:cover; display:block; flex:none; }
.owv-stats{ grid-template-columns:repeat(3, minmax(0,1fr)) !important; margin-bottom:64px; }
.owv-lede{ max-width:65ch; margin:0 0 48px; }
.owv-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.owv-chip{ font:12px var(--mono); letter-spacing:.04em; padding:6px 10px; border:1px solid var(--line); }
.owv-photos{ display:grid; grid-template-columns:repeat(auto-fill, minmax(160px,1fr)); gap:24px; margin-bottom:32px; }
.owv-photo{ margin:0; display:grid; gap:8px; min-width:0; }
.owv-photo img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.owv-photo figcaption{ display:flex; gap:16px; flex-wrap:wrap; align-items:center; }
.owv-link{ background:none; border:0; padding:4px 0; min-height:32px; font:13px var(--sans); color:var(--ink); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.ow-danger-link{ color:#9a3b2c; }
.owv-row-actions{ display:flex; gap:16px; flex-wrap:wrap; justify-content:flex-end; }
.owv-cov{ display:grid; gap:32px; }
.owv-cov-group{ border:0; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:12px 24px; min-width:0; }
.owv-cov-group legend{ font:12px var(--mono); text-transform:uppercase; letter-spacing:.08em; color:var(--sage); padding:0; margin-bottom:16px; width:100%; }
.owv-cov-opt{ display:inline-flex; gap:8px; align-items:center; min-height:44px; font:15px var(--sans); }
.owv-offer{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px 24px; padding-bottom:32px; border-bottom:1px solid var(--line); margin-bottom:32px; }
.owv-offer legend{ grid-column:1 / -1; }
.owv-offer-cov{ grid-column:1 / -1; }
.owv-job{ padding:24px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:32px 0; display:grid; gap:8px; }
.owv-hist{ margin:32px 0 64px; }
.owv-hist summary{ cursor:pointer; font:12px var(--mono); text-transform:uppercase; letter-spacing:.08em; min-height:44px; display:flex; align-items:center; }
.owv-json{ font:12px/1.5 var(--mono); white-space:pre-wrap; overflow-wrap:anywhere; max-height:360px; overflow:auto; margin:0; padding:16px; border:1px solid var(--line); }
.owv-inline-select{ min-height:40px; font:13px var(--sans); max-width:100%; }
.ow-check{ display:flex; gap:8px; align-items:center; min-height:44px; font:15px var(--sans); }
.ow-field-wide{ grid-column:1 / -1; }
@media (max-width:1023px){ .owv-vl{ grid-template-columns:minmax(0,1.6fr) minmax(0,1.5fr) minmax(0,1.1fr) 130px; } .owv-vl > :nth-child(3){ display:none; } .owv-stats{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; } }
@media (max-width:767px){
  .owv-vl{ grid-template-columns:minmax(0,1fr); gap:10px; } .owv-vl > :nth-child(3){ display:block; }
  .owv-head{ flex-direction:column; } .owv-cover{ width:96px; height:96px; }
  .owv-offer{ grid-template-columns:minmax(0,1fr); }
  .owv-row-actions{ justify-content:flex-start; }
}
.owv-block{ margin-top:64px; }
@media (max-width:1023px){ .owv-block{ margin-top:48px; } }
@media (max-width:767px){ .owv-block{ margin-top:40px; } }

/* Project Overview — compact administrative tabs (Details / Showcase / Danger zone) */
.owp-admin-tabs{ position:relative; display:flex; gap:32px; border-bottom:1px solid var(--line); overflow-x:auto; scrollbar-width:none; margin:0 0 32px; }
.owp-admin-tabs::-webkit-scrollbar{ display:none; }
.owp-admin-tab{ flex:none; background:none; border:0; border-bottom:2px solid transparent; margin-bottom:-1px; padding:12px 0; min-height:44px; font:12px var(--mono); text-transform:uppercase; letter-spacing:.08em; color:var(--sage); cursor:pointer; white-space:nowrap; }
.owp-admin-tab:hover{ color:var(--ink); }
.owp-admin-tab.is-active{ color:var(--ink); border-bottom-color:var(--brass); }
.owp-admin-tab.is-danger.is-active{ color:#9a3b2c; border-bottom-color:#9a3b2c; }
.owp-admin-tab:focus-visible{ outline:2px solid var(--brass); outline-offset:2px; }
.owp-admin-panel[hidden]{ display:none; }
.owp-admin-panel > .vp-note{ max-width:65ch; margin:0 0 24px; }
.ow-form.owp-admin-form{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px 24px; max-width:none; }
.owp-admin-form > *{ min-width:0; margin:0; }
.owp-admin-form .owp-wide{ grid-column:1 / -1; }
.owp-admin-form .ow-form-actions{ margin-top:8px; }
.owp-danger-title{ font:inherit; font-family:var(--serif, inherit); font-size:20px; margin:0 0 12px; color:#9a3b2c; }
.owp-admin-panel #owp-delete{ margin-top:8px; }
@media (max-width:767px){
  .owp-admin-tabs{ gap:24px; }
  .ow-form.owp-admin-form{ grid-template-columns:minmax(0,1fr); }
}

/* Owner Client / Agent Profile — one record, read mode ↔ edit mode */
.owi-head{ display:flex; justify-content:space-between; align-items:center; gap:12px 24px; flex-wrap:wrap; margin-bottom:24px; }
.owi-head .vp-h2{ margin:0; }
.owi-actions{ display:flex; gap:12px; flex-wrap:wrap; }
.owi-profile > .vp-note, .owi-profile form > .vp-note{ max-width:65ch; margin:0 0 24px; }
.owi-profile .ow-msg:empty{ display:none; }
.owi-rows{ border-top:1px solid var(--line); }
.owi-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); min-height:64px; box-sizing:border-box; }
.owi-row > *{ min-width:0; }
.owi-row input, .owi-row select, .owi-row textarea{ width:100%; box-sizing:border-box; min-height:44px; padding:10px 12px; font:15px var(--sans); color:var(--ink); background:transparent; border:1px solid var(--line); border-radius:0; }
.owi-row textarea{ resize:vertical; }
.owi-row input:focus, .owi-row select:focus, .owi-row textarea:focus{ outline:2px solid var(--brass); outline-offset:1px; }
.owi-row.is-static .vp-fact-value{ text-align:left; color:var(--sage); }
@media (max-width:767px){ .owi-row{ grid-template-columns:minmax(0,1fr); gap:8px; } }

/* Vendor workspace — secondary tabs (same pattern as Project Overview) */
.owv-sub .owp-admin-panel > .owv-sp-note{ max-width:65ch; margin:0 0 24px; }
.owv-subhead{ font-family:var(--serif, inherit); font-weight:400; font-size:18px; margin:48px 0 12px; }
.owv-sub .owv-photos{ margin-top:0; }
.owi-row .ow-check{ justify-content:flex-start; min-height:44px; }
.owi-row input[type=checkbox]{ width:auto; min-height:0; padding:0; flex:none; }

/* ------------------------------------------------------------------
   Owner filter bar — ONE shared Search / Filter / Sort composition for
   every Owner list (Projects, Requests, Clients, Agents, Vendors,
   Catalog, Finance). Markup: <form class="ow-filters"> with an optional
   search field (.ow-field.ow-field-grow) first, then select fields
   (.ow-field) in order, Sort last. The bar spans the full content column
   (same edges as the count line and the list below) and recomposes from
   its OWN width (container query) and its number of controls (:has):
     wide   ≥ 960px  one row — every select 2/12, Search takes the rest
     medium 560–959  Search on its own row, selects as equal columns below
                      (Search + one select stay on one row: 8/12 + 4/12)
     narrow < 560    everything stacked, full width
   ------------------------------------------------------------------ */
.ow-filters{ container-type:inline-size; display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); column-gap:24px; row-gap:16px; align-items:end; margin:0 0 32px; }
.ow-filters > *{ grid-column:span 12; min-width:0; margin:0; }
.ow-filters .ow-field{ gap:8px; align-content:end; }
.ow-filters .ow-field > span{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ow-filters .ow-field input, .ow-filters .ow-field select{ height:44px; min-height:44px; padding:0 12px; font:14px var(--sans); line-height:42px; border-radius:0; -webkit-appearance:none; appearance:none; text-overflow:ellipsis; }
.ow-filters .ow-field select{ padding-right:36px; background-image:linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position:calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size:5px 5px, 5px 5px; background-repeat:no-repeat; cursor:pointer; }
.ow-filters .ow-field input[type=search]::-webkit-search-decoration{ -webkit-appearance:none; }
@container (min-width:560px){
  /* every select 3/12 (a quarter of the bar) on every page; Search keeps its own row */
  .ow-filters:not(:has(> :nth-child(99))) > .ow-field:not(.ow-field-grow){ grid-column:span 3; }
  .ow-filters:not(:has(> :nth-child(3))) > .ow-field-grow{ grid-column:span 9; }       /* Search + 1: one row */
}
@container (min-width:960px){
  /* every select 2/12 — specificity matches the count rules above so it wins here */
  .ow-filters:not(:has(> :nth-child(99))) > .ow-field:not(.ow-field-grow){ grid-column:span 2; }
  .ow-filters > .ow-field-grow{ grid-column:span 4; }                                  /* Search + 4 */
  .ow-filters:not(:has(> :nth-child(5))) > .ow-field-grow{ grid-column:span 6; }       /* Search + 3 */
  .ow-filters:not(:has(> :nth-child(4))) > .ow-field-grow{ grid-column:span 8; }       /* Search + 2 */
  .ow-filters:not(:has(> :nth-child(3))) > .ow-field-grow{ grid-column:span 10; }      /* Search + 1 */
}

/* Catalog Product Detail — compact product workspace */
.owp-prod-meta{ margin:8px 0 0; }
.owp-prod-images{ display:grid; gap:24px; }
.owv-thumbs{ display:flex; gap:16px; overflow-x:auto; padding-bottom:4px; scrollbar-width:thin; min-width:0; }
.owv-thumb{ flex:none; width:136px; margin:0; display:grid; gap:8px; }
.owv-thumb img{ width:136px; height:102px; object-fit:cover; display:block; background:rgba(0,0,0,.05); }
.owv-thumb figcaption{ display:flex; }
.owp-prod-images .ow-form.ow-inline{ margin-top:0; }
.ow-form.owp-prod-grid{ gap:16px 24px; }
.owp-prod-form .owv-sub{ margin-bottom:0; }
.owp-prod-save{ margin-top:32px; }
.owp-prod-save[hidden]{ display:none; }
.owp-prod-save .ow-form-actions{ margin:0; }

/* Catalog product rows — Product | Vendor | Base price | Our price | Discount | Profit | Status */
.ow-tr.owv-pl{ grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) repeat(4, 100px) 128px; column-gap:16px; }
.owv-money{ text-align:right; font-variant-numeric:tabular-nums; }
.owv-money .ow-t3{ white-space:nowrap; }
.owv-our .ow-t3{ font-weight:600; }
.owv-pl-second{ display:none; }
.owv-pl-status{ justify-self:end; }
.ow-th.owv-pl > :last-child{ text-align:right; }
@media (max-width:1199px){
  .ow-th.owv-pl{ display:none; }
  .ow-tr.owv-pl{ grid-template-columns:repeat(4, minmax(0,1fr)) auto; row-gap:16px; }
  .owv-pl .owv-prod{ grid-column:1 / -1; }
  .owv-pl-col2{ display:none; }
  .owv-pl-second{ display:block; }
  .owv-money{ text-align:left; }
  .owv-money::before{ content:attr(data-label); display:block; font:10px var(--mono); text-transform:uppercase; letter-spacing:.1em; color:var(--sage); margin-bottom:4px; }
  .owv-pl-status{ align-self:end; }
}
@media (max-width:767px){
  .ow-tr.owv-pl{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .owv-pl-status{ grid-column:1 / -1; justify-self:start; }
}
/* Product Detail — derived pricing summary above the pricing fields */
.owp-price-sum{ margin:0 0 32px; }
.owp-price-sum .aw-facts{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); column-gap:32px; }
.owp-price-sum .vp-note{ max-width:65ch; margin:12px 0 0; }
@media (max-width:767px){ .owp-price-sum .aw-facts{ grid-template-columns:minmax(0,1fr); } }
/* both summary columns start on one shared top rule */
.owp-price-sum .aw-facts .vp-fact{ max-width:none; }
.owp-price-sum .aw-facts .vp-fact:nth-child(-n+2){ border-top:1px solid var(--line); }
@media (max-width:767px){ .owp-price-sum .aw-facts .vp-fact:nth-child(2){ border-top:0; } }

/* Profile photo in the Owner Client / Agent Profile record */
.owi-identity{ margin:0 0 24px; }
.owi-photo-row{ align-items:center; }

/* Vendor 05 Partnership — one compact workspace (terms grid, coverage rows). */
.owv-terms-grid{ display:grid; border-top:1px solid var(--line); }
.owv-terms-row{ display:grid; grid-template-columns:minmax(160px,1.1fr) 1fr 1fr; gap:8px 16px; align-items:end; padding:10px 0; border-bottom:1px solid var(--line); }
.owv-terms-row .ow-field{ margin:0; }
.owv-terms-cat{ display:grid; gap:2px; align-self:center; }
.owv-terms .ow-form-actions{ margin-top:12px; }
#owv-pcovs{ display:grid; border-top:1px solid var(--line); }
.owv-pcov{ display:grid; gap:8px; padding:12px 0; border-bottom:1px solid var(--line); min-width:0; }
.owv-pcov-head{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; }
.owv-pcov-edit{ margin-left:auto; }
.owv-pcov-g{ display:grid; grid-template-columns:150px minmax(0,1fr); gap:4px 12px; align-items:baseline; }
.owv-pcov-g > .owv-chips:only-child{ grid-column:1 / -1; }
.owv-pcov-gl{ font:10px var(--mono, monospace); text-transform:uppercase; letter-spacing:.08em; color:var(--sage); }
.owv-pcov .owv-cov{ display:grid; gap:10px; }
.owv-info-h{ margin:8px 0 10px; }
@media (max-width:720px){
  .owv-terms-row{ grid-template-columns:1fr 1fr; }
  .owv-terms-cat{ grid-column:1 / -1; }
  .owv-pcov-g{ grid-template-columns:1fr; }
}
@media (max-width:420px){ .owv-terms-row{ grid-template-columns:1fr; } }
.owv-pstatus .aw-facts{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 20px; }
.owv-pstatus .vp-fact{ display:grid; gap:4px; justify-content:start; }
.owv-pstatus .vp-fact-value{ text-align:left; }
@media (max-width:720px){ .owv-pstatus .aw-facts{ grid-template-columns:1fr 1fr; } }
.owv-pstatus .vp-fact:first-child{ border-top:0; }

/* Vendor workspace — header (identity | status + metrics), light primary nav,
   page heading above page-level tabs. */
.owv-hd{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px 48px; align-items:end; padding-bottom:24px; }
.owv-hd .vp-title{ margin:6px 0 8px; }
.owv-hd-cat{ margin:0; font:15px/1.5 var(--sans); color:var(--sage); }
.owv-hd-m{ display:grid; grid-template-columns:repeat(3,auto); gap:0 32px; margin:0; justify-content:end; }
.owv-hd-m > div{ display:grid; gap:6px; align-content:start; min-width:0; }
.owv-hd-m dt{ font:10px var(--mono); text-transform:uppercase; letter-spacing:.1em; color:var(--sage); }
.owv-hd-m dd{ margin:0; font:20px/1.2 var(--serif, Georgia, serif); color:var(--ink); font-variant-numeric:tabular-nums; }
.owv-hd-status{ position:relative; }
.owv-st-btn{ display:inline-flex; align-items:center; gap:8px; min-height:36px; padding:2px 10px; font:inherit; color:var(--ink); background:transparent; border:1px solid var(--line); border-radius:3px; cursor:pointer; }
.owv-st-btn:hover, .owv-st-btn[aria-expanded="true"]{ border-color:var(--ink); }
.owv-st-btn:focus-visible{ outline:2px solid var(--brass); outline-offset:2px; }
.owv-st-caret{ font-size:12px; color:var(--sage); }
.owv-st-pop{ position:absolute; z-index:20; top:calc(100% + 6px); right:0; width:240px; background:var(--ivory); border:1px solid var(--ink); border-radius:3px; padding:10px; box-shadow:0 8px 24px rgba(0,0,0,.08); }
.owv-st-note{ margin:0 0 8px; font:12px/1.4 var(--sans); color:var(--sage); }
.owv-st-pop ul{ list-style:none; margin:0; padding:0; display:grid; }
.owv-st-pop button{ width:100%; text-align:left; min-height:36px; padding:6px 8px; font:14px var(--sans); color:var(--ink); background:none; border:0; border-radius:2px; cursor:pointer; }
.owv-st-pop button:hover, .owv-st-pop button:focus-visible{ background:var(--line); outline:none; }
.owv-st-pop button[aria-selected="true"]{ font-weight:600; }
.owv-st-msg{ display:block; font-size:12px; margin:4px 0 0; min-height:0; }
/* Primary nav: one light single-line strip; scrolls inside itself. */
.ow-tabs.owv-nav{ display:flex; gap:0; margin:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); overflow-x:auto; scrollbar-width:none; }
.ow-tabs.owv-nav::-webkit-scrollbar{ display:none; }
.ow-tabs.owv-nav .vp-tab{ flex-direction:row; align-items:baseline; gap:6px; padding:12px 14px; min-height:44px; box-sizing:border-box; font-size:13px; letter-spacing:.02em; text-transform:none; font-family:var(--sans); }
.ow-tabs.owv-nav .vp-tab:first-child{ padding-left:0; }
.ow-tabs.owv-nav .vp-tab > *:first-child{ font:10px var(--mono); color:var(--sage); }
/* Page heading (level 2) above page-level tabs (level 3). */
.owv-page{ margin:32px 0 20px; }
.owv-page-t{ margin:0 0 4px; font:24px/1.2 var(--serif, Georgia, serif); color:var(--ink); }
.owv-page .vp-note{ margin:0; }
#owv-ws .owp-tab > .owv-sub:first-child{ margin-top:0; }
#owv-ws .owp-admin-tabs{ gap:24px; margin-bottom:24px; }
#owv-ws .owp-admin-tab{ font-size:11px; padding:8px 0; min-height:40px; }
/* Company record as a two-column grid; long text spans both. */
.owv-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 32px; border-top:1px solid var(--line); }
.owv-gf{ display:grid; gap:4px; padding:12px 0; border-bottom:1px solid var(--line); min-width:0; }
.owv-gf.is-wide{ grid-column:1 / -1; }
.owv-gv{ font:15px/1.5 var(--sans); color:var(--ink); overflow-wrap:anywhere; white-space:pre-line; }
@media (max-width:900px){
  .owv-hd{ grid-template-columns:minmax(0,1fr); }
  .owv-hd-m{ justify-content:start; }
  .owv-st-pop{ right:auto; left:0; }
}
@media (max-width:600px){
  .owv-hd-m{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 16px; }
  .owv-hd-m dd{ font-size:17px; }
  .owv-grid{ grid-template-columns:minmax(0,1fr); }
}
