/* Estilos comunes de la app (shell + componentes base). Paleta CCV. */
:root{
  --navy:#213A70;--navy-dark:#172d58;--navy-soft:#e8edf6;--bg:#f4f6f9;--white:#fff;--text:#1a1a2e;
  --muted:#6b7280;--gris:#a3abb9;--border:#dde3ee;--top-h:56px;--lat-w:264px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ico{width:20px;height:20px;flex:none}

/* Barra superior */
.top{position:fixed;inset:0 0 auto 0;height:var(--top-h);background:var(--navy);color:#fff;display:flex;align-items:center;gap:12px;padding:0 16px;z-index:30}
.marca{font-weight:700;letter-spacing:.5px;font-size:17px;white-space:nowrap}
.marca span{font-weight:400;opacity:.8}
.hamb{display:none;background:none;border:0;color:#fff;padding:6px;margin-left:-6px;cursor:pointer}
.hamb .ico{width:24px;height:24px}
.obra-sel{margin-left:auto}
.obra-sel select{font-family:inherit;font-size:14px;color:#fff;background:var(--navy-dark);border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:7px 28px 7px 10px;max-width:200px;cursor:pointer}

/* Menú lateral */
.lateral{position:fixed;top:var(--top-h);bottom:0;left:0;width:var(--lat-w);background:var(--white);border-right:1px solid var(--border);overflow-y:auto;padding:12px 10px 24px;z-index:20}
.nav-grupo+.nav-grupo,.nav-mod+.nav-grupo{margin-top:2px}
.nav-mod{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;font-size:14px;font-weight:600;color:var(--navy);cursor:pointer;list-style:none}
.nav-mod::-webkit-details-marker{display:none}
.nav-mod:hover{background:var(--navy-soft)}
.nav-mod.actual{background:var(--navy);color:#fff}
.nav-txt{flex:1;min-width:0}
.chev{width:16px;height:16px;transition:transform .15s}
details[open]>summary .chev{transform:rotate(90deg)}
.nav-subs{padding:2px 0 6px 40px}
.nav-item{display:block;font-size:13.5px;padding:6px 8px;border-radius:6px;color:var(--text)}
a.nav-item:hover{background:var(--navy-soft)}
.tag{font-size:10px;font-weight:600;color:var(--gris);border:1px solid var(--border);border-radius:99px;padding:1px 6px;white-space:nowrap}
/* Planificado: gris suave, se puede abrir para ver qué tendrá pero no navega */
.proximo>.nav-mod,.nav-mod.proximo{color:var(--gris)}
.nav-mod.proximo{cursor:default}
.nav-mod.proximo:hover{background:none}
.nav-item.proximo{color:var(--gris);cursor:default}

/* Usuario (pie del menú) */
.usuario{display:flex;align-items:center;gap:8px;margin-top:16px;padding:12px 10px 0;border-top:1px solid var(--border)}
.usuario-txt{flex:1;min-width:0;font-size:13px}
.usuario-txt b,.usuario-txt small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.usuario-txt small{color:var(--muted);font-size:12px}
.salir{background:none;border:0;color:var(--muted);padding:6px;border-radius:6px;cursor:pointer}
.salir:hover{background:var(--navy-soft);color:var(--navy)}

/* Hasta tener sesión no se muestra nada */
body:not(.listo) #contenido{visibility:hidden}
.aviso{max-width:420px;margin:15vh auto 0;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.btn{font-family:inherit;font-weight:600;font-size:15px;background:var(--navy);color:#fff;border:0;border-radius:10px;padding:10px 18px;cursor:pointer}

/* Contenido */
#contenido{margin:var(--top-h) 0 0 var(--lat-w);padding:28px 32px 48px;max-width:1200px}
.titulo{font-size:24px;font-weight:700;color:var(--navy)}
.sub{color:var(--muted);font-size:15px;margin-top:4px;line-height:1.4}
.card{background:var(--white);border:1px solid var(--border);border-radius:14px;padding:18px}

/* Celular: el menú se vuelve un cajón */
.velo{display:none}
@media (max-width:860px){
  .hamb{display:block}
  .lateral{transform:translateX(-100%);transition:transform .2s;box-shadow:0 0 24px rgba(0,0,0,.15)}
  .menu-abierto .lateral{transform:none}
  .menu-abierto .velo{display:block;position:fixed;inset:var(--top-h) 0 0 0;background:rgba(15,23,42,.35);z-index:10}
  #contenido{margin-left:0;padding:20px 16px 40px}
  .obra-sel select{max-width:170px;font-size:13px}
}
