@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,500&family=Lora:ital,wght@0,400;0,500;1,400;1,500&display=swap');
  html,body{
  height:100%;
  -webkit-tap-highlight-color:transparent;
}

/* ── Meta filter chips ── */
.ag-filt-btn{
  padding:7px 14px;
  border-radius:20px;
  border:1.5px solid var(--border);
  background:var(--card);
  color:var(--soft);
  font-family:inherit;
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  transition:all 0.15s;
  white-space:nowrap;
  letter-spacing:0.2px;
}
.ag-filt-btn:hover{
  border-color:var(--accent);
  color:var(--accent-d);
  background:var(--accent-l);
}
.ag-filt-active{
  background:var(--accent) !important;
  color:white !important;
  border-color:var(--accent) !important;
  box-shadow:0 2px 8px rgba(0,0,0,0.15);
}
/* ── Dívidas ── */
.div-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:12px;box-shadow:var(--shadow);position:relative;}
.div-card.pendente{border-left:4px solid var(--gold);}
.div-card.ativa{border-left:4px solid var(--accent);}
.div-card.quitada{border-left:4px solid var(--hint);opacity:0.7;}
.div-card-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:4px;}
.div-card-credor{font-size:12px;color:var(--hint);margin-bottom:8px;}
.div-card-valor{font-size:18px;font-weight:800;color:var(--red);}
.div-card-parcelas{font-size:12px;color:var(--soft);margin-top:2px;}
.div-status-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;border-radius:20px;padding:3px 10px;margin-bottom:8px;}
.div-status-badge.pendente{background:var(--accent-l);color:var(--accent-d);border:1px solid var(--accent);}
.div-status-badge.ativa{background:var(--accent-l);color:var(--accent-d);border:1px solid var(--accent);}
.div-status-badge.quitada{background:rgba(160,120,80,0.08);color:var(--hint);border:1px solid rgba(160,120,80,0.2);}
.div-progress-bar{height:5px;background:rgba(160,120,80,0.12);border-radius:99px;overflow:hidden;margin-top:8px;}
.div-progress-fill{height:100%;border-radius:99px;background:var(--accent);transition:width 0.4s;}
.div-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;}
.div-btn{flex:1;padding:8px 10px;border-radius:10px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;border:1px solid;transition:all 0.15s;min-width:80px;text-align:center;}
.div-btn.ativar{background:var(--accent-l);border-color:var(--accent);color:var(--accent-d);}
.div-btn.ativar:hover{background:var(--accent-l);}
.div-btn.pausar{background:var(--accent-l);border-color:var(--accent);color:var(--accent-d);}
.div-btn.pausar:hover{background:var(--accent-l);}
.div-btn.quitar{background:var(--accent-l);border-color:var(--accent);color:var(--accent-d);}
.div-btn.quitar:hover{background:var(--accent-l);}
.div-btn.editar{background:var(--accent-l);border-color:var(--accent);color:var(--accent-d);}
.div-btn.editar:hover{background:var(--accent-l);}
.div-btn.excluir{background:var(--accent-l);border-color:var(--accent);color:var(--accent-d);}
.div-btn.excluir:hover{background:var(--accent-l);}
.fin-tab-active{background:var(--accent)!important;color:white!important;border-color:var(--accent)!important;box-shadow: 0 2px 8px var(--accent-l);}

/* ── Dívidas ── */
.div-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:12px;box-shadow:var(--shadow);position:relative;}
.div-card.pendente{border-left:4px solid var(--gold);}
.div-card.ativa{border-left:4px solid var(--accent);}
.div-card.quitada{border-left:4px solid var(--hint);opacity:0.7;}
.div-card-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:4px;}
.div-card-credor{font-size:12px;color:var(--hint);margin-bottom:8px;}
.div-card-valor{font-size:18px;font-weight:800;color:var(--red);}
.div-card-parcelas{font-size:12px;color:var(--soft);margin-top:2px;}
.div-status-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;border-radius:20px;padding:3px 10px;margin-bottom:8px;}
.div-status-badge.pendente{background:var(--accent-l);color:var(--accent-d);border:1px solid var(--accent);}
.div-status-badge.ativa{background:var(--accent-l);color:var(--accent-d);border:1px solid var(--accent);}
.div-status-badge.quitada{background:rgba(160,120,80,0.08);color:var(--hint);border:1px solid rgba(160,120,80,0.2);}
.div-progress-bar{height:5px;background:rgba(160,120,80,0.12);border-radius:99px;overflow:hidden;margin-top:8px;}
.div-progress-fill{height:100%;border-radius:99px;background:var(--accent);transition:width 0.4s;}
.div-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;}
.div-btn{flex:1;padding:8px 10px;border-radius:10px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;border:1px solid;transition:all 0.15s;min-width:80px;text-align:center;}
.div-btn.ativar{background:var(--accent-l);border-color:var(--accent);color:var(--accent-d);}
.div-btn.ativar:hover{background:var(--accent-l);}
.div-btn.pausar{background:var(--accent-l);border-color:var(--accent);color:var(--accent-d);}
.div-btn.pausar:hover{background:var(--accent-l);}
.div-btn.quitar{background:var(--accent-l);border-color:var(--accent);color:var(--accent-d);}
.div-btn.quitar:hover{background:var(--accent-l);}
.div-btn.editar{background:var(--accent-l);border-color:var(--accent);color:var(--accent-d);}
.div-btn.editar:hover{background:var(--accent-l);}
.div-btn.excluir{background:var(--accent-l);border-color:var(--accent);color:var(--accent-d);}
.div-btn.excluir:hover{background:var(--accent-l);}
.fin-tab-active{background:var(--accent)!important;color:white!important;border-color:var(--accent)!important;box-shadow: 0 2px 8px var(--accent-l);}


/* CORREÇÕES MOBILE - ALINHAMENTO DE FORMULÁRIOS E DATAS */
@media (max-width: 600px) {
  .fm-inp, .form-input, input[type="date"], select {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    display: block !important;
    margin-bottom: 10px !important;
  }
  .form-group, .fin-row, .modal-body {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  /* Ajuste específico para campos de data que podem estar desalinhados */
  input[type="date"] {
    min-height: 45px !important;
    -webkit-appearance: none;
    appearance: none;
    text-align: left !important;
    display: flex !important;
    align-items: center !important;
  }
  /* Garantir que labels fiquem acima dos campos */
  .fm-lbl, .form-label {
    display: block !important;
    margin-bottom: 5px !important;
    text-align: left !important;
    width: 100% !important;
  }
}

*{box-sizing:border-box;margin:0;padding:0}
:root{
  /* Accent (changes per theme) */
  --accent:#6b9a6f;--accent-l:#e6f0e7;--accent-d:#3d5e40;
  --sage:#6b9a6f;--sage-l:#e6f0e7;--sage-d:#3d5e40;
  --blush:#d4876a;--blush-l:var(--accent-l);--blush-d:#a05a3f;
  /* Base */
  --cream:#ffffff;--warm:#f7f7f7;--card:#ffffff;
  --text:#26231e;--soft:#6b6560;--hint:#a09890;
  --border:rgba(38,35,30,0.09);--border2:rgba(38,35,30,0.05);
  --green:#5a9e6a;--green-l:#e8f5ec;--red:#d32f2f;--red-l:#faeaea;
  --gold:#c9963a;--gold-l:#fdf3e0;
  --expense-color:var(--accent-d);
  --shadow:0 2px 16px rgba(38,35,30,0.06);
  --shadow2:0 4px 32px rgba(38,35,30,0.10);
}


/* DARK MODE */
.dark{
  --cream:#141214;--warm:#1e1b1e;--card:#272228;
  --text:#f2f0f5;--soft:#b0aab8;--hint:#7a7285;
  --border:rgba(242,240,245,0.09);--border2:rgba(242,240,245,0.05);
  --shadow:0 2px 16px rgba(0,0,0,0.35);
  --shadow2:0 4px 32px rgba(0,0,0,0.50);
  --green:#7de89a;--green-l:rgba(93,188,122,0.12);
  --red:#f4a0a0;--red-l:rgba(224,112,112,0.12);
  --expense-color:#c8b8d8;
}
/* THEMES */
.theme-sage{--accent:#6b9a6f;--accent-l:#e6f0e7;--accent-d:#3d5e40;--sage:#6b9a6f;--sage-l:#e6f0e7;--sage-d:#3d5e40;}
.theme-blue{--accent:#4a7fc1;--accent-l:#e4edf8;--accent-d:#2a5a9a;--sage:#4a7fc1;--sage-l:#e4edf8;--sage-d:#2a5a9a;}
.theme-rose{--accent:#c16b7a;--accent-l:#f8e4e7;--accent-d:#8a3a48;--sage:#c16b7a;--sage-l:#f8e4e7;--sage-d:#8a3a48;}
.theme-violet{--accent:var(--accent-d);--accent-l:#ede8f8;--accent-d:#4a3a9a;--sage:var(--accent-d);--sage-l:#ede8f8;--sage-d:#4a3a9a;}
.theme-amber{--accent:var(--accent-d);--accent-l:#f8f0d8;--accent-d:#8a6a18;--sage:var(--accent-d);--sage-l:#f8f0d8;--sage-d:#8a6a18;}
.theme-teal{--accent:#3a9a8f;--accent-l:#d8f0ee;--accent-d:#1e6b62;--sage:#3a9a8f;--sage-l:#d8f0ee;--sage-d:#1e6b62;}
.theme-coral{--accent:#e06b52;--accent-l:#fce8e4;--accent-d:#a0402e;--sage:#e06b52;--sage-l:#fce8e4;--sage-d:#a0402e;}
.theme-indigo{--accent:#5b6abf;--accent-l:#e8eaf8;--accent-d:#2e3a8a;--sage:#5b6abf;--sage-l:#e8eaf8;--sage-d:#2e3a8a;}
.theme-mint{--accent:#4aaf84;--accent-l:#d8f4ea;--accent-d:#1e7a54;--sage:#4aaf84;--sage-l:#d8f4ea;--sage-d:#1e7a54;}
.theme-fuchsia{--accent:#b44fbf;--accent-l:#f5e0f8;--accent-d:#6e1a7a;--sage:#b44fbf;--sage-l:#f5e0f8;--sage-d:#6e1a7a;}
.theme-crimson{--accent:#c0304a;--accent-l:#fde4ea;--accent-d:#820020;--sage:#c0304a;--sage-l:#fde4ea;--sage-d:#820020;}
.theme-gold{--accent:#d4a017;--accent-l:#fdf5d0;--accent-d:#8a6000;--sage:#d4a017;--sage-l:#fdf5d0;--sage-d:#8a6000;}
.theme-black{--accent:#444444;--accent-l:#e8e8e8;--accent-d:#111111;--sage:#444444;--sage-l:#e8e8e8;--sage-d:#111111;}
html,body{height:100%;overflow:hidden;font-family:'Nunito','SF Premium Rounded',ui-rounded,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--cream);color:var(--text);font-size:clamp(15.5px,4vw,17px);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;}
/* Force SF Display bold on titles */
h1,h2,h3,.fin-sheet-title,.modal h3,.ph h1{
  font-family:"SF Premium Display","SF Premium Rounded",ui-rounded,-apple-system,BlinkMacSystemFont,'Nunito',sans-serif;
  font-weight:800;
}
/* SF Rounded semibold on UI elements */
button,input,select,textarea,.badge,.grp-lbl,.card-title,.fm-lbl,.e-desc{
  font-family:"SF Premium Rounded","SF Premium Display",ui-rounded,-apple-system,BlinkMacSystemFont,'Nunito',sans-serif;
}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.18)}100%{transform:scale(1)}}

/* AUTH */
#auth-screen{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--cream);overflow:hidden;padding:16px;}
#auth-screen::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 60% at 80% 20%,rgba(107,154,111,0.13) 0%,transparent 60%),radial-gradient(ellipse 50% 50% at 10% 90%,rgba(212,135,106,0.11) 0%,transparent 60%);pointer-events:none;}
.auth-box{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:40px 38px 32px;width:420px;max-width:100%;box-shadow:var(--shadow2);position:relative;z-index:1;animation:fadeUp 0.4s ease;}
.auth-logo{font-family:"SF Premium Display",ui-rounded,-apple-system,'Nunito',sans-serif;font-size:34px;font-weight:400;color:var(--sage-d);letter-spacing:4px;text-transform:uppercase;margin-bottom:4px;text-align:center;display:flex;justify-content:center;}
.logo-roh{font-weight:900!important;}
.auth-tagline{font-size:14px;color:#888;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:28px;text-align:center;font-style:normal;}
.auth-tabs{display:flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:22px;}
.auth-tab{flex:1;padding:9px;text-align:center;cursor:pointer;font-size:13px;color:var(--soft);background:transparent;border:none;font-family:inherit;transition:all 0.2s;}
.auth-tab.active{background:#d18681;color:white;font-weight:500;}
.form-group{margin-bottom:13px;}
.form-label{font-size:13px;color:var(--soft);margin-bottom:5px;display:block;}
.form-input{width:100%;padding:13px 14px;border:1.5px solid rgba(160,120,80,0.25);border-radius:13px;font-family:inherit;font-size:16px;color:var(--text);background:var(--warm);outline:none;box-sizing:border-box;transition:border-color 0.15s,box-shadow 0.15s;box-shadow:0 1px 4px rgba(38,35,30,0.05);}input[type=month].form-input{-webkit-appearance:none;appearance:none;min-width:0;max-width:100%;}
.form-input:focus{border-color:var(--accent);background:var(--warm);}
.form-input::placeholder{color:var(--hint);}
select.form-input{cursor:pointer;}
.btn-primary{width:100%;padding:12px;background:#d18681;color:white;border:none;border-radius:10px;font-family:inherit;font-size:15px;font-weight:500;cursor:pointer;transition:background 0.2s,transform 0.1s;}.auth-box .btn-primary{background:#d18681!important;}.auth-box .btn-primary:hover{background:#a85e5a!important;}
.btn-primary:hover{background:var(--accent-d);}
.btn-primary:active{transform:scale(0.98);}
.auth-msg{font-size:13px;color:var(--red);margin-top:10px;min-height:18px;text-align:center;}
.auth-msg.ok{color:var(--green);}
.auth-form{display:none;}
.auth-form.active{display:block;animation:fadeIn 0.2s ease;}
.auth-link{font-size:13px;color:var(--accent);cursor:pointer;text-align:center;display:block;margin-top:12px;text-decoration:underline;background:none;border:none;font-family:inherit;width:100%;}
.auth-link:hover{color:var(--sage-d);}
.auth-demo{margin-top:16px;padding:11px 14px;background:var(--sage-l);border-radius:10px;font-size:13px;color:var(--sage-d);text-align:center;line-height:1.8;}
#form-recovery{display:none;animation:fadeIn 0.2s ease;}

/* APP */
#app{display:none;height:100vh;height:100dvh;flex-direction:row;overflow:hidden;}
#app.visible{display:flex;}

/* SIDEBAR */
.sidebar{
  width:240px;min-width:240px;
  background:color-mix(in srgb, var(--accent) 30%, var(--accent-l));
  border-right:2px solid var(--accent);
  box-shadow:4px 0 32px rgba(38,35,30,0.13);
  display:flex;flex-direction:column;overflow-y:auto;position:relative;
}
.dark .sidebar{
  background:#1a161c;
  border-right:1px solid rgba(242,240,245,0.08);
  box-shadow:4px 0 32px rgba(0,0,0,0.40);
}
.sidebar::-webkit-scrollbar{width:0;}

.sb-logo{padding:26px 22px 18px;position:relative;}
.sb-logo::after{content:'';position:absolute;bottom:0;left:18px;right:18px;height:1.5px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:0.5;}
.sb-logo-text{font-family:"SF Premium Display",ui-rounded,-apple-system,'Nunito',sans-serif;font-size:20px;font-weight:200;color:var(--accent-d);letter-spacing:6px;text-transform:uppercase;}
.sb-logo-sub{font-size:15px;color:var(--soft);letter-spacing:2px;text-transform:none;margin-top:4px;font-weight:600;font-style:normal;opacity:1;}
.dark .sb-logo-sub{color:#f2f0f5!important;}

.sb-user{
  display:flex;align-items:center;gap:12px;
  padding:13px 15px;margin:10px 12px 4px;
  background:linear-gradient(135deg,var(--accent-l),rgba(255,255,255,0.6));
  border-radius:16px;border:1px solid rgba(255,255,255,0.9);
  box-shadow:0 2px 14px rgba(38,35,30,0.07),inset 0 1px 0 rgba(255,255,255,0.8);
  cursor:pointer;transition:all 0.2s;
}
.sb-user:hover{transform:translateY(-1px);box-shadow:0 4px 20px rgba(38,35,30,0.12);}
.sb-user-active{
  background:linear-gradient(135deg,var(--accent-l),rgba(255,255,255,0.7))!important;
  box-shadow:0 4px 20px rgba(38,35,30,0.14),inset 0 1px 0 rgba(255,255,255,0.9)!important;
  border-color:rgba(255,255,255,1)!important;
  outline:2px solid var(--accent);outline-offset:1px;
}
.dark .sb-user{background:linear-gradient(135deg,rgba(255,255,255,0.08),rgba(255,255,255,0.03));border:1px solid rgba(255,255,255,0.1);}
.dark .sb-user-active{background:linear-gradient(135deg,rgba(107,154,111,0.22),rgba(107,154,111,0.10))!important;border-color:rgba(107,154,111,0.4)!important;box-shadow:0 4px 20px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.05)!important;outline:2px solid var(--accent);outline-offset:1px;}
.dark .sb-user-active .sb-username{color:#f2f0f5!important;}
.dark .sb-user-active .sb-greet{color:#b0aab8!important;}
.dark .sb-username{color:#f2f0f5!important;}
.dark .sb-greet{color:#b0aab8!important;}
/* Dark mode: profile page */
.dark .profile-banner{background:linear-gradient(135deg,rgba(107,154,111,0.25) 0%,rgba(61,94,64,0.2) 100%)!important;}
.dark .profile-name-big{color:#f2f0f5!important;}
.dark .profile-email-sm{color:#b0aab8!important;}
.dark .profile-joined-sm{color:#7a7285!important;}
/* Premium features box */
.premium-features-box{background:var(--accent-l);}
.premium-feat-check{color:var(--accent-d);}
.premium-feat-text{color:var(--text);}
.dark .premium-features-box{background:rgba(107,154,111,0.1)!important;border-color:rgba(107,154,111,0.3)!important;}
.dark .premium-feat-check{color:#7de89a!important;}
.dark .premium-feat-text{color:#f2f0f5!important;}
.dark .premium-features-box div[style]{color:#7de89a!important;}
/* Dark mode: income amounts use light green, expense use light accent */
/* Dark mode: all financial amounts always white/light */
.dark .e-amount{color:#f2f0f5!important;opacity:1!important;}

.sb-avatar{
  width:40px;height:40px;border-radius:50%;
  background:linear-gradient(135deg,var(--accent),var(--accent-d));
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:800;color:white;
  flex-shrink:0;overflow:hidden;
  box-shadow:0 2px 10px rgba(38,35,30,0.20);
}
.sb-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.sb-username{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px;letter-spacing:-0.2px;}
.sb-greet{font-size:12.5px;color:var(--soft);margin-top:1px;}

.sb-nav{flex:1;padding:8px 0 10px;}
.sb-section{font-size:10.5px;letter-spacing:2.8px;text-transform:uppercase;color:var(--hint);padding:16px 22px 5px;font-weight:800;}
.sb-item{
  display:flex;align-items:center;gap:12px;
  padding:10px 14px;margin:4px 12px;
  cursor:pointer;color:var(--soft);font-size:16px;font-weight:600;
  border-radius:14px;transition:all 0.18s;
  user-select:none;-webkit-tap-highlight-color:transparent;
}
.sb-item:hover{background:rgba(38,35,30,0.05);color:var(--text);transform:translateX(2px);}
.sb-item.active{
  background:linear-gradient(135deg,var(--accent-l),rgba(255,255,255,0.5));
  color:var(--accent-d);font-weight:700;
  box-shadow:0 2px 10px rgba(38,35,30,0.08);
  border:1px solid rgba(255,255,255,0.9);
}
.dark .sb-item:hover{background:rgba(255,255,255,0.07);}
.dark .sb-item.active{background:rgba(255,255,255,0.10);border:1px solid rgba(255,255,255,0.12);}

.sb-icon{
  font-size:15px;width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  border-radius:10px;flex-shrink:0;
  box-shadow:0 1px 5px rgba(38,35,30,0.10);
  transition:all 0.18s;
}
.sb-item .sb-icon {
  background: var(--accent-l) !important;
  color: var(--accent-d) !important;
}
.sb-item.active .sb-icon {
  background: var(--accent-d) !important;
  color: white !important;
  transform:scale(1.10);
  box-shadow:0 2px 10px rgba(38,35,30,0.15);
}
.sb-item .sb-icon svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
}
.sb-item:hover .sb-icon{transform:scale(1.05);}

.sb-footer{padding:12px 14px 22px;border-top:1px solid var(--border);}
.logout-btn{
  display:flex;align-items:center;gap:10px;cursor:pointer;
  font-size:13.5px;color:var(--soft);background:none;border:none;
  font-family:inherit;padding:9px 12px;border-radius:10px;
  transition:all 0.18s;width:100%;font-weight:650;letter-spacing:0.1px;
}
.logout-btn .sb-btn-icon{
  display:flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:8px;
  background:var(--border2);flex-shrink:0;
  transition:all 0.18s;
}
.logout-btn:hover{color:var(--accent-d);background:var(--accent-l);}
.logout-btn:hover .sb-btn-icon{background:rgba(107,154,111,0.18);}
.logout-btn.danger:hover{color:var(--red);background:rgba(192,80,74,0.07);}
.logout-btn.danger:hover .sb-btn-icon{background:rgba(192,80,74,0.10);}

/* MAIN */
.main{flex:1;overflow-y:auto;overflow-x:hidden;background:var(--cream);-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.main::-webkit-scrollbar{width:0;display:none;}
.main::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
.page{display:none;padding:clamp(16px,3vw,36px) clamp(14px,3.5vw,40px);min-height:100%;overflow-x:hidden;}
.page.active{display:block;animation:fadeIn 0.22s ease;}
.ph{margin-bottom:22px;}
.ph h1{font-family:"SF Premium Display","SF Premium Rounded",ui-rounded,-apple-system,BlinkMacSystemFont,'Nunito',sans-serif;font-size:clamp(22px,2.5vw,32px);font-weight:600;letter-spacing:-0.5px;color:var(--text);}
.ph p{font-family:"SF Premium Rounded",ui-rounded,-apple-system,BlinkMacSystemFont,'Nunito',sans-serif;font-style:normal;font-size:14px;color:var(--hint);margin-top:4px;font-weight:500;}
#page-dashboard .ph h1{font-family:"SF Premium Display","SF Premium Rounded",ui-rounded,-apple-system,BlinkMacSystemFont,'Nunito',sans-serif;font-weight:600;letter-spacing:-0.5px;}
#page-dashboard .ph p{font-family:"SF Premium Rounded",ui-rounded,-apple-system,BlinkMacSystemFont,'Nunito',sans-serif;font-style:normal;font-weight:500;}

/* CARDS / LAYOUT */
.card{background:#ffffff;border:1px solid rgba(38,35,30,0.10);border-radius:16px;padding:20px 22px;box-shadow:0 2px 16px rgba(38,35,30,0.08);}
.dark .card{background:var(--card);border-color:var(--border);box-shadow:var(--shadow);}
.dark .form-input,.dark .fm-inp,.dark input,.dark select,.dark textarea{background:rgba(255,255,255,0.08)!important;color:#f2f0f5!important;border-color:rgba(255,255,255,0.15)!important;color-scheme:dark;}
.dark .form-input::placeholder,.dark .fm-inp::placeholder,.dark input::placeholder,.dark textarea::placeholder{color:rgba(242,240,245,0.35)!important;}
.dark .form-label,.dark .fm-lbl{color:#b0aab8!important;}
.dark option{background:#27222a;color:#f2f0f5;}
.dark .modal-overlay>.card,.dark .modal-overlay [class*="sheet"],.dark #fin-modal-overlay .card,.dark #fin-modal-overlay [style*="background:white"],.dark [id$="-overlay"] [style*="background:white"],.dark [id$="-overlay"] [style*="background:#fff"]{background:var(--card)!important;color:var(--text)!important;}
.dark .fin-sheet-body,.dark #fin-sheet-body,.dark .catmgr-sheet,.dark .resp-modal-body,.dark #resp-modal-body{background:var(--card);color:var(--text);}
.dark .fm-save-btn{color:white!important;}
.dark .fm-cat-btn,.dark .fm-cat-sub-btn{background:rgba(255,255,255,0.06)!important;color:var(--text)!important;border-color:rgba(255,255,255,0.1)!important;}
.dark .fm-cat-btn.on-green,.dark .fm-cat-btn.on-brown,.dark .fm-cat-sub-btn.on-green,.dark .fm-cat-sub-btn.on-brown{background:rgba(107,154,111,0.25)!important;color:#f2f0f5!important;}
.dark .fm-cat-lbl{color:var(--text)!important;}
.dark .e-row{background:var(--card);}
.dark .e-desc{color:var(--text)!important;}
.dark .e-meta,.dark .e-cat{color:var(--soft)!important;}
.dark .goal-card{background:var(--card)!important;}
.dark .goal-title{color:var(--text)!important;}
.dark .goal-desc{color:var(--soft)!important;}
.dark .catmgr-cat-row{background:var(--card)!important;color:var(--text)!important;}
.dark .catmgr-cat-name{color:var(--text)!important;}
.dark .catmgr-add-inp{background:rgba(255,255,255,0.08)!important;color:#f2f0f5!important;border-color:rgba(255,255,255,0.15)!important;}
.dark .catmgr-add-inp::placeholder{color:rgba(242,240,245,0.3)!important;}
.dark .fin-tab-btn{background:rgba(255,255,255,0.06)!important;color:var(--soft)!important;border-color:rgba(255,255,255,0.1)!important;}
.dark .fin-tab-btn.fin-tab-green,.dark .fin-tab-btn.fin-tab-brown{color:#f2f0f5!important;}
.dark .month-nav{background:var(--card)!important;border-color:var(--border)!important;}
.dark .month-label{color:var(--text)!important;}
.dark .month-nav-btn,.dark .month-today-btn{color:var(--soft)!important;}
.dark .fin-sum-card{color:var(--text)!important;}
.dark .fin-sum-total{color:var(--text)!important;}
.dark .fin-sum-row-lbl{color:var(--soft)!important;}
.dark .resp-card-wrap,.dark #resp-list .card{background:var(--card)!important;}
@media(max-width:600px){#resp-list{grid-template-columns:1fr!important;}}
.dark .fin-cat-toggle-btn{background:rgba(255,255,255,0.06)!important;border-color:rgba(255,255,255,0.15)!important;color:var(--soft)!important;}
.dark .type-pick-btn{background:var(--card)!important;color:var(--text)!important;border-color:rgba(255,255,255,0.1)!important;}
.dark .pm-badge{background:rgba(255,255,255,0.08)!important;color:var(--soft)!important;}
.dark .setting-row{border-color:var(--border)!important;}
.dark .setting-lbl{color:var(--text)!important;}
.dark .setting-sub{color:var(--hint)!important;}
.card-title{font-size:12.5px;letter-spacing:1.6px;text-transform:uppercase;color:#4a4540;margin-bottom:14px;font-weight:700;}
.dark .card-title{color:var(--hint);}
.dark .ag-filt-btn{background:var(--card);color:var(--soft);border-color:var(--border);}
.dark .ag-filt-btn:hover{background:var(--accent-d);color:white;border-color:var(--accent);}
.dark .div-status-badge.pendente, .dark .div-status-badge.ativa, .dark .div-btn.ativar, .dark .div-btn.pausar, .dark .div-btn.quitar, .dark .div-btn.editar, .dark .div-btn.excluir{background:rgba(255,255,255,0.05);color:var(--text);border-color:var(--border);}
.dark .div-btn:hover{background:var(--accent-d);color:white;border-color:var(--accent);}
.dark .mood-btn{background:var(--warm);border-color:var(--border);color:var(--text);}
.dark .mood-btn.sel{background:var(--accent-d);border-color:var(--accent);color:white;}
.dark .int-check{background:var(--warm);border-color:var(--border);}
.dark .int-check.done{background:var(--accent);border-color:var(--accent);}
.dark .add-input{background:var(--warm);color:var(--text);border-color:var(--border);}
.dark .je-cancel{color:var(--soft);border-color:var(--border);}
/* Dark mode: dashboard finance card rows */
.dark .dash-fin-inc{background:rgba(93,188,122,0.12)!important;border-color:#5dbc7a!important;}
.dark .dash-fin-exp{background:rgba(224,112,112,0.12)!important;border-color:#e07070!important;}
.dark .dash-fin-pos{background:rgba(107,154,111,0.12)!important;border-color:var(--accent)!important;}
.dark .dash-fin-neg{background:rgba(224,112,112,0.12)!important;border-color:#e07070!important;}
.dark .dash-fin-lbl{color:var(--text)!important;}
.dark .dash-fin-val.green{color:#7de89a!important;}
.dark .dash-fin-val.red{color:#f4a0a0!important;}
/* Dark mode: fin tab buttons Receitas/Despesas */
.dark .fin-tab-btn.fin-tab-green{background:linear-gradient(180deg,#4caf50 0%,#2e7d32 100%)!important;border-color:#1b5e20!important;color:#e8f5e9!important;box-shadow:0 4px 0 #1b5e20,0 5px 6px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.2)!important;}
.dark .fin-tab-btn.fin-tab-brown{background:linear-gradient(180deg,#ef5350 0%,#b71c1c 100%)!important;border-color:#7f0000!important;color:#ffebee!important;box-shadow:0 4px 0 #7f0000,0 5px 6px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.15)!important;}
/* Dark mode: financial records e-amount visibility */
.dark .e-row{opacity:1!important;}
/* Dark mode: App & Atualizações card */
.dark #pwa-status-card{background:rgba(107,154,111,0.12)!important;border-color:rgba(107,154,111,0.3)!important;}
.dark #pwa-status-card [style*="color:var(--text)"]{color:var(--text)!important;}
.dark #pwa-install-card{background:rgba(107,154,111,0.12)!important;border-color:rgba(107,154,111,0.3)!important;}
.dark #pwa-install-card [style*="color:var(--accent-d)"]{color:var(--soft)!important;}
.dark #pwa-update-status{color:var(--soft)!important;}
/* Dark mode: Premium features list background */
.dark #premium-page-body [style*="background:linear-gradient(135deg,var(--accent-l)"]{background:rgba(107,154,111,0.15)!important;}
.dark #premium-page-body [style*="background:linear-gradient(160deg,var(--accent-l)"]{background:rgba(107,154,111,0.15)!important;}
.dark #premium-page-body [style*="color:var(--text)"]{color:var(--text)!important;}
.dark .btn-sec{color:var(--soft);border-color:var(--border);}
.dark .fin-cal-day-grid{background:transparent;}
.dark .fin-cal-cell.has-items{background:rgba(255,255,255,0.03);}
.dark .fin-cal-cell:hover{background:rgba(255,255,255,0.08);}
.dark .fin-dd-trigger{background:var(--card);color:var(--text);border:1px solid var(--border);}
.dark .fin-dd-item:hover{background:var(--warm)!important;}
.dark .sb-logo-text{color:var(--accent)!important;}
.dark .sb-logo-sub{color:#f2f0f5!important;}
.dark .empty-state, .dark .empty-state p{color:var(--hint)!important;}
/* Observação Geral para Modo Escuro: 
   Sempre utilize variáveis CSS (--text, --soft, --card, --border) em vez de cores fixas (white, #fff, #26231e) 
   para garantir que novos elementos herdem corretamente os estilos do tema. */
.dark [style*="background:white"], .dark [style*="background:#fff"], .dark [style*="background: white"] { background: var(--card) !important; color: var(--text) !important; }
.dark [style*="color:#26231e"], .dark [style*="color: #26231e"], .dark [style*="color:#2a2620"] { color: var(--text) !important; }
.dark [style*="color:#888"], .dark [style*="color: #888"] { color: var(--soft) !important; }
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
/* Dashboard desktop — categorias em 2 colunas */
@media(min-width:901px){.dash-cats-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;}.dash-chart-wrap{min-height:240px!important;}#dash-chart-bars{flex:1;}}
.dash-kpi-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.dash-kpi-meta{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;}
.dash-kpi-lbl{font-size:12.5px;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;opacity:0.7;}
.dash-kpi-val{font-size:18px;font-weight:800;letter-spacing:-0.5px;line-height:1.1;}
.dash-kpi-sub{font-size:11px;opacity:0.65;margin-top:1px;}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.mb16{margin-bottom:16px;}
.mb12{margin-bottom:12px;}
.sep{height:1px;background:var(--border2);margin:13px 0;}
.add-row{display:flex;gap:8px;margin-top:12px;}
.add-input{flex:1;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:white;font-family:inherit;font-size:14.5px;color:var(--text);outline:none;transition:border-color 0.2s;}
.add-input:focus{border-color:var(--accent);background:var(--warm);}
.add-input::placeholder{color:var(--hint);}
.add-btn{padding:10px 18px;background:var(--accent);color:white;border:none;border-radius:9px;font-family:inherit;font-size:14.5px;cursor:pointer;transition:background 0.15s;white-space:nowrap;}
.add-btn:hover{background:var(--accent-d);}
.empty-state{text-align:center;padding:44px 20px;color:#7a7268;}
.empty-state .es-icon{font-size:34px;margin-bottom:10px;opacity:0.65;}
.empty-state p{font-family:'Lora',serif;font-style:italic;font-size:13.5px;line-height:1.6;color:#6b6358;}
.dark .empty-state{color:var(--hint);}
.dark .empty-state p{color:var(--hint);}

/* QUOTE */
.quote-card{background:var(--sage-l);border:1px solid rgba(107,154,111,0.18);border-radius:14px;padding:18px 24px;margin-bottom:20px;position:relative;overflow:hidden;box-shadow:0 2px 12px rgba(38,35,30,0.07);}
.quote-card::before{content:'"';font-family:'Lora',serif;font-size:80px;color:rgba(107,154,111,0.14);position:absolute;top:-14px;left:10px;line-height:1;}
.quote-text{font-family:'Lora',serif;font-style:italic;font-size:14px;color:var(--sage-d);line-height:1.75;padding-left:10px;position:relative;z-index:1;}
.quote-author{font-family:'Lora',serif;font-style:italic;font-size:13px;color:var(--accent);margin-top:5px;padding-left:10px;}

/* DATE BAR */
.date-bar{display:flex;align-items:center;justify-content:space-between;background:#ffffff;border:1px solid rgba(38,35,30,0.14);border-radius:12px;padding:12px 18px;margin-bottom:20px;box-shadow:0 2px 18px rgba(38,35,30,0.09);}
.dark .date-bar{background:var(--card);border-color:var(--border);}
.date-main{font-family:'Lora',serif;font-size:17px;font-weight:500;}
.date-sub{font-size:13px;color:#6b6358;margin-top:2px;font-weight:500;}
.dark .date-sub{color:var(--hint);}
.mood-row{display:flex;align-items:center;gap:6px;}
.mood-lbl{font-size:13px;color:var(--hint);margin-right:2px;}
.mood-btn{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--border);background:white;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;transition:all 0.15s;-webkit-tap-highlight-color:transparent;}
.mood-btn:hover{border-color:var(--accent);transform:scale(1.12);}
.mood-btn.sel{border-color:var(--accent);background:var(--accent-l);animation:pop 0.25s ease;}

/* INTENTIONS */
.int-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--border2);}
.int-item:last-child{border-bottom:none;}
.int-check{width:20px;height:20px;min-width:20px;border-radius:50%;border:1.5px solid var(--border);cursor:pointer;background:white;display:flex;align-items:center;justify-content:center;font-size:12.5px;color:white;transition:all 0.2s;margin-top:1px;}
.int-check.done{background:var(--accent);border-color:var(--accent);}
.int-txt{font-size:15px;line-height:1.5;flex:1;}
.int-txt.done{color:var(--hint);text-decoration:line-through;}
.int-del{background:none;border:none;color:var(--hint);cursor:pointer;font-size:16px;padding:0 3px;line-height:1;opacity:0;transition:opacity 0.15s;}
.int-item:hover .int-del{opacity:1;}
.int-del:hover{color:var(--red);}

/* BADGES */
.badge{font-size:11.5px;letter-spacing:1px;text-transform:uppercase;padding:3px 9px;border-radius:20px;font-weight:500;display:inline-block;white-space:nowrap;}
.vida{background:var(--accent-l);color:var(--accent-d);}
.saude{background:var(--sage-l);color:var(--sage-d);}
.trab{background:#e8edf6;color:#3a5080;}
.pessoal{background:#f0ebf8;color:#6e4d9e;}
.mente{background:var(--gold-l);color:#8a6520;}
.social{background:var(--green-l);color:#2e6645;}
.corpo{background:#fde8f0;color:#8a2060;}
.outro{background:#f0f0f0;color:#555;}

/* GOALS */
.goal-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px 20px;margin-bottom:0;box-shadow:var(--shadow);}
.goal-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px;gap:10px;}
.goal-title{font-size:15.5px;font-weight:500;}
.goal-desc{font-size:13.5px;color:var(--soft);margin-top:3px;line-height:1.5;}
.goal-del{background:none;border:none;color:var(--hint);cursor:pointer;font-size:14px;padding:2px 4px;opacity:0;transition:opacity 0.15s;flex-shrink:0;}
.goal-card:hover .goal-del{opacity:1;}.goal-title{font-size:14px;font-weight:700;color:var(--text);line-height:1.3;word-break:break-word;}.goal-header{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px;}
.goal-del:hover{color:var(--red);}
.progress-bar{height:12px;background:var(--border);border-radius:6px;overflow:hidden;}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-d));border-radius:3px;transition:width 0.5s ease;}
.progress-fill.red{background:linear-gradient(90deg,#e07070,var(--red));}
.progress-fill.gold{background:linear-gradient(90deg,#e5b84a,var(--gold));}

/* JOURNAL */
.journal-entry{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:17px 20px;margin-bottom:12px;box-shadow:var(--shadow);cursor:pointer;transition:border-color 0.2s;}
.journal-entry:hover{border-color:var(--accent);}
.je-date{font-size:12.5px;color:var(--hint);margin-bottom:5px;}
.je-title{font-family:'Lora',serif;font-size:16px;margin-bottom:4px;}
.je-preview{font-size:13.5px;color:var(--soft);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.journal-editor{background:var(--card);border:1px solid var(--accent);border-radius:14px;padding:20px;margin-bottom:13px;box-shadow:var(--shadow);}
.je-input-title{width:100%;font-family:'Lora',serif;font-size:17px;border:none;background:transparent;color:var(--text);outline:none;margin-bottom:11px;}
.je-input-title::placeholder{color:var(--hint);}
.je-textarea{width:100%;min-height:110px;font-family:inherit;font-size:13.5px;border:none;background:transparent;color:var(--text);outline:none;resize:none;line-height:1.7;}
.je-textarea::placeholder{color:var(--hint);}
.je-actions{display:flex;justify-content:space-between;align-items:center;margin-top:11px;padding-top:11px;border-top:1px solid var(--border2);}
.je-mood-row{display:flex;gap:6px;align-items:center;}
.je-save{padding:8px 18px;background:var(--accent);color:white;border:none;border-radius:8px;font-family:inherit;font-size:13px;cursor:pointer;transition:background 0.15s;}
.je-save:hover{background:var(--sage-d);}
.je-cancel{padding:8px 13px;background:transparent;color:var(--soft);border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:13px;cursor:pointer;}

/* STAT */
.stat-box{background:#ffffff;border:1px solid rgba(38,35,30,0.10);border-radius:18px;padding:18px 16px;box-shadow:0 2px 16px rgba(38,35,30,0.07);}
.dark .stat-box{background:var(--card);border-color:var(--border);}
.stat-num{font-size:28px;font-weight:800;letter-spacing:-0.5px;line-height:1;}
.stat-label{font-size:13px;color:#6b6358;margin-top:3px;font-weight:500;}
.dark .stat-label{color:var(--hint);}

/* FINANCES */
.fin-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;}
.fin-sum-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:6px 0 0;}
.fin-item{background:#ffffff;border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:16px;padding:16px 16px 14px;box-shadow:0 2px 12px rgba(38,35,30,0.06);transition:none;}
.fin-item:last-child{border-right:1px solid var(--border);}
.dark .fin-summary{background:transparent;}
.dark .fin-item{background:var(--card);border-color:var(--border);border-top-color:var(--accent);}
.fin-item:last-child{border-right:1px solid var(--border);}
.fin-item-label{font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;color:var(--hint);margin-bottom:8px;font-weight:800;}
.fin-item-value{font-family:inherit;font-size:17px;font-weight:800;line-height:1.1;letter-spacing:-0.5px;}
.fin-item-value.green{color:var(--green);}
.fin-item-value.red{color:var(--red);}
.fin-item-value.balanced{color:var(--sage-d);}
.fin-item-sub{font-size:11.5px;color:var(--hint);margin-top:6px;font-weight:500;}
.fin-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(38,35,30,0.07);}
.fin-row:last-child{border-bottom:none;}
.fin-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.fin-dot.r{background:var(--green);}
.fin-dot.d{background:var(--red);}
.fin-info{flex:1;min-width:0;}
.fin-name{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#26231e;font-weight:500;}
.fin-meta{font-size:12.5px;color:#6b6358;margin-top:2px;font-weight:500;}
.fin-amount{font-size:14px;font-weight:600;white-space:nowrap;flex-shrink:0;}
.fin-amount.r{color:var(--green);}
.fin-amount.d{color:var(--red);}
.fin-del{background:none;border:none;color:var(--hint);cursor:pointer;font-size:14px;opacity:0;transition:opacity 0.15s;flex-shrink:0;padding:0 3px;}
.fin-row:hover .fin-del{opacity:1;}
.fin-del:hover{color:var(--red);}
.month-nav{display:flex;align-items:center;gap:8px;margin-bottom:18px;background:#ffffff;border:1px solid rgba(38,35,30,0.10);border-radius:16px;padding:10px 14px;box-shadow:0 2px 12px rgba(38,35,30,0.07);}
.month-nav-btn{width:32px;height:32px;border-radius:8px;border:none;background:transparent;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:all 0.15s;flex-shrink:0;color:var(--soft);}
.month-nav-btn:hover{background:var(--sage-l);color:var(--sage-d);}
.month-label{font-size:18px;font-weight:800;flex:1;text-align:center;color:var(--text);letter-spacing:-0.5px;}
.month-today-btn{padding:5px 14px;background:var(--sage-l);border:1px solid rgba(107,154,111,0.3);border-radius:20px;font-size:13px;font-weight:700;color:var(--sage-d);cursor:pointer;font-family:inherit;white-space:nowrap;transition:all 0.15s;flex-shrink:0;}
.month-today-btn:hover{background:var(--accent);color:white;}
.parc-dots{display:flex;gap:3px;margin-top:3px;}
.parc-dot{width:8px;height:8px;border-radius:2px;background:var(--border);}
.parc-dot.paid{background:var(--red);}
.fin-filter-row{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.fin-filter-btn{padding:5px 14px;border-radius:20px;border:1px solid var(--border);background:white;font-family:inherit;font-size:13px;color:var(--soft);cursor:pointer;transition:all 0.15s;}
.fin-filter-btn:hover{border-color:var(--accent);}
.fin-filter-btn.active{background:var(--accent);color:white;border-color:var(--accent);}

/* PERFIL - CORRIGIDO */
.profile-header{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:18px;box-shadow:var(--shadow);}
.profile-banner{height:80px;background:linear-gradient(135deg,var(--sage-l) 0%,var(--accent-l) 100%);}
.profile-content{display:flex;align-items:flex-end;gap:14px;padding:0 22px 18px;margin-top:-36px;}
.profile-photo{width:72px;height:72px;border-radius:50%;border:3px solid var(--card);background:var(--accent-l);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:600;color:var(--accent-d);overflow:hidden;flex-shrink:0;box-shadow:var(--shadow);position:relative;}
.profile-photo img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.photo-upload-btn{position:absolute;bottom:0;right:0;width:24px;height:24px;border-radius:50%;background:var(--accent);border:2px solid white;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12.5px;color:white;transition:background 0.15s;z-index:2;}
.photo-upload-btn:hover{background:var(--sage-d);}
#photo-file-input{display:none;}
.profile-info-text{padding-bottom:4px;}
.profile-name-big{font-family:'Lora',serif;font-size:20px;font-weight:500;margin-top:8px;}
.profile-email-sm{font-size:13px;color:var(--hint);margin-top:2px;}
.profile-joined-sm{font-size:13px;color:var(--hint);margin-top:3px;}
.setting-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--border2);}
.setting-row:last-child{border-bottom:none;}
.setting-lbl{font-size:15px;}
.setting-sub{font-size:13px;color:var(--hint);margin-top:2px;}
.toggle{width:38px;height:22px;border-radius:11px;background:var(--border);cursor:pointer;position:relative;transition:background 0.2s;flex-shrink:0;}
.toggle.on{background:var(--accent);}
.toggle::after{content:'';width:16px;height:16px;border-radius:50%;background:white;position:absolute;top:3px;left:3px;transition:left 0.2s;box-shadow:0 1px 3px rgba(0,0,0,0.15);}
.toggle.on::after{left:19px;}

/* Estilo do novo Toggle de Tema */
.theme-toggle{width:56px;height:28px;background:#e2e8f0;border-radius:14px;position:relative;cursor:pointer;transition:all 0.3s ease;display:flex;align-items:center;justify-content:space-between;padding:0 6px;border:1px solid rgba(0,0,0,0.05);}
.dark .theme-toggle{background:#1e293b;border-color:rgba(255,255,255,0.1);}
.theme-toggle-thumb{width:22px;height:22px;background:#fbbf24;border-radius:50%;position:absolute;left:3px;transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px rgba(0,0,0,0.1);z-index:2;}
.dark .theme-toggle-thumb{left:31px;background:#0f172a;}
.theme-toggle svg{width:14px;height:14px;transition:all 0.3s ease;z-index:1;}
.theme-toggle .sun-icon{color:#d97706;opacity:1;}
.theme-toggle .moon-icon{color:#94a3b8;opacity:1;}
.dark .theme-toggle .sun-icon{opacity:1;color:#475569;}
.dark .theme-toggle .moon-icon{opacity:1;color:#f1f5f9;}
.dark .theme-toggle-thumb svg{color:#f1f5f9;}
.theme-toggle-thumb svg{color:#d97706;}
.save-profile-btn{padding:10px 20px;background:var(--accent);color:white;border:none;border-radius:9px;font-family:inherit;font-size:13px;cursor:pointer;transition:background 0.15s;margin-top:4px;}
.save-profile-btn:hover{background:var(--accent-d);}
.danger-zone{margin-top:20px;padding:16px 18px;border:1px solid rgba(192,80,74,0.2);border-radius:12px;background:rgba(192,80,74,0.03);}
.danger-title{font-size:12.0px;letter-spacing:1.6px;text-transform:uppercase;color:var(--red);margin-bottom:10px;}
.danger-btn{padding:8px 16px;background:var(--accent-l);border:1px solid var(--accent);color:var(--accent-d);border-radius:8px;font-family:inherit;font-size:13px;cursor:pointer;transition:all 0.15s;}
.danger-btn:hover{background:var(--accent);color:white;}

/* MODAL */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(38,35,30,0.55);z-index:900;align-items:center;justify-content:center;backdrop-filter:blur(2px);}#resp-modal-overlay{z-index:2000;}#cc-modal-overlay{z-index:2000;}#catmgr-overlay{z-index:2100;}#divida-modal-overlay{z-index:1000;}#modal-overlay{z-index:3000;}#modal-overlay{z-index:3000;}
.modal-overlay.open{display:flex;animation:fadeIn 0.18s ease;}
.modal{background:var(--card);border-radius:16px;padding:26px 26px 20px;width:440px;max-width:94vw;box-shadow:0 8px 48px rgba(38,35,30,0.15);animation:fadeUp 0.22s ease;max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
#import-drop-zone.dz-hover{border-color:var(--accent)!important;background:rgba(107,154,111,0.08)!important;}
#import-drop-zone:hover{border-color:rgba(107,154,111,0.6);}
.modal h3{font-family:'Lora',serif;font-size:18px;font-weight:400;margin-bottom:14px;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;}
.btn-sec{padding:9px 16px;background:transparent;border:1px solid var(--border);border-radius:9px;font-family:inherit;font-size:13px;cursor:pointer;color:var(--soft);}
.btn-danger{padding:9px 16px;background:var(--accent);color:white;border:none;border-radius:9px;font-family:inherit;font-size:13px;cursor:pointer;}
.btn-danger:hover{background:var(--accent-d);}

/* TOAST */
.toast{position:fixed;bottom:26px;right:26px;background:var(--sage-d);color:white;padding:10px 20px;border-radius:10px;font-size:13px;z-index:999;opacity:0;transform:translateY(8px);transition:all 0.28s;pointer-events:none;}
.toast.show{opacity:1;transform:translateY(0);}


/* ══ FINANÇAS V2 ══ */
.mb6{margin-bottom:6px;}

/* ── Finance action row (tabs + add button) ── */
.fin-action-row{
  display:flex;align-items:center;gap:10px;
  padding:14px 16px 12px;
}
.fin-tabs-inner{
  display:flex;gap:8px;flex:1;
}
.fin-tabs-inner .fin-tab-btn{
  flex:1;
}
.fin-add-fab{
  position:fixed;
  bottom:28px;
  right:24px;
  z-index:999;
  width:60px;
  height:60px;
  padding:0;
  background:linear-gradient(135deg,var(--accent-d),var(--accent));
  color:white;
  border:none;
  border-radius:50%;
  font-family:inherit;
  font-size:32px;
  font-weight:300;
  cursor:pointer;
  transition:background 0.2s, transform 0.2s, box-shadow 0.2s, opacity 0.2s;
  white-space:nowrap;
  box-shadow:0 4px 20px rgba(107,154,111,0.45), 0 0 0 4px rgba(107,154,111,0.10);
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.fin-add-fab:hover{background:linear-gradient(135deg,var(--accent),var(--accent-d));box-shadow:0 6px 28px rgba(107,154,111,0.55), 0 0 0 6px rgba(107,154,111,0.12);transform:scale(1.1);}
.fin-add-fab:active{transform:scale(0.92);}
.modal-overlay.open ~ .fin-add-fab,
.fin-modal-overlay.open ~ .fin-add-fab,
body.modal-open .fin-add-fab{opacity:0;pointer-events:none;}
@media(max-width:900px){
  .fin-add-fab{bottom:90px;right:18px;width:56px;height:56px;font-size:30px;}
}

.fin-tabs-row{display:flex;gap:8px;padding:14px 16px 0;}
.fin-tab-btn{flex:1;padding:12px;background:linear-gradient(180deg,#ffffff 0%,#f0eeec 100%);border:1px solid #e8e4e0;border-radius:50px;color:var(--soft);font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;transition:all 0.15s;box-shadow:0 3px 0 #dedad6,0 4px 6px rgba(0,0,0,0.06);position:relative;overflow:hidden;}
.fin-tab-btn::before{display:none;}
.fin-tab-btn:active{box-shadow:0 1px 0 #a08c70,0 2px 3px rgba(0,0,0,0.15);transform:translateY(3px);}
.fin-tab-btn:hover{filter:brightness(1.05);}
.fin-tab-btn.fin-tab-green{background:linear-gradient(180deg,#b2d9b4 0%,#7eaa81 100%)!important;border:1px solid #6a9a6d!important;color:#fff!important;box-shadow:0 3px 0 #4a7a4d,0 4px 6px rgba(0,0,0,0.08)!important;text-shadow:0 1px 1px rgba(0,0,0,0.1);}
.fin-tab-btn.fin-tab-green:active{box-shadow:0 1px 0 #4a7a4d,0 2px 3px rgba(0,0,0,0.08)!important;}
.fin-tab-btn.fin-tab-brown{background:linear-gradient(180deg,#e8a0a0 0%,#c06060 100%)!important;border:1px solid #b05050!important;color:#fff!important;box-shadow:0 3px 0 #904040,0 4px 6px rgba(0,0,0,0.08)!important;text-shadow:0 1px 1px rgba(0,0,0,0.1);}
.fin-tab-btn.fin-tab-brown:active{box-shadow:0 1px 0 #904040,0 2px 3px rgba(0,0,0,0.08)!important;}
.fin-cal-btn{background:var(--warm);border:1.5px solid rgba(160,120,80,0.2);border-radius:11px;padding:7px 16px;color:var(--accent-d);font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 1px 4px rgba(38,35,30,0.06);transition:all 0.15s;letter-spacing:0.01em;}
.fin-cal-btn:hover{background:rgba(160,120,80,0.06);border-color:rgba(160,120,80,0.35);}
.fin-dd-item{display:flex;align-items:center;gap:9px;padding:9px 14px;cursor:pointer;border-bottom:1px solid var(--border2);transition:background 0.12s;}
.fin-dd-item:hover{background:var(--warm)!important;}
.fin-dd-item:active{background:var(--sage-l)!important;}
.fin-dd-trigger{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;background:white;border-radius:20px;cursor:pointer;transition:all 0.15s;}
.fin-dd-trigger:hover{filter:brightness(0.97);}
.dash-resp-btn{cursor:pointer;padding:8px 10px;border-radius:14px;min-width:66px;max-width:80px;transition:all 0.18s;font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:5px;}
.dash-resp-btn:hover{filter:brightness(0.95);transform:translateY(-2px);box-shadow:0 4px 12px rgba(38,35,30,0.12)!important;}
.dash-resp-btn:active{transform:translateY(0px);}
/* calendar */
.fin-cal-day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:0;}
.fin-cal-head{text-align:center;font-size:10px;color:var(--hint);font-weight:800;padding:0 0 12px;letter-spacing:0.12em;text-transform:uppercase;border-bottom:1.5px solid var(--border2);margin-bottom:4px;}
.fin-cal-cell{background:transparent;border-radius:12px;padding:7px 2px 6px;min-height:56px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;border:1.5px solid transparent;transition:background 0.12s,border-color 0.12s;position:relative;}
.fin-cal-cell:hover{background:rgba(107,154,111,0.09);border-color:rgba(107,154,111,0.2);}
.fin-cal-cell.has-items{background:rgba(160,120,80,0.04);}
.fin-cal-cell.is-today{background:var(--accent-d);border-color:transparent;box-shadow:0 4px 14px var(--accent-l);}
.fin-cal-cell.is-sel{background:rgba(107,154,111,0.14);border-color:rgba(107,154,111,0.4);}
.fin-cal-num{font-size:14px;color:var(--text);font-weight:600;line-height:1;}
.fin-cal-cell.has-items .fin-cal-num{font-weight:700;}
.fin-cal-cell.is-today .fin-cal-num{color:white;font-weight:800;}
.fin-cal-cell.is-sel .fin-cal-num{color:var(--sage-d);font-weight:700;}
.fin-cal-dots{display:flex;gap:3px;justify-content:center;min-height:7px;}
.fin-cal-dot{width:5px;height:5px;border-radius:50%;}
.fin-cal-ok{position:absolute;top:4px;right:5px;font-size:9px;color:var(--green);font-weight:900;line-height:1;}
.fin-cal-warn{position:absolute;top:4px;right:5px;font-size:9px;color:var(--gold);font-weight:900;line-height:1;}
/* entry row */
.e-row{display:flex;align-items:flex-start;gap:10px;padding:12px 4px;border-bottom:1px solid var(--border2);}
.e-row:last-child{border-bottom:none;}
.e-row.overdue{background:rgba(192,80,74,0.04);border-radius:10px;padding-left:8px;}
.e-bar{width:3px;min-height:36px;align-self:stretch;border-radius:99px;flex-shrink:0;}
.e-info{flex:1;min-width:0;}
.e-desc{font-size:15px;font-weight:600;color:var(--text);line-height:1.3;margin-bottom:4px;}
.e-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:3px;}
.e-cat{display:inline-flex;align-items:center;gap:3px;font-size:12px;color:var(--soft);background:rgba(160,120,80,0.08);border-radius:20px;padding:2px 8px 2px 5px;font-weight:500;}
.e-tag{font-size:11px;border-radius:6px;padding:2px 7px;font-weight:700;white-space:nowrap;}
.e-tag.fixed{color:var(--hint);background:rgba(160,120,80,0.1);}
.e-tag.overdue{color:var(--red);background:var(--red-l);border:1px solid rgba(192,80,74,0.2);}
.e-tag.inst{border:1px solid rgba(160,120,80,0.25);}
.e-inst-bar{height:3px;background:rgba(160,120,80,0.12);border-radius:99px;overflow:hidden;margin-top:6px;}
.e-inst-fill{height:100%;border-radius:99px;transition:width 0.4s;}
.e-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;margin-left:6px;padding-top:2px;position:relative;z-index:2;}
.e-amount{font-size:15px;font-weight:700;}
.e-btns{display:flex;gap:5px;align-items:center;}
.e-edit-btn{background:rgba(107,154,111,0.12);border:1.5px solid rgba(107,154,111,0.3);border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--accent-d);transition:all 0.15s;}
.e-edit-btn:hover{background:rgba(107,154,111,0.22);border-color:var(--accent);}
.e-del-btn{background:rgba(192,80,74,0.07);border:1.5px solid rgba(192,80,74,0.18);border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px;transition:all 0.15s;}
.e-del-btn:hover{background:rgba(192,80,74,0.15);border-color:rgba(192,80,74,0.4);}
.e-toggle-btn{width:32px;height:32px;border-radius:9px;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 0.2s;font-weight:700;border:1px solid;}
.grp-lbl{font-size:13px;color:#4a4540;letter-spacing:0.12em;text-transform:uppercase;padding:12px 0 7px;font-weight:800;}
/* finance modal sheet */
.fin-modal-overlay{display:none;position:fixed;inset:0;background:rgba(38,35,30,0.38);z-index:150;align-items:flex-end;justify-content:center;backdrop-filter:blur(4px);}
.fin-modal-overlay.open{display:flex;animation:fadeIn 0.18s ease;}
.fin-sheet{background:var(--cream);border-radius:22px 22px 0 0;padding:12px 20px 52px;width:100%;max-width:500px;display:flex;flex-direction:column;gap:12px;max-height:92vh;overflow-y:auto;box-shadow:0 -8px 40px rgba(38,35,30,0.15);animation:slideUp 0.3s cubic-bezier(.22,1,.36,1);position:relative;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.fin-sheet-handle{width:40px;height:4px;background:rgba(160,120,80,0.2);border-radius:99px;margin:0 auto 6px;flex-shrink:0;}
.fin-sheet-title{font-family:'Lora',serif;font-size:21px;color:var(--text);font-weight:400;margin-bottom:4px;}
/* entry form inside sheet */
.fm-lbl{font-size:13px;color:var(--hint);letter-spacing:0.1em;text-transform:uppercase;font-weight:600;display:block;margin-bottom:5px;margin-top:16px;}
.fm-inp{width:100%;background:white;border:1.5px solid rgba(160,120,80,0.25);border-radius:13px;padding:14px 15px;color:var(--text);font-size:16px;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color 0.15s,box-shadow 0.15s;box-shadow:0 1px 4px rgba(38,35,30,0.05);}
.fm-inp:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-l);outline:none;}
input[type=date].fm-inp{text-align:left;-webkit-text-align:left;}
input[type=date].fm-inp{text-align:left;-webkit-text-align:left;}
.fm-inp[type=number]::-webkit-inner-spin-button,.fm-inp[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
.fm-inp[type=number]{-moz-appearance:textfield;}
.fm-type-row{display:flex;gap:6px;margin-bottom:12px;}
.fm-type-btn{flex:1;padding:10px 4px;background:var(--warm);border:1px solid rgba(160,120,80,0.18);border-radius:11px;color:var(--hint);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all 0.15s;}
.fm-type-btn.on-green{background:#a5d6a7!important;border-color:#81c784!important;color:#1b5e20!important;}
.fm-type-btn.on-brown{background:#ef9a9a!important;border-color:#e57373!important;color:#7f0000!important;}
.fm-cat-grid{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:4px;}
.fm-cat-btn{display:flex;align-items:center;gap:5px;padding:8px 9px;background:var(--warm);border:1px solid rgba(160,120,80,0.15);border-radius:11px;cursor:pointer;font-family:inherit;transition:all 0.15s;min-width:0;text-align:left;}
.fm-cat-lbl{font-size:15.5px;color:var(--soft);font-weight:500;line-height:1.2;text-align:left;}
.fm-cat-btn.on-green{background:rgba(46,125,50,0.15)!important;border-color:#2e7d32!important;}
.fm-cat-btn.on-brown{background:var(--accent-l)!important;border-color:var(--accent-d)!important;}
.fm-cat-group{display:flex;flex-direction:column;gap:4px;}
.fm-cat-subs{display:flex;flex-direction:column;gap:4px;padding-left:8px;border-left:2px solid rgba(160,120,80,0.18);margin-left:4px;}
.fm-cat-sub-btn{display:flex;align-items:center;gap:5px;padding:6px 9px;background:var(--warm);border:1px dashed rgba(160,120,80,0.2);border-radius:9px;cursor:pointer;font-family:inherit;transition:all 0.15s;min-width:0;}
.fm-cat-sub-btn:hover{background:rgba(160,120,80,0.1);}
.fm-cat-sub-btn.on-green{background:rgba(46,125,50,0.15)!important;border-color:#2e7d32!important;border-style:solid!important;}
.fm-cat-sub-btn.on-brown{background:var(--accent-l)!important;border-color:var(--accent-d)!important;border-style:solid!important;}
.fm-cat-chevron{transition:transform 0.2s;}
@media (max-width:480px){
  .fm-cat-edit-action{width:24px!important;height:24px!important;font-size:11px!important;border-radius:6px!important;}
  .fm-cat-btn{padding:7px 7px!important;}
  .fm-cat-sub-btn{padding:5px 7px!important;}
  .fm-cat-lbl{font-size:14px!important;}
}
.fm-color-row{display:flex;gap:10px;flex-wrap:wrap;padding:6px 0;}
.fm-color-dot{width:34px;height:34px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all 0.18s;box-shadow:0 2px 8px rgba(0,0,0,0.18);}
.fm-color-dot:hover{transform:scale(1.15);box-shadow:0 4px 14px rgba(0,0,0,0.28);}
.fm-color-dot.sel{border-color:var(--text);transform:scale(1.22);box-shadow:0 3px 14px rgba(0,0,0,0.32);}
.fm-save-btn{border:none;border-radius:13px;padding:14px;color:white;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;margin-top:4px;box-shadow:0 4px 16px rgba(160,120,80,0.25);}
/* scope modal */
.scope-btn{background:white;border:1px solid var(--border);border-radius:13px;padding:13px 15px;text-align:left;cursor:pointer;font-family:inherit;transition:all 0.15s;width:100%;}
.scope-btn:hover{border-color:var(--accent);}
.scope-btn-title{font-size:14px;font-weight:700;margin-bottom:2px;}
.scope-btn-sub{font-size:13px;color:var(--hint);}

/* type picker overlay */
.type-pick-overlay{display:none;position:fixed;inset:0;background:rgba(38,35,30,0.38);z-index:200;align-items:flex-end;justify-content:center;backdrop-filter:blur(4px);}
.type-pick-overlay.open{display:flex;animation:fadeIn 0.18s ease;}
.type-pick-sheet{background:var(--cream);border-radius:22px 22px 0 0;padding:14px 20px 32px;width:100%;max-width:600px;box-shadow:0 -8px 40px rgba(38,35,30,0.15);animation:slideUp 0.28s cubic-bezier(.22,1,.36,1);}
.type-pick-handle{width:40px;height:4px;background:rgba(160,120,80,0.2);border-radius:99px;margin:0 auto 12px;}
.type-pick-title{font-family:'Lora',serif;font-size:16px;color:var(--text);font-weight:400;margin-bottom:12px;text-align:center;}
.type-pick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.type-pick-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:16px 12px;border-radius:14px;border:1.5px solid transparent;cursor:pointer;font-family:inherit;transition:all 0.2s;}
.type-pick-btn.income{background:rgba(90,158,106,0.1);border-color:rgba(90,158,106,0.3);}
.type-pick-btn.income:hover{background:rgba(46,125,50,0.2);border-color:#2e7d32;transform:translateY(-2px);}
.type-pick-btn.expense{background:rgba(192,80,74,0.08);border-color:rgba(192,80,74,0.25);}
.type-pick-btn.expense:hover{background:rgba(211,47,47,0.16);border-color:#d32f2f;transform:translateY(-2px);}
.type-pick-icon{font-size:24px;line-height:1;}
.type-pick-lbl{font-size:14px;font-weight:700;}
.type-pick-sub{display:none;}
.type-pick-cancel{width:100%;margin-top:10px;padding:10px;background:var(--warm);border:1px solid var(--border);border-radius:12px;font-family:inherit;font-size:13px;color:var(--soft);cursor:pointer;transition:all 0.15s;}
.type-pick-cancel:hover{background:var(--warm);}

/* category manager */
.catmgr-overlay{display:none;position:fixed;inset:0;background:rgba(38,35,30,0.38);z-index:600;align-items:center;justify-content:center;backdrop-filter:blur(4px);}
.catmgr-overlay.open{display:flex;animation:fadeIn 0.18s ease;}
.catmgr-sheet{background:var(--cream);border-radius:22px;padding:20px 20px 28px;width:92%;max-width:600px;max-height:88vh;overflow-y:auto;box-shadow:0 8px 40px rgba(38,35,30,0.18);animation:fadeUp 0.28s cubic-bezier(.22,1,.36,1);position:relative;}
.catmgr-handle{width:40px;height:4px;background:rgba(160,120,80,0.2);border-radius:99px;margin:0 auto 14px;}
.catmgr-title{font-family:'Lora',serif;font-size:20px;color:var(--text);font-weight:400;margin-bottom:4px;}
.catmgr-tabs{display:flex;gap:6px;margin-bottom:16px;margin-top:10px;}
.catmgr-tab{flex:1;padding:9px;border-radius:11px;border:1.5px solid transparent;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;text-align:center;transition:all 0.18s;color:var(--hint);background:white;border-color:rgba(160,120,80,0.18);}
.catmgr-tab.active-inc{background:var(--accent-l);border-color:var(--accent);color:var(--accent-d);}
.catmgr-tab.active-exp{background:var(--accent-l);border-color:var(--accent);color:var(--accent-d);}
.catmgr-section{margin-bottom:18px;}
.catmgr-sec-title{font-size:12.0px;letter-spacing:2px;text-transform:uppercase;color:var(--hint);font-weight:700;margin-bottom:8px;}
.catmgr-cat-list{display:flex;flex-direction:column;gap:4px;}
.catmgr-cat-item{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--warm);border:1px solid var(--border);border-radius:11px;}
.catmgr-cat-icon{font-size:18px;flex-shrink:0;}
.catmgr-cat-name{flex:1;font-size:14px;font-weight:500;}
.catmgr-cat-badge{font-size:12.5px;color:var(--hint);background:rgba(160,120,80,0.08);padding:2px 7px;border-radius:20px;font-weight:600;}
.catmgr-cat-del{background:rgba(160,120,80,0.08);border:1.5px solid rgba(160,120,80,0.22);color:var(--hint);cursor:pointer;font-size:15px;padding:0;border-radius:9px;transition:all 0.15s;width:38px;height:36px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.catmgr-cat-del:hover{color:var(--red);background:var(--red-l);border-color:rgba(192,80,74,0.3);}
.catmgr-add-row{display:flex;gap:8px;margin-top:10px;align-items:center;}
.catmgr-add-icon{font-size:20px;cursor:pointer;padding:4px 6px;border-radius:8px;background:var(--warm);border:1.5px dashed rgba(107,154,111,0.5);transition:all 0.15s;position:relative;}
.catmgr-add-icon:hover{background:var(--accent-l);border-color:var(--accent);transform:scale(1.08);}
.catmgr-add-inp{flex:1;padding:10px 12px;border:1px solid rgba(160,120,80,0.22);border-radius:11px;background:white;font-family:inherit;font-size:14px;color:var(--text);outline:none;}
.catmgr-add-inp:focus{border-color:var(--accent);}
.catmgr-add-btn{padding:10px 16px;background:var(--accent);color:white;border:none;border-radius:11px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background 0.15s;white-space:nowrap;}
.catmgr-add-btn:hover{background:var(--accent-d);}
.catmgr-sub-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;padding-left:4px;}
.catmgr-sub-chip{display:flex;align-items:center;gap:4px;padding:4px 10px;background:rgba(160,120,80,0.08);border:1px solid rgba(160,120,80,0.2);border-radius:20px;font-size:13px;font-weight:500;color:var(--soft);}
.catmgr-sub-chip-del{background:none;border:none;color:var(--hint);cursor:pointer;font-size:13px;padding:0 1px;line-height:1;}
.catmgr-sub-chip-del:hover{color:var(--red);}
.catmgr-sub-add{display:flex;gap:6px;margin-top:6px;}
.catmgr-sub-inp{flex:1;padding:8px 11px;border:1px solid rgba(160,120,80,0.2);border-radius:20px;background:white;font-family:inherit;font-size:13px;color:var(--text);outline:none;}
.catmgr-sub-inp:focus{border-color:var(--accent);}
.catmgr-sub-addbtn{padding:8px 12px;background:rgba(107,154,111,0.15);color:var(--sage-d);border:1px solid rgba(107,154,111,0.3);border-radius:20px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;}
.catmgr-sub-addbtn:hover{background:var(--accent);color:white;}
.catmgr-expand{background:none;border:none;color:var(--hint);cursor:pointer;font-size:13px;padding:2px 5px;border-radius:6px;transition:all 0.15s;}
.catmgr-expand:hover{color:var(--text);}
.catmgr-close{width:100%;margin-top:16px;padding:12px;background:var(--accent);color:white;border:none;border-radius:12px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background 0.15s;}
.catmgr-close:hover{background:var(--sage-d);}
.catmgr-link{font-size:13px;color:var(--accent);cursor:pointer;text-decoration:underline;background:none;border:none;font-family:inherit;padding:0;}
.catmgr-link:hover{color:var(--sage-d);}

/* ═══ MOBILE SIDEBAR ═══ */
/* Hamburger top bar — only on mobile */
.mob-topbar{display:none;position:fixed;top:0;left:0;right:0;z-index:80;background:var(--warm);border-bottom:1px solid var(--border);padding:calc(env(safe-area-inset-top,0px) + 8px) 16px 10px;gap:12px;align-items:center;}
.mob-ham{background:none;border:none;cursor:pointer;width:36px;height:36px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:9px;flex-shrink:0;transition:background 0.15s;}
.mob-ham:active{background:rgba(107,154,111,0.12);}
.mob-ham span{display:block;width:20px;height:2px;background:var(--sage-d);border-radius:2px;transition:all 0.25s;}
.mob-ham.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.mob-ham.open span:nth-child(2){opacity:0;transform:scaleX(0);}
.mob-ham.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mob-topbar-logo{font-family:"SF Premium Display",ui-rounded,-apple-system,'Nunito',sans-serif;font-size:19px;font-weight:900;color:var(--sage-d);letter-spacing:2px;text-transform:uppercase;flex:1;}
.mob-topbar-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent-d),var(--accent));display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;color:white;overflow:hidden;flex-shrink:0;box-shadow:none;cursor:pointer;transition:transform 0.15s,box-shadow 0.15s;}
.mob-topbar-avatar:hover{transform:scale(1.08);box-shadow:none;}
.mob-topbar-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;}

/* Sidebar overlay */
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(38,35,30,0.42);z-index:90;backdrop-filter:blur(2px);}
.sidebar-overlay.open{display:block;animation:fadeIn 0.2s ease;}

/* Sidebar itself */
.sidebar{width:232px;min-width:232px;background:var(--warm);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0;transition:transform 0.3s cubic-bezier(.22,1,.36,1);-webkit-overflow-scrolling:touch;}
.sidebar::-webkit-scrollbar{width:3px;}
.sidebar::-webkit-scrollbar-thumb{background:var(--border);}

/* ═══ BOTTOM NAV (mobile only) ═══ */
.auth-visible .mob-bottom-nav,
.auth-visible .mob-topbar{display:none!important;}
/* ═══ BOTTOM NAV ═══ */
.mob-bottom-nav {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 80;
  background: var(--warm);
  border-top: 1.5px solid var(--border);
  box-shadow: none;
}
.mob-nav-row {
  display: flex;
  align-items: flex-start;
  width: 100%;
  height: 75px;
  padding: 4px 2px 0;
  gap: 0;
  position: relative;
}
.mob-nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 2px;
  border: none;
  background: transparent;
  color: var(--hint);
  font-family: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  height: 100%;
  padding: 2px 2px 4px; /* Reduzido o padding lateral para evitar que o texto grude */
  border-radius: 14px;
  transition: color 0.18s, background 0.18s;
  position: relative;
  min-width: 0; /* Permite que o item encolha se necessário */
}
.mob-nav-item svg {
  display: block;
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  transition: transform 0.18s, stroke 0.18s;
  stroke: currentColor;
}
.mob-nav-item span {
  display: block;
  font-size: 9px; /* Reduzido de 10px para 9px para caber melhor */
  font-weight: 600;
  white-space: nowrap;
  line-height: 1.2;
  color: inherit;
  transition: font-weight 0.18s, color 0.18s;
  overflow: hidden;
  text-overflow: ellipsis; /* Adiciona reticências se o nome for muito grande */
  width: 100%;
  text-align: center;
}
.mob-nav-item.active {
  color: var(--accent-d);
}
.mob-nav-item.active svg {
  background: var(--accent-d);
  color: white !important;
  stroke: white !important;
  border-radius: 12px;
  padding: 5px;
  width: 34px;
  height: 34px;
  transform: translateY(-2px);
  box-shadow: none;
}

/* Ícone central de Controle Financeiro grande e alinhado ao topo */
.mob-nav-item[data-page="financas"] {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 0;
  margin-top: -12px;
  z-index: 10;
  position: relative;
}
.mob-nav-item[data-page="financas"] .mob-fin-icon {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  font-weight: bold;
  color: var(--accent-d);
  background: white;
  border: 1px solid var(--border);
  border-radius: 16px;
  margin: 0 auto;
  transition: all 0.2s ease;
}
.mob-nav-item[data-page="financas"].active .mob-fin-icon {
  background: var(--accent-d);
  color: white;
  border-color: var(--accent-d);
}
.mob-nav-item[data-page="financas"] span {
  display: none !important; /* Remove o texto para deixar o ícone sozinho */
}
.mob-nav-item.active span {
  font-weight: 800;
  font-size: 10.5px;
  color: var(--accent-d);
}
.mob-nav-item svg, .mob-nav-item span {
  position: relative;
  z-index: 1;
}
@keyframes navDot {
  0%   { width: 0; opacity: 0; }
  100% { width: 20px; opacity: 1; }
}
#mob-nav-avatar {
  width: 22px; height: 22px;
  border-radius: 50%;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--accent), var(--accent-d));
  color: white;
  font-size: 8px;
  font-weight: 800;
  margin: 0 auto 3px;
}
#mob-nav-avatar img {
  width: 22px; height: 22px;
  display: block;
  object-fit: cover;
  border-radius: 50%;
}

.meta-filters-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.meta-filters-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--soft);
  white-space: nowrap;
}
.meta-filters-selects {
  display: flex;
  gap: 10px;
  flex: 1;
  min-width: 280px;
}
.meta-filters-selects select {
  flex: 1;
  padding: 10px 12px;
  font-size: 14px;
  height: 44px;
}
@media (max-width: 600px) {
  .meta-filters-row {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  .meta-filters-selects {
    flex-direction: column;
    min-width: 100%;
  }
}

/* Password Toggle */
.pass-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}
.pass-wrapper .form-input {
  padding-right: 45px;
}
.pass-toggle {
  position: absolute;
  right: 12px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--hint);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px;
  transition: color 0.2s;
}
.pass-toggle:hover {
  color: var(--accent-d);
}
.pass-toggle svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
}

/* ─── RESPONSIVE ADJUSTMENTS ─── */

@media(max-width:1024px) and (min-width:701px){
  .grid3{grid-template-columns:1fr 1fr!important;}
  .grid4{grid-template-columns:1fr 1fr!important;}
  .fin-summary{grid-template-columns:1fr 1fr!important;}
  .ph h1{font-size:26px;}
}

@media(max-width:700px){
  /* show mobile topbar + bottom nav */
  .mob-topbar{display:flex;}
  /* mob-bottom-nav enabled on mobile */
  .mob-bottom-nav{display:flex !important;}

  /* gráfico de colunas: compacto no mobile — eliminar vão */
  #dash-chart-card{max-height:none!important;overflow:visible!important;min-height:auto!important;height:auto!important;}
  #dash-chart-bars{min-height:80px!important;max-height:120px!important;height:100px!important;flex:0 0 auto!important;gap:2px!important;padding-top:6px!important;}
  #dash-cat-chart-row{align-items:start!important;}

  /* sidebar becomes a fixed drawer */
  .sidebar{
    position:fixed;top:0;left:0;bottom:0;z-index:95;
    width:280px;min-width:280px;
    box-shadow:6px 0 40px rgba(38,35,30,0.22);
    transform:translateX(-100%);
    border-right:none;
  }
  .sidebar.open{transform:translateX(0);}

  /* layout */
  #app{flex-direction:column;}
  .main{padding-top:calc(52px + env(safe-area-inset-top,0px));}
  .page{padding:16px 14px calc(82px + env(safe-area-inset-bottom,0px));}

  /* all multi-column grids → single column */
  .grid2,.grid3,.grid4{grid-template-columns:1fr;}
  .fin-summary{grid-template-columns:repeat(3,1fr);}

  /* finances specific */
  .fin-tabs-row{margin-top:8px;padding:10px 12px 0;}
  .fin-tabs-row .fin-tab-btn{font-size:13px;padding:10px 6px;}

  /* month nav */
  .month-nav{margin-bottom:12px;padding:8px 10px;}
  .month-label{font-size:18px;}

  /* stats on hoje */
  .stat-box{padding:13px 14px;}
  .stat-num{font-size:26px;}

  /* date bar on mobile */
  .date-bar{flex-direction:column;align-items:flex-start;gap:10px;padding:13px 14px;}
  .mood-row{width:100%;justify-content:flex-start;}

  /* cards */
  .card{padding:16px 14px;}
  /* fin-item compact on mobile (3 cols) */
  .fin-item{padding:10px 8px 8px;}
  .fin-item-label{font-size:8px;letter-spacing:0.8px;margin-bottom:4px;}
  .fin-item-value{font-size:14px;}
  .fin-item-sub{font-size:9.5px;margin-top:3px;}

  /* quote card */
  .quote-card{padding:15px 18px;}
  .quote-text{font-size:13.5px;}

  /* profile header */
  .profile-content{flex-direction:column;align-items:flex-start;margin-top:-36px;padding:0 16px 16px;}
  .profile-name-big{font-size:18px;margin-top:10px;}

  /* page headers */
  .ph h1{font-size:25px;}
  .ph p{font-size:14px;}

  /* fin summary cards compact */
  .fin-sum-card{padding:4px 8px;}
  #fin-sum-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)!important;}
  #fin-sum-grid .fin-sum-total{font-size:14px!important;white-space:nowrap;}
  #fin-sum-grid .fin-sum-lbl{font-size:12px!important;padding:2px 5px;white-space:nowrap;}
  #dash-kpi-grid .fin-sum-total{font-size:16px!important;}
  .dash-kpi-val{font-size:16px;}
  .fin-sum-total{font-size:15px!important;letter-spacing:-0.2px;}
  .fin-item-value{font-size:14px;}

  /* saldo projetado menor no mobile - ver regra separada abaixo */

  /* cards do dashboard humor + fin resumo lado a lado */
  .grid2.dash-split{grid-template-columns:1fr 1fr!important;gap:10px;}
  .grid2.dash-split .card{padding:12px 10px;}

  /* cc cards */
  .cc-card{padding:16px 18px;}
  .cc-card-name{font-size:15px;}
  .cc-actions{flex-wrap:wrap;}

  /* modal sheet full-width on mobile */
  .fin-sheet{border-radius:22px 22px 0 0;padding:14px 16px 80px;}
  .fm-inp{font-size:16px!important;padding:13px 14px!important;}
  .form-input{font-size:16px!important;}
  .fm-lbl{font-size:13.5px!important;}
  .fm-save-btn{font-size:15px!important;padding:16px!important;}
  .add-btn{font-size:15px!important;}
  .card-title{font-size:13px!important;}
  .stat-num{font-size:22px!important;}

  /* toast above bottom nav */
  .toast{bottom:20px;right:14px;left:14px;text-align:center;}

  /* grid2 in finance summary */
  #page-financas > div[style*="grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr!important;
    gap:8px;
  }

  /* make fin tab full row */
  .fin-tabs-row{flex-direction:row;gap:6px;}

  /* fm-pm-grid compact */
  .fm-pm-grid{grid-template-columns:repeat(3,1fr);gap:5px;}
  .fm-pm-btn{padding:6px 2px;}
  .fm-pm-btn span:first-child{font-size:14px!important;}
  .fm-pm-btn span:last-child{font-size:9px!important;}

  /* font picker */
  .font-picker{grid-template-columns:1fr 1fr;}

  /* auth box */
  .auth-box{padding:28px 20px 24px;border-radius:16px;width:100%;}
  .auth-logo{font-size:28px;}

  /* sidebar close btn show on mobile */
  #sb-close-btn{display:flex!important;}

  /* cc color grid */
  .cc-color-grid{grid-template-columns:repeat(5,1fr);}

  /* goal cards */
  .goal-card{padding:15px 14px;}

  /* journal entries */
  .journal-entry{padding:14px 14px;}

  /* fin entry rows */
  .e-desc{font-size:14px;}
  .e-amount{font-size:15px;}
  .e-right{margin-left:2px;}
  .e-edit-btn,.e-del-btn{opacity:1!important;} /* always show on mobile */
  .fin-del,.goal-del,.int-del{opacity:1!important;}
  .cc-spend-del{opacity:1!important;}

  /* add row */
  .add-row{gap:6px;}
  .add-btn{padding:10px 14px;}

}


  /* tap press feedback */
  .add-btn:active,.btn-primary:active,.fin-tab-btn:active,.mob-nav-item:active{
    transform:scale(0.96);opacity:0.85;
  }
  /* Make row action buttons always visible on mobile */
  .goal-del,.fin-del,.int-del{opacity:1!important;}
  /* Wider touch targets */
  .int-check{width:24px;height:24px;min-width:24px;}
  /* fin entry amount larger */
  .e-amount{font-size:15px;}
  /* fix date bar layout */
  .date-bar{flex-wrap:wrap;}
  /* mood buttons bigger tap target */
  .mood-btn{width:34px;height:34px;font-size:17px;}
  /* dashboard stat grid 2x2 on mobile */
  #page-hoje .grid4{grid-template-columns:1fr 1fr!important;}
  #page-dashboard .grid4{grid-template-columns:1fr 1fr!important;}

/* small phones */
@media(max-width:380px){
  .page{padding:14px 11px calc(82px + env(safe-area-inset-bottom,0px));}
  .mob-nav-label{font-size:9px;}

  .stat-num{font-size:22px;}
  .ph h1{font-size:20px;}
}

/* ── Finance summary cards ── */
.fin-sum-card{
  background: #ffffff;
  border: 1px solid var(--border);
  border-left: 4px solid var(--accent);
  border-radius: 16px;
  padding: 10px 14px;
  box-shadow: 0 2px 12px rgba(38,35,30,0.08);
}
.dark .fin-sum-card{background:#1e2324;border:1px solid rgba(255,255,255,0.07);border-left:4px solid var(--accent);}
.fin-sum-card.green-card{background:#ffffff;border-color:var(--border);border-left:4px solid #4caf6e;}
.fin-sum-card.red-card{background:#ffffff;border-color:var(--border);border-left:4px solid #d95f5f;}
.fin-sum-card.teal-card{background:#ffffff;border-color:var(--border);border-left:4px solid #2aa68a;}
.dark .fin-sum-card.green-card{background:#1e2e1a;border-left:4px solid #5dbc7a;}
.dark .fin-sum-card.red-card{background:#2a1a1a;border-left:4px solid #e07070;}
.dark .fin-sum-card.teal-card{background:#142820;border-left:4px solid #3acfa8;}
.fin-sum-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:0;}
.fin-sum-lbl{font-size:13px;font-weight:700;letter-spacing:0;text-transform:none;white-space:nowrap;padding:3px 10px;border-radius:20px;}
.fin-sum-lbl.green{background:rgba(76,175,110,0.12);color:#2e7d4f;}
.fin-sum-lbl.red{background:rgba(217,95,95,0.12);color:#b03a3a;}
.fin-sum-lbl.teal{background:rgba(42,166,138,0.12);color:#1a6e59;}
.dark .fin-sum-lbl.green{background:rgba(96,180,60,0.25);color:#c0dd97;}
.dark .fin-sum-lbl.red{background:rgba(192,80,74,0.25);color:#f7c1c1;}
.dark .fin-sum-lbl.teal{background:rgba(29,158,117,0.25);color:#9fe1cb;}
.fin-sum-total{font-size:19px;font-weight:800;letter-spacing:-0.3px;line-height:1;white-space:nowrap;}
.fin-sum-card.green-card .fin-sum-total{color:#2e7d4f;}
.fin-sum-card.red-card .fin-sum-total{color:#b03a3a;}
.fin-sum-card.teal-card .fin-sum-total{color:#1a6e59;}
.dark .fin-sum-card .fin-sum-total{color:var(--text);}
.fin-sum-rows{display:flex;flex-wrap:wrap;gap:4px 10px;padding-top:6px;border-top:none;align-items:center;}
.dark .fin-sum-rows{border-top-color:transparent;}
.fin-sum-row{display:inline-flex;align-items:center;gap:2px;min-height:18px;}
.fin-sum-row-lbl{font-size:12px;font-weight:500;}
.fin-sum-card.green-card .fin-sum-row-lbl{color:#3a7a50;}
.fin-sum-card.red-card .fin-sum-row-lbl{color:#9e3535;}
.fin-sum-card.teal-card .fin-sum-row-lbl{color:#1a6e59;}
.dark .fin-sum-row-lbl{color:var(--soft);}
.fin-sum-row-val{font-size:12px;font-weight:700;}
.fin-sum-card.green-card .fin-sum-row-val{color:#2e7d4f;}
.fin-sum-card.red-card .fin-sum-row-val{color:#b03a3a;}
.fin-sum-card.teal-card .fin-sum-row-val{color:#1a6e59;}
.dark .fin-sum-row-val{color:var(--text);}
.fin-sum-row-val.hint{color:var(--hint);}
.dark .fin-sum-card.green-card .fin-sum-total{color:#7de89a!important;}
.dark .fin-sum-card.red-card .fin-sum-total{color:#f4a0a0!important;}
.dark .fin-sum-card.teal-card .fin-sum-total{color:#9fe1cb!important;}
.dark .fin-sum-card.green-card .fin-sum-row-val{color:#7de89a!important;}
.dark .fin-sum-card.red-card .fin-sum-row-val{color:#f4a0a0!important;}
.dark .fin-sum-card.teal-card .fin-sum-row-val{color:#9fe1cb!important;}
.fin-sum-sep{font-size:11px;color:rgba(0,0,0,0.2);margin:0 2px;}
.dark .fin-sum-sep{color:rgba(255,255,255,0.2);}
.fin-saldo-bar{
  background:#fff;border:1px solid rgba(38,35,30,0.09);
  border-radius:14px;padding:12px 16px;margin-top:8px;
  box-shadow:0 2px 10px rgba(38,35,30,0.05);
  border-top:3px solid var(--accent);
}
.dark .fin-saldo-bar{background:var(--card);border-color:var(--border);}
.fin-saldo-lbl{font-size:11px;color:var(--hint);letter-spacing:1.5px;text-transform:uppercase;display:block;margin-bottom:4px;font-weight:800;}
.fin-saldo-val{font-size:16px;font-weight:800;color:var(--text);letter-spacing:-0.3px;line-height:1;}

@media(max-width:1024px) and (min-width:701px){
  .grid3{grid-template-columns:1fr 1fr!important;}
  .grid4{grid-template-columns:1fr 1fr!important;}
  .fin-summary{grid-template-columns:1fr 1fr!important;}
  .ph h1{font-size:26px;}
}

@media(max-width:700px){
  .fin-sum-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)!important;}
  .fin-saldo-val{font-size:16px;letter-spacing:-0.3px;}
  .fin-saldo-bar{padding:12px 14px!important;border-radius:12px!important;}
  .fin-saldo-lbl{font-size:11.0px!important;margin-bottom:3px!important;}
  /* Categorias em uma única coluna no mobile */
  .fm-cat-grid{grid-template-columns:1fr!important;}
  /* Botões de editar/excluir categoria maiores no mobile */
  .fm-cat-grid button[onclick*="_finCatEditing"], 
  .fm-cat-grid button[onclick*="delFinCatInline"],
  .fm-cat-grid button[onclick*="delFinSubcatInline"] {
    width: 36px !important;
    height: 36px !important;
    font-size: 16px !important;
  }
}

/* ── Dashboard: Humor + Resumo Financeiro ── */
.dash-mood-row{display:flex;gap:6px;justify-content:space-between;padding:10px 0;}
.dash-mood-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;}
.dash-mood-circle{width:36px;height:36px;border-radius:50%;border:2px solid;display:flex;align-items:center;justify-content:center;transition:all 0.3s;flex-shrink:0;}
.dash-mood-emoji{font-size:18px;line-height:1;}
.dash-mood-lbl{font-size:12.5px;color:var(--hint);font-weight:400;}
.dash-mood-today{color:var(--text);font-weight:700;}
.dash-mood-footer{margin-top:8px;padding-top:10px;border-top:1px solid var(--border2);font-size:13px;color:var(--hint);text-align:center;}

.dash-fin-rows{display:flex;flex-direction:column;gap:8px;margin-top:4px;}
.dash-fin-row{display:flex;justify-content:space-between;align-items:center;padding:9px 11px;border-radius:9px;border-left:3px solid;}
.dash-fin-inc{background:var(--green-l);border-color:var(--green);}
.dash-fin-exp{background:var(--red-l);border-color:var(--red);}
.dash-fin-pos{background:var(--sage-l);border-color:var(--sage-d);}
.dash-fin-neg{background:var(--red-l);border-color:var(--red);}
.dash-fin-lbl{font-size:13px;font-weight:600;color:var(--text);}
.dash-fin-val{font-size:14px;font-weight:700;}
.dash-fin-val.green{color:var(--green);}
.dash-fin-val.red{color:var(--red);}
.dash-fin-pct{display:flex;justify-content:space-between;font-size:13px;color:var(--hint);padding:0 2px;}


@media(max-width:1024px) and (min-width:701px){
  .grid3{grid-template-columns:1fr 1fr!important;}
  .grid4{grid-template-columns:1fr 1fr!important;}
  .fin-summary{grid-template-columns:1fr 1fr!important;}
  .ph h1{font-size:26px;}
}

@media(max-width:700px){
  .dash-mood-circle{width:26px;height:26px;}
  .dash-mood-emoji{font-size:13px;}
  .dash-mood-lbl{font-size:12.5px}
  .dash-mood-footer{font-size:12.5px}
  .dash-mood-row{gap:3px;padding:8px 0;}
  .dash-fin-row{padding:8px 10px;border-radius:8px;flex-direction:row;align-items:center;flex-wrap:nowrap;gap:4px;}
  .dash-fin-lbl{font-size:13px;flex-shrink:0;}
  .dash-fin-val{font-size:13px;white-space:nowrap;}
  .dash-fin-pct{font-size:12.5px}
  .dash-fin-rows{gap:6px;}
  .dash-mood-card .card-title,
  .dash-fin-card .card-title{font-size:10.5px;letter-spacing:1px;margin-bottom:6px;}
  /* Stack humor + finance cards vertically on mobile */
  .grid2.dash-split{grid-template-columns:1fr!important;gap:12px;}
  .grid2.dash-split .card{padding:14px 16px;}
}

/* ── Theme & dark mode picker ── */
.theme-section{padding:14px 0 0;}
.theme-picker{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
.theme-swatch{width:34px;height:34px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:all 0.15s;position:relative;}
.theme-swatch.active{border-color:var(--text);transform:scale(0.88);}
.theme-swatch::after{content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:14px;color:white;font-weight:700;opacity:0;}
.theme-swatch.active::after{opacity:1;}
/* ── Background picker ── */
.bg-picker{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px;}
.bg-swatch{width:34px;height:34px;border-radius:10px;cursor:pointer;border:3px solid transparent;transition:all 0.15s;position:relative;box-shadow:0 1px 4px rgba(0,0,0,0.10);}
.bg-swatch.active{border-color:var(--text);transform:scale(0.88);}
.bg-swatch::after{content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;opacity:0;}
.bg-swatch.active::after{opacity:1;}
.dark-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0 0;}
.dark-toggle-lbl{font-size:13.5px;font-weight:500;}
.dark-toggle-sub{font-size:13px;color:var(--hint);margin-top:2px;}

/* CC card — add limit disponível prominently */
.cc-disponivel-badge{display:inline-flex;align-items:center;gap:5px;background:var(--accent-l);border:1px solid var(--accent);border-radius:8px;padding:4px 10px;font-size:13px;font-weight:700;color:var(--accent-d);}


.cc-bill-block{margin-bottom:4px;}
.cc-bill-items{padding:4px 0;}
.cc-bill-item{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--border2);overflow:hidden;}
.cc-bill-item:last-child{border-bottom:none;}
.cc-bill-item:hover .cc-bill-item-actions{opacity:1;}
.cc-bill-item-icon{font-size:14px;width:22px;text-align:center;flex-shrink:0;}
.cc-bill-item-info{flex:1;min-width:0;overflow:hidden;}
.cc-bill-item-desc{font-size:13px;font-weight:500;color:var(--text);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cc-bill-item-meta{font-size:12px;color:var(--hint);display:block;margin-top:2px;font-family:inherit;}
.cc-bill-item-amount{font-size:13px;font-weight:600;color:var(--red);flex-shrink:0;}

/* Font picker */
.font-picker{display:grid;grid-template-columns:1fr 1fr;gap:7px;width:100%;}
.font-btn{display:flex;flex-direction:column;align-items:flex-start;padding:10px 12px;background:var(--warm);border:1.5px solid var(--border);border-radius:11px;cursor:pointer;text-align:left;font-size:13px;font-weight:600;color:var(--text);transition:all 0.15s;line-height:1.3;}
.font-btn.active{border-color:var(--accent);background:var(--accent-l);color:var(--accent-d);}
.font-btn-sub{display:block;font-size:12.5px;font-weight:400;color:var(--hint);margin-top:2px;}
/* Goal done state */
.goal-card.goal-done{background:var(--sage-l);border-color:rgba(107,154,111,0.25);}
/* CC bill items hover show action buttons */
.cc-bill-item:hover .cc-bill-item-actions{opacity:1;}
.cc-bill-item-actions{opacity:0;transition:opacity 0.15s;display:flex;gap:4px;flex-shrink:0;}
/* Payment method picker */
.fm-pm-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:6px 0 4px;}
.fm-pm-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 4px;background:white;border:1px solid rgba(160,120,80,0.15);border-radius:11px;cursor:pointer;transition:all 0.15s;font-family:inherit;}
.fm-pm-btn.on-brown{background:var(--accent);border-color:var(--accent);}
.fm-pm-btn.on-brown span{color:white!important;}
/* Credit card picker inside form */
.fm-card-pick{display:flex;align-items:center;width:100%;padding:11px 14px;background:white;border:1px solid rgba(160,120,80,0.2);border-radius:11px;cursor:pointer;font-family:inherit;font-size:13.5px;color:var(--text);transition:all 0.15s;text-align:left;gap:0;}
.fm-card-pick.sel{background:rgba(160,80,50,0.1);border-color:var(--accent-d);color:var(--accent-d);}
.fm-card-pick:hover{border-color:var(--accent);}
/* Payment method badge on entry rows */
.pm-badge{display:inline-flex;align-items:center;gap:2px;font-size:10.5px;background:rgba(160,120,80,0.08);border-radius:20px;padding:1px 8px;color:var(--hint);font-weight:600;border:1px solid rgba(160,120,80,0.15);}
.pm-badge.credito{background:rgba(123,31,162,0.08);border-color:rgba(123,31,162,0.2);color:#7B1FA2;}
.pm-badge.pix{background:rgba(0,150,136,0.08);border-color:rgba(0,150,136,0.2);color:#00796B;}
.pm-badge.dinheiro{background:rgba(56,142,60,0.08);border-color:rgba(56,142,60,0.2);color:#2E7D32;}
.pm-badge.debito{background:rgba(21,101,192,0.08);border-color:rgba(21,101,192,0.2);color:#1565C0;}
.pm-badge.boleto{background:rgba(245,124,0,0.08);border-color:rgba(245,124,0,0.2);color:#E65100;}

.cc-card{border-radius:16px;padding:16px 18px;margin-bottom:4px;position:relative;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,0.14);max-width:100%;box-sizing:border-box;}
#cc-cards-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch;width:100%;}
#cc-cards-list>*{min-width:0;}
@media(max-width:1100px){#cc-cards-list{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:750px){#cc-cards-list{grid-template-columns:minmax(0,1fr);}}
.cc-card-chip{width:26px;height:20px;border-radius:4px;background:rgba(255,255,255,0.35);margin-bottom:10px;position:relative;overflow:hidden;}
.cc-card-chip::after{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(255,255,255,0.3);}
.cc-card-number{font-size:14px;color:rgba(255,255,255,0.8);letter-spacing:3px;margin-bottom:8px;font-family:monospace;}
.cc-card-name{font-size:17px;font-weight:700;color:white;}
.cc-card-bank{font-size:12px;color:rgba(255,255,255,0.6);letter-spacing:0.8px;text-transform:uppercase;margin-top:1px;}
.cc-card-limit-row{display:flex;justify-content:space-between;align-items:flex-end;margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,0.18);gap:4px;}
.cc-card-limit-lbl{font-size:10px;color:rgba(255,255,255,0.55);text-transform:uppercase;letter-spacing:0.7px;margin-bottom:3px;font-weight:600;}
.cc-card-limit-val{font-size:13px;font-weight:700;color:white;}
.cc-shine{position:absolute;top:-40px;right:-40px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,0.07);pointer-events:none;}
.cc-shine2{position:absolute;bottom:-60px;left:-30px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,0.04);pointer-events:none;}

.cc-detail{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin-bottom:16px;box-shadow:var(--shadow);}
.cc-detail-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border2);}
.cc-detail-row:last-child{border-bottom:none;}
.cc-detail-lbl{font-size:13px;color:var(--hint);}
.cc-detail-val{font-size:13px;font-weight:600;color:var(--text);}
.cc-limit-bar{height:6px;background:rgba(160,120,80,0.12);border-radius:3px;overflow:hidden;margin-top:8px;}
.cc-limit-fill{height:100%;border-radius:3px;transition:width 0.5s;}

.cc-spend-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border2);}
.cc-spend-row:last-child{border-bottom:none;}
.cc-spend-cat{font-size:17px;width:28px;text-align:center;flex-shrink:0;}
.cc-spend-info{flex:1;min-width:0;}
.cc-spend-desc{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cc-spend-meta{font-size:12px;color:var(--hint);margin-top:2px;display:flex;align-items:center;gap:5px;font-family:inherit;}
.cc-spend-inst{font-size:12.5px;color:var(--accent-d);background:var(--accent-l);border-radius:5px;padding:1px 6px;font-weight:600;}
.cc-spend-amount{font-size:14px;font-weight:700;color:var(--red);flex-shrink:0;}
.cc-spend-del{background:none;border:none;color:var(--hint);cursor:pointer;font-size:14px;opacity:0;transition:opacity 0.15s;padding:0 3px;flex-shrink:0;}
.cc-spend-row:hover .cc-spend-del{opacity:1;}

.cc-color-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:6px 0 12px;}
.cc-color-opt{height:34px;border-radius:9px;cursor:pointer;border:2.5px solid transparent;background:white;transition:all 0.15s;}
.cc-color-opt.sel{border-color:var(--text);transform:scale(0.9);}

.cc-actions{display:flex;gap:8px;margin-top:12px;align-items:center;}
.cc-action-btn{flex:1;padding:9px 6px;background:white;border:1px solid var(--border);border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;color:var(--soft);transition:all 0.15s;}
.cc-action-btn:hover{border-color:var(--accent);background:rgba(239,68,68,0.07);color:var(--red);}
.cc-action-btn.paid-btn:hover{background:var(--green-l);color:var(--green);border-color:rgba(46,125,50,0.5);}
.cc-action-btn.primary{background:var(--accent);color:white;border-color:var(--accent);}
.cc-action-btn.paid-btn{background:var(--green-l);border-color:rgba(46,125,50,0.35);color:var(--green);}
.cc-action-btn.danger{background:var(--accent-l);border-color:var(--accent);color:var(--accent-d);}



@media(max-width:1024px) and (min-width:701px){
  .grid3{grid-template-columns:1fr 1fr!important;}
  .grid4{grid-template-columns:1fr 1fr!important;}
  .fin-summary{grid-template-columns:1fr 1fr!important;}
  .ph h1{font-size:26px;}
}

@media(max-width:700px){
          }


/* ── Mobile readability boost ── */
@media(max-width:700px){
  body{font-size:15.5px!important;}
  .ph h1{font-size:clamp(21px,5.5vw,28px)!important;}
  .ph p{font-size:13.5px!important;}
  .card-title{font-size:13px!important;letter-spacing:1.2px!important;}
  .stat-num{font-size:22px!important;}
  .stat-label{font-size:12.5px!important;}
  .fin-sum-lbl{font-size:12.5px!important;}
  .fin-sum-total{font-size:20px!important;}
  .fin-sum-row-lbl{font-size:13px!important;}
  .fin-sum-row-val{font-size:13px!important;}
  .fin-tab-btn{font-size:14px!important;padding:11px 8px!important;}
  .form-label{font-size:13px!important;}
  .form-input{font-size:16px!important;padding:13px 14px!important;border-radius:12px!important;}
  .fm-lbl{font-size:13px!important;}
  .fm-inp{font-size:16px!important;padding:13px 14px!important;border-radius:12px!important;}
  .fm-save-btn{font-size:15.5px!important;padding:16px!important;border-radius:14px!important;}
  .fin-sheet-title{font-size:19px!important;}
  .fm-type-btn{font-size:13px!important;padding:10px!important;}
  .fm-cat-lbl{font-size:14px!important;}
  .btn-primary{font-size:16px!important;padding:14px!important;}
  .add-btn{font-size:14.5px!important;}
  .add-input{font-size:14.5px!important;padding:11px 12px!important;}
  .empty-state p{font-size:14px!important;}
  .goal-title{font-size:16px!important;}
  .goal-desc{font-size:13.5px!important;}
  .mob-nav-label{font-size:10px!important;}
  select.form-input,select.fm-inp{font-size:16px!important;}
}
