/* Facturador 360 InSol | QA38C | Navegacion autonoma
   Solo afecta a /facturacion/. No modifica Cotiza PRO. */
:root { --f360-navy:#102439; --f360-orange:#f18a41; }
body { overflow-x:hidden; }
#sidebar { scrollbar-width:none; }
#sidebar::-webkit-scrollbar { display:none; }

/* Menu limpio: sin cajas, globos ni fondos por elemento. */
#sidebar .accordion-nav { gap:3px; }
#sidebar .nav-group,
#sidebar .nav-group[open] {
  border:0; border-radius:0; background:transparent;
  box-shadow:none; overflow:visible;
}
#sidebar .nav-group-title {
  border:0; border-radius:0; background:transparent;
  min-height:43px; padding:10px 11px; gap:12px;
  color:#d9e5f1; transition:color .16s ease;
}
#sidebar .nav-group-title:hover,
#sidebar .nav-group-title:focus-visible,
#sidebar .nav-group[open] > .nav-group-title {
  background:transparent; color:#fff;
}
#sidebar .nav-group[open] > .nav-group-title > span:first-child,
#sidebar .nav-group-title:hover > span:first-child { color:var(--f360-orange); }
#sidebar .nav-group-title > span:first-child {
  flex:0 0 22px; width:22px; text-align:center;
}
#sidebar .nav-group-content {
  margin:0 0 5px 21px; padding:0 0 2px 13px;
  border-left:1px solid #3b5870; gap:1px;
}
#sidebar .nav-group-content .nav-item,
#sidebar .nav-group-content .nav-item:hover,
#sidebar .nav-group-content .nav-item.active {
  background:transparent; border:0; border-radius:0;
  box-shadow:none; min-height:37px; padding:8px 6px;
}
#sidebar .nav-group-content .nav-item:hover { color:#fff; }
#sidebar .nav-group-content .nav-item.active {
  color:#ffb77e; font-weight:800;
  box-shadow:none; position:relative;
}
#sidebar .nav-group-content .nav-item.active::before {
  content:""; position:absolute; width:2px;
  background:var(--f360-orange); left:-14px; top:5px; bottom:5px;
}
#sidebar .switch-module { border:0; background:transparent; box-shadow:none; }

/* Boton de contraccion: en la cabecera, no sobre el logo. */
.f360-sidebar-toggle, .f360-mobile-close {
  display:inline-flex; align-items:center; justify-content:center;
  gap:7px; flex:0 0 auto; color:#173047; background:#fff;
  border:1px solid #d6dee8; border-radius:8px;
  min-height:36px; min-width:36px; padding:7px;
}
.f360-sidebar-toggle:hover, .f360-mobile-close:hover {
  border-color:var(--f360-orange); color:#b75e20;
}
.f360-sidebar-toggle svg { width:19px; height:19px; }
.f360-sidebar-toggle[aria-expanded="false"] svg { transform:rotate(180deg); }
.f360-mobile-close { display:none; }
.f360-sidebar-backdrop[hidden] { display:none!important; }
.f360-sidebar-backdrop { display:none; }
.f360-user-chip {
  display:inline-flex; align-items:center; gap:7px;
  max-width:240px; min-width:0; font-size:11px;
  color:#40556a; font-weight:700; padding:5px 0;
}
.f360-user-chip[hidden], .f360-side-user[hidden] { display:none!important; }
.f360-user-chip .f360-user-avatar {
  flex:0 0 26px; width:26px; height:26px;
  border-radius:50%; display:grid; place-items:center;
  color:#a65016; background:#fff1e4; font-weight:900;
}
.f360-user-chip .f360-user-email {
  overflow:hidden; white-space:nowrap; text-overflow:ellipsis;
}
.f360-side-user {
  display:block; padding:0 9px 14px; font-size:11px;
  line-height:1.5; color:#d5e2ed; overflow-wrap:anywhere;
}
.f360-side-user strong { display:block; color:#f6ae75; font-size:10px; }
#sidebar .brand { min-width:0; }

/* Modo compacto: un unico icono por grupo y ninguna caja. */
@media (min-width:751px) {
  .sidebar { transition:width .2s ease,min-width .2s ease,padding .2s ease; }
  body.f360-sidebar-collapsed .sidebar {
    width:70px; min-width:70px; padding:20px 8px; overflow:hidden;
  }
  body.f360-sidebar-collapsed .sidebar .brand {
    padding:0 0 24px; justify-content:center; gap:0;
  }
  body.f360-sidebar-collapsed .sidebar .brand-icon {
    flex:0 0 40px; width:40px; height:40px;
  }
  body.f360-sidebar-collapsed .sidebar .brand-name,
  body.f360-sidebar-collapsed .sidebar .eyebrow,
  body.f360-sidebar-collapsed .sidebar #orgSwitch,
  body.f360-sidebar-collapsed .sidebar #roleTag,
  body.f360-sidebar-collapsed .sidebar #f360SideUser,
  body.f360-sidebar-collapsed .sidebar .nav-group-label,
  body.f360-sidebar-collapsed .sidebar .nav-arrow,
  body.f360-sidebar-collapsed .sidebar .nav-group-content,
  body.f360-sidebar-collapsed .sidebar .switch-module,
  body.f360-sidebar-collapsed .sidebar .sidebar-bottom span:not(.dot),
  body.f360-sidebar-collapsed .sidebar .sidebar-bottom small {
    display:none!important;
  }
  body.f360-sidebar-collapsed .sidebar .accordion-nav { gap:6px; }
  body.f360-sidebar-collapsed .sidebar .nav-group-title {
    padding:10px 0; justify-content:center; min-height:43px;
  }
  body.f360-sidebar-collapsed .sidebar .nav-group-title > span:first-child {
    width:24px; flex-basis:24px; font-size:20px;
  }
  body.f360-sidebar-collapsed .sidebar .sidebar-bottom {
    padding:16px 0; justify-content:center;
  }
  body.f360-sidebar-collapsed .sidebar .sidebar-bottom .dot { margin:0; }
  body.f360-sidebar-collapsed .sidebar .nav-group[open] > .nav-group-title {
    color:#ffb77e;
  }
}

/* Drawer movil: cerrado por defecto, fondo interactivo bloqueado al abrir. */
@media (max-width:750px) {
  body.f360-sidebar-collapsed .sidebar,
  .sidebar {
    width:min(286px,85vw)!important;
    min-width:0!important;
    max-width:85vw!important;
    height:100dvh!important;
    min-height:0!important;
    position:fixed!important;
    top:0!important; left:0!important;
    z-index:110!important;
    padding:16px 14px!important;
    overflow-y:auto!important;
    transform:translateX(-105%)!important;
    transition:transform .22s ease!important;
    box-shadow:none;
    overscroll-behavior:contain;
  }
  body.f360-mobile-open .sidebar {
    transform:translateX(0)!important;
    box-shadow:12px 0 35px #06152544;
  }
  body.f360-mobile-open { overflow:hidden; }
  body.f360-mobile-open .f360-sidebar-backdrop {
    display:block; position:fixed; inset:0; z-index:100;
    background:rgba(8,25,42,.58);
  }
  body.f360-sidebar-collapsed .sidebar .brand-name,
  body.f360-sidebar-collapsed .sidebar .eyebrow,
  body.f360-sidebar-collapsed .sidebar #orgSwitch,
  body.f360-sidebar-collapsed .sidebar #roleTag,
  body.f360-sidebar-collapsed .sidebar #f360SideUser,
  body.f360-sidebar-collapsed .sidebar .nav-group-label,
  body.f360-sidebar-collapsed .sidebar .nav-arrow,
  body.f360-sidebar-collapsed .sidebar .nav-group-content,
  body.f360-sidebar-collapsed .sidebar .sidebar-bottom span:not(.dot),
  body.f360-sidebar-collapsed .sidebar .sidebar-bottom small {
    display:initial!important;
  }
  .sidebar .brand { padding:3px 4px 12px; }
  .sidebar .brand-name { display:block!important; }
  /* Restaurar todos los controles al pasar del modo compacto a movil. */
  body.f360-sidebar-collapsed .sidebar .brand-name,
  body.f360-sidebar-collapsed .sidebar #roleTag,
  body.f360-sidebar-collapsed .sidebar #f360SideUser,
  body.f360-sidebar-collapsed .sidebar .eyebrow { display:block!important; }
  body.f360-sidebar-collapsed .sidebar #orgSwitch { display:block!important; }
  body.f360-sidebar-collapsed .sidebar .nav-group-label,
  body.f360-sidebar-collapsed .sidebar .nav-arrow { display:inline!important; }
  body.f360-sidebar-collapsed .sidebar .nav-group-content { display:flex!important; }
  body.f360-sidebar-collapsed .sidebar .sidebar-bottom small,
  body.f360-sidebar-collapsed .sidebar .sidebar-bottom span:not(.dot) { display:inline!important; }
  .f360-sidebar-toggle { display:none!important; }
  .f360-mobile-close {
    display:flex; width:100%; justify-content:flex-end;
    border:0; background:transparent; color:#dbe6f1;
    font-size:12px; margin:0 0 12px; padding:6px 4px;
  }
  .f360-mobile-close:hover { color:#ffb77e; }
  #menuButton.mobile-menu {
    display:inline-flex; align-items:center; justify-content:center;
    min-width:40px; min-height:40px; flex:0 0 40px;
    border:1px solid #dbe4ed; background:#fff;
    color:#102439; border-radius:9px; padding:7px;
  }
  #menuButton.mobile-menu svg { width:21px; height:21px; }
  .top-title { min-width:0; }
  .top-title > span:not(.chev) { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .f360-user-chip { max-width:min(270px,calc(100vw - 32px)); }
  .f360-side-user { display:block!important; }
  .sidebar .nav-group-content { display:flex!important; }
  .sidebar .nav-group-title { justify-content:flex-start!important; padding:10px 11px!important; }
  .sidebar .nav-group-title > span:first-child { flex-basis:22px!important; width:22px!important; }
  .sidebar .sidebar-bottom { justify-content:flex-start!important; }
  .sidebar .sidebar-bottom .dot { display:inline-block!important; }
  .sidebar .sidebar-bottom small { margin-left:auto; }
  .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .top-right { gap:8px!important; }
}
@media (max-width:390px) {
  .metrics { grid-template-columns:1fr; }
  .f360-user-chip { max-width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  .sidebar, .f360-sidebar-toggle svg { transition:none!important; }
}
@media print {
  .f360-sidebar-toggle,.f360-mobile-close,.f360-sidebar-backdrop,
  .f360-user-chip { display:none!important; }
}
