/* Ultra Ventas Junker - capa visual accesible sin reemplazar AdminLTE */
.junker-page { font-size: 15px; }
.junker-page .box { border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.junker-page .box-title { font-size: 18px; font-weight: 600; }
.junker-header h1 { font-weight: 600; }
.junker-header h1 small { font-size: 15px; }
.junker-page label { font-size: 14px; }
.junker-page .form-control { min-height: 40px; border-radius: 5px; }
.junker-page textarea.form-control { min-height: 76px; }
.junker-page .btn-lg, .junker-action-card { min-height: 46px; }
.junker-form-actions { position: sticky; bottom: 0; z-index: 20; padding: 12px 15px; margin: 0 -15px; background: rgba(255,255,255,.96); border-top: 1px solid #ddd; text-align: right; }
.junker-form-actions .btn { min-width: 150px; margin-left: 8px; }
.junker-sticky { position: sticky; top: 58px; }
.junker-readonly-stock { padding: 14px; margin-bottom: 15px; background: #f4f4f4; border-radius: 6px; }
.junker-readonly-stock small, .junker-readonly-stock span { display: block; }
.junker-readonly-stock strong { display: block; font-size: 30px; line-height: 1.15; }
.junker-gallery { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.junker-gallery img { width: 110px; height: 85px; object-fit: cover; border-radius: 6px; border: 1px solid #ddd; }
.junker-kpi { min-height: 118px; border-radius: 8px; }
.junker-kpi .inner h3 { font-size: 28px; }
.junker-kpi .inner p { font-size: 15px; }
.junker-quick-actions { display: grid; grid-template-columns: repeat(5, minmax(145px, 1fr)); gap: 10px; margin-bottom: 18px; }
.junker-action-card { display: flex; align-items: center; gap: 10px; padding: 14px; border: 1px solid #d8d8d8; border-radius: 8px; background: #fff; font-size: 15px; font-weight: 600; color: #333; }
.junker-action-card:hover, .junker-action-card:focus { background: #f7f7f7; text-decoration: none; color: #111; }
.junker-action-card i { font-size: 23px; width: 28px; text-align: center; }
.junker-part-grid { display: grid; grid-template-columns: repeat(4, minmax(190px, 1fr)); gap: 14px; }
.junker-part-card { position: relative; background: #fff; border: 1px solid #ddd; border-radius: 8px; overflow: hidden; min-height: 320px; }
.junker-part-card .junker-photo { height: 155px; background: #eee; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.junker-part-card .junker-photo img { width: 100%; height: 100%; object-fit: cover; }
.junker-part-card .junker-card-body { padding: 12px; }
.junker-part-card h4 { margin: 0 0 8px; font-size: 17px; font-weight: 700; }
.junker-part-card .junker-meta { font-size: 13px; line-height: 1.5; color: #555; }
.junker-part-card .junker-stock { font-size: 20px; font-weight: 700; }
.junker-source-badge { position: absolute; z-index: 2; top: 8px; left: 8px; font-size: 12px; padding: 5px 8px; border-radius: 4px; font-weight: 700; }
.junker-source-new { background: #00a65a; color: #fff; }
.junker-source-used { background: #f39c12; color: #fff; }
.junker-status-chip { display: inline-block; padding: 4px 7px; border-radius: 10px; background: #eee; font-size: 12px; font-weight: 600; }
.junker-location-line { margin-top: 6px; padding: 6px 8px; background: #f7f7f7; border-radius: 4px; font-weight: 600; }
.junker-table td, .junker-table th { vertical-align: middle !important; }
.junker-table tbody td { font-size: 14px; }
.junker-report-total { font-size: 24px; font-weight: 700; }
.junker-alert-box { padding: 12px; border-left: 4px solid #f39c12; background: #fff8e8; margin-bottom: 10px; }
.junker-sidebar-menu > a > .fa-car { font-size: 17px; }

/* POS: tarjetas legibles sin cambiar el flujo de cobro */
.junker-pos-card.product_box { min-height: 245px; border-radius: 8px; overflow: hidden; padding-bottom: 8px; }
.junker-pos-card .image-container { height: 125px; overflow: hidden; background: #fff; }
.junker-pos-card .image-container img { width: 100%; height: 100%; object-fit: contain; }
.junker-pos-card .junker-pos-badges { min-height: 23px; margin: 5px 4px 2px; }
.junker-pos-card .junker-pos-badges .label { margin-right: 3px; }
.junker-pos-card .junker-pos-name { font-weight: 700; min-height: 36px; padding: 0 5px; }
.junker-pos-card .junker-pos-detail { display: block; font-size: 11px; line-height: 1.35; margin: 2px 5px; color: #555; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#search_product { height: 44px; font-size: 16px; }
.ui-autocomplete .junker-auto-main { font-weight: 700; }
.ui-autocomplete .junker-auto-meta { display: block; font-size: 12px; color: #555; margin-top: 3px; }

@media (max-width: 1200px) {
  .junker-quick-actions { grid-template-columns: repeat(3, 1fr); }
  .junker-part-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .junker-quick-actions, .junker-part-grid { grid-template-columns: repeat(2, 1fr); }
  .junker-sticky { position: static; }
  .junker-form-actions { position: static; text-align: center; }
  .junker-form-actions .btn { width: 100%; margin: 5px 0; }
}
@media (max-width: 480px) {
  .junker-quick-actions, .junker-part-grid { grid-template-columns: 1fr; }
}
/* Detalle de fichas */
.junker-hero-image { height: 330px; display: flex; align-items: center; justify-content: center; overflow: hidden; background: #f7f7f7; border-radius: 7px; }
.junker-hero-image img { width: 100%; height: 100%; object-fit: contain; }
.junker-detail-grid > div { min-height: 76px; margin-bottom: 8px; }
.junker-detail-grid small { display: block; color: #777; margin-bottom: 4px; }
.junker-detail-grid strong { display: block; font-size: 16px; line-height: 1.35; }
.junker-readable-text { font-size: 16px; line-height: 1.55; }
.junker-source, .junker-status { display: inline-block; padding: 5px 8px; border-radius: 4px; font-size: 11px; font-weight: 700; text-transform: uppercase; }
.junker-source.new { background: #00a65a; color: #fff; }
.junker-source.used { background: #f39c12; color: #fff; }
.junker-status { background: #e9e9e9; color: #444; }
.junker-status-available, .junker-status-received { background: #dff0d8; color: #2f6b2f; }
.junker-status-reserved, .junker-status-in_disassembly, .junker-status-partial { background: #fcf8e3; color: #8a6d3b; }
.junker-status-sold, .junker-status-closed, .junker-status-sold_by_parts { background: #d9edf7; color: #31708f; }
.junker-status-damaged, .junker-status-discarded { background: #f2dede; color: #a94442; }
.junker-timeline > div { display: flex; gap: 10px; padding: 0 0 14px; }
.junker-timeline > div > i { margin-top: 4px; }
.junker-timeline > div > span { display: block; border-left: 2px solid #ddd; padding-left: 12px; width: 100%; }
.junker-timeline strong, .junker-timeline small { display: block; }
.junker-timeline small { color: #888; margin-top: 2px; }
.junker-empty { text-align: center; padding: 45px 15px; background: #fff; border: 1px dashed #ccc; border-radius: 8px; }
.junker-empty i { font-size: 38px; color: #aaa; }
.junker-part-grid .junker-part-card { width: 100%; min-height: 330px; }
.junker-part-image { display: block; position: relative; height: 165px; background: #f4f4f4; overflow: hidden; }
.junker-part-image img { width: 100%; height: 100%; object-fit: cover; }
.junker-part-image .junker-source { position: absolute; left: 8px; top: 8px; }
.junker-part-body { padding: 12px; }
.junker-part-body h4 { min-height: 38px; margin: 0 0 8px; font-size: 16px; }
.junker-part-meta span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #555; margin: 4px 0; }
.junker-part-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; padding-top: 9px; border-top: 1px solid #eee; }
.junker-part-card.is-out { opacity: .72; }
/* Dashboard Junker */
.junker-kpis .junker-kpi { display: flex; align-items: center; gap: 14px; padding: 16px; margin-bottom: 15px; background: #fff; border: 1px solid #ddd; box-shadow: 0 2px 7px rgba(0,0,0,.06); }
.junker-kpi-icon { width: 52px; height: 52px; min-width: 52px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #f0f0f0; font-size: 23px; }
.junker-kpis .junker-kpi small, .junker-kpis .junker-kpi span { display: block; color: #777; }
.junker-kpis .junker-kpi strong { display: block; font-size: 23px; line-height: 1.2; color: #222; }
.junker-alert-card { display: flex; align-items: center; gap: 12px; min-height: 72px; padding: 14px 16px; margin-bottom: 15px; background: #fff; border: 1px solid #ddd; border-left: 5px solid #f39c12; border-radius: 7px; color: #333; }
.junker-alert-card:hover { color: #111; text-decoration: none; background: #fafafa; }
.junker-alert-card > i:first-child { font-size: 25px; }
.junker-alert-card strong { font-size: 24px; }
.junker-alert-card span { flex: 1; font-size: 14px; }
.junker-recent-parts { padding: 8px 12px !important; }
.junker-mini-part { display: flex; align-items: center; gap: 9px; padding: 8px 2px; border-bottom: 1px solid #eee; color: #333; }
.junker-mini-part:last-child { border-bottom: 0; }
.junker-mini-part:hover { text-decoration: none; background: #fafafa; }
.junker-mini-part img { width: 54px; height: 54px; object-fit: cover; border-radius: 5px; background: #eee; }
.junker-mini-part > span { flex: 1; min-width: 0; }
.junker-mini-part strong, .junker-mini-part small { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.junker-mini-part b { font-size: 18px; }

/* V4: accesibilidad y ayudas para operación diaria */
.uv-assist-btn { min-width: 39px; }
.uv-assist-btn.is-off { opacity: .72; }
.uv-assist-btn:focus { outline: 3px solid rgba(255,255,255,.65); outline-offset: 1px; }
.junker-help { margin-left: 5px; cursor: help; font-size: 15px; }
.tooltip-inner { max-width: 330px; padding: 9px 12px; font-size: 14px; line-height: 1.35; text-align: left; }

/* La vista cómoda está activada por defecto y puede apagarse desde el icono del ojo. */
body.uv-comfort-mode .content-header > h1 { font-size: 24px; line-height: 1.25; }
body.uv-comfort-mode .content-wrapper label,
body.uv-comfort-mode .modal label { font-size: 14px; }
body.uv-comfort-mode .content-wrapper .form-control,
body.uv-comfort-mode .modal .form-control { min-height: 39px; font-size: 14px; }
body.uv-comfort-mode .content-wrapper textarea.form-control,
body.uv-comfort-mode .modal textarea.form-control { line-height: 1.45; }
body.uv-comfort-mode .content-wrapper .btn:not(.btn-xs),
body.uv-comfort-mode .modal .btn:not(.btn-xs) { min-height: 36px; font-size: 14px; }
body.uv-comfort-mode .content-wrapper .table > thead > tr > th,
body.uv-comfort-mode .content-wrapper .table > tbody > tr > td { font-size: 14px; padding-top: 8px; padding-bottom: 8px; }
body.uv-comfort-mode .main-sidebar .sidebar-menu > li > a { font-size: 14px; padding-top: 11px; padding-bottom: 11px; }
body.uv-comfort-mode .main-sidebar .treeview-menu > li > a { font-size: 13px; padding-top: 7px; padding-bottom: 7px; }
body.uv-comfort-mode .help-block { font-size: 13px; line-height: 1.4; }
body.uv-comfort-mode #search_product { height: 44px; font-size: 16px; }
body.uv-comfort-mode .select2-container .select2-selection--single { min-height: 39px; }
body.uv-comfort-mode .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 37px; font-size: 14px; }
body.uv-comfort-mode .select2-container--default .select2-selection--single .select2-selection__arrow { height: 37px; }
body.uv-comfort-mode .tooltip-inner { font-size: 13px; max-width: 300px; }

/* Catálogo abierto: bloques para productos/servicios que no requieren vehículo donante. */
.open-catalog-box { border-left: 5px solid #00a65a; }
.open-catalog-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.open-catalog-actions .btn { min-width: 175px; }
.catalog-mode-callout { font-size: 16px; line-height: 1.45; }
.catalog-mode-callout strong { display: inline-block; margin-bottom: 3px; }

@media (max-width: 767px) {
  .uv-assist-btn { display: inline-block !important; }
  .open-catalog-actions .btn { width: 100%; }
}
