:root {
  --green-950:#082f29;
  --green-900:#0b3d34;
  --green-800:#0f4b3f;
  --green-700:#176454;
  --green-100:#dff1e9;
  --green-50:#eff8f4;
  --gold-600:#c88a16;
  --gold-500:#e0a321;
  --gold-100:#fff1ca;
  --cream:#fff9ec;
  --paper:#fffdf7;
  --ink:#1f2a28;
  --muted:#687572;
  --line:#dce5e1;
  --danger:#b83b3b;
  --danger-bg:#fff0ef;
  --success:#1c7c5d;
  --shadow:0 16px 38px rgba(8,47,41,.09);
  --radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f5f7f5;color:var(--ink);line-height:1.45}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.app-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr;grid-template-rows:auto 1fr;grid-template-areas:"side top" "side main"}
.sidebar{grid-area:side;position:fixed;inset:0 auto 0 0;width:280px;background:linear-gradient(180deg,var(--green-950),var(--green-800));color:#fff;padding:24px 18px;display:flex;flex-direction:column;z-index:30;box-shadow:8px 0 28px rgba(8,47,41,.13)}
.brand{display:flex;gap:13px;align-items:center;padding:5px 8px 26px}
.brand-mark{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,var(--gold-500),#ffd873);color:var(--green-950);display:grid;place-items:center;font-weight:900;font-size:25px;box-shadow:0 10px 24px rgba(224,163,33,.25)}
.brand strong{display:block;font-size:17px}.brand small{display:block;color:#c6ddd5;margin-top:2px}
.main-nav{display:flex;flex-direction:column;gap:6px;overflow-y:auto;padding-right:4px}
.nav-btn{width:100%;border:0;background:transparent;color:#d7e9e3;text-align:left;border-radius:14px;padding:12px 14px;display:flex;gap:12px;align-items:center;font-weight:650}
.nav-btn span{width:24px;text-align:center;font-size:17px;color:#f6cc67}
.nav-btn:hover,.nav-btn.active{background:rgba(255,255,255,.12);color:#fff}
.sidebar-footer{margin-top:auto;padding:18px 8px 0;display:grid;gap:10px}.sidebar-footer small{color:#bcd4cc;text-align:center}
.topbar{grid-area:top;position:sticky;top:0;z-index:20;background:rgba(245,247,245,.92);backdrop-filter:blur(18px);display:flex;align-items:center;gap:16px;padding:20px 34px;border-bottom:1px solid rgba(220,229,225,.9)}
.topbar h1{margin:0;font-size:25px;color:var(--green-950)}.topbar p{margin:3px 0 0;color:var(--muted);font-size:14px}.topbar-actions{margin-left:auto}.menu-btn{display:none}
.content{grid-area:main;padding:30px 34px 100px;max-width:1500px;width:100%}
.view{display:none;animation:fade .2s ease}.view.active{display:block}@keyframes fade{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:none}}
.welcome-card{background:linear-gradient(120deg,var(--green-900),var(--green-700));color:#fff;border-radius:28px;padding:30px 34px;display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:var(--shadow);margin-bottom:24px;overflow:hidden;position:relative}
.welcome-card:after{content:"7";position:absolute;right:180px;top:-45px;font-size:190px;line-height:1;font-weight:900;color:rgba(255,255,255,.05)}
.welcome-card h2{font-size:29px;margin:5px 0 8px}.welcome-card p{margin:0;color:#d8ebe5;max-width:720px}.welcome-card .btn{position:relative;z-index:2;white-space:nowrap}
.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:850;color:var(--gold-600);text-transform:uppercase}.welcome-card .eyebrow{color:#ffd66f}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stats-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:18px}
.stat-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 8px 22px rgba(8,47,41,.05)}.stat-card small{display:block;color:var(--muted);font-weight:650}.stat-card strong{display:block;font-size:25px;margin-top:7px;color:var(--green-950)}.stat-card .trend{font-size:12px;margin-top:6px;color:var(--muted)}.stat-card.danger strong{color:var(--danger)}.stat-card.success strong{color:var(--success)}
.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.page-grid{display:grid;gap:20px}.page-grid.two-col{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr)}.stack-column{display:grid;gap:20px;align-content:start}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 10px 30px rgba(8,47,41,.055)}.card h2,.card h3{color:var(--green-950)}.card h2{margin:7px 0 18px;font-size:25px}.card h3{margin:4px 0 0;font-size:19px}.card p{color:#465652}.card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:18px}.link-btn{border:0;background:transparent;color:var(--green-700);font-weight:800;padding:6px}
.bar-chart{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:end;min-height:170px;padding:18px 10px 8px}.bar-column{display:flex;flex-direction:column;justify-content:flex-end;height:145px;gap:8px;text-align:center}.bar{border-radius:13px 13px 5px 5px;min-height:4px;transition:height .35s}.bar.income{background:linear-gradient(180deg,#42a981,var(--success))}.bar.expense{background:linear-gradient(180deg,#e8b45b,#ca7d21)}.bar-column strong{font-size:13px}.bar-column small{color:var(--muted)}
.insight{background:var(--green-50);border-radius:14px;padding:13px 15px;color:var(--green-900);font-size:14px}.insight.warning{background:var(--danger-bg);color:#833232}
.stack-list{display:grid;gap:10px}.stack-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:#f7faf8;border:1px solid #e7efeb}.stack-item .dot{width:10px;height:10px;border-radius:50%;background:var(--gold-500);flex:0 0 auto}.stack-item strong{font-size:14px}.stack-item small{display:block;color:var(--muted)}.empty-state{text-align:center;padding:30px 18px;color:var(--muted)}.empty-state strong{display:block;color:var(--green-900);font-size:18px;margin-bottom:6px}
.progress-wrap{display:grid;gap:10px}.progress-top{display:flex;justify-content:space-between;gap:12px}.progress{height:11px;border-radius:999px;background:#e7eeeb;overflow:hidden}.progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green-700),#43a982);transition:width .3s}.progress.gold>span{background:linear-gradient(90deg,var(--gold-600),#f1bf4e)}
.check-list{display:grid;gap:10px}.check-list.spacious{gap:13px;margin-top:22px}.check-item{display:flex;gap:11px;align-items:flex-start;padding:11px 12px;border-radius:13px;background:#f8faf8;border:1px solid #e6eee9}.check-item input{width:19px;height:19px;accent-color:var(--green-700);margin-top:1px}.check-item label{cursor:pointer;flex:1}.result-card{background:linear-gradient(150deg,#fffdf7,#eef7f2);min-height:260px}.result-score{font-size:70px;line-height:1;font-weight:900;color:var(--green-800);margin:22px 0 9px}.result-level{display:inline-flex;padding:7px 12px;border-radius:999px;background:var(--gold-100);color:#7f5710;font-weight:800}.result-card .big-number{font-size:42px;font-weight:900;color:var(--green-800);margin:12px 0}.result-card .result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.result-mini{padding:13px;border-radius:14px;background:rgba(255,255,255,.72);border:1px solid var(--line)}.result-mini small{display:block;color:var(--muted)}.result-mini strong{display:block;margin-top:4px}
.section-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}.section-actions.wrap{flex-wrap:wrap}.filter-row{display:flex;gap:10px;flex-wrap:wrap}.filter-row input,.filter-row select{width:auto;min-width:180px}
.btn{border:0;border-radius:13px;padding:11px 17px;font-weight:800;transition:transform .15s,box-shadow .15s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--green-700);color:#fff;box-shadow:0 8px 18px rgba(23,100,84,.16)}.btn-secondary{background:#eef4f1;color:var(--green-900);border:1px solid #d4e2dc}.btn-light{background:#fff;color:var(--green-900)}.btn-gold{background:linear-gradient(135deg,var(--gold-500),#f5c759);color:var(--green-950)}.btn-danger{background:var(--danger-bg);color:var(--danger);border:1px solid #f0c9c6}.btn-block{width:100%}.button-stack{display:grid;gap:10px;margin-top:20px}.file-label{display:block;text-align:center;cursor:pointer}.file-label input{display:none}
.card-list{display:grid;gap:14px}.debt-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:19px;display:grid;grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(120px,.55fr)) auto;gap:16px;align-items:center;box-shadow:0 8px 22px rgba(8,47,41,.045)}.debt-card h3{margin:0;color:var(--green-950)}.debt-card p{margin:4px 0 0;color:var(--muted);font-size:13px}.debt-metric small{display:block;color:var(--muted)}.debt-metric strong{display:block;margin-top:3px}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:850;background:#edf3f0;color:var(--green-800);margin-right:5px}.badge.p1{background:#ffe7e3;color:#973b31}.badge.p2{background:#fff2cc;color:#82600c}.badge.done{background:#dff3e9;color:#176047}.actions{display:flex;gap:6px}.icon-btn{width:38px;height:38px;border:0;border-radius:11px;background:#edf3f0;color:var(--green-900);display:grid;place-items:center;font-size:19px}.icon-btn.danger{color:var(--danger);background:var(--danger-bg)}
.table-card{padding:0;overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}.data-table th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#f4f8f6}.data-table td{font-size:14px}.amount-income{color:var(--success);font-weight:850}.amount-expense{color:#a85d20;font-weight:850}.classification{font-size:11px;border-radius:999px;padding:4px 8px;background:#f0f3f2}.table-scroll{overflow-x:auto}
.task-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.task-column{background:#edf2ef;border-radius:20px;padding:14px;min-height:260px}.task-column h3{margin:4px 3px 13px;color:var(--green-950);font-size:16px}.task-card{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:14px;margin-bottom:10px;box-shadow:0 6px 14px rgba(8,47,41,.05)}.task-card.done{opacity:.68}.task-card.done h4{text-decoration:line-through}.task-card h4{margin:0 0 8px}.task-meta{display:flex;gap:7px;flex-wrap:wrap;color:var(--muted);font-size:12px}.task-actions{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.task-check{width:21px;height:21px;accent-color:var(--green-700)}
.tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:18px}.tab{border:1px solid var(--line);background:var(--paper);color:var(--green-900);border-radius:999px;padding:10px 15px;font-weight:800;white-space:nowrap}.tab.active{background:var(--green-800);color:#fff;border-color:var(--green-800)}.calc-panel{display:none}.calc-panel.active{display:block}.form-card{align-self:start}.form-grid{display:grid;gap:14px}.form-grid label,.standalone-label{display:grid;gap:7px;font-weight:750;color:#31423e}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}input,select,textarea{width:100%;border:1px solid #cad8d2;background:#fff;border-radius:12px;padding:11px 12px;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green-700);box-shadow:0 0 0 3px rgba(23,100,84,.1)}textarea{resize:vertical}.help-text{font-size:12px;color:var(--muted)!important}.plain-list{padding-left:20px;color:#465652}.plain-list li{margin:8px 0}.segmented{display:grid;grid-template-columns:1fr 1fr;border-radius:13px;background:#edf3f0;padding:4px}.segmented label{display:block}.segmented input{display:none}.segmented span{display:block;text-align:center;padding:9px;border-radius:10px;cursor:pointer;font-weight:800}.segmented input:checked+span{background:#fff;color:var(--green-900);box-shadow:0 3px 10px rgba(8,47,41,.08)}.checkbox-line{display:flex!important;align-items:center;gap:9px}.checkbox-line input{width:18px}.modal-form{max-height:70vh;overflow-y:auto;padding-right:3px}
.counter-badge{background:var(--green-100);color:var(--green-800);padding:8px 11px;border-radius:999px}.challenge-list{display:grid;grid-template-columns:1fr 1fr;gap:9px}.challenge-item{display:flex;align-items:flex-start;gap:9px;padding:10px;border-radius:12px;border:1px solid var(--line);background:#fafbf9}.challenge-item input{width:18px;height:18px;accent-color:var(--green-700)}.challenge-item.done span{text-decoration:line-through;color:var(--muted)}.timeline{display:grid;gap:12px;margin:18px 0}.timeline>div{display:grid;grid-template-columns:90px 90px 1fr;gap:10px;padding:12px;border-left:4px solid var(--gold-500);background:#f7faf8;border-radius:0 13px 13px 0}.timeline span{font-weight:800;color:var(--green-800)}.timeline small{color:var(--muted)}
.steps-list{display:grid;gap:14px}.step-card{background:var(--paper);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 8px 22px rgba(8,47,41,.045)}.step-head{display:grid;grid-template-columns:54px 1fr auto;gap:14px;align-items:center;padding:20px}.step-number{width:48px;height:48px;border-radius:15px;background:var(--green-800);color:#fff;display:grid;place-items:center;font-size:21px;font-weight:900}.step-head h3{margin:0;color:var(--green-950)}.step-head p{margin:3px 0 0;color:var(--muted);font-size:13px}.step-toggle{border:0;background:#edf3f0;border-radius:10px;width:38px;height:38px;font-size:19px}.step-body{display:none;padding:0 20px 20px;border-top:1px solid var(--line)}.step-card.open .step-body{display:block}.step-content{padding:18px 0;color:#43534f}.step-checks{display:grid;gap:9px}.step-check{display:flex;gap:10px;align-items:flex-start;padding:10px;border-radius:12px;background:#f7faf8}.step-check input{width:18px;height:18px;accent-color:var(--green-700)}
.modal-backdrop{position:fixed;inset:0;background:rgba(6,30,26,.62);z-index:100;display:grid;place-items:center;padding:18px;backdrop-filter:blur(5px)}.modal{background:var(--paper);border-radius:22px;width:min(650px,100%);max-height:90vh;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.25)}.modal-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0;color:var(--green-950)}#modalBody{padding:20px}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:120;background:var(--green-950);color:#fff;padding:12px 18px;border-radius:12px;box-shadow:var(--shadow);font-weight:750}.toast.error{background:#8d3333}
.mobile-nav{display:none}.mobile-add{width:54px!important;height:54px!important;border-radius:50%!important;background:var(--gold-500)!important;color:var(--green-950)!important;transform:translateY(-13px);box-shadow:0 8px 20px rgba(0,0,0,.18)}
@media(max-width:1100px){.stats-grid,.stats-grid.compact{grid-template-columns:repeat(2,1fr)}.debt-card{grid-template-columns:1fr 1fr 1fr}.debt-card>.actions{grid-column:3}.task-board{grid-template-columns:1fr}.page-grid.two-col{grid-template-columns:1fr}}
@media(max-width:820px){.app-shell{display:block}.sidebar{transform:translateX(-105%);transition:transform .22s}.sidebar.open{transform:none}.topbar{padding:16px 16px 14px}.menu-btn{display:grid}.topbar-actions{display:none}.topbar h1{font-size:20px}.content{padding:18px 14px 100px}.dashboard-grid{grid-template-columns:1fr}.welcome-card{padding:24px;display:block}.welcome-card .btn{margin-top:18px}.welcome-card:after{right:-20px}.mobile-nav{position:fixed;z-index:50;left:0;right:0;bottom:0;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);align-items:center}.mobile-nav-btn{border:0;background:transparent;color:#65736f;border-radius:12px;padding:7px 3px;font-size:11px;display:grid;gap:2px;place-items:center}.mobile-nav-btn span{font-size:20px}.mobile-nav-btn.active{color:var(--green-800);font-weight:850}.debt-card{grid-template-columns:1fr 1fr}.debt-card>div:first-child{grid-column:1/-1}.debt-card>.actions{grid-column:auto}.challenge-list{grid-template-columns:1fr}.timeline>div{grid-template-columns:80px 1fr}.timeline small{grid-column:1/-1}.sidebar-footer{padding-bottom:20px}}
@media(max-width:520px){.stats-grid,.stats-grid.compact{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:14px}.stat-card strong{font-size:19px}.card{padding:18px}.card h2{font-size:21px}.form-row{grid-template-columns:1fr}.result-card .result-grid{grid-template-columns:1fr}.debt-card{grid-template-columns:1fr}.debt-card>.actions{grid-column:1}.data-table th,.data-table td{padding:12px 10px}.step-head{grid-template-columns:45px 1fr auto;padding:15px}.step-number{width:42px;height:42px}.bar-chart{min-height:145px}.welcome-card h2{font-size:24px}.filter-row>*{min-width:0!important;flex:1 1 140px}.section-actions .btn{width:100%}}
@media print{.sidebar,.topbar,.mobile-nav,.section-actions,.btn,.tabs,.modal-backdrop{display:none!important}.app-shell{display:block}.content{padding:0}.view{display:block!important;page-break-after:always}.view:not(#view-dashboard):not(#view-dividas):not(#view-movimentos):not(#view-pendencias){display:none!important}.card,.debt-card{box-shadow:none;break-inside:avoid}.welcome-card{color:#000;background:#fff;border:2px solid #333}.welcome-card p{color:#333}}


/* Versão 0.2 — login e sincronização */
.auth-gate{position:fixed;inset:0;z-index:300;background:linear-gradient(145deg,#082f29,#176454 55%,#d7aa36);display:grid;place-items:center;padding:20px}
.auth-card{width:min(480px,100%);background:rgba(255,255,255,.98);border-radius:26px;padding:30px;box-shadow:0 30px 90px rgba(0,0,0,.32)}
.auth-card h1{margin:8px 0 10px;color:var(--green-950);font-size:28px;line-height:1.15}
.auth-card p{color:var(--muted)}
.auth-brand{display:flex;gap:12px;align-items:center;margin-bottom:24px}.auth-brand strong,.auth-brand small{display:block}.auth-brand small{color:var(--muted);margin-top:2px}
.auth-help{margin:18px 0 0}.auth-card .btn-block{margin-top:10px}
.sync-status{display:flex;align-items:center;gap:8px;margin-top:12px;color:#dce9e5;font-size:12px}.sync-status span{width:9px;height:9px;border-radius:50%;background:#b8c6c1}.sync-status[data-state="syncing"] span{background:#f5c759;animation:pulse 1s infinite}.sync-status[data-state="synced"] span{background:#69d39f}.sync-status[data-state="offline"] span{background:#e8a65a}.sync-status[data-state="error"] span{background:#f28d83}.sync-status strong{font-size:12px}
@keyframes pulse{50%{opacity:.35}}
@media(max-width:520px){.auth-card{padding:24px 20px}.auth-card h1{font-size:24px}}
