/* Supplier collection: request, follow up, review, then use the farm record. */
.workspace main[data-page="suppliers"] .head-actions svg { width:16px; height:16px; flex:none; }
.supplier-intro { display:flex; justify-content:space-between; align-items:center; gap:26px; margin:0 0 24px; padding:24px; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.supplier-intro-copy { display:flex; align-items:center; gap:16px; min-width:0; }
.supplier-intro-icon,.supplier-first-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:13px; background:var(--good-soft); color:var(--brand); flex:none; }
.supplier-intro-icon svg,.supplier-first-icon svg { width:25px; height:25px; }
.supplier-intro h2 { font:600 16px/1.4 var(--sans); letter-spacing:-.4px; margin:0 0 7px; }
.supplier-intro p { font:12px/1.7 var(--sans); color:var(--text-3); max-width:470px; margin:0; }
.supplier-steps { list-style:none; display:grid; gap:10px; flex:none; margin:0; padding:0; font-size:11px; color:var(--text-2); }
.supplier-steps li { display:flex; align-items:center; gap:10px; }
.supplier-steps li>span { display:grid; place-items:center; width:22px; height:22px; border:1px solid var(--line); border-radius:6px; background:var(--bg); color:var(--brand); font-size:10px; font-weight:600; }
.workspace .supplier-request { overflow:hidden; scroll-margin-top:24px; }
.supplier-request>summary { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:20px 24px; cursor:pointer; list-style:none; }
.supplier-request>summary::-webkit-details-marker { display:none; }
.supplier-request>summary strong { display:block; font-size:14px; font-weight:600; color:var(--text); }
.supplier-request>summary small { display:block; margin-top:4px; color:var(--text-3); font-size:12px; }
.supplier-expand { font-size:22px; font-weight:400; color:var(--brand); }
.supplier-request[open] .supplier-expand { transform:rotate(45deg); }
.workspace .supplier-request[open]>summary { border-bottom:1px solid var(--line); }
.workspace .supplier-request>.card-body { padding:24px; }
.supplier-request-form { display:grid; grid-template-columns:minmax(150px,1fr) minmax(180px,1fr) auto; gap:15px; align-items:end; }
.supplier-request-form label { display:block; font-size:12px; font-weight:500; color:var(--text-2); margin-bottom:7px; }
.supplier-request-form label .muted { font-weight:400; font-size:11px; }
.supplier-request-form input { display:block; width:100%; min-width:0; }
.workspace .supplier-request-form .btn-primary { min-height:42px; white-space:nowrap; }
.workspace .supplier-email-help { grid-column:1/-1; margin:0; max-width:800px; font-size:11px; }
.supplier-link-note { display:flex; gap:10px; align-items:flex-start; padding:13px 15px; background:var(--surface-2); border:1px solid var(--line); border-radius:8px; margin-top:18px; }
.supplier-link-note>span { color:var(--brand); font-size:17px; line-height:1.4; }
.supplier-link-note p { font-size:11px; line-height:1.7; color:var(--text-2); margin:0; }
.supplier-help { margin:16px 0 0; }
.supplier-help summary { color:var(--brand); font:500 12px/1.5 var(--sans); cursor:pointer; }
.supplier-help p { max-width:830px; font-size:12px; line-height:1.8; color:var(--text-3); margin:10px 0 0; }
#inv-new { margin-top:18px; }
#inv-new .ok-inline { border-radius:9px!important; padding:18px!important; background:var(--good-soft)!important; border-color:var(--line-strong)!important; }
#inv-new input { min-width:0; background:var(--surface)!important; }
.supplier-progress { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:24px 0; }
.supplier-progress-item { display:flex; flex-direction:column; gap:10px; width:100%; min-width:0; text-align:left; padding:20px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); cursor:pointer; font-family:var(--sans); transition:border-color .15s,background .15s; }
.supplier-progress-item:hover { border-color:var(--brand); background:var(--surface-2); }
.supplier-progress-item:not(:disabled):active { background:var(--surface-3); transform:translateY(1px); }
.workspace .supplier-progress-item:disabled { opacity:1; cursor:default; }
.supplier-progress-item:disabled:hover { border-color:var(--line); background:var(--surface); }
.supplier-progress-review { background:var(--good-soft); border-color:color-mix(in srgb,var(--brand) 22%,var(--line)); }
.supplier-progress-label { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:12px; font-weight:500; color:var(--text-2); }
.supplier-progress-label svg { width:17px; height:17px; color:var(--brand); }
.supplier-progress-item>strong { font:600 32px/1.15 var(--sans); letter-spacing:-1px; color:var(--text); }
.supplier-progress-item>small { display:flex; align-items:center; justify-content:space-between; gap:7px; font-size:11px; color:var(--text-3); }
.supplier-progress-item>small>span { color:var(--brand); font-size:15px; }
.supplier-count { display:inline-flex; align-items:center; justify-content:center; flex:none; padding:4px 9px; border:1px solid var(--line); background:var(--bg); color:var(--text-2); border-radius:6px; font-size:11px; line-height:1.4; font-weight:500; }
.workspace .supplier-responses>.card-head,.workspace .supplier-roster>.card-head { justify-content:space-between; align-items:center; gap:18px; padding:22px 24px; }
.workspace .supplier-responses>.card-head h2,.workspace .supplier-roster>.card-head h2 { font-size:16px; margin:0 0 5px; }
.workspace .supplier-responses>.card-head p,.workspace .supplier-roster>.card-head p { margin:0; font-size:12px; }
.supplier-response-summary { margin:0; padding:17px 24px 0; color:var(--text-2); font-size:12px; }
.supplier-response-summary b { font-weight:500; }
.supplier-diagnostics { font-size:11px; color:var(--text-3); padding:8px 24px 18px; border-bottom:1px solid var(--line); }
.supplier-diagnostics summary { cursor:pointer; color:var(--brand); font-size:11px; }
.supplier-diagnostics p { line-height:1.8; margin-bottom:4px; }
.supplier-queue { scroll-margin-top:24px; outline-offset:-3px!important; }
.supplier-queue+.supplier-queue { border-top:1px solid var(--line); }
.supplier-queue-head { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 24px 16px; }
.supplier-queue-head h3 { font:600 14px/1.5 var(--sans); color:var(--text); margin:0 0 4px; }
.supplier-queue-head p { font-size:11px; line-height:1.7; color:var(--text-3); margin:0; }
.supplier-queue-empty { font-size:12px; color:var(--text-3); padding:0 24px 22px; margin:0; }
.supplier-table-scroll { width:100%; min-width:0; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; }
.workspace main[data-page="suppliers"] table { min-width:780px; }
.workspace main[data-page="suppliers"] table td:first-child { min-width:155px; color:var(--text); font-weight:500; }
.workspace main[data-page="suppliers"] table td:first-child .small { font-weight:400; overflow-wrap:anywhere; }
.workspace main[data-page="suppliers"] table td:nth-child(2) { min-width:135px; }
.workspace main[data-page="suppliers"] table td:nth-child(3),.workspace main[data-page="suppliers"] table td:nth-child(4) { font-size:11px; }
.workspace main[data-page="suppliers"] table td:last-child { min-width:200px; max-width:350px; }
.workspace main[data-page="suppliers"] table td:last-child>button,.workspace main[data-page="suppliers"] table td:last-child>a { margin:3px 0; }
.workspace .supplier-table-scroll table td:last-child .btn-danger { background:transparent; border-color:transparent; padding:7px; font-size:11px; }
.workspace .supplier-table-scroll table td:last-child .btn-danger:is(:hover,:focus-visible) { border-color:var(--bad); }
.supplier-history { margin:0; border-top:1px solid var(--line); scroll-margin-top:24px; }
.supplier-history>summary { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:19px 24px; font-size:12px; font-weight:500; color:var(--text-2); cursor:pointer; list-style:none; }
.supplier-history>summary::-webkit-details-marker { display:none; }
.supplier-history>summary>span:last-child { font-size:11px; font-weight:400; color:var(--text-3); }
.supplier-history-search { display:flex; align-items:center; gap:15px; padding:4px 24px 15px; }
.supplier-history-search label { font-size:11px; color:var(--text-3); }
.supplier-history-search input { min-width:0; flex:1; max-width:400px; }
.supplier-first-request { display:flex; align-items:center; justify-content:center; gap:24px; padding:38px; background:var(--surface); border:1px dashed var(--line-strong); border-radius:14px; margin-bottom:24px; }
.supplier-first-request h2 { font:600 18px/1.35 var(--sans); letter-spacing:-.4px; color:var(--text); margin:0 0 8px; }
.supplier-first-request p { font-size:12px; color:var(--text-3); margin:0 0 16px; max-width:520px; line-height:1.7; }
.supplier-loading { padding:20px 28px 24px; border:1px solid var(--line); border-radius:12px; background:var(--surface); font-size:13px; color:var(--text-3); margin:20px 0; }
.supplier-load-error { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:20px 24px; background:var(--warn-soft); border:1px solid color-mix(in srgb,var(--warn) 25%,var(--line)); border-radius:12px; margin:20px 0; }
.supplier-load-error strong { color:var(--text); font-size:13px; font-weight:600; }
.supplier-load-error p { color:var(--text-2); font-size:12px; margin:4px 0 0; }
@media(max-width:1150px) {
  .supplier-intro { align-items:flex-start; gap:20px; }
  .supplier-intro-copy { align-items:flex-start; }
  .supplier-intro p { max-width:370px; }
  .supplier-request-form { grid-template-columns:1fr 1fr; }
  .supplier-request-submit { grid-column:1/-1; }
}
@media(max-width:760px) {
  .supplier-intro { flex-direction:column; gap:22px; padding:20px; }
  .supplier-intro-icon { width:38px; height:38px; border-radius:10px; }
  .supplier-intro-icon svg { width:21px; height:21px; }
  .supplier-intro h2 { font-size:15px; }
  .supplier-intro p { font-size:11px; }
  .supplier-steps { display:flex; flex-wrap:wrap; gap:10px 16px; padding-top:17px; border-top:1px solid var(--line); font-size:10px; }
  .supplier-steps li { gap:7px; }
  .supplier-steps li>span { width:20px; height:20px; }
  .supplier-progress { gap:8px; margin:20px 0; }
  .supplier-progress-item { padding:14px 12px; gap:12px; }
  .supplier-progress-label { font-size:11px; line-height:1.5; }
  .supplier-progress-label svg { display:none; }
  .supplier-progress-item>strong { font-size:27px; }
  .supplier-progress-item>small { font-size:10px; line-height:1.5; align-items:flex-end; }
  .supplier-request>summary,.workspace .supplier-request>.card-body { padding:20px; }
  .workspace .supplier-responses>.card-head,.workspace .supplier-roster>.card-head { padding:20px; }
  .supplier-queue-head { padding:20px 20px 15px; }
  .supplier-queue-empty { padding:0 20px 20px; }
  .supplier-response-summary { padding:15px 20px 0; }
  .supplier-diagnostics { padding:8px 20px 17px; }
  .supplier-history>summary { padding:18px 20px; }
  .supplier-history-search { flex-direction:column; align-items:stretch; gap:8px; padding:4px 20px 15px; }
  .supplier-history-search input { width:100%; max-width:none; }
  .supplier-first-request { padding:28px 22px; align-items:flex-start; gap:16px; }
  .supplier-first-request h2 { font-size:16px; }
  .supplier-first-icon { width:38px; height:38px; }
  .supplier-first-icon svg { width:21px; height:21px; }
  .supplier-load-error { padding:20px; flex-wrap:wrap; }
}
@media(max-width:600px) {
  .workspace main[data-page="suppliers"] table.ui-table { min-width:0; }
  .workspace main[data-page="suppliers"] table.ui-table td { min-width:0; max-width:none; overflow-wrap:anywhere; }
  .workspace main[data-page="suppliers"] table.ui-table td[colspan] { display:block; }
  .workspace main[data-page="suppliers"] table.ui-table td[colspan]::before { display:none; }
  .workspace main[data-page="suppliers"] table.ui-table td:last-child { white-space:normal; }
  .workspace .supplier-table-scroll table td:last-child .btn-danger { min-width:44px; padding:7px 12px; }
  .supplier-help summary { padding:12px 0; font-size:13px; }
}
@media(max-width:500px) {
  .supplier-request-form { grid-template-columns:1fr; }
  .supplier-request-form input,.supplier-history-search input { font-size:16px!important; }
  .supplier-request-submit,.supplier-request-form .btn-primary { width:100%; }
  .supplier-intro-copy { gap:12px; }
  .supplier-progress-item { padding:14px 10px; }
  .supplier-progress-item>small>span { display:none; }
  .supplier-progress-label { min-height:32px; font-size:10px; }
  .supplier-first-request { display:block; }
  .supplier-first-icon { margin-bottom:15px; }
  #inv-new .ok-inline>div:last-child { flex-direction:column; align-items:stretch!important; }
  #inv-new input { width:100%; font-size:16px!important; }
}
@media(prefers-reduced-motion:reduce) { .supplier-progress-item { transition:none; } .supplier-progress-item:not(:disabled):active { transform:none; } }
@media print {
  .supplier-intro,.supplier-request,.supplier-progress { display:none!important; }
  .supplier-table-scroll { overflow:visible; }
  .workspace main[data-page="suppliers"] table { min-width:0; }
}

/* Buying requests: existing demand first, with creation opened on purpose. */
.buying-request-overview { display:flex; align-items:center; justify-content:space-between; gap:26px; padding:24px; margin-bottom:28px; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.buying-request-context { display:flex; align-items:center; gap:16px; min-width:0; }
.buying-request-symbol { display:grid; place-items:center; width:44px; height:44px; border-radius:12px; flex:none; color:var(--brand); background:var(--good-soft); }
.buying-request-symbol svg { width:22px; height:22px; }
.buying-request-context h2 { font:600 16px/1.4 var(--sans); letter-spacing:-.3px; margin:0 0 7px; }
.buying-request-context p { font-size:12px; color:var(--text-3); margin:0; line-height:1.7; }
.buying-request-overview dl { display:flex; flex:none; gap:30px; margin:0; }
.buying-request-overview dl>div { padding-left:25px; border-left:1px solid var(--line); }
.buying-request-overview dt { color:var(--text-3); font-size:12px; margin:0 0 6px; }
.buying-request-overview dd { font:600 26px/1.25 var(--sans); font-variant-numeric:tabular-nums; letter-spacing:-.7px; color:var(--text); margin:0; }
.buying-request-overview dd span { font-size:13px; font-weight:400; letter-spacing:0; color:var(--text-3); }
.buying-request-list-head { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-bottom:18px; }
.buying-request-list-head h2 { font:600 20px/1.4 var(--sans); letter-spacing:-.5px; margin:0 0 5px; }
.buying-request-list-head p { margin:0; color:var(--text-3); font-size:12px; }
.buying-request-list-head>span { font-size:12px; color:var(--text-3); flex:none; }
.buying-request-register { margin-bottom:28px; }
.workspace main[data-page="requests"] .buying-request-row { display:grid; grid-template-columns:minmax(180px,1fr) auto auto; gap:13px 10px; padding:22px; margin:0 0 12px; background:var(--surface); border:1px solid var(--line); border-radius:12px; }
.buying-request-row>.what { grid-column:1/-1; min-width:0; }
.buying-request-row>.what>b { font-size:15px; line-height:1.5; color:var(--text); }
.buying-request-row>.what>.small { font-size:12px; line-height:1.9; margin-top:6px; }
.buying-request-row>.small,.buying-request-row>[data-rq-panel] { grid-column:1/-1; min-width:0; }
.buying-request-row>[data-rq-panel]:empty,.buying-request-row>[data-rq-date-box]:empty { display:none; }
.buying-request-row>[data-rq-panel] .card { margin:0!important; background:var(--surface-2); box-shadow:none; }
.buying-request-row>[data-rq-farm] { min-width:0; max-width:100%; justify-self:start; }
.buying-request-row progress { accent-color:var(--brand); height:7px; border:0; border-radius:6px; overflow:hidden; }
.buying-request-row progress::-webkit-progress-bar { background:var(--surface-3); border-radius:6px; }
.buying-request-row progress::-webkit-progress-value { background:var(--brand); border-radius:6px; }
.buying-request-row [data-rq-date-box] .fact-form { border-top:1px solid var(--line); padding-top:18px; margin-top:3px; }
.buying-request-row [data-rq-date-box] label { line-height:1.7; }
.buying-request-row [data-rq-date-box] input[type=text] { max-width:100%; }
.buying-request-empty { text-align:center; padding:34px 24px; border:1px dashed var(--line-strong); border-radius:13px; background:var(--surface); }
.buying-request-empty h3 { margin:0 0 8px; font:600 17px/1.4 var(--sans); }
.buying-request-empty p { margin:0 0 19px; color:var(--text-3); font-size:13px; line-height:1.7; }
/* The create form is a dialog, so it is as wide as the dialog allows. */
#rq-create { width:min(460px,calc(100vw - 32px)); }
#rq-create h2 { font:600 17px/1.4 var(--sans); margin:0 0 4px; }
#rq-create .rq-markets { border:0; padding:0; margin:0 0 12px; min-width:0; }
#rq-create .rq-markets legend { padding:0; margin:0 0 6px; }
#rq-create .rq-box-title { margin:6px 0 2px; }
#rq-create .rq-box-row { display:block; line-height:1.7; padding:3px 0; }
@media(max-width:650px) { #rq-create .ui-field input { font-size:16px; } }
.rq-progress { width:120px; vertical-align:middle; }
@media(max-width:1000px) {
  .buying-request-overview { align-items:flex-start; flex-direction:column; }
  .buying-request-overview dl { width:100%; gap:24px; border-top:1px solid var(--line); padding-top:19px; }
  .buying-request-overview dl>div { padding:0; border:0; }
}
@media(max-width:650px) {
  .buying-request-overview { padding:20px; margin-bottom:24px; gap:20px; }
  .buying-request-context { align-items:flex-start; gap:12px; }
  .buying-request-context h2 { font-size:15px; }
  .buying-request-symbol { width:36px; height:36px; border-radius:9px; }
  .buying-request-symbol svg { width:19px; height:19px; }
  .buying-request-overview dl { gap:24px; }
  .buying-request-overview dd { font-size:24px; }
  .buying-request-list-head { align-items:flex-start; }
  .buying-request-list-head h2 { font-size:18px; }
  .workspace main[data-page="requests"] .buying-request-row { grid-template-columns:1fr auto; padding:19px; gap:12px 8px; }
  .buying-request-row>[data-rq-farm] { grid-column:1/-1; width:100%!important; justify-self:stretch; }
  .buying-request-row>button { justify-self:start; }
}

/* The funnel sits between the response summary and its diagnostics. */
.supplier-funnel { padding:8px 20px 16px; }
.supplier-funnel .viz-bar-row { grid-template-columns:minmax(72px, 180px) 1fr auto; }
