Group settings into four panels and give balances one home

Settings becomes Barn & familj, Saldon, Kalender & språk and
Undantag & röda dagar, each saving on its own. A BalanceFlow
component owns fetching from Försäkringskassan and manual entry for
every parent, used by the Saldon panel and by the onboarding wizard,
which now runs without the app chrome. The red-days list and the
day-override form merge into one exceptions view, the vacation table
becomes wrapping rows that fit a phone, and the BankID modal speaks
translated status lines instead of emoji.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XBRLomdLK9jF7wU7a8AA6H
This commit is contained in:
2026-09-20 06:30:46 +02:00
parent 80b4f1cb52
commit b3fe2ac645
26 changed files with 2297 additions and 1142 deletions
@@ -0,0 +1,64 @@
/* BalanceFlow — shared by Settings' "Saldon" panel (`mode="panel"`, plain
* unboxed rows separated by a hairline) and Onboarding's balances step
* (`mode="wizard"`, one `.card` per member — matches the rest of the
* wizard's choice-card language). */
.balance-flow__rows {
display: flex;
flex-direction: column;
}
.balance-flow__row {
padding: var(--sp-4) 0;
border-bottom: 1px solid var(--c-border);
}
.balance-flow__row:first-child {
padding-top: 0;
}
.balance-flow__cards {
display: flex;
flex-direction: column;
gap: var(--sp-4);
margin-bottom: var(--sp-5);
}
.balance-flow__identity {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--sp-2);
margin-bottom: var(--sp-1);
}
.balance-flow__name {
font-weight: 600;
}
.balance-flow__you {
font-weight: 400;
}
.balance-flow__status {
margin: 0;
color: var(--c-text);
}
.balance-flow__source {
margin: 0 0 var(--sp-3) 0;
font-size: var(--fs-sm);
color: var(--c-text-muted);
}
.balance-flow__actions {
justify-content: flex-start;
margin-top: var(--sp-2);
}
.balance-flow__deduced-prompt {
margin-bottom: var(--sp-5);
}
.balance-flow__deduced-prompt .btn--link {
margin-left: var(--sp-3);
}