.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--color-primary, #5b6ae8) 0%,color-mix(in srgb,var(--color-primary, #5b6ae8) 75%,black) 100%);padding:2rem}.login-card{background:var(--surface-elevated);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:2.5rem 3rem;width:100%;max-width:420px}.login-state-container{text-align:center}.login-state-card p{margin:0}.login-state-card .btn-login{margin-top:1rem}.login-header{text-align:center;margin-bottom:2rem}.login-header h1{margin:0 0 .5rem;color:var(--text-primary);font-size:1.75rem;font-weight:700;letter-spacing:-.02em}.login-header .login-logo{max-height:68px;width:auto;margin-bottom:1rem;display:block;margin-left:auto;margin-right:auto}.login-header p{margin:0;color:var(--text-secondary);font-size:.95rem}.login-version{margin-top:.5rem;color:var(--text-muted);font-size:.85rem}.login-form{display:flex;flex-direction:column;gap:1.35rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-weight:600;color:var(--text-secondary);font-size:.9rem}.form-group input{padding:.75rem 1rem;border:2px solid var(--border);border-radius:var(--radius-sm);font-size:1rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-group input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-primary-soft)}.form-group input:disabled{background-color:var(--surface);cursor:not-allowed;opacity:.8}.error-message{background-color:#fef2f2;color:#991b1b;padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.9rem;text-align:center;border:1px solid #fecaca}.btn-login{padding:.875rem 1.5rem;background:linear-gradient(135deg,var(--color-primary, #5b6ae8) 0%,color-mix(in srgb,var(--color-primary, #5b6ae8) 82%,black) 100%);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)}.btn-login:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px var(--color-primary-shadow)}.btn-login:active:not(:disabled){transform:translateY(0)}.btn-login:disabled{opacity:.65;cursor:not-allowed;transform:none}.login-footer{margin-top:1.75rem;padding-top:1.35rem;border-top:1px solid var(--border);text-align:center;font-size:.85rem;color:var(--text-muted)}.login-footer strong{color:var(--text-secondary)}.layout{height:100vh;max-height:100vh;min-height:100vh;display:flex;flex-direction:column;background-color:var(--surface);overflow:hidden}:root{--topbar-height: 56px}.layout-body{display:flex;flex:1;min-height:0;overflow:hidden}@media(min-width:769px){.layout-body{margin-top:var(--topbar-height)}}@media(min-width:769px){.topbar{position:fixed;top:0;left:0;right:0;z-index:1001}}.topbar{background:linear-gradient(135deg,var(--color-primary, #5b6ae8) 0%,color-mix(in srgb,var(--color-primary, #5b6ae8) 85%,black) 100%);color:#fff;padding:.6rem 1rem .6rem .5rem;box-shadow:var(--shadow-md);display:flex;align-items:center;gap:.75rem;flex-shrink:0}.topbar-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;background:#ffffff26;color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast);flex-shrink:0}.topbar-toggle:hover{background:#ffffff40}.topbar-left{display:flex;align-items:center;gap:.75rem;min-width:0}.topbar-logo img{height:44px;width:auto;display:block;border-radius:var(--radius-sm)}.topbar-brand{margin:0;font-size:1.15rem;font-weight:700;white-space:nowrap;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis}.topbar-right{display:flex;align-items:center;gap:1rem;margin-left:auto;flex-shrink:0}.user-block{display:flex;flex-direction:column;align-items:flex-end;gap:.05rem}.user-info{font-size:.85rem;color:#fffffff2}.app-version{font-size:.7rem;color:#ffffffbf;font-weight:500}.btn-logout{padding:.45rem .9rem;background-color:#fff3;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius-sm);cursor:pointer;font-weight:500;font-size:.85rem;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.btn-logout:hover{background-color:#ffffff4d;border-color:#ffffff80}.sidebar{width:220px;flex-shrink:0;background:linear-gradient(180deg,color-mix(in srgb,var(--color-primary, #5b6ae8) 92%,black),color-mix(in srgb,var(--color-primary, #5b6ae8) 88%,black));color:#fff;display:flex;flex-direction:column;overflow:hidden;transition:width var(--transition-normal),min-width var(--transition-normal);box-shadow:var(--shadow-md)}.sidebar-closed{width:0;min-width:0;overflow:hidden;box-shadow:none}@media(min-width:769px){.sidebar{position:fixed;top:var(--topbar-height);left:0;bottom:0;height:auto;z-index:1000}.sidebar-closed{width:56px;min-width:56px;overflow:visible;box-shadow:var(--shadow-md)}.layout--sidebar-open .main-content{margin-left:220px}.layout:not(.layout--sidebar-open) .main-content{margin-left:56px}.main-content{margin-left:56px;transition:margin-left var(--transition-normal)}.sidebar-closed .nav-group-title{display:flex;justify-content:center;width:40px;height:40px;margin:.15rem auto;padding:0;position:relative}.sidebar-closed .nav-group-chevron{display:none}.sidebar-closed .nav-group-items,.sidebar-closed .nav-group-items.expanded{max-height:none;overflow:visible;display:block}.sidebar-closed .nav-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sidebar-closed .nav-group-items a,.sidebar-closed .nav-link-single{justify-content:center;width:40px;height:40px;margin:.15rem auto;padding:0;position:relative}.sidebar-closed a:hover:after,.sidebar-closed a:focus-visible:after,.sidebar-closed .nav-group-toggle:hover:after,.sidebar-closed .nav-group-toggle:focus-visible:after{content:attr(data-label);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:#1a202c;color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;white-space:nowrap;z-index:30;pointer-events:none}}.sidebar-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:1rem .5rem .5rem}.sidebar .nav-group{margin-bottom:.5rem}.sidebar .nav-group-title{color:#fffffff2;font-weight:600;font-size:.9rem;text-transform:none;letter-spacing:0}.sidebar .nav-group-toggle{width:100%;text-align:left;background:none;border:none;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:600;color:inherit;display:flex;align-items:center;gap:.5rem;padding:.4rem .65rem;border-radius:var(--radius-sm);transition:background-color var(--transition-fast),color var(--transition-fast)}.sidebar .nav-group-toggle .nav-label{flex:1}.sidebar .nav-group-toggle:hover{background-color:#ffffff1a;color:#fff}.sidebar .nav-group-chevron{font-size:.6rem;transition:transform var(--transition-fast)}.sidebar .nav-group-toggle.expanded .nav-group-chevron{transform:rotate(180deg)}.sidebar .nav-group-items{list-style:none;margin:0;padding:0;max-height:0;overflow:hidden;transition:max-height var(--transition-normal)}.sidebar .nav-group-items.expanded{max-height:500px}.sidebar .nav-group-items li{margin:0}.sidebar .nav-group-items a,.sidebar .nav-link-single{display:flex;align-items:center;gap:.5rem;color:#fffffff2;text-decoration:none;padding:.4rem .65rem;border-radius:var(--radius-sm);font-weight:500;font-size:.9rem;transition:background-color var(--transition-fast),color var(--transition-fast)}.sidebar .nav-group-items a:hover,.sidebar .nav-link-single:hover{background-color:#ffffff26;color:#fff}.sidebar .nav-group-items a.active,.sidebar .nav-link-single.active{background-color:#ffffff40;font-weight:600;color:#fff}.sidebar .nav-link-single{margin:0 .25rem .25rem}.nav-icon{display:inline-flex;flex-shrink:0}.layout-movil{height:100vh;height:100dvh;background:var(--surface)}.main-movil{height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column}.main-content{flex:1;min-width:0;min-height:0;padding:.75rem 1rem;overflow:hidden;display:flex;flex-direction:column;background-color:var(--surface)}.main-content>*{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}.main-content>.lista-socios,.main-content>.listado-pagos,.main-content>.registrar-pagos{overflow:hidden}.main-content--full>*{max-width:100%}.main-content--full .lista-socios,.main-content--full .lista-categorias,.main-content--full .lista-liquidaciones,.main-content--full .lista-cajas,.main-content--full .lista-usuarios,.main-content--full .lista-backups,.main-content--full .lista-auditoria,.main-content--full .listado-pagos,.main-content--full .lista-egresos,.main-content--full .lista-medios-pago,.main-content--full .lista-tesoreria,.main-content--full .tabla-socios-container,.main-content--full .resumen-caja,.main-content--full .configuracion-club-page,.main-content--full .backup-page{max-width:100%}@media(max-width:768px){.topbar{padding:.5rem .75rem .5rem .35rem;gap:.5rem;position:relative;z-index:1001}.topbar-logo img{height:38px}.topbar-brand{font-size:1rem}.user-block{display:none}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:1000;height:100vh}.sidebar.sidebar-open{width:280px;max-width:85vw;box-shadow:var(--shadow-xl)}.sidebar-closed{width:0;pointer-events:none}.sidebar-overlay{display:block;position:fixed;inset:0;background:var(--surface-overlay);z-index:999;cursor:pointer}.main-content{padding:1rem}}@media(min-width:769px){.sidebar-overlay{display:none!important}.sidebar.sidebar-closed .nav-group-items{max-height:none;overflow:visible}.sidebar.sidebar-closed .nav-group-toggle{width:40px;height:40px;margin:.15rem auto;padding:0;justify-content:center}}.error-boundary{padding:2rem;text-align:center;max-width:480px;margin:2rem auto}.error-boundary h2{margin:0 0 .5rem;font-size:1.25rem;color:var(--text-primary, #1a1a1a)}.error-boundary p{margin:0 0 1rem;color:var(--text-muted, #666)}.error-boundary-retry{min-height:44px;min-width:120px;padding:.5rem 1rem;font-size:1rem;cursor:pointer;border-radius:6px;border:1px solid var(--border, #ddd);background:var(--bg-secondary, #f5f5f5);color:var(--text-primary, #1a1a1a)}.error-boundary-retry:hover{background:var(--bg-hover, #eee)}.error-boundary-compact{padding:1rem;text-align:center;font-size:.9rem;color:var(--text-muted, #666)}.error-boundary-compact button{margin-top:.5rem;min-height:44px;min-width:100px;padding:.35rem .75rem;cursor:pointer;border-radius:4px;border:1px solid var(--border, #ddd);background:var(--bg-secondary, #f5f5f5)}:root{--color-primary: #5b6ae8;--color-primary-hover: #4a5ad4;--color-primary-soft: rgba(91, 106, 232, .12);--color-primary-shadow: rgba(91, 106, 232, .35);--surface: #f8f9fc;--surface-elevated: #ffffff;--surface-overlay: rgba(0, 0, 0, .5);--text-primary: #1a202c;--text-secondary: #4a5568;--text-muted: #718096;--border: #e2e8f0;--border-focus: var(--color-primary);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--shadow-sm: 0 1px 3px rgba(15, 23, 42, .06);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .12);--shadow-xl: 0 20px 50px rgba(15, 23, 42, .15);--transition-fast: .15s ease;--transition-normal: .25s ease;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:var(--text-primary);background-color:var(--surface);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;min-height:100vh}h1,.page-title{color:var(--text-primary);font-weight:700;letter-spacing:-.02em}.main-content .lista-header,.main-content .header,.main-content .tesoreria-header,.main-content .backups-header{position:sticky;top:0;z-index:10;background:var(--surface);padding:.12rem 0 .2rem;margin-bottom:.24rem;flex-shrink:0;display:flex;align-items:center;flex-wrap:nowrap;gap:.5rem;min-height:0}.main-content .lista-header h1,.main-content .header h1,.main-content .tesoreria-header h1,.main-content .backups-header h2{font-size:1.05rem;font-weight:700;margin:0;line-height:1.15;flex-shrink:0}.main-content .lista-actions,.main-content .header-actions,.main-content .backups-actions{gap:.5rem;display:flex;align-items:center;flex-wrap:nowrap;margin-left:auto}.main-content .acciones-filtros{gap:.5rem}.main-content table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s}.main-content table th.sortable:hover{background-color:#fff3}.main-content table th.sortable .sort-indicator{margin-left:.2rem;font-weight:700;opacity:.9}.main-content .btn-agregar,.main-content .btn-imprimir,.main-content .btn-filtros,.main-content .btn-eliminar,.main-content .btn-exportar,.main-content .btn-envio-masivo,.main-content .btn-grafico,.main-content .btn-imprimir-tesoreria{padding:.2rem .55rem;min-height:32px;font-size:.75rem;font-weight:600;border-radius:var(--radius-sm);line-height:1.2}.main-content .btn-exportar-excel{background:#0d9488;color:#fff}.main-content .btn-exportar-excel:hover{filter:brightness(1.1)}.main-content .filtros-socios,.main-content .filtros-pagos,.main-content .filtros-tesoreria,.main-content .filtros-auditoria,.main-content .filtros-fecha,.main-content .filtros-grid{gap:.5rem;padding:.4rem 0 .5rem}.main-content .filtro label,.main-content .filtro-item label{font-size:.75rem;margin-bottom:.15rem}.main-content .filtro input,.main-content .filtro select,.main-content .filtro-item input,.main-content .filtro-item select{padding:.35rem .5rem;font-size:.85rem;border-radius:var(--radius-sm)}.main-content .btn-limpiar,.main-content .btn-mes-rapido,.main-content .btn-limpiar-filtros{padding:.35rem .65rem;font-size:.8rem}.main-content .lista-info,.main-content .resumen{font-size:.8rem;margin-bottom:.5rem;padding:.2rem 0}.main-content .filtros-socios,.main-content .filtros-pagos,.main-content .filtros-tesoreria{position:sticky;top:2.4rem;z-index:9;background:var(--surface);padding-bottom:.4rem;margin-bottom:.4rem}.main-content .filtros-auditoria{position:sticky;top:2.4rem;z-index:9;background:var(--surface);padding:.5rem;margin-bottom:.4rem}.btn-primary{background-color:var(--color-primary, #5b6ae8);color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:background-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.btn-primary:hover{background-color:var(--color-primary-hover, #4a5ad4)}.btn-primary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{border:2px solid var(--border);border-radius:var(--radius-sm);padding:.65rem .9rem;font-size:1rem;font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-primary-soft)}.main-content .tabla-acciones-superior{flex-direction:row;align-items:flex-end;flex-wrap:wrap}.main-content .tabla-fila-filtros{flex:1 1 16rem;justify-content:flex-start}.main-content .tabla-pagos th,.main-content .tabla-pagos td,.main-content .tabla-liquidaciones th,.main-content .tabla-liquidaciones td,.main-content .tabla-liquidaciones-mensuales th,.main-content .tabla-liquidaciones-mensuales td,.main-content .tabla-pagos-medio th,.main-content .tabla-pagos-medio td,.main-content .tabla-liquidaciones-socio th,.main-content .tabla-liquidaciones-socio td,.main-content .tabla-cajas th,.main-content .tabla-cajas td,.main-content .tabla-usuarios th,.main-content .tabla-usuarios td,.main-content .tabla-medios-pago th,.main-content .tabla-medios-pago td,.main-content .tabla-auditoria th,.main-content .tabla-auditoria td,.main-content .tabla-categorias th,.main-content .tabla-categorias td,.main-content .tabla-backups th,.main-content .tabla-backups td{padding:.3rem .5rem;font-size:.8125rem}.main-content .filtros-usuarios .filtro-acciones,.main-content .filtros-cajas .filtro-acciones,.main-content .filtros-medios-pago .filtro-acciones,.main-content .filtros-tesoreria .filtro-acciones{margin-left:auto;display:flex;align-items:flex-end;gap:.35rem;flex-wrap:wrap}.main-content .filtro-group input,.main-content .filtro-group select,.main-content .filtro-item input,.main-content .filtro-item select{width:8.2rem;box-sizing:border-box}.main-content .btn-accion{padding:.1rem .25rem;font-size:.95rem;line-height:1}.main-content td.sin-datos{padding:.75rem .5rem}.main-content .listado-pagos .tabla-pagos-container .tabla-wrapper,.main-content .tabla-liquidaciones-container .tabla-wrapper,.main-content .tabla-mensuales-wrapper .tabla-liquidaciones-mensuales-container .tabla-wrapper,.main-content .tabla-pagos-medio-container .tabla-wrapper,.main-content .detalle-tabla-liquidaciones-wrapper .tabla-wrapper{max-height:none;flex:1;min-height:0}.main-content .lista-liquidaciones{padding:.5rem 0 0;min-height:0;flex:1;display:flex;flex-direction:column;overflow:hidden}.main-content .lista-liquidaciones-principal{height:auto;flex:1;min-height:0}.main-content .tesoreria{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.atajos-periodo{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center}.atajos-periodo button{min-height:28px;padding:.15rem .5rem;font-size:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-elevated);color:var(--text-secondary);cursor:pointer}.atajos-periodo button.activo{background:var(--color-primary, #5b6ae8);color:#fff;border-color:transparent}.badge-deuda{background:#fed7d7;color:#742a2a;white-space:nowrap}.badge-al-dia{background:#c6f6d5;color:#22543d;white-space:nowrap}
