.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px;box-sizing:border-box}.login-form{padding:40px;border-radius:12px;box-shadow:0 5px 15px #0000001a;width:100%;max-width:400px;text-align:center;box-sizing:border-box}.login-form img{width:80%;margin-bottom:20px}.login-form h1{margin-bottom:20px;font-size:24px;color:#333}.login-form input{width:100%;padding:12px;margin-bottom:15px;border:1px solid #ccc;border-radius:8px;font-size:16px;box-sizing:border-box}.login-form button{width:100%;padding:12px;background-color:var(--color-success);color:var( --color-text);border:none;border-radius:8px;font-size:16px;cursor:pointer}.login-form button:hover{background-color:#45a049}.login-form p{margin-top:15px;font-size:14px;color:#666}.login-form p span{color:#4caf50;cursor:pointer;text-decoration:underline}.password-container{position:relative}.password-container input{width:100%;padding-right:40px}.toggle-password{position:absolute;right:10px;top:50%;transform:translateY(-50%);cursor:pointer;font-size:18px;-webkit-user-select:none;user-select:none}.header{height:64px;background:var(--color-bg-card);display:flex;align-items:center;justify-content:space-between;padding:0 1rem;border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.header-left{display:flex;align-items:center;gap:.75rem}.menu-btn{background:transparent;border:none;color:var(--color-text);font-size:1.4rem;cursor:pointer}.header-logo{width:32px;height:32px;object-fit:contain}.header-title h1{margin:0;font-size:1rem;font-weight:600}.header-title span{font-size:.75rem;color:var(--color-text-muted)}.menu{top:0;left:0;height:100vh;width:260px;padding:18px 14px;display:flex;flex-direction:column;gap:6px;background-color:var(--color-bg);box-shadow:4px 0 20px #00000014;z-index:1000;transition:transform .3s ease-in-out}@media(max-width:768px){.menu{transform:translate(-100%)}.menu.open{transform:translate(0)}}@media(min-width:769px){.menu{transform:translate(0)}}.menu button{display:flex;align-items:center;gap:10px;padding:10px 14px;border:none;border-radius:10px;font-size:14px;font-weight:500;background:transparent;color:var(--color-text);cursor:pointer;text-align:left;transition:background .2s ease,transform .2s ease}.menu button span{flex:1}.menu button:hover{background:#0000000d;transform:translate(4px)}.menu-section{margin-top:10px}.menu-title{font-size:.65rem;text-transform:uppercase;color:#9ca3af;padding:8px 10px 4px;font-weight:600;letter-spacing:.04em}.menu .logout{margin-top:auto;background:#ef44441f;color:#ef4444;justify-content:center}.menu .logout:hover{background:#ef444440;transform:none}.menu-overlay{position:fixed;inset:0;background:#00000073;z-index:999}html{height:100%;font-family:DM Sans,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px}*{box-sizing:border-box}body{height:100%;margin:0;background-color:#fff;font-family:DM Sans,sans-serif;color:var(--color-text)}*{box-sizing:border-box;margin:0;padding:0}button,input,select,textarea{font-family:inherit}.app-container{height:100vh;display:flex;flex-direction:column;overflow:hidden}.header{height:60px;background:var(--color-bg);color:var(--color-text);padding:0 16px;display:flex;align-items:center;gap:16px;flex-shrink:0;border-bottom:1px solid var(--color-border)}.header h1{font-size:18px;font-weight:600}.menu-btn{font-size:24px;background:none;border:none;color:var(--color-text);cursor:pointer}.app-body{flex:1;display:flex;overflow:hidden;position:relative}.app-content{flex:1;overflow-y:auto;padding:16px;background:var(--color-bg-gris-claro)}.footer{height:48px;background:#222;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}@media(max-width:768px){.menu{position:fixed;top:60px;left:0;width:260px;height:calc(100vh - 60px);transform:translate(-100%);transition:transform .3s ease;z-index:1000}.menu.open{transform:translate(0)}}.dashboard-title{color:var(--color-text-inverse);font-size:22px;margin-bottom:6px;text-align:center;font-weight:600}.dashboard-subtitle{color:var(--color-text);margin-bottom:24px;text-align:center;opacity:.85}.dashboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}@media(min-width:768px){.dashboard-grid{grid-template-columns:repeat(4,1fr)}}.dashboard-card{background:linear-gradient(180deg,var(--color-bg-card),var(--color-bg));border-radius:16px;padding:26px 12px;font-size:15px;font-weight:500;cursor:pointer;text-align:center;min-height:120px;color:var(--color-text);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;border:1px solid var(--color-border);box-shadow:0 6px 18px #0000000f;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.dashboard-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px #0000001f;background:var(--color-bg-hover)}.dashboard-card:active{transform:scale(.98)}button{background:var(--color-primary);color:var(--color-text-inverse);border-radius:var(--radius-md);box-shadow:var(--shadow-md);transition:var(--transition-fast)}button:hover{transform:translateY(-1px)}.btn_ingresar,.btn_modificar{background-color:var(--color-bg-button);color:var(--color-text:)}.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px;box-sizing:border-box}.auth-card{padding:40px;border-radius:12px;box-shadow:0 5px 15px #0000001a;width:100%;max-width:400px;text-align:center;box-sizing:border-box}.logo-container{display:flex;justify-content:center;margin-bottom:12px}.logo-container img{width:45%;max-width:160px;height:auto}.auth-card h1{text-align:center;margin-bottom:14px;font-weight:700;letter-spacing:-.02em;color:var(--color-text-inverse)}p{margin-top:15px;font-size:14px;color:#666;text-align:center;margin-bottom:15px}.link{color:#1e88e5;cursor:pointer;font-weight:500}.auth-card input,.auth-card select{width:100%;padding:12px;margin-bottom:12px;border-radius:8px;border:1px solid #ddd;font-size:15px;background:#fff}.phone-group{display:flex;gap:8px}.phone-group select{width:40%}.phone-group input{width:60%}.password-field{position:relative}.password-field span{position:absolute;right:12px;top:12px;cursor:pointer;color:#666}.auth-card button{width:100%;padding:14px;background:#4caf50;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;margin-top:12px;transition:transform .15s ease,box-shadow .15s ease}.auth-card button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 14px #0000001f}button:disabled{opacity:.6;cursor:not-allowed}.alert{display:flex;align-items:center;gap:8px;padding:10px;border-radius:8px;font-size:14px;margin-bottom:14px}.alert.success{background:#e8f5e9;color:#2e7d32}.alert.error{background:#fdecea;color:#c62828}.alert svg{font-size:18px}.hint{font-size:12px;color:#757575;margin-top:-6px;margin-bottom:8px}.success-text,.error-text{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:8px}.success-text{color:#2e7d32}.error-text{color:#c62828}.intereses-container{margin-top:1rem}.intereses-container h3{text-align:center;margin-bottom:.75rem;font-size:1.2rem;color:var(--color-text-inverse)}.interes-card{background:var(--color-bg-naranja-claro);border-radius:12px;padding:12px;margin-bottom:12px}.interes-card h4{font-size:1rem;margin-bottom:8px;color:var(--color-text-inverse)}.interes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:180px;overflow-y:auto}.interes-item input{display:none}.interes-item span{display:block;padding:8px 10px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-bg-naranja);font-size:14px;text-align:center;cursor:pointer;transition:all .2s ease}.interes-item input:checked+span{background:var(--color-bg-hover);color:var(--color-text)}@media(min-width:1024px){.auth-card{max-width:480px}}@media(min-width:768px){.auth-container{align-items:center;padding:40px;overflow:auto}.auth-card{max-width:420px;padding:28px;border-radius:16px;box-shadow:0 15px 40px #00000014;overflow:auto}.interes-grid{grid-template-columns:repeat(3,1fr);max-height:220px}}.password-strength{margin-top:6px}.strength-bar{height:6px;border-radius:4px;background-color:#e0e0e0;transition:width .3s ease,background-color .3s ease}.strength-1{width:20%;background-color:#e74c3c}.strength-2{width:40%;background-color:#e67e22}.strength-3{width:60%;background-color:#f1c40f}.strength-4{width:80%;background-color:#2ecc71}.strength-5{width:100%;background-color:#27ae60}.strength-text{font-size:13px;margin-top:4px;display:block;color:#555}.email-checking{color:#555;font-size:.9rem}.email-ok{color:green;font-size:.9rem}.email-error{color:red;font-size:.9rem}.auth-card p span{color:#4caf50;cursor:pointer;text-decoration:underline}.profile-container{max-width:900px;margin:0 auto;padding:40px 20px}.profile-container h2{font-size:28px;margin-bottom:6px;color:#1f2937}.profile-subtitle{color:#6b7280;margin-bottom:30px;font-size:15px}.profile-form{background:#fff;border-radius:14px;padding:32px;box-shadow:0 10px 30px #00000014;display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.profile-form.full{grid-template-columns:repeat(2,1fr)}.form-group{display:flex;flex-direction:column}.form-group.full{grid-column:span 2}.form-group label{font-size:14px;font-weight:600;margin-bottom:6px;color:#374151}.form-group input,.form-group select{padding:12px 14px;border-radius:10px;border:1px solid #d1d5db;font-size:15px;outline:none;transition:all .2s ease;background-color:#fff}.form-group input:focus,.form-group select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.btn-primary{grid-column:span 2;margin-top:10px;padding:14px;border-radius:12px;border:none;background:var(--color-bg);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 20px #2563eb59}.btn-primary:active{transform:scale(.98)}@media(max-width:768px){.profile-form{grid-template-columns:1fr;padding:24px}.form-group.full,.btn-primary{grid-column:span 1}}.password-section{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.password-section h3{color:var(--color-text-inverse);margin-bottom:1rem;font-size:1.2rem}.password-field{position:relative;margin-bottom:1rem}.password-field input{width:100%;padding:.75rem 2.8rem .75rem .9rem;border-radius:12px;border:1px solid #e5e7eb;font-size:.95rem}.password-field span{position:absolute;right:12px;top:50%;transform:translateY(-50%);cursor:pointer;color:#6b7280}.password-field span:hover{color:#111827}.password-message{font-size:.85rem;margin-bottom:.8rem;color:#dc2626}.btn-secondary{width:100%;padding:.85rem;border-radius:14px;background-color:var(--color-bg);color:#fff;font-weight:600;border:none;cursor:pointer}.btn-secondary:hover{background-color:#111827}.intereses-container{grid-column:1 / -1;margin-top:1.5rem}.intereses-container h3{margin-bottom:1rem;font-size:1.2rem}.intereses-container h4{margin:1rem 0 .5rem;font-size:1rem;color:var(--text-secondary, #6b7280)}.interes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.6rem}.interes-item{display:block;align-items:center;gap:.4rem;padding:.4rem .6rem;border-radius:8px;background:#f9fafb;cursor:pointer}.interes-item input{accent-color:var(--color-bg)}.foto-wrapper{position:relative;display:inline-block}.foto-preview{width:120px;height:120px;object-fit:cover;border-radius:50%;border:3px solid var(--color-primary)}.foto-placeholder{width:120px;height:120px;border-radius:50%;background:#f3f4f6;display:flex;align-items:center;justify-content:center;color:#6b7280;font-size:.85rem}.foto-camera{position:absolute;bottom:4px;right:4px;width:34px;height:34px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px #00000040;cursor:pointer;transition:transform .2s ease,background .2s ease}.foto-camera:hover{transform:scale(1.1);background:var(--color-primary-hover)}.foto-label{cursor:pointer}.foto-section{display:flex;flex-direction:column;align-items:center;gap:12px}:root{--color-bg: #0b0f19;--color-bg-gris-claro: #e2e2e2;--color-bg-naranja: #f59e0b;--color-bg-naranja-claro: #ffd998;--color-bg-hover: #364c82;--color-bg-soft: #111827;--color-bg-card: #151a2e;--color-bg-button: #f59e0b;--color-bg-button-hover: #d97706;--color-border: #1f2937;--color-text: #f9fafb;--color-text-muted: #9ca3af;--color-text-inverse: #0b0f19;--color-primary: #f59e0b;--color-primary-hover: #d97706;--color-primary-soft: rgba(245, 158, 11, .18);--color-success: #22c55e;--color-success-soft: rgba(34, 197, 94, .18);--color-warning: #fbbf24;--color-warning-soft: rgba(251, 191, 36, .18);--color-danger: #ef4444;--color-danger-soft: rgba(239, 68, 68, .18);--shadow-sm: 0 2px 4px rgba(0,0,0,.35);--shadow-md: 0 6px 16px rgba(0,0,0,.45);--shadow-lg: 0 12px 30px rgba(0,0,0,.6);--transition-fast: .12s ease-in-out;--transition-base: .25s ease-in-out;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 18px;--sidebar-width: 260px}.gastos-container{padding:0;max-width:1100px;margin:0 auto}.gastos-container h1{color:var(--color-bg-soft);text-align:left;margin-bottom:6px;font-size:28px}.tabs{display:flex;gap:8px;margin-bottom:24px}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:1;padding:12px 16px;border-radius:10px;border:none;background:var(--color-bg-hover);color:var(--color-text);font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.tabs button:hover{background:var(--color-bg-soft)}.tabs button.active{background:var(--color-bg);color:#fff;box-shadow:0 6px 18px #4f46e540}.form-box{background:#fff;border-radius:14px;padding:22px;margin-bottom:26px;box-shadow:0 10px 30px #0f172a0f}.form-box h3{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:16px;color:#0f172a}.form-box input,.form-box textarea{width:100%;border-radius:10px;border:1px solid #e2e8f0;padding:12px 14px;font-size:14px;margin-bottom:12px;transition:border-color .2s ease}.form-box textarea{resize:none;min-height:80px}.form-box input:focus,.form-box textarea:focus{outline:none;border-color:#4f46e5}.form-box button{background-color:var(--color-bg);color:var(--color-text);border:none;padding:10px 18px;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%}.form-box button:hover{background:var(--color-bg-soft);box-shadow:0 8px 20px #4f46e559}.tabla{width:100%;background:#fff;border-radius:14px;border-collapse:collapse;overflow:hidden;box-shadow:0 10px 30px #0f172a0f}.tabla thead{background:#f8fafc}.tabla th{padding:14px;font-size:13px;text-transform:uppercase;color:#64748b;text-align:left;text-align:center;vertical-align:middle}.tabla td{padding:14px;font-size:14px;color:#0f172a;border-top:1px solid #e2e8f0;text-align:left;vertical-align:middle}.tabla tr{margin-bottom:12px;text-align:left;vertical-align:middle}.acciones{display:block;gap:12px}.acciones svg{cursor:pointer;font-size:18px;color:#64748b;transition:all .2s ease}.acciones svg:hover{transform:scale(1.1)}.acciones svg:first-child:hover{color:#4f46e5}.acciones svg:last-child:hover{color:#ef4444}@media(max-width:768px){.tabla thead{display:none}.tabla tr{margin-bottom:12px;text-align:left;vertical-align:middle}.tabla td{display:flex;padding:10px 14px;text-align:left;vertical-align:middle}.tabla td:before{content:attr(data-label);font-weight:600;color:#64748b;text-align:left;vertical-align:middle}.acciones svg{cursor:pointer;margin:0 6px;text-align:center;vertical-align:middle}}.acciones svg{cursor:pointer;margin:0 6px;text-align:center;vertical-align:middle}.botones-gastos{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.btn-gasto{width:100%;padding:10px}.text-left{text-align:left}.codigo-validado{height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:20px}.codigo-validado__logo{width:40%;margin-bottom:24px}.codigo-validado__title{font-size:22px;margin-bottom:8px;color:#222}.codigo-validado__text{font-size:16px;color:#666}
