/* ==========================================================================
   NeuroSafe 360° · NovaUI 2 · ns-core.css (FASE 1)
   Regla de oro: este archivo es la ÚNICA capa nueva. No se agregan más
   "revisiones" a neurosafe.css; lo que se corrige vive aquí, ordenado por
   secciones, y en fases siguientes reemplaza al CSS heredado módulo por módulo.
   ========================================================================== */

/* 1 · Tokens ------------------------------------------------------------- */
:root{
  --ns2-ink:#13202e;
  --ns2-ink-2:#4b5d70;
  --ns2-line:#dfe6ee;
  --ns2-surface:#ffffff;
  --ns2-canvas:#f3f6f9;
  --ns2-brand:#1d5fd1;
  --ns2-brand-2:#13a8b8;
  --ns2-ok:#127a52;
  --ns2-warn:#a86400;
  --ns2-risk:#c2364b;
  --ns2-radius-s:6px;
  --ns2-radius-m:10px;
  --ns2-focus:0 0 0 3px rgba(29,95,209,.35);
  /* Las vistas de empresa definen estos colores en línea; en Platform no
     existían y los gráficos quedaban invisibles (línea de evolución). */
  --tenant-primary:var(--ns2-brand);
  --tenant-secondary:var(--ns2-brand-2);
}

/* 2 · Accesibilidad base ------------------------------------------------- */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:none;box-shadow:var(--ns2-focus);border-radius:var(--ns2-radius-s)}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* 3 · Gráficos ----------------------------------------------------------- */
.ns-trend-dot{fill:var(--ns2-surface);stroke:var(--tenant-secondary)}
.ns-group-bars>div{grid-template-columns:minmax(64px,1fr) minmax(80px,2fr) 40px 44px;min-width:0}
.ns-group-bars small{white-space:nowrap}

/* 4 · Dashboard: hoja de ruta NeuroSafe 2 -------------------------------- */
.ns2-roadmap .ns-section-head h2{margin-top:2px}
.ns2-phase-list{list-style:none;margin:14px 0 12px;padding:0;display:grid;gap:8px}
.ns2-phase-list li{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ns2-ink-2)}
.ns2-phase-list i{flex:0 0 20px;height:20px;border-radius:50%;border:1.5px solid var(--ns2-line);display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:800}
.ns2-phase-list li.is-done{color:var(--ns2-ink)}
.ns2-phase-list li.is-done i{background:var(--ns2-ok);border-color:var(--ns2-ok);color:#fff}

/* 5 · Login de empresa en móvil (trabajadores de campo) ------------------ */
@media (max-width:1100px){
  .ns-tenant-v2-login{grid-template-columns:minmax(0,1fr)}
  .ns-tenant-v2-login>*{min-width:0}
}
@media (max-width:760px){
  .ns-tenant-v2-visual{padding:20px 18px 52px;min-height:0}
  .ns-tenant-v2-visual h1{font-size:clamp(24px,7vw,30px);line-height:1.15;margin:12px 0 0}
  .ns-tenant-v2-visual p,.ns-tenant-v2-visual ul,.ns-tenant-v2-network{display:none}
  .ns-tenant-v2-back{position:static;display:inline-block;margin-bottom:14px}
  .ns-tenant-v2-copy{position:static;inset:auto;transform:none;width:auto;margin-top:6px}
  .ns-tenant-v2-brand img{width:150px}
  .ns-tenant-v2-company-logo{position:static;width:44px;height:44px;margin:14px 0 10px;border-radius:12px;overflow:hidden}
  .ns-tenant-v2-company-logo.is-letter{font-size:15px!important;line-height:1!important;place-items:center}
  .ns-tenant-v2-pills{flex-wrap:wrap}
  .ns-tenant-v2-visual>footer{left:18px;right:18px;bottom:16px;flex-wrap:wrap;gap:4px 12px}
  .ns-tenant-v2-panel{padding:24px 16px 32px}
  .ns-tenant-v2-panel>*{width:100%;max-width:440px}
  .ns-tenant-v2-card{box-sizing:border-box;min-width:0;padding:22px 18px}
  .ns-tenant-v2-card *{min-width:0;max-width:100%}
  .ns-tenant-v2-panel input,.ns-tenant-v2-panel button{font-size:16px} /* evita el zoom automático de iOS */
}
