/* Stable competitor colors are defined by company ID in prices.js. */
.prices-workspace { min-width:0; }
.price-toolbar { display:flex; flex-wrap:wrap; gap:16px; align-items:center; margin-bottom:20px; position:relative; z-index:3; }
.price-toolbar > .vv-input { margin-left:auto; width:180px; min-height:44px; }
.price-picker { position:relative; min-width:245px; }
.price-picker > summary { cursor:pointer; list-style:none; display:flex; align-items:center; gap:12px; padding:12px 14px; border:1px solid var(--control-border); border-radius:var(--radius-md); background:var(--surface); font-size:12px; }
.price-picker > summary::-webkit-details-marker { display:none; }
.price-picker > summary > strong { color:var(--ink-muted); font-size:11px; font-weight:400; }
.price-picker > summary > svg { width:15px; height:15px; margin-left:auto; }
.price-picker[open] > summary { border-color:var(--brand); }
.price-picker > summary:focus-visible { outline:2px solid var(--focus); outline-offset:3px; }
.price-picker-popover { position:absolute; top:calc(100% + 8px); left:0; width:350px; max-width:calc(100vw - 56px); padding:14px; background:var(--surface-overlay); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); z-index:5; }
.price-picker-popover .vv-input { width:100%; min-height:40px; font-size:13px; }
.price-picker-actions { display:flex; justify-content:space-between; gap:16px; margin-bottom:12px; }
.price-picker-actions button { background:none; border:0; padding:5px 2px; color:var(--brand-soft-ink); font-size:12px; }
.price-picker-options { max-height:320px; overflow-y:auto; overscroll-behavior:contain; margin-top:6px; }
.price-option { display:flex; gap:11px; padding:12px 6px; cursor:pointer; align-items:flex-start; border-radius:6px; font-size:14px; }
.price-option:hover { background:var(--surface-raised); }
.price-option input,.price-row-label input { accent-color:var(--brand); width:16px; height:16px; flex-shrink:0; margin:2px 0 0; }
.price-option small { display:block; color:var(--ink-muted); font-size:11px; margin-top:5px; }
.price-company-toggles { display:flex; flex-wrap:wrap; gap:16px; }
.price-company-toggles label { display:flex; align-items:center; gap:7px; font-size:13px; cursor:pointer; color:var(--series-color); }
.price-company-toggles input { accent-color:var(--series-color); width:16px; height:16px; }
.price-chart-panel { overflow:hidden; margin-bottom:20px; }
.price-chart-heading { padding:20px 24px 0; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; }
.price-chart-heading h2 { margin:0; font-size:19px; font-weight:500; }
.price-chart-heading > span { color:var(--ink-muted); font-size:11px; }
.price-product-chart { padding:16px 0 8px; }
.price-product-chart + .price-product-chart { border-top:1px solid var(--line); margin-top:12px; }
.price-product-chart h3 { margin:0 24px; font-size:14px; font-weight:400; color:var(--ink-muted); }
.price-history-svg { display:block; width:100%; max-height:240px; height:auto; fill:none; stroke:none; }
.price-history-svg text { fill:var(--ink-muted); font-size:12px; font-family:inherit; stroke:none; }
.price-grid-line { stroke:var(--grid-line); stroke-width:1; }
.price-history-line { fill:none; stroke-width:2; stroke-linejoin:round; }
.price-point { cursor:pointer; outline:none; }
.price-point-hit { fill:transparent; stroke:none; }
.price-point-mark { fill:var(--series-color); stroke:var(--surface-raised); stroke-width:2; }
.price-point-simulated .price-point-mark { fill:var(--surface-raised); stroke:var(--series-color); }
.price-point:focus .price-point-hit,.price-point:hover .price-point-hit { fill:var(--surface-overlay); stroke:var(--series-color); stroke-width:1.5; }
.price-legend { padding:0 24px; display:flex; flex-wrap:wrap; gap:10px 28px; }
.price-legend-item { background:none; border:0; padding:5px 0; display:flex; gap:8px; align-items:center; text-align:left; font-size:12px; min-width:0; }
.price-legend-item small { display:block; color:var(--ink-muted); font-size:10px; margin-top:4px; }
.price-legend-item b { margin-left:5px; white-space:nowrap; font-size:14px; font-weight:500; }
.price-swatch,.price-company-heading { color:var(--series-color); }
.price-chart-note { margin:8px 24px 18px; font-size:11px; color:var(--ink-muted); display:flex; align-items:center; gap:8px; }
.price-sample-key { width:18px; border-top:2px dashed var(--ink-muted); }
.price-table-panel .panel-heading { padding:20px 24px; }
.price-table-scroll { overflow-x:auto; overscroll-behavior-x:contain; }
.price-table { border-collapse:collapse; width:100%; text-align:left; font-size:13px; table-layout:fixed; }
.price-table thead th { padding:12px 24px; background:var(--surface); font-weight:500; font-size:13px; }
.price-table thead th:first-child { width:40%; }
.price-table th small { display:block; color:var(--ink-muted); font-size:10px; font-weight:400; margin-top:5px; }
.price-table tbody th,.price-table td { padding:14px 24px; border-top:1px solid var(--line); vertical-align:top; font-weight:400; line-height:1.5; }
.price-row-label { display:flex; align-items:flex-start; gap:12px; cursor:pointer; font-size:13px; }
.price-row-selected { background:var(--surface); }
.price-cell-offer { display:block; width:100%; border:0; background:none; padding:0; text-align:left; color:var(--ink); }
.price-cell-offer + .price-cell-offer { border-top:1px dashed var(--line); margin-top:10px; padding-top:10px; }
.price-cell-offer strong { font-size:15px; font-weight:500; font-variant-numeric:tabular-nums; }
.price-cell-offer small { display:block; margin-top:3px; color:var(--ink-muted); font-size:10px; }
.price-cell-offer:hover strong { text-decoration:underline; text-underline-offset:4px; }
.price-missing { color:var(--ink-muted); }
.price-table-footnote { margin:0; padding:14px 24px; border-top:1px solid var(--line); color:var(--ink-muted); font-size:11px; }
.price-review-note { padding:12px 14px; border-left:2px solid var(--warning); background:var(--warning-soft); color:var(--ink); font-size:12px; line-height:1.6; }
.price-detail-value { font-size:38px; font-weight:400; color:var(--ink-strong); margin:24px 0 12px; font-variant-numeric:tabular-nums; }
.price-detail-value span { display:block; font-size:14px; color:var(--ink-muted); margin-top:7px; }
.price-detail-value small { font-size:18px; }
.price-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin:28px 0; }
.price-detail-grid dt { color:var(--ink-muted); font-size:12px; margin-bottom:8px; }
.price-detail-grid dd { margin:0; font-size:15px; line-height:1.5; }
#dialog-content .price-review-note { margin:20px 0; }
.price-terms { color:var(--ink-muted); line-height:1.7; font-size:14px; padding-left:20px; margin-bottom:28px; }
.price-history-title { margin-top:32px; }
.price-history-list > div { display:flex; flex-wrap:wrap; gap:12px; padding:16px 0; border-bottom:1px solid var(--line); font-size:14px; }
.price-history-list time { margin-right:auto; color:var(--ink-muted); }
@media(max-width:767px) {
 .price-toolbar { gap:12px; }
 .price-picker { width:100%; }
 .price-toolbar > .vv-input { width:135px; font-size:12px; padding:10px; }
 .price-company-toggles { gap:10px; }
 .price-company-toggles label { font-size:12px; gap:4px; }
 .price-chart-heading { padding:18px 16px 0; }
 .price-chart-heading h2 { font-size:18px; }
 .price-product-chart h3 { margin-inline:16px; font-size:12px; }
 .price-legend { padding:0 16px; gap:8px 16px; }
 .price-chart-note { margin-inline:16px; font-size:10px; }
 .price-table-panel .panel-heading { padding:18px 16px; }
 .price-table thead th,.price-table tbody th,.price-table td { padding:12px 9px; }
 .price-table thead th:first-child { width:39%; }
 .price-row-label { gap:6px; font-size:11px; }
 .price-row-label input { width:14px; height:14px; }
 .price-cell-offer strong { font-size:12px; }
 .price-cell-offer small { font-size:9px; }
 .price-table thead th { font-size:11px; }
 .price-table thead th small { font-size:9px; }
 .price-table-footnote { padding:14px 16px; font-size:10px; }
 .price-detail-grid { grid-template-columns:1fr; }
 .price-detail-value { font-size:30px; }
}
