@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#17211d;--muted:#77827d;--line:#e8ece9;--green:#18794e;--bg:#f6f8f6;--white:#fff;--red:#bd4141}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}h1,h2,.brand,.metric strong{font-family:Manrope,sans-serif}h1{font-size:30px;letter-spacing:-1px;margin:5px 0}h2{font-size:17px;margin:0 0 6px}p{color:var(--muted);margin:6px 0 0}.layout{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:#fff;border-right:1px solid var(--line);padding:28px 18px;display:flex;flex-direction:column}.brand{font-weight:800;font-size:20px;letter-spacing:-.8px;text-decoration:none;color:var(--green);padding:0 10px 38px;display:block}.brand span{color:var(--ink);font-weight:600;margin-left:5px;font-size:13px;letter-spacing:.7px}.nav-label,.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:700;color:#98a29d}.nav-label{padding:0 10px 13px}.nav-link{display:block;padding:12px 13px;margin:2px 0;border-radius:9px;color:#66736b;text-decoration:none;font-weight:600}.nav-link:hover,.nav-link.active{background:#eaf5ee;color:var(--green)}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:20px 5px 0;display:flex;align-items:center;gap:10px}.user-badge{width:34px;height:34px;border-radius:50%;background:#e3f1e8;color:var(--green);display:grid;place-items:center;font-weight:800}.user-meta{display:flex;flex-direction:column;gap:4px;min-width:0}.user-meta b{font-size:12px;max-width:135px;overflow:hidden;text-overflow:ellipsis}.user-meta small,.metric small,td small{color:var(--muted);font-size:11px}.logout{margin-left:auto;text-decoration:none;color:var(--muted);font-size:20px}.main{margin-left:245px;padding:38px 42px;max-width:1600px}.top{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.metric,.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.metric{display:flex;flex-direction:column;gap:12px;min-height:135px}.metric span{font-size:12px;color:var(--muted);font-weight:600}.metric strong{font-size:23px;letter-spacing:-.7px}.metric small{margin-top:auto}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.panel{margin-bottom:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.panel-head p{font-size:12px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--green);color:#fff;text-decoration:none;padding:11px 16px;border-radius:8px;font:600 13px 'DM Sans',sans-serif;cursor:pointer;white-space:nowrap}.btn:hover{background:#12643f}.btn.secondary{background:#eef2ef;color:#39463e}.full{width:100%;margin-top:18px}.month-filter{display:flex;align-items:center;gap:9px}.month-filter label{font-size:12px;color:var(--muted);font-weight:600}.month-filter input{width:145px}label{display:block;font-size:12px;font-weight:700;margin:0 0 7px;color:#4b5850}input,select,textarea{font:13px 'DM Sans',sans-serif;color:var(--ink);background:#fff;border:1px solid #dfe5e1;border-radius:8px;padding:11px 12px;outline:none;width:100%;min-width:0}input:focus,select:focus,textarea:focus{border-color:#4d9c75;box-shadow:0 0 0 3px #e7f4ec}.month-filter input{padding:9px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;white-space:nowrap}th{text-align:left;color:#8a958e;font-size:10px;letter-spacing:.8px;text-transform:uppercase;font-weight:700;padding:12px;border-bottom:1px solid var(--line)}td{padding:15px 12px;border-bottom:1px solid #f0f2f0;font-size:12px}td b{font-size:12px}td small{display:block;margin-top:4px;max-width:230px;overflow:hidden;text-overflow:ellipsis}.right{text-align:right}.status{display:inline-block;border-radius:20px;padding:5px 9px;font-size:10px;font-weight:700}.status.pago{background:#e9f6ed;color:#19794d}.status.pendente{background:#fff3dc;color:#9b6a0a}.empty{text-align:center;padding:35px 10px;color:var(--muted)}.empty a{color:var(--green)}.footnote{font-size:11px;margin:16px 4px}.form-panel{max-width:900px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.form-grid .wide{grid-column:1/-1}.inline-form{display:grid;grid-template-columns:2fr 1.2fr auto;gap:14px;align-items:end;margin-top:18px}.account-cards{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:22px}.actions{display:flex;gap:12px;align-items:center}.actions a,.link-danger{color:var(--green);font-size:11px;text-decoration:none;background:none;border:0;padding:0;cursor:pointer;font-family:inherit}.actions .link-danger{color:var(--red)}.alert{padding:12px 15px;border-radius:9px;background:#e9f6ed;color:var(--green);margin-bottom:18px;font-size:13px}.alert.error{background:#fff0ef;color:var(--red)}.auth{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 10% 10%,#e4f2e9,transparent 35%),var(--bg)}.auth-card{width:min(100%,420px);background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:0 15px 45px #173b2810}.auth-card .brand{padding:0 0 28px}.auth-card h1{font-size:25px}.auth-card form{margin-top:25px}.auth-card label{margin-top:16px}.auth-card small{display:block;margin-top:20px;color:var(--muted);line-height:1.6}.auth-card small a{color:var(--green)}@media(max-width:1050px){.sidebar{width:205px}.main{margin-left:205px;padding:28px 24px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.sidebar{position:static;width:auto;height:auto;padding:16px;display:block}.sidebar .brand{padding:0 8px 14px}.nav-label,.sidebar-bottom{display:none}.nav-link{display:inline-block;padding:9px}.main{margin:0;padding:22px 14px}.top{align-items:flex-start;flex-direction:column}.top h1{font-size:25px}.cards,.account-cards{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:16px;min-height:120px}.metric strong{font-size:19px}.panel{padding:16px}.panel-head{align-items:flex-start;flex-direction:column}.month-filter{width:100%;flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.inline-form{grid-template-columns:1fr}.auth-card{padding:25px}.table-wrap table{min-width:700px}}

.delete-category{display:flex;align-items:center;gap:10px;min-width:330px}.delete-category select{max-width:260px}.delete-category .link-danger{white-space:nowrap}

/* Dashboard charts and flexible date filters */
.dashboard-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:14px;align-items:end}.dashboard-filter-grid>div{min-width:0}.dashboard-filter-grid [hidden]{display:none!important}.dashboard-filter-grid .btn{width:100%;justify-content:center}.chart-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;margin:18px 0}.chart-legend{display:flex;gap:18px;font-size:13px;color:var(--muted,#64748b);margin:4px 0 16px}.chart-legend span{display:flex;align-items:center;gap:7px}.chart-legend i{display:inline-block;width:10px;height:10px;border-radius:3px}.legend-income{background:#16a34a}.legend-expense{background:#f97316}.monthly-chart{display:flex;align-items:flex-end;gap:clamp(8px,2vw,20px);min-height:205px;padding:8px 4px 0;border-bottom:1px solid var(--border,#e2e8f0);overflow-x:auto}.month-column{display:flex;flex:1;min-width:34px;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px;height:205px}.bar-pair{display:flex;align-items:flex-end;gap:4px;height:165px}.bar{width:clamp(10px,1.4vw,20px);min-height:2px;border-radius:5px 5px 0 0}.income-bar{background:#16a34a}.expense-bar{background:#f97316}.month-column small{font-size:11px;color:var(--muted,#64748b);white-space:nowrap}.category-chart{display:flex;flex-direction:column;gap:17px;padding-top:10px}.category-bar-row{min-width:0}.category-bar-label{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px;margin-bottom:7px}.category-bar-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-bar-label strong{white-space:nowrap}.category-track{height:9px;background:var(--surface-secondary,#eef2f7);border-radius:99px;overflow:hidden}.category-fill{height:100%;background:#6478e8;border-radius:99px}.delete-category{display:flex;align-items:center;gap:10px;min-width:330px}.delete-category select{max-width:260px}.delete-category .link-danger{white-space:nowrap}
@media(max-width:1000px){.dashboard-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid{grid-template-columns:1fr}}
@media(max-width:600px){.dashboard-filter-grid{grid-template-columns:1fr}.monthly-chart{gap:10px}.month-column{min-width:30px}}

/* FinControle feature additions */
@media(max-width:700px){.sidebar{overflow-x:auto;white-space:nowrap}.sidebar .nav-link{font-size:12px}.month-filter input[name="q"]{min-width:180px}}
button:disabled{opacity:.45;cursor:not-allowed}

/* Fluxo de caixa por vencimento */
.cashflow-cards{margin-top:14px}.two-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:22px 0}.two-panels .panel{margin:0;min-width:0}@media(max-width:900px){.two-panels{grid-template-columns:1fr}}

/* Dashboard clarity: icons and automatic financial summary */
.metric-title{display:flex;align-items:center;gap:10px;min-height:30px}.metric-title>span:last-child{font-size:12px;color:var(--muted);font-weight:700;line-height:1.35}.metric-icon{display:inline-grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:10px;font-size:18px;font-weight:800}.income-icon{background:#e7f6ed;color:#18794e}.expense-icon{background:#fff0ee;color:#bd4141}.balance-icon{background:#eaf0ff;color:#425fc7}.pending-icon{background:#fff3dc;color:#9b6a0a}.smart-summary{border:1px solid #dbece1;background:linear-gradient(135deg,#fff 0%,#f7fcf8 100%);margin-top:4px}.smart-summary-head{display:flex;align-items:center;gap:13px}.smart-summary-head h2{margin:0 0 4px}.smart-summary-head p{font-size:12px;line-height:1.5}.ai-mark{width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;border-radius:14px;background:#e3f4e9;color:#18794e;font-size:25px;font-weight:800}.summary-context{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 10px}.summary-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:99px;background:#eef5f0;color:#52645a;font-size:11px;font-weight:700}.summary-list{display:grid;gap:10px;list-style:none;padding:0;margin:16px 0}.summary-list li{position:relative;padding:11px 13px 11px 36px;background:#fff;border:1px solid #e8eee9;border-radius:9px;color:#334139;font-size:13px;line-height:1.55}.summary-list li:before{content:'✓';position:absolute;left:13px;top:11px;color:#18794e;font-weight:800}.summary-disclaimer{font-size:11px;line-height:1.6;border-top:1px solid #e4ece6;padding-top:12px}.metric{gap:12px}.metric-title+strong{margin-top:2px}
@media(max-width:700px){.smart-summary-head{align-items:flex-start}.summary-list li{font-size:12px}.metric-title{align-items:flex-start}.metric-icon{flex-basis:28px;width:28px;height:28px}}

/* Dashboard: separar competência de vencimentos e deixar o resumo legível */
.due-month-filter{display:grid;grid-template-columns:42px minmax(220px,1fr) minmax(150px,190px) minmax(150px,180px) auto;gap:14px;align-items:center;margin-top:20px;padding:16px;background:#f7faf8;border:1px solid #e2ebe5;border-radius:12px}.due-filter-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#e7f6ed;color:#18794e;font-size:23px}.due-filter-copy{display:flex;flex-direction:column;gap:5px}.due-filter-copy strong{font-size:13px}.due-filter-copy small{font-size:11px;line-height:1.5;color:var(--muted)}.due-month-filter label{margin:0 0 5px}.due-month-filter input{width:100%}.summary-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}.summary-block{background:#fff;border:1px solid #e4ebe6;border-radius:13px;padding:18px;min-width:0}.summary-block-title{display:flex;align-items:center;gap:11px;margin-bottom:14px}.summary-block-title>div:last-child{display:flex;flex-direction:column;gap:4px}.summary-block-title strong{font-size:14px}.summary-block-title small{font-size:11px;color:var(--muted);line-height:1.4}.summary-block-icon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:11px;background:#eaf0ff;color:#425fc7;font-size:20px;font-weight:800}.summary-block-icon.due-icon{background:#fff3dc;color:#9b6a0a}.summary-block>p{font-size:12px;line-height:1.65;margin:0 0 12px}.summary-statline{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid #edf1ee;font-size:12px}.summary-statline span{color:#68756d;line-height:1.45}.summary-statline strong{text-align:right;white-space:nowrap}.summary-statline.summary-total{margin-top:3px;border-top:1px solid #dce7df;font-size:13px}.summary-insight{margin-top:12px!important;padding:11px 12px;background:#f2f8f4;border-radius:9px;color:#405b4a!important}.summary-disclaimer{font-size:11px;line-height:1.6;border-top:1px solid #e4ece6;padding-top:13px;margin-top:4px}
@media(max-width:1000px){.due-month-filter{grid-template-columns:42px minmax(0,1fr) minmax(140px,180px)}.due-month-filter .btn{grid-column:3}.summary-columns{grid-template-columns:1fr}}
@media(max-width:650px){.due-month-filter{grid-template-columns:36px minmax(0,1fr)}.due-filter-icon{width:36px;height:36px}.due-month-filter label{grid-column:1/-1}.due-month-filter input,.due-month-filter .btn{grid-column:1/-1}.summary-block{padding:14px}.summary-statline{font-size:11px}}


/* Resumo financeiro: layout reforçado e responsivo (cache-bust 20261019-1945) */
.smart-summary{padding:clamp(20px,3vw,30px);overflow:hidden}
.smart-summary-head{display:flex;align-items:center;gap:15px;margin-bottom:4px}
.smart-summary-head>div:last-child{min-width:0}
.smart-summary-head h2{font-size:21px;line-height:1.3;margin:0 0 5px}
.smart-summary-head p{font-size:13px;line-height:1.6;margin:0;max-width:850px}
.summary-context{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:20px 0 16px;padding-bottom:16px;border-bottom:1px solid #e7eee9}
.summary-chip{gap:7px;padding:8px 12px;font-size:12px}
.summary-updated{margin-left:auto;color:#7a867f;font-size:11px}
.summary-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0 0 18px;align-items:stretch}
.summary-block{display:flex;flex-direction:column;gap:0;background:#fff;border:1px solid #e2eae4;border-radius:15px;padding:22px;min-width:0;box-shadow:0 3px 12px #193b2605}
.summary-block-title{display:flex;align-items:center;gap:12px;margin:0 0 17px}
.summary-block-title>div:last-child{display:flex;flex-direction:column;gap:5px;min-width:0}
.summary-block-title strong{font-size:15px;line-height:1.4;color:#1d2922}
.summary-block-title small{font-size:12px;color:#7a867f;line-height:1.5}
.summary-block-icon{width:42px;height:42px;flex:0 0 42px;border-radius:12px}
.summary-highlight{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 16px;border-radius:12px;margin-bottom:13px}
.summary-highlight span{font-size:12px;font-weight:700}
.summary-highlight strong{font:800 23px Manrope,sans-serif;letter-spacing:-.5px;white-space:nowrap}
.highlight-positive{background:#edf8f0;color:#18794e}.highlight-negative{background:#fff0ee;color:#bd4141}
.summary-statline{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid #edf1ee;font-size:13px}
.summary-statline span{color:#66736b;line-height:1.5;min-width:0}.summary-statline strong{text-align:right;white-space:nowrap;font-size:13px;color:#26332b}
.summary-statline strong.positive{color:#18794e}.summary-statline strong.negative{color:#bd4141}
.summary-explanation{margin:14px 0 0!important;padding:12px 13px;background:#f6f8f6;border-radius:10px;color:#66736b;font-size:12px!important;line-height:1.65!important}
.summary-flow-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:15px 0;border-top:1px solid #edf1ee}
.summary-flow-row>span{display:flex;align-items:center;gap:11px;min-width:0}
.summary-flow-row>span>span:last-child{display:flex;flex-direction:column;gap:4px;min-width:0}
.summary-flow-row b{font-size:13px;color:#26332b}.summary-flow-row small{font-size:11px;line-height:1.5;color:#7a867f}
.summary-flow-row>strong{font:800 19px Manrope,sans-serif;white-space:nowrap}
.flow-symbol{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;font-size:19px;font-weight:800;flex:0 0 36px}
.out-symbol{background:#fff0ee;color:#bd4141}.in-symbol{background:#e7f6ed;color:#18794e}
.summary-projection{display:flex;flex-direction:column;gap:6px;margin-top:13px;padding:16px;border-radius:12px}
.summary-projection>span{font-size:12px;font-weight:700}.summary-projection>strong{font:800 26px Manrope,sans-serif;letter-spacing:-.6px}.summary-projection>small{font-size:11px;line-height:1.5}
.projection-positive{background:#edf8f0;color:#18794e}.projection-negative{background:#fff0ee;color:#bd4141}
.summary-note{display:flex;align-items:flex-start;gap:10px;padding:14px 15px;background:#f6f8f6;border:1px solid #e8eee9;border-radius:11px;color:#647169}
.summary-note>span{font-size:17px;line-height:1.4;flex:0 0 auto}.summary-note p{margin:0;font-size:11px;line-height:1.7;color:#647169}.summary-note strong{color:#39483e}
@media(max-width:900px){.summary-columns{grid-template-columns:1fr}.summary-updated{width:100%;margin-left:0}}
@media(max-width:600px){.smart-summary{padding:17px}.smart-summary-head{align-items:flex-start}.ai-mark{width:38px;height:38px;flex-basis:38px}.smart-summary-head h2{font-size:18px}.summary-block{padding:16px}.summary-highlight strong{font-size:20px}.summary-flow-row>strong{font-size:17px}.summary-statline{font-size:12px}.summary-statline span{max-width:70%}}
