.seatmap-shell{
  width:100%;
  max-width:100%;
  padding:18px;
  border:1px solid #dde5ef;
  border-radius:18px;
  background:#f8fafd;
}
.seatmap-legend{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:14px;
}
.seatmap-legend span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:.82rem;
  font-weight:700;
}
.seatmap-legend i{
  width:16px;
  height:16px;
  border:1px solid #cbd5e1;
  border-radius:5px;
}
.seatmap-floors{display:grid;gap:24px}
.seatmap-floor{
  max-width:100%;
  padding:16px;
  overflow:auto;
  border:1px solid #e3e9f1;
  border-radius:16px;
  background:#fff;
  -webkit-overflow-scrolling:touch;
}
.seatmap-floor-title{
  margin-bottom:12px;
  color:#172033;
  font-size:1rem;
  font-weight:900;
  text-align:center;
}
.seatmap-grid{
  display:grid;
  width:100%;
  min-width:420px;
  gap:7px;
  margin:0 auto;
}
.seatmap-cell{
  display:flex;
  min-width:0;
  min-height:48px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:4px;
  overflow:hidden;
  border:1px solid #cbd5e1;
  border-radius:9px;
  font-size:.72rem;
  line-height:1.15;
  text-align:center;
}
.seatmap-seat{
  background:#fff;
  cursor:pointer;
  transition:.15s transform,.15s box-shadow;
}
.seatmap-seat:hover{
  transform:translateY(-1px);
  box-shadow:0 5px 14px rgba(40,55,90,.14);
}
.seatmap-readonly .seatmap-seat{cursor:default}
.seatmap-readonly .seatmap-seat:hover{
  transform:none;
  box-shadow:none;
}
.seatmap-cell:disabled{opacity:1}
.seatmap-number{
  color:#172033;
  font-size:.92rem;
  font-weight:900;
}
.seatmap-label{
  max-width:100%;
  margin-top:2px;
  overflow:hidden;
  font-size:.68rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.seatmap-available{background:#fff}
.seatmap-selected{
  border-color:#3011bc;
  background:#dde8ff;
  box-shadow:0 0 0 2px rgba(48,17,188,.16);
}
.seatmap-own{border-color:#238ce3;background:#dce8ff}
.seatmap-reservation{border-color:#fe7a15;background:#ffe8d7}
.seatmap-coordinator{border-color:#159957;background:#e7f8ee}
.seatmap-blocked{border-color:#c93508;background:#f5dce0}
.seatmap-proposed{border-color:#e18a00;background:#fff4c7}
.seatmap-fixture{
  background:#e9edf3;
  color:#66758a;
  font-weight:900;
  cursor:default;
}
.seatmap-fixture.puerta{background:#e8f3ff;color:#1c6ba5}
.seatmap-fixture.bano{background:#ede8ff;color:#5a42a8}
.seatmap-fixture.escalera{background:#fff2d9;color:#9a6200}
.seatmap-fixture.conductor{background:#dde3ea;color:#394657}
.seatmap-tools{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.seatmap-mode{
  padding:8px 12px;
  border:1px solid #d5ddea;
  border-radius:999px;
  background:#fff;
  color:#172033;
  font-weight:800;
  cursor:pointer;
}
.seatmap-mode.active{
  border-color:#3011bc;
  background:#3011bc;
  color:#fff;
}
.seatmap-summary{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:10px;
  margin-bottom:14px;
  padding:11px 13px;
  border-radius:12px;
  background:#eef3fb;
}
.seatmap-summary strong{color:#172033}
.legend-available{background:#fff}
.legend-assigned{background:#ffe8d7}
.legend-coordinator{background:#e7f8ee}
.legend-blocked{background:#f5dce0}
.legend-selected{background:#dde8ff}

/* V6.4: vista compacta usada por Operación en teléfonos. */
.seatmap-compact{padding:10px}
.seatmap-compact .seatmap-floor{
  padding:10px;
  overflow:hidden;
}
.seatmap-compact .seatmap-grid{
  width:100%;
  min-width:0;
  gap:5px;
}
.seatmap-compact .seatmap-cell{min-height:40px}

@media(max-width:600px){
  .seatmap-shell{padding:10px}
  .seatmap-floor{padding:10px}
  .seatmap-cell{min-height:43px;font-size:.65rem}
  .seatmap-grid{min-width:350px;gap:5px}

  .seatmap-compact{
    padding:6px;
    border-radius:13px;
  }
  .seatmap-compact .seatmap-legend{
    gap:5px 8px;
    margin-bottom:7px;
  }
  .seatmap-compact .seatmap-legend span{
    gap:4px;
    font-size:.61rem;
  }
  .seatmap-compact .seatmap-legend i{
    width:11px;
    height:11px;
    border-radius:3px;
  }
  .seatmap-compact .seatmap-summary{
    gap:6px;
    margin-bottom:7px;
    padding:7px 8px;
    border-radius:9px;
    font-size:.72rem;
    line-height:1.25;
  }
  .seatmap-compact .seatmap-floors{gap:10px}
  .seatmap-compact .seatmap-floor{
    padding:6px;
    border-radius:11px;
  }
  .seatmap-compact .seatmap-floor-title{
    margin-bottom:5px;
    font-size:.78rem;
  }
  .seatmap-compact .seatmap-grid{
    width:100%;
    min-width:0;
    gap:3px;
  }
  .seatmap-compact .seatmap-cell{
    min-height:34px;
    padding:2px;
    border-radius:6px;
    font-size:.5rem;
    line-height:1.05;
  }
  .seatmap-compact .seatmap-number{font-size:.75rem}
  .seatmap-compact .seatmap-label{
    margin-top:1px;
    font-size:.44rem;
  }
}

@media(max-width:370px){
  .seatmap-compact .seatmap-legend span{font-size:.56rem}
  .seatmap-compact .seatmap-summary{font-size:.67rem}
  .seatmap-compact .seatmap-cell{min-height:31px}
  .seatmap-compact .seatmap-number{font-size:.7rem}
  .seatmap-compact .seatmap-label{font-size:.4rem}
}
@media(max-width:600px){#clientSeatMap .seatmap-grid{min-width:0!important}#clientSeatMap .seatmap-floor{overflow:hidden!important}}


/* V7.6.4: ajuste completo del plano dentro del portal móvil. */
.seatmap-fit,.seatmap-fit .seatmap-floors,.seatmap-fit .seatmap-floor{width:100%;max-width:100%}
.seatmap-fit .seatmap-floor{overflow:hidden}
.seatmap-fit .seatmap-grid{width:100%;min-width:0!important;max-width:100%;grid-template-columns:repeat(var(--seatmap-columns),minmax(0,1fr))!important}
.seatmap-fit .seatmap-cell{min-width:0;width:auto;overflow:hidden}
@media(max-width:600px){.seatmap-fit .seatmap-shell{padding:6px}.seatmap-fit .seatmap-floor{padding:7px}.seatmap-fit .seatmap-grid{gap:4px}.seatmap-fit .seatmap-cell{min-height:40px}.seatmap-fit .seatmap-fixture{font-size:.52rem;overflow-wrap:anywhere}.seatmap-fit .seatmap-label{display:none}}
