:root{--color-bg:#f5f6f8;--color-surface:#fff;--color-border:#e2e5ea;--color-text:#1f2430;--color-text-muted:#6b7280;--color-primary:#2f6fed;--color-primary-dark:#2456bf;--color-danger:#dc2626;--color-danger-bg:#fdecec;--color-warning:#d97706;--color-warning-bg:#fef6e6;--color-success:#16a34a;--color-success-bg:#eaf7ee;--color-neutral-bg:#eef0f4;--radius:12px;--shadow-sm:0 1px 2px #1018280f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}h1,h2,h3{margin:0;font-weight:600}button{font:inherit}.niyat-theme{--niyat-navy:#1a2744;--niyat-navy-dark:#111a30;--niyat-gold:#c9a961;--niyat-gold-soft:#e8dcc0;--color-bg:#f7f4ee;--color-surface:#fff;--color-border:#e6dfcf;--color-text:#1f2430;--color-text-muted:#6b6f7a;--color-primary:var(--niyat-navy);--color-primary-dark:var(--niyat-navy-dark);--color-neutral-bg:#efe9db;background:var(--color-bg);min-height:100vh;color:var(--color-text)}.niyat-theme .btn--primary:disabled{background:#8f98b0}.niyat-theme .btn--primary:focus-visible,.niyat-theme .btn--ghost:focus-visible{outline:2px solid var(--niyat-gold);outline-offset:2px}.niyat-theme .summary-card--neutral{border-top-color:var(--niyat-gold)}.niyat-topbar{background:var(--niyat-navy);color:#fff;border-bottom:3px solid var(--niyat-gold);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:12px 16px;display:flex}@media (width>=640px){.niyat-topbar{padding-left:2rem;padding-right:2rem}}.niyat-topbar__brand{letter-spacing:.04em;color:var(--niyat-gold-soft);font-family:Cormorant Garamond,Georgia,Times New Roman,serif;font-size:28px;font-weight:600;text-decoration:none}.niyat-topbar__actions{flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:13px;display:flex}.niyat-topbar__user{color:#ffffffbf}.niyat-topbar__btn{color:#fff;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:1px solid #e8dcc080;border-radius:8px;align-items:center;padding:6px 14px;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.niyat-topbar__btn:hover{border-color:var(--niyat-gold);background:#e8dcc026}.niyat-topbar__btn:focus-visible{outline:2px solid var(--niyat-gold);outline-offset:2px}.niyat-theme .page__header h1{color:var(--niyat-navy);font-family:Cormorant Garamond,Georgia,Times New Roman,serif;font-size:30px}.niyat-theme .niyat-summary-grid{grid-template-columns:repeat(2,1fr)}@media (width>=820px){.niyat-theme .niyat-summary-grid{grid-template-columns:repeat(4,1fr)}}.niyat-theme .niyat-columns{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=720px){.niyat-theme .niyat-columns{grid-template-columns:repeat(2,1fr)}}.niyat-item__sub{color:var(--color-text-muted);overflow-wrap:break-word;font-size:13px}.niyat-theme{--viz-series-1:#2a78d6;--viz-series-2:#eb6834;--viz-grid:#e6dfcf;--viz-pos:#15803d;--viz-neg:#b91c1c}.er-filters{flex-wrap:wrap;gap:12px;margin:16px 0 8px;display:flex}.er-filters .field{min-width:150px}.er-period{color:var(--niyat-navy);margin:12px 0;font-family:Cormorant Garamond,Georgia,Times New Roman,serif;font-size:24px}.er-content{transition:opacity .15s}.er-content--loading{opacity:.55}.niyat-theme .er-summary{grid-template-columns:1fr;gap:12px;margin-bottom:32px;display:grid}@media (width>=640px){.niyat-theme .er-summary{grid-template-columns:repeat(3,1fr)}}.niyat-theme .er-card--income{border-top-color:var(--viz-series-1)}.niyat-theme .er-card--expense{border-top-color:var(--viz-series-2)}.niyat-theme .er-card--pos{border-top-color:var(--viz-pos)}.niyat-theme .er-card--neg{border-top-color:var(--viz-neg)}.niyat-theme .er-card--zero{border-top-color:var(--niyat-gold)}.niyat-theme .er-card .summary-card__value{font-size:28px}.er-card--pos .er-result-value,.er-card--pos .er-result-label{color:var(--viz-pos)}.er-card--neg .er-result-value,.er-card--neg .er-result-label{color:var(--viz-neg)}.er-result-label{color:var(--color-text-muted);font-size:13px;font-weight:600}.er-text--pos{color:var(--viz-pos);font-weight:600}.er-text--neg{color:var(--viz-neg);font-weight:600}.er-legend{color:var(--color-text);flex-wrap:wrap;gap:8px 20px;margin:12px 0 8px;font-size:13px;display:flex}.er-legend__item{align-items:center;gap:8px;display:inline-flex}.er-legend__swatch{border-radius:3px;width:12px;height:12px}.er-chart{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;padding:8px 0 0;position:relative}.er-chart svg{display:block}.er-grid,.er-baseline{stroke:var(--viz-grid);stroke-width:1px}.er-baseline{stroke:#cfc6b0}.er-axis{fill:var(--color-text-muted);font-size:11px}.er-hover{fill:var(--niyat-navy);opacity:.06}.er-hit{fill:#0000;cursor:default;outline:none}.er-hit:focus-visible{stroke:var(--niyat-navy);stroke-width:2px}.er-tooltip{z-index:5;background:var(--color-surface);border:1px solid var(--color-border);min-width:160px;color:var(--color-text-muted);pointer-events:none;border-radius:8px;padding:8px 10px;font-size:12px;position:absolute;box-shadow:0 4px 12px #10182826}.er-tooltip__title{color:var(--color-text);margin-bottom:4px;font-weight:600}.er-tooltip__row{align-items:center;gap:8px;padding:1px 0;display:flex}.er-tooltip__row strong{color:var(--color-text);font-size:13px}.er-tooltip__key{border-radius:2px;flex:none;width:12px;height:3px}.er-tooltip__result{border-top:1px solid var(--color-border);margin-top:4px;padding-top:4px}.niyat-theme .er-table .er-num{text-align:right;font-variant-numeric:tabular-nums}.er-table tfoot td{border-top:2px solid var(--color-border);font-weight:700}.er-chart{margin-bottom:24px}@media (width<=640px){.niyat-theme .er-table .er-num{text-align:inherit}}.top-bar{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:flex-end;align-items:center;gap:12px;padding:8px 16px;font-size:13px;display:flex}.top-bar__user{color:var(--color-text-muted)}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);width:100%;max-width:360px;padding:32px}.login-form h1{font-size:22px}.login-form p{color:var(--color-text-muted);margin:4px 0 20px;font-size:14px}.login-form .btn{width:100%;margin-top:4px}.page{max-width:1400px;margin:0 auto;padding:24px 16px 64px}@media (width>=640px){.page{padding-left:2rem;padding-right:2rem}}.page__header{z-index:20;background:var(--color-bg);border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:16px 0;display:flex;position:sticky;top:0}.page__header h1{font-size:26px}.page__header p{color:var(--color-text-muted);margin-top:4px;font-size:14px}.page__header-actions{flex-wrap:wrap;gap:8px;display:flex}.loading-state,.empty-state{color:var(--color-text-muted);text-align:center;padding:24px 0}.error-banner{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding:12px 16px;font-size:14px;display:flex}.familia-filter{flex-wrap:wrap;flex-basis:100%;gap:8px;display:flex}.familia-filter__chip{background:var(--color-surface);border:1px solid var(--color-border);min-height:44px;font:inherit;text-align:center;color:var(--color-text-muted);cursor:pointer;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;padding:4px 14px;font-size:13px;font-weight:600;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}@media (width<=640px){.familia-filter{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.familia-filter__chip{flex-shrink:0}}.familia-filter__line{white-space:nowrap;display:block}.familia-filter__chip:hover{border-color:var(--color-primary)}.familia-filter__chip--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.summary-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:32px;display:grid}@media (width>=560px){.summary-grid{grid-template-columns:repeat(3,1fr)}}@media (width>=820px){.summary-grid{grid-template-columns:repeat(5,1fr);gap:12px}}.summary-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);border-top:3px solid var(--color-border);flex-direction:column;gap:4px;min-width:0;padding:16px;display:flex}.summary-card__label{color:var(--color-text-muted);font-size:13px}.summary-card__value{font-size:24px;font-weight:700}@media (width>=820px){.summary-card{padding:12px 14px}.summary-card__label{font-size:12px}.summary-card__value{font-size:20px}.summary-card__accent{font-size:11px}}.summary-card__accent{color:var(--color-text-muted);font-size:12px}.summary-card--danger{border-top-color:var(--color-danger)}.summary-card--danger .summary-card__value{color:var(--color-danger)}.summary-card--warning{border-top-color:var(--color-warning)}.summary-card--warning .summary-card__value{color:var(--color-warning)}.summary-card--success{border-top-color:var(--color-success)}.summary-card--success .summary-card__value{color:var(--color-success)}.summary-card--neutral{border-top-color:var(--color-primary)}.summary-card--neutral .summary-card__value{color:var(--color-primary-dark)}.section h2,.section-sticky{top:var(--header-height,76px);z-index:10;background:var(--color-bg);border-bottom:1px solid var(--color-border);margin:0 0 12px;padding:12px 0;font-size:18px;position:sticky}.section__header{justify-content:space-between;align-items:center;gap:12px;display:flex}.section__header h2{border:none;margin:0;padding:0;position:static}.tabs{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:4px;margin-bottom:16px;display:flex}.tab-button{min-height:44px;font:inherit;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;padding:10px 14px;font-weight:600;display:inline-flex}.tab-button:hover{color:var(--color-text)}.tab-button--active{color:var(--color-primary-dark);border-bottom-color:var(--color-primary)}.catalog-table-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow-x:auto}.catalog-table{border-collapse:collapse;width:100%;font-size:14px}.catalog-table th,.catalog-table td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:12px 16px}.catalog-table th{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.catalog-table tbody tr:last-child td{border-bottom:none}.catalog-table__actions{gap:8px;display:flex}@media (width<=640px){.catalog-table-wrapper{box-shadow:none;background:0 0;border:none;overflow-x:visible}.catalog-table thead{display:none}.catalog-table,.catalog-table tbody,.catalog-table tr,.catalog-table td{width:100%;display:block}.catalog-table tr{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:12px;padding:4px 16px}.catalog-table td{border-bottom:1px solid var(--color-border);white-space:normal;text-align:right;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.catalog-table tr td:last-child{border-bottom:none}.catalog-table td:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);text-align:left;font-size:12px;font-weight:600}.catalog-table td[data-label=Acciones]{justify-content:flex-end}.catalog-table td[data-label=Acciones]:before{content:none}.catalog-table__actions{width:100%}.catalog-table__actions .btn{flex:1}}.month-columns{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=560px){.month-columns{grid-template-columns:repeat(2,1fr)}}@media (width>=820px){.month-columns{grid-template-columns:repeat(3,1fr)}}.month-column__title{top:var(--header-height,76px);z-index:10;background:var(--color-bg);color:var(--color-text-muted);border-bottom:1px solid var(--color-border);align-items:baseline;gap:6px;margin:0 0 10px;padding:10px 0;font-size:15px;display:flex;position:sticky}.month-column__total{font-weight:600}.payment-card-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.payment-card{border-left:4px solid var(--color-border);border-radius:var(--radius)}.payment-card--danger{border-left-color:var(--color-danger)}.payment-card--warning{border-left-color:var(--color-warning)}.payment-card--success{border-left-color:var(--color-success)}.payment-card__link{background:var(--color-surface);border:1px solid var(--color-border);border-radius:inherit;box-shadow:var(--shadow-sm);color:inherit;border-left:none;flex-direction:column;gap:6px;padding:12px 14px;text-decoration:none;display:flex}.payment-card__link:hover{border-color:var(--color-primary)}.payment-card__description{color:var(--color-text);overflow-wrap:break-word;font-weight:600}.payment-card__meta{justify-content:space-between;align-items:center;gap:12px;display:flex}.payment-card__date{color:var(--color-text-muted);font-size:13px}.payment-card__amount{color:var(--color-text);white-space:nowrap;font-size:14px;font-weight:600}.payment-card__amount--por-definir{color:var(--color-text-muted);font-style:italic;font-weight:500}.field__ayuda{color:var(--color-text-muted);font-size:13px}.field__ayuda--error{color:var(--color-danger)}.modal__confirmacion{background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:8px;margin:0 0 12px;padding:10px 12px;font-size:14px}.modal__confirmacion p{margin:0 0 10px}.payment-card__footer{justify-content:flex-end;align-items:center;gap:8px;display:flex}.status-badge{white-space:nowrap;border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.status-badge--danger{background:var(--color-danger-bg);color:var(--color-danger)}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:10px 16px;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.btn--small{min-height:44px;padding:6px 12px;font-size:13px}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover{background:var(--color-primary-dark)}.btn--primary:disabled{cursor:not-allowed;background:#a9c0f5}.btn--ghost{border-color:var(--color-border);color:var(--color-text);background:0 0}.btn--ghost:hover{background:var(--color-neutral-bg)}.btn--danger{background:var(--color-danger);color:#fff}.btn--danger:hover{background:#b91c1c}.btn--danger:disabled{cursor:not-allowed;background:#f0a3a3}.modal-overlay{z-index:50;background:#0f121a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius);width:100%;max-width:420px;padding:24px;box-shadow:0 12px 32px #0f121a33}.modal h2{font-size:18px}.modal__subtitle{color:var(--color-text-muted);margin:4px 0 16px;font-size:14px}.field{flex-direction:column;gap:4px;margin-bottom:14px;font-size:14px;display:flex}.field input:not([type=checkbox]),.field select,.field textarea{border:1px solid var(--color-border);min-height:44px;color:var(--color-text);background:var(--color-surface);border-radius:8px;padding:10px 12px;font-family:inherit;font-size:16px}.field textarea{min-height:80px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--color-primary);outline-offset:1px}.modal__error{color:var(--color-danger);margin:0 0 12px;font-size:13px}.gasto-detail{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);grid-template-columns:1fr;gap:16px;margin-bottom:24px;padding:20px;display:grid}@media (width>=480px){.gasto-detail{grid-template-columns:repeat(2,1fr)}}@media (width>=768px){.gasto-detail{grid-template-columns:repeat(4,1fr)}}.gasto-detail__label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:4px;font-size:12px;display:block}.gasto-detail__value{color:var(--color-text);font-size:16px;font-weight:600;display:block}.gasto-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);grid-template-columns:1fr;gap:4px 16px;padding:20px;display:grid}@media (width>=640px){.gasto-form{grid-template-columns:repeat(2,1fr)}}.field--full{grid-column:1/-1}.field--checkbox{flex-direction:row;align-items:center;gap:8px}.field--checkbox input{flex-shrink:0;width:16px;height:16px}.gasto-form__row{grid-column:1/-1;grid-template-columns:1fr;gap:4px 16px;display:grid}@media (width>=480px){.gasto-form__row{grid-template-columns:repeat(2,1fr)}}@media (width>=768px){.gasto-form__row{grid-template-columns:repeat(4,1fr)}}.gasto-form__row--split{flex-wrap:wrap;display:flex}.gasto-form__row--split .field{flex:100%}@media (width>=640px){.gasto-form__row--split .field:first-child{flex:0 0 50%;max-width:50%}.gasto-form__row--split .field--tercio{flex:0 0 16.6667%;max-width:16.6667%}}.form-error{color:var(--color-danger);grid-column:1/-1;margin:0 0 8px;font-size:13px}.gasto-form__actions{grid-column:1/-1;justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.modal__actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.reportes-lista{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:20px;display:grid}.reportes-lista__item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);color:var(--color-text);flex-direction:column;gap:6px;padding:16px;text-decoration:none;display:flex}.reportes-lista__item:hover{border-color:var(--color-primary)}.reportes-lista__item span{color:var(--color-text-muted);font-size:14px}.reporte-filtros{flex-wrap:wrap;align-items:flex-start;gap:16px;margin:16px 0;display:flex}.reporte-filtros__familias{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);flex-wrap:wrap;flex:1;gap:8px 16px;min-width:260px;padding:8px 12px;font-size:14px;display:flex}.reporte-filtros__check{cursor:pointer;align-items:center;gap:6px;display:flex}.reporte-acciones{gap:8px;margin-bottom:12px;display:flex}.reporte-familia{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.reporte-familia__cabecera{background:var(--color-neutral-bg);width:100%;color:var(--color-text);font:inherit;cursor:pointer;text-align:left;border:0;justify-content:space-between;gap:12px;padding:12px 16px;font-weight:700;display:flex}.reporte-familia__cuerpo{padding:8px 16px 12px}.reporte-tabla-wrap{overflow-x:auto}.reporte-tabla{border-collapse:collapse;width:100%;font-size:13px}.reporte-tabla th,.reporte-tabla td{border-bottom:1px solid var(--color-border);white-space:nowrap;text-align:left;padding:6px 8px}.reporte-tabla thead th{color:var(--color-text-muted);font-weight:600}.reporte-tabla thead th:first-child,.reporte-tabla tbody td:first-child{background:var(--color-surface);white-space:normal;min-width:200px;position:sticky;left:0}.reporte-tabla .reporte-tabla__num{text-align:right}.reporte-tabla__total{font-weight:700}.reporte-tabla__sub th{color:var(--color-primary-dark);border-bottom:0;padding-top:12px;font-size:13px}.reporte-tabla__subtotal td{color:var(--color-text-muted);font-style:italic}.reporte-tabla__subtotal-familia td{border-top:2px solid var(--color-border);font-weight:700}.reporte-total{border-radius:var(--radius);background:var(--color-primary);color:#fff;font-weight:700}.reporte-total .reporte-tabla td{background:var(--color-primary);border:0;padding:12px 8px}.reporte-tabla__badge{margin-left:8px;padding:2px 8px;font-size:11px}.reporte-tabla__por-definir{color:var(--color-text-muted);font-style:italic}.reporte-nota{color:var(--color-text-muted);margin:10px 0 0;font-size:13px}.reporte-filtros--pagos-futuros select{min-width:200px}.reporte-tabla--pagos-futuros tbody td:first-child,.reporte-tabla--pagos-futuros thead th:first-child{min-width:0;position:static}@media (width<=600px){.reporte-filtros--pagos-futuros .field{flex:140px}.reporte-filtros--pagos-futuros select{width:100%;min-width:0}.reporte-familia__cuerpo:has(.reporte-tabla--pagos-futuros){padding:4px 8px 12px}.reporte-tabla--pagos-futuros th,.reporte-tabla--pagos-futuros td{padding:6px 4px}.reporte-tabla--pagos-futuros .reporte-tabla__badge{width:fit-content;margin:4px 0 0;display:flex}}
