/* Modal generico */
.pandora-modal-overlay{
  position:fixed;
  inset:0;
  background:rgba(3,3,7,.72);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  z-index:110;
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease;
}

.pandora-modal-overlay.active{opacity:1;pointer-events:auto;}

.pandora-modal{
  position:fixed;
  top:50%;
  left:50%;
  transform:translate(-50%,-46%) scale(.98);
  width:min(560px,92vw);
  max-height:82vh;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  z-index:111;
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease, transform .25s cubic-bezier(.25,.8,.25,1);
}

.pandora-modal.active{
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%,-50%) scale(1);
}

.pandora-modal-header{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 20px;
  border-bottom:1px solid var(--panel-border);
  flex:0 0 auto;
}

/* Fio de luz no topo, igual ao dos cards do dashboard: amarra a minipage ao
   resto da interface em vez de parecer um dialogo generico. */
.pandora-modal-header::before{
  content:'';
  position:absolute;
  top:0;
  left:14%;
  right:14%;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--primary),transparent);
  opacity:.55;
}

.pandora-modal-header strong{
  font-family:'Space Grotesk',sans-serif;
  font-size:15px;
  letter-spacing:-.2px;
}

.pandora-modal-body{
  padding:16px 20px 20px;
  overflow-y:auto;
  min-height:0;
  scrollbar-width:thin;
}

@media (prefers-reduced-motion:reduce){
  .pandora-modal,
  .pandora-modal.active{transition:opacity .2s ease;transform:translate(-50%,-50%);}
}

/* Financeiro minipage */
.pandora-fin-totals{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-bottom:16px;
}

/* Mesmas plaquinhas da trilha de metricas dos heros (var(--bg) + label
   uppercase + numero tabular), pra minipage e dashboard falarem a mesma lingua. */
.pandora-fin-total{
  padding:9px 11px;
  border-radius:var(--r-sm);
  background:var(--bg);
  border:1px solid var(--panel-border);
  min-width:0;
}

.pandora-fin-total small{
  display:block;
  font-size:10px;
  font-weight:600;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.7px;
  margin-bottom:3px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.pandora-fin-total strong{
  font-family:'Space Grotesk',sans-serif;
  font-size:15px;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.3px;
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.pandora-fin-total.receitas strong{color:var(--emerald);}
.pandora-fin-total.despesas strong{color:var(--rose);}

.pandora-fin-table{
  border:1px solid var(--panel-border);
  border-radius:var(--r-sm);
  overflow:hidden;
}

.pandora-fin-row{
  display:grid;
  grid-template-columns:40px 52px minmax(0,1fr) 96px 92px 56px;
  align-items:center;
  gap:6px 10px;
  padding:9px 12px 9px 9px;
  border-left:3px solid transparent;
  border-bottom:1px solid var(--panel-border);
}

.pandora-fin-col-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
}

.pandora-fin-table-body .pandora-fin-row.receita{border-left-color:var(--emerald);background:rgba(16,185,129,.05);}
.pandora-fin-table-body .pandora-fin-row.despesa{border-left-color:var(--rose);background:rgba(244,63,94,.05);}

.pandora-fin-table-body .pandora-fin-row:last-child{border-bottom:0;}
.pandora-fin-table-body .pandora-fin-row:hover{background:var(--bg);}
.pandora-fin-table-body .pandora-fin-row.receita:hover{background:rgba(16,185,129,.09);}
.pandora-fin-table-body .pandora-fin-row.despesa:hover{background:rgba(244,63,94,.09);}

.pandora-fin-head{
  padding:8px 12px;
  background:var(--bg);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.5px;
  color:var(--text-muted);
}

.pandora-fin-col-id{
  font-size:11px;
  font-weight:600;
  color:var(--text-muted);
  white-space:nowrap;
}

.pandora-fin-col-data{
  font-size:12px;
  color:var(--text-muted);
  white-space:nowrap;
}

.pandora-fin-col-desc{
  font-size:13px;
  font-weight:600;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  min-width:0;
}

.pandora-fin-pendente{
  font-style:normal;
  font-size:10px;
  font-weight:600;
  color:var(--amber,#f59e0b);
  margin-left:4px;
}

.pandora-fin-col-cat{min-width:0;overflow:hidden;}

.pandora-fin-cat-pill{
  display:inline-block;
  background:var(--bg);
  border:1px solid var(--panel-border);
  border-radius:var(--r-pill);
  color:var(--text-muted);
  font-size:9px;
  font-weight:600;
  letter-spacing:.3px;
  padding:3px 9px;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.pandora-fin-col-valor{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  font-weight:700;
  font-size:13px;
  white-space:nowrap;
  text-align:right;
}

.pandora-fin-col-valor .pandora-fin-valor-icon{font-size:11px;}
.pandora-fin-col-valor.receita{color:var(--emerald);}
.pandora-fin-col-valor.despesa{color:var(--rose);}

.pandora-fin-delete{
  width:24px;
  height:24px;
  border-radius:50%;
  border:1px solid var(--panel-border);
  background:var(--bg);
  color:var(--text-muted);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:10px;
  transition:.15s;
}

.pandora-fin-delete:hover,
.pandora-habito-delete:hover{border-color:var(--rose);color:var(--rose);}

@media (max-width:560px){
  .pandora-fin-row{grid-template-columns:44px minmax(0,1fr) 82px 52px;}
  .pandora-fin-col-cat{display:none;}
  .pandora-fin-col-id{display:none;}
}

/* Habitos minipage */
.pandora-habito-totals{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-bottom:16px;
}

.pandora-habito-total{
  padding:9px 11px;
  border-radius:var(--r-sm);
  background:var(--bg);
  border:1px solid var(--panel-border);
  min-width:0;
}

.pandora-habito-total small{
  display:block;
  font-size:10px;
  font-weight:600;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.7px;
  margin-bottom:3px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.pandora-habito-total strong{
  font-family:'Space Grotesk',sans-serif;
  font-size:15px;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.3px;
  display:block;
}

.pandora-habito-total.feitos strong{color:var(--emerald);}
.pandora-habito-total.pendentes strong{color:var(--amber,#f59e0b);}
.pandora-habito-total.aderencia strong{color:var(--primary);}

.pandora-habito-table{
  border:1px solid var(--panel-border);
  border-radius:var(--r-sm);
  overflow:hidden;
}

.pandora-habito-row{
  display:grid;
  grid-template-columns:32px minmax(0,1fr) 74px 88px 118px;
  align-items:center;
  gap:6px 10px;
  padding:9px 12px 9px 9px;
  border-left:3px solid transparent;
  border-bottom:1px solid var(--panel-border);
}

.pandora-habito-table-body .pandora-habito-row.feito{border-left-color:var(--emerald);background:rgba(16,185,129,.05);}
.pandora-habito-table-body .pandora-habito-row.pendente{border-left-color:var(--amber,#f59e0b);background:rgba(245,158,11,.05);}

.pandora-habito-table-body .pandora-habito-row:last-child{border-bottom:0;}
.pandora-habito-table-body .pandora-habito-row:hover{background:var(--bg);}
.pandora-habito-table-body .pandora-habito-row.feito:hover{background:rgba(16,185,129,.09);}
.pandora-habito-table-body .pandora-habito-row.pendente:hover{background:rgba(245,158,11,.09);}

.pandora-habito-head{
  padding:8px 12px;
  background:var(--bg);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.5px;
  color:var(--text-muted);
}

.pandora-habito-col-id{
  font-size:11px;
  font-weight:600;
  color:var(--text-muted);
  white-space:nowrap;
}

.pandora-habito-col-info{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}

.pandora-habito-nome{
  font-size:13px;
  font-weight:600;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.pandora-habito-desc{
  font-size:11px;
  color:var(--text-muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.pandora-habito-col-freq{min-width:0;overflow:hidden;}

.pandora-habito-col-progresso{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:3px;
}

.pandora-habito-bar{
  width:100%;
  height:6px;
  border-radius:var(--r-pill);
  background:var(--bg);
  border:1px solid var(--panel-border);
  overflow:hidden;
}

.pandora-habito-bar-fill{
  display:block;
  height:100%;
  border-radius:var(--r-pill);
  background:linear-gradient(90deg,var(--primary-glow),var(--primary));
  box-shadow:0 0 8px var(--primary-glow);
  transition:width .5s cubic-bezier(.25,.8,.25,1);
}

.pandora-habito-col-progresso small{
  font-size:10px;
  color:var(--text-muted);
}

.pandora-habito-col-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
}

.pandora-habito-btn{
  width:26px;
  height:26px;
  border-radius:50%;
  border:1px solid var(--panel-border);
  background:var(--bg);
  color:var(--text-main);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  flex:0 0 auto;
  transition:.15s;
}

.pandora-habito-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary);}

.pandora-habito-btn:disabled{
  opacity:.3;
  cursor:not-allowed;
}

.pandora-habito-contador{
  min-width:16px;
  text-align:center;
  font-weight:700;
  font-size:12px;
  font-family:'Space Grotesk',sans-serif;
}

.pandora-habito-delete{
  width:22px;
  height:22px;
  border-radius:50%;
  border:1px solid var(--panel-border);
  background:var(--bg);
  color:var(--text-muted);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:9px;
  flex:0 0 auto;
  transition:.15s;
}

.pandora-minipage-empty{
  color:var(--text-muted);
  font-size:13px;
  line-height:1.5;
  text-align:center;
  padding:26px 18px;
  border:1px dashed var(--panel-border);
  border-radius:var(--r-md);
  background:var(--bg);
}

/* Botoes de acao das linhas: hover com leve elevacao, igual ao resto do app. */
.pandora-fin-delete:hover,
.pandora-habito-delete:hover,
.pandora-habito-btn:hover:not(:disabled){transform:translateY(-1px);}
.pandora-fin-delete:active,
.pandora-habito-delete:active,
.pandora-habito-btn:active:not(:disabled){transform:scale(.92);}

@media (max-width:640px){
  .pandora-fin-totals{grid-template-columns:1fr 1fr;}
  .pandora-fin-totals .saldo{grid-column:1 / -1;}
  .pandora-habito-totals{grid-template-columns:1fr 1fr;}
}

@media (max-width:560px){
  .pandora-habito-row{grid-template-columns:minmax(0,1fr) 74px 110px;}
  .pandora-habito-col-id,
  .pandora-habito-col-freq{display:none;}
}

/* Meus dados */
.pandora-profile-form{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.pandora-profile-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.pandora-profile-field label{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:1px;
  color:var(--text-muted);
  font-weight:700;
}

.pandora-profile-divider{
  height:1px;
  background:var(--panel-border);
  margin:2px 0;
}

.pandora-profile-hint{
  font-size:11px;
  color:var(--text-muted);
  margin-top:-6px;
}

.pandora-profile-toggle-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.pandora-profile-toggle-row label{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:1px;
  color:var(--text-muted);
  font-weight:700;
}

.pandora-profile-submit{
  width:100%;
  justify-content:center;
  margin-top:4px;
}

.pandora-profile-error{
  min-height:16px;
  color:var(--rose,#f43f5e);
  font-size:12px;
  text-align:center;
}
