/* Catalog and purchase intelligence: compact workspaces and decision-led comparisons. */
.entity-name { display: inline-flex; align-items: center; gap: 12px; color: var(--cw-text); }
.entity-icon { display: inline-grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: var(--cw-radius-sm); background: var(--cw-surface-secondary); color: var(--cw-text-secondary); font-size: 16px; }
.entity-icon-large { width: 48px; height: 48px; font-size: 22px; margin-bottom: 18px; }
.unit-label { display: inline-block; font-size: var(--cw-text-xs); color: var(--cw-text-secondary); border: 1px solid var(--cw-border); border-radius: 4px; padding: 2px 7px; }
.cell-stack { display: grid; gap: 5px; }
.catalog-editor { display: grid; grid-template-columns: minmax(0, 700px) minmax(180px, 260px); gap: 40px; align-items: start; }
.product-core-fields .field { grid-template-rows: auto 39px minmax(32px, auto); align-items: start; }
.product-core-fields .form-help-reserved { visibility: hidden; }
.editor-aside { padding-top: 20px; color: var(--cw-text-secondary); }
.editor-aside > i { color: var(--cw-accent); font-size: 24px; display: block; margin-bottom: 18px; }
.editor-aside h2 { font-size: 15px; color: var(--cw-text); margin-bottom: 12px; }
.editor-aside .price-preview { display: block; color: var(--cw-text); font-size: 20px; margin-bottom: 8px; }
.price-new-format { border: 1px solid var(--cw-border); border-radius: var(--cw-radius-sm); padding: 16px; margin: 0; }
.price-new-format legend { font-size: var(--cw-text-base); padding: 0 6px; }
.price-new-format[hidden], #price-vat-field[hidden] { display: none; }
.check-field { display: flex; gap: 8px; align-items: center; font-size: var(--cw-text-base); }
.check-field input { width: auto; }
.editor-aside p { font-size: var(--cw-text-base); line-height: 1.8; }
.product-overview { display: grid; grid-template-columns: 1.2fr 1.2fr 1fr; background: var(--cw-surface); border: 1px solid var(--cw-border); border-radius: var(--cw-radius-lg); box-shadow: var(--cw-shadow-sm); margin-bottom: 24px; }
.product-price-focus,.product-saving-focus,.product-facts { padding: 26px; min-width: 0; }
.product-price-focus,.product-saving-focus { border-right: 1px solid var(--cw-border); }
.product-price { display: block; font-size: clamp(25px, 2.4vw, 38px); line-height: 1.25; letter-spacing: -.045em; font-weight: 550; font-variant-numeric: tabular-nums; }
.product-price small { font-size: var(--cw-text-sm); font-weight: 450; letter-spacing: 0; color: var(--cw-text-secondary); }
.product-price-focus > p:last-child,.product-saving-focus > p:last-child { font-size: var(--cw-text-sm); margin: 13px 0 0; }
.product-facts { display: grid; gap: 15px; margin: 0; align-content: center; }
.product-facts > div { display: flex; justify-content: space-between; gap: 14px; }
.product-facts dt { font-size: var(--cw-text-sm); font-weight: 400; color: var(--cw-text-secondary); }
.product-facts dd { font-size: var(--cw-text-base); margin: 0; font-weight: 600; }
.compact-empty { padding: 30px 24px; }
.inline-empty { display: flex; align-items: center; gap: 12px; border: 1px dashed var(--cw-border); padding: 22px; border-radius: var(--cw-radius-sm); color: var(--cw-text-secondary); }
.inline-empty > i { font-size: 22px; }
.inline-empty p { font-size: var(--cw-text-sm); margin: 0; }
.presentation-list { display: grid; }
.presentation-row { display: flex; align-items: center; gap: 10px; padding: 14px 0; border-bottom: 1px solid var(--cw-border); }
.presentation-row > div { display: grid; gap: 5px; flex: 1; font-size: var(--cw-text-sm); }
.presentation-row small { color: var(--cw-text-secondary); font-size: var(--cw-text-xs); }
.editor-disclosure { margin-top: 20px; font-size: var(--cw-text-sm); }
.editor-disclosure > summary { color: var(--cw-accent); padding: 8px 0; font-weight: 550; }
.editor-disclosure > summary > i { margin-right: 6px; }
.editor-disclosure[open] > summary { margin-bottom: 16px; }
.supplier-product-list > article { padding: 14px 0; border-bottom: 1px solid var(--cw-border); font-size: var(--cw-text-sm); }
.supplier-product-list p { margin: 7px 0 4px; }
/* Lo aprendido de las facturas de un proveedor. */
.learned-section { margin-top: 28px; }
.learned-section form { margin: 0; }
.learned-section .panel-header > div { min-width: 0; }
.learned-count { display: inline-flex; align-items: center; gap: 4px; margin-left: 8px; color: var(--cw-info); }
.supplier-detail-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 28px; align-items: start; }
.supplier-contact dl { display: grid; gap: 22px; margin: 24px 0; }
.supplier-contact dt { font-size: var(--cw-text-xs); font-weight: 400; color: var(--cw-text-secondary); margin-bottom: 6px; }
.supplier-contact dd { font-size: var(--cw-text-base); margin: 0; overflow-wrap: anywhere; }
.supplier-count { padding-top: 20px; border-top: 1px solid var(--cw-border); display: grid; gap: 5px; }
.supplier-count strong { font-size: 28px; font-weight: 550; }
.supplier-count span { font-size: var(--cw-text-sm); color: var(--cw-text-secondary); }
.context-link { display: flex; gap: 16px; align-items: center; padding: 24px 0; }
.context-link > i { color: var(--cw-accent); font-size: 20px; }
.context-link > div { flex: 1; font-size: var(--cw-text-sm); }
.context-link p { color: var(--cw-text-secondary); margin: 6px 0 0; }
.category-list { border: 1px solid var(--cw-border); border-radius: var(--cw-radius-lg); box-shadow: var(--cw-shadow-sm); background: var(--cw-surface); }
.category-row { display: flex; align-items: center; gap: 18px; padding: 20px 24px; border-bottom: 1px solid var(--cw-border); }
.category-row:last-child { border: 0; }
.category-copy { flex: 1; min-width: 0; }
.category-copy h2 { font-size: var(--cw-text-md); margin: 0 0 5px; }
.category-copy h2 a { color: var(--cw-text); }
.category-copy p { margin: 0; color: var(--cw-text-secondary); font-size: var(--cw-text-sm); overflow-wrap: anywhere; }
.category-product-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.category-product-list > div { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--cw-border); border-radius: var(--cw-radius-sm); }
.category-product-list strong { font-size: var(--cw-text-sm); flex: 1; }
.savings-hero { display: grid; grid-template-columns: 1fr 260px; gap: 30px; padding: 34px 38px; border: 0; border-radius: var(--cw-radius-lg); background: var(--cw-accent-gradient); color: var(--cw-on-accent); box-shadow: var(--cw-shadow-hover); margin-bottom: 20px; }
.savings-hero a { color: var(--cw-on-accent); text-decoration: underline; text-underline-offset: 2px; }
.savings-hero .page-eyebrow { color: var(--cw-on-accent-muted); }
.savings-amount { color: var(--cw-on-accent); font-size: clamp(44px, 5.5vw, 72px); letter-spacing: -.065em; line-height: 1.05; font-weight: 550; font-variant-numeric: tabular-nums; }
.savings-amount > span { font-size: 20px; font-weight: 400; letter-spacing: -.025em; }
.savings-amount-pending { font-size: 28px; letter-spacing: -.02em; }
.savings-hero > div > p:last-child { margin: 15px 0 0; font-size: var(--cw-text-base); color: var(--cw-on-accent-muted); }
.savings-hero-note { align-self: center; border-left: 1px solid #ffffff2e; padding-left: 30px; display: grid; gap: 10px; font-size: var(--cw-text-base); color: var(--cw-on-accent-muted); }
.savings-hero-note > i { font-size: 24px; }
.savings-hero-note > span { font-size: var(--cw-text-xs); line-height: 1.7; }
.opportunities-list { display: grid; gap: 18px; }
.opportunity { border: 1px solid var(--cw-border); border-radius: var(--cw-radius-lg); box-shadow: var(--cw-shadow-sm); background: var(--cw-surface); padding: 24px 28px 0; }
.opportunity-heading { display: flex; justify-content: space-between; align-items: start; gap: 15px; }
.opportunity-heading h2 { font-size: var(--cw-text-lg); margin: 0; }
.opportunity-heading h2 a { color: var(--cw-text); }
.opportunity-heading .page-eyebrow { margin-bottom: 7px; }
.opportunity-comparison { display: grid; grid-template-columns: 1fr 26px 1fr 190px; align-items: center; gap: 24px; padding: 28px 0; }
.supplier-option > span,.opportunity-impact > span { display: block; color: var(--cw-text-secondary); font-size: var(--cw-text-xs); margin-bottom: 8px; }
.supplier-option > strong { font-size: var(--cw-text-base); font-weight: 550; }
.supplier-option > p { font-size: 21px; font-weight: 550; margin: 10px 0 0; font-variant-numeric: tabular-nums; }
.supplier-option small { font-size: var(--cw-text-xs); color: var(--cw-text-secondary); font-weight: 400; }
.supplier-option-best > p { color: var(--cw-success); }
.comparison-arrow { color: var(--cw-text-secondary); font-size: 20px; }
.opportunity-impact { border-left: 1px solid var(--cw-border); padding-left: 26px; }
.opportunity-impact > strong { display: block; font-size: 32px; color: var(--cw-success); font-weight: 550; letter-spacing: -.05em; line-height: 1.2; font-variant-numeric: tabular-nums; }
.opportunity-impact > small { display: block; color: var(--cw-text-secondary); font-size: var(--cw-text-xs); margin-top: 8px; }
.opportunity-footer { display: flex; justify-content: space-between; gap: 12px; align-items: center; border-top: 1px solid var(--cw-border); padding: 14px 0; }
.quality-note { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: var(--cw-text-2xs); color: var(--cw-text-secondary); }
.calculation-note { margin: 0 -28px; border-top: 1px solid var(--cw-border); padding: 11px 28px; color: var(--cw-text-secondary); font-size: var(--cw-text-xs); }
.calculation-note p { margin: 10px 0 4px; max-width: 620px; line-height: 1.7; }
.price-alert-list { background: var(--cw-surface); border: 1px solid var(--cw-border); border-radius: var(--cw-radius-lg); box-shadow: var(--cw-shadow-sm); }
.price-alert-row { display: flex; align-items: center; gap: 20px; padding: 23px 24px; border-bottom: 1px solid var(--cw-border); }
.price-alert-row:last-child { border-bottom: 0; }
.price-alert-symbol { display: grid; place-items: center; height: 42px; width: 42px; border-radius: var(--cw-radius-md); flex: 0 0 42px; font-size: 20px; }
.price-alert-symbol.is-increase { background: var(--cw-danger-soft); color: var(--cw-danger); }
.price-alert-symbol.is-decrease { background: var(--cw-success-soft); color: var(--cw-success); }
.price-alert-description { flex: 1; min-width: 0; }
.price-alert-description h2 { font-size: var(--cw-text-base); margin: 0; }
.price-alert-description p { margin: 8px 0 0; color: var(--cw-text-secondary); font-size: var(--cw-text-xs); }
/* De qué producto y proveedor es la alerta, y los dos precios comparados. */
.price-alert-description .price-alert-subject { color: var(--cw-text); font-size: var(--cw-text-sm); overflow-wrap: anywhere; }
.price-alert-subject a { font-weight: 600; }
.price-alert-description .price-alert-prices { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: var(--cw-text-sm); font-variant-numeric: tabular-nums; }
.price-alert-prices strong { color: var(--cw-text); font-weight: 600; }
.price-alert-change { font-size: 25px; font-weight: 550; letter-spacing: -.04em; min-width: 100px; text-align: right; font-variant-numeric: tabular-nums; }
.price-alert-change small { font-size: var(--cw-text-base); margin-left: 2px; }
.price-alert-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: end; gap: 7px; min-width: 212px; }
.resolved-note { color: var(--cw-text-secondary); font-size: var(--cw-text-sm); display: flex; gap: 7px; }
.comparison-workspace { display: grid; grid-template-columns: 1.05fr 1fr; gap: 28px; align-items: start; }
.basket-lines { display: grid; gap: 22px; }
.basket-line { display: grid; grid-template-columns: 22px minmax(0,1fr) 100px; gap: 12px; align-items: start; }
.basket-line-number { color: var(--cw-text-secondary); font-size: var(--cw-text-xs); padding-top: 40px; }
.basket-line .field { align-content: start; }
.add-basket-line { margin: 14px 0; }
.basket-submit { border-top: 1px solid var(--cw-border); padding-top: 20px; }
.comparison-result { padding: var(--cw-pad-card); border: 1px solid var(--cw-border); border-radius: var(--cw-radius-lg); background: var(--cw-surface); box-shadow: var(--cw-shadow-sm); }
.comparison-placeholder { display: flex; align-items: center; flex-direction: column; justify-content: center; min-height: 280px; text-align: center; padding: 28px; }
.comparison-placeholder > i { color: var(--cw-accent); font-size: 30px; margin-bottom: 20px; }
.comparison-placeholder h3 { font-size: 15px; }
.comparison-placeholder p { color: var(--cw-text-secondary); font-size: var(--cw-text-sm); line-height: 1.8; max-width: 280px; margin: 12px 0 0; }
.comparison-total { padding: 0 0 24px; }
.comparison-total > span { display: block; color: var(--cw-text-secondary); font-size: var(--cw-text-xs); margin-bottom: 10px; }
.comparison-total > strong { display: block; font-size: 44px; letter-spacing: -.06em; font-weight: 550; font-variant-numeric: tabular-nums; }
.comparison-total small { font-size: 25px; }
.comparison-total p { margin: 8px 0 0; color: var(--cw-text-secondary); font-size: var(--cw-text-xs); }
.comparison-result-lines > article { display: flex; justify-content: space-between; gap: 16px; align-items: center; border-top: 1px solid var(--cw-border); padding: 18px 0; font-size: var(--cw-text-base); }
.comparison-result-lines p { font-size: var(--cw-text-xs); margin: 7px 0 0; color: var(--cw-text-secondary); }
.comparison-result-lines > article > strong { white-space: nowrap; }
.comparison-footnote { display: flex; gap: 8px; font-size: var(--cw-text-xs); color: var(--cw-text-secondary); line-height: 1.7; margin: 14px 0 0; }
@media (max-width: 1100px) {
    .product-overview { grid-template-columns: 1fr 1fr; }
    .product-saving-focus { border-right: 0; }
    .product-facts { grid-column: 1/-1; border-top: 1px solid var(--cw-border); grid-template-columns: repeat(3,minmax(0,1fr)); padding: 20px 26px; }
    .product-facts > div { display: grid; gap: 7px; }
    .price-alert-row { flex-wrap: wrap; gap: 14px; }
    .price-alert-actions { width: 100%; padding-left: 56px; justify-content: start; min-width: 0; }
    .opportunity-comparison { grid-template-columns: 1fr 20px 1fr 150px; gap: 18px; }
    .comparison-workspace { gap: 20px; }
    .basket-line { grid-template-columns: 15px minmax(0,1fr) 80px; gap: 8px; }
}
@media (max-width: 850px) {
    .catalog-editor { grid-template-columns: minmax(0,1fr); gap: 20px; }
    .editor-aside { max-width: 580px; padding: 0 10px; }
    .supplier-detail-layout { grid-template-columns: 1fr; }
    .supplier-contact dl { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .supplier-count { display: flex; align-items: baseline; gap: 10px; }
    .comparison-workspace { grid-template-columns: 1fr; }
    .savings-hero { grid-template-columns: 1fr 200px; padding: 28px; }
    .opportunity-comparison { grid-template-columns: 1fr 20px 1fr; }
    .opportunity-impact { grid-column: 1/-1; border-left: 0; border-top: 1px solid var(--cw-border); padding: 18px 0 0; display: flex; flex-wrap: wrap; gap: 12px; align-items: baseline; }
    .opportunity-impact > span { margin: 0; }
}
@media (max-width: 600px) {
    .product-overview { grid-template-columns: 1fr; }
    .product-price-focus { border-right: 0; border-bottom: 1px solid var(--cw-border); }
    .product-price-focus,.product-saving-focus { padding: 22px; }
    .product-facts { padding: 18px 22px; gap: 15px; grid-template-columns: 1fr; }
    .product-facts > div { display: flex; }
    .supplier-contact dl { grid-template-columns: 1fr; }
    .learned-section .panel-header { flex-direction: column; align-items: start; gap: 14px; }
    .context-link { align-items: start; flex-wrap: wrap; }
    .context-link > div { flex-basis: calc(100% - 40px); }
    .context-link > .btn { margin-left: 36px; }
    .category-row { padding: 18px; gap: 12px; flex-wrap: wrap; }
    .category-row > .actions { margin-left: 46px; }
    .category-product-list { grid-template-columns: 1fr; }
    .savings-hero { grid-template-columns: 1fr; gap: 20px; padding: 24px; }
    .savings-hero-note { border-left: 0; border-top: 1px solid #ffffff2e; padding: 18px 0 0; }
    .savings-hero-note > i { display: none; }
    .savings-amount > span { font-size: 16px; }
    .opportunity { padding: 20px 18px 0; }
    .opportunity-heading h2 { font-size: 15px; }
    .opportunity-comparison { gap: 12px; padding: 22px 0; }
    .supplier-option > strong { font-size: var(--cw-text-sm); }
    .supplier-option > p { font-size: var(--cw-text-lg); }
    .supplier-option small { display: block; margin-top: 4px; }
    .opportunity-footer { flex-direction: column; align-items: start; gap: 15px; }
    .calculation-note { margin: 0 -18px; padding: 11px 18px; }
    .price-alert-row { padding: 18px; gap: 12px; }
    .price-alert-description .cluster { gap: 6px; }
    .price-alert-description p > span { display: block; margin-top: 5px; }
    .price-alert-description .price-alert-prices > span { margin-top: 0; }
    .price-alert-change { min-width: 64px; font-size: 21px; }
    .price-alert-actions { padding-left: 54px; }
    .basket-line { grid-template-columns: 18px minmax(0,1fr) 84px; }
    .comparison-result { padding: 20px; }
}
