@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";.layout-container{background-color:var(--color-background);height:100vh;display:flex;overflow:hidden}.sidebar{background-color:var(--color-surface);border-right:1px solid var(--color-border);width:280px;box-shadow:var(--shadow-sm);z-index:10;flex-direction:column;display:flex}.sidebar-header{border-bottom:1px solid var(--color-border);padding:1.5rem}.logo-container{align-items:center;gap:.75rem;display:flex}.logo-icon{background-color:var(--color-primary);color:#fff;border-radius:var(--radius-md);width:40px;height:40px;box-shadow:var(--shadow-md);justify-content:center;align-items:center;font-size:1.25rem;font-weight:700;display:flex}.logo-text{color:var(--color-text-primary);font-size:1.125rem;font-weight:600}.sidebar-nav{flex:1;padding:1.5rem 1rem;overflow-y:auto}.sidebar-nav ul{flex-direction:column;gap:.5rem;display:flex}.nav-link{border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all var(--transition-fast);align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:500;display:flex}.nav-link:hover{background-color:var(--color-surface-hover);color:var(--color-primary)}.nav-link.active{background-color:var(--color-primary-light);color:var(--color-primary)}.sidebar-footer{border-top:1px solid var(--color-border);background-color:var(--color-surface);padding:1.5rem}.user-info{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.user-avatar{border-radius:var(--radius-full);background-color:var(--color-primary);color:#fff;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.125rem;font-weight:600;display:flex}.user-details{flex-direction:column;display:flex}.user-name{color:var(--color-text-primary);font-size:.875rem;font-weight:600}.user-role{color:var(--color-text-tertiary);font-size:.75rem}.logout-btn{border-radius:var(--radius-md);width:100%;color:var(--color-accent);background-color:var(--color-accent-light);transition:all var(--transition-fast);justify-content:center;align-items:center;gap:.5rem;padding:.75rem;font-weight:500;display:flex}.logout-btn:hover{background-color:var(--color-accent);color:#fff}.main-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.top-header{border-bottom:1px solid var(--color-border);z-index:5;padding:1.5rem 2rem}.header-greeting h1{color:var(--color-text-primary);margin-bottom:.25rem;font-size:1.5rem;font-weight:700}.header-greeting p{color:var(--color-text-secondary);font-size:.875rem}.page-content{flex:1;padding:2rem;overflow-y:auto}.login-container{background:linear-gradient(135deg, var(--color-primary-light) 0%, var(--color-background) 100%);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);border:1px solid var(--color-border);width:100%;max-width:420px;padding:3rem 2rem}.login-header{text-align:center;margin-bottom:2rem}.login-logo{background:var(--color-primary);color:#fff;border-radius:var(--radius-lg);width:64px;height:64px;box-shadow:var(--shadow-md);justify-content:center;align-items:center;margin:0 auto 1.5rem;font-size:1.5rem;font-weight:700;display:flex}.login-header h2{color:var(--color-text-primary);margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.login-header p{color:var(--color-text-secondary);font-size:.875rem}.login-error{background-color:var(--color-accent-light);color:var(--color-accent);border-radius:var(--radius-md);align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:1rem;font-size:.875rem;font-weight:500;display:flex}.login-form{flex-direction:column;gap:1.5rem;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:var(--color-text-secondary);font-size:.875rem;font-weight:500}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:var(--color-text-tertiary);position:absolute;left:1rem}.input-wrapper input{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text-primary);transition:all var(--transition-fast);background-color:var(--color-background);padding:.75rem 1rem .75rem 2.75rem;font-size:.875rem}.input-wrapper input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);background-color:var(--color-surface);outline:none}.btn-primary{background-color:var(--color-primary);color:#fff;border-radius:var(--radius-md);transition:all var(--transition-fast);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;margin-top:.5rem;padding:.875rem;font-size:1rem;font-weight:600;display:flex}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.dashboard-container{flex-direction:column;gap:2rem;display:flex}.dashboard-header h2{color:var(--color-text-primary);font-size:1.5rem;font-weight:700}.dashboard-header p{color:var(--color-text-secondary)}.kpi-cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;display:grid}.kpi-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:transform var(--transition-fast), box-shadow var(--transition-fast);align-items:center;gap:1.25rem;padding:1.5rem;display:flex}.kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.kpi-icon{border-radius:var(--radius-full);justify-content:center;align-items:center;width:56px;height:56px;display:flex}.kpi-icon.primary{background-color:var(--color-primary-light);color:var(--color-primary)}.kpi-icon.secondary{background-color:var(--color-secondary-light);color:var(--color-secondary)}.kpi-icon.warning{background-color:var(--color-warning-light);color:var(--color-warning)}.kpi-info h3{color:var(--color-text-secondary);margin-bottom:.25rem;font-size:.875rem;font-weight:500}.kpi-value{color:var(--color-text-primary);font-size:1.75rem;font-weight:700}.charts-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem;display:grid}.chart-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);padding:1.5rem}.chart-card h3{color:var(--color-text-primary);margin-bottom:1.5rem;font-size:1.125rem;font-weight:600}.chart-wrapper{height:300px}.alerts-section{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);overflow:hidden}.alerts-header{border-bottom:1px solid var(--color-border);background-color:var(--color-accent-light);align-items:center;gap:.75rem;padding:1.5rem;display:flex}.alerts-header h3{color:var(--color-accent);font-size:1.125rem;font-weight:600}.alert-icon{color:var(--color-accent)}.alerts-content{padding:1.5rem}.table-responsive{overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:1rem}.data-table th{color:var(--color-text-secondary);background-color:var(--color-surface-hover);font-weight:600}.data-table tbody tr:hover{background-color:var(--color-surface-hover)}.warning-text{color:var(--color-accent)}.font-bold{font-weight:700}.badge{border-radius:var(--radius-full);padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-danger{background-color:var(--color-accent-light);color:var(--color-accent)}.no-data{text-align:center;color:var(--color-text-tertiary);padding:2rem 0}.loading-state{height:100%;color:var(--color-text-secondary);justify-content:center;align-items:center;font-size:1.125rem;display:flex}.ingresos-container{flex-direction:column;gap:2rem;display:flex}.header-icon-container{background-color:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-lg);width:56px;height:56px;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;display:flex}.page-header h2{color:var(--color-text-primary);font-size:1.5rem;font-weight:700}.page-header p{color:var(--color-text-secondary)}.ingresos-content{grid-template-columns:2fr 1fr;gap:2rem;display:grid}@media (width<=1024px){.ingresos-content{grid-template-columns:1fr}}.form-card,.info-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);padding:2rem}.form-card h3{color:var(--color-text-primary);border-bottom:1px solid var(--color-border);margin-bottom:1.5rem;padding-bottom:.75rem;font-size:1.25rem;font-weight:600}.alert-success,.alert-error{border-radius:var(--radius-md);align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:1rem;font-weight:500;display:flex}.alert-success{background-color:var(--color-secondary-light);color:var(--color-secondary-hover);border:1px solid var(--color-secondary)}.alert-error{background-color:var(--color-accent-light);color:var(--color-accent-hover);border:1px solid var(--color-accent)}.pago-form{flex-direction:column;gap:1.5rem;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}@media (width<=600px){.form-row{grid-template-columns:1fr}}.form-group label{color:var(--color-text-secondary);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.form-group input,.form-group select{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text-primary);background-color:var(--color-background);transition:all var(--transition-fast);padding:.75rem 1rem;font-size:.875rem}.form-group input:focus,.form-group select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);background-color:var(--color-surface);outline:none}.submit-btn{margin-top:1rem;padding:1rem}.qr-preview{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:2rem 0;display:flex}.qr-icon{color:var(--color-primary);opacity:.8;margin-bottom:1.5rem}.qr-preview h3{color:var(--color-text-primary);margin-bottom:.75rem;font-size:1.125rem;font-weight:600}.qr-preview p{color:var(--color-text-secondary);font-size:.875rem;line-height:1.6}.deudores-container{flex-direction:column;gap:2rem;display:flex}.page-header{align-items:center;gap:1.5rem;margin-bottom:1rem;display:flex}.header-title-area{flex:1}.warning-bg{background-color:var(--color-warning-light)!important;color:var(--color-warning)!important}.export-btn{background-color:var(--color-secondary);align-items:center;gap:.5rem;padding:.75rem 1.25rem;display:flex}.export-btn:hover:not(:disabled){background-color:var(--color-secondary-hover)}.deudores-stats{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;display:grid}.stat-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);align-items:center;gap:1.25rem;padding:1.5rem;display:flex}.stat-card.accent .stat-icon{background-color:var(--color-accent-light);color:var(--color-accent)}.stat-card.accent h3{color:var(--color-accent)}.stat-icon{background-color:var(--color-primary-light);width:48px;height:48px;color:var(--color-primary);border-radius:var(--radius-full);justify-content:center;align-items:center;display:flex}.stat-info p{color:var(--color-text-secondary);font-size:.875rem;font-weight:500}.stat-info h3{color:var(--color-text-primary);font-size:1.5rem;font-weight:700}.table-container{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);overflow:hidden}.font-medium{font-weight:500}.tags-container{flex-wrap:wrap;gap:.5rem;display:flex}.tag-mes{background-color:var(--color-background);border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-sm);padding:.25rem .5rem;font-size:.75rem}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning)}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:4rem 2rem;display:flex}.success-text{color:var(--color-secondary);margin-bottom:1rem}.empty-state h3{color:var(--color-text-primary);margin-bottom:.5rem;font-size:1.25rem;font-weight:600}.empty-state p{color:var(--color-text-secondary)}.docentes-container{flex-direction:column;gap:2rem;display:flex}.badge-success{background-color:var(--color-secondary-light);color:var(--color-secondary)}.btn-icon{border-radius:var(--radius-md);width:36px;height:36px;transition:all var(--transition-fast);background-color:var(--color-surface-hover);color:var(--color-text-secondary);justify-content:center;align-items:center;display:flex}.btn-icon.danger:hover{background-color:var(--color-accent-light);color:var(--color-accent)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background-color:#0f172a99;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--color-surface);border-radius:var(--radius-xl);width:100%;max-width:500px;box-shadow:var(--shadow-xl);overflow:hidden}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.modal-header h3{color:var(--color-text-primary);font-size:1.25rem;font-weight:600}.warning-header{background-color:var(--color-warning-light)}.warning-header h3{color:var(--color-warning)}.close-btn{color:var(--color-text-tertiary);transition:color var(--transition-fast)}.close-btn:hover{color:var(--color-text-primary)}.modal-form{flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex}textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);resize:vertical;width:100%;padding:.75rem 1rem;font-family:inherit;font-size:.875rem}textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.modal-footer{justify-content:flex-end;gap:1rem;margin-top:1rem;display:flex}.btn-secondary{border-radius:var(--radius-md);background-color:var(--color-surface-hover);color:var(--color-text-secondary);transition:all var(--transition-fast);padding:.75rem 1.25rem;font-weight:500}.btn-secondary:hover{background-color:var(--color-border);color:var(--color-text-primary)}.btn-danger{border-radius:var(--radius-md);background-color:var(--color-accent);color:#fff;transition:all var(--transition-fast);padding:.75rem 1.25rem;font-weight:500}.btn-danger:hover{background-color:var(--color-accent-hover)}.alert-warning{background-color:var(--color-warning-light);color:#b45309;border-radius:var(--radius-md);padding:1rem;font-size:.875rem;line-height:1.5}.mb-4{margin-bottom:1rem}.bajas-container{flex-direction:column;gap:2rem;display:flex}.user-type-tag{background-color:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-sm);text-transform:capitalize;padding:.25rem .5rem;font-size:.75rem;font-weight:600}.motivo-cell{white-space:nowrap;text-overflow:ellipsis;max-width:300px;color:var(--color-text-secondary);font-size:.875rem;overflow:hidden}.action-buttons{gap:.5rem;display:flex}.btn-icon.outline{border:1px solid var(--color-border);background-color:#0000}.btn-icon.success.outline{color:var(--color-secondary)}.btn-icon.success.outline:hover{background-color:var(--color-secondary-light);border-color:var(--color-secondary)}.btn-icon.danger.outline{color:var(--color-accent)}.btn-icon.danger.outline:hover{background-color:var(--color-accent-light);border-color:var(--color-accent)}.resolved-text{color:var(--color-text-tertiary);font-size:.875rem;font-style:italic}.admin-container{flex-direction:column;gap:2rem;display:flex}.role-tag{border-radius:var(--radius-full);align-items:center;gap:.35rem;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.role-tag.admin{background-color:var(--color-primary-light);color:var(--color-primary)}.action-btn{border-radius:var(--radius-md);transition:all var(--transition-fast);align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.btn-suspend{background-color:var(--color-surface);color:var(--color-accent);border:1px solid var(--color-accent)}.btn-suspend:hover{background-color:var(--color-accent);color:#fff}.btn-activate{background-color:var(--color-surface);color:var(--color-secondary);border:1px solid var(--color-secondary)}.btn-activate:hover{background-color:var(--color-secondary);color:#fff}.alert-info{background-color:var(--color-primary-light);color:var(--color-primary-hover);border-radius:var(--radius-md);padding:1rem;font-size:.875rem;line-height:1.5}.mt-4{margin-top:1rem}:root{--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-primary-light:#eef2ff;--color-secondary:#10b981;--color-secondary-hover:#059669;--color-secondary-light:#ecfdf5;--color-accent:#f43f5e;--color-accent-hover:#e11d48;--color-accent-light:#fff1f2;--color-warning:#f59e0b;--color-warning-light:#fffbeb;--color-background:#f8fafc;--color-surface:#fff;--color-surface-hover:#f1f5f9;--color-text-primary:#0f172a;--color-text-secondary:#64748b;--color-text-tertiary:#94a3b8;--color-border:#e2e8f0;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-background);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;outline:none;font-family:inherit}ul{list-style:none}.glass-effect{-webkit-backdrop-filter:blur(10px);background:#ffffffb3;border:1px solid #ffffff4d}.fade-in{animation:fadeIn var(--transition-normal) ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}
