:root{
  --sys-space-1:4px;
  --sys-space-2:8px;
  --sys-space-3:12px;
  --sys-space-4:16px;
  --sys-radius-md:10px;
}

/* Horarios / días: evitar quiebre de palabras en mobile chico */
.hours-days-list{max-width:100%;overflow:hidden}
.hours-day-card{max-width:100%;overflow:hidden}
.hours-day-grid{
  display:grid;
  grid-template-columns:minmax(168px,1.35fr) minmax(112px,1fr) minmax(112px,1fr);
  gap:12px;
  align-items:center;
}
.hours-day-label{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  font-weight:900;
  min-width:0;
  overflow:hidden;
}
.hours-day-label span{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.hours-day-label input{flex:0 0 auto}
.hours-day-time{min-width:0;width:100%}

@media (max-width: 820px){
  .hours-day-grid{grid-template-columns:1fr;gap:10px;}
  .hours-day-label{justify-content:flex-start;}
  .hours-day-label span{overflow:visible;text-overflow:clip;}
}

/* iPhone SE y similares: comprimir sin partir texto */
@media (max-width: 390px){
  .hours-day-card{padding:10px 12px !important;}
  .hours-day-label{gap:6px;font-size:14px;}
  .hours-day-label span{font-size:14px;white-space:nowrap;}
  .hours-day-time{font-size:14px;min-height:40px;}
}

/* Turnos / filtros */
.appointments-filters{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr)) !important;
  gap:14px;
  margin-bottom:16px;
}
.appointments-toolbar{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:16px;
}
@media (max-width: 820px){
  .appointments-filters{grid-template-columns:1fr !important;}
  .appointments-toolbar{flex-direction:column;align-items:stretch;}
}

/* Wheel: estabilizar alto del item y evitar corrimiento visual inicial */
.picker,.wheel-container{position:relative;overflow:hidden;border-radius:18px;}
.wheel{
  text-align:center;
  scroll-snap-type:y mandatory;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
}
.wheel ul{list-style:none;margin:0;padding:0;}
.wheel-item,.wheel li{
  height:var(--wheel-item-height, 48px);
  min-height:var(--wheel-item-height, 48px);
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  scroll-snap-align:center;
  padding:0 14px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:18px;
  font-weight:600;
  box-sizing:border-box;
}
.wheel-item.selected,.wheel-item.active,.wheel li.selected,.wheel li.active{
  font-size:18px;
  font-weight:800;
}
.wheel-highlight,.picker-highlight{
  position:absolute;
  left:12px;
  right:12px;
  height:var(--wheel-item-height,48px);
  pointer-events:none;
  border-radius:14px;
}


/* Fix negocio card alignment */
.biz-name,
.business-name,
.location-name,
.place-name,
.card-business-name,
.map-title,
.map-business-name,
#businessName {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  margin: 0 auto 10px auto !important;
  color: #5f6673 !important;
  text-shadow: none !important;
}

.biz-address,
.business-address,
.location-address,
.place-address,
.card-business-address,
.map-address,
#businessAddress {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  margin: 0 auto 10px auto !important;
  color: #6b7280 !important;
  text-shadow: none !important;
}

.biz-maps,
.business-maps,
.location-maps,
.place-maps,
.card-business-maps,
.map-link,
#businessMaps {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  text-align: center !important;
  margin: 0 auto !important;
  color: #6b7280 !important;
  text-shadow: none !important;
}

.business-info,
.biz-info,
.location-info,
.place-info,
.card-business-info,
.map-overlay,
.map-content,
.map-info,
.map-labels {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  width: 100% !important;
}

.business-info > *,
.biz-info > *,
.location-info > *,
.place-info > *,
.card-business-info > *,
.map-overlay > *,
.map-content > *,
.map-info > *,
.map-labels > * {
  align-self: center !important;
  text-align: center !important;
}



/* Specific business frame fix */
.business-card .business-info,
.business-frame .business-info,
.location-card .location-info,
.map-card .map-info,
.map-preview .map-overlay,
.map-preview .map-content,
.store-card .store-info {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: calc(100% - 32px) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

.business-card .business-name,
.business-frame .business-name,
.location-card .location-name,
.map-card .map-title,
.map-preview .map-title,
.store-card .store-name {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  margin: 0 0 10px 0 !important;
  color: #5f6673 !important;
  text-shadow: none !important;
}

.business-card .business-address,
.business-frame .business-address,
.location-card .location-address,
.map-card .map-address,
.map-preview .map-address,
.store-card .store-address {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  margin: 0 0 10px 0 !important;
  color: #6b7280 !important;
  text-shadow: none !important;
}

.business-card .map-link,
.business-frame .map-link,
.location-card .map-link,
.map-card .map-link,
.map-preview .map-link,
.store-card .map-link {
  display: inline-block !important;
  margin: 0 auto !important;
  color: #6b7280 !important;
  text-shadow: none !important;
  float: none !important;
}


/* panel phone-shell hardening */
body.page-panel,
body.page-panel *{
  box-sizing:border-box;
}

body.page-panel{
  overflow-x:hidden;
}

body.page-panel .hours-days-list,
body.page-panel #hours-days{
  max-width:100%;
  overflow:visible !important;
}

body.page-panel .hours-day-card{
  max-width:100%;
  overflow:visible !important;
}

body.page-panel .hours-day-grid{
  display:grid;
  grid-template-columns:1fr !important;
  gap:10px !important;
  align-items:center;
}

body.page-panel .hours-day-label{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  min-width:0;
  overflow:visible !important;
}

body.page-panel .hours-day-label span{
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  line-height:1.25;
}

body.page-panel .hours-day-time{
  min-width:0;
  width:100%;
  max-width:100%;
}

body.page-panel .appointments-filters{
  grid-template-columns:1fr !important;
}
