/* PartsApp V3.1 - configuration-driven component theme. Loaded last by _Layout. */
html { font-family: var(--parts-font-family); font-size: var(--parts-font-size); line-height: var(--parts-line-height); }
body { background: var(--parts-canvas); color: var(--parts-text-primary); }
.page { width: min(100%, var(--parts-page-max-width)); margin-inline: auto; padding: var(--parts-page-padding); }

.catalogue-grid,
.service-kit-grid { display:grid; grid-template-columns:repeat(var(--parts-grid-columns-desktop),minmax(0,1fr)); gap:var(--parts-card-gap); }

.card,.catalogue-card,.result-card {
  background:var(--search-card-bg); color:var(--search-card-text); border:var(--parts-border-width) solid var(--search-card-border);
  border-radius:var(--search-card-radius); box-shadow:var(--parts-shadow-card); overflow:hidden;
  transition:transform var(--parts-hover-duration) ease,box-shadow var(--parts-hover-duration) ease,border-color var(--parts-hover-duration) ease,background-color var(--parts-hover-duration) ease;
}
.card:hover,.catalogue-card:hover,.result-card:hover { transform:translateY(calc(-1 * var(--parts-hover-lift))); background:var(--search-card-hover-bg); border-color:var(--search-card-hover-border); box-shadow:var(--parts-shadow-hover); }
.card-body { padding:var(--search-card-padding); }
.catalogue-card .image-wrap,.result-card .image-wrap { height:var(--parts-card-image-height); background:var(--parts-surface-muted); }
.catalogue-card .image-wrap img,.result-card .image-wrap img { width:100%;height:100%;object-fit:contain; }
.catalogue-card h3,.result-card h3 { font-size:var(--parts-card-title-size); }
.catalogue-card p,.result-card p { color:var(--search-card-muted); }

.epc-vehicle-card { background:var(--vehicle-card-bg);color:var(--vehicle-card-text);border:var(--parts-border-width) solid var(--vehicle-card-border);border-radius:var(--vehicle-card-radius);padding:var(--vehicle-card-padding);box-shadow:var(--parts-shadow-card);transition:all var(--parts-hover-duration) ease; }
.epc-vehicle-card:hover,.epc-vehicle-card:focus-visible { background:var(--vehicle-card-hover-bg);border-color:var(--vehicle-card-hover-border);box-shadow:var(--parts-shadow-hover);transform:translateY(calc(-1 * var(--parts-hover-lift))); }
.epc-vehicle-card.recommended,.epc-vehicle-card.selected { background:var(--vehicle-card-selected-bg);border-color:var(--vehicle-card-selected-border); }
.epc-vehicle-card p { color:var(--vehicle-card-muted); }

.epc-subsystem-card { background:var(--subsystem-card-bg);color:var(--subsystem-card-text);border:var(--parts-border-width) solid var(--subsystem-card-border);border-radius:var(--subsystem-card-radius);padding:var(--subsystem-card-padding);box-shadow:var(--parts-shadow-card);transition:all var(--parts-hover-duration) ease; }
.epc-subsystem-card:hover { background:var(--subsystem-card-hover-bg);border-color:var(--subsystem-card-hover-border);box-shadow:var(--parts-shadow-hover);transform:translateY(calc(-1 * var(--parts-hover-lift))); }
.epc-selected-vehicle { background:var(--vehicle-card-selected-bg);border:var(--parts-border-width) solid var(--vehicle-card-selected-border);border-radius:var(--vehicle-card-radius);box-shadow:var(--parts-shadow-card); }
.epc-selected-vehicle::before { background:var(--parts-selected-border); }

.service-kit-line,.service-kit-summary,.service-kit-natural-box { background:var(--service-kit-card-bg);color:var(--service-kit-card-text);border:var(--parts-border-width) solid var(--service-kit-card-border);border-radius:var(--service-kit-card-radius);padding:var(--service-kit-card-padding);box-shadow:var(--parts-shadow-card); }
.service-kit-line:hover { background:var(--service-kit-card-hover-bg);border-color:var(--service-kit-card-hover-border); }

.pick-list-shell { background:var(--parts-surface);border:var(--parts-border-width) solid var(--parts-border);border-radius:var(--parts-radius-lg);box-shadow:var(--parts-shadow-card);padding:var(--parts-card-padding); }
.pick-list-table tbody tr { background:var(--pick-list-row-bg);color:var(--pick-list-row-text);border-color:var(--pick-list-row-border);transition:background-color var(--parts-hover-duration) ease; }
.pick-list-table tbody tr:hover { background:var(--pick-list-row-hover-bg); }

.diagram-hotspot-row { background:var(--diagram-row-bg);color:var(--diagram-row-text);border:var(--parts-border-width) solid var(--diagram-row-border);border-radius:var(--diagram-row-radius);padding:var(--diagram-row-padding);box-shadow:var(--parts-shadow-card);transition:all var(--parts-hover-duration) ease; }
.diagram-hotspot-row:hover { background:var(--diagram-row-hover-bg);border-color:var(--diagram-row-hover-border); }
.diagram-hotspot-row.is-selected { background:var(--diagram-row-selected-bg);border-color:var(--diagram-row-selected-border); }
.diagram-hotspot-row p,.diagram-hotspot-note { color:var(--diagram-row-muted); }
.diagram-hotspot-marker { background:var(--parts-accent);color:var(--parts-accent-text);box-shadow:var(--parts-shadow-card); }
.diagram-hotspot-marker.is-selected,.diagram-hotspot-marker:hover { background:var(--parts-accent-dark);box-shadow:var(--parts-shadow-hover); }
.diagram-selected-strip { background:var(--parts-selected-bg);border-color:var(--parts-selected-border);color:var(--parts-accent-dark); }

button,.button,.details-link,.catalogue-search-button,.service-kit-link,.epc-viewer-button,.epc-table-asset-link,.pick-list-add,input[type=submit] {
 min-height:var(--parts-button-height);padding-inline:var(--parts-button-padding-x);border-radius:var(--parts-button-radius);font-weight:var(--parts-button-weight);background:var(--parts-button-primary-bg);color:var(--parts-button-primary-text);border:var(--parts-border-width) solid var(--parts-button-primary-bg);transition:background-color var(--parts-hover-duration) ease,border-color var(--parts-hover-duration) ease,transform var(--parts-hover-duration) ease,box-shadow var(--parts-hover-duration) ease;
}
button:hover,.button:hover,.details-link:hover,.catalogue-search-button:hover,.service-kit-link:hover,.pick-list-add:hover,input[type=submit]:hover { background:var(--parts-button-primary-hover);border-color:var(--parts-button-primary-hover);color:var(--parts-button-primary-text); }
.button.secondary,.details-link.secondary,.danger-link { background:var(--parts-button-secondary-bg);color:var(--parts-button-secondary-text);border-color:var(--parts-button-secondary-border); }

.meta span,.source-pill,.epc-row-file-pill,.epc-selected-codes span,.epc-vehicle-meta span,.epc-subsystem-card small,.epc-subsystem-card span,.badge-success,.badge-warning,.available,.low-stock {
 border-radius:var(--parts-badge-radius);padding:var(--parts-badge-padding-y) var(--parts-badge-padding-x);font-size:var(--parts-badge-font-size);font-weight:var(--parts-badge-weight);
}
.alert-success,.status-success,.available,.badge-success { color:var(--parts-accent-dark)!important;background:var(--parts-success-bg)!important;border-color:var(--parts-success)!important; }
.alert-warning,.status-warning,.low-stock,.badge-warning,.diagram-engine-empty { color:var(--parts-warning)!important;background:var(--parts-warning-bg)!important;border-color:var(--parts-warning)!important; }
.alert-danger,.status-danger,.validation-error { color:var(--parts-danger)!important;background:var(--parts-danger-bg)!important;border-color:var(--parts-danger)!important; }

/* Optional UI metadata. Content remains in the model; only presentation is switched. */
body[data-ui-descriptions="false"] .fitment,body[data-ui-descriptions="false"] .remarks,body[data-ui-descriptions="false"] .localized-description-primary,body[data-ui-descriptions="false"] .secondary-language-text,body[data-ui-descriptions="false"] .diagram-hotspot-note { display:none!important; }
body[data-ui-vehicle-codes="false"] .epc-selected-codes,body[data-ui-vehicle-codes="false"] .epc-vehicle-meta,body[data-ui-vehicle-codes="false"] .part-code { display:none!important; }
body[data-ui-source-badges="false"] .source-pill,body[data-ui-source-badges="false"] .epc-row-file-pill { display:none!important; }
body[data-ui-prices="false"] .price-row,body[data-ui-prices="false"] .epc-price,body[data-ui-prices="false"] .summary-prices { display:none!important; }
body[data-ui-quantities="false"] .quantity,body[data-ui-quantities="false"] [data-ui-quantity] { display:none!important; }
body[data-ui-image-labels="false"] .image-count,body[data-ui-image-labels="false"] .epc-preview-note { display:none!important; }

/* Legacy decorative green/orange removal: semantic states now inherit configured tokens. */
.epc-filter-field span,.epc-active-filter,.epc-match-score,.epc-price.has-price { color:var(--parts-accent-dark); }
.epc-filter-field select,.epc-filter-field input { background:var(--parts-surface);color:var(--parts-text-primary);border-color:var(--parts-border-strong); }
.china-epc-hero,.epc-vehicle-card.recommended { border-color:var(--parts-selected-border);background:var(--parts-surface); }
.epc-parts-table th { background:var(--parts-hover);color:var(--parts-text-secondary); }

@media(max-width:1100px){.catalogue-grid,.service-kit-grid{grid-template-columns:repeat(var(--parts-grid-columns-tablet),minmax(0,1fr));}.page{padding:calc(var(--parts-page-padding)*.8);}}
@media(max-width:680px){.catalogue-grid,.service-kit-grid{grid-template-columns:repeat(var(--parts-grid-columns-mobile),minmax(0,1fr));}.page{padding:calc(var(--parts-page-padding)*.6);}.card-body{padding:calc(var(--parts-card-padding)*.82);}.catalogue-card .image-wrap,.result-card .image-wrap{height:calc(var(--parts-card-image-height)*.82);}.topnav{gap:4px}.topnav a{padding:8px 9px}.epc-subsystem-grid{grid-template-columns:1fr}.pick-list-meta{grid-template-columns:1fr}}

/* Component-specific visibility switches override global defaults when required. */
body[data-ui-search-descriptions="false"] .catalogue-card .fitment,body[data-ui-search-descriptions="false"] .result-card .fitment{display:none!important}
body[data-ui-search-sources="false"] .catalogue-card .source-pill,body[data-ui-search-sources="false"] .result-card .source-pill{display:none!important}
body[data-ui-service-descriptions="false"] .service-kit-line .fitment,body[data-ui-service-descriptions="false"] .service-kit-line .remarks{display:none!important}
body[data-ui-service-sources="false"] .service-kit-line .source-pill{display:none!important}
body[data-ui-pick-descriptions="false"] .pick-list-table td:nth-child(2),body[data-ui-pick-descriptions="false"] .pick-list-table th:nth-child(2){display:none!important}
body[data-ui-pick-sources="false"] .pick-list-table .source-pill{display:none!important}
body[data-ui-diagram-descriptions="false"] .diagram-hotspot-note{display:none!important}
body[data-ui-diagram-image-labels="false"] .diagram-engine-meta{display:none!important}


/* V3.1.3: zero-green response and status treatment. */
.alert-success,
.status-success,
.vin-found,
.available,
.price-status.available,
.badge-success,
.health-good,
.gate-passed,
.review-complete,
.promotion-ready,
.pick-list-toast.success,
.toast-success,
.response-success {
  color: var(--parts-accent-dark) !important;
  background: var(--parts-success-bg) !important;
  border-color: color-mix(in srgb, var(--parts-accent) 32%, #fff) !important;
}

.hero-thinking-pulse,
.hero-thinking-chip span {
  background: var(--parts-accent) !important;
}

.epc-vehicle-card.recommended {
  border-color: var(--parts-selected-border) !important;
  background: var(--parts-selected-bg) !important;
}
