*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0d0d0d;
  --glass:rgba(255,255,255,0.04);
  --glass2:rgba(255,255,255,0.08);
  --border:rgba(255,255,255,0.08);
  --border2:rgba(255,255,255,0.15);
  --red:#e63329;--red2:#c0251c;
  --red-bg:rgba(230,51,41,0.1);--red-bd:rgba(230,51,41,0.3);
  --gold:#d4a843;--gold2:#b8922a;
  --gold-bg:rgba(212,168,67,0.1);
  --green:#2ecc71;
  --green-bg:rgba(46,204,113,0.1);--green-bd:rgba(46,204,113,0.3);
  --amber:#f39c12;--amber-bg:rgba(243,156,18,0.1);
  --blue:#3498db;--blue-bg:rgba(52,152,219,0.1);
  --text:#f0e8d8;--text2:#a89880;--text3:#6b5d4f;
  --font:-apple-system,'SF Pro Rounded','SF Pro Display',BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  --font-display:-apple-system,'SF Pro Rounded','SF Pro Display',BlinkMacSystemFont,system-ui,sans-serif;
  --rad:10px;--radlg:14px;
}
html{background:var(--bg)}
body{
  font-family:var(--font);
  background:var(--bg);min-height:100vh;color:var(--text);
  background-image:
    radial-gradient(ellipse at 20% 50%,rgba(230,51,41,0.04) 0%,transparent 60%),
    radial-gradient(ellipse at 80% 20%,rgba(212,168,67,0.03) 0%,transparent 50%),
    url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.02'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:0;opacity:.4}

/* ── LOADING ─────────────────────────────────────────────── */
#loading{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:9999}
#loading .flame-icon{width:62px;height:62px;color:var(--red);opacity:.9}
#loading h2{font-family:var(--font-display);font-size:24px;color:var(--text);letter-spacing:.12em;text-transform:uppercase;font-weight:600}
#loading p{font-size:15px;color:var(--text3);letter-spacing:.04em}
.spinner{width:30px;height:30px;border:2px solid rgba(255,255,255,0.08);border-top-color:var(--red);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── LOGIN ───────────────────────────────────────────────── */
#login-screen{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:var(--bg);background-image:radial-gradient(ellipse at center,rgba(230,51,41,0.06) 0%,transparent 70%)}
.login-box{width:420px;max-width:92vw;background:rgba(255,255,255,0.04);backdrop-filter:blur(24px);border:1px solid rgba(230,51,41,0.2);border-radius:22px;padding:44px;display:flex;flex-direction:column;align-items:center;gap:24px;box-shadow:0 0 60px rgba(230,51,41,0.1),0 0 120px rgba(0,0,0,.5)}
.login-flame{width:60px;height:60px;color:var(--red)}
.login-title{font-family:var(--font-display);font-size:26px;color:var(--text);letter-spacing:.1em;text-align:center;font-weight:700}
.login-sub{font-size:12px;color:var(--text3);letter-spacing:.08em;text-transform:uppercase;margin-top:4px}
.login-fields{width:100%;display:flex;flex-direction:column;gap:16px}
.login-field{display:flex;flex-direction:column;gap:7px}
.login-field label{font-size:11px;font-weight:600;color:var(--text3);letter-spacing:.1em;text-transform:uppercase}
.login-field input{padding:13px 16px;background:rgba(255,255,255,0.06);border:1px solid var(--border2);border-radius:var(--rad);color:var(--text);font-size:15px;font-family:var(--font);outline:none;transition:all .2s}
.login-field input:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(230,51,41,0.15);background:rgba(255,255,255,0.08)}
.login-field input::placeholder{color:var(--text3)}
.btn-login{width:100%;padding:14px;background:linear-gradient(135deg,var(--red),var(--red2));border:none;border-radius:var(--rad);color:white;font-size:15px;font-weight:600;cursor:pointer;font-family:var(--font);letter-spacing:.04em;transition:all .2s;box-shadow:0 3px 16px rgba(230,51,41,0.25)}
.btn-login:hover{transform:translateY(-1px);box-shadow:0 6px 28px rgba(230,51,41,0.4)}
.login-err{font-size:13px;color:var(--red);text-align:center;display:none}

/* ── SHELL ───────────────────────────────────────────────── */
.shell{position:relative;z-index:1;max-width:1280px;margin:0 auto;padding:24px 20px}

/* ── TOPBAR ──────────────────────────────────────────────── */
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:14px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:14px}
.brand-flame{width:42px;height:42px;color:var(--red)}
.brand-name{font-family:var(--font-display);font-size:22px;color:var(--text);font-weight:700;letter-spacing:.04em}
.brand-sub{font-size:11px;color:var(--text3);letter-spacing:.1em;text-transform:uppercase;margin-top:2px}
.topbar-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.month-sel{
  padding:10px 40px 10px 16px;
  background:var(--glass);
  border:1px solid var(--border2);
  border-radius:var(--rad);
  font-family:var(--font);font-size:14px;color:var(--text);
  outline:none;cursor:pointer;backdrop-filter:blur(12px);
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a89880' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
}
.month-sel option{background:#1a1a1a;color:var(--text)}
.month-sel:focus{border-color:var(--red)}
.sync-pill{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text3);padding:7px 14px;background:var(--glass);border:1px solid var(--border);border-radius:20px;backdrop-filter:blur(12px)}
.sync-dot{width:7px;height:7px;border-radius:50%;background:var(--green)}
.sync-dot.syncing{background:var(--amber);animation:pulse .8s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.btn-logout{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:transparent;border:1px solid var(--border2);border-radius:var(--rad);color:var(--text3);font-size:13px;cursor:pointer;font-family:var(--font);transition:all .15s}
.btn-logout:hover{border-color:var(--red);color:var(--red)}
.btn-logout svg{width:15px;height:15px;flex-shrink:0;pointer-events:none}

/* ── NAV ─────────────────────────────────────────────────── */
.nav{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:24px;background:var(--glass);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radlg);padding:5px}
.nav button{padding:10px 17px;border-radius:9px;border:none;background:transparent;color:var(--text2);font-size:13px;font-weight:500;cursor:pointer;font-family:var(--font);transition:all .15s;white-space:nowrap;display:flex;align-items:center;gap:6px;letter-spacing:.01em}
.nav button:hover{background:var(--glass2);color:var(--text)}
.nav button.active{background:linear-gradient(135deg,var(--red),var(--red2));color:white;font-weight:600;box-shadow:0 2px 12px rgba(230,51,41,0.28)}
.nav button svg{width:15px;height:15px;flex-shrink:0;opacity:.85}

/* ── PANELS ──────────────────────────────────────────────── */
.panel{display:none;flex-direction:column;gap:18px;animation:fi .22s ease}
.panel.active{display:flex}
@keyframes fi{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}

/* ── CARD ────────────────────────────────────────────────── */
.card{background:var(--glass);backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:var(--radlg);padding:24px;box-shadow:0 4px 24px rgba(0,0,0,.3)}
.card-title{font-family:var(--font-display);font-size:16px;color:var(--text);font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px;letter-spacing:.01em}
.card-title svg{width:17px;height:17px;flex-shrink:0;opacity:.6}
.sec-lbl{font-size:11px;font-weight:600;color:var(--text3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px}
.divider{height:1px;background:var(--border);margin:12px 0}

/* ── METRICS ─────────────────────────────────────────────── */
.metrics-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.metric{background:var(--glass);backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:var(--radlg);padding:22px;position:relative;overflow:hidden;transition:border-color .2s}
.metric::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--clr,var(--border))}
.metric::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 50% -20%,var(--clr-glow,transparent) 0%,transparent 70%);pointer-events:none}
.metric .ml{font-size:11px;color:var(--text3);margin-bottom:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.metric .mv{font-size:26px;font-weight:300;color:var(--text);font-family:var(--font-display)}
.metric .ms{font-size:12px;color:var(--text3);margin-top:5px}
.metric.green{--clr:var(--green);--clr-glow:rgba(46,204,113,0.08)}
.metric.red{--clr:var(--red);--clr-glow:rgba(230,51,41,0.08)}
.metric.gold{--clr:var(--gold);--clr-glow:rgba(212,168,67,0.08)}
.metric.blue{--clr:var(--blue);--clr-glow:rgba(52,152,219,0.08)}
.metric:hover{border-color:var(--clr,var(--border))}

/* ── CAIXA FINAL ─────────────────────────────────────────── */
.caixa-final{padding:28px 32px;border-radius:var(--radlg);display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;backdrop-filter:blur(20px);position:relative;overflow:hidden}
.caixa-final.pos{background:rgba(46,204,113,0.06);border:1px solid rgba(46,204,113,0.2)}
.caixa-final.neg{background:rgba(230,51,41,0.06);border:1px solid rgba(230,51,41,0.2)}
.cf-label{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;gap:7px}
.cf-label svg{width:16px;height:16px}
.cf-label.pos{color:var(--green)}
.cf-label.neg{color:var(--red)}
.cf-val{font-family:var(--font-display);font-size:42px;font-weight:300}
.cf-val.pos{color:var(--green)}
.cf-val.neg{color:var(--red)}

/* ── CHARTS ──────────────────────────────────────────────── */
.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:680px){.charts-grid{grid-template-columns:1fr}}
.chart-wrap{position:relative;width:100%;height:220px;margin-top:12px}

/* ── TABLE ───────────────────────────────────────────────── */
.tbl-wrap{overflow-x:auto;border-radius:var(--rad);border:1px solid var(--border)}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-size:11px;font-weight:600;color:var(--text3);letter-spacing:.08em;text-transform:uppercase;padding:12px 16px;border-bottom:1px solid var(--border);background:rgba(255,255,255,0.03)}
td{padding:11px 16px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--glass)}

/* ── ICON BUTTONS ────────────────────────────────────────── */
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:none;background:transparent;cursor:pointer;transition:all .15s;flex-shrink:0}
.icon-btn svg{width:16px;height:16px;pointer-events:none}
.icon-btn.edit{color:var(--text3)}
.icon-btn.edit:hover{background:var(--glass2);color:var(--gold)}
.icon-btn.del{color:var(--text3)}
.icon-btn.del:hover{background:var(--red-bg);color:var(--red)}

/* ── MENSALIDADES ────────────────────────────────────────── */
.mens-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.filho-card{background:var(--glass);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--rad);padding:16px;display:flex;align-items:center;gap:14px;transition:all .2s;cursor:pointer;position:relative;overflow:hidden}
.filho-card:hover{border-color:var(--border2);transform:translateY(-1px);box-shadow:0 4px 20px rgba(0,0,0,.3)}
.filho-card.pago{border-left:2px solid var(--green)}
.filho-card.pago::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 0 50%,rgba(46,204,113,0.05) 0%,transparent 60%);pointer-events:none}
.filho-card.pendente{border-left:2px solid var(--amber)}
.filho-card.isento{border-left:2px solid var(--text3);opacity:.6}
.fc-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:16px;color:white;flex-shrink:0;font-weight:600}
.fc-info{flex:1;min-width:0}
.fc-name{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-valor{font-size:12px;color:var(--text3);margin-top:3px}
.fc-check{width:30px;height:30px;border-radius:50%;border:2px solid var(--border2);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}
.fc-check.checked{background:var(--green);border-color:var(--green);box-shadow:0 0 10px rgba(46,204,113,0.3)}
.fc-check svg{width:13px;height:13px;stroke:white;fill:none;stroke-width:3;display:none}
.fc-check.checked svg{display:block}
.mens-stats{display:flex;gap:24px;flex-wrap:wrap;padding:18px 24px;background:var(--glass);backdrop-filter:blur(16px);border-radius:var(--rad);border:1px solid var(--border)}
.ms-item .msv{font-family:var(--font-display);font-size:26px;color:var(--text);font-weight:300}
.ms-item .msl{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-top:3px}
.progress-bar{height:5px;background:rgba(255,255,255,0.08);border-radius:3px;overflow:hidden;flex:1;min-width:120px;margin-top:12px}
.progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--green),rgba(46,204,113,0.5));transition:width .5s ease}
.mens-filter{display:flex;gap:7px;flex-wrap:wrap}
.flt-btn{padding:6px 14px;border-radius:20px;border:1px solid var(--border2);background:transparent;color:var(--text2);font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font);transition:all .15s;display:inline-flex;align-items:center;gap:5px}
.flt-btn svg{width:13px;height:13px;flex-shrink:0;pointer-events:none}
.flt-btn.active{background:var(--red);border-color:var(--red);color:white;box-shadow:0 1px 8px rgba(230,51,41,0.25)}

/* ── FORMS ───────────────────────────────────────────────── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:500px){.form-grid{grid-template-columns:1fr}}
.fg{display:flex;flex-direction:column;gap:6px}
.fg label{font-size:11px;font-weight:600;color:var(--text3);letter-spacing:.1em;text-transform:uppercase}
.fg input,.fg select,.fg textarea{padding:11px 14px;background:rgba(255,255,255,0.05);border:1px solid var(--border2);border-radius:var(--rad);color:var(--text);font-size:14px;font-family:var(--font);outline:none;transition:all .2s}
.fg select{
  padding-right:40px;
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a89880' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-color:rgba(255,255,255,0.05);
}
.fg input::placeholder{color:var(--text3)}
.fg select option{background:#1a1a1a;color:var(--text)}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(230,51,41,0.1);background:rgba(255,255,255,0.07)}
.fg textarea{resize:vertical;min-height:78px}
.btn-primary{padding:11px 22px;background:linear-gradient(135deg,var(--red),var(--red2));border:none;border-radius:var(--rad);color:white;font-size:14px;font-weight:600;cursor:pointer;font-family:var(--font);transition:all .2s;box-shadow:0 2px 10px rgba(230,51,41,0.2);display:inline-flex;align-items:center;gap:6px}
.btn-primary svg{width:15px;height:15px;flex-shrink:0;pointer-events:none}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 3px 16px rgba(230,51,41,0.3)}
.btn-secondary{padding:9px 16px;background:var(--glass);border:1px solid var(--border2);border-radius:var(--rad);color:var(--text2);font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font);transition:all .15s;backdrop-filter:blur(12px);display:inline-flex;align-items:center;gap:6px}
.btn-secondary svg{width:13px;height:13px;flex-shrink:0;pointer-events:none}
.btn-secondary:hover{border-color:var(--red);color:var(--red)}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}

/* ── GASTOS ──────────────────────────────────────────────── */
.gasto-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}
.gasto-row:last-child{border:none}
.gr-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.gr-info{flex:1}
.gr-nome{font-size:14px;font-weight:600;color:var(--text)}
.gr-val{font-size:15px;font-weight:600;color:var(--red);min-width:100px;text-align:right}

/* ── SONHOS ──────────────────────────────────────────────── */
.sonho-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}
.sonho-card{background:var(--glass);backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:var(--radlg);padding:22px;display:flex;flex-direction:column;gap:16px;position:relative;overflow:hidden;transition:border-color .2s}
.sonho-card::after{content:'';position:absolute;top:0;right:0;width:110px;height:110px;background:radial-gradient(circle,rgba(212,168,67,0.07) 0%,transparent 70%);pointer-events:none}
.sonho-card:hover{border-color:rgba(212,168,67,0.3)}
.sonho-nome{font-family:var(--font-display);font-size:17px;color:var(--text);font-weight:600}
.sonho-desc{font-size:13px;color:var(--text3);line-height:1.6}
.sonho-progress{height:7px;background:rgba(255,255,255,0.06);border-radius:4px;overflow:hidden}
.sonho-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--gold),rgba(212,168,67,0.5));transition:width .6s ease;box-shadow:0 0 8px rgba(212,168,67,0.3)}
.sonho-pct{font-size:12px;color:var(--text3);text-align:right;margin-top:5px}
.sonho-meta{font-size:13px;color:var(--text2)}
.sonho-meta strong{color:var(--gold)}
.sonho-aporte{display:flex;gap:7px}
.sonho-aporte input{flex:1;padding:9px 13px;background:rgba(255,255,255,0.05);border:1px solid var(--border2);border-radius:8px;font-family:var(--font);font-size:14px;color:var(--text);outline:none}
.sonho-aporte input:focus{border-color:var(--gold);background:rgba(255,255,255,0.08)}
.sonho-aporte button{padding:9px 16px;background:linear-gradient(135deg,var(--gold),var(--gold2));border:none;border-radius:8px;color:#1a1100;font-size:13px;font-weight:700;cursor:pointer;font-family:var(--font);white-space:nowrap}
.proj-card{background:rgba(212,168,67,0.06);border:1px solid rgba(212,168,67,0.15);border-radius:9px;padding:12px 14px;font-size:13px;color:var(--text2);line-height:1.6}
.proj-card strong{color:var(--gold)}

/* ── DIVIDAS ─────────────────────────────────────────────── */
.divida-card{background:var(--glass);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--rad);padding:16px;display:flex;align-items:center;gap:14px}
.dc-avatar{width:42px;height:42px;border-radius:50%;background:var(--red-bg);border:1px solid var(--red-bd);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:16px;color:var(--red);flex-shrink:0;font-weight:700}
.dc-info{flex:1}
.dc-nome{font-size:15px;font-weight:600;color:var(--text)}
.dc-val{font-size:20px;font-weight:300;font-family:var(--font-display);color:var(--red)}
.dividas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}

/* ── DOAÇÕES ─────────────────────────────────────────────── */
.doacao-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}
.doacao-row:last-child{border:none}
.dr-icon{width:36px;height:36px;border-radius:50%;background:var(--blue-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--blue)}
.dr-icon svg{width:17px;height:17px}
.dr-info{flex:1}
.dr-nome{font-size:14px;font-weight:600;color:var(--text)}
.dr-data{font-size:12px;color:var(--text3);margin-top:2px}
.dr-val{font-size:15px;font-weight:600;color:var(--blue)}

/* ── BREAKDOWN ───────────────────────────────────────────── */
.breakdown{display:flex;flex-direction:column;gap:9px;margin-top:10px}
.bk-row{display:flex;align-items:center;gap:12px;font-size:13px}
.bk-bar-wrap{flex:1;height:5px;background:rgba(255,255,255,0.06);border-radius:3px;overflow:hidden}
.bk-bar{height:100%;border-radius:3px}
.bk-label{width:150px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-val{width:90px;text-align:right;font-weight:600}

/* ── TAG ─────────────────────────────────────────────────── */
.tag{font-size:11px;padding:3px 9px;border-radius:7px;font-weight:600;display:inline-block;letter-spacing:.04em}
.tag-sonho{background:var(--gold-bg);color:var(--gold);border:1px solid rgba(212,168,67,0.2)}
.tag-fixo{background:var(--glass2);color:var(--text3);border:1px solid var(--border)}

/* ── MODAL ───────────────────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}
.modal-overlay.show{display:flex}
.modal{background:#181818;border-radius:var(--radlg);border:1px solid var(--border2);padding:28px;width:500px;max-width:100%;display:flex;flex-direction:column;gap:16px;box-shadow:0 24px 80px rgba(0,0,0,.6);animation:modalIn .2s ease}
@keyframes modalIn{from{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}
.modal-title{font-family:var(--font-display);font-size:18px;color:var(--text);font-weight:600}
.modal-body{font-size:14px;color:var(--text2);line-height:1.6}
.modal-row{display:flex;gap:10px}
.modal-row button{flex:1;padding:12px;border-radius:var(--rad);font-size:14px;font-weight:600;cursor:pointer;font-family:var(--font);transition:all .15s}
.mbtn-cancel{background:var(--glass);border:1px solid var(--border2);color:var(--text2)}
.mbtn-confirm{background:linear-gradient(135deg,var(--red),var(--red2));border:none;color:white;box-shadow:0 2px 10px rgba(230,51,41,0.3)}
.mbtn-gold{background:linear-gradient(135deg,var(--gold),var(--gold2));border:none;color:#1a1100}
.mbtn-danger{background:var(--red-bg);border:1px solid var(--red-bd);color:var(--red)}

/* ── TOAST ───────────────────────────────────────────────── */
.toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%);background:#181818;color:var(--text);padding:14px 28px;border-radius:var(--rad);font-size:14px;font-weight:600;display:none;z-index:200;white-space:nowrap;box-shadow:0 8px 32px rgba(0,0,0,.4);border:1px solid var(--border2)}
.toast.show{display:block;animation:toastIn .25s ease}
.toast.ok{background:rgba(46,204,113,0.15);border-color:var(--green-bd);color:var(--green)}
.toast.err{background:var(--red-bg);border-color:var(--red-bd);color:var(--red)}
@keyframes toastIn{from{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* ── MISC ────────────────────────────────────────────────── */
.empty{text-align:center;padding:36px;color:var(--text3);font-size:14px}
.empty .ei{width:36px;height:36px;margin:0 auto 10px;opacity:.4}
.sec-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.sec-title{font-family:var(--font-display);font-size:17px;color:var(--text);font-weight:600}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.1);border-radius:3px}
/* ── WHATSAPP COBRANÇA ───────────────────────────────────── */
.btn-whatsapp{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 16px;
  background:rgba(37,211,102,0.1);
  border:1px solid rgba(37,211,102,0.25);
  border-radius:var(--rad);
  color:#25d366;font-size:13px;font-weight:600;
  cursor:pointer;font-family:var(--font);
  transition:all .15s;
}
.btn-whatsapp svg{width:15px;height:15px;flex-shrink:0;pointer-events:none}
.btn-whatsapp:hover{background:rgba(37,211,102,0.18);border-color:rgba(37,211,102,0.4)}

/* Status bar */
.cobranca-status{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:16px 20px;
  border-radius:var(--rad);
  border:1px solid var(--border);
  background:var(--glass2);
}
.cs-item{display:flex;flex-direction:column;gap:3px}
.cs-val{font-family:var(--font-display);font-size:28px;font-weight:300;color:var(--text)}
.cs-lbl{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em}
.cs-alert{
  display:flex;align-items:center;gap:9px;
  padding:12px 18px;
  background:rgba(243,156,18,0.08);
  border:1px solid rgba(243,156,18,0.25);
  border-radius:9px;
  font-size:13px;color:var(--amber);
  flex:1;
}
.cs-alert svg{width:15px;height:15px;flex-shrink:0}
.cs-ok{
  display:flex;align-items:center;gap:9px;
  padding:12px 18px;
  background:var(--green-bg);
  border:1px solid var(--green-bd);
  border-radius:9px;
  font-size:13px;color:var(--green);
  flex:1;
}
.cs-ok svg{width:15px;height:15px;flex-shrink:0}

/* Cobrança row */
.cob-row{
  display:flex;align-items:center;gap:14px;
  padding:14px 0;border-bottom:1px solid var(--border);
  transition:background .1s;
}
.cob-row:last-child{border:none}
.cob-avatar{
  width:42px;height:42px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-size:16px;color:white;
  flex-shrink:0;font-weight:600;
}
.cob-info{flex:1;min-width:0}
.cob-nome{font-size:14px;font-weight:600;color:var(--text)}
.cob-sub{font-size:12px;color:var(--text3);margin-top:3px}
.cob-prazo{
  font-size:11px;padding:3px 10px;border-radius:7px;
  font-weight:700;white-space:nowrap;
}
.cob-prazo.vencido{background:var(--red-bg);color:var(--red);border:1px solid var(--red-bd)}
.cob-prazo.hoje{background:var(--amber-bg);color:var(--amber);border:1px solid rgba(243,156,18,.3)}
.cob-prazo.futuro{background:var(--glass2);color:var(--text3);border:1px solid var(--border)}
.cob-prazo.combinado{background:var(--blue-bg);color:var(--blue);border:1px solid rgba(52,152,219,.3)}
.btn-wats{
  display:inline-flex;align-items:center;gap:5px;
  padding:8px 14px;
  background:rgba(37,211,102,0.08);
  border:1px solid rgba(37,211,102,0.25);
  border-radius:9px;color:#25d366;
  font-size:13px;font-weight:600;cursor:pointer;
  font-family:var(--font);transition:all .15s;
  white-space:nowrap;flex-shrink:0;
}
.btn-wats svg{width:14px;height:14px;flex-shrink:0;pointer-events:none}
.btn-wats:hover{background:rgba(37,211,102,0.16);border-color:rgba(37,211,102,.4)}
.btn-wats.sent{background:var(--green-bg);border-color:var(--green-bd);color:var(--green)}
.cob-empty{
  text-align:center;padding:40px;color:var(--green);
}
.cob-empty svg{width:48px;height:48px;margin:0 auto 14px;display:block;opacity:.5}
.cob-empty p{font-size:15px;font-weight:600}
.cob-empty span{font-size:13px;color:var(--text3)}
.no-tel-badge{font-size:11px;color:var(--amber);background:var(--amber-bg);border:1px solid rgba(243,156,18,.25);padding:2px 9px;border-radius:6px;font-weight:600;white-space:nowrap}

/* Bot status badges */
.bot-badge{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:9px;font-size:13px;font-weight:600}
.bot-badge.ok{background:var(--green-bg);color:var(--green);border:1px solid var(--green-bd)}
.bot-badge.warn{background:var(--amber-bg);color:var(--amber);border:1px solid rgba(243,156,18,.3)}
.bot-badge.not-cfg{background:var(--glass2);color:var(--text3);border:1px solid var(--border)}
.bot-badge svg{width:15px;height:15px;flex-shrink:0;pointer-events:none}
.bot-cfg-btn{margin-left:5px;padding:4px 11px;background:var(--red);border:none;border-radius:7px;color:white;font-size:12px;font-weight:700;cursor:pointer;font-family:var(--font);text-decoration:none;display:inline-block}

/* ── ESTOQUE ─────────────────────────────────────────────── */
.estoque-alert-bar{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:6px}
.estoque-alert-pill{display:flex;align-items:center;gap:7px;padding:7px 14px;border-radius:9px;font-size:13px;font-weight:600}
.estoque-alert-pill.critico{background:var(--red-bg);color:var(--red);border:1px solid var(--red-bd)}
.estoque-alert-pill.baixo{background:var(--amber-bg);color:var(--amber);border:1px solid rgba(243,156,18,.3)}
.estoque-status{display:inline-block;padding:3px 11px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.04em}
.est-ok{background:var(--green-bg);color:var(--green);border:1px solid var(--green-bd)}
.est-baixo{background:var(--amber-bg);color:var(--amber);border:1px solid rgba(243,156,18,.3)}
.est-critico{background:var(--red-bg);color:var(--red);border:1px solid var(--red-bd)}
.qty-ctrl{display:flex;align-items:center;gap:6px}
.qc-btn{width:26px;height:26px;border-radius:7px;border:1px solid var(--border2);background:var(--glass);color:var(--text);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;font-family:var(--font);transition:background .1s;line-height:1;flex-shrink:0}
.qc-btn:hover{background:var(--glass2)}

/* ── CUPOM FISCAL ────────────────────────────────────────── */
.cupom-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.cupom-item:last-child{border:none}
.cupom-item-nome{flex:1;font-size:14px;color:var(--text)}
.cupom-item-qtd{font-size:13px;color:var(--text3);min-width:55px;text-align:center}
.cupom-item-val{font-size:14px;font-weight:600;color:var(--green);min-width:90px;text-align:right}
.cupom-item-match{font-size:12px;color:var(--gold);min-width:120px;text-align:right}

/* ── CURSOS ──────────────────────────────────────────────── */
.turma-card{background:var(--glass);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--rad);padding:18px;display:flex;align-items:center;gap:14px;transition:all .2s;position:relative;overflow:hidden}
.turma-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold)}
.turma-card:hover{border-color:var(--border2);transform:translateY(-1px)}
.turma-icon{width:44px;height:44px;border-radius:var(--rad);background:var(--gold-bg);border:1px solid rgba(212,168,67,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--gold)}
.turma-icon svg{width:20px;height:20px}
.turma-info{flex:1}
.turma-nome{font-size:15px;font-weight:600;color:var(--text)}
.turma-turma{font-size:13px;color:var(--text3);margin-top:3px}
.turma-stats{display:flex;gap:18px;font-size:13px;margin-top:7px}
.turma-stat{color:var(--text3)}
.turma-stat strong{color:var(--text);font-weight:600}
.turmas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.curso-fin-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}
.curso-fin-row:last-child{border:none}

/* ── REPORT PANEL ────────────────────────────────────────── */
.report-topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.report-topbar-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.btn-gen-report{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 20px;
  background:linear-gradient(135deg,var(--red),var(--red2));
  border:none;border-radius:var(--rad);
  color:white;font-size:13px;font-weight:600;
  cursor:pointer;font-family:var(--font);
  transition:all .2s;
  box-shadow:0 2px 10px rgba(230,51,41,0.2);
}
.btn-gen-report svg{width:13px;height:13px;flex-shrink:0;pointer-events:none}
.btn-gen-report:hover{transform:translateY(-1px);box-shadow:0 3px 16px rgba(230,51,41,0.3)}
/* Report preview iframe */
.report-preview-wrap{
  background:var(--glass);
  backdrop-filter:blur(20px);
  border:1px solid var(--border);
  border-radius:var(--radlg);
  overflow:hidden;
  box-shadow:0 4px 24px rgba(0,0,0,.3);
}
.report-preview-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 16px;
  border-bottom:1px solid var(--border);
}
.report-preview-label{font-size:12px;color:var(--text3);letter-spacing:.04em}
.report-iframe{
  width:100%;height:700px;border:none;
  background:white;
  border-radius:0 0 var(--radlg) var(--radlg);
}
.report-empty{
  text-align:center;padding:60px 20px;color:var(--text3);
}
.report-empty svg{width:48px;height:48px;opacity:.2;margin:0 auto 16px;display:block}
.report-empty p{font-size:14px;margin-bottom:6px;color:var(--text2)}
.report-empty span{font-size:12px}
@media(max-width:600px){
  .nav button span{display:none}
  .metrics-row{grid-template-columns:1fr 1fr}
  .form-grid{grid-template-columns:1fr}
  .cf-val{font-size:28px}
  .charts-grid{grid-template-columns:1fr}
}

/* ── DADOS ─────────────────────────────────────────────────────────────── */
.dados-linha{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}
.dados-linha:last-child{border-bottom:none}
.dados-nome{flex:1;min-width:0;font-size:13.5px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dados-qtd{font-size:12px;color:var(--text3);font-variant-numeric:tabular-nums;min-width:44px;text-align:right}
.dados-linha button[disabled]{opacity:.35;cursor:not-allowed}
