.budget-phrase-carte { margin-bottom: 24px; }
.budget-phrase-carte p { color: var(--text); line-height: 1.6; font-size: 0.95rem; }
.budget-phrase-carte b { color: var(--gold); }
.budget-phrase-carte b.st-pos { color: #6fd694; }
.budget-phrase-carte b.st-neg { color: #e88a8a; }

.budget-row {
  display: flex; gap: 8px; align-items: center; margin-bottom: 8px;
}
.budget-row-label {
  flex: 1 1 auto; min-width: 0; background: var(--bg-raised); border: 1px solid var(--border);
  border-radius: 8px; color: var(--text); padding: 8px 10px; font-size: 0.85rem; font-family: inherit;
}
.budget-row-montant {
  flex: 0 0 100px; width: 100px; background: var(--bg-raised); border: 1px solid var(--border);
  border-radius: 8px; color: var(--text); padding: 8px 10px; font-size: 0.85rem; font-family: inherit;
}
.budget-row-label:focus, .budget-row-montant:focus { outline: none; border-color: var(--gold-dim); }
.budget-row-del {
  flex: 0 0 auto; background: none; border: none; color: var(--muted); cursor: pointer;
  font-size: 0.9rem; padding: 4px 6px; border-radius: 6px; transition: color var(--transition);
}
.budget-row-del:hover { color: #e88a8a; }

.budget-categorie {
  border: 1px solid var(--border); border-radius: 10px; padding: 14px; margin-bottom: 14px;
  background: var(--bg-raised);
}
.budget-categorie-header { display: flex; gap: 8px; align-items: center; margin-bottom: 12px; }
.budget-cat-label {
  flex: 1 1 auto; min-width: 0; background: var(--bg-card); border: 1px solid var(--border);
  border-radius: 8px; color: var(--gold); font-weight: 700; padding: 8px 10px; font-size: 0.88rem; font-family: inherit;
}
.budget-cat-type {
  flex: 0 0 auto; background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px;
  color: var(--text); padding: 8px 10px; font-size: 0.8rem; font-family: inherit;
}
.budget-cat-del {
  flex: 0 0 auto; background: none; border: none; color: var(--muted); cursor: pointer;
  font-size: 0.9rem; padding: 4px 6px; border-radius: 6px;
}
.budget-cat-del:hover { color: #e88a8a; }
.budget-lignes { padding-left: 4px; }

.budget-add-btn, .budget-add-ligne-btn {
  display: inline-block; background: none; border: 1px dashed var(--border); border-radius: 8px;
  color: var(--muted); cursor: pointer; padding: 8px 14px; font-size: 0.82rem; font-family: inherit;
  margin-top: 4px; transition: color var(--transition), border-color var(--transition);
}
.budget-add-btn:hover, .budget-add-ligne-btn:hover { color: var(--gold); border-color: var(--gold-dim); }
.budget-add-ligne-btn { font-size: 0.78rem; padding: 6px 12px; }

.budget-sankey-carte { margin-top: 24px; }
.budget-sankey-wrap { width: 100%; overflow-x: auto; }
.budget-sankey-wrap svg { width: 100%; height: 460px; display: block; }
.budget-sankey-wrap path { transition: fill-opacity var(--transition); }
.budget-sankey-wrap path:hover { fill-opacity: 0.6; }
