/* E2 · selector de módulos + Ir a… en el navbar (ADR plataforma/017 §15.8/§15.10) */
.gbal-modsel{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:6px 12px;border:1px solid #dce0e8;border-radius:9px;background:#f8fafc;color:#1f2937;font-weight:700;font-size:14px;cursor:pointer;white-space:nowrap}
.gbal-modsel.con-modulo{background:var(--soft,#f1f3f5);color:var(--acc,#5b6572);border-color:transparent}
.gbal-modsel:focus-visible{outline:3px solid var(--acc,#1d5fbf);outline-offset:2px}
.gbal-modsel-chev{font-size:11px;opacity:.8}
.gbal-modsel-menu{min-width:290px;padding:6px;border-radius:12px;box-shadow:0 12px 32px rgba(31,41,55,.16);border:1px solid #dce0e8}
.gbal-modsel-op{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;color:#1f2937;min-height:44px}
.gbal-modsel-op:hover,.gbal-modsel-op:focus{background:#f8fafc;color:#1f2937}
.gbal-modsel-op.activo{background:var(--soft,#f1f3f5)}.gbal-modsel-op.activo b{color:var(--acc,#1f2937)}.gbal-modsel-op.activo .fa-check{margin-left:auto;color:var(--acc,#1f2937)}
.gbal-modsel-ic{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:var(--soft,#f1f3f5);color:var(--acc,#5b6572);flex:0 0 34px}
.gbal-modsel-nom{display:flex;flex-direction:column;line-height:1.15}.gbal-modsel-nom small{color:#6b7280;font-size:12px}
.gbal-modsel-inicio{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;min-height:40px;color:#1f2937}
.gbal-nav-mod{flex-direction:row;align-items:center;gap:8px;margin-left:8px;flex:0 0 auto}.gbal-modsel-item,.gbal-ira-item{display:flex;align-items:center}
@media (max-width:991px){.gbal-nav-mod{margin:6px 0 0}}
/* Ir a… */
.gbal-ira{position:relative}
.gbal-ira-btn{display:inline-flex;align-items:center;gap:8px;min-height:38px;min-width:170px;padding:6px 10px;border:1px solid #dce0e8;border-radius:9px;background:#fff;color:#6b7280;font-size:14px;cursor:text}
.gbal-ira-btn kbd{margin-left:auto;font:600 11px/1 ui-monospace,monospace;border:1px solid #dce0e8;border-radius:5px;padding:2px 5px;color:#6b7280!important;background:#f8fafc!important}
.gbal-ira-btn:focus-visible{outline:3px solid #1d5fbf;outline-offset:2px}
.gbal-ira-panel{position:absolute;top:calc(100% + 6px);right:0;left:auto;width:min(560px,calc(100vw - 24px));background:#fff;border:1px solid #dce0e8;border-radius:12px;box-shadow:0 16px 40px rgba(31,41,55,.18);z-index:1060;overflow:hidden}
.gbal-ira-panel[hidden]{display:none!important}
.gbal-ira-campo{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #e2e8f0}.gbal-ira-campo i{color:#6b7280}
.gbal-ira-campo input{flex:1;border:0;outline:0;font-size:16px;color:#1f2937;background:transparent;min-width:0}
.gbal-ira-cerrar{border:0;background:transparent;color:#6b7280;width:36px;height:36px;border-radius:8px;cursor:pointer}.gbal-ira-cerrar:hover{background:#f1f3f5}
.gbal-ira-lista{list-style:none;margin:0;padding:6px;max-height:min(50vh,380px);overflow:auto}
.gbal-ira-lista li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;cursor:pointer;min-height:44px;color:#1f2937}
.gbal-ira-lista li[aria-selected=true],.gbal-ira-lista li:hover{background:#f8fafc}
.gbal-ira-lista .ic{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--soft,#f1f3f5);color:var(--acc,#5b6572);flex:0 0 30px}
.gbal-ira-lista .ruta{display:flex;flex-direction:column;line-height:1.15;min-width:0}.gbal-ira-lista .ruta small{color:#6b7280;font-size:12px}.gbal-ira-lista .ruta b mark{background:transparent;color:var(--acc,#1d5fbf);padding:0}
.gbal-ira-lista .vacio{color:#6b7280;cursor:default;display:block;padding:12px}
.gbal-ira-lista .grupo{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6b7280;padding:8px 10px 2px;cursor:default;min-height:0}
.gbal-ira-pie{padding:6px 12px;font-size:12px;color:#6b7280;border-top:1px solid #e2e8f0;background:#f8fafc}
@media (max-width:991px){.gbal-ira-btn{min-width:0}.gbal-ira-txt,.gbal-ira-btn kbd{display:none}.gbal-modsel-txt{max-width:120px;overflow:hidden;text-overflow:ellipsis}.gbal-ira-panel{position:fixed;left:12px;right:12px;top:64px;width:auto}}
@media (max-width:767px){.gbal-modsel-menu{position:fixed!important;left:8px!important;right:8px!important;top:auto!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;transform:none!important;max-height:70vh;overflow:auto}}

/* campana única (E3): lo que no es pago reportado (el FAB se queda) */
.gbal-campana-item{display:flex;align-items:center}
.gbal-campana{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:38px;border:1px solid #dce0e8;border-radius:9px;background:#fff;color:#4b5563;cursor:pointer}
.gbal-campana:hover{background:#f8fafc}.gbal-campana:focus-visible{outline:3px solid #1d5fbf;outline-offset:2px}
.gbal-campana-n{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#AB0010;color:#fff;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.gbal-campana-n[hidden]{display:none!important}
.gbal-campana-menu{min-width:340px;padding:0;border-radius:12px;border:1px solid #dce0e8;box-shadow:0 12px 32px rgba(31,41,55,.16);overflow:hidden}
.gbal-campana-cab{display:flex;align-items:baseline;gap:8px;padding:10px 14px;border-bottom:1px solid #e2e8f0}.gbal-campana-cab small{color:#6b7280}
.gbal-campana-lista{max-height:60vh;overflow:auto}
.gbal-campana-lista a{display:flex;align-items:center;gap:10px;padding:9px 14px;color:#1f2937;text-decoration:none;border-top:1px solid #f1f3f5;min-height:48px}
.gbal-campana-lista a:first-child{border-top:0}.gbal-campana-lista a:hover{background:#f8fafc;text-decoration:none;color:#1f2937}
.gbal-campana-lista .n{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 6px;border-radius:8px;font-weight:800;background:var(--soft,#f1f3f5);color:var(--acc,#1f2937);font-variant-numeric:tabular-nums}
.gbal-campana-lista .t{display:flex;flex-direction:column;line-height:1.15;min-width:0}.gbal-campana-lista .t small{color:#6b7280;font-size:12px}
.gbal-campana-vacio{padding:14px;color:#6b7280;display:flex;align-items:center;gap:8px}
@media (max-width:767px){.gbal-campana-menu{position:fixed!important;left:8px!important;right:8px!important;top:60px!important;transform:none!important;min-width:0}}
.gbal-modsel.cargando{opacity:.6;pointer-events:none}
