/* MX-Gestor — estilos base. Identidade: azul corporativo + dourado discreto. */
:root{
  --mx-azul:#0d3b66;
  --mx-azul-2:#13507f;
  --mx-dourado:#c9a227;
  --mx-fundo:#f4f6f9;
}
body.mx-body{ background:var(--mx-fundo); min-height:100vh; display:flex; flex-direction:column; }
body.mx-body > main{ flex:1 0 auto; }

/* Logotipo textual */
.mx-logo{ font-size:2rem; font-weight:800; color:var(--mx-azul); letter-spacing:-.5px; }
.mx-logo span{ color:var(--mx-dourado); }
.mx-logo-sm{ font-weight:800; letter-spacing:-.3px; }
.mx-logo-sm span{ color:var(--mx-dourado); }

/* Topbar */
.mx-topbar{ background:var(--mx-azul); }

/* Login */
.mx-login{ background:linear-gradient(135deg,var(--mx-azul) 0%, var(--mx-azul-2) 100%); }
.mx-login-card{ width:100%; max-width:420px; border-radius:1rem; }

/* Seletor de empresa */
.mx-select-empresa{ max-width:230px; }

/* Cards de módulo */
.mx-modulo{ border:1px solid #e3e7ee; border-radius:.9rem; transition:transform .12s, box-shadow .12s; color:var(--mx-azul); }
a.mx-modulo:hover{ transform:translateY(-3px); box-shadow:0 .6rem 1.4rem rgba(13,59,102,.15); border-color:var(--mx-azul); }
.mx-modulo-icon{ font-size:2rem; display:block; margin-bottom:.4rem; color:var(--mx-azul); }
.mx-modulo-nome{ font-weight:600; font-size:.95rem; line-height:1.2; }
.mx-modulo--breve{ opacity:.6; }
.mx-modulo--breve .mx-modulo-icon{ color:#8a93a3; }

.mx-rodape{ flex-shrink:0; }

/* ===== Layout com menu lateral ===== */
:root{ --mx-sidebar-w:248px; }
.mx-shell{ display:flex; min-height:100vh; }
.mx-sidebar{
  width:var(--mx-sidebar-w); flex-shrink:0; background:#0b2f52; color:#cdd9e6;
  position:sticky; top:0; height:100vh; overflow-y:auto; z-index:1040;
}
.mx-sidebar-brand{ padding:1rem 1.1rem; border-bottom:1px solid rgba(255,255,255,.08); }
.mx-sidebar-brand .mx-logo-sm{ font-size:1.4rem; font-weight:800; color:#fff; }
.mx-sidebar-brand .mx-logo-sm span{ color:var(--mx-dourado); }
.mx-nav{ padding:.6rem .5rem; display:flex; flex-direction:column; gap:2px; }
.mx-nav-item{
  display:flex; align-items:center; gap:.6rem; padding:.55rem .8rem; border-radius:.5rem;
  color:#cdd9e6; text-decoration:none; font-size:.93rem; white-space:nowrap;
}
.mx-nav-item i{ font-size:1.05rem; width:1.2rem; text-align:center; }
.mx-nav-item:hover{ background:rgba(255,255,255,.07); color:#fff; }
.mx-nav-item.ativo{ background:var(--mx-azul-2); color:#fff; font-weight:600; }
.mx-nav-item--breve{ opacity:.5; cursor:default; }
.mx-nav-sep{ border-color:rgba(255,255,255,.12); margin:.5rem .6rem; }

.mx-main{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; }
.mx-main .mx-topbar{ position:sticky; top:0; z-index:1030; }
.mx-content{ flex:1 0 auto; }
.mx-sidebar-overlay{ display:none; }

@media (max-width: 991.98px){
  .mx-sidebar{
    position:fixed; left:0; top:0; transform:translateX(-100%);
    transition:transform .2s ease; box-shadow:.3rem 0 1rem rgba(0,0,0,.2);
  }
  .mx-sidebar-open .mx-sidebar{ transform:translateX(0); }
  .mx-sidebar-open .mx-sidebar-overlay{
    display:block; position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:1035;
  }
}

/* Tags de uso (Configurações) */
.mx-uso-tag{ font-size:.7rem; }
.mx-cfg-card .card-header{ background:#f8fafc; }
