/* Fluxo dos próximos 12 meses (web/cashflow.js). Mobile first: one column at 390 px, two from 760 px. */
.cashflow-page{display:grid;gap:1rem;max-width:64rem;min-width:0}
.cashflow-panel{padding:clamp(1rem,3vw,1.6rem);min-width:0}
.cashflow-panel h2{margin:0 0 .5rem;font-size:1.15rem}
.cashflow-panel p{margin:.3rem 0 .6rem;line-height:1.6}
.cashflow-page .muted{color:var(--muted)}
.cashflow-sources,.cashflow-warnings,.cashflow-notes{margin:.4rem 0;padding-left:1.1rem;display:grid;gap:.4rem;line-height:1.55}
.cashflow-warnings li{color:var(--focus)}
.cashflow-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:start}
.cashflow-field{display:grid;gap:.35rem;align-content:start}
.cashflow-field input,.cashflow-extra input,.cashflow-extra select{min-height:48px;width:100%}
.cashflow-field small{color:var(--muted);line-height:1.45}
.cashflow-extras{list-style:none;margin:0 0 .8rem;padding:0;display:grid;gap:.8rem}
.cashflow-extra{display:grid;grid-template-columns:minmax(0,1fr);gap:.6rem;border:1px solid var(--edge);border-radius:18px;padding:.8rem}
.cashflow-extra .field{display:grid;gap:.3rem}
.cashflow-extra .text-button{justify-self:start;min-height:44px}
.cashflow-series{border:0;margin:0;padding:0;min-width:0}
.cashflow-series ul,.cashflow-series-list{list-style:none;margin:0;padding:0}
.cashflow-series li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.7rem;padding:.75rem 0;border-top:1px solid var(--edge)}
.cashflow-series input[type=checkbox]{width:22px;height:22px;margin:.15rem 0 0;accent-color:var(--accent)}
.cashflow-series label{display:grid;gap:.2rem;cursor:pointer;overflow-wrap:anywhere}
.cashflow-series small,.cashflow-series-list small{color:var(--muted);line-height:1.45}
.cashflow-series-list li{display:grid;gap:.2rem;padding:.7rem 0;border-top:1px solid var(--edge);overflow-wrap:anywhere}
.cashflow-series-name{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.cashflow-submit{display:grid;gap:.6rem}
.cashflow-submit .primary{width:100%}
#cashflow-error{color:var(--danger);font-weight:600}
#cashflow-error:empty{display:none}
.cashflow-review{display:grid;grid-template-columns:minmax(0,1fr);gap:.3rem;margin:.6rem 0}
.cashflow-review div{display:flex;justify-content:space-between;gap:1rem}
.cashflow-review dd{margin:0;font-variant-numeric:tabular-nums}
.cashflow-banner p{font-size:1.05rem}

/* Bars: HTML and CSS classes only (the page CSP forbids inline styles). */
.cashflow-chart{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:.4rem}
.cashflow-bar-row{display:grid;grid-template-columns:3.1rem minmax(0,1fr) 6.6rem;align-items:center;gap:.55rem;min-height:2.4rem}
.cashflow-bar-month{font-size:.85rem;color:var(--muted)}
.cashflow-track{display:grid;grid-template-columns:minmax(0,1fr);height:.85rem;border-radius:999px;background:#ffffff0d;overflow:hidden}
.has-negative .cashflow-track{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.cashflow-track>span{display:flex;min-width:0;height:100%}
.cashflow-neg{justify-content:flex-end;border-right:1px solid var(--muted)}
.cashflow-pos{justify-content:flex-start}
.cashflow-bar{display:block;height:100%;border-radius:999px;background:var(--accent)}
.is-tight .cashflow-bar{background:var(--focus)}
.is-negative .cashflow-bar{background:var(--danger)}
.cashflow-bar-value{display:grid;justify-items:end;text-align:right;font-variant-numeric:tabular-nums;font-size:.88rem;line-height:1.25}
.cashflow-bar-value small{font-size:.74rem;color:var(--muted)}
.is-tight .cashflow-bar-value small{color:var(--focus);font-weight:700}
.is-negative .cashflow-bar-value small{color:var(--danger);font-weight:700}
.hide-values .cashflow-track{visibility:hidden}
.cf-w-0{width:0}.cf-w-2{width:2%}.cf-w-5{width:5%}.cf-w-10{width:10%}.cf-w-15{width:15%}.cf-w-20{width:20%}.cf-w-25{width:25%}
.cf-w-30{width:30%}.cf-w-35{width:35%}.cf-w-40{width:40%}.cf-w-45{width:45%}.cf-w-50{width:50%}.cf-w-55{width:55%}.cf-w-60{width:60%}
.cf-w-65{width:65%}.cf-w-70{width:70%}.cf-w-75{width:75%}.cf-w-80{width:80%}.cf-w-85{width:85%}.cf-w-90{width:90%}.cf-w-95{width:95%}
.cf-w-100{width:100%}

/* Table: scrolls sideways on a phone, month column stays visible. */
.cashflow-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px}
.cashflow-table-wrap:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.cashflow-table{width:100%;min-width:47rem;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:.9rem}
.cashflow-calendar{min-width:0}
.cashflow-table th,.cashflow-table td{padding:.6rem .65rem;text-align:right;border-bottom:1px solid var(--edge);white-space:nowrap;vertical-align:top}
.cashflow-table thead th{color:var(--muted);font-weight:600;font-size:.8rem;white-space:normal;vertical-align:bottom}
.cashflow-table th:first-child{text-align:left;position:sticky;left:0;background:var(--surface);z-index:1}
.cashflow-table td:last-child{text-align:left}
.cashflow-calendar td:last-child{text-align:right}
.cashflow-table small{display:block;color:var(--muted);font-size:.74rem;white-space:normal}
.cashflow-table tr.is-tight th[scope=row]{box-shadow:inset 3px 0 0 var(--focus)}
.cashflow-table tr.is-negative th[scope=row]{box-shadow:inset 3px 0 0 var(--danger)}
.cashflow-table tr.is-tight td:last-child{color:var(--focus);font-weight:700}
.cashflow-table tr.is-negative td:last-child{color:var(--danger);font-weight:700}
.cashflow-result .assumptions dl{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;margin:0}
.cashflow-result .assumptions dl div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--edge);padding:.4rem 0}
.cashflow-result .assumptions dd{margin:0;text-align:right}
.cashflow-result details summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}

@media(min-width:760px){
 .cashflow-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cashflow-extra{grid-template-columns:1.3fr 1fr 1.5fr 1fr auto;align-items:end}
 .cashflow-extra .text-button{justify-self:end}
 .cashflow-submit{grid-template-columns:minmax(0,1fr) auto;align-items:center}
 .cashflow-submit .primary{width:auto}
 .cashflow-bar-row{grid-template-columns:4rem minmax(0,1fr) 9rem}
 .cashflow-review{grid-template-columns:repeat(3,minmax(0,1fr))}
 .cashflow-review div{display:grid}
 .cashflow-result .assumptions dl{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}
 .cashflow-table{font-size:.85rem}
 .cashflow-table th,.cashflow-table td{padding:.55rem .5rem}
}
@media(max-width:700px){.cashflow-page{padding-bottom:5rem}}
