/* ==========================================================================
   RESTOADMIN — NAV DOCK v4 «single source of truth» (v1.91.0)

   POR QUÉ EXISTE ESTE ARCHIVO
   El dock acumuló 5 capas de CSS en conflicto (layout, components v1/v1.90.21/
   v1.90.23, ios-native fases 1–5 + v1.90.25, polish, web). La regla
   `body.is-ios #bottom-nav .nav-item span { display:none }` de v1.90.25
   ocultaba TAMBIÉN el <span class="nav-ic"> (contenedor del ícono) → en iOS
   solo se veía el tab activo. Ese era el bug reportado.

   CONTRATO
   - Este archivo se carga AL FINAL y ES la autoridad del dock/sidebar.
   - Selectores anclados a #app-shell (especificidad 2 IDs) + !important en
     props que las capas legacy marcan !important. Nada del legacy gana.
   - Markup nuevo (router v1.91.0):
       <span class="nav-ic"><svg><path.ic-r/><path.ic-f/></svg></span>
       <span class="nav-label">…</span>
     .ic-r = trazo regular (idle) · .ic-f = variante fill (activo).
   - Cualquier ajuste futuro del dock se hace AQUÍ, no en las capas viejas.
   ========================================================================== */

/* ── 0. TOKENS ─────────────────────────────────────────────────────────── */
:root{
  --dock-gold:        #d7c8b1;
  --dock-gold-deep:   #a99578;
  --dock-label:       #f4f1eb;
  --dock-idle:        #c1bcb3;
  --dock-glass-hi:    #252523;
  --dock-glass-lo:    #252523;
  --dock-ease:        cubic-bezier(0.22, 1, 0.32, 1);
}

/* ── 1. ICONOGRAFÍA — dual-weight crossfade (patrón SF Symbols) ────────── */
#app-shell #bottom-nav .nav-item .nav-ic{
  display: grid !important;
  place-items: center;
  position: static !important;
  width: 26px !important;
  height: 26px !important;
  min-width: 26px;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  color: inherit;
  opacity: 1 !important;
}
#app-shell #bottom-nav .nav-item .nav-ic svg{
  width: 22px !important;
  height: 22px !important;
  display: block !important;
  overflow: visible;
}
#app-shell #bottom-nav .nav-item .nav-ic svg path{
  fill: currentColor;
  transition: opacity 0.22s ease;
}
#app-shell #bottom-nav .nav-item .nav-ic svg .ic-f{ opacity: 0; }
#app-shell #bottom-nav .nav-item.active .nav-ic svg .ic-r{ opacity: 0; }
#app-shell #bottom-nav .nav-item.active .nav-ic svg .ic-f{ opacity: 1; }
/* Fallback FontAwesome para rutas legacy sin par de íconos */
#app-shell #bottom-nav .nav-item .nav-ic i{
  font-size: 17px;
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}

/* ── 2. DOCK MÓVIL / NATIVO — píldora morfológica ──────────────────────────
   Los 7 destinos SIEMPRE visibles (ícono). El activo se expande en una
   píldora de vidrio dorado con etiqueta; los demás reparten el resto.
   flex-grow es animable → la expansión corre a 60fps sin JS.              */
#app-shell #bottom-dock{
  height: 60px !important;
  border-radius: 30px !important;
  background:
    linear-gradient(to bottom, var(--dock-glass-hi), var(--dock-glass-lo)) !important;
  border: 1px solid rgba(255, 255, 255, 0.09) !important;
  box-shadow:
    0 18px 48px rgba(0, 0, 0, 0.58),
    inset 0 1px 0 rgba(255, 255, 255, 0.10) !important;
}
#app-shell #bottom-nav{
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: stretch !important;
  gap: 3px !important;
  padding: 0 9px !important;
  overflow: hidden !important;
}
#app-shell #bottom-nav .nav-item{
  position: relative !important;
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 46px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 999px !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--dock-idle) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  box-shadow: none !important;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition:
    flex-grow 0.36s var(--dock-ease),
    background 0.24s ease,
    border-color 0.24s ease,
    color 0.20s ease,
    transform 0.14s ease !important;
}
#app-shell #bottom-nav .nav-item:active{ transform: scale(0.96) !important; }

/* Etiqueta: colapsada en idle, se despliega dentro de la píldora activa */
#app-shell #bottom-nav .nav-item .nav-label{
  position: static !important;
  display: block !important;
  max-width: 0 !important;
  margin-left: 0 !important;
  opacity: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: clip !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  color: var(--dock-label) !important;
  pointer-events: none;
  transition:
    max-width 0.36s var(--dock-ease),
    margin-left 0.36s var(--dock-ease),
    opacity 0.20s ease 0.08s !important;
}

/* Estado activo: lente de vidrio dorado */
#app-shell #bottom-nav .nav-item.active{
  flex-grow: 3.2 !important;
  color: var(--dock-gold) !important;
  background:
    linear-gradient(180deg, rgba(232, 201, 137, 0.18), rgba(214, 162, 76, 0.08)) !important;
  border-color: rgba(232, 201, 137, 0.26) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.10),
    0 8px 22px -10px rgba(0, 0, 0, 0.55),
    0 0 20px -6px rgba(214, 162, 76, 0.38) !important;
}
#app-shell #bottom-nav .nav-item.active .nav-label{
  max-width: 128px !important;
  margin-left: 7px !important;
  opacity: 1 !important;
}
#app-shell #bottom-nav .nav-item.active .nav-ic svg{
  filter: drop-shadow(0 0 6px rgba(232, 201, 137, 0.45));
}
/* Sin indicadores dobles heredados (puntos ::after de capas previas) */
#app-shell #bottom-nav .nav-item::after,
#app-shell #bottom-nav .nav-item.active::after{
  content: none !important;
  display: none !important;
}

/* Badge (punto de novedad) reanclado al ícono */
#app-shell #bottom-nav .nav-item .nav-badge{
  position: absolute !important;
  top: 7px !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(6px);
  width: 7px; height: 7px;
  border-radius: 999px;
  background: var(--dock-gold-deep);
  box-shadow: 0 0 10px rgba(214, 162, 76, 0.45);
}
#app-shell #bottom-nav .nav-item.active .nav-badge{
  left: auto !important;
  right: 10px !important;
  transform: none;
}
#app-shell #bottom-nav .nav-item .nav-badge.hidden{ display: none !important; }

/* Paisaje compacto: misma mecánica, dock más bajo */
body.is-compact-landscape #app-shell #bottom-dock{ height: 52px !important; }
body.is-compact-landscape #app-shell #bottom-nav .nav-item{ height: 40px !important; }
body.is-compact-landscape #app-shell #bottom-nav .nav-item.active{ flex-grow: 2.4 !important; }
body.is-compact-landscape #app-shell #bottom-nav .nav-item .nav-label{ font-size: 9px !important; }

/* iPhones angostos (SE / mini): etiqueta un punto menor para 7 destinos */
@media (max-width: 389px){
  #app-shell #bottom-nav .nav-item .nav-label{ font-size: 9px !important; letter-spacing: 0.04em !important; }
  #app-shell #bottom-nav .nav-item.active{ flex-grow: 2.8 !important; }
}

/* Accesibilidad: sin animación si el usuario lo pide */
@media (prefers-reduced-motion: reduce){
  #app-shell #bottom-nav .nav-item,
  #app-shell #bottom-nav .nav-item .nav-label,
  #app-shell #bottom-nav .nav-item .nav-ic svg path{ transition: none !important; }
}

/* ── 3. SIDEBAR WEB (≥1080px, shell web) — back-office premium ─────────── */
@media (min-width: 1080px) and (hover: hover) and (pointer: fine){
  /* Marca correcta: sello RestoAdmin (antes quedaba el sello de CoffeeOS) */
  html.is-web-shell #app-shell #bottom-dock::before{
    background:
      linear-gradient(180deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.30)),
      url('../img/brand/ra_mark.png') center/contain no-repeat !important;
  }

  html.is-web-shell #app-shell #bottom-dock{
    height: auto !important;
    border-radius: 30px !important;
  }
  html.is-web-shell #app-shell #bottom-nav{
    position: relative !important;
    inset: auto !important;
    width: 100%;
    height: calc(100% - 74px) !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    gap: 7px !important;
    padding: 0 5px 8px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }
  html.is-web-shell #app-shell #bottom-nav .nav-item{
    flex: 0 0 auto !important;
    width: 100% !important;
    height: 46px !important;
    border-radius: 13px !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    padding: 0 13px !important;
    color: var(--txt-dim, #A39A89) !important;
    transition: background 0.18s ease, border-color 0.18s ease,
                color 0.18s ease, transform 0.14s ease !important;
  }
  html.is-web-shell #app-shell #bottom-nav .nav-item:hover{
    background: rgba(255, 255, 255, 0.05) !important;
    color: var(--txt-main, #ECE6D9) !important;
    transform: translateX(2px);
  }
  html.is-web-shell #app-shell #bottom-nav .nav-item .nav-ic{
    width: 24px !important; height: 24px !important;
  }
  html.is-web-shell #app-shell #bottom-nav .nav-item .nav-ic svg{
    width: 21px !important; height: 21px !important;
  }
  /* Etiqueta SIEMPRE visible en el sidebar */
  html.is-web-shell #app-shell #bottom-nav .nav-item .nav-label{
    max-width: none !important;
    margin-left: 0 !important;
    opacity: 0.85 !important;
    flex: 1 1 auto;
    text-align: left;
    text-overflow: ellipsis !important;
    font-size: 0.8rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
    color: var(--txt-main, #ECE6D9) !important;
  }
  html.is-web-shell #app-shell #bottom-nav .nav-item.active{
    flex-grow: 0 !important;
    background: linear-gradient(90deg, rgba(214, 162, 76, 0.17),
                rgba(214, 162, 76, 0.05) 70%, transparent) !important;
    border-color: rgba(214, 162, 76, 0.24) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
    color: var(--dock-gold) !important;
  }
  html.is-web-shell #app-shell #bottom-nav .nav-item.active::before{
    content: '';
    position: absolute;
    left: -1px; top: 9px; bottom: 9px;
    width: 3px;
    border-radius: 3px;
    background: linear-gradient(180deg, var(--dock-gold), var(--dock-gold-deep));
    box-shadow: 0 0 10px rgba(214, 162, 76, 0.6);
  }
  html.is-web-shell #app-shell #bottom-nav .nav-item.active .nav-label{
    opacity: 1 !important;
    color: #F2E7D4 !important;
  }
  html.is-web-shell #app-shell #bottom-nav .nav-item.active .nav-ic svg{
    filter: none;
  }
  /* El sidebar no usa badge flotante centrado: vuelve a la esquina del ícono */
  html.is-web-shell #app-shell #bottom-nav .nav-item .nav-badge,
  html.is-web-shell #app-shell #bottom-nav .nav-item.active .nav-badge{
    top: 8px !important;
    left: 26px !important;
    right: auto !important;
    transform: none;
  }
}
/* Stable navigation: destinations keep their place and a visible name. */
#app-shell #bottom-dock{background:var(--bg-surface,#252523)!important;border-radius:14px!important;box-shadow:0 4px 16px #0003!important}
#app-shell #bottom-nav .nav-item,#app-shell #bottom-nav .nav-item.active{flex-grow:1!important;border-radius:8px!important;transition:background-color .15s ease,color .15s ease!important;transform:none!important;box-shadow:none!important}
#app-shell #bottom-nav .nav-item.active{background:#3b3730!important;border-color:#665d50!important;color:var(--dock-label)!important}
#app-shell #bottom-nav .nav-item.active .nav-ic svg{filter:none!important}
#app-shell #bottom-nav .nav-item.active::before{background:var(--dock-gold)!important;box-shadow:none!important}
#app-shell #bottom-nav .nav-item .nav-badge{box-shadow:none}
@media(max-width:1079px),(hover:none),(pointer:coarse){
  #app-shell #bottom-dock{height:68px!important}
  #app-shell #bottom-nav{gap:2px!important;padding:4px!important}
  #app-shell #bottom-nav .nav-item,#app-shell #bottom-nav .nav-item.active{flex:1 1 0!important;min-width:40px!important;height:56px!important;flex-direction:column!important;gap:4px!important}
  #app-shell #bottom-nav .nav-item .nav-label,#app-shell #bottom-nav .nav-item.active .nav-label{display:block!important;max-width:100%!important;margin:0!important;opacity:1!important;font-size:10px!important;line-height:1.2!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;text-overflow:ellipsis!important;transition:none!important;color:inherit!important}
  #app-shell #bottom-nav .nav-item .nav-ic{height:23px!important;width:23px!important;min-width:23px}
}
@media(min-width:1080px) and (hover:hover) and (pointer:fine){
  html.is-web-shell #app-shell #bottom-nav .nav-item{transform:none!important;flex-grow:0!important}
  html.is-web-shell #app-shell #bottom-nav .nav-item.active{background:#3b3730!important;box-shadow:none!important;border-color:#665d50!important}
}
