﻿.ipe-matriz { margin: 1.5rem 0; }
.ipe-zona { color: #666; font-size: .875rem; margin-bottom: .75rem; }
.ipe-tabla { width: 100%; border-collapse: separate; border-spacing: 5px; margin-bottom: 1rem; }
.ipe-tabla th, .ipe-tabla td { padding: 0; }
.ipe-tabla thead th { text-align: center; font-size: .8rem; font-weight: 600; padding: .35rem .25rem; color: #444; white-space: nowrap; transition: color .15s; }
.ipe-tabla thead .ipe-th-total { text-align: right; }
.ipe-tabla thead th.ipe-col-activa { color: #111; font-weight: 700; }
.ipe-td-cant { text-align: right; padding-right: .75rem !important; font-weight: 700; white-space: nowrap; font-size: .95rem; }
.ipe-celda { text-align: center; font-size: .875rem; border-radius: 6px; padding: 1.2rem .3rem; }
.ipe-disponible { border: 1.5px solid #d8d8d8; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease; outline: none; }
.ipe-disponible:hover { border-color: #999; background-color: #fafafa; }
.ipe-disponible:focus-visible { outline: 2px solid #0073aa; outline-offset: 2px; }
.ipe-disponible.ipe-activa { border-color: #111; border-width: 2px; font-weight: 700; background-color: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.ipe-no-disponible { border: 1.5px solid #ebebeb; color: #ccc; cursor: not-allowed; }
.ipe-aviso { text-align: right; font-size: .85rem; color: #444; min-height: 1.4em; }
@media (max-width: 480px) {
    .ipe-tabla { border-spacing: 3px; }
    .ipe-celda { padding: 1rem .15rem; font-size: .8rem; }
    .ipe-tabla thead th { font-size: .72rem; }
}
