body.gestion-app-body{
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--gs-color-text);
}

.gs-app-shell{
  min-height:100vh;
  display:flex;
  background:var(--gs-color-bg);
}

.gs-sidebar{
  width:236px;
  background:#fff;
  border-right:1px solid var(--gs-color-border);
  display:flex;
  flex-direction:column;
  min-height:100vh;
  position:sticky;
  top:0;
}

.gs-sidebar-brand{
  font-size:14px;
  color:var(--gs-color-muted);
  padding:18px 18px 10px;
}

.gs-sidebar-nav{
  padding:0 8px 16px;
  flex:1;
}

.gs-menu-group{
  margin-bottom:18px;
}

.gs-menu-group-title{
  color:var(--gs-color-muted);
  font-size:13px;
  padding:14px 10px 8px;
}

.gs-menu-item{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:var(--gs-color-text);
  padding:11px 12px;
  border-radius:10px;
  margin-bottom:4px;
  transition:.2s ease;
  font-size:15px;
}

.gs-menu-item:hover{
  background:#edf2fb;
  color:var(--gs-color-primary);
}

.gs-menu-item.is-active{
  background:#eef3fb;
  color:var(--gs-color-primary);
  font-weight:600;
}

.gs-sidebar-footer{
  padding:12px 8px 16px;
  border-top:1px solid var(--gs-color-border);
}

.gs-main{
  flex:1;
  display:flex;
  flex-direction:column;
  min-width:0;
}

.gs-topbar{
  height:72px;
  background:#fff;
  border-bottom:1px solid var(--gs-color-border);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 22px;
}

.gs-topbar-left,
.gs-topbar-right{
  display:flex;
  align-items:center;
  gap:12px;
}

.gs-topbar-brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  font-size:16px;
}

.gs-topbar-brand .dashicons{
  color:var(--gs-color-primary);
}

.gs-icon-button{
  background:transparent;
  border:none;
  width:36px;
  height:36px;
  border-radius:10px;
  display:grid;
  place-items:center;
  cursor:pointer;
}

.gs-icon-button:hover{
  background:#eef3fb;
}

.gs-topbar-date,
.gs-topbar-email{
  color:var(--gs-color-muted);
  font-size:14px;
}

.gs-role-pill{
  font-size:13px;
  font-weight:600;
  color:var(--gs-color-primary);
  background:#eef3fb;
  padding:6px 12px;
  border-radius:999px;
}

.gs-content{
  padding:28px 22px 32px;
}

.gs-page-header{
  margin-bottom:18px;
}

.gs-page-header h1{
  font-size:26px;
  line-height:1.2;
  margin:0;
}

.gs-card{
  background:var(--gs-color-panel);
  border:1px solid var(--gs-color-border);
  border-radius:var(--gs-radius);
  box-shadow:var(--gs-shadow);
}

.gs-panel{
  background:var(--gs-color-panel);
  border:1px solid var(--gs-color-border);
  border-radius:var(--gs-radius);
}

.gs-card-body,
.gs-panel-body{
  padding:24px;
}

.gs-grid{
  display:grid;
  gap:20px;
}

.gs-grid-2{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.gs-grid-3{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.gs-stat-card{
  padding:26px 24px;
  display:flex;
  justify-content:space-between;
  gap:12px;
}

.gs-stat-label{
  color:var(--gs-color-muted);
  font-weight:600;
  font-size:14px;
  margin-bottom:8px;
}

.gs-stat-value{
  font-size:44px;
  font-weight:800;
  line-height:1;
}

.gs-stat-icon{
  color:var(--gs-color-primary);
}

.gs-form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px 16px;
}

.gs-field{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.gs-field label{
  font-weight:600;
  font-size:15px;
}

.gs-input,
.gs-select,
.gs-textarea{
  width:100%;
  height:44px;
  border:1px solid #cfd8e3;
  border-radius:10px;
  background:#fff;
  padding:0 14px;
  font-size:15px;
  color:var(--gs-color-text);
}

.gs-input:focus,
.gs-select:focus,
.gs-textarea:focus{
  outline:none;
  border-color:var(--gs-color-primary);
  box-shadow:0 0 0 3px rgba(47,110,219,0.12);
}

.gs-textarea{
  min-height:110px;
  padding:12px 14px;
  resize:vertical;
}

.gs-input-wrap{
  position:relative;
}

.gs-input-wrap .gs-input{
  padding-right:42px;
}

.gs-input-icon-button{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  border:none;
  background:transparent;
  cursor:pointer;
  color:#7b8794;
}

.gs-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.gs-button{
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-radius:10px;
  border:1px solid transparent;
  padding:0 18px;
  font-weight:700;
  font-size:15px;
  text-decoration:none;
  cursor:pointer;
  transition:.2s ease;
}

.gs-button-primary{
  background:var(--gs-color-primary);
  color:#fff;
}

.gs-button-primary:hover{
  background:var(--gs-color-primary-dark);
  color:#fff;
}

.gs-button-secondary{
  background:#fff;
  color:var(--gs-color-text);
  border-color:#cfd8e3;
}

.gs-button-secondary:hover{
  background:#f8fafc;
}

.gs-button-danger{
  background:#fff1f2;
  color:#be123c;
  border-color:#fecdd3;
}

.gs-inline-filters{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  align-items:center;
}

.gs-inline-filters .gs-field{
  min-width:160px;
  flex:1;
}

.gs-table-wrap{
  overflow:auto;
}

.gs-table{
  width:100%;
  border-collapse:collapse;
}

.gs-table th,
.gs-table td{
  padding:18px 16px;
  border-bottom:1px solid var(--gs-color-border);
  text-align:left;
  font-size:15px;
}

.gs-table th{
  color:var(--gs-color-muted);
  font-weight:700;
  background:#fafbfd;
}

.gs-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:6px 12px;
  font-weight:700;
  font-size:13px;
  line-height:1;
}

.gs-badge-success{
  background:#dcfce7;
  color:#15803d;
}

.gs-badge-muted{
  background:#e2e8f0;
  color:#475569;
}

.gs-badge-danger{
  background:#fee2e2;
  color:#b91c1c;
}

.gs-alert{
  margin-bottom:18px;
  border-radius:10px;
  padding:14px 16px;
  border:1px solid transparent;
  font-weight:600;
}

.gs-alert-success{
  background:#ecfdf5;
  color:#15803d;
  border-color:#a7f3d0;
}

.gs-alert-error{
  background:#fef2f2;
  color:#b91c1c;
  border-color:#fecaca;
}

.gs-alert-warning{
  background:#fff7ed;
  color:#c2410c;
  border-color:#fed7aa;
}

.gs-alert-info{
  background:#eff6ff;
  color:#1d4ed8;
  border-color:#bfdbfe;
}

.gs-switch-row{
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:4px;
}

.gs-switch{
  display:inline-flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
  user-select:none;
}

.gs-switch input{
  display:none;
}

.gs-switch-slider{
  width:42px;
  height:24px;
  border-radius:999px;
  background:#d6dde8;
  position:relative;
  transition:.2s ease;
}

.gs-switch-slider:before{
  content:"";
  position:absolute;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#fff;
  top:2px;
  left:2px;
  box-shadow:0 2px 6px rgba(0,0,0,.12);
  transition:.2s ease;
}

.gs-switch input:checked + .gs-switch-slider{
  background:var(--gs-color-primary);
}

.gs-switch input:checked + .gs-switch-slider:before{
  left:20px;
}

.gs-empty{
  padding:32px 24px;
  text-align:center;
  color:var(--gs-color-muted);
}

.gs-public-shell{
  min-height:100vh;
  display:grid;
  place-items:center;
  background:#f2f4f8;
  padding:20px;
}

.gs-public-main{
  width:100%;
  max-width:440px;
}

.gs-login-brand{
  text-align:center;
  margin-bottom:24px;
}

.gs-login-brand-icon{
  width:46px;
  height:46px;
  margin:0 auto 10px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:var(--gs-color-primary);
  color:#fff;
}

.gs-login-brand-text{
  font-weight:700;
  font-size:18px;
}

@media (max-width: 1024px){
  .gs-sidebar{
    position:fixed;
    z-index:99;
    transform:translateX(0);
    transition:transform .2s ease;
  }

  .gs-sidebar.is-collapsed{
    transform:translateX(-100%);
  }

  .gs-main{
    width:100%;
  }

  .gs-grid-3{
    grid-template-columns:1fr;
  }
}

@media (max-width: 768px){
  .gs-grid-2,
  .gs-form-grid{
    grid-template-columns:1fr;
  }

  .gs-topbar{
    height:auto;
    padding:14px 16px;
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }

  .gs-content{
    padding:20px 16px 28px;
  }

  .gs-topbar-right{
    flex-wrap:wrap;
  }
}

.gs-table{
  margin-block-end: 0 !important;
  margin-bottom: 0 !important;
}

/* Notificaciones flotantes para no empujar el contenido */
.gestion-app-body .gs-alert{
  position: fixed;
  top: 78px;
  right: 24px;
  z-index: 9999;
  width: min(420px, calc(100vw - 32px));
  margin: 0 !important;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
}

@media (max-width: 768px){
  .gestion-app-body .gs-alert{
    top: 70px;
    right: 16px;
    left: 16px;
    width: auto;
  }
}

/* ===== Compactar sidebar para evitar scroll global ===== */

.gs-app-shell {
  min-height: 100vh !important;
  height: 100vh !important;
  overflow: hidden !important;
}

.gs-sidebar {
  height: 100vh !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

.gs-sidebar-nav {
  flex: 1 1 auto !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 8px 6px !important;
}

.gs-menu-group {
  margin-bottom: 10px !important;
}

.gs-menu-group-title {
  font-size: 12px !important;
  margin: 0 10px 6px !important;
  line-height: 1.2 !important;
}

.gs-menu-item {
  min-height: 36px !important;
  height: 36px !important;
  padding: 0 12px !important;
  margin: 2px 4px !important;
  border-radius: 10px !important;
  font-size: 13px !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

.gs-menu-item .dashicons {
  width: 14px !important;
  height: 14px !important;
  font-size: 14px !important;
  line-height: 14px !important;
}

.gs-sidebar-footer {
  flex: 0 0 auto !important;
  padding: 8px 6px !important;
}

.gs-sidebar-footer .gs-menu-item {
  margin-bottom: 0 !important;
}

.gs-main {
  min-height: 100vh !important;
  height: 100vh !important;
  overflow: hidden !important;
}

.gs-content {
  height: calc(100vh - 64px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}