/* Sprint 7.17.5 · Pulido UI/UX final (aditivo) */

/* Carrusel público de franquicias */
.public-franchise-browser{
  position:relative;
  overflow:hidden;
  padding:28px 26px 24px;
  border-color:rgba(34,211,238,.22);
  background:
    radial-gradient(circle at 12% 0%,rgba(14,165,233,.10),transparent 34%),
    linear-gradient(145deg,rgba(5,16,30,.98),rgba(6,25,42,.94));
}
.public-franchise-heading{margin-bottom:20px}
.public-franchise-heading .eyebrow{letter-spacing:.14em}
.public-franchise-heading h3{font-size:clamp(1.2rem,2vw,1.55rem)}
.public-franchise-heading button{transition:transform .18s ease,border-color .18s ease,background .18s ease}
.public-franchise-heading button:hover{transform:translateY(-1px);background:rgba(34,211,238,.09)}

.public-franchise-carousel{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:12px;align-items:center}
.public-franchise-tabs{
  display:flex;
  gap:12px;
  overflow-x:auto;
  padding:4px 2px 12px;
  scroll-behavior:smooth;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
  overscroll-behavior-inline:contain;
}
.public-franchise-tabs::-webkit-scrollbar{display:none}
.public-franchise-tab{
  flex:0 0 184px;
  min-width:184px;
  min-height:88px;
  padding:14px 15px;
  grid-template-columns:38px minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  column-gap:10px;
  row-gap:5px;
  scroll-snap-align:start;
  overflow:hidden;
  border-radius:17px;
  background:linear-gradient(180deg,rgba(15,29,47,.92),rgba(8,19,33,.92));
  box-shadow:0 10px 24px rgba(0,0,0,.16);
}
.public-franchise-tab>span{
  grid-row:1/3;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  font-size:1.45rem;
  border-radius:12px;
  background:rgba(255,255,255,.05);
}
.public-franchise-tab strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.84rem;
  line-height:1.2;
}
.public-franchise-tab small{
  grid-column:3;
  grid-row:1;
  align-self:start;
  min-width:26px;
  height:26px;
  padding:0 7px;
  font-size:.68rem;
  background:rgba(34,211,238,.16);
  color:#a5f3fc;
}
.public-franchise-tab .franchise-status{
  grid-column:2/4;
  grid-row:2;
  min-width:0;
  color:#94a3b8;
  font-size:.67rem;
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.public-franchise-tab:hover{box-shadow:0 14px 30px rgba(0,0,0,.24)}
.public-franchise-tab.is-active{
  border-color:#22d3ee;
  background:linear-gradient(180deg,rgba(8,145,178,.22),rgba(8,47,73,.48));
  box-shadow:0 0 0 1px rgba(34,211,238,.1),0 14px 28px rgba(6,182,212,.12);
}
.public-franchise-tab.is-active .franchise-status{color:#67e8f9}
.public-franchise-tab.is-upcoming{opacity:.52;filter:saturate(.55);cursor:not-allowed}
.public-franchise-tab.is-upcoming small{display:none}
.public-franchise-tab.is-upcoming .franchise-status{color:#64748b}

.franchise-carousel-arrow{
  width:42px;height:42px;display:grid;place-items:center;
  border:1px solid rgba(148,163,184,.22);border-radius:50%;
  background:rgba(15,23,42,.9);color:#e2e8f0;
  font-size:1.25rem;font-weight:900;cursor:pointer;
  transition:.18s ease;z-index:2;
}
.franchise-carousel-arrow:hover:not(:disabled){border-color:#22d3ee;color:#67e8f9;transform:scale(1.05)}
.franchise-carousel-arrow:disabled{opacity:.28;cursor:default}

/* Catálogo público */
.premium-products-grid .product-card{
  border-color:rgba(148,163,184,.16);
  box-shadow:0 12px 26px rgba(0,0,0,.18);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.premium-products-grid .product-card:hover{
  transform:translateY(-4px);
  border-color:rgba(34,211,238,.38);
  box-shadow:0 20px 38px rgba(0,0,0,.28);
}
.premium-products-grid .product-image{overflow:hidden}
.premium-products-grid .product-image img{transition:transform .35s ease}
.premium-products-grid .product-card:hover .product-image img{transform:scale(1.035)}
.product-taxonomy span{padding:6px 8px;letter-spacing:.02em}

/* Panel administrativo: consistencia visual sin alterar estructura */
.admin-view .admin-card,
.admin-view .admin-kpi-card,
.admin-view .admin-table-card{
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.admin-view .admin-card:hover,
.admin-view .admin-kpi-card:hover{
  border-color:rgba(29,102,209,.22);
  box-shadow:0 12px 28px rgba(15,23,42,.07);
}
.admin-primary-button,.admin-reset-button,.admin-secondary-button{transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}
.admin-primary-button:hover:not(:disabled),.admin-reset-button:hover:not(:disabled),.admin-secondary-button:hover:not(:disabled){transform:translateY(-1px)}
.admin-table-wrap{scrollbar-width:thin}
.admin-table tbody tr{transition:background .15s ease}
.admin-table tbody tr:hover{background:rgba(29,102,209,.035)}

@media(max-width:900px){
  .public-franchise-browser{padding:22px 18px 18px}
  .public-franchise-carousel{grid-template-columns:36px minmax(0,1fr) 36px;gap:8px}
  .franchise-carousel-arrow{width:36px;height:36px}
  .public-franchise-tab{flex-basis:168px;min-width:168px}
}
@media(max-width:620px){
  .public-franchise-browser{padding:18px 14px 14px;border-radius:16px}
  .public-franchise-heading{align-items:flex-start;flex-direction:column;gap:10px}
  .public-franchise-carousel{display:block}
  .franchise-carousel-arrow{display:none}
  .public-franchise-tabs{margin-inline:-2px;padding-bottom:8px}
  .public-franchise-tab{flex-basis:154px;min-width:154px;min-height:82px;padding:12px}
  .public-franchise-tab>span{width:34px;height:34px;font-size:1.25rem}
}
@media(prefers-reduced-motion:reduce){
  .public-franchise-tabs{scroll-behavior:auto}
  .public-franchise-tab,.franchise-carousel-arrow,.product-card,.product-image img{transition:none!important}
}
