/* ComponentERP beta, T2794 B7 Vendors & vendor pricing (VD-1..VD-10, VQ-1, RQ-17): styles for ce-vendors.js. */
.cv-acts { display: flex; gap: 4px; flex-wrap: wrap; justify-content: flex-end; align-items: center; }
.cv-acts button, .cv-tab button.quiet, .cv-overview button.quiet { padding: 2px 8px; min-height: 26px; font-size: 12px; }
.cv-stars { display: inline-flex; gap: 2px; }
.cv-star, .cv-fav { background: none; border: 0; padding: 0 2px; min-height: 0; font-size: 18px; line-height: 1; color: var(--line, #c9ced6); cursor: pointer; }
.cv-star.on, .cv-fav.on { color: #e0a100; }
.cv-star:hover, .cv-fav:hover { color: #f2b705; }
.cv-star:focus-visible, .cv-fav:focus-visible { outline: 2px solid var(--blue, #2563eb); outline-offset: 1px; border-radius: 3px; }
.cv-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.cv-search { display: flex; gap: 6px; align-items: center; flex: 1 1 260px; max-width: 460px; }
.cv-search input[type=search] { flex: 1; min-width: 0; }
.cv-nexar-search { max-width: none; margin-bottom: 10px; }
.cv-nexar-search .field { flex: 1; margin: 0; }
.cv-pager { display: flex; gap: 10px; align-items: center; justify-content: flex-end; margin-top: 8px; color: var(--muted, #667085); }
.cv-pager:empty { display: none; }
.cv-line { white-space: nowrap; font-size: 12px; }
.cv-tag { font-size: 11px; padding: 1px 6px; border-radius: 9px; background: var(--stripe, #f2f4f7); color: var(--muted, #667085); }
.cv-dups { margin-top: 10px; padding: 8px 12px; border: 1px solid #e8b04b; border-radius: 6px; background: rgba(232, 176, 75, .12); }
.cv-dups ul { margin: 6px 0 0 18px; padding: 0; }
.cv-vqline h3 { display: flex; justify-content: space-between; align-items: center; }
.cv-overview .mini-table td.cv-acts { text-align: right; }
.cv-overview .mini-table { overflow-x: auto; }
#cvn-body .tablewrap { max-height: 50vh; overflow: auto; }
/* T2827: page content follows the width #content has (container "main", base.css), not the viewport; the @media copy keeps dialogs/menus outside #content on the viewport */
@container main (max-width:576px){
  .cv-search { max-width: none; }
  .cv-tools > button { width: 100%; }
  .cv-line { white-space: normal; }
}
@media (max-width: 600px){.cv-search:where(:not(#content *)){ max-width: none; }.cv-tools > button:where(:not(#content *)){ width: 100%; }.cv-line:where(:not(#content *)){ white-space: normal; }}
.cv-acts { flex-wrap: nowrap; }
.cv-tab td, .cv-overview td { vertical-align: top; }
.cv-overview .tabempty { text-align: left; }
.cv-tab td.empty { text-align: center; }
.cv-nowrap { white-space: nowrap; }
