/* ---------- Comprobador de compatibilidad CANBUS ---------- */
.cbx { background: #fff; border: 1px solid var(--vg-line); border-radius: 28px; box-shadow: 0 30px 70px rgba(11,22,36,.08); padding: clamp(20px, 3.4vw, 40px); margin-top: 36px; text-align: left; }
.cbx__step { display: flex; align-items: center; gap: 10px; font-family: var(--vg-display); font-weight: 700; font-size: 15px; color: var(--vg-ink); margin: 0 0 16px; }
.cbx__step b { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--vg-orange); color: #fff; font-size: 13px; }
.cbx__types { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-bottom: 30px; }
.cbx__type { appearance: none; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; aspect-ratio: 1 / 1; padding: 12px; background: var(--vg-paper); border: 2px solid transparent; border-radius: 20px; color: var(--vg-ink); font: 600 14px/1.2 var(--vg-display); text-align: center; transition: border-color .2s, background .2s, transform .2s, box-shadow .2s; }
.cbx__type svg { width: 64%; max-width: 92px; height: auto; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.cbx__type svg .a { fill: var(--vg-orange-tint); stroke: var(--vg-orange); }
.cbx__type svg .w { fill: #fff; }
.cbx__type small { font: 500 11.5px/1.2 var(--vg-font); color: var(--vg-muted); }
.cbx__type:hover { transform: translateY(-3px); border-color: rgba(247,147,30,.45); background: #fff; box-shadow: 0 14px 30px rgba(11,22,36,.08); }
.cbx__type[aria-pressed="true"] { border-color: var(--vg-orange); background: #fff; box-shadow: 0 16px 34px rgba(247,147,30,.22); }
.cbx__type[aria-pressed="true"] svg .a { fill: var(--vg-orange); }
.cbx__sel { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.cbx__sel label { display: flex; flex-direction: column; gap: 6px; font: 600 13px var(--vg-font); color: var(--vg-muted); text-transform: uppercase; letter-spacing: .06em; }
.cbx__sel select { appearance: none; width: 100%; font: 500 16px var(--vg-font); color: var(--vg-ink); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317212b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 14px center / 16px no-repeat; border: 1.5px solid var(--vg-line); border-radius: 14px; padding: 14px 42px 14px 16px; text-transform: none; letter-spacing: 0; }
.cbx__sel select:focus { outline: none; border-color: var(--vg-orange); box-shadow: 0 0 0 4px rgba(247,147,30,.18); }
.cbx__sel select:disabled { background-color: #f4f3f0; color: #9aa3ab; cursor: not-allowed; }
.cbx__hint { margin: 22px 0 0; padding: 18px 20px; border-radius: 16px; background: var(--vg-paper); color: var(--vg-muted); font-size: 15px; }
.cbx__res { margin-top: 28px; }
.cbx__res[hidden], .cbx__hint[hidden] { display: none; }
.cbx__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 24px; border-radius: 20px; background: var(--vg-ink); color: #fff; }
.cbx__head h3 { margin: 0; font: 700 22px/1.2 var(--vg-display); color: #fff; }
.cbx__head p { margin: 4px 0 0; color: var(--vg-on-dark); font-size: 14.5px; }
.cbx__count { display: flex; align-items: baseline; gap: 8px; font-family: var(--vg-display); }
.cbx__count b { font-size: 40px; line-height: 1; color: var(--vg-orange); }
.cbx__count span { font-size: 14px; color: var(--vg-on-dark); max-width: 120px; line-height: 1.25; }
.cbx__cats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.cbx__cat { border: 1px solid var(--vg-line); border-radius: 18px; padding: 18px 18px 14px; background: #fff; }
.cbx__cat h4 { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font: 700 15px/1.2 var(--vg-display); color: var(--vg-ink); }
.cbx__cat h4 i { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--vg-orange-tint); color: var(--vg-orange-text); flex: none; }
.cbx__cat h4 i svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cbx__cat h4 em { margin-left: auto; font-style: normal; font-size: 12px; font-weight: 700; color: var(--vg-orange-text); background: var(--vg-orange-tint); border-radius: 999px; padding: 3px 9px; }
.cbx__cat ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.cbx__cat li { position: relative; padding-left: 22px; font-size: 14px; line-height: 1.4; color: var(--vg-text); }
.cbx__cat li::before { content: ""; position: absolute; left: 0; top: 3px; width: 14px; height: 14px; border-radius: 50%; background: #e8f9f0 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2321a366' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 9px no-repeat; }
.cbx__cat li.c::after { content: " *"; color: var(--vg-orange-text); font-weight: 700; }
.cbx__more { appearance: none; border: 0; background: none; padding: 6px 0 0; color: var(--vg-orange-text); font: 700 13px var(--vg-font); cursor: pointer; }
.cbx__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin-top: 18px; font-size: 13px; color: var(--vg-muted); }
.cbx__foot p { margin: 0; max-width: 680px; }
@media (max-width: 1000px) { .cbx__cats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .cbx__types { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .cbx__type { font-size: 12.5px; border-radius: 16px; padding: 8px; }
  .cbx__type small { display: none; }
  .cbx__sel { grid-template-columns: minmax(0, 1fr); }
  .cbx__cats { grid-template-columns: minmax(0, 1fr); }
  .cbx__count b { font-size: 32px; }
}
/* selector de tipo compacto (una fila) */
.cbx__types { grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 8px; margin-bottom: 24px; }
.cbx__type { aspect-ratio: auto; gap: 4px; padding: 14px 4px 12px; border-radius: 16px; font-size: 12.5px; line-height: 1.15; min-height: 0; }
.cbx__type svg { width: 64px; max-width: 80%; }
.cbx__type small { display: none; }
@media (max-width: 1000px) { .cbx__types { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 760px) { .cbx__types { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; } .cbx__type { font-size: 10.5px; padding: 8px 2px; border-radius: 12px; } .cbx__type svg { width: 34px; } }
