/* Approved Noodwijzer palette. Base colours are exact; light tints are surfaces,
   never additional status meanings. Status always has a text label as well. */
:root {
  --fs-xs:13px; --fs-sm:14px; --fs-base:16px; --fs-lg:20px; --fs-xl:28px; --fs-2xl:38px;
  --primary: #12304A;
  --action: #1976B9;
  --background: #F7F9FA;
  --text: #17232D;
  --success: #23835B;
  --warning: #E8A317;
  --danger: #D83A3A;
  --surface: #FFFFFF;
  --text-muted: #526473;
  --border: #D6E0E7;
  --control-border: #8297A7;
  --action-tint: #EAF2F8;
  --success-tint: #E8F3ED;
  --warning-tint: #FFF3D9;
  --warning-text: #785000;
  --danger-tint: #FCEBEB;
  --on-dark-muted: #DFE9F1;
  --ink: var(--text);
  --muted: var(--text-muted);
  --teal: var(--action);
  --line: var(--border);
  --paper: var(--background);
  color: var(--text);
  background: var(--background);
}
body { color:var(--text);background:var(--background); }
h1,h2,h3,.brand,.mobile-brand b { color:var(--primary); }
.brandmark { background:var(--primary);color:#fff; }
.brandmark span,.mobile-brand>span { color:var(--action); }
nav a.active,nav a:hover,.avatar,.icon-box,.metric-icon,.metric-icon.amber { background:var(--action-tint);color:var(--action); }
.btn { background:var(--primary);color:#fff; }
.btn:hover { background:var(--primary);box-shadow:inset 0 0 0 100px #ffffff12; }
.btn.secondary { background:var(--surface);border-color:var(--action);color:var(--action); }
.btn.secondary:hover { background:var(--action-tint);border-color:var(--action); }
.btn.subtle { background:transparent;color:var(--action); }
.filters button.selected,.phase-tabs button.selected { background:var(--action);border-color:var(--action);color:#fff; }
input,textarea,select { color:var(--text);border-color:var(--control-border); }
input[type=checkbox],.check-label input { accent-color:var(--action); }
input::placeholder,textarea::placeholder { color:var(--text-muted);opacity:1; }
:is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--action);outline-offset:4px; }
.notice { background:var(--action-tint);border-color:var(--border);color:var(--text); }
.notice.attention,.notice.danger,.danger { background:var(--warning-tint);border-color:var(--warning);color:var(--text); }
.tag { background:var(--action-tint);color:var(--primary); }
.tag.amber,.amber { background:var(--warning-tint);color:var(--warning-text); }
.tag.green { background:var(--success-tint);color:var(--success); }
.error,.field-error,.text-danger { color:var(--warning-text); }
[aria-invalid=true] { border-color:var(--warning-text)!important;box-shadow:0 0 0 1px var(--warning-text); }
.bar span,.cash-overview .bar>span { background:var(--action); }
.progress-overview .six-track i.started { background:var(--action); }
.progress-overview .six-track i.complete { background:var(--success);box-shadow:none; }
.crisis-toggle { background:var(--surface);border-color:var(--action);color:var(--action); }
.crisis .topbar { background:var(--surface); }
.emergency-line,.notice.emergency-line { background:var(--danger-tint);border-color:var(--danger);color:var(--text); }
a[href="tel:112"].btn { background:var(--danger);color:#fff;border-color:var(--danger); }
a[href="tel:112"].btn:hover { background:var(--danger);box-shadow:inset 0 0 0 100px #0000000a; }
.emergency-card-head>strong { color:var(--danger); }
#toast { background:var(--primary);color:#fff; }
.primary-next,.preparation-hero { background:var(--primary);color:#fff; }
.primary-next :is(strong,.next-cta),.hero-main h2 { color:#fff; }
.primary-next .journey-copy small,.hero-main p { color:var(--on-dark-muted); }
.primary-next .btn.secondary { background:transparent;color:#fff;border-color:var(--control-border); }
.home-progress.progress-overview summary span,.home-progress.progress-overview li span { color:var(--text); }
.home-progress.progress-overview li span:last-child { color:var(--text-muted); }
.home-progress a:has(svg)>span { color:inherit; }
/* Onboarding selection is an interaction, not a safety/success assessment. */
body.booting,body.is-onboarding,.onboarding { background:var(--primary);color:#fff; }
.onboarding { --ob-white:var(--background);--ob-muted:var(--on-dark-muted); }
.onboarding :is(.ob-heading h1,.ob-brand,.ob-help,.ob-back,.ob-text) { color:#fff; }
.ob-heading>p,.ob-kicker,.ob-hint,.ob-privacy,.ob-footnote,.welcome-bottom>p:first-child,.ob-progress { color:var(--on-dark-muted); }
.ob-mark { background:var(--background);color:var(--primary); }
.ob-mark span { color:var(--primary); }
.ob-progress li { background:var(--control-border); }
.ob-progress li.filled { background:var(--background); }
.ob-panel { background:var(--background);color:var(--text);border-color:var(--border); }
.onboarding-count label,.count-control input,.ob-summary-row strong,.ob-first-task h2 { color:var(--text); }
.onboarding-count small,.ob-check small,.ob-summary-row>span,.ob-summary-row small,.ob-first-task :is(p,.eyebrow) { color:var(--text-muted); }
.count-control button { background:var(--surface);color:var(--action);border-color:var(--control-border); }
.ob-check input,.onboarding-dialog input[type=checkbox] { accent-color:var(--action); }
.ob-primary { background:var(--action);color:#fff;border-color:var(--on-dark-muted); }
.ob-primary:hover { background:var(--action);box-shadow:inset 0 0 0 100px #ffffff12; }
.ob-actions { background:var(--primary); }
.ob-choice { background:var(--primary);color:#fff;border-color:var(--control-border); }
.ob-choice:has(input:checked) { background:var(--action-tint);color:var(--primary);border-color:var(--action); }
.ob-choice-check { border-color:var(--control-border);color:transparent; }
.ob-choice:has(input:checked) .ob-choice-check { background:var(--action);color:#fff;border-color:var(--action); }
.ob-summary-row button { color:var(--action); }
.onboarding-error { color:var(--warning); }
.onboarding :is(button,a,input,summary):focus-visible,.ob-choice:has(input:focus-visible) { outline:3px solid #fff;outline-offset:4px;box-shadow:0 0 0 7px var(--action); }
.ob-panel :is(button,input):focus-visible { outline-color:var(--action);box-shadow:0 0 0 2px #fff; }
@media print {
 body,.card,.emergency-card { background:#fff;color:#000; }
 .emergency-card-head>strong,h1,h2,h3 { color:#000; }
}
/* Text needs more contrast than icons on a tinted background. */
nav a.active,nav a:hover { color:var(--primary); }
nav a.active svg,nav a:hover svg { color:var(--action); }
.btn.secondary:hover { color:var(--primary); }
.tag.green { color:var(--text); }
.tag.green::before { content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--success);vertical-align:middle; }
.onboarding-dialog .check-label:has(input:checked) { border-color:var(--action); }
.wizard-steps li.current,.wizard-steps li.done { color:var(--action);border-color:var(--action); }
.wizard-steps li.current>span,.wizard-steps li.done>span { background:var(--action);color:#fff; }

.home-progress a.is-complete svg { color:var(--success); }
.checklist input[type=checkbox],input[data-check],input[data-nlcheck] { accent-color:var(--success); }

