/* layout.css · menú izquierdo, barra superior y área de trabajo */
.app { display: flex; min-height: 100vh; min-height: 100dvh; }

.menu {
  width: var(--menu-ancho); flex: 0 0 var(--menu-ancho);
  background: var(--noche); color: #E7EEF8;
  display: flex; flex-direction: column;
  position: sticky; top: 0; height: 100vh; height: 100dvh;
  padding: calc(18px + env(safe-area-inset-top, 0px)) 14px calc(18px + env(safe-area-inset-bottom, 0px));
  z-index: 40; overflow: hidden;
}
/* Franja de atardecer: el detalle que identifica la marca */
.menu::before {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 200px; pointer-events: none;
  background: linear-gradient(180deg, rgba(19,41,75,0) 0%, rgba(242,92,128,.28) 55%, rgba(255,182,39,.45) 100%);
}
.marca { position: relative; padding: 6px 10px 18px; margin-bottom: 10px; }
.marca .sol { width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(180deg, var(--mango), var(--flamenco)); margin-bottom: 12px; box-shadow: 0 0 0 6px rgba(255,182,39,.15); }
.marca .nombre { font-family: var(--f-titulo); font-weight: 800; font-size: 1.55rem; color: #fff; line-height: 1; letter-spacing: -.02em; }
.marca .lema { font-size: .88rem; color: var(--mango); margin-top: 6px; }
.menu nav { flex: 1; overflow-y: auto; position: relative; }
.menu .grupo-menu { font-size: .76rem; color: rgba(231,238,248,.5); padding: 16px 12px 6px; font-weight: 700; letter-spacing: .04em; }
.menu a.item {
  display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px;
  color: #E7EEF8; text-decoration: none; font-weight: 600; min-height: 46px;
}
.menu a.item .ico { width: 26px; text-align: center; font-size: 1.15rem; }
.menu a.item .cuenta { margin-left: auto; font-size: .76rem; font-weight: 800; color: var(--noche); background: var(--mango); border-radius: 999px; padding: 1px 8px; }
.menu a.item:hover { background: rgba(255,255,255,.07); }
.menu a.item.activo { background: #fff; color: var(--noche); }
.menu .pie { position: relative; padding: 12px 10px 0; font-size: .9rem; }
.menu .pie .yo { color: #fff; font-weight: 800; }
.menu .pie button { background: none; border: 0; color: #fff; opacity: .8; padding: 6px 0; text-decoration: underline; }

.principal { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.tope {
  position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: 10px;
  height: calc(var(--tope) + env(safe-area-inset-top, 0px)); padding: env(safe-area-inset-top, 0px) 20px 0;
  background: rgba(244,247,250,.9); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--linea);
}
.tope .titulo-vista { font-family: var(--f-titulo); font-weight: 800; color: var(--noche); font-size: 1.15rem; flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.btn-menu { display: none; background: #fff; border: 1px solid var(--linea); border-radius: 12px; font-size: 1.3rem; color: var(--noche); width: 44px; height: 44px; }
.estado { display: flex; align-items: center; gap: 7px; font-size: .8rem; color: var(--tinta-2); white-space: nowrap; background: #fff; border: 1px solid var(--linea); border-radius: 999px; padding: 4px 10px; }
.estado i { width: 8px; height: 8px; border-radius: 50%; background: var(--mango); display: inline-block; }
.estado i.ok { background: var(--palma); box-shadow: 0 0 0 3px rgba(46,158,107,.18); }
.estado i.bad { background: var(--rojo); }
.trabajo { padding: 22px 22px calc(110px + env(safe-area-inset-bottom, 0px)); max-width: 900px; width: 100%; margin: 0 auto; }
.velo { display: none; }

@media (max-width: 860px) {
  .menu { position: fixed; left: 0; top: 0; bottom: 0; transform: translateX(-105%); transition: transform .25s ease; box-shadow: var(--sombra-alta); }
  .app.menu-abierto .menu { transform: none; }
  .app.menu-abierto .velo { display: block; position: fixed; inset: 0; background: rgba(11,28,54,.45); z-index: 35; }
  .btn-menu { display: inline-flex; align-items: center; justify-content: center; }
  .tope { padding-left: 10px; padding-right: 12px; }
  .trabajo { padding: 14px 14px calc(110px + env(safe-area-inset-bottom, 0px)); }
  #conectados { display: none; }
}
