*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial;color:#13233e;background:#f3f7fb}header{height:72px;background:#fff;border-bottom:1px solid #e4ebf3;display:flex;align-items:center;gap:16px;padding:0 22px;position:sticky;top:0;z-index:5}header b{font-size:22px}header small{display:block;color:#72819a;margin-top:3px}#who{margin-left:auto;text-align:right}.icon{border:0;background:transparent;font-size:22px}main{max-width:1480px;margin:auto;padding:24px}.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.stat{appearance:none;text-align:left;background:#fff;border:1px solid #e2eaf3;border-radius:16px;padding:18px;cursor:pointer;color:inherit}.stat:hover{border-color:#9fc2f5}.stat b{font-size:27px;display:block}.stat span{color:#65758c}.toolbar{margin-top:18px;background:#fff;border:1px solid #e2eaf3;border-radius:16px;padding:14px;display:grid;grid-template-columns:2fr repeat(3,1fr) auto;gap:10px}input,select,textarea{width:100%;border:1px solid #d6e0eb;border-radius:10px;padding:12px;background:#fff;font:inherit;min-height:44px}textarea{resize:vertical}button{cursor:pointer;font:inherit}.primary,.save{border:0;background:#1266df;color:#fff;border-radius:10px;padding:12px 18px;font-weight:700}.save:disabled{opacity:.6}#tabs{display:flex;overflow:auto;gap:8px;margin:18px 0 10px;border-bottom:1px solid #dfe7f0}#tabs button{white-space:nowrap;border:0;background:transparent;padding:13px 16px;color:#52637c;font-weight:650}#tabs .active{color:#1266df;border-bottom:3px solid #1266df}.panel{background:#fff;border:1px solid #e2eaf3;border-radius:16px;overflow:hidden;min-height:380px}.tableWrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:13px;border-bottom:1px solid #edf1f6;text-align:left;vertical-align:middle}.table th{font-size:12px;color:#65758c;background:#fbfcfe;position:sticky;top:0}.table td small{display:block;color:#7b899d;margin-top:3px}.avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#e7eef8;display:inline-grid;place-items:center;margin-right:10px;vertical-align:middle}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.pill{display:inline-block;padding:5px 9px;border-radius:999px;background:#e8f8ef;color:#13814a;font-size:12px}.pill.warn{background:#fff3df;color:#b56b00}.pill.bad{background:#ffe8e8;color:#c53030}.actions{display:flex;gap:6px;flex-wrap:wrap}.actions button,.sectionActions button,.card button,.drawerFoot button,.formPane>button{border:1px solid #b8d0ef;background:#fff;color:#1266df;border-radius:8px;padding:8px 11px;font-weight:650}.actions .editBtn{background:#edf5ff}.deleteBtn{border-color:#ffc8c8!important;color:#c62828!important;background:#fff5f5!important}.empty{padding:50px;text-align:center;color:#718198}.smallEmpty{padding:30px}.drawer{position:fixed;right:-1120px;top:12px;bottom:12px;width:min(1080px,calc(100vw - 24px));height:auto;background:#fff;z-index:20;transition:.25s;overflow:hidden;box-shadow:-15px 0 40px #1d35571f;border-radius:16px;display:flex;flex-direction:column}.drawer.open{right:0}.shade{display:none;position:fixed;inset:0;background:#14243c70;z-index:19}.shade.open{display:block}.drawerHead{flex:0 0 auto;background:#fff;display:flex;align-items:center;padding:16px 22px;border-bottom:1px solid #e6edf5;z-index:4}.drawerHead h2{margin:0}.drawerHead button{margin-left:auto;border:0;background:transparent;font-size:30px}.drawerBody{padding:18px 20px;flex:1 1 auto;min-height:0;overflow:auto}.employeeHero{display:flex;align-items:center;gap:16px;padding:4px 0 18px}.employeeHero h3{font-size:22px;margin:0}.employeeHero p{margin:4px 0;color:#718198}.photoBox{width:86px;height:86px;border-radius:50%;background:#eef3f9;position:relative;display:grid;place-items:center;overflow:visible}.photoBox>img{width:86px;height:86px;border-radius:50%;object-fit:cover;position:absolute;z-index:1;background:#eef3f9}.photoFallback{font-size:34px}.cameraBtn{position:absolute;right:-3px;bottom:0;width:31px;height:31px;border-radius:50%;background:#1266df;color:#fff;display:grid;place-items:center;z-index:2;cursor:pointer;border:3px solid #fff}.formTabs{display:flex;gap:4px;overflow-x:auto;overflow-y:hidden;border-bottom:1px solid #e5ebf3;margin-bottom:14px;background:#fff;z-index:2;flex:0 0 auto;scrollbar-width:thin}.formTabs button{border:0;background:none;padding:12px 14px;color:#607089;white-space:nowrap}.formTabs .active{color:#1266df;border-bottom:3px solid #1266df;font-weight:700}.formPane{min-height:0;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:2px 8px 18px 0;overscroll-behavior:contain}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid .wide{grid-column:1/-1}.field label{font-size:12px;font-weight:700;color:#5b6c84;display:block;margin-bottom:6px}.check{display:flex;align-items:center;gap:10px;background:#f6f9fd;border:1px solid #dfe8f3;border-radius:12px;padding:14px}.check input{width:18px;min-height:auto}.drawerFoot{flex:0 0 auto;background:#fff;border-top:1px solid #e6edf5;padding:12px 0 2px;display:flex;justify-content:flex-end;gap:10px;z-index:3}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:16px}.cards.compact{padding:0;grid-template-columns:repeat(2,1fr)}.card{border:1px solid #e1e9f2;border-radius:14px;padding:16px}.card h3{margin:0 0 8px}.mini,.muted{font-size:12px;color:#708098}.sectionHead{padding:16px;display:flex;align-items:center;gap:10px;justify-content:space-between}.sectionHead h2,.sectionHead h3{margin:0}.sectionActions{display:flex;gap:8px}.sectionHead.inner{padding:0 0 14px}.photo{width:90px;height:90px;border-radius:50%;object-fit:cover;background:#eaf0f7}.placeholder{display:grid;place-items:center;font-size:34px}.profileTop{display:flex;gap:16px;align-items:center;margin-bottom:18px}.profileTop h2{margin:0 0 5px}.profileMetrics,.coopSummary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0 18px}.profileMetrics>div,.coopSummary>div{background:#f6f9fd;border:1px solid #e1eaf4;border-radius:12px;padding:14px}.profileMetrics span,.coopSummary span{display:block;font-size:12px;color:#718198;margin-bottom:5px}.profileMetrics b,.coopSummary b{font-size:20px}.coopSummary{grid-template-columns:1fr 1fr}.subTitle{font-weight:800;margin:22px 0 10px}.miniTable{overflow:auto;border:1px solid #e5ebf2;border-radius:12px}.miniTable table{width:100%;border-collapse:collapse}.miniTable th,.miniTable td{padding:10px;border-bottom:1px solid #edf1f5;text-align:left;font-size:13px}.docList,.movementList{display:grid;gap:8px}.docRow,.movementList>div{border:1px solid #e2eaf3;border-radius:10px;padding:11px;display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center}.docRow span{display:block;color:#718198;font-size:12px}.movementList>div{grid-template-columns:1fr auto}.movementList span{color:#6d7c90}
@media(max-width:1000px){.stats{grid-template-columns:repeat(3,1fr)}.toolbar{grid-template-columns:1fr 1fr}.toolbar #q,.toolbar .primary{grid-column:1/-1}.cards{grid-template-columns:1fr 1fr}.profileMetrics{grid-template-columns:1fr 1fr}}
#empForm{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.employeeHero{flex:0 0 auto}.drawerBody:has(#empForm){overflow:hidden}.formPane[hidden]{display:none!important}.formPane .grid{padding-bottom:6px}
@media(max-width:650px){main{padding:12px}header{padding:0 12px}.stats{grid-template-columns:1fr 1fr}.stat{padding:13px}.stat b{font-size:22px}.toolbar{grid-template-columns:1fr}.toolbar>*{grid-column:1!important}.panel{border-radius:12px}.tableWrap{overflow:visible}.table thead{display:none}.table,.table tbody,.table tr,.table td{display:block;width:100%}.table tr{padding:12px;border-bottom:1px solid #e7edf5}.table td{border:0;padding:5px}.table td:before{content:attr(data-label);font-size:11px;color:#7a899c;display:block}.actions{padding-top:10px!important}.actions button{flex:1;min-width:90px}.cards,.cards.compact{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.grid .wide{grid-column:auto}.drawer{top:0;right:-100%;bottom:0;width:100%;max-width:none;border-radius:0}.drawerBody{padding:12px 14px}.formTabs{margin:0 -2px 12px;padding-top:2px}.profileMetrics,.coopSummary{grid-template-columns:1fr 1fr}.drawerFoot{padding:12px 0;flex-wrap:wrap}.drawerFoot button{flex:1;min-width:120px}.employeeHero{padding-top:2px}.docRow{grid-template-columns:1fr auto}.docRow a{grid-column:1/-1}}

/* V4.3.4: editor de empleado a pantalla completa */
.drawer.employeeFull{left:16px!important;right:16px!important;top:16px!important;bottom:16px!important;width:auto!important;max-width:none!important;height:auto!important;border-radius:16px!important}.drawer.employeeFull.open{right:16px!important}.drawer.employeeFull .drawerBody{padding:18px 24px!important}.drawer.employeeFull #empForm{max-width:1500px;width:100%;margin:0 auto}.drawer.employeeFull .employeeHero{padding:6px 4px 16px}.drawer.employeeFull .formTabs{position:sticky;top:0;padding-top:2px}.drawer.employeeFull .formPane{padding:8px 8px 24px}.drawer.employeeFull .drawerFoot{position:sticky;bottom:0;padding:12px 4px;background:#fff}.drawer.employeeFull .drawerFoot .save{min-width:170px;font-size:15px}.drawer.employeeFull .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}@media(max-width:650px){.drawer.employeeFull{inset:0!important;border-radius:0!important}.drawer.employeeFull.open{right:0!important}.drawer.employeeFull .drawerBody{padding:12px 14px!important}.drawer.employeeFull .grid{grid-template-columns:1fr}.drawer.employeeFull .drawerFoot{padding:10px 0}.drawer.employeeFull .drawerFoot button{min-height:46px}}

/* V4.3.5: editor de empleado full-screen responsive con acciones siempre visibles */
.drawer.employeeFull{
  position:fixed!important;
  inset:10px!important;
  width:auto!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  border-radius:16px!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
.drawer.employeeFull.open{right:10px!important}
.drawer.employeeFull .drawerHead{
  flex:0 0 auto!important;
  min-height:62px;
  padding:14px 20px!important;
}
.drawer.employeeFull .drawerBody{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  overflow:hidden!important;
  padding:0 22px!important;
}
.drawer.employeeFull #empForm{
  width:100%!important;
  max-width:1500px!important;
  height:100%!important;
  min-height:0!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-rows:auto auto minmax(0,1fr) auto!important;
  overflow:hidden!important;
}
.drawer.employeeFull .employeeHero{
  min-height:92px;
  padding:14px 4px 10px!important;
  overflow:hidden;
}
.drawer.employeeFull .formTabs{
  position:relative!important;
  top:auto!important;
  margin:0!important;
  min-height:48px;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:thin;
}
.drawer.employeeFull .formPane{
  min-height:0!important;
  height:auto!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding:16px 6px 22px 2px!important;
  -webkit-overflow-scrolling:touch;
}
.drawer.employeeFull .drawerFoot{
  position:relative!important;
  bottom:auto!important;
  flex:0 0 auto!important;
  min-height:68px;
  margin:0!important;
  padding:10px 4px!important;
  border-top:1px solid #dfe7f0!important;
  background:#fff!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  z-index:10!important;
}
.drawer.employeeFull .drawerFoot button{
  min-height:44px;
  padding:10px 18px;
}
.drawer.employeeFull .drawerFoot .save{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-width:180px!important;
  background:#1266df!important;
  color:#fff!important;
  border:1px solid #1266df!important;
}
.drawer.employeeFull .grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px 18px!important;
}
.drawer.employeeFull input,
.drawer.employeeFull select,
.drawer.employeeFull textarea{
  min-width:0;
  max-width:100%;
}

@media (max-width:1000px){
  .drawer.employeeFull{inset:6px!important;border-radius:12px!important}
  .drawer.employeeFull.open{right:6px!important}
  .drawer.employeeFull .drawerBody{padding:0 16px!important}
  .drawer.employeeFull .grid{gap:12px!important}
  .drawer.employeeFull .formTabs button{padding:11px 12px}
}

@media (max-width:700px){
  .drawer.employeeFull{
    inset:0!important;
    border-radius:0!important;
  }
  .drawer.employeeFull.open{right:0!important}
  .drawer.employeeFull .drawerHead{
    min-height:56px;
    padding:10px 14px!important;
  }
  .drawer.employeeFull .drawerBody{padding:0 12px!important}
  .drawer.employeeFull #empForm{
    grid-template-rows:auto auto minmax(0,1fr) auto!important;
  }
  .drawer.employeeFull .employeeHero{
    min-height:72px;
    gap:10px;
    padding:8px 2px!important;
  }
  .drawer.employeeFull .employeeHero h3{font-size:17px}
  .drawer.employeeFull .employeeHero p{font-size:13px}
  .drawer.employeeFull .photoBox,
  .drawer.employeeFull .photoBox>img{width:62px;height:62px}
  .drawer.employeeFull .formTabs{
    margin:0 -2px!important;
    min-height:46px;
  }
  .drawer.employeeFull .formTabs button{
    flex:0 0 auto;
    padding:10px 11px!important;
    font-size:13px;
  }
  .drawer.employeeFull .formPane{padding:12px 2px 18px!important}
  .drawer.employeeFull .grid{grid-template-columns:1fr!important;gap:11px!important}
  .drawer.employeeFull .grid .wide{grid-column:1!important}
  .drawer.employeeFull .drawerFoot{
    min-height:64px;
    padding:8px 0 calc(8px + env(safe-area-inset-bottom))!important;
    gap:7px!important;
    flex-wrap:nowrap!important;
  }
  .drawer.employeeFull .drawerFoot button{
    min-width:0!important;
    flex:1 1 auto!important;
    padding:9px 8px!important;
    font-size:13px;
  }
  .drawer.employeeFull .drawerFoot .deleteBtn{flex:0 1 auto!important}
  .drawer.employeeFull .drawerFoot .save{min-width:0!important;flex:1.35 1 auto!important}
}

@media (max-width:430px){
  .drawer.employeeFull .drawerFoot{gap:5px!important}
  .drawer.employeeFull .drawerFoot button{font-size:12px!important;padding:8px 6px!important}
  .drawer.employeeFull .drawerFoot .deleteBtn{font-size:0!important;flex:0 0 46px!important}
  .drawer.employeeFull .drawerFoot .deleteBtn::after{content:'🗑️';font-size:18px}
}

/* V4.3.6: barra de acciones anclada al borde inferior del editor */
.drawer.employeeFull{position:fixed!important}
.drawer.employeeFull .drawerBody{position:relative!important;padding-bottom:0!important}
.drawer.employeeFull #empForm{position:relative!important;padding-bottom:82px!important}
.drawer.employeeFull .formPane{padding-bottom:110px!important}
.drawer.employeeFull .drawerFoot{
  position:absolute!important;
  left:22px!important;
  right:22px!important;
  bottom:0!important;
  top:auto!important;
  min-height:70px!important;
  margin:0!important;
  padding:10px 4px!important;
  background:#fff!important;
  border-top:1px solid #dfe7f0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  z-index:50!important;
  box-shadow:0 -8px 18px rgba(20,36,60,.06)!important;
}
.drawer.employeeFull .drawerFoot .save{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  min-width:190px!important;
  min-height:46px!important;
  background:#1266df!important;
  color:#fff!important;
  border-color:#1266df!important;
}
@media(max-width:700px){
  .drawer.employeeFull #empForm{padding-bottom:76px!important}
  .drawer.employeeFull .formPane{padding-bottom:96px!important}
  .drawer.employeeFull .drawerFoot{
    left:12px!important;
    right:12px!important;
    bottom:0!important;
    min-height:64px!important;
    padding:8px 0 calc(8px + env(safe-area-inset-bottom))!important;
  }
}

/* V4.3.7: editor de empleado estable, full-width y responsive */
.drawer.employeeFull{
  inset:8px!important;
  width:auto!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  border-radius:14px!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.drawer.employeeFull.open{right:8px!important}
.drawer.employeeFull .drawerHead{
  flex:0 0 60px!important;
  min-height:60px!important;
  padding:12px 18px!important;
}
.drawer.employeeFull .drawerBody{
  flex:1 1 auto!important;
  min-height:0!important;
  width:100%!important;
  padding:0!important;
  overflow:hidden!important;
  position:relative!important;
}
.drawer.employeeFull #empForm{
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0 22px!important;
  display:grid!important;
  grid-template-rows:auto auto minmax(0,1fr) 70px!important;
  overflow:hidden!important;
}
.drawer.employeeFull .employeeHero{
  width:100%!important;
  min-height:88px!important;
  padding:12px 4px 8px!important;
  margin:0!important;
}
.drawer.employeeFull .formTabs{
  width:100%!important;
  margin:0!important;
  position:relative!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
.drawer.employeeFull .formPane{
  width:100%!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding:16px 4px 26px!important;
}
.drawer.employeeFull .formPane .grid{
  width:100%!important;
  max-width:none!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px 20px!important;
}
.drawer.employeeFull .drawerFoot{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  min-height:70px!important;
  margin:0!important;
  padding:10px 4px!important;
  background:#fff!important;
  border-top:1px solid #dfe7f0!important;
  box-shadow:0 -8px 18px rgba(20,36,60,.06)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  z-index:100!important;
}
.drawer.employeeFull .drawerFoot button{min-height:46px!important}
.drawer.employeeFull .drawerFoot .save{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  min-width:190px!important;
  align-items:center!important;
  justify-content:center!important;
  background:#1266df!important;
  color:#fff!important;
  border-color:#1266df!important;
}
@media(max-width:900px){
  .drawer.employeeFull{inset:4px!important;border-radius:10px!important}
  .drawer.employeeFull.open{right:4px!important}
  .drawer.employeeFull #empForm{padding:0 14px!important}
  .drawer.employeeFull .formPane .grid{gap:12px!important}
}
@media(max-width:700px){
  .drawer.employeeFull{inset:0!important;border-radius:0!important}
  .drawer.employeeFull.open{right:0!important}
  .drawer.employeeFull .drawerHead{flex-basis:56px!important;min-height:56px!important;padding:10px 12px!important}
  .drawer.employeeFull #empForm{padding:0 12px!important;grid-template-rows:auto auto minmax(0,1fr) auto!important}
  .drawer.employeeFull .employeeHero{min-height:70px!important;padding:8px 0!important}
  .drawer.employeeFull .formTabs button{flex:0 0 auto!important;font-size:13px!important;padding:10px 11px!important}
  .drawer.employeeFull .formPane{padding:12px 0 20px!important}
  .drawer.employeeFull .formPane .grid{grid-template-columns:1fr!important;gap:11px!important}
  .drawer.employeeFull .drawerFoot{
    min-height:64px!important;
    padding:8px 0 calc(8px + env(safe-area-inset-bottom))!important;
    gap:7px!important;
    flex-wrap:nowrap!important;
  }
  .drawer.employeeFull .drawerFoot button{min-width:0!important;flex:1 1 auto!important;padding:9px 8px!important;font-size:13px!important}
  .drawer.employeeFull .drawerFoot .save{min-width:0!important;flex:1.35 1 auto!important}
}
/* Portal de Usuario V4.4.0 */
.portalAccess{padding:4px 0 18px}.portalAccessHead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.portalAccessHead h3{margin:0 0 4px}.portalActions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px solid #dfe7f0}.portalActions .save{background:#0b63d8;color:#fff;border-color:#0b63d8}@media(max-width:700px){.portalAccessHead{flex-direction:column}.portalActions{display:grid;grid-template-columns:1fr}.portalActions button{width:100%}}


/* V4.6.6 Técnicos y Operadores */
.opsDash{display:grid;gap:18px}.opsHero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px;border-radius:18px;background:linear-gradient(135deg,#0d5bd7,#153f86);color:#fff}.opsHero h2{margin:4px 0;font-size:28px}.opsHero p{margin:0;opacity:.88}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.15em}.opsHeroActions{display:flex;gap:10px;flex-wrap:wrap}.opsHeroActions button{background:#fff;color:#123;border:0}.opsHeroActions .primary{background:#20b779;color:#fff}.opsKpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.opsKpi{background:#fff;border:1px solid #dde7f2;border-radius:15px;padding:16px;display:grid;gap:5px;box-shadow:0 8px 22px rgba(19,48,84,.05)}.opsKpi span,.opsKpi small{color:#667991}.opsKpi b{font-size:24px;color:#10284a}.opsKpi.warning{border-top:4px solid #ff9f1a}.opsKpi.positive{border-top:4px solid #1eae72}.opsToolbar{display:grid;grid-template-columns:1fr 180px 220px;gap:10px}.opsToolbar input,.opsToolbar select{min-height:44px;border:1px solid #d7e2ee;border-radius:11px;padding:0 12px;background:#fff}.opsCards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.opsPersonCard{background:#fff;border:1px solid #dce6f0;border-radius:17px;padding:16px;box-shadow:0 10px 28px rgba(22,48,82,.05)}.opsPersonHead{display:flex;align-items:center;gap:12px}.opsAvatar{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:#eaf3ff;font-size:25px;overflow:hidden}.opsAvatar.big{width:70px;height:70px}.opsAvatar img{width:100%;height:100%;object-fit:cover}.opsIdentity{min-width:0;flex:1}.opsIdentity h3{margin:0;color:#10284a}.opsIdentity p{margin:3px 0 7px;color:#6a7c92;font-size:13px}.opsBadges{display:flex;gap:6px;flex-wrap:wrap}.opsBadges span{background:#edf4fb;border-radius:999px;padding:4px 8px;font-size:11px;color:#345}.dots{white-space:nowrap}.opsMiniGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:15px 0}.opsMiniGrid div{background:#f7f9fc;border-radius:11px;padding:10px;display:grid;gap:2px}.opsMiniGrid small{font-size:11px;color:#74849a}.opsMiniGrid b{font-size:18px}.opsMoney{display:grid;grid-template-columns:1fr 1fr;gap:8px}.opsMoney div{border-top:1px dashed #dce5ef;padding-top:10px;display:flex;justify-content:space-between;gap:10px;font-size:13px}.warnText{color:#d97900}.opsCardFoot{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.opProfileHero{display:flex;gap:15px;align-items:center;padding:5px 0 14px}.opsProfileMetrics{grid-template-columns:repeat(4,minmax(0,1fr))!important}.opSections{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.toolList{display:grid;gap:7px}.toolList>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed #dde5ee;padding:7px 0}.toolList span{font-size:12px;color:#718198}.toolEditor{display:grid;grid-template-columns:1.4fr 1fr 1fr .8fr 44px;gap:7px;margin:8px 0}.toolEditor input,.toolEditor select{min-width:0;border:1px solid #d7e2ee;border-radius:9px;padding:9px}.subTitle{margin:18px 0 8px;font-weight:800;color:#17385f}
@media(max-width:1100px){.opsKpis{grid-template-columns:repeat(2,1fr)}.opsCards{grid-template-columns:1fr}.opsProfileMetrics{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:700px){.opsHero{align-items:flex-start;flex-direction:column}.opsHero h2{font-size:22px}.opsKpis{grid-template-columns:1fr 1fr}.opsToolbar{grid-template-columns:1fr}.opsMiniGrid{grid-template-columns:1fr 1fr}.opSections{grid-template-columns:1fr}.toolEditor{grid-template-columns:1fr 1fr}.toolEditor .deleteBtn{grid-column:2}.opsProfileMetrics{grid-template-columns:1fr 1fr!important}}

/* V4.6.8 - flujo de alta y tarifas técnicas */
.setupNotice{display:flex;flex-direction:column;gap:5px;padding:16px 18px;margin:4px 0 16px;border:1px solid #b9d7ff;background:#f0f7ff;border-radius:14px;color:#24466f}.setupNotice b{font-size:15px;color:#0f5ec8}.setupNotice span{font-size:13px;line-height:1.45}.serviceRateGrid .field{background:#fbfdff;border:1px solid #e1ebf6;border-radius:12px;padding:12px}.serviceRateGrid input{font-weight:750;color:#0f5ec8;background:#fff}

/* V4.7.5 - PRESENTACION GLOBAL EN MAYUSCULAS SIN ALTERAR LOS VALORES GUARDADOS */
body{text-transform:uppercase}
input[type="password"],input[name="username"],input[name="user"],input[name*="username" i],#currentUser,#who,.preserve-case,.username,.user-name{text-transform:none!important}

/* V4.7.5 - PERFIL OPERATIVO DESPLEGADO, SIN DRAWER/CUADRO */
.opProfileFull{width:100%;display:grid;gap:18px;padding:4px 0 24px}.opProfileTop{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.opProfileActions{display:flex;gap:8px;flex-wrap:wrap}.backBtn{background:#eef4fb;color:#17385f}.opProfileHero.expanded{background:linear-gradient(135deg,#0d5bd7,#173f82);color:#fff;border-radius:18px;padding:22px}.opProfileHero.expanded p{color:#e7efff}.opProfileHero.expanded .opsBadges span{background:rgba(255,255,255,.16);color:#fff}.expandedMetrics{grid-template-columns:repeat(4,minmax(0,1fr))!important}.expandedMetrics>div{background:#fff;border:1px solid #dce6f0;border-radius:14px;padding:16px;box-shadow:0 7px 20px rgba(22,48,82,.05)}.expandedSections{grid-template-columns:1fr 1fr}.expandedSections>section,.opRecentFull{background:transparent;border-top:2px solid #dfe8f2;padding:18px 4px 4px;border-radius:0;box-shadow:none}.sectionHeadInline{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.sectionHeadInline h3{margin:0}.opRecentFull .movementList>div{background:#fff;border:1px solid #e2eaf3;border-radius:10px;padding:10px 12px;margin:6px 0}@media(max-width:900px){.expandedMetrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}.expandedSections{grid-template-columns:1fr}}

/* V4.7.9 - dashboard colorido y empleados tipo tarjeta de presentación */
.stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.stat{min-height:104px;display:flex;align-items:center;gap:12px;position:relative;overflow:hidden;border:0;box-shadow:0 7px 22px rgba(26,55,91,.07);transition:transform .18s ease,box-shadow .18s ease}
.stat:after{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--stat-accent,#1266df)}
.stat:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(26,55,91,.12)}
.statIcon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:21px;background:var(--stat-soft,#eef5ff);flex:0 0 auto}
.statText{min-width:0;display:block}.statText b{font-size:26px;line-height:1;color:#13233e}.statText strong{font-size:13px;display:block;margin-top:4px;color:#243b5a}.statText small{font-size:10px;display:block;margin-top:3px;color:#7b899d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-blue{--stat-accent:#1266df;--stat-soft:#eaf2ff}.stat-green{--stat-accent:#18a76b;--stat-soft:#e8f8f1}.stat-cyan{--stat-accent:#00a9c7;--stat-soft:#e6f9fd}.stat-violet{--stat-accent:#7b61ff;--stat-soft:#f0edff}.stat-orange{--stat-accent:#ff8a24;--stat-soft:#fff2e6}.stat-emerald{--stat-accent:#15b887;--stat-soft:#e7faf4}
.employeeSectionHead{padding:18px 20px 10px}.employeeSectionHead h2{font-size:20px}
.employeeCardGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:16px;padding:12px 18px 22px}
.employeeBizCard{background:#fff;border:1px solid #e2eaf3;border-radius:17px;padding:15px;box-shadow:0 8px 24px rgba(24,50,82,.07);position:relative;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}
.employeeBizCard:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--card-accent,#1266df)}
.employeeBizCard:hover{transform:translateY(-3px);box-shadow:0 13px 30px rgba(24,50,82,.12)}
.employeeAccent-0{--card-accent:#1266df}.employeeAccent-1{--card-accent:#15a36d}.employeeAccent-2{--card-accent:#7b61ff}.employeeAccent-3{--card-accent:#ff8a24}.employeeAccent-4{--card-accent:#00a9c7}.employeeAccent-5{--card-accent:#e34a6f}
.employeeBizTop{display:flex;align-items:center;gap:11px;min-width:0}.employeePhoto{width:62px;height:62px;border-radius:16px;background:linear-gradient(145deg,#eef4fb,#dde8f5);display:grid;place-items:center;overflow:hidden;flex:0 0 auto;border:2px solid #fff;box-shadow:0 3px 11px #1b35571a}.employeePhoto img{width:100%;height:100%;object-fit:cover}.employeePhoto span{font-weight:850;font-size:19px;color:#31527a}
.employeeIdentity{min-width:0;flex:1}.employeeIdentity h3{margin:0;font-size:15px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.employeeIdentity p{margin:4px 0 6px;font-size:11px;color:#6e7e93;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.employeeState{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800}.employeeState-activo{background:#e6f7ef;color:#14804d}.employeeState-vacaciones{background:#fff1dc;color:#aa6400}.employeeState-inactivo{background:#ffe9e9;color:#b92b2b}.employeeMore{border:0!important;background:#f3f7fb!important;color:#45617f!important;width:31px;height:31px;border-radius:10px!important;padding:0!important;font-size:24px!important;line-height:1!important}
.employeeBizInfo{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px;margin-top:14px;padding:12px;background:#f7f9fc;border-radius:12px}.employeeBizInfo div{min-width:0}.employeeBizInfo small{display:block;font-size:9px;color:#8794a6;margin-bottom:2px}.employeeBizInfo b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#263a55}
.employeeContact{font-size:10px;color:#6a7a8f;margin:10px 2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none!important}
.employeeBizActions{display:flex;gap:7px;margin-top:12px}.employeeBizActions button{border:1px solid #c8d9ee;background:#fff;color:#1266df;border-radius:9px;padding:8px 10px;font-size:11px;font-weight:750;min-height:36px}.employeeBizActions .editBtn{background:#edf5ff;flex:1}.employeeBizActions button:first-child{flex:1}.employeeBizActions .deleteBtn{flex:0 0 38px;padding:8px}
@media(max-width:1200px){.stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.stats{grid-template-columns:repeat(2,1fr)}.stat{min-height:88px;padding:12px}.statText b{font-size:22px}.employeeCardGrid{grid-template-columns:1fr;padding:10px 12px 18px}.employeeBizCard{padding:14px}.employeeSectionHead{align-items:flex-start;flex-direction:column}.employeeSectionHead .sectionActions{width:100%;flex-wrap:wrap}.employeeSectionHead .sectionActions button{flex:1}}

/* V4.8.0 - COLORES MÁS VIVOS EN DASHBOARD DE PERSONAL */
.stat-blue{background:linear-gradient(135deg,#eef5ff 0%,#d8eaff 100%);--stat-accent:#0068ff;--stat-soft:#cfe3ff}
.stat-green{background:linear-gradient(135deg,#e9fff4 0%,#c8f4dd 100%);--stat-accent:#00ad66;--stat-soft:#baf0d3}
.stat-cyan{background:linear-gradient(135deg,#e4fbff 0%,#bdeff8 100%);--stat-accent:#00a9d6;--stat-soft:#b6eaf4}
.stat-violet{background:linear-gradient(135deg,#f2edff 0%,#ddd1ff 100%);--stat-accent:#7547ff;--stat-soft:#d6c8ff}
.stat-orange{background:linear-gradient(135deg,#fff2df 0%,#ffd9aa 100%);--stat-accent:#ff7800;--stat-soft:#ffd09a}
.stat-emerald{background:linear-gradient(135deg,#e4fff7 0%,#c0f2e4 100%);--stat-accent:#00b985;--stat-soft:#b3ebdc}
.statText b{color:#0e284d}.statText strong{color:#153e69}.stat:after{width:7px}
.employeeBizCard{border-width:2px;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.employeeBizCard:before{height:7px}
.employeeAccent-0{--card-accent:#0068ff}.employeeAccent-1{--card-accent:#00ad66}.employeeAccent-2{--card-accent:#7547ff}.employeeAccent-3{--card-accent:#ff7800}.employeeAccent-4{--card-accent:#00b6d8}.employeeAccent-5{--card-accent:#ef3e78}
.employeeAccent-0 .employeePhoto{background:linear-gradient(145deg,#d8eaff,#b9d7ff)}
.employeeAccent-1 .employeePhoto{background:linear-gradient(145deg,#d8f8e9,#b6ebd0)}
.employeeAccent-2 .employeePhoto{background:linear-gradient(145deg,#ece6ff,#d8cbff)}
.employeeAccent-3 .employeePhoto{background:linear-gradient(145deg,#fff0dc,#ffd3a1)}
.employeeAccent-4 .employeePhoto{background:linear-gradient(145deg,#ddf9ff,#bdeff7)}
.employeeAccent-5 .employeePhoto{background:linear-gradient(145deg,#ffe5ef,#ffc5d9)}
.employeeState-activo{background:#bff1d6;color:#087a43}.employeeState-vacaciones{background:#ffd99e;color:#874b00}.employeeState-inactivo{background:#ffc8cc;color:#9d1823}
.employeeBizActions button{border-width:2px}.employeeBizActions button:first-child{background:#edf5ff}.employeeBizActions .editBtn{background:#ddecff;border-color:#9fc4ff}.employeeBizActions .deleteBtn{background:#fff0f2;border-color:#ffb7bf;color:#c72637}

/* V4.8.1 */
.saveClose{background:linear-gradient(135deg,#0f9f5f,#22c55e)!important;color:#fff!important;border-color:#0f9f5f!important}.docRow .actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.docRow small{display:block;margin-top:3px}.portalActions{display:flex;gap:10px;flex-wrap:wrap}

/* V4.8.2 - EDITOR DE EMPLEADO ADAPTABLE A CUALQUIER RESOLUCION */
.drawer.employeeFull{
  inset:clamp(0px,1vw,12px)!important;
  width:auto!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  border-radius:clamp(0px,1vw,14px)!important;
}
.drawer.employeeFull.open{right:clamp(0px,1vw,12px)!important}
.drawer.employeeFull .drawerHead{
  min-height:clamp(48px,5vw,62px)!important;
  padding:clamp(8px,1.2vw,14px) clamp(12px,1.8vw,24px)!important;
}
.drawer.employeeFull .drawerHead h2{font-size:clamp(16px,1.35vw,22px)!important}
.drawer.employeeFull .drawerBody{
  padding:0!important;
  overflow:hidden!important;
  min-height:0!important;
}
.drawer.employeeFull #empForm{
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0 clamp(10px,1.6vw,26px)!important;
  display:grid!important;
  grid-template-rows:auto auto minmax(0,1fr) auto!important;
}
.drawer.employeeFull .employeeHero{
  min-height:0!important;
  padding:clamp(8px,1vw,16px) 0!important;
  gap:clamp(10px,1vw,16px)!important;
}
.drawer.employeeFull .photoBox,
.drawer.employeeFull .photoBox>img{
  width:clamp(58px,5.2vw,86px)!important;
  height:clamp(58px,5.2vw,86px)!important;
}
.drawer.employeeFull .employeeHero h3{font-size:clamp(16px,1.4vw,22px)!important}
.drawer.employeeFull .employeeHero p{font-size:clamp(11px,.85vw,14px)!important}
.drawer.employeeFull .formTabs{
  width:100%!important;
  margin:0!important;
  min-width:0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
}
.drawer.employeeFull .formTabs button{
  flex:0 0 auto!important;
  min-height:42px!important;
  padding:clamp(9px,.9vw,13px) clamp(10px,1vw,15px)!important;
  font-size:clamp(11px,.82vw,14px)!important;
  scroll-snap-align:start;
}
.drawer.employeeFull .formPane{
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  overflow:auto!important;
  padding:clamp(10px,1.2vw,18px) 2px clamp(16px,2vw,28px)!important;
  scrollbar-gutter:stable;
}
.drawer.employeeFull .formPane .grid{
  width:100%!important;
  min-width:0!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:clamp(9px,1vw,16px) clamp(10px,1.2vw,20px)!important;
}
.drawer.employeeFull .field,
.drawer.employeeFull .check,
.drawer.employeeFull .setupNotice,
.drawer.employeeFull .portalAccess{min-width:0!important;max-width:100%!important}
.drawer.employeeFull input,
.drawer.employeeFull select,
.drawer.employeeFull textarea{
  min-width:0!important;
  max-width:100%!important;
  font-size:clamp(13px,.9vw,16px)!important;
}
.drawer.employeeFull textarea{min-height:clamp(72px,9vw,130px)!important}
.drawer.employeeFull .drawerFoot{
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  padding:clamp(8px,.8vw,12px) 0!important;
  gap:clamp(6px,.7vw,10px)!important;
  flex-wrap:wrap!important;
}
.drawer.employeeFull .drawerFoot button{
  min-height:42px!important;
  padding:9px clamp(10px,1vw,16px)!important;
  font-size:clamp(11px,.82vw,14px)!important;
}

/* Pantallas grandes: aprovechar el ancho sin estirar demasiado cada campo */
@media(min-width:1700px){
  .drawer.employeeFull .formPane .grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .drawer.employeeFull .formPane .grid .wide{grid-column:1/-1!important}
  .drawer.employeeFull .serviceRateGrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}

/* Portatiles y tablets */
@media(max-width:1050px){
  .drawer.employeeFull{inset:4px!important;border-radius:9px!important}
  .drawer.employeeFull.open{right:4px!important}
  .drawer.employeeFull #empForm{padding:0 12px!important}
  .drawer.employeeFull .formPane .grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Movil / tablet angosta */
@media(max-width:720px){
  .drawer.employeeFull{inset:0!important;border-radius:0!important}
  .drawer.employeeFull.open{right:0!important}
  .drawer.employeeFull #empForm{padding:0 10px!important}
  .drawer.employeeFull .employeeHero{padding:8px 0!important}
  .drawer.employeeFull .photoBox,.drawer.employeeFull .photoBox>img{width:58px!important;height:58px!important}
  .drawer.employeeFull .formPane .grid{grid-template-columns:1fr!important}
  .drawer.employeeFull .formPane .grid .wide{grid-column:auto!important}
  .drawer.employeeFull .drawerFoot{display:grid!important;grid-template-columns:1fr 1fr!important}
  .drawer.employeeFull .drawerFoot button{width:100%!important;min-width:0!important}
  .drawer.employeeFull .drawerFoot .saveClose{grid-column:1/-1!important}
  .portalActions{display:grid!important;grid-template-columns:1fr!important}
  .portalActions button{width:100%!important}
}

/* Telefonos pequenos */
@media(max-width:420px){
  .drawer.employeeFull #empForm{padding:0 8px!important}
  .drawer.employeeFull .employeeHero{gap:8px!important}
  .drawer.employeeFull .employeeHero h3{font-size:15px!important}
  .drawer.employeeFull .employeeHero p{font-size:10px!important}
  .drawer.employeeFull .formTabs button{font-size:11px!important;padding:9px!important}
  .drawer.employeeFull .drawerFoot{grid-template-columns:1fr!important}
  .drawer.employeeFull .drawerFoot .saveClose{grid-column:auto!important}
}

/* Pantallas bajas: reduce cabecera y deja mas espacio al formulario */
@media(max-height:760px){
  .drawer.employeeFull{top:2px!important;bottom:2px!important}
  .drawer.employeeFull .drawerHead{min-height:46px!important;padding:7px 14px!important}
  .drawer.employeeFull .employeeHero{padding:6px 0!important}
  .drawer.employeeFull .photoBox,.drawer.employeeFull .photoBox>img{width:54px!important;height:54px!important}
  .drawer.employeeFull .formTabs button{min-height:36px!important;padding:7px 10px!important}
  .drawer.employeeFull .formPane{padding-top:8px!important;padding-bottom:12px!important}
  .drawer.employeeFull .drawerFoot{padding:6px 0!important}
  .drawer.employeeFull .drawerFoot button{min-height:38px!important;padding-top:7px!important;padding-bottom:7px!important}
}

/* Evita desbordamientos de tablas/listas dentro del expediente */
.drawer.employeeFull .tableWrap,
.drawer.employeeFull .miniTable,
.drawer.employeeFull .docList,
.drawer.employeeFull .movementList{max-width:100%!important;min-width:0!important}
.drawer.employeeFull img{max-width:100%}

/* V4.8.3: convivencia con navegación global */
body.shared-admin-page>header{left:0;width:100%}body.shared-admin-page .icon{display:none}@media(max-width:760px){body.shared-admin-page>header{padding-left:62px}}
/* V4.8.8 - recursos de brigadas */
.crewMaterialEditor{grid-template-columns:2fr .7fr 44px}.crewMaterialEditor select,.crewMaterialEditor input{min-width:0}@media(max-width:700px){.crewMaterialEditor{grid-template-columns:1fr 1fr}.crewMaterialEditor .deleteBtn{grid-column:2}}

/* V4.9.4 - Cooperativa integrada al expediente de Personal */
.coopEmployeeDash{display:flex;flex-direction:column;gap:16px}.coopEmployeeHero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border:1px solid #dfe7f2;border-radius:18px;background:linear-gradient(135deg,#f7fbff,#fff)}.coopEmployeeHero h3{margin:4px 0 2px;font-size:22px}.coopEmployeeHero p{margin:0;color:#64748b}.coopEmployeeMetrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.coopEmployeeMetrics>div{padding:14px;border:1px solid #e3e9f2;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.05)}.coopEmployeeMetrics span{display:block;font-size:11px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.coopEmployeeMetrics b{display:block;margin-top:5px;font-size:18px;color:#102a43}.coopEmployeeActions{display:flex;flex-wrap:wrap;gap:10px}.coopEmployeeSections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.coopEmployeeSections section{padding:15px;border:1px solid #e3e9f2;border-radius:16px;background:#fff}.coopMiniTable{display:flex;flex-direction:column;gap:7px}.coopMiniTable>div{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #eef2f7}.coopMiniTable>div:last-child{border-bottom:0}.coopMiniTable span{display:flex;flex-direction:column;gap:2px}.coopMiniTable small{color:#718096}.coopMiniTable strong{white-space:nowrap}.coopDocChips{display:flex;flex-wrap:wrap;gap:7px}.coopDocChips span{padding:7px 10px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:12px}.formPane[data-pane="coop"] .grid{margin-top:0}
@media(max-width:900px){.coopEmployeeMetrics{grid-template-columns:repeat(2,minmax(0,1fr))}.coopEmployeeSections{grid-template-columns:1fr}}
@media(max-width:560px){.coopEmployeeHero{align-items:flex-start;flex-direction:column}.coopEmployeeMetrics{grid-template-columns:1fr}.coopEmployeeActions button{width:100%}.coopMiniTable>div{align-items:flex-start;flex-direction:column}.coopMiniTable strong{white-space:normal}}

/* V4.9.9 · permisos granulares */
.permGroup{border:1px solid #dce6f2;border-radius:14px;padding:14px;margin:12px 0;background:#fff}.permGroup h4{margin:0 0 10px;color:#15365f}.permGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:9px}.permItem{display:flex;gap:10px;align-items:flex-start;border:1px solid #e5edf6;border-radius:11px;padding:10px;background:#f8fbff;cursor:pointer}.permItem input{margin-top:3px;transform:scale(1.15)}.permItem span{display:flex;flex-direction:column;gap:2px}.permItem small{color:#75869b;font-size:11px}.permItem:has(input:checked){border-color:#8bbcf5;background:#eef6ff}.permItem:has(input:disabled){opacity:.65;cursor:not-allowed}


/* V4.9.10 · Permisos ampliados */
.permissionExpanded{width:100%!important;max-width:none!important}
.permissionExpanded .portalAccessHead{position:sticky;top:0;z-index:4;background:#fff;padding:14px 0 10px;border-bottom:1px solid #e4eaf2}
.permissionToolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0;padding:12px 14px;background:#f5f8fc;border:1px solid #dce6f2;border-radius:12px}
.permissionToolbar button{min-height:38px;padding:8px 12px;border:1px solid #cbd8e7;background:#fff;border-radius:9px;font-weight:700;cursor:pointer}
.permissionToolbar span{margin-left:auto;font-weight:800;color:#29405f}
.permissionExpanded #permissionGroups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.permissionExpanded .permGroup{margin:0!important;padding:15px!important;border:1px solid #dbe4ef!important;border-radius:14px!important;background:#fff!important;box-shadow:0 4px 14px rgba(15,42,70,.05)}
.permissionExpanded .permGroup h4{margin:0 0 12px;font-size:16px;color:#173a63}
.permissionExpanded .permGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px!important}
.permissionExpanded .permItem{min-height:58px;padding:10px!important;border:1px solid #e2e8f0!important;border-radius:10px!important;background:#fafcff!important;align-items:flex-start!important}
.permissionExpanded .permItem:has(input:checked){background:#eef8ff!important;border-color:#9bc9ee!important}
.permissionExpanded .permItem input{width:19px!important;height:19px!important;margin-top:2px!important}
.permissionExpanded .permItem b{font-size:13px!important;line-height:1.25}
.permissionExpanded .permItem small{display:block;margin-top:3px;color:#8090a3;font-size:10px;word-break:break-all}
@media(min-width:1500px){.permissionExpanded #permissionGroups{grid-template-columns:repeat(3,minmax(0,1fr))}.permissionExpanded .permGrid{grid-template-columns:1fr}}
@media(max-width:900px){.permissionExpanded #permissionGroups,.permissionExpanded .permGrid{grid-template-columns:1fr}.permissionToolbar span{width:100%;margin-left:0}}

/* === PROYECOM V4.9.92 START === */
/* PROYECOM V4.9.92 · Editor empleado compacto + scroll vertical estable */
.drawer.employeeFull .drawerBody:has(#empForm){
  overflow:hidden!important;
}
.drawer.employeeFull #empForm{
  height:100%!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
}
.drawer.employeeFull .formTabs{
  flex:0 0 auto!important;
}
.drawer.employeeFull .formPane{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable!important;
  padding:8px 8px 90px 0!important;
}
.drawer.employeeFull .drawerFoot{
  flex:0 0 auto!important;
}

/* Permisos: más compactos en escritorio, sin ocupar una pantalla completa por grupo */
.permissionExpanded{
  width:100%!important;
  max-width:none!important;
}
.permissionExpanded .portalAccessHead{
  position:static!important;
  padding:8px 0 8px!important;
}
.permissionToolbar{
  margin:8px 0!important;
  padding:8px 10px!important;
  gap:8px!important;
}
.permissionToolbar button{
  min-height:32px!important;
  padding:6px 10px!important;
  font-size:12px!important;
}
.permissionExpanded .setupNotice{
  padding:10px 12px!important;
  margin:8px 0!important;
}
.permissionExpanded .field.wide{
  margin:8px 0 10px!important;
}
.permissionExpanded #permissionGroups{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  align-items:start!important;
}
.permissionExpanded .permGroup{
  margin:0!important;
  padding:10px!important;
  border-radius:11px!important;
  box-shadow:none!important;
}
.permissionExpanded .permGroup h4{
  margin:0 0 7px!important;
  font-size:13px!important;
  line-height:1.2!important;
}
.permissionExpanded .permGrid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:5px!important;
}
.permissionExpanded .permItem{
  min-height:0!important;
  padding:6px 8px!important;
  gap:7px!important;
  border-radius:8px!important;
  align-items:center!important;
}
.permissionExpanded .permItem input{
  width:16px!important;
  height:16px!important;
  margin:0!important;
  flex:0 0 auto!important;
}
.permissionExpanded .permItem span{
  min-width:0!important;
}
.permissionExpanded .permItem b{
  font-size:11px!important;
  line-height:1.15!important;
}
.permissionExpanded .permItem small{
  display:none!important;
}
.permissionExpanded .portalActions{
  position:sticky!important;
  bottom:0!important;
  z-index:5!important;
  background:linear-gradient(to top,#fff 72%,rgba(255,255,255,.82))!important;
  padding:10px 0 2px!important;
}

@media (min-width:1600px){
  .permissionExpanded #permissionGroups{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media (max-width:1200px){
  .permissionExpanded #permissionGroups{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:700px){
  .drawer.employeeFull .formPane{padding:6px 0 96px!important}
  .permissionExpanded #permissionGroups{grid-template-columns:1fr!important}
  .permissionToolbar span{width:100%!important;margin-left:0!important}
  .permissionExpanded .permItem{padding:8px 9px!important}
  .permissionExpanded .permItem b{font-size:12px!important}
}
/* === PROYECOM V4.9.92 END === */
