/* Clickable dashboard cards, rows, sorting and supplier business lookup. */
/* Shared interaction polish: no layout animation while entering or browsing data. */
:root{--ui-ease-out:cubic-bezier(.23,1,.32,1)}
body :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--ml-accent);outline-offset:3px}
.queue-search:focus-within,.quote-bulk-toolbar>label:first-child:focus-within{outline:3px solid var(--ml-accent);outline-offset:2px}
body :is(button,a,summary){touch-action:manipulation}
:is(.primary-button,.secondary-button,.danger-button,.pdf-button,.workspace-menu-toggle,.sidebar-close){transition:transform 120ms var(--ui-ease-out),background-color 120ms ease,border-color 120ms ease}
html[data-input-mode="pointer"] :is(.primary-button,.secondary-button,.danger-button,.pdf-button,.workspace-menu-toggle,.sidebar-close):active:not(:disabled):not([aria-disabled="true"]){transform:scale(.97)}
#toast{transition:opacity 160ms ease,transform 160ms var(--ui-ease-out);overflow-wrap:anywhere}
#toast.error{background:#8f2920}
dialog{overscroll-behavior:contain}
html[data-input-mode="pointer"] dialog[open]{opacity:1;transform:scale(1);transform-origin:center;transition:opacity 160ms ease,transform 160ms var(--ui-ease-out)}
@starting-style{html[data-input-mode="pointer"] dialog[open]{opacity:0;transform:scale(.98)}}
/* Do not delay keyboard actions or animate numerical updates. */
html[data-input-mode="keyboard"] *,html[data-input-mode="keyboard"] *::before,html[data-input-mode="keyboard"] *::after{transition:none!important}
@media(pointer:coarse){
  body :is(.primary-button,.secondary-button,.text-button,.danger-button,.icon-button,.row-open,.workspace-menu-toggle,.sidebar-close,.queue-sort,.pdf-button,.quote-quantity-control button){min-width:44px;min-height:44px}
  body .quote-quantity-control{grid-template-columns:44px minmax(45px,1fr) 44px}
  body :is(input,select,textarea){font-size:16px!important}
  body .enterprise-metrics .metric-card>em{opacity:1}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  html[data-input-mode="pointer"] :is(button,a):active,html[data-input-mode="pointer"] dialog[open],#toast{transform:none!important}
}
.enterprise-metrics .metric-card{min-width:0;padding:17px 19px 15px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 1px 3px rgb(var(--ml-ink-rgb) / 0.0157);color:inherit;text-align:left;font:inherit;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}
.enterprise-metrics .metric-card:focus-visible{outline:3px solid var(--ml-accent);outline-offset:3px}
@media(hover:hover) and (pointer:fine){.enterprise-metrics .metric-card:hover{border-color:var(--ml-accent-border);box-shadow:0 2px 8px rgb(var(--ml-accent-rgb) / 0.0706)}}
.enterprise-metrics .metric-card.active{border-color:var(--ml-muted);box-shadow:inset 0 0 0 1px var(--ml-muted);background:var(--ml-surface)}
.enterprise-metrics .metric-card>strong,.enterprise-metrics .metric-card>small{display:block}
.enterprise-metrics .metric-card>em{display:block;margin-top:9px;color:var(--ml-accent);font-size:9px;font-style:normal;font-weight:650;opacity:0;transition:opacity .15s ease}
.enterprise-metrics .metric-card:hover>em,.enterprise-metrics .metric-card:focus-visible>em,.enterprise-metrics .metric-card.active>em{opacity:1}
.queue-sort{min-height:32px;padding:0 9px;border:1px solid transparent;border-radius:6px;background:transparent;font-family:inherit;cursor:pointer}
.queue-sort:focus-visible{outline:3px solid var(--ml-accent);outline-offset:2px}
@media(hover:hover) and (pointer:fine){.queue-sort:hover{border-color:var(--ml-line-strong);background:var(--ml-surface-muted);color:var(--ml-accent)}}
.queue-sort b{color:var(--ml-accent);font-size:12px}
.enterprise-table .clickable-row{cursor:pointer}
.enterprise-table .clickable-row:focus-visible{outline:2px solid var(--ml-muted);outline-offset:-2px;background:var(--ml-surface)}
.enterprise-table .clickable-row:hover .rfq-title{color:var(--ml-accent);text-decoration:underline;text-underline-offset:3px}

/* Keep long procurement queues readable without losing column context. */
@media(min-width:900px){
  .inbox-panel .enterprise-table-wrap{position:relative;max-height:min(62vh,680px);overflow:auto;overscroll-behavior:contain}
  .inbox-panel .enterprise-table thead th{position:sticky;top:0;z-index:3;background:var(--ml-surface-muted);box-shadow:0 1px var(--ml-line)}
  .inbox-panel .enterprise-table tbody tr:nth-child(even){background:var(--ml-surface)}
}
.inbox-tabs{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}
.inbox-tabs button{white-space:nowrap}

/* Visible progress matters when a quotation contains dozens of lines. */
#quote-progress{display:block;width:min(360px,100%);height:6px;margin:7px 0 5px;border:0;border-radius:99px;overflow:hidden;background:var(--ml-line);accent-color:var(--ml-accent)}
#quote-progress::-webkit-progress-bar{background:var(--ml-line);border-radius:99px}
#quote-progress::-webkit-progress-value{background:var(--ml-accent);border-radius:99px}

.overall-negotiation-summary{display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr) minmax(170px,.8fr);align-items:center;gap:18px;padding:16px 22px;border-bottom:1px solid var(--ml-line);background:var(--ml-surface)}
.overall-negotiation-summary>div{display:grid;gap:4px}
.overall-negotiation-summary small{color:var(--ml-muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.overall-negotiation-summary strong{color:var(--ml-ink);font-size:17px;font-variant-numeric:tabular-nums}
.overall-negotiation-summary>span{color:var(--ml-subtle)}
.overall-negotiation-summary>div:last-child{justify-self:end;min-width:150px;padding:10px 13px;border-radius:7px;text-align:right}
.overall-negotiation-summary .saving{background:var(--ml-surface-muted);color:var(--ml-accent)}
.overall-negotiation-summary .increase{background:#fff1ed;color:#a33d24}
.overall-negotiation-summary .neutral{background:var(--ml-surface-muted);color:var(--ml-text)}
.overall-negotiation-summary>div:last-child strong{color:inherit}
.overall-negotiation-summary em{font-size:10px;font-style:normal;font-weight:700}
.overall-counter-impact{display:block;margin-top:6px;color:var(--ml-accent);font-size:10px;font-weight:700;line-height:1.35}
.overall-counter-impact.invalid{color:#aa4128}

.business-lookup{margin:20px 0;padding:18px;border:1px solid var(--ml-line-strong);border-radius:10px;background:linear-gradient(135deg,var(--ml-surface-muted),var(--ml-surface))}
.business-lookup>div:first-child{display:flex;align-items:center;gap:11px}
.business-lookup strong,.business-lookup small{display:block}
.business-lookup>div:first-child strong{color:var(--ml-text);font-size:13px}
.business-lookup>div:first-child small{margin-top:3px;color:var(--ml-muted);font-size:10px}
.lookup-mark{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:9px;background:var(--ml-accent);color:#fff;font-size:18px}
.business-lookup-bar{display:grid!important;grid-template-columns:1fr auto;gap:9px;margin-top:14px}
.business-lookup-bar input{min-width:0;margin:0}
.business-lookup-results{display:grid;gap:9px;margin-top:12px}
.business-lookup-results>p{margin:0;color:var(--ml-muted);font-size:10px;line-height:1.6}
.business-candidate{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px;border:1px solid var(--ml-line);border-radius:10px;background:#fff;box-shadow:0 6px 18px rgb(var(--ml-accent-rgb) / 0.0353)}
.business-candidate.exact-match{border-color:var(--ml-accent-border);box-shadow:0 0 0 2px var(--ml-accent-soft),0 8px 22px rgb(var(--ml-accent-rgb) / 0.0706)}
.business-photo,.business-photo-placeholder{width:58px;height:58px;border-radius:9px;object-fit:cover;background:var(--ml-surface-muted)}
.business-photo-placeholder{display:grid;place-items:center;color:var(--ml-accent-strong);font-size:20px;font-weight:800}
.business-candidate-copy{min-width:0}
.business-candidate-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.business-candidate strong{color:var(--ml-text);font-size:11px}
.match-badge{padding:3px 7px;border-radius:999px;background:var(--ml-surface-muted);color:var(--ml-muted);font-size:8px;font-style:normal;font-weight:700;letter-spacing:.03em;text-transform:uppercase}
.match-badge.exact{background:var(--ml-accent-soft);color:var(--ml-accent)}.match-badge.strong{background:var(--ml-surface-muted);color:var(--ml-text)}
.business-candidate p{margin:4px 0;color:var(--ml-muted);font-size:10px;line-height:1.5}
.business-candidate small{color:var(--ml-muted);font-size:9px;line-height:1.45}
.business-candidate-actions{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.business-candidate a{color:var(--ml-accent);font-size:9px;text-decoration:none}
.business-applied,.lookup-loading{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--ml-accent-border);border-radius:8px;background:#fff}
.business-applied>span{display:grid;place-items:center;width:27px;height:27px;flex:none;border-radius:50%;background:var(--ml-accent-soft);color:var(--ml-accent);font-weight:700}
.business-applied strong,.lookup-loading strong{color:var(--ml-text);font-size:11px}
.business-applied small,.lookup-loading small{margin-top:3px;color:var(--ml-muted);font-size:9px;line-height:1.5}
.lookup-loading p{margin:0}
.lookup-loading p{flex:1}.lookup-loading .text-button{flex:none;min-height:40px}.business-lookup-results[aria-busy="true"]{opacity:1}
.business-no-match{padding:12px;border:1px solid #ead9ba;border-radius:8px;background:#fffbf3}
.business-no-match strong{color:#765d2e;font-size:11px}
.business-no-match p{margin:4px 0 0;color:#85765b;font-size:9px;line-height:1.5}

@media(max-width:1150px){.queue-sort{display:flex}}
@media(max-width:620px){.business-lookup{padding:14px}.business-lookup-bar{grid-template-columns:1fr}.business-candidate{grid-template-columns:48px 1fr}.business-photo,.business-photo-placeholder{width:48px;height:48px}.business-candidate-actions{grid-column:1/-1;align-items:center;flex-direction:row;justify-content:flex-end;flex-wrap:wrap}.business-candidate .secondary-button{display:inline-flex}.enterprise-metrics .metric-card>em{opacity:1}.overall-negotiation-summary{grid-template-columns:1fr auto 1fr;gap:10px;padding:14px}.overall-negotiation-summary>div:last-child{grid-column:1/-1;justify-self:stretch;text-align:left}}
