.global-admin-menu-trigger{position:fixed;top:14px;left:14px;z-index:3250;width:42px;height:42px;border:1px solid rgba(255,255,255,.15);border-radius:14px;background:rgba(17,17,17,.94);display:grid;align-content:center;justify-items:center;gap:4px;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,.28)}
.global-admin-menu-trigger span{width:18px;height:2px;border-radius:3px;background:#ffb347}
body:has(.global-admin-menu-trigger) .worker-identity{left:66px;width:min(560px,calc(100vw - 80px))}
.global-admin-menu{position:fixed;inset:0;z-index:3400;pointer-events:none}.global-admin-menu.open{pointer-events:auto}
.global-admin-menu-overlay{position:absolute;inset:0;background:rgba(0,0,0,.58);opacity:0;transition:.25s}.global-admin-menu.open .global-admin-menu-overlay{opacity:1}
.global-admin-menu-panel{position:absolute;left:0;top:0;height:100%;width:min(390px,92vw);background:#111;color:#fff;transform:translateX(-100%);transition:.3s ease;box-shadow:24px 0 70px rgba(0,0,0,.45);display:flex;flex-direction:column}
.global-admin-menu.open .global-admin-menu-panel{transform:none}
.global-admin-menu-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px;border-bottom:1px solid rgba(255,255,255,.09)}
.global-admin-menu-header span{font-size:12px;color:#ffb347;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.global-admin-menu-header h2{margin:5px 0 0}
.global-admin-menu-header button{width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:26px;cursor:pointer}
.global-admin-menu-body{padding:22px;overflow:auto}.global-admin-menu-body h3{margin:8px 0 12px;color:rgba(255,255,255,.55);font-size:12px;text-transform:uppercase;letter-spacing:.1em}
.global-admin-menu-action{width:100%;display:flex;align-items:center;gap:13px;text-align:left;padding:14px;margin-bottom:10px;border:1px solid rgba(255,255,255,.08);border-radius:17px;background:rgba(255,255,255,.05);color:#fff;cursor:pointer}
.global-admin-menu-action>span:first-child{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:rgba(255,179,71,.13);color:#ffd27a;font-size:18px}.global-admin-menu-action strong,.global-admin-menu-action small{display:block}.global-admin-menu-action small{margin-top:4px;color:rgba(255,255,255,.54)}.global-admin-menu-action.primary{border-color:rgba(255,179,71,.3);background:rgba(255,179,71,.1)}
.global-admin-menu-links{display:grid;grid-template-columns:1fr 1fr;gap:9px}.global-admin-menu-links a{padding:12px;border-radius:13px;background:rgba(255,255,255,.05);color:#fff;text-decoration:none;font-weight:800}.global-admin-menu-links a:hover,.global-admin-menu-links a.active{background:rgba(255,179,71,.16);outline:1px solid rgba(255,179,71,.35);color:#ffd27a}
@media(max-width:768px){.global-admin-menu-trigger{top:8px;left:8px;width:38px;height:38px;border-radius:12px}body:has(.global-admin-menu-trigger) .worker-identity{left:54px!important;right:auto!important;width:auto!important}.global-admin-menu-panel{width:min(360px,94vw)}.global-admin-menu-links{grid-template-columns:1fr}}

/* Etapa 103: datos del trabajador dentro del panel administrativo. */
.global-admin-session{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:11px;align-items:center;margin:0 0 22px;padding:15px;border:1px solid rgba(255,179,71,.24);border-radius:17px;background:linear-gradient(135deg,rgba(255,179,71,.11),rgba(255,255,255,.035))}
.global-admin-session-dot{width:9px;height:9px;border-radius:50%;background:#ffb347;box-shadow:0 0 0 5px rgba(255,179,71,.12)}
.global-admin-session div{min-width:0}.global-admin-session small,.global-admin-session strong,.global-admin-session p{display:block;margin:0}.global-admin-session small{color:rgba(255,255,255,.55);font-size:10px;text-transform:uppercase;letter-spacing:.09em}.global-admin-session strong{margin-top:4px;color:#ffd27a;font-size:14px}.global-admin-session p{margin-top:3px;color:#ddd;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.global-admin-session a{padding:9px 11px;border-radius:11px;background:rgba(239,68,68,.12);border:1px solid rgba(248,113,113,.22);color:#fecaca;text-decoration:none;font-size:11px;font-weight:800;white-space:nowrap}
@media(max-width:430px){.global-admin-session{grid-template-columns:10px minmax(0,1fr)}.global-admin-session a{grid-column:2;width:max-content;margin-top:4px}}


/* Etapa 110: acceso laboral compacto junto al logotipo. */
@media(min-width:901px){
  body.catalogo-page.has-worker-session .global-admin-menu-trigger{top:35px;left:14px;z-index:4300}
  body.catalogo-page.has-worker-session .catalogo-brand{margin-left:48px}
}
.global-admin-session{position:relative;overflow:hidden}
.global-admin-session a{white-space:nowrap}

/* Etapa 112: mismo comportamiento compacto dentro de la cabecera del catálogo. */
body.catalogo-page .catalogo-public-header>.global-admin-menu-trigger{
  position:static;
  flex:0 0 42px;
  width:42px;
  height:42px;
  margin:0;
  z-index:auto;
}
body.catalogo-page .catalogo-public-header>.global-admin-menu{z-index:32000}
body.global-admin-menu-open .global-admin-menu-trigger{opacity:0;visibility:hidden;pointer-events:none}
body.global-admin-menu-open .catalogo-public-header{pointer-events:none}
body.global-admin-menu-open .global-admin-menu{pointer-events:auto}
@media(max-width:700px){
  body.catalogo-page .catalogo-public-header>.global-admin-menu-trigger{flex-basis:38px;width:38px;height:38px}
  body.catalogo-page.has-worker-session .catalogo-public-header{padding-left:8px}
}

/* Etapa 113: el menú global vive directamente bajo body, igual que en index.php. */
body.catalogo-page.has-worker-session .global-admin-menu-trigger{
  position:fixed;
  z-index:32550;
}
@media(min-width:901px){
  body.catalogo-page.has-worker-session .global-admin-menu-trigger{
    top:30px;
    left:calc((100vw - min(1380px, calc(100vw - 32px)))/2 + 14px);
  }
}
body.catalogo-page .global-admin-menu{
  position:fixed;
  inset:0;
  z-index:33000!important;
  overflow:visible;
}
body.catalogo-page .global-admin-menu-panel{
  height:100dvh;
  max-height:100dvh;
  overflow:hidden;
}
body.catalogo-page .global-admin-menu-body{
  min-height:0;
  flex:1 1 auto;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
body.global-admin-menu-open.catalogo-page .catalogo-public-header{
  pointer-events:none;
}

/* Etapa 114: acceso administrativo alineado con las barras fijas. */
body.catalogo-page.has-worker-session .global-admin-menu-trigger{
  top:11px;
  left:16px;
}
@media(max-width:700px){
  body.catalogo-page.has-worker-session .global-admin-menu-trigger{
    top:10px;
    left:9px;
    background:transparent;
    box-shadow:none;
    border-color:rgba(255,255,255,.12);
  }
}

/* Etapa 115: misma coordenada del lanzador laboral que en la portada móvil. */
@media(max-width:700px){
  body.catalogo-page.has-worker-session .global-admin-menu-trigger{
    top:12px;
    left:8px;
    width:38px;
    height:38px;
    margin:0;
  }
}

/* Etapa 180: tipografia uniforme del menu administrativo en todas las vistas. */
.global-admin-menu-links a{
  min-height:44px;
  display:flex;
  align-items:center;
  padding:12px 13px!important;
  font-family:inherit!important;
  font-size:16px!important;
  font-weight:800!important;
  line-height:1.2!important;
  letter-spacing:0!important;
}
@media(max-width:768px){
  .global-admin-menu-links a{font-size:16px!important;min-height:44px}
}

/* Etapa 181: menu administrativo compacto y uniforme como la referencia aprobada. */
.global-admin-menu-panel{width:min(390px,96vw)!important}
.global-admin-menu-links{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
.global-admin-menu-links a{
  min-width:0!important;
  min-height:42px!important;
  padding:10px 12px!important;
  border-radius:12px!important;
  font-size:16px!important;
  font-weight:800!important;
  line-height:1.15!important;
  white-space:normal!important;
}
@media(max-width:430px){
  .global-admin-menu-panel{width:min(390px,100vw)!important}
  .global-admin-menu-body{padding:22px!important}
  .global-admin-menu-links{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .global-admin-menu-links a{font-size:16px!important;min-height:42px!important}
}

/* Etapa 182: componente unico para las vistas del sistema. */
.global-admin-menu .global-admin-menu-links{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:9px!important;
}
.global-admin-menu .global-admin-menu-links a{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  min-width:0!important;
  min-height:42px!important;
  height:auto!important;
  margin:0!important;
  padding:10px 12px!important;
  border:0!important;
  border-radius:12px!important;
  box-sizing:border-box!important;
  font-family:Arial,sans-serif!important;
  font-size:16px!important;
  font-style:normal!important;
  font-weight:700!important;
  line-height:1.15!important;
  letter-spacing:0!important;
  text-transform:none!important;
  white-space:normal!important;
}
@media(max-width:430px){
  .global-admin-menu .global-admin-menu-body{padding:22px!important}
  .global-admin-menu .global-admin-menu-links{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .global-admin-menu .global-admin-menu-links a{min-height:42px!important;padding:10px 12px!important;font-size:16px!important}
}

/* Etapa 287: cabecera móvil del catálogo alineada y lanzador administrativo fuera de los modales. */
@media(max-width:700px){
  body.catalogo-page.has-worker-session .global-admin-menu-trigger{
    top:10px!important;
    left:8px!important;
    width:38px!important;
    height:38px!important;
    margin:0!important;
  }
  body.catalogo-page.hm-admin-modal-open .global-admin-menu-trigger{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
}
