    :root { 
  --primary-color: #0a3d62; 
  --secondary-color: #2196F3; 
  --bg-color: #f0f2f5; 
  --dark-text: #0a3d62; 
}

body { 
  background-color: var(--bg-color); 
  font-family: 'Open Sans', sans-serif; 
  margin: 0;
}

/* Esta es la regla que oculta las secciones y que ahora no está funcionando */
.hidden-app { display: none !important; }

.login-wrapper { height: 100vh; display: flex; align-items: center; justify-content: center; }
.login-card { background: white; padding: 2.5rem; border-radius: 15px; box-shadow: 0 10px 25px rgba(0,0,0,0.1); width: 100%; max-width: 400px; text-align: center; }

.sidebar { width: 260px; position: fixed; top: 0; bottom: 0; left: 0; background-color: white; border-right: 1px solid #dee2e6; padding: 1.5rem; z-index: 1000; overflow-y: auto; }
.content { margin-left: 260px; padding: 2rem; min-height: 100vh; }

@media (max-width: 768px) { 
  .sidebar { position: relative; width: 100%; height: auto; border-right: none; border-bottom: 1px solid #dee2e6; } 
  .content { margin-left: 0; padding: 1rem; } 
}

.sidebar-brand { font-family: 'Montserrat', sans-serif; font-size: 1.5rem; font-weight: 800; color: var(--primary-color); margin-bottom: 2rem; text-align: center; }
.nav-pills .nav-link { color: #555; font-weight: 600; margin-bottom: 0.5rem; cursor: pointer; border-radius: 8px; }
.nav-pills .nav-link.active { background-color: var(--primary-color); color: white; }

.card { border: none; box-shadow: 0 4px 20px rgba(0,0,0,0.04); border-radius: 12px; background: white; margin-bottom: 20px; }
.card-header { background-color: white; border-bottom: 2px solid #f0f0f0; font-family: 'Montserrat', sans-serif; font-weight: 700; color: var(--primary-color); padding: 1rem 1.5rem; }

.header-corp { background-color: #fff3e0 !important; color: #ef6c00 !important; }
.header-haberes { background-color: #e8f5e9 !important; color: #2e7d32 !important; }
.header-descuentos { background-color: #ede7f6 !important; color: #673ab7 !important; }

.optional-panel { background-color: #f8f9fa; padding: 15px; border-radius: 8px; margin-top: 10px; margin-bottom: 15px; border-left: 4px solid var(--secondary-color); }
.period-highlight { background-color: var(--primary-color); border-radius: 8px; padding: 15px; color: white; }

.loading-overlay { display: none; position: fixed; inset: 0; background: rgba(255,255,255,0.95); z-index: 9999; justify-content: center; align-items: center; flex-direction: column; }
    #error-alert { display:none; position: fixed; top: 20px; right: 20px; z-index: 10000; width: 350px; }


