/* =========================================================
   MISS NAILS — ADAPTIVE HEADER V5
   Principio: la presentación responde al espacio disponible
   del componente, no a la identidad del dispositivo.

   Base compacta:
   - logo + notificaciones
   - búsqueda debajo
   - navegación inferior fija

   Espacio amplio:
   - logo
   - búsqueda amplia
   - carrito
   - cuenta + menú contextual
   ========================================================= */

.mn-app{
  container-type:inline-size;
  container-name:app-shell;
}

.mn-header-inner{
  container-type:inline-size;
  container-name:header;
}

.mn-content{
  container-type:inline-size;
  container-name:content;
}

/* =========================================================
   FIX MÓVIL — NAV FIJA AL VIEWPORT REAL

   .mn-header en core.css utiliza backdrop-filter.
   Ese efecto puede convertir al header en el containing block
   de un descendiente position:fixed.

   El container correcto para esta condición es app-shell,
   porque .mn-header es descendiente de .mn-app.
   El escritorio permanece intacto.
   ========================================================= */

@container app-shell (max-width:899px){
  .mn-header{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
}

/* =========================================================
   BASE: HEADER COMPACTO
   ========================================================= */

.mn-header-inner{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.mn-brand{
  order:1;
  flex:1 1 auto;
  min-width:0;
  display:flex;
  align-items:center;
}

.mn-brand-logo{
  display:block;
  width:min(43vw,156px);
  max-width:100%;
  height:auto;
  max-height:46px;
  object-fit:contain;
}

.mn-notification{
  order:2;
  display:grid !important;
  place-items:center;
  width:42px;
  height:42px;
  flex:0 0 42px;
  visibility:visible;
  opacity:1;
}

.mn-notification svg{
  display:block;
  width:20px;
  height:20px;
}

/* La búsqueda ocupa una fila completa debajo de marca/campana. */
.mn-search{
  order:3;
  flex:1 0 100%;
  width:100%;
  min-width:0;
  height:44px;
  display:flex !important;
  visibility:visible;
  opacity:1;
  border-color:#222;
  background:#fff;
}

.mn-search-icon{
  color:#555;
}

.mn-search-input{
  color:var(--texto);
}

.mn-search-input::placeholder{
  color:#777;
  opacity:1;
}

.mn-search-submit{
  display:grid;
  place-items:center;
}

/* Una sola estructura de navegación; en compacto sus cuatro
   elementos forman la barra inferior. */
.mn-main-nav{
  order:4;
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  top:auto !important;
  bottom:0 !important;
  z-index:100;
  width:100%;
  height:auto;
  min-height:var(--mn-mobile-nav-height,calc(68px + var(--safe-bottom)));
  margin:0 !important;
  padding:7px max(7px,calc(7px + var(--safe-right)))
           calc(7px + var(--safe-bottom))
           max(7px,calc(7px + var(--safe-left)));
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
  gap:2px;
  background:rgba(255,255,255,.98);
  border-top:1px solid var(--borde);
  box-shadow:0 -4px 14px rgba(0,0,0,.06);
}

.mn-main-nav > .mn-nav-item[data-view="catalogo"],
.mn-main-nav > .mn-nav-item[data-view="carrito"],
.mn-main-nav > .mn-nav-item[data-view="pedidos"]{
  display:flex !important;
}

.mn-account-menu-wrap{
  min-width:0;
  display:flex;
  align-items:stretch;
}

.mn-account-menu-wrap > .mn-nav-item[data-view="cuenta"]{
  flex:1 1 auto;
}

.mn-account-menu-wrap > .mn-nav-item[data-view="cuenta"]{
  display:flex !important;
}

.mn-account-menu{
  display:none !important;
}

.mn-nav-item{
  min-width:0;
  min-height:54px;
  padding:6px 2px;
  border-radius:10px;
  flex-direction:column;
  gap:3px;
  font-size:10px;
}

.mn-nav-icon{
  font-size:19px;
}

.mn-content{
  padding-top:16px;
  padding-bottom:calc(94px + var(--safe-bottom));
}

/* =========================================================
   CATÁLOGO — MISMA ESTRUCTURA, ADAPTACIÓN DE ESPACIO
   ========================================================= */

.mn-view-head{
  margin-bottom:12px;
}

.mn-view-head h1{
  margin-bottom:4px;
}

.mn-view-head p{
  margin:0;
}

.mn-search-status{
  min-height:20px;
  margin:8px 0 12px;
}

.mn-categories{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  padding:2px 1px 7px;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}

.mn-categories::-webkit-scrollbar{
  display:none;
}

.mn-category-chip{
  flex:0 0 auto;
  white-space:nowrap;
}

.mn-catalog-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,148px),1fr));
  gap:10px;
  align-items:start;
}

.mn-product{
  min-width:0;
}

.mn-product-image-wrap{
  aspect-ratio:1 / 1;
  overflow:hidden;
}

.mn-product-image{
  width:100%;
  aspect-ratio:1 / 1;
  object-fit:contain;
}

.mn-product-body{
  min-width:0;
  padding:7px 2px 8px;
}

.mn-product-name{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden;
}

.mn-product-category{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.mn-product-price{
  white-space:nowrap;
}

.mn-product-stock{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

#mn-catalog-sentinel{
  min-height:1px;
}

.mn-home-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));
  gap:12px;
}

.mn-profile{
  top:calc(105px + var(--safe-top));
  padding:15px;
  border-radius:14px;
  margin-bottom:20px;
}

/* =========================================================
   ESPACIO AMPLIO DEL HEADER
   Umbral del COMPONENTE HEADER, no del dispositivo.
   ========================================================= */

@container header (min-width:900px){

  .mn-header-inner{
    display:grid;
    grid-template-columns:max-content minmax(420px,1fr) max-content;
    align-items:center;
    gap:18px;
    flex-wrap:nowrap;
  }

  .mn-brand{
    order:1;
    width:max-content;
    max-width:100%;
    flex:0 0 auto;
  }

  .mn-brand-logo{
    width:182px;
    max-width:182px;
    height:44px;
    max-height:44px;
    object-fit:contain;
  }

  .mn-search{
    order:2;
    width:auto;
    min-width:0;
    height:44px;
    flex:1 1 auto;
  }

  .mn-notification{
    display:none !important;
  }

  .mn-main-nav{
    order:3;
    position:static !important;
    width:max-content;
    min-width:0;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
    background:transparent;
    border:0;
    box-shadow:none;
  }

  .mn-main-nav > .mn-nav-item[data-view="catalogo"],
  .mn-main-nav > .mn-nav-item[data-view="pedidos"]{
    display:none !important;
  }

  .mn-main-nav > .mn-nav-item[data-view="carrito"]{
    display:flex !important;
    min-height:44px;
    padding:9px 12px;
    flex-direction:row;
    font-size:inherit;
  }

  .mn-account-menu-wrap{
    position:relative;
    display:flex;
    align-items:center;
  }

  .mn-account-menu-wrap > .mn-nav-item[data-view="cuenta"]{
    display:flex !important;
    min-height:44px;
    padding:9px 12px;
    flex-direction:row;
    font-size:inherit;
  }

  /* Menú accesible por mouse y teclado, sin JS adicional. */
  .mn-account-menu-wrap:hover .mn-account-menu,
  .mn-account-menu-wrap:focus-within .mn-account-menu{
    display:flex !important;
  }

  .mn-account-menu{
    position:absolute;
    top:calc(100% + 10px);
    right:0;
    z-index:120;
    width:280px;
    max-height:min(70vh,620px);
    overflow:auto;
    flex-direction:column;
    padding:12px 0;
    background:#fff;
    border:1px solid var(--borde);
    border-radius:14px;
    box-shadow:0 12px 30px rgba(42,31,37,.14);
  }

  .mn-account-menu::before{
    content:"";
    position:absolute;
    top:-7px;
    right:34px;
    width:14px;
    height:14px;
    background:#fff;
    border-left:1px solid var(--borde);
    border-top:1px solid var(--borde);
    transform:rotate(45deg);
  }

  .mn-account-menu a{
    display:flex;
    align-items:center;
    min-height:40px;
    padding:8px 18px;
    color:var(--texto);
    text-decoration:none;
    font-size:14px;
    white-space:nowrap;
  }

  .mn-account-menu a:hover,
  .mn-account-menu a:focus-visible{
    background:var(--rosa-claro);
    color:var(--rosa-oscuro);
    outline:none;
  }

  .mn-account-menu-divider{
    height:1px;
    margin:8px 14px;
    background:var(--borde);
  }

  .mn-content{
    padding-top:28px;
    padding-bottom:calc(40px + var(--safe-bottom));
  }
}

/* =========================================================
   CONTENIDO: LOS COMPONENTES RESPONDEN A SU PROPIO ESPACIO
   ========================================================= */

@container content (min-width:760px){
  .mn-catalog-grid{
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:16px;
  }

  .mn-home-grid{
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:16px;
  }
}

@container content (max-width:500px){

    /* Cuenta móvil: contenido funcional, sin encabezado ni texto de preview. */
  .mn-view[data-view-panel="cuenta"] .mn-view-head,
  .mn-view[data-view-panel="cuenta"] .preview-note{
    display:none;
  }
  
  .mn-view-head h1{
    font-size:25px;
  }

  .mn-account-row,
  .account-row{
    min-height:60px;
  }

  .account-row{
    gap:12px;
    padding:0 2px;
  }

  .row-icon{
    width:28px;
    flex-basis:28px;
    font-size:20px;
  }

  .row-label{
    font-size:15px;
  }
}




@media (orientation:landscape){
  .mn-content{
    padding-top:14px;
  }
}
/* =========================================================
   MISS NAILS — CARRITO MÓVIL WEB
   HEADER CONTEXTUAL — V4
   ========================================================= */

@media screen and (max-width:899px){

  .mn-app[data-view="carrito"] .mn-header,
  .mn-app[data-view="cuenta"] .mn-header{
    height:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
  }

  .mn-app[data-view="carrito"] .mn-header-inner,
  .mn-app[data-view="cuenta"] .mn-header-inner{
    height:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    gap:0 !important;
  }

  .mn-app[data-view="carrito"] .mn-brand,
  .mn-app[data-view="carrito"] .mn-search,
  .mn-app[data-view="carrito"] .mn-notification,
  .mn-app[data-view="cuenta"] .mn-brand,
  .mn-app[data-view="cuenta"] .mn-search,
  .mn-app[data-view="cuenta"] .mn-notification{
    display:none !important;
  }

  .mn-app[data-view="carrito"] .mn-main-nav,
  .mn-app[data-view="cuenta"] .mn-main-nav{
    display:grid !important;
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    top:auto !important;
    bottom:0 !important;
    z-index:100;
    width:100%;
    height:auto;
    min-height:
      var(--mn-mobile-nav-height,
      calc(68px + var(--safe-bottom)));
    margin:0 !important;
  }

  .mn-app[data-view="carrito"] .mn-content,
  .mn-app[data-view="cuenta"] .mn-content{
    padding-top:16px;
    padding-bottom:calc(94px + var(--safe-bottom));
  }

  /* Al ocultar el header de Cuenta, el perfil no debe conservar
     el desplazamiento vertical reservado para el header. */
  .mn-app[data-view="cuenta"] .mn-profile{
    top:16px;
  }

}