:root{
  --bg:#0a0a0f; --surface:#13131a; --card:#1c1c28; --border:#2a2a3a;
  --accent:#7c5cfc; --accent2:#fc5c7d;
  --green:#2ecc71; --yellow:#f1c40f; --red:#e74c3c;
  --text:#f0f0f8; --muted:#6b6b88; --radius:16px;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{background:var(--bg);color:var(--text);font-family:'Nunito',sans-serif;min-height:100vh;overscroll-behavior:none;}
input,select,button{font-family:inherit;}

/* ── LOGIN ── */
.login-screen{position:fixed;inset:0;background:linear-gradient(160deg,#1a1030,#0a0a0f);display:flex;align-items:center;justify-content:center;padding:24px;z-index:500;}
.login-box{width:100%;max-width:360px;text-align:center;}
.login-logo{font-size:3rem;}
.login-title{font-family:'Bebas Neue',sans-serif;font-size:2.6rem;letter-spacing:5px;margin-top:8px;}
.login-sub{color:var(--muted);font-size:.85rem;margin-bottom:28px;letter-spacing:1px;}
.login-input{width:100%;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:15px 16px;color:var(--text);font-size:1rem;margin-bottom:12px;outline:none;transition:border-color .2s;}
.login-input:focus{border-color:var(--accent);}
.login-btn{width:100%;background:linear-gradient(135deg,var(--accent),var(--accent2));border:none;border-radius:12px;padding:16px;color:#fff;font-weight:800;font-size:1rem;cursor:pointer;margin-top:6px;letter-spacing:.5px;}
.login-btn:active{transform:scale(.98);}
.login-error{color:var(--red);font-size:.85rem;margin-top:14px;min-height:18px;font-weight:700;}

/* ── HEADER ── */
.header{background:linear-gradient(135deg,#1a1030,#0f0f1f);padding:max(44px,env(safe-area-inset-top)) 20px 26px;position:relative;overflow:hidden;}
.header::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:36px;background:var(--bg);border-radius:36px 36px 0 0;}
.header-glow{position:absolute;top:-40px;right:-40px;width:200px;height:200px;background:radial-gradient(circle,#7c5cfc33,transparent 70%);pointer-events:none;}
.header-top{display:flex;align-items:center;justify-content:space-between;}
.app-title{font-family:'Bebas Neue',sans-serif;font-size:2rem;letter-spacing:2px;color:#fff;}
.month-nav{display:flex;align-items:center;justify-content:space-between;margin-top:18px;background:#ffffff0d;border-radius:12px;padding:8px 14px;backdrop-filter:blur(10px);position:relative;z-index:1;}
.month-nav button{background:none;border:none;color:var(--text);font-size:1.4rem;cursor:pointer;padding:2px 10px;border-radius:8px;}
.month-nav button:active{background:#ffffff20;}
.month-label{font-family:'Bebas Neue',sans-serif;font-size:1.25rem;letter-spacing:2px;color:#fff;}

/* ── BODY / TABS ── */
.tab-page{animation:fade .2s ease;}
@keyframes fade{from{opacity:0}to{opacity:1}}
.body{padding:18px 16px 120px;}
.section-title{font-size:.68rem;text-transform:uppercase;letter-spacing:2.5px;color:var(--muted);font-weight:700;margin-bottom:12px;margin-top:4px;}

/* Summary cards */
.summary-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;}
.summary-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;text-align:center;}
.summary-card .s-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px;}
.summary-card .s-value{font-family:'Bebas Neue',sans-serif;font-size:1.6rem;letter-spacing:1px;margin-top:4px;}
.summary-card.total .s-value{color:var(--accent2);transition:color .4s;}
.summary-card.paid .s-value{color:var(--green);}
.summary-card .s-sub{font-size:.65rem;color:var(--muted);margin-top:3px;letter-spacing:.3px;}

/* Progress */
.progress-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:22px;}
.progress-top{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);margin-bottom:10px;}
.progress-top span{color:var(--text);font-weight:700;}
.progress-bar{background:var(--border);border-radius:99px;height:8px;overflow:hidden;}
.progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .5s cubic-bezier(.4,0,.2,1);width:0%;}

/* Section label inside bills */
.bills-section-label{font-size:.68rem;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin:16px 0 8px 2px;font-weight:700;}

/* Bill card */
.bill-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;padding:14px 16px;display:flex;align-items:center;gap:12px;transition:opacity .3s,transform .15s;position:relative;overflow:hidden;user-select:none;}
.bill-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:4px 0 0 4px;}
.bill-card.emp::before{background:var(--yellow);}
.bill-card.fix::before{background:var(--green);}
.bill-card.car::before{background:var(--accent2);}
.bill-card.overdue{border-color:#e74c3c55;}
.bill-card.overdue::after{content:'⚠ VENCIDA';position:absolute;top:8px;right:12px;font-size:.6rem;color:var(--red);font-weight:800;letter-spacing:1px;}
.bill-card.paid-card{opacity:.38;}
.bill-card.paid-card .bill-value{text-decoration:line-through;color:var(--muted);}
.bill-card:active{transform:scale(.98);}
.bill-info{flex:1;min-width:0;cursor:pointer;}
.bill-name{font-weight:700;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bill-due{font-size:.75rem;color:var(--muted);margin-top:2px;}
.bill-due.soon{color:var(--yellow);font-weight:700;}
.bill-due.overdue-text{color:var(--red);font-weight:700;}
.bill-badge{font-size:.6rem;padding:2px 7px;border-radius:20px;font-weight:700;display:inline-block;margin-top:4px;text-transform:uppercase;letter-spacing:.5px;}
.badge-emp{background:#f1c40f20;color:var(--yellow);}
.badge-fix{background:#2ecc7120;color:var(--green);}
.badge-car{background:#fc5c7d20;color:var(--accent2);}
.bill-right{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.bill-value{font-family:'Bebas Neue',sans-serif;font-size:1.2rem;letter-spacing:.5px;}
.check-btn{width:30px;height:30px;border-radius:50%;border:2px solid var(--border);background:none;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;font-size:0;cursor:pointer;}
.check-btn.checked{background:var(--green);border-color:var(--green);font-size:15px;}
.check-btn.checked::after{content:'✓';color:#000;font-weight:900;}
.bill-edit{background:none;border:none;color:var(--muted);font-size:.95rem;cursor:pointer;padding:2px;flex-shrink:0;}

/* Add button */
.add-btn{width:100%;border-radius:var(--radius);padding:15px;display:flex;align-items:center;justify-content:center;gap:10px;font-weight:700;font-size:.9rem;cursor:pointer;margin:6px 0 12px;letter-spacing:.3px;transition:transform .15s;}
.add-btn:active{transform:scale(.98);}
.add-btn.purple{background:#7c5cfc15;border:1px dashed #7c5cfc55;color:var(--accent);}
.add-btn.green{background:#2ecc7115;border:1px dashed #2ecc7155;color:var(--green);}
.add-icon{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#000;font-size:1.1rem;font-weight:900;flex-shrink:0;}
.add-icon.purple{background:var(--accent);color:#fff;}
.add-icon.green{background:var(--green);}

/* Bottom summary (contas) */
.bottom-summary{position:fixed;bottom:64px;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);padding:10px 20px;display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);z-index:40;}
.bottom-summary strong{display:block;font-family:'Bebas Neue',sans-serif;font-size:1.3rem;line-height:1;}
.bottom-summary .right{text-align:right;}
.c-pink{color:var(--accent2);} .c-green{color:var(--green);} .c-red{color:var(--red);} .c-yellow{color:var(--yellow);}

/* ── PAINEL (dashboard) ── */
.dash-hero{display:flex;align-items:center;gap:18px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 16px;margin-bottom:8px;}
.dash-ring{width:92px;height:92px;border-radius:50%;flex-shrink:0;background:conic-gradient(var(--green) 0deg,var(--border) 0deg);display:flex;align-items:center;justify-content:center;transition:background .6s cubic-bezier(.4,0,.2,1);}
.dash-ring-inner{width:72px;height:72px;border-radius:50%;background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;}
.dash-ring-pct{font-family:'Bebas Neue',sans-serif;font-size:1.5rem;color:var(--green);line-height:1;}
.dash-ring-lbl{font-size:.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;}
.dash-hero-info{flex:1;min-width:0;}
.dash-hero-label{font-size:.68rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);font-weight:700;}
.dash-hero-value{font-family:'Bebas Neue',sans-serif;font-size:2.3rem;color:var(--accent2);line-height:1.05;margin-top:2px;}
.dash-hero-sub{font-size:.75rem;color:var(--muted);margin-top:4px;}
.dash-hero-sub strong{color:var(--text);}

.cat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;position:relative;overflow:hidden;cursor:pointer;transition:transform .15s;}
.cat-card:active{transform:scale(.99);}
.cat-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--cat-color);}
.cat-top{display:flex;justify-content:space-between;align-items:center;}
.cat-name{font-weight:800;font-size:.95rem;display:flex;align-items:center;gap:8px;}
.cat-ic{font-size:1.1rem;}
.cat-total{font-family:'Bebas Neue',sans-serif;font-size:1.35rem;letter-spacing:.5px;}
.cat-meta{font-size:.72rem;color:var(--muted);margin:6px 0 9px;}
.cat-bar{background:var(--border);border-radius:99px;height:6px;overflow:hidden;}
.cat-bar-fill{height:100%;border-radius:99px;transition:width .5s cubic-bezier(.4,0,.2,1);}
.cat-foot{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);margin-top:7px;font-weight:700;}

.dash-fat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:transform .15s;}
.dash-fat-card:active{transform:scale(.99);}
.dash-fat-row{display:flex;justify-content:space-between;align-items:flex-start;}
.dash-fat-right{text-align:right;}
.dash-fat-lbl{font-size:.65rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);font-weight:700;}
.dash-fat-val{font-family:'Oswald',sans-serif;font-size:1.5rem;font-weight:600;margin-top:3px;}
.dash-fat-meta{font-size:.74rem;color:var(--muted);text-align:center;margin-top:8px;}
.dash-fat-meta strong{color:var(--text);}

.due-row{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:8px;cursor:pointer;}
.due-row.overdue{border-color:#e74c3c44;}
.due-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.due-dot.red{background:var(--red);box-shadow:0 0 8px var(--red);}
.due-dot.yellow{background:var(--yellow);box-shadow:0 0 8px var(--yellow);}
.due-info{flex:1;min-width:0;}
.due-name{font-weight:700;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.due-when{font-size:.72rem;margin-top:1px;}
.due-when.soon{color:var(--yellow);font-weight:700;} .due-when.overdue-text{color:var(--red);font-weight:700;}
.due-val{font-family:'Bebas Neue',sans-serif;font-size:1.15rem;flex-shrink:0;}
.dash-ok{text-align:center;color:var(--muted);font-size:.82rem;padding:16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);}

/* ── FATURAMENTO ── */
.hero{position:relative;padding:40px 20px 30px;text-align:center;overflow:hidden;}
.hero-bg-glow{position:absolute;inset:0;transition:background 1s ease;z-index:0;}
.hero-bg-glow.negative{background:radial-gradient(ellipse at 50% 0%,#ff2d5518 0%,transparent 70%);}
.hero-bg-glow.positive{background:radial-gradient(ellipse at 50% 0%,#00e67618 0%,transparent 70%);}
.hero-bg-glow.neutral{background:radial-gradient(ellipse at 50% 0%,#ffd60a12 0%,transparent 70%);}
.hero-label{position:relative;z-index:1;font-size:.68rem;text-transform:uppercase;letter-spacing:3px;color:var(--muted);font-weight:700;margin-bottom:8px;}
.saldo-value{position:relative;z-index:1;font-family:'Oswald',sans-serif;font-size:3.4rem;font-weight:700;letter-spacing:-1px;line-height:1;transition:color .6s;}
.saldo-value.negative{color:var(--red);} .saldo-value.positive{color:var(--green);} .saldo-value.neutral{color:var(--yellow);}
.saldo-status{position:relative;z-index:1;margin-top:10px;font-size:.78rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;}
.saldo-status.negative{color:var(--red);} .saldo-status.positive{color:var(--green);} .saldo-status.neutral{color:var(--yellow);}
.burn-ticker{position:relative;z-index:1;margin-top:14px;display:inline-flex;align-items:center;gap:8px;background:#ff2d5514;border:1px solid #ff2d5530;border-radius:99px;padding:6px 14px;font-size:.75rem;color:var(--red);font-weight:700;}
.burn-dot{width:6px;height:6px;background:var(--red);border-radius:50%;animation:pulse-dot 1s infinite;}
.traffic-control{position:relative;z-index:1;margin-top:12px;display:flex;flex-direction:column;align-items:center;gap:7px;}
.traffic-control #trafficSince{font-size:.7rem;color:var(--muted);}
.traffic-reset{background:#7c5cfc18;border:1px solid #7c5cfc55;color:var(--accent);border-radius:99px;padding:7px 16px;font-weight:700;font-size:.78rem;cursor:pointer;}
.traffic-reset:active{transform:scale(.97);}
.traffic-clear{background:none;border:none;color:var(--muted);font-size:.7rem;cursor:pointer;text-decoration:underline;padding:2px;}
@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}

.metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;}
.metric-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;position:relative;overflow:hidden;}
.metric-card::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;}
.metric-card.m-gasto::after{background:var(--red);}
.metric-card.m-receita::after{background:var(--green);}
.metric-card.m-meta::after{background:var(--yellow);}
.metric-card.m-clientes::after{background:#a78bfa;}
.metric-label{font-size:.65rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);font-weight:700;}
.metric-value{font-family:'Oswald',sans-serif;font-size:1.5rem;font-weight:600;margin-top:6px;}
.m-gasto .metric-value{color:var(--red);} .m-receita .metric-value{color:var(--green);}
.m-meta .metric-value{color:var(--yellow);} .m-clientes .metric-value{color:#a78bfa;}
.metric-sub{font-size:.7rem;color:var(--muted);margin-top:2px;}

.meta-progress{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px;}
.meta-progress-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.meta-progress-title{font-size:.68rem;text-transform:uppercase;letter-spacing:2px;color:var(--muted);font-weight:700;}
.meta-progress-pct{font-family:'Oswald',sans-serif;font-size:1.1rem;font-weight:600;}
.progress-track{background:var(--border);border-radius:99px;height:6px;overflow:hidden;margin-bottom:8px;}
.progress-fill-bar{height:100%;border-radius:99px;transition:width .6s cubic-bezier(.4,0,.2,1);background:linear-gradient(90deg,var(--red),var(--yellow),var(--green));}
.meta-faltam{font-size:.75rem;color:var(--muted);text-align:center;}
.meta-faltam strong{color:var(--text);}

.client-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;align-items:center;gap:12px;margin-bottom:8px;position:relative;overflow:hidden;animation:slide-in .25s ease;}
.client-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--green);border-radius:3px 0 0 3px;}
@keyframes slide-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.client-num{font-family:'Oswald',sans-serif;font-size:1.3rem;font-weight:700;color:var(--green);width:28px;text-align:center;flex-shrink:0;}
.client-info{flex:1;min-width:0;}
.client-name{font-weight:700;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.client-date{font-size:.7rem;color:var(--muted);margin-top:2px;}
.client-value{font-family:'Oswald',sans-serif;font-size:1.1rem;font-weight:600;color:var(--green);flex-shrink:0;}
.client-del{background:none;border:none;color:var(--muted);font-size:1rem;cursor:pointer;padding:4px 6px;flex-shrink:0;}
.client-del:active{color:var(--red);}
.empty-state{text-align:center;padding:24px 16px;color:var(--muted);font-size:.85rem;}
.empty-state .empty-icon{font-size:2rem;margin-bottom:8px;}

/* Settings */
.settings-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 16px;}
.settings-card label{display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-weight:700;}
.settings-card .modal-input{margin-bottom:16px;}
.account-row{font-size:.9rem;color:var(--muted);margin-bottom:14px;}
.account-row strong{color:var(--text);}
.btn-logout{width:100%;background:#e74c3c18;border:1px solid #e74c3c44;color:var(--red);border-radius:12px;padding:13px;font-weight:700;cursor:pointer;}
.app-version{text-align:center;color:var(--muted);font-size:.7rem;margin-top:24px;}

/* Modais */
.modal-input{width:100%;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 16px;color:var(--text);font-size:1rem;margin-bottom:12px;outline:none;transition:border-color .2s;}
.modal-input:focus{border-color:var(--accent);}
.modal-input::placeholder{color:var(--muted);}
select.modal-input{appearance:none;}
.modal-overlay{position:fixed;inset:0;background:#000000cc;display:flex;align-items:flex-end;justify-content:center;z-index:100;opacity:0;pointer-events:none;transition:opacity .25s;}
.modal-overlay.show{opacity:1;pointer-events:all;}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:24px 24px 0 0;padding:26px 20px max(34px,env(safe-area-inset-bottom));width:100%;max-width:480px;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);}
.modal-overlay.show .modal{transform:translateY(0);}
.modal-title{font-family:'Oswald',sans-serif;font-size:1.4rem;font-weight:600;letter-spacing:1px;margin-bottom:18px;}
.modal-title.purple{color:var(--accent);} .modal-title.green{color:var(--green);}
.modal-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px;}
.btn-cancel{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px;color:var(--muted);font-weight:700;font-size:.9rem;cursor:pointer;}
.btn-confirm{background:var(--accent);border:none;border-radius:12px;padding:14px;color:#fff;font-weight:800;font-size:.9rem;cursor:pointer;}
.btn-confirm.green{background:var(--green);color:#000;}
.btn-confirm.full{width:100%;margin-top:4px;}
.btn-confirm:active{transform:scale(.98);}
.btn-delete{width:100%;margin-top:12px;background:none;border:none;color:var(--red);font-weight:700;font-size:.82rem;cursor:pointer;padding:8px;}

/* Bottom nav */
.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);display:flex;padding-bottom:env(safe-area-inset-bottom);z-index:60;}
.nav-item{flex:1;background:none;border:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 0 10px;font-size:.64rem;font-weight:700;cursor:pointer;letter-spacing:.3px;transition:color .2s;}
.nav-item .nav-ic{font-size:1.25rem;filter:grayscale(.6);opacity:.7;transition:all .2s;}
.nav-item.active{color:var(--text);}
.nav-item.active .nav-ic{filter:none;opacity:1;transform:translateY(-1px);}

/* Toast */
.toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%) translateY(12px);background:var(--green);color:#000;font-weight:800;font-size:.82rem;padding:10px 20px;border-radius:99px;opacity:0;transition:all .3s;white-space:nowrap;z-index:200;pointer-events:none;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast.red{background:var(--red);color:#fff;}
