/* Finance workspace: one period, one ledger, entry forms in native dialogs. */
.f360.finance-v2 { --surface:#131e2e; --line:#8495ad2b; max-width:1280px; border-radius:0; background:transparent; overflow:visible; }
body.light-theme .f360.finance-v2 { --surface:#fff; background:transparent; }
.finance-v2 .f360-header { background:transparent!important; border:0; margin:0; }
.finance-v2 .f360-header .wrap { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; padding:12px 16px 24px; }
.finance-v2 .f360-header .brand { min-width:0; width:auto; }
.finance-v2 .logoGlow { display:none; }
.finance-v2 .logoGlow.personal-finance-logo { display:flex; align-items:center; justify-content:center; width:100px; height:100px; flex:0 0 100px; background:transparent; border:0; box-shadow:none; overflow:visible; }
.finance-v2 .personal-finance-logo img { width:100%; height:100%; object-fit:contain; border-radius:0; }
@media(max-width:700px) { .finance-v2 .logoGlow.personal-finance-logo { width:72px; height:72px; flex-basis:72px; } }
.finance-v2 .f360-header h1 { font-size:30px; letter-spacing:-1px; }
.finance-v2 .f360-header .title p { margin:5px 0 0; }
.finance-v2 .movement-create-actions { display:flex; gap:10px; }
.finance-v2 .btn { border-radius:10px; box-shadow:none; font-size:13px; font-weight:650; min-height:44px; }
.finance-v2 .btn.primary { background:#8be319!important; color:#132509!important; border-color:#8be319!important; }
.finance-v2 .btn.primary:hover { background:#9af02e!important; }
.finance-v2 .movement-create-actions .btn { padding:0 18px; }
.finance-v2 .movement-create-actions span { font-size:20px; margin-right:4px; }
.finance-v2[data-section=p_gastos] .finance-toolbar { display:flex!important; }
.finance-v2 .finance-toolbar { flex-basis:100%; margin:0; }
.finance-v2 .f360-main { padding-top:0; }
.finance-v2 .f360-section-nav { display:flex; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; gap:24px; padding:0; margin-bottom:24px; border-bottom:1px solid var(--line); }
.finance-v2 .f360-section-nav::-webkit-scrollbar { display:none; }
.finance-v2 .f360-section-nav .btn { width:auto; flex-shrink:0; border:0; border-bottom:2px solid transparent!important; border-radius:0; padding:12px 0; background:transparent!important; color:var(--muted); min-height:48px; }
.finance-v2 .f360-section-nav .btn[aria-pressed=true] { color:var(--text)!important; border-bottom-color:#80bd29!important; }
.finance-v2 .f360-main > .card { background:var(--surface); border:1px solid var(--line); border-radius:18px; box-shadow:none; }
.finance-v2 .card .bd { padding:24px; }
.finance-v2 .movement-period-bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:20px; }
.finance-v2 .movement-period-picker { display:flex; align-items:center; gap:5px; }
.finance-v2 .movement-period-extras { display:flex; align-items:center; gap:14px; }
.finance-v2 #viewSelect { width:88px; min-height:40px; height:40px; padding:5px 10px; border:1px solid var(--line); border-radius:8px; font-weight:650; }
.finance-v2 .icon-btn { width:36px!important; min-width:36px!important; padding:0!important; background:transparent!important; border:0; font-size:25px; }
.finance-v2 .movement-date { position:relative; display:flex; align-items:center; justify-content:center; margin:0; min-height:44px; min-width:130px; cursor:pointer; color:var(--text); font-size:14px; font-weight:650; }
.finance-v2 .movement-date span { text-transform:capitalize; }
.finance-v2 #periodDate { position:absolute; inset:0; opacity:0; width:100%; cursor:pointer; }
.finance-v2 .movement-date:focus-within { outline:2px solid #80bd29; border-radius:6px; }
.finance-v2 .today-btn { background:transparent!important; min-height:36px; font-size:12px; border:1px solid var(--line); padding:6px 10px; }
.finance-v2 .summary-toggle { color:var(--muted); padding:4px 6px; min-height:36px; font-size:12px; }
.finance-v2 .f360-daily { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:0 0 28px; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.finance-v2 .f360-daily > div { border:0; border-right:1px solid var(--line); border-radius:0; padding:20px; background:rgba(128,145,165,.035); }
.finance-v2 .f360-daily > div:last-child { border:0; }
.finance-v2 .f360-daily strong { font-size:27px; letter-spacing:-.6px; font-variant-numeric:tabular-nums; }
.finance-v2 .f360-daily span { font-size:12px; }
.finance-v2 .f360-daily .expense strong { color:var(--text); }
.finance-v2 .f360-daily .income strong,.finance-v2 .positive strong { color:#24a879; }
.finance-v2 .compact-summary { display:none; margin:0 0 24px; font-size:12px; line-height:1.8; color:var(--muted); }
.finance-v2.period-summary-collapsed .compact-summary { display:block; }
.finance-v2 .movement-list-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.finance-v2 .movement-list-head h2 { font-size:18px; letter-spacing:-.3px; margin:0 0 5px; }
.finance-v2 .movement-list-head p { font-size:12px; color:var(--muted); margin:0; }
.finance-v2 .movement-filter { display:flex; gap:2px; background:rgba(128,145,165,.09); padding:4px; border-radius:9px; }
.finance-v2 .movement-filter button { border:0; background:transparent; color:var(--muted); border-radius:6px; padding:8px 13px; font:600 12px var(--sans); cursor:pointer; min-height:36px; }
.finance-v2 .movement-filter button[aria-pressed=true] { background:var(--surface); color:var(--text); box-shadow:0 1px 4px #0001; }
.finance-v2 .movement-tools { display:grid; grid-template-columns:1fr 170px; gap:12px; margin-bottom:12px; }
.finance-v2 .movement-tools input,.finance-v2 .movement-tools select { min-height:44px; border:1px solid var(--line); background:transparent; font-size:13px; }
.finance-v2 .movement-item { display:grid; grid-template-columns:40px minmax(0,1fr) auto 36px; align-items:center; gap:14px; padding:18px 0; border-bottom:1px solid var(--line); }
.finance-v2 .movement-item:last-child { border-bottom:0; }
.finance-v2 .movement-direction { display:flex; width:38px; height:38px; border-radius:11px; align-items:center; justify-content:center; font-size:20px; background:#96a3b414; color:var(--muted); }
.finance-v2 .income .movement-direction { color:#24a879; background:#24a87916; }
.finance-v2 .movement-info { display:flex; flex-direction:column; gap:5px; min-width:0; }
.finance-v2 .movement-info strong { font-size:14px; }
.finance-v2 .movement-info span { font-size:12px; color:var(--muted); overflow-wrap:anywhere; line-height:1.5; }
.finance-v2 .movement-amount { font-size:15px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.finance-v2 .income .movement-amount { color:#24a879; }
.finance-v2 .movement-item .action-menu-btn { width:34px; min-width:34px; padding:0; border:0; background:transparent; font-size:22px; }
.finance-v2 .movement-empty { text-align:center; padding:48px 16px; color:var(--muted); }
.finance-v2 .movement-empty > span { display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; background:#96a3b414; border-radius:14px; font-size:24px; margin-bottom:12px; }
.finance-v2 .movement-empty h3 { color:var(--text); font-size:16px; margin:0 0 8px; }
.finance-v2 .movement-empty p { font-size:13px; margin:0; }
.finance-v2 dialog.movement-dialog { width:min(540px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); margin:auto; padding:28px; border:1px solid var(--line); border-radius:20px; background:var(--surface); color:var(--text); box-shadow:0 24px 80px #0004; }
.finance-v2 dialog.movement-dialog::backdrop { background:#07112088; backdrop-filter:blur(4px); }
.finance-v2 .movement-dialog header { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin:0 0 26px; }
.finance-v2 .movement-dialog h2 { font-size:24px; margin:6px 0 0; letter-spacing:-.6px; }
.finance-v2 .entry-eyebrow { font-size:10px; font-weight:700; letter-spacing:1.2px; color:var(--muted); }
.finance-v2 .entry-close { border:0; border-radius:8px; background:#96a3b414; color:var(--muted); width:36px; height:36px; font-size:25px; cursor:pointer; }
.finance-v2 .movement-dialog .row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.finance-v2 .movement-dialog input,.finance-v2 .movement-dialog select { min-height:46px; width:100%; font-size:15px; }
.finance-v2 .movement-dialog #expAmount,.finance-v2 .movement-dialog #incAmount { font-size:20px; }
.finance-v2 .movement-dialog label { font-size:12px; margin-bottom:7px; }
.finance-v2 .movement-dialog footer { display:flex; justify-content:flex-end; gap:10px; padding-top:18px; margin-top:20px; border-top:1px solid var(--line); }
.finance-v2 .entry-error { color:#ed5975; font-size:13px; margin:14px 0 0; }
.finance-v2 .entry-error:empty { display:none; }
.finance-dialog { border-radius:20px; padding:26px; font-family:system-ui,sans-serif; }
.finance-dialog h2 { font-size:23px; margin:0 0 20px; }
.finance-dialog label { font-size:13px; }
.finance-dialog input,.finance-dialog select { min-height:44px; font:inherit; }
.finance-dialog .finance-actions { display:flex; justify-content:flex-end; gap:10px; padding-top:12px; }
.finance-dialog button { min-height:44px; padding:8px 18px; border:1px solid #8495ad45; border-radius:10px; background:transparent; color:inherit; font:600 13px system-ui; cursor:pointer; }
.finance-dialog button[type=submit] { background:#8be319; color:#132509; border-color:#8be319; }
body.light-theme .finance-dialog { background:#fff; color:#0f172a; border-color:#e2e8f0; }
body.light-theme .finance-dialog input,body.light-theme .finance-dialog select { background:#f8fafc; color:#0f172a; border-color:#cbd5e1; }
.finance-v2 [hidden] { display:none!important; }
.finance-v2 .monthly-finance { margin-bottom:20px; }
.finance-v2 #monthlyHeadline { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:22px; background:var(--surface); border:1px solid var(--line); border-radius:14px; }
.finance-v2 .monthly-caption,.finance-v2 #monthlyHeadline small { display:block; color:var(--muted); font-size:12px; }
.finance-v2 .monthly-available { display:block; font-size:32px; letter-spacing:-1px; margin:8px 0; }
.finance-v2 .monthly-available.negative { color:#dc4560; }
.finance-v2 #topKpis { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr))!important; padding:0; margin:10px 0 0; gap:10px; }
.finance-v2.kpis-collapsed #topKpis { display:none!important; }
.finance-v2 #topKpis .dash-card { min-height:0; background:var(--surface); padding:16px; border-radius:12px; }
.finance-v2 #topKpis .dash-card small { min-height:0; }
.finance-v2 #topKpis .dash-card .monthly-detail { display:block; position:static; width:auto; height:auto; transform:none; font-size:11px; line-height:1.5; margin:8px 0 0; color:var(--muted); opacity:1; overflow-wrap:anywhere; }
.finance-v2[data-period=mes] .movement-period-picker .icon-btn,.finance-v2[data-period=mes] .movement-date,.finance-v2[data-period=mes] #quickOverview,.finance-v2[data-period=mes] #compactSummary,.finance-v2[data-period=mes] #togglePeriodSummary { display:none!important; }
.finance-v2 .section-intro h2 { font-size:21px; margin:0 0 8px; }
.finance-v2 .section-intro p,.finance-v2 .budget-plan-tools p { color:var(--muted); font-size:13px; line-height:1.6; margin:0 0 18px; }
.finance-v2 .budget-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--line); border-radius:12px; margin:20px 0 16px; }
.finance-v2 .budget-metrics > div { padding:18px; border-right:1px solid var(--line); }
.finance-v2 .budget-metrics > div:last-child { border:0; }
.finance-v2 .budget-metrics span { display:block; font-size:12px; color:var(--muted); }
.finance-v2 .budget-metrics strong { display:block; font-size:23px; margin-top:8px; }
.finance-v2 #budgetOverview progress { width:100%; height:9px; accent-color:#80bd29; appearance:none; border:0; border-radius:8px; overflow:hidden; }
.finance-v2 #budgetOverview progress::-webkit-progress-bar { background:var(--line); border-radius:8px; }
.finance-v2 #budgetOverview progress::-webkit-progress-value { background:#80bd29; border-radius:8px; }
.finance-v2 #topKpis .dash-card .monthly-detail { background:transparent; padding:0; border-radius:0; inset:auto; }
.finance-v2 #budgetOverview p { font-size:12px; color:var(--muted); }
.finance-v2 .budget-distinction { margin:14px 0 22px; }
.finance-v2 .finance-disclosure { border:1px solid var(--line); border-radius:12px; padding:16px; margin:18px 0; }
.finance-v2 .finance-disclosure summary { font-weight:650; font-size:14px; cursor:pointer; }
.finance-v2 .finance-disclosure[open] summary { margin-bottom:20px; }
.finance-v2 #startSettings > .row { grid-template-columns:1fr; }
.finance-v2 .budget-plan-tools { display:flex; justify-content:space-between; align-items:center; gap:14px; margin:24px 0 14px; }
.finance-v2 .budget-plan-tools h3 { margin:0 0 6px; font-size:17px; }
.finance-v2 .budget-plan-tools p { margin:0; }
.finance-v2 .budget-plan-tools > div:last-child { display:flex; gap:8px; }
.finance-v2 #p_ahorros.active { margin-top:32px; padding-top:24px; border-top:1px solid var(--line); }
.finance-v2 .finance-insights { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }
.finance-v2 .finance-insights article { padding:20px;border:1px solid var(--line);border-radius:12px; }
.finance-v2 .finance-insights h3 { margin:0 0 10px;font-size:15px; }
.finance-v2 .finance-insights p { margin:0;color:var(--muted);font-size:13px;line-height:1.7; }
@media(max-width:700px) {
 .finance-v2 .finance-insights { grid-template-columns:1fr; }
 .finance-v2 #monthlyHeadline { align-items:flex-start; padding:16px; flex-direction:column; }
 .finance-v2 .monthly-available { font-size:28px; }
 .finance-v2 #topKpis { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
 .finance-v2 .budget-metrics > div { padding:12px 8px; }
 .finance-v2 .budget-metrics strong { font-size:clamp(12px,3.5vw,17px); white-space:nowrap; }
 .finance-v2 .budget-plan-tools { flex-direction:column; align-items:stretch; }
 .finance-v2 #p_presupuesto .f360-table-wrap { overflow:visible; }
 .finance-v2 #p_presupuesto table,.finance-v2 #p_presupuesto tbody { display:block; min-width:0!important; width:100%; }
 .finance-v2 #p_presupuesto thead { display:none; }
 .finance-v2 #budgetTbody tr { display:grid; grid-template-columns:1fr 1fr; padding:14px 0; border-bottom:1px solid var(--line); }
 .finance-v2 #budgetTbody td { display:block; min-width:0!important; border:0; padding:8px; }
 .finance-v2 #p_presupuesto #budgetTbody td:nth-child(n) { width:100%!important; max-width:none; white-space:normal; font-size:13px; }
 .finance-v2 #p_presupuesto #budgetTbody input { width:100%!important; max-width:none; }
 .finance-v2 #budgetTbody td:first-child { grid-column:1/-1; font-weight:700; }
 .finance-v2 #budgetTbody td:nth-child(2)::before { content:'Previsto'; }
 .finance-v2 #budgetTbody td:nth-child(3)::before { content:'Gastado'; }
 .finance-v2 #budgetTbody td:nth-child(4)::before { content:'Restante / exceso'; }
 .finance-v2 #budgetTbody td::before { display:block; color:var(--muted); font-size:11px; margin-bottom:5px; }
}
@media(max-width:700px) {
 .finance-v2 .f360-header .wrap { gap:18px; padding:12px 12px 20px; }
 .finance-v2 .f360-header h1 { font-size:26px; }
 .finance-v2 .movement-create-actions { width:100%; }
 .finance-v2 .movement-create-actions .btn { flex:1; padding:8px; }
 .finance-v2 .f360-main { padding:0 10px 16px; }
 .finance-v2 .f360-section-nav { gap:22px; margin-bottom:16px; }
 .finance-v2 .card .bd { padding:16px; }
 .finance-v2 .movement-period-picker { flex-wrap:wrap; gap:3px; }
 .finance-v2 .movement-date { min-width:116px; font-size:12px; }
 .finance-v2 #viewSelect { width:73px; font-size:12px; padding:4px 7px; }
 .finance-v2 .movement-period-bar { gap:4px; margin-bottom:12px; }
 .finance-v2 .movement-period-extras { width:100%; justify-content:space-between; }
 .finance-v2[data-period=mes] .movement-period-bar { flex-wrap:nowrap; justify-content:flex-start; gap:8px; }
 .finance-v2[data-period=mes] .movement-period-extras { width:auto; }
 .finance-v2 .summary-toggle { margin-left:auto; }
 .finance-v2 .f360-daily { margin-bottom:24px; }
 .finance-v2 .f360-daily > div { padding:12px 8px; }
 .finance-v2 .f360-daily strong { font-size:clamp(14px,4vw,20px); letter-spacing:-.4px; }
 .finance-v2 .f360-daily span { font-size:11px; }
 .finance-v2 .movement-list-head { flex-wrap:wrap; gap:14px; }
 .finance-v2 .movement-filter { width:100%; }
 .finance-v2 .movement-filter button { flex:1; min-height:40px; }
 .finance-v2 .movement-tools { grid-template-columns:minmax(0,1fr) 116px; gap:8px; }
 .finance-v2 .movement-tools select,.finance-v2 .movement-tools input { padding:8px; font-size:12px; }
 .finance-v2 .movement-item { grid-template-columns:minmax(0,1fr) auto 28px; gap:8px; padding:16px 0; }
 .finance-v2 .movement-direction { display:none; }
 .finance-v2 .movement-info strong { font-size:13px; }
 .finance-v2 .movement-amount { font-size:13px; }
 .finance-v2 .movement-item .action-menu-btn { width:28px; min-width:28px; }
 .finance-v2 dialog.movement-dialog { padding:22px; }
 .finance-v2 .movement-dialog .row { grid-template-columns:1fr; gap:14px; }
 .finance-v2 .movement-dialog input,.finance-v2 .movement-dialog select { font-size:16px; }
 .finance-v2 .movement-dialog footer .btn { flex:1; }
}
.finance-v2 .saving-plan { padding:12px 14px; border-radius:10px; background:#80bd2914; color:var(--text); font-size:13px; line-height:1.6; }
.finance-v2 #goalDialog label { display:block; margin-top:12px; }
.finance-v2 #openGoal,.finance-v2 #openSaving { margin:16px 0; }
.finance-dialog { position:fixed; inset:0; margin:auto; width:min(520px,calc(100vw - 32px)); height:fit-content; max-height:calc(100dvh - 32px); overflow:auto; box-sizing:border-box; box-shadow:0 24px 80px #0004; }
.finance-dialog label { display:block; margin:14px 0; }
.finance-dialog input,.finance-dialog select { display:block; width:100%; box-sizing:border-box; margin-top:6px; }
.finance-dialog::backdrop { background:#07112088; backdrop-filter:blur(4px); }
@media(max-width:700px) { .finance-dialog input,.finance-dialog select { font-size:16px; } }
.finance-dialog [hidden] { display:none!important; }
.finance-v2 .credit-payment-toggle { display:flex!important; align-items:center; gap:10px; padding:12px; border:1px solid var(--line); border-radius:10px; cursor:pointer; }
.finance-v2 .credit-payment-toggle input { width:20px!important; height:20px; min-height:20px!important; accent-color:#80bd29; }
.credit-card-summary { margin-bottom:24px; padding:20px; border:1px solid #8495ad2b; border-radius:14px; }
.credit-card-summary h2 { font-size:18px; margin:0; }
.card-payment-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid #8495ad2b; font-size:13px; }
.card-payment-row span { overflow-wrap:anywhere; }
.finance-v2 #p_tarjeta .credit-card-summary { border:0; padding:0; margin:0; }
.credit-section-header { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.credit-payment-history { border-top:1px solid #8495ad2b; margin-top:24px; padding-top:20px; }
.credit-payment-history h3 { margin:0 0 16px; font-size:16px; }
@media(max-width:700px) { .credit-section-header { align-items:stretch; flex-direction:column; } .credit-section-header button { width:100%; } }
