/* IEICII Hub · Coherencia UI global v241
   - Evita quiebres de texto artificiales.
   - Mantiene botones/etiquetas legibles.
   - Mejora Centro CMS y Socios.
   - Refina tablas y sidenav sin alterar lógica de negocio. */

/* 1) Texto: romper por palabras normales, no por cualquier carácter. */
body,
.card,.panel,.table,.modal-card,
.sidebar-link,.sidebar-label,.sidebar-label strong,.sidebar-label small,
.btn,button,input,select,textarea,label,
h1,h2,h3,h4,h5,h6,p,small,strong,span,a{
  word-break:normal;
  hyphens:none;
}

/* Elementos de interfaz cortos no deben partirse si el contenedor puede acomodarlos. */
.btn,button.btn,.badge,.status-pill,.eyebrow,
.sidebar-label strong,.sidebar-group-title,
.table th,.pagination-v240 .page-link,
.ieicii-view-switch-v240 button{
  white-space:nowrap;
  overflow-wrap:normal;
}

/* Datos que sí pueden ser naturalmente largos: permitir corte controlado. */
code,pre,.ui-breakable-v241,
a[href^="mailto:"],a[href^="tel:"],
input[type="url"],input[type="email"],
.access-panel-v90 small,.top-bell-head-v90 small{
  overflow-wrap:anywhere;
  word-break:normal;
}

/* Evita botones comprimidos hasta partir letras (ej. Revisar -> Revisa/r). */
.table .btn,.admin-table .btn,.row-actions .btn{
  min-width:max-content;
  white-space:nowrap;
}
.table td:last-child,.admin-table td:last-child{min-width:92px}

/* Texto de tablas: natural en frases, compacto en encabezados. */
.table td,.admin-table td{overflow-wrap:normal;word-break:normal}
.table td strong,.admin-table td strong{word-break:normal;overflow-wrap:normal}
.table td small,.admin-table td small{line-height:1.35}

/* 2) Sidenav: una única selección ya se resuelve en PHP; aquí se refuerza visualmente. */
.sidebar-link{min-width:0}
.sidebar-link .sidebar-label{min-width:0;overflow:hidden}
.sidebar-link .sidebar-label strong,
.sidebar-link .sidebar-label small{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.sidebar-link .sidebar-label strong{line-height:1.25}
.sidebar-link .sidebar-label small{line-height:1.3;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.sidebar-link.active{position:relative}
.sidebar-link.active::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 999px 999px 0;background:var(--brand,#2563eb)}

/* 3) Centro CMS: dashboard de módulos, no listado de registros. */
.cms-head-v241{align-items:flex-start;margin-bottom:22px}
.cms-head-v241>div:first-child{max-width:850px}
.cms-directory-v241{display:grid;gap:24px}
.cms-group-v241{display:grid;gap:12px}
.cms-group-head-v241{display:flex;align-items:center;justify-content:space-between;gap:14px}
.cms-group-head-v241 h2{margin:0;font-size:18px;letter-spacing:-.02em}
.cms-group-head-v241 span{color:var(--muted,#64748b);font-size:12px;font-weight:800;white-space:nowrap}
.cms-module-grid-v241{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.cms-module-card-v241{min-height:0!important;padding:16px!important;border-radius:18px!important;display:grid;grid-template-rows:auto 1fr auto;gap:12px;box-shadow:0 8px 24px rgba(15,23,42,.045)!important}
.cms-module-card-v241:hover{border-color:color-mix(in srgb,var(--brand,#2563eb) 28%,var(--line,#dbe4f0));box-shadow:0 12px 28px rgba(15,23,42,.07)!important}
.cms-module-top-v241{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cms-module-top-v241 .module-icon{width:42px;height:42px;border-radius:13px;font-size:20px}
.cms-module-body-v241{min-width:0}
.cms-module-body-v241 h3{font-size:16px;margin:0 0 5px;line-height:1.25}
.cms-module-body-v241 p{margin:0;font-size:12.5px;line-height:1.45}
.cms-module-action-v241{justify-self:start;min-height:36px!important;padding:7px 11px!important;font-size:12px!important;background:var(--surface-2,#f7f9fc)!important;color:var(--text,#0f172a)!important}
.cms-module-action-v241:hover{background:color-mix(in srgb,var(--brand,#2563eb) 9%,white)!important;color:var(--brand,#2563eb)!important}
.cms-recent-v241{margin-top:26px!important}
.cms-recent-v241>.card{padding:17px!important;border-radius:18px!important}
.cms-recent-head-v241{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.cms-recent-head-v241 h2{font-size:17px;margin:0}
.cms-recent-head-v241>a{font-size:12px;font-weight:850;color:var(--brand,#2563eb);white-space:nowrap}

/* 4) Socios: niveles como tabla operativa, socios como directorio administrable. */
.partners-head-v241{align-items:flex-start;margin-bottom:18px}
.partners-section-head-v241{align-items:flex-start;margin-bottom:12px}
.partners-section-head-v241 h2{font-size:20px;margin:0 0 4px}
.partners-section-head-v241 p{margin:0;font-size:13px}
.partners-levels-v241{margin-top:16px!important}
.partners-directory-v241{margin-top:28px!important}
.partner-level-name-v241{display:flex;align-items:center;gap:10px;min-width:150px}
.partner-level-name-v241 i{width:10px;height:34px;border-radius:999px;background:var(--level-color,#2563eb);flex:0 0 10px}
.partner-level-name-v241 strong{line-height:1.25}
.partners-level-table-v241 td:nth-child(2){max-width:460px}
.partners-level-table-v241 td:nth-child(3),.partners-level-table-v241 td:nth-child(4),.partners-level-table-v241 td:nth-child(5){white-space:nowrap}
.media-cell>div{min-width:0}
.media-cell strong{display:block;line-height:1.25}
.media-cell small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}

/* 5) Listados 2.0: densidad menos invasiva y mejores acciones. */
[data-ieicii-density-switch]{margin:0 0 10px!important;justify-content:flex-end!important}
[data-ieicii-density-switch]>.ieicii-list-count-v240{margin-right:auto}
[data-ieicii-density-switch] .ieicii-view-switch-v240{padding:3px;border-radius:10px}
[data-ieicii-density-switch] .ieicii-view-switch-v240 button{min-height:30px;padding:4px 9px;font-size:12px}
.table-wrap[data-ieicii-table-wrap]>.table th{font-weight:800}
.table-wrap[data-ieicii-table-wrap]>.table td{line-height:1.4}

/* 6) Protección contra desbordes sin partir palabras de forma fea. */
.panel-title>div,.section-head>div,.card,.table td,.modal-body,.admin-actions{min-width:0}
.panel-title h1,.panel-title h2,.section h2{overflow-wrap:normal;word-break:normal}

@media(max-width:1100px){
  .cms-module-grid-v241{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .cms-head-v241,.partners-head-v241{display:grid;align-items:start}
  .cms-head-v241 .admin-actions,.partners-head-v241 .admin-actions{width:100%}
  .cms-head-v241 .admin-actions .btn,.partners-head-v241 .admin-actions .btn{flex:1 1 auto}
  .cms-module-grid-v241{grid-template-columns:1fr}
  .cms-recent-v241{grid-template-columns:1fr!important}
  .partners-level-table-v241 td:nth-child(2){max-width:none}
  .sidebar-link .sidebar-label strong{white-space:nowrap}
}
@media(max-width:560px){
  /* En tablas apiladas las acciones pueden ocupar fila completa, pero el texto del botón no se parte. */
  .table-wrap[data-ieicii-table-wrap].ieicii-responsive-stack>.table td:last-child .row-actions{display:flex;flex-wrap:wrap;gap:6px}
  .table-wrap[data-ieicii-table-wrap].ieicii-responsive-stack>.table td:last-child .btn{width:auto!important;min-width:max-content}
}
