:root {
  --pu: #6D28D9; --pk: #BE185D; --or: #EA580C;
  --grad: linear-gradient(135deg, #6D28D9 0%, #BE185D 52%, #EA580C 100%);
  --grad-light: linear-gradient(135deg,rgba(109,40,217,.08),rgba(190,24,93,.06),rgba(234,88,12,.05));
  --bg: #F7F6FC; --card: #fff; --border: rgba(0,0,0,.07);
  --sh: 0 1px 3px rgba(0,0,0,.06),0 4px 20px rgba(0,0,0,.07);
  --sh-sm: 0 1px 3px rgba(0,0,0,.08);
  --text: #0F0A1E; --muted: #6B7280; --subtle: #9CA3AF;
  --green: #059669; --green-bg: #ECFDF5; --red: #DC2626; --red-bg: #FEF2F2;
  --radius: 20px; --radius-sm: 12px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--text);
  font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body{max-width:560px;margin:0 auto;min-height:100dvh;
  padding:0 16px calc(96px + env(safe-area-inset-bottom))}
h1,h2,h3{font-family:'Space Grotesk',sans-serif;letter-spacing:-.02em}
.eyebrow{font-family:'Space Grotesk';font-size:10px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--subtle)}

/* topbar */
.topbar{display:flex;align-items:center;justify-content:space-between;
  position:sticky;top:0;z-index:10;
  margin:0 -16px;padding:13px 16px;
  background:rgba(247,246,252,.94);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:11px}
.brand h1{font-size:16px;font-weight:500;color:var(--muted)}
.logo-mark{flex:0 0 auto;border-radius:10px;
  box-shadow:0 4px 14px rgba(109,40,217,.28);display:block}
.wordmark{font-family:'Space Grotesk';font-weight:700;font-size:17px;
  letter-spacing:-.02em;line-height:1;color:var(--text)}
.wordmark span{background:var(--grad);-webkit-background-clip:text;
  background-clip:text;color:transparent}
.hd-right{display:flex;align-items:center;gap:8px}
.month-nav{display:flex;align-items:center;
  background:var(--card);border:1px solid var(--border);
  border-radius:999px;padding:3px;box-shadow:var(--sh-sm)}
.month-nav button{background:none;border:0;color:var(--text);
  font-size:16px;width:28px;height:28px;border-radius:999px;cursor:pointer}
.month-nav button:active{background:rgba(0,0,0,.05)}
.month-nav span{font-family:'Space Grotesk';font-weight:500;font-size:12px;
  min-width:70px;text-align:center;text-transform:capitalize}
.bell-btn{position:relative;background:var(--card);border:1px solid var(--border);
  border-radius:50%;width:38px;height:38px;display:grid;place-items:center;
  cursor:pointer;box-shadow:var(--sh-sm);color:var(--text)}
.bell-badge{position:absolute;top:-3px;right:-3px;
  width:17px;height:17px;border-radius:50%;border:2px solid var(--bg);
  background:var(--red);color:#fff;font-size:10px;font-weight:700;
  display:grid;place-items:center}

/* hero */
.hero-card{border-radius:var(--radius);padding:24px;margin-top:12px;
  background:var(--grad);color:#fff;position:relative;overflow:hidden}
.hero-card::before{content:'';position:absolute;
  width:220px;height:220px;border-radius:50%;
  background:rgba(255,255,255,.07);top:-80px;right:-70px}
.hero-card::after{content:'';position:absolute;
  width:120px;height:120px;border-radius:50%;
  background:rgba(255,255,255,.05);bottom:-40px;left:-30px}
.hero-label{font-size:10px;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;opacity:.8;margin-bottom:4px}
.hero-saldo{font-family:'Space Grotesk';font-weight:700;
  font-size:44px;letter-spacing:-.03em;margin-bottom:18px;line-height:1}
.hero-row{display:flex;gap:10px;position:relative}
.hero-box{flex:1;background:rgba(255,255,255,.16);backdrop-filter:blur(4px);
  border-radius:12px;padding:11px 13px;border:1px solid rgba(255,255,255,.2)}
.h-label-up,.h-label-down{font-size:10px;font-weight:500;opacity:.8;margin-bottom:3px}
.hero-val{font-family:'Space Grotesk';font-weight:700;font-size:18px;color:#fff}

/* saldo acumulado */
.saldo-acum-card{display:flex;align-items:center;justify-content:space-between;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:13px 16px;margin-top:10px;box-shadow:var(--sh-sm)}
.saldo-acum-label{font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.04em}
.saldo-acum-valor{font-family:'Space Grotesk';font-size:18px;font-weight:700;color:var(--pu)}
.saldo-acum-valor.negativo{color:#DC2626}

/* mini */
.mini-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.mini{background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:14px 13px;box-shadow:var(--sh-sm)}
.mini-lbl{font-size:10px;font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;color:var(--subtle);margin-bottom:5px}
.mini-val{font-family:'Space Grotesk';font-weight:700;font-size:15px}

/* panels */
.panel{background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius);padding:18px;margin-top:14px;box-shadow:var(--sh-sm)}
.panel-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.panel-hd h2{font-size:16px;font-weight:700}
.cnt-badge{font-family:'Space Grotesk';font-size:11px;color:var(--muted);
  border:1px solid var(--border);border-radius:999px;padding:2px 9px}

/* chart tabs */
.chart-tabs{display:flex;gap:3px;background:var(--bg);border-radius:10px;padding:3px}
.chart-tabs button{border:0;background:none;padding:6px 11px;border-radius:8px;
  font-family:'Space Grotesk';font-size:12px;font-weight:500;color:var(--muted);cursor:pointer}
.chart-tabs button.active{background:var(--card);color:var(--pu);box-shadow:var(--sh-sm)}
.chart-wrap{position:relative;height:200px;margin-bottom:14px}
.cat-legend{list-style:none;display:flex;flex-direction:column;gap:9px}
.cat-legend li{display:flex;align-items:center;gap:9px;font-size:13px}
.cat-legend .sw{width:9px;height:9px;border-radius:3px;flex:0 0 auto}
.cat-legend .nm{color:var(--muted);flex:1}
.cat-legend .vl{font-family:'Space Grotesk';font-weight:600}
.cat-legend .pc{color:var(--subtle);font-size:11px;min-width:30px;text-align:right}

/* filtros */
.filter-row{display:flex;gap:6px;overflow-x:auto;margin-bottom:14px;
  -webkit-overflow-scrolling:touch;scrollbar-width:none}
.filter-row::-webkit-scrollbar{display:none}
.filter-row button{border:0;background:var(--bg);color:var(--muted);
  padding:6px 13px;border-radius:999px;font-family:Inter;
  font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap}
.filter-row button.active{background:var(--pu);color:#fff}

/* lista */
.lanc-list{list-style:none;display:flex;flex-direction:column;gap:1px}
.lanc-item{display:flex;align-items:center;gap:12px;
  padding:11px 6px;border-radius:10px;cursor:pointer;transition:background .12s}
.lanc-item:active{background:var(--bg)}
.lanc-ic{width:40px;height:40px;border-radius:12px;flex:0 0 auto;
  display:grid;place-items:center;font-family:'Space Grotesk';
  font-weight:700;font-size:14px;color:#fff}
.lanc-mid{flex:1;min-width:0}
.lanc-desc{font-weight:500;font-size:14px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lanc-sub{font-size:11px;color:var(--subtle);margin-top:2px}
.lanc-val{font-family:'Space Grotesk';font-weight:700;font-size:14px;white-space:nowrap}
.lanc-val.receita{color:var(--green)} .lanc-val.despesa{color:var(--text)}
.lanc-chevron{color:var(--subtle);flex:0 0 auto;opacity:.45}
.empty{color:var(--subtle);font-size:13px;text-align:center;padding:24px 0}

/* navegação — tab bar (mobile) */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:25;
  display:flex;align-items:center;justify-content:space-around;
  background:rgba(255,255,255,.93);backdrop-filter:blur(16px);
  border-top:1px solid var(--border);
  padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
.nav-brand{display:none}
.nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;
  background:none;border:0;cursor:pointer;color:var(--subtle);flex:1;
  font-family:'Space Grotesk';font-size:10px;font-weight:500;padding:5px 4px}
.nav-item svg{width:22px;height:22px;flex:0 0 auto}
.nav-item span{white-space:nowrap}
.nav-item.active{color:var(--pu)}
.nav-fab{order:0;flex:0 0 auto;background:var(--grad);border:0;cursor:pointer;
  color:#fff;width:54px;height:54px;border-radius:50%;
  display:grid;place-items:center;margin-top:-20px;
  box-shadow:0 6px 18px rgba(109,40,217,.42)}
.nav-fab:active{transform:scale(.94)}
.nav-fab svg{width:26px;height:26px}
.nav-fab-lbl{display:none}

/* layout multicoluna no desktop */
@media (min-width:920px){
  body{max-width:none;margin:0;padding:0 32px 40px 248px}
  .topbar{margin:0;padding:18px 0 14px;background:rgba(247,246,252,.9)}
  main{max-width:1000px;margin:0 auto}

  /* nav vira sidebar */
  .nav{flex-direction:column;top:0;bottom:0;right:auto;width:224px;
    justify-content:flex-start;align-items:stretch;gap:4px;
    border-top:0;border-right:1px solid var(--border);
    padding:22px 14px;background:rgba(255,255,255,.7)}
  .nav-brand{display:flex;align-items:center;gap:9px;margin:0 8px 20px}
  .nav-wordmark{font-family:'Space Grotesk';font-weight:700;font-size:17px;color:var(--text)}
  .nav-wordmark span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
  .nav-item{flex-direction:row;justify-content:flex-start;align-items:center;
    gap:12px;flex:0 0 auto;text-align:left;
    font-size:14px;padding:11px 13px;border-radius:11px;
    color:var(--muted)}
  .nav-item svg{width:20px;height:20px;flex:0 0 auto}
  .nav-item span{flex:0 1 auto}
  .nav-item.active{
    background:rgba(109,40,217,.08);color:var(--pu);font-weight:700;
    display:flex!important;flex-direction:row!important;
    justify-content:flex-start!important;align-items:center!important;
    gap:12px!important
  }
  .nav-fab{order:9;flex-direction:row;width:auto;height:auto;border-radius:12px;
    margin:16px 0 0;padding:13px;gap:9px}
  .nav-fab svg{width:20px;height:20px}
  .nav-fab-lbl{display:inline;font-family:'Space Grotesk';font-weight:700;font-size:14px}

  /* início: 2 colunas */
  [data-view="inicio"]{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
  [data-view="inicio"]>.hero-card,[data-view="inicio"]>.mini-cards,[data-view="inicio"]>.saldo-acum-card{grid-column:1/-1;margin-top:0}
  /* gráficos: rosca + legenda lado a lado */
  [data-view="graficos"]>.panel{display:grid;grid-template-columns:1.05fr .95fr;
    column-gap:28px;align-items:center}
  [data-view="graficos"] .panel-hd{grid-column:1/-1}
  [data-view="graficos"] .chart-wrap{height:300px}
  [data-view="graficos"] .btn-manage{grid-column:1/-1}
  /* metas: reserva + score lado a lado */
  [data-view="metas"] .panel-emerg{display:grid;grid-template-columns:1fr 1fr;gap:8px 28px}
  [data-view="metas"] .panel-emerg .panel-hd{grid-column:1/-1}
  [data-view="metas"] .emerg-meta{border-bottom:0;border-right:1px solid var(--border);padding-right:24px}
  .scope-row{padding-top:4px}
}

/* overlay */
.overlay{position:fixed;inset:0;z-index:30;
  background:rgba(15,10,30,.5);backdrop-filter:blur(3px)}

/* bottom sheet */
.sheet-bg{position:fixed;inset:0;z-index:40;
  display:flex;align-items:flex-end;justify-content:center;
  background:rgba(15,10,30,.5);backdrop-filter:blur(4px)}
.sheet{width:100%;max-width:560px;background:var(--card);
  border-radius:24px 24px 0 0;
  padding:10px 20px calc(24px + env(safe-area-inset-bottom));
  animation:slideUp .22s ease;border-top:1px solid var(--border)}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.sheet-grab{width:40px;height:4px;border-radius:999px;
  background:var(--border);margin:6px auto 16px}
.sheet-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.sheet h3{font-size:18px}
.btn-del{background:none;border:1px solid var(--red);color:var(--red);
  border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer}
.seg{display:flex;gap:4px;background:var(--bg);
  border-radius:12px;padding:4px;margin-bottom:14px}
.seg button{flex:1;border:0;background:none;color:var(--muted);
  padding:9px;border-radius:9px;font-family:'Space Grotesk';
  font-weight:500;font-size:14px;cursor:pointer}
.seg button.active{background:var(--grad);color:#fff;box-shadow:var(--sh-sm)}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.field>span{font-size:10px;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;color:var(--subtle)}
.field input,.field select{background:var(--bg);border:1px solid var(--border);
  border-radius:12px;padding:13px;color:var(--text);
  font-family:Inter;font-size:16px}
.field input:focus,.field select:focus{outline:0;border-color:var(--pu);
  box-shadow:0 0 0 3px rgba(109,40,217,.1)}
#inValor{font-family:'Space Grotesk';font-weight:700;font-size:24px}
.field-row{display:flex;gap:10px} .field-row .field{flex:1}
.sheet-actions{display:flex;gap:10px;margin-top:6px}
.btn-ghost,.btn-primary{flex:1;border-radius:12px;padding:14px;
  font-family:'Space Grotesk';font-weight:700;font-size:15px;cursor:pointer;border:0}
.btn-ghost{background:var(--bg);color:var(--muted)}
.btn-primary{background:var(--grad);color:#fff}
.btn-primary:active,.btn-ghost:active{transform:scale(.98)}

/* notification panel */
.notif-panel{position:fixed;top:0;right:0;bottom:0;z-index:50;
  width:min(340px,100vw);background:var(--card);
  border-left:1px solid var(--border);
  display:flex;flex-direction:column;
  animation:slideRight .22s ease;
  box-shadow:-8px 0 32px rgba(0,0,0,.1)}
@keyframes slideRight{from{transform:translateX(100%)}to{transform:translateX(0)}}
.notif-hd{display:flex;align-items:center;justify-content:space-between;
  padding:18px 16px;border-bottom:1px solid var(--border);
  font-family:'Space Grotesk';font-weight:700;font-size:16px}
.notif-hd button{background:none;border:0;font-size:18px;color:var(--muted);
  cursor:pointer;width:32px;height:32px;border-radius:8px;
  display:grid;place-items:center}
.notif-hd button:hover{background:var(--bg)}
.notif-list{flex:1;overflow-y:auto;padding:12px;
  display:flex;flex-direction:column;gap:8px}
.notif-item{background:var(--bg);border-radius:12px;padding:13px 14px;
  border-left:3px solid var(--pu)}
.notif-item.alerta{border-left-color:var(--red)}
.notif-item.dica{border-left-color:var(--green)}
.notif-item.unread{background:rgba(109,40,217,.05)}
.notif-titulo{font-family:'Space Grotesk';font-weight:600;font-size:13px;margin-bottom:4px}
.notif-corpo{font-size:12px;color:var(--muted);line-height:1.5}
.notif-time{font-size:10px;color:var(--subtle);margin-top:6px}
.notif-empty{color:var(--subtle);font-size:13px;text-align:center;padding:40px 20px;line-height:1.6}

/* reserva de emergência + score */
.emerg-meta{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}
.emerg-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.emerg-label{font-size:12px;color:var(--muted)}
.emerg-target{font-family:'Space Grotesk';font-weight:700;font-size:14px}
.emerg-val{font-family:'Space Grotesk';font-weight:700;font-size:14px}
.emerg-val.green{color:var(--green)}
.prog-wrap{display:flex;align-items:center;gap:10px;margin:8px 0 12px}
.prog-bar{flex:1;height:8px;background:var(--bg);border-radius:999px;overflow:hidden}
.prog-fill{height:100%;border-radius:999px;
  background:linear-gradient(90deg,var(--pu),var(--pk));transition:width .6s ease}
.prog-pct{font-family:'Space Grotesk';font-weight:700;font-size:12px;color:var(--pu);min-width:32px}
.emerg-tip{font-size:12px;color:var(--pu);margin-top:8px;
  background:rgba(109,40,217,.07);border-radius:8px;padding:8px 10px;line-height:1.5}
.btn-edit-small{background:none;border:1px solid var(--border);color:var(--muted);
  border-radius:8px;padding:5px 10px;font-size:12px;cursor:pointer}
.score-wrap{display:flex;align-items:center;gap:16px}
.score-left,.score-right{flex:1}
.score-num{font-family:'Space Grotesk';font-weight:700;font-size:32px;margin:4px 0 2px}
.score-faixa{font-size:12px;font-weight:600}
.score-data{font-size:12px;color:var(--muted);margin:4px 0 8px}
.btn-score{background:var(--grad);color:#fff;border:0;
  border-radius:8px;padding:8px 12px;font-family:'Space Grotesk';
  font-size:12px;font-weight:600;cursor:pointer}

/* seletor de pessoa (conta conjunta) */
.scope-row{display:flex;gap:7px;overflow-x:auto;padding:14px 0 2px;
  scrollbar-width:none}
.scope-row::-webkit-scrollbar{display:none}
.scope-chip{display:flex;align-items:center;gap:7px;border:1px solid var(--border);
  background:var(--card);border-radius:999px;padding:6px 13px 6px 7px;
  font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;white-space:nowrap;
  box-shadow:var(--sh-sm)}
.scope-chip.active{border-color:transparent;color:#fff;background:var(--grad)}
.scope-chip .av{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  font-family:'Space Grotesk';font-weight:700;font-size:11px;color:#fff;flex:0 0 auto}
.scope-chip.active .av{background:rgba(255,255,255,.25)!important}
.scope-chip.all .av{background:var(--text)}

/* comparativo do casal */
.couple-grid{display:flex;flex-direction:column;gap:14px}
.couple-person{}
.couple-top{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.couple-av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  font-family:'Space Grotesk';font-weight:700;font-size:13px;color:#fff;flex:0 0 auto}
.couple-name{font-family:'Space Grotesk';font-weight:700;font-size:14px;flex:1}
.couple-tag{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;
  padding:2px 7px;border-radius:6px}
.couple-tag.mais{background:var(--red-bg);color:var(--red)}
.couple-tag.menos{background:var(--green-bg);color:var(--green)}
.couple-bars{display:flex;flex-direction:column;gap:5px}
.couple-line{display:flex;align-items:center;gap:8px;font-size:12px}
.couple-line .lbl{width:54px;color:var(--muted)}
.couple-track{flex:1;height:7px;background:var(--bg);border-radius:999px;overflow:hidden}
.couple-fill{height:100%;border-radius:999px}
.couple-line .amt{font-family:'Space Grotesk';font-weight:600;min-width:62px;text-align:right}

/* atividade recente */
.activity-list{list-style:none;display:flex;flex-direction:column;gap:1px}
.activity-item{display:flex;align-items:center;gap:11px;padding:10px 4px;
  border-bottom:1px solid rgba(0,0,0,.04)}
.activity-item:last-child{border-bottom:0}
.activity-av{width:32px;height:32px;border-radius:50%;flex:0 0 auto;
  display:grid;place-items:center;font-family:'Space Grotesk';font-weight:700;font-size:12px;color:#fff}
.activity-mid{flex:1;min-width:0}
.activity-txt{font-size:13px;line-height:1.4}
.activity-txt b{font-weight:700}
.activity-time{font-size:11px;color:var(--subtle);margin-top:1px}
.activity-val{font-family:'Space Grotesk';font-weight:700;font-size:13px;white-space:nowrap}

/* gerenciar categorias */
.btn-manage{width:100%;margin-top:14px;background:var(--bg);border:1px solid var(--border);
  color:var(--muted);border-radius:12px;padding:11px;font-family:'Space Grotesk';
  font-size:13px;font-weight:500;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:7px}
.btn-manage:active{background:#EEE}
.catmgr-list{list-style:none;display:flex;flex-direction:column;gap:6px;
  max-height:38vh;overflow-y:auto;margin-bottom:16px}
.catmgr-item{display:flex;align-items:center;gap:10px;padding:10px;
  background:var(--bg);border-radius:10px}
.catmgr-sw{width:14px;height:14px;border-radius:4px;flex:0 0 auto}
.catmgr-nm{flex:1;font-size:14px;font-weight:500}
.catmgr-nat{font-size:10px;color:var(--subtle);text-transform:uppercase;letter-spacing:.06em}
.catmgr-btn{background:none;border:0;cursor:pointer;padding:5px;color:var(--muted);
  display:grid;place-items:center;border-radius:7px}
.catmgr-btn:active{background:var(--bg);color:var(--text)}
.catmgr-btn[data-act="del"]:active{color:var(--red)}
.catmgr-form{border-top:1px solid var(--border);padding-top:14px}
.catmgr-form-title{font-family:'Space Grotesk';font-weight:700;font-size:14px;margin-bottom:12px}

/* drill-down de categoria */
.cat-legend li{cursor:pointer;padding:4px;border-radius:8px;margin:0 -4px}
.cat-legend li:active{background:var(--bg)}
.cat-legend .arrow{color:var(--subtle);font-size:12px}
.detail-total{font-family:'Space Grotesk';font-weight:700;font-size:18px;color:var(--pu)}
.detail-sub{font-size:12px;color:var(--muted);margin-bottom:14px}
.detail-list{list-style:none;display:flex;flex-direction:column;gap:10px;max-height:50vh;overflow-y:auto}
.detail-row{display:flex;flex-direction:column;gap:5px}
.detail-row-top{display:flex;align-items:center;justify-content:space-between}
.detail-nm{font-weight:500;font-size:14px}
.detail-vl{font-family:'Space Grotesk';font-weight:700;font-size:14px}
.detail-bar{height:6px;background:var(--bg);border-radius:999px;overflow:hidden}
.detail-bar-fill{height:100%;border-radius:999px}
.detail-cnt{font-size:11px;color:var(--subtle)}

/* parcelamento info */
.parcelamento-info{
  background:rgba(109,40,217,.07);border:1px solid rgba(109,40,217,.15);
  border-radius:10px;padding:10px 13px;margin-bottom:12px;
  font-size:13px;color:var(--pu);line-height:1.5
}

/* badge previsto nos lançamentos */
.badge-previsto{
  display:inline-block;font-size:9px;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;
  background:rgba(234,88,12,.12);color:var(--or);
  border-radius:5px;padding:2px 5px;margin-left:4px;vertical-align:middle
}
.lanc-item.previsto .lanc-desc{color:var(--muted)}
.lanc-item.previsto .lanc-ic{opacity:.7}

/* toast */
.toast{position:fixed;left:50%;transform:translateX(-50%);
  bottom:calc(90px + env(safe-area-inset-bottom));z-index:60;
  background:var(--text);color:#fff;border-radius:12px;
  padding:11px 18px;font-size:14px;font-weight:500;
  white-space:nowrap;box-shadow:0 8px 24px rgba(0,0,0,.2)}

[hidden]{display:none!important}

/* ── login screen ────────────────────────────────────── */
.login-screen{
  position:fixed;inset:0;z-index:200;
  background:var(--bg);
  display:flex;align-items:center;justify-content:center;padding:24px
}
.login-card{
  width:100%;max-width:380px;
  background:var(--card);border:1px solid var(--border);
  border-radius:24px;padding:40px 28px;
  box-shadow:0 8px 48px rgba(109,40,217,.12)
}
.login-brand{
  display:flex;flex-direction:column;align-items:center;gap:13px;margin-bottom:6px
}
.login-wordmark{
  font-family:'Space Grotesk';font-weight:700;font-size:24px;
  letter-spacing:-.03em;color:var(--text)
}
.login-wordmark span{
  background:var(--grad);-webkit-background-clip:text;
  background-clip:text;color:transparent
}
.login-sub{
  text-align:center;font-size:13px;color:var(--muted);
  margin-bottom:28px;line-height:1.5
}
.login-err{
  font-size:13px;color:var(--red);text-align:center;
  margin:-4px 0 8px;line-height:1.4
}
.btn-login{
  width:100%;margin-top:8px;padding:15px;
  background:var(--grad);color:#fff;border:0;
  border-radius:12px;
  font-family:'Space Grotesk';font-size:15px;font-weight:600;
  letter-spacing:.01em;cursor:pointer;
  box-shadow:0 4px 18px rgba(109,40,217,.28);
  transition:opacity .15s
}
.btn-login:hover{opacity:.9}
.btn-login:disabled{opacity:.6;cursor:default}

/* ── admin: lista de usuários ────────────────────────── */
.admin-sheet{max-height:92dvh;overflow-y:auto}
.admin-user-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:4px}
.admin-user-item{
  display:flex;align-items:center;gap:12px;
  background:var(--bg);border:1px solid var(--border);
  border-radius:12px;padding:12px 14px
}
.admin-av{
  width:36px;height:36px;border-radius:50%;flex:0 0 36px;
  display:grid;place-items:center;
  font-family:'Space Grotesk';font-weight:700;font-size:14px;color:#fff
}
.admin-info{flex:1;min-width:0}
.admin-nome{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-email{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-meta{display:flex;gap:5px;margin-top:4px;flex-wrap:wrap}
.admin-badge{
  font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  border-radius:5px;padding:2px 6px
}
.admin-badge.dono{background:rgba(109,40,217,.1);color:var(--pu)}
.admin-badge.membro{background:rgba(0,0,0,.05);color:var(--muted)}
.admin-badge.pendente{background:rgba(234,88,12,.12);color:var(--or)}
.admin-actions{display:flex;gap:6px;flex:0 0 auto}
.admin-act-btn{
  background:none;border:1px solid var(--border);border-radius:8px;
  padding:5px 8px;font-size:11px;font-weight:600;cursor:pointer;
  color:var(--muted);transition:all .15s;white-space:nowrap
}
.admin-act-btn:hover{border-color:var(--pu);color:var(--pu)}
.admin-act-btn.danger:hover{border-color:var(--red);color:var(--red)}
.admin-hint{font-size:12px;color:var(--muted);line-height:1.5;margin-bottom:12px}

/* credenciais temporárias */
.temp-pw-box{
  background:var(--bg);border:1px solid var(--border);border-radius:12px;
  padding:16px;margin-bottom:14px
}
.temp-pw-label{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--subtle);margin-bottom:3px}
.temp-pw-val{font-family:'Space Grotesk';font-size:14px;font-weight:500;word-break:break-all}
.temp-pw-senha{
  font-size:22px;letter-spacing:.06em;color:var(--pu);
  background:rgba(109,40,217,.06);border-radius:8px;padding:8px 12px;
  margin-top:4px;display:inline-block
}
.btn-copy{
  width:100%;display:flex;align-items:center;justify-content:center;gap:7px;
  background:var(--bg);border:1px solid var(--border);border-radius:10px;
  padding:11px;font-size:13px;font-weight:600;cursor:pointer;
  color:var(--text);transition:all .15s
}
.btn-copy:hover{border-color:var(--pu);color:var(--pu)}

/* admin btn (topbar) */
.admin-btn{
  background:var(--card);border:1px solid var(--border);
  border-radius:50%;width:38px;height:38px;
  display:grid;place-items:center;
  cursor:pointer;box-shadow:var(--sh-sm);
  color:var(--muted);transition:color .15s
}
.admin-btn:hover{color:var(--pu)}

/* logout btn (topbar) */
.logout-btn{
  background:var(--card);border:1px solid var(--border);
  border-radius:50%;width:38px;height:38px;
  display:grid;place-items:center;
  cursor:pointer;box-shadow:var(--sh-sm);
  color:var(--muted);transition:color .15s
}
.logout-btn:hover{color:var(--red)}

/* olhinho nos campos de senha */
.pw-wrap{position:relative}
.pw-wrap input{padding-right:44px;width:100%}
.eye-btn{
  position:absolute;right:13px;top:50%;transform:translateY(-50%);
  background:none;border:0;cursor:pointer;
  color:var(--subtle);padding:4px;
  display:flex;align-items:center;justify-content:center;
  border-radius:6px
}
.eye-btn:hover{color:var(--muted)}

/* admin tabs */
.admin-tabs{display:flex;gap:4px;background:var(--bg);border-radius:12px;padding:4px;margin-bottom:16px}
.admin-tab{flex:1;border:0;background:none;color:var(--muted);
  padding:9px;border-radius:9px;font-family:'Space Grotesk';
  font-weight:500;font-size:14px;cursor:pointer}
.admin-tab.active{background:var(--card);color:var(--pu);box-shadow:var(--sh-sm)}

/* lista de casas (clientes) */
.casa-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:4px}
.casa-item{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:12px 14px;
  display:flex;align-items:center;gap:12px}
.casa-av{width:36px;height:36px;border-radius:50%;flex:0 0 36px;
  display:grid;place-items:center;
  background:var(--grad);
  font-family:'Space Grotesk';font-weight:700;font-size:14px;color:#fff}
.casa-info{flex:1;min-width:0}
.casa-nome{font-weight:600;font-size:14px}
.casa-meta{font-size:12px;color:var(--muted);margin-top:2px}
.casa-actions{display:flex;gap:6px;flex-shrink:0}
.casa-btn-edit,.casa-btn-del{background:none;border:1px solid var(--border);border-radius:8px;
  padding:5px 8px;cursor:pointer;font-size:14px;line-height:1;transition:background .15s}
.casa-btn-edit:hover{background:var(--bg2)}
.casa-btn-del:hover{background:#fee2e2}
