    /* ── BÚSQUEDA ─────────────────────────────────────────── */
    .tp-busqueda {
      margin-bottom: var(--espacio-lg);
    }

    .tp-input {
      width: 100%;
      font-family: var(--fuente-principal);
      font-size: 0.9rem;
      color: var(--color-texto);
      background-color: var(--color-fondo);
      border: 1.5px solid var(--color-borde);
      border-radius: var(--radio-sm);
      padding: 10px var(--espacio-md);
      outline: none;
      min-height: 48px;
      box-sizing: border-box;
      transition: border-color 0.15s, box-shadow 0.15s;
    }

    .tp-input:focus {
      border-color: var(--color-acento);
      box-shadow: var(--sombra-resultado);
    }

    /* ── GRILLA ───────────────────────────────────────────── */
    .tp-overflow {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      margin-bottom: var(--espacio-md);
    }

    .tp-grilla {
      display: grid;
      grid-template-columns: repeat(18, minmax(32px, 1fr));
      grid-auto-rows: auto;
      gap: 2px;
      min-width: 590px;
    }

    /* ── CELDA DE ELEMENTO ────────────────────────────────── */
    .el-cel {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 2px 1px;
      border-radius: 3px;
      cursor: pointer;
      min-height: 50px;
      border: 1.5px solid transparent;
      transition: transform 0.12s, box-shadow 0.15s;
      position: relative;
      overflow: hidden;
    }

    .el-cel:hover {
      transform: scale(1.2);
      z-index: 20;
      box-shadow: 0 4px 14px rgba(0,0,0,0.28);
    }

    .el-cel.sel {
      border-color: var(--color-texto) !important;
      z-index: 10;
      box-shadow: 0 0 0 3px rgba(26,92,56,0.35);
      transform: scale(1.08);
    }

    .el-cel.dim {
      opacity: 0.1;
      pointer-events: none;
    }

    .el-n  { font-size: 7px;   line-height: 1;   opacity: 0.8; align-self: flex-start; padding-left: 2px; }
    .el-s  { font-size: 14px;  font-weight: 600; line-height: 1.1; }
    .el-nm { font-size: 5.5px; opacity: 0.75;    line-height: 1; text-align: center; }

    /* ── PLACEHOLDERS Y ETIQUETAS ─────────────────────────── */
    .el-ph {
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 50px;
      font-size: 7px;
      color: var(--color-texto-suave);
      border: 1px dashed var(--color-borde);
      border-radius: 3px;
    }

    .el-lbl {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      min-height: 50px;
      font-size: 6.5px;
      font-style: italic;
      color: var(--color-texto-suave);
      padding-right: 3px;
      overflow: hidden;
      white-space: nowrap;
    }

    .tp-sep {
      grid-column: 1 / span 18;
      height: 8px;
    }

    /* ── LEYENDA DE CATEGORÍAS ────────────────────────────── */
    .tp-leyenda {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
      margin-bottom: var(--espacio-xl);
    }

    .ley-item {
      display: flex;
      align-items: center;
      gap: 4px;
      font-size: 0.75rem;
      color: var(--color-texto-suave);
      cursor: pointer;
      padding: 3px 8px;
      border-radius: var(--radio-sm);
      border: 1px solid transparent;
      transition: all 0.15s;
      user-select: none;
    }

    .ley-item:hover,
    .ley-item.activo {
      border-color: var(--color-borde);
      color: var(--color-texto);
      background: var(--color-fondo-card);
    }

    .ley-color {
      width: 12px;
      height: 12px;
      border-radius: 2px;
      flex-shrink: 0;
    }

    /* ── INSTRUCCIÓN INICIAL ──────────────────────────────── */
    .tp-instruccion {
      display: flex;
      align-items: center;
      gap: var(--espacio-md);
      padding: var(--espacio-lg);
      background: var(--color-fondo-card);
      border: 1px solid var(--color-borde);
      border-radius: var(--radio-md);
      margin-bottom: var(--espacio-xl);
      color: var(--color-texto-suave);
      font-size: 0.875rem;
      line-height: 1.5;
    }

    .tp-instruccion svg {
      flex-shrink: 0;
      opacity: 0.6;
    }

    /* ── ZONA DE LA TARJETA INTERACTIVA ───────────────────── */
    .feature-zona {
      perspective: 900px;
      margin-bottom: var(--espacio-2xl);
      display: none;
    }

    .feature-zona.visible {
      display: block;
    }

    .feature-card {
      width: 100%;
      max-width: 680px;
      height: 270px;
      position: relative;
      transform-style: preserve-3d;
      transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
      cursor: pointer;
    }

    .feature-card.volteada {
      transform: rotateY(180deg);
    }

    /* Ambas caras */
    .feature-frente,
    .feature-dorso {
      position: absolute;
      inset: 0;
      border-radius: var(--radio-lg);
      backface-visibility: hidden;
      -webkit-backface-visibility: hidden;
      border: 1px solid var(--color-borde);
      overflow: hidden;
    }

    /* ── FRENTE ───────────────────────────────────────────── */
    .feature-frente {
      background: var(--color-fondo-card);
      display: grid;
      grid-template-columns: 120px 1fr;
      align-items: center;
    }

    .feat-bloque-sym {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      height: 100%;
      padding: var(--espacio-lg) var(--espacio-md);
    }

    .feat-z {
      font-size: 0.75rem;
      font-weight: 600;
      opacity: 0.7;
      margin-bottom: 4px;
    }

    .feat-simbolo {
      font-family: var(--fuente-titulo);
      font-size: 3.8rem;
      font-weight: 700;
      font-style: italic;
      line-height: 1;
    }

    .feat-masa {
      font-size: 0.7rem;
      margin-top: 6px;
      opacity: 0.65;
    }

    .feat-info {
      padding: var(--espacio-lg) var(--espacio-xl) var(--espacio-lg) var(--espacio-md);
      border-left: 1px solid var(--color-borde);
      height: 100%;
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: var(--espacio-sm);
    }

    .feat-nombre {
      font-family: var(--fuente-titulo);
      font-size: 1.5rem;
      font-weight: 600;
      color: var(--color-texto);
      line-height: 1.15;
    }

    .feat-cat-badge {
      display: inline-block;
      font-size: 0.7rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.07em;
      padding: 2px 8px;
      border-radius: 20px;
      width: fit-content;
    }

    .feat-props-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px var(--espacio-lg);
      margin-top: 4px;
    }

    .feat-prop {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }

    .feat-prop-l {
      font-size: 0.65rem;
      color: var(--color-texto-suave);
      text-transform: uppercase;
      letter-spacing: 0.06em;
    }

    .feat-prop-v {
      font-size: 0.9rem;
      font-weight: 600;
      color: var(--color-texto);
    }

    /* ── DORSO ────────────────────────────────────────────── */
    .feature-dorso {
      background: var(--color-header-bg);
      transform: rotateY(180deg);
      color: var(--color-header-texto);
      display: grid;
      grid-template-columns: 110px 1fr;
    }

    .dorso-lateral {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: var(--espacio-lg) var(--espacio-md);
      background: rgba(255,255,255,0.04);
      border-right: 1px solid rgba(240,237,230,0.12);
      gap: 4px;
    }

    .dorso-sym {
      font-family: var(--fuente-titulo);
      font-size: 3.2rem;
      font-weight: 700;
      font-style: italic;
      line-height: 1;
      color: #6EBF8B;
    }

    .dorso-nombre {
      font-size: 0.65rem;
      opacity: 0.55;
      text-align: center;
      line-height: 1.3;
    }

    .dorso-contenido {
      padding: var(--espacio-lg) var(--espacio-lg) var(--espacio-lg) var(--espacio-lg);
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 10px;
    }

    .dorso-titulo {
      font-size: 0.6rem;
      text-transform: uppercase;
      letter-spacing: 0.12em;
      opacity: 0.45;
      margin-bottom: 2px;
    }

    .dorso-props {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px var(--espacio-xl);
    }

    .dp-item {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }

    .dp-label {
      font-size: 0.6rem;
      opacity: 0.5;
      text-transform: uppercase;
      letter-spacing: 0.07em;
    }

    .dp-val {
      font-size: 0.8rem;
      font-weight: 500;
      line-height: 1.3;
      color: var(--color-header-texto);
    }

    .dp-val.cfg {
      font-size: 0.75rem;
      font-family: 'Courier New', monospace;
      color: #A8D5B5;
    }

    /* Hint de volteo */
    .flip-hint {
      font-size: 0.75rem;
      color: var(--color-texto-suave);
      margin-top: var(--espacio-sm);
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .flip-hint::before {
      content: '';
      display: inline-block;
      width: 16px;
      height: 16px;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235C5649' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 4v6h6'/%3E%3Cpath d='M3.51 15a9 9 0 1 0 .49-3.6'/%3E%3C/svg%3E");
      background-size: contain;
      background-repeat: no-repeat;
      flex-shrink: 0;
    }

    /* ── RESPONSIVE ───────────────────────────────────────── */
    @media (max-width: 640px) {
      .feature-card      { height: 340px; }
      .feature-frente    { grid-template-columns: 90px 1fr; }
      .feature-dorso     { grid-template-columns: 80px 1fr; }
      .feat-simbolo      { font-size: 2.8rem; }
      .feat-nombre       { font-size: 1.2rem; }
      .feat-props-grid   { grid-template-columns: 1fr; gap: 6px; }
      .dorso-sym         { font-size: 2.4rem; }
      .dorso-props       { grid-template-columns: 1fr; gap: 8px; }
    }
