/* ====== MENÚ DESPLEGABLE / MULTINIVEL ====== */
.menu-wrap{position:relative;display:inline-block}
.menu-pop{position:absolute;left:0;top:calc(100% + 6px);min-width:230px;background:#fff;border:1px solid var(--n-200);border-radius:var(--r-md);box-shadow:var(--shadow-lg);z-index:50;padding:6px;display:none}
.menu-pop.open{display:block;animation:mfade .16s}
@keyframes mfade{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.menu-pop.right{left:auto;right:0}
.menu-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:9px;font-size:14px;color:var(--n-700);cursor:pointer;text-decoration:none;white-space:nowrap;position:relative}
.menu-item:hover{background:var(--indigo-50);color:var(--blue)}
.menu-item i.lead{width:18px;text-align:center;font-size:13px;color:var(--n-500)}
.menu-item:hover i.lead{color:var(--blue)}
.menu-item .caret{margin-left:auto;font-size:11px;color:var(--n-300)}
.menu-item.danger{color:var(--red)}.menu-item.danger:hover{background:#FBE0E0;color:var(--red)}
.menu-item .kbd{margin-left:auto;font-size:10px}
.menu-sep{height:1px;background:var(--n-100);margin:6px 4px}
.menu-label{font-family:var(--font-head);font-weight:700;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--n-500);padding:8px 12px 4px}
.has-sub{position:relative}
/* fila del padre: enlace navegable + botón de caret independiente */
.has-sub>.ms-row{display:flex;align-items:center;border-radius:9px}
.has-sub>.ms-row:hover{background:var(--indigo-50)}
.has-sub>.ms-row>.ms-link{flex:1;background:none;border:none;cursor:pointer}
.has-sub>.ms-row:hover>.ms-link{color:var(--blue)}
.has-sub>.ms-row:hover>.ms-link i.lead{color:var(--blue)}
.has-sub>.ms-row>.sub-caret{flex:none;width:34px;align-self:stretch;display:grid;place-items:center;background:none;border:none;border-left:1px solid transparent;color:var(--n-300);font-size:11px;cursor:pointer;border-radius:0 9px 9px 0}
.has-sub>.ms-row>.sub-caret:hover{background:var(--indigo-100,#E0E4F8);color:var(--blue)}
.submenu{position:absolute;left:calc(100% + 4px);top:-6px;min-width:210px;background:#fff;border:1px solid var(--n-200);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:6px;display:none;z-index:60}
.has-sub:hover>.submenu{display:block}
.submenu.flip{left:auto;right:calc(100% + 4px)}
@media(max-width:767px){
  .menu-pop{position:fixed;left:10px;right:10px;top:auto;bottom:10px;min-width:0;max-height:70vh;overflow-y:auto;border-radius:var(--r-lg)}
  .submenu{position:static;box-shadow:none;border:none;border-left:2px solid var(--n-100);border-radius:0;margin:2px 0 2px 28px;padding:2px 0;display:none}
  .has-sub.open-m>.submenu{display:block}
  .has-sub:hover>.submenu{display:none}
  .has-sub.open-m>.submenu{display:block}
  .has-sub>.ms-row>.sub-caret{transition:.2s}.has-sub.open-m>.ms-row>.sub-caret{transform:rotate(90deg)}
}
/* ====== MEGA / HERO ====== */
.mega-wrap{position:relative}
.mega-bar{display:flex;align-items:center;gap:4px;background:var(--navy);border-radius:var(--r-md);padding:6px;flex-wrap:wrap}
.mega-bar .mtrigger{background:none;border:none;color:#cfd4ec;font-family:var(--font-head);font-weight:700;font-size:13.5px;padding:9px 14px;border-radius:9px;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.mega-bar .mtrigger:hover,.mega-bar .mtrigger.active{background:rgba(255,255,255,.1);color:#fff}
.mega-panel{position:absolute;left:0;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--n-200);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);z-index:50;display:none;overflow:hidden}
.mega-panel.open{display:grid;animation:mfade .18s}
@media(min-width:768px){.mega-panel{grid-template-columns:1.1fr 2fr}}
.mega-hero{background:linear-gradient(150deg,var(--navy),var(--blue));color:#fff;padding:24px}
.mega-hero .eb{font-family:var(--font-head);font-weight:800;font-size:10.5px;letter-spacing:.16em;color:#A9B4E8;text-transform:uppercase}
.mega-hero h4{font-size:20px;margin:8px 0 8px;color:#fff}
.mega-hero p{font-size:12.5px;color:#C9CEE6;line-height:1.5;margin-bottom:16px}
.mega-hero .btn{background:#fff;color:var(--navy)}
.mega-cols{padding:20px;display:grid;gap:18px;grid-template-columns:1fr}
@media(min-width:640px){.mega-cols{grid-template-columns:1fr 1fr}}
.mega-col h5{font-family:var(--font-head);font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--n-500);margin-bottom:8px}
.mega-link{display:flex;align-items:flex-start;gap:11px;padding:8px;border-radius:9px;text-decoration:none;color:inherit}
.mega-link:hover{background:var(--n-50)}
.mega-link .mi{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:#fff;flex:none;font-size:14px}
.mega-link b{font-family:var(--font-head);font-size:13.5px;display:block}.mega-link span{font-size:11.5px;color:var(--n-500)}
@media(max-width:767px){.mega-panel{position:fixed;left:10px;right:10px;top:auto;bottom:10px;max-height:78vh;overflow-y:auto;display:none}.mega-panel.open{display:block}.mega-hero{padding:18px}}
/* ====== MENÚ COLAPSABLE (vertical, tipo sidebar) ====== */
.cmenu{border:1px solid var(--n-200);border-radius:var(--r-lg);overflow:hidden;max-width:380px;background:#fff}
.cmenu-group{border-bottom:1px solid var(--n-100)}.cmenu-group:last-child{border-bottom:none}
.cmenu-head{display:flex;align-items:center;gap:11px;padding:13px 16px;cursor:pointer;font-family:var(--font-head);font-weight:700;font-size:14px;color:var(--navy)}
.cmenu-head:hover{background:var(--n-50)}.cmenu-head i.lead{width:18px;text-align:center;color:var(--blue)}
.cmenu-head .caret{margin-left:auto;font-size:12px;color:var(--n-300);transition:.25s}
.cmenu-group.open .cmenu-head .caret{transform:rotate(180deg)}
.cmenu-body{max-height:0;overflow:hidden;transition:max-height .3s ease;background:var(--n-50)}
.cmenu-group.open .cmenu-body{max-height:320px}
.cmenu-link{display:flex;align-items:center;gap:11px;padding:10px 16px 10px 45px;font-size:13.5px;color:var(--n-700);text-decoration:none;cursor:pointer}
.cmenu-link:hover{color:var(--blue);background:var(--indigo-50)}
.cmenu-link .c{margin-left:auto;background:#fff;border:1px solid var(--n-200);font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:99px;color:var(--n-700)}
/* ====== MENÚ EN GRID (por fila) ====== */
.gm-table{width:100%;border-collapse:collapse;font-size:14px}
.gm-table thead th{background:var(--navy);color:#C9CEE6;font-family:var(--font-head);font-weight:700;font-size:12px;text-align:left;padding:12px 14px}
.gm-table tbody td{padding:11px 14px;border-top:1px solid var(--n-100)}
.gm-table tbody tr:hover{background:var(--indigo-50)}
.gm-table td.act{text-align:right;width:60px}
.gm-kebab{width:34px;height:34px;border:none;background:none;border-radius:8px;cursor:pointer;color:var(--n-500);font-size:15px}
.gm-kebab:hover{background:var(--n-100);color:var(--navy)}
/* ====== MENÚ CONTEXTUAL (clic derecho) ====== */
.ctx-zone{border:2px dashed var(--n-300);border-radius:var(--r-lg);background:var(--n-50);padding:34px 20px;text-align:center;color:var(--n-500);font-size:13.5px;user-select:none}
.ctx-zone i{font-size:28px;color:var(--blue);display:block;margin-bottom:10px}
.ctx-menu{position:fixed;min-width:210px;background:#fff;border:1px solid var(--n-200);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:6px;z-index:120;display:none}
.ctx-menu.open{display:block;animation:mfade .12s}
/* ============================================================
   v1.2 — Menú superior con multinivel (barra horizontal)
   ============================================================ */
.topmenu{background:var(--navy);border-radius:var(--r-md);display:flex;align-items:center;gap:2px;padding:4px;flex-wrap:nowrap;position:relative;z-index:40}
.topmenu .tm-item{position:relative;flex:none}
.topmenu .tm-item.open{z-index:90}
.topmenu .tm-link{background:none;border:none;color:#cfd4ec;font-family:var(--font-head);font-weight:700;font-size:13.5px;padding:10px 15px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;text-decoration:none}
.topmenu .tm-link:hover,.topmenu .tm-item.open>.tm-link{background:rgba(255,255,255,.1);color:#fff}
.topmenu .tm-link .caret{font-size:10px;opacity:.7}
/* panel desplegable nivel 1 */
.tm-drop{position:absolute;left:0;top:calc(100% + 6px);min-width:240px;background:#fff;border:1px solid var(--n-200);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:6px;z-index:90;display:none}
.tm-item.open>.tm-drop{display:block;animation:mfade .16s}
.tm-drop .menu-item .caret{margin-left:auto;font-size:11px;color:var(--n-300)}
/* submenú nivel 2/3 (vuela a la derecha en escritorio) */
.tm-drop .has-sub>.submenu{left:calc(100% + 4px);top:-6px}
/* burger del menú superior (solo móvil/tablet) */
.topnav{position:relative}
.tm-burger{display:none}
@media(max-width:1023px){
  .tm-burger{display:inline-flex;align-items:center;gap:8px;width:100%;justify-content:center;background:var(--navy);color:#fff;border:none;padding:11px;border-radius:var(--r-md);font-family:var(--font-head);font-weight:700;font-size:14px;cursor:pointer}
  .topmenu{display:none;margin-top:6px}
  .topnav.open .topmenu{display:flex;flex-wrap:wrap}
  .topmenu .tm-item{flex:1 1 100%}
  .topmenu .tm-link{width:100%;justify-content:space-between}
  .tm-drop{position:static;box-shadow:none;border:none;border-left:2px solid var(--n-100);border-radius:0;margin:2px 0 4px 12px;min-width:0;width:calc(100% - 12px)}
  .tm-drop .has-sub>.submenu{position:static;box-shadow:none;border:none;border-left:2px solid var(--n-100);border-radius:0;margin:2px 0 2px 12px;width:auto}
}
@media(min-width:1024px){.topmenu{display:flex}}

/* QSR — estado activo del menú superior */
.topmenu .tm-item.active > .tm-link,
.topmenu .tm-link.active { background: #1F2660 !important; color: #fff; box-shadow: none; }
