:root { color-scheme: light; --green:#173f35; --green-2:#276454; --cream:#f7f4ec; --card:#fff; --ink:#17201d; --muted:#52615c; --line:#ccd7d2; --focus:#e1632f; --shadow:0 8px 24px rgba(23,63,53,.10); font-size:18px; }
* { box-sizing:border-box; }
html,body { width:100%; max-width:100%; overflow-x:hidden; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:system-ui,-apple-system,"Segoe UI",sans-serif; line-height:1.5; padding-bottom:7rem; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
:focus-visible { outline:4px solid var(--focus); outline-offset:3px; }
.skip-link { position:fixed; left:1rem; top:-5rem; z-index:20; background:#fff; color:#000; padding:1rem; }
.skip-link:focus { top:1rem; }
.app-header { background:var(--green); color:#fff; padding:1rem max(1rem,calc((100% - 860px)/2)); display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.app-header h1 { margin:0; font-size:2.2rem; line-height:1; }
.account-actions { display:flex; align-items:center; justify-content:flex-end; gap:.6rem; flex-wrap:wrap; }
.account-actions span { font-weight:800; }
.auth-screen { min-height:85vh; display:grid; place-items:center; }
.auth-card { width:min(100%,560px); padding:clamp(1rem,4vw,2rem); border:2px solid var(--line); border-radius:1.2rem; background:var(--card); box-shadow:var(--shadow); }
.auth-card h1 { margin:.1rem 0 .5rem; font-size:clamp(2rem,7vw,3rem); }
.auth-card fieldset { margin:1.2rem 0; padding:1rem; border:2px solid var(--line); border-radius:.8rem; }
.auth-card legend { padding:0 .4rem; font-weight:900; }
body.auth-loading #loginScreen { visibility:hidden; }
body.authenticated #loginScreen { display:none; }
body:not(.authenticated) .app-header,body:not(.authenticated) main#inhoud,body:not(.authenticated) .scroll-navigation,body:not(.authenticated) .bottom-nav { display:none; }
body.install-page main#inhoud { display:flex; }
body:not(.authenticated) { padding-bottom:0; }
.eyebrow { margin:0 0 .2rem; font-size:.85rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--green-2); }
.app-header .eyebrow { color:#c5e6dc; }
.header-button { min-height:52px; padding:.6rem 1rem; border:2px solid #fff; border-radius:.8rem; color:#fff; background:transparent; font-weight:750; }
main { width:100%; max-width:860px; min-width:0; margin:auto; padding:1.3rem 1rem; }
main section,form,fieldset,.calendar-card,.overview-card,.summary-card,.item,.quick-form { min-width:0; max-width:100%; }
h2 { margin:.1rem 0 .4rem; font-size:clamp(1.7rem,6vw,2.4rem); line-height:1.15; }
h3 { margin:.2rem 0 .7rem; font-size:1.35rem; line-height:1.2; }
.welcome { margin:1rem 0 1.6rem; }
.welcome p:last-child { color:var(--muted); font-size:1.05rem; }
.date { color:var(--green-2); font-weight:800; text-transform:capitalize; }
.dashboard-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.today-overview { margin:1.2rem 0 1.6rem; }
.next-overview { padding-top:1rem; border-top:3px solid var(--line); }
.overview-list { margin-top:.6rem; }
.overview-card { width:100%; display:block; background:var(--card); color:var(--ink); text-align:left; border:2px solid var(--line); border-radius:1rem; padding:1rem; box-shadow:var(--shadow); }
.overview-card strong,.overview-card small { display:block; }
.overview-card strong { font-size:1.12rem; }
.overview-card small { margin-top:.25rem; color:var(--muted); }
.future-meal-list { list-style:none; padding:0; }
.future-meal-list li { margin-bottom:.8rem; }
.section-actions { display:flex; flex-wrap:wrap; gap:.7rem; }
.history-heading { margin-top:2rem; padding-top:1.2rem; border-top:3px solid var(--line); }
.history-meal-card { text-align:left; }
.message-text { white-space:pre-wrap; margin:.65rem 0 0; font-size:1rem; }
.unread-message { border-width:4px; border-color:var(--accent); }
.message-item { align-items:flex-start; flex-wrap:wrap; }
.message-item .item-main { flex-basis:100%; width:100%; }
.message-item .club-label { display:block; width:fit-content; max-width:100%; border-radius:.7rem; line-height:1.4; overflow-wrap:anywhere; }
.message-item strong { font-size:1.2rem; }
.message-item .message-text { width:100%; line-height:1.55; overflow-wrap:anywhere; }
#berichtDialog label { margin-top:1rem; }
#berichtDialog textarea { min-height:180px; line-height:1.5; resize:vertical; }
.housekeeping-card { margin:1.4rem 0 0; border:3px solid var(--green-2); border-radius:1rem; background:var(--card); }
.housekeeping-card summary { padding:1rem; font-size:1.1rem; font-weight:900; cursor:pointer; }
.housekeeping-card summary::marker { color:var(--green-2); }
.housekeeping-content { padding:0 1rem 1rem; border-top:2px solid var(--line); }
.housekeeping-card p { margin:.8rem 0; }
.leave-list { list-style:none; margin:.7rem 0 0; padding:0; display:grid; gap:.5rem; }
.leave-list li { display:flex; align-items:center; justify-content:space-between; gap:.7rem; padding:.6rem; border:2px solid var(--line); border-radius:.7rem; }
.leave-list button { min-height:46px; border:2px solid var(--green); border-radius:.6rem; background:var(--card); color:var(--ink); font-weight:800; }
.summary-card { width:100%; min-height:126px; display:flex; text-align:left; align-items:center; gap:1rem; padding:1.2rem; border:2px solid var(--line); border-radius:1.2rem; background:var(--card); color:var(--ink); box-shadow:var(--shadow); }
.summary-card strong,.summary-card small { display:block; }
.summary-card strong { font-size:1.2rem; }
.summary-card small { margin-top:.2rem; color:var(--muted); font-size:.9rem; }
.card-icon { font-size:2.2rem; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:.8rem 0 1.2rem; }
.agenda-view-switch { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; margin-bottom:1rem; }
.agenda-view-switch button { min-height:58px; border:3px solid var(--green); border-radius:.8rem; background:var(--card); color:var(--ink); font-weight:900; }
.agenda-view-switch button.selected { background:var(--green); color:#fff; }
.agenda-filter { margin:0 0 1rem; padding:1rem; border:3px solid var(--green-2); border-radius:1rem; background:var(--card); }
.agenda-filter label { margin-top:0; font-size:1.1rem; }
.agenda-filter select { font-size:1.15rem; font-weight:800; }
.calendar-card { margin:0 0 1.4rem; padding:1rem; border:2px solid var(--line); border-radius:1rem; background:var(--card); box-shadow:var(--shadow); }
.calendar-controls { display:grid; grid-template-columns:58px 1fr 58px; align-items:center; gap:.6rem; }
.calendar-controls h3 { margin:0; text-align:center; text-transform:capitalize; }
.calendar-controls button,.month-today-button { min-height:52px; border:2px solid var(--green); border-radius:.7rem; background:var(--card); color:var(--ink); font-weight:900; }
.calendar-controls button { font-size:1.5rem; }
.calendar-controls button:disabled { border-color:#777; background:#ddd; color:#666; cursor:not-allowed; opacity:1; }
.month-today-button { width:100%; margin:.7rem 0; }
.calendar-scroll { width:100%; overflow-x:hidden; }
.month-table { width:100%; border-collapse:separate; border-spacing:3px; table-layout:fixed; }
.month-table th { padding:.35rem 0; color:var(--muted); font-size:.78rem; }
.month-table td { height:54px; vertical-align:middle; padding:2px; border:2px solid var(--line); border-radius:.5rem; background:var(--cream); }
.calendar-day-button { display:flex; width:100%; min-height:48px; padding:2px; border:0; background:transparent; color:inherit; text-align:center; align-items:center; justify-content:center; flex-direction:column; touch-action:manipulation; }
.calendar-day-button:hover { text-decoration:underline; }
.calendar-day-button:disabled { cursor:not-allowed; text-decoration:none; }
.month-table td.past-day { background:#ddd; color:#555; }
.month-table td.other-month { opacity:.4; }
.month-table td.has-activity { border:4px solid var(--green); background:#cceade; box-shadow:inset 0 0 0 2px #fff; }
.month-table td.today-cell { outline:4px solid var(--focus); outline-offset:1px; }
.day-number { display:block; font-size:1rem; line-height:1; font-weight:900; }
.activity-dots { display:flex; justify-content:center; align-items:center; gap:2px; min-height:17px; margin-top:2px; }
.activity-symbol { display:inline-flex; min-width:15px; height:17px; align-items:center; justify-content:center; font-size:16px; line-height:1; font-weight:1000; text-shadow:0 0 1px #fff,0 0 2px #fff; }
.more-symbol { min-width:10px; font-size:13px; color:#111; text-shadow:none; }
.calendar-legend { display:flex; flex-wrap:wrap; gap:.45rem .8rem; margin:0 0 .8rem; padding:.6rem; border:2px solid var(--line); border-radius:.7rem; font-size:.78rem; font-weight:800; }
.calendar-legend span { display:flex; align-items:center; gap:.3rem; }
.person-symbol { display:inline-flex; width:23px; height:23px; flex:0 0 23px; align-items:center; justify-content:center; font-style:normal; font-size:21px; line-height:1; font-weight:1000; text-shadow:0 0 1px #fff,0 0 2px #fff; }
.symbol-benjamin { color:#075ac6; }
.symbol-nicolas { color:#c74700; }
.symbol-samen { color:#7b239f; }
.symbol-andere { color:#006d4c; }
.symbol-verjaardag,.symbol-poetsvrouw { color:#111; text-shadow:none; }
.dot-hallewijn { background:#d83a2e; }
.dot-neos { background:#2166d1; }
.dot-raak { background:#8b36b5; }
.dot-brailleliga { background:#e07a00; }
.dot-eigenactiviteiten { background:#087f5b; }
.appointment-item.selected-activity { border:5px solid #111; background:#ffeb3b; color:#111; box-shadow:0 0 0 5px #fff,0 0 0 9px #111; }
.appointment-item.selected-activity small,.appointment-item.selected-activity .club-label { color:#111; }
.primary-button { min-height:54px; border:0; border-radius:.85rem; background:var(--green); color:#fff; padding:.7rem 1.1rem; font-weight:800; }
.primary-button.full { width:100%; margin-top:1.2rem; }
.quick-form { background:var(--card); padding:1rem; border-radius:1rem; box-shadow:var(--shadow); }
.shopping-picker { margin:.8rem 0 1rem; padding:1rem; border:3px solid var(--green-2); border-radius:1rem; }
.shopping-picker legend { padding:0 .4rem; font-size:1.1rem; font-weight:900; }
.shopping-picker p { margin:.7rem 0 0; color:var(--muted); }
label { display:block; font-weight:800; margin:.7rem 0 .35rem; }
.shopping-fields { display:grid; grid-template-columns:minmax(90px,.35fr) repeat(2,minmax(110px,.5fr)) minmax(150px,1fr); gap:.8rem; }
.field-group { min-width:0; }
input,select,textarea { display:block; width:100%; max-width:100%; min-width:0; min-height:54px; border:2px solid #82958d; border-radius:.75rem; background:#fff; color:#111; padding:.65rem .8rem; font-size:1rem; }
textarea { min-height:110px; resize:vertical; }
input[type="date"] { display:block; width:100%; max-width:100%; min-width:0; -webkit-appearance:none; appearance:none; padding:.55rem .45rem; }
select { font-size:1.15rem; font-weight:700; }
select option { font-size:1.15rem; }
.optional,legend span { font-weight:500; color:var(--muted); font-size:.9rem; }
.time-fields { margin:1rem 0 0; padding:0; border:0; }
.time-fields legend { font-weight:800; margin-bottom:.2rem; }
.time-fields .time-grid { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.time-fields .time-choice { display:block; }
.time-fields label { margin-top:.25rem; }
.taxi-toggle { display:flex; align-items:center; gap:.75rem; margin:1rem 0; padding:.8rem; border:2px solid var(--line); border-radius:.8rem; }
.taxi-toggle input { width:30px; min-height:30px; height:30px; flex:0 0 30px; accent-color:var(--green); }
.taxi-toggle label { margin:0; }
.payment-fields { margin:1rem 0; padding:1rem; border:2px solid var(--line); border-radius:.9rem; }
.payment-fields legend { padding:0 .35rem; font-weight:900; }
.payment-fields > label { margin-top:.2rem; }
.payment-toggle { display:flex; align-items:center; gap:.75rem; margin-top:.8rem; padding:.8rem; border:2px solid var(--line); border-radius:.8rem; }
.payment-toggle input { width:30px; min-height:30px; height:30px; flex:0 0 30px; accent-color:var(--green); }
.payment-toggle label { margin:0; font-size:1.1rem; }
.taxi-fields { border:2px solid var(--line); border-radius:.9rem; padding:.8rem; }
.taxi-fields legend { padding:0 .35rem; font-weight:800; }
.taxi-reservation-toggle { display:flex; align-items:center; gap:.75rem; margin:0 0 1rem; padding:.8rem; border:3px solid var(--green-2); border-radius:.8rem; }
.taxi-reservation-toggle input { width:30px; min-height:30px; height:30px; flex:0 0 30px; accent-color:var(--green); }
.taxi-reservation-toggle label { margin:0; font-size:1.1rem; }
.taxi-time + .taxi-time { margin-top:1rem; padding-top:.8rem; border-top:2px solid var(--line); }
.taxi-time p { margin:0; font-weight:800; }
.empty-state { padding:1.2rem; border:2px dashed var(--line); border-radius:1rem; color:var(--muted); text-align:center; }
.item-list { list-style:none; padding:0; margin:1rem 0; display:grid; gap:.7rem; }
.item { display:flex; align-items:center; gap:.8rem; min-height:70px; background:var(--card); border:2px solid var(--line); border-radius:1rem; padding:.8rem; }
.item-main { flex:1; min-width:0; }
.item-main strong,.item-main small { display:block; }
.item-main small { color:var(--muted); }
.shopping-edit-button { flex:1; min-width:0; padding:.35rem; border:2px solid transparent; border-radius:.7rem; background:transparent; color:inherit; text-align:left; }
.shopping-edit-button:hover { border-color:var(--green-2); background:#eef6f2; }
.shopping-edit-button strong,.shopping-edit-button small { display:block; }
.club-label { display:inline-block; margin-bottom:.4rem; padding:.2rem .55rem; border-radius:999px; background:#dcece6; color:var(--green); font-size:.82rem; font-weight:900; }
.appointment-item { align-items:flex-start; flex-wrap:wrap; }
.appointment-item .item-main { flex-basis:100%; }
.item-actions { width:100%; display:flex; gap:.6rem; flex-wrap:wrap; }
.item-action { min-height:48px; border:2px solid var(--green); border-radius:.7rem; padding:.5rem .8rem; background:#fff; color:var(--green); font-weight:800; }
.item-action.delete { border-color:#8b1f1f; background:#fff4f4; color:#8b1f1f; }
.delete-button { min-width:48px; min-height:48px; border:0; border-radius:.7rem; color:#8b1f1f; background:#fae8e8; font-weight:800; }
.check-button { width:52px; height:52px; flex:0 0 52px; border:3px solid var(--green); border-radius:.8rem; background:#fff; color:transparent; font-weight:900; }
.done .check-button { background:var(--green); color:#fff; }
.done .item-main { text-decoration:line-through; color:var(--muted); }
.text-button { border:0; background:transparent; color:var(--green); text-decoration:underline; font-weight:800; min-height:48px; }
.text-button:disabled { color:var(--muted); text-decoration:none; cursor:not-allowed; }
.bottom-nav { position:fixed; z-index:10; bottom:0; left:0; right:0; display:grid; grid-template-columns:repeat(5,1fr); background:#fff; border-top:2px solid var(--line); padding:.35rem max(.35rem,calc((100% - 860px)/2)); }
.birthday-calendar-button { width:100%; min-height:72px; margin-top:1rem; border:4px solid var(--accent); border-radius:1rem; background:#ffdd57; color:#17201d; font-size:1.2rem; font-weight:900; box-shadow:var(--shadow); }
.birthday-calendar-button span { font-size:1.5rem; }
.scroll-navigation { position:fixed; z-index:11; inset:0; pointer-events:none; }
.scroll-navigation button { position:fixed; right:.7rem; width:62px; height:62px; padding:0; border:4px solid #fff; border-radius:50%; background:var(--green-2); color:#fff; box-shadow:0 5px 16px rgba(0,0,0,.35); font-weight:900; pointer-events:auto; }
#naarOnder { top:6.3rem; }
#naarBoven { bottom:5.4rem; }
.scroll-navigation button:disabled { background:#666; color:#fff; opacity:1; cursor:not-allowed; }
.scroll-navigation span { display:block; font-size:2rem; line-height:1; }
.nav-button { min-height:74px; border:0; background:transparent; color:var(--muted); font-size:.76rem; font-weight:800; border-radius:.8rem; }
.nav-button span { display:block; font-size:1.45rem; line-height:1.1; }
.nav-button.selected { background:#dcece6; color:var(--green); }
.birthday-overview { border-top-color:#8b36b5; }
.meal-overview { border-top-color:#e05a00; }
.week-controls { display:grid; grid-template-columns:58px 1fr 58px; align-items:center; gap:.6rem; margin:1rem 0 .6rem; }
.week-controls strong { text-align:center; font-size:1.05rem; }
.week-controls button { min-height:54px; border:2px solid var(--green); border-radius:.7rem; background:var(--card); color:var(--ink); font-size:1.5rem; font-weight:900; }
.weekmenu-help { padding:.8rem; border-left:5px solid var(--green-2); background:var(--card); }
.weekmenu-days { display:grid; gap:1rem; }
.meal-card { padding:1rem; border:3px solid var(--line); border-radius:1rem; background:var(--card); box-shadow:var(--shadow); }
.meal-card.today-meal { border-color:var(--focus); border-width:5px; }
.meal-card h3 { text-transform:capitalize; }
.meal-choice-grid { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.meal-choice-grid label { margin-top:.25rem; }
.meal-count-select { max-width:14rem; margin-bottom:.5rem; }
.meal-editor { margin-top:1rem; padding-top:1rem; border-top:3px solid var(--line); }
.meal-editor h4 { margin:.1rem 0 .7rem; font-size:1.25rem; }
.meal-actions { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; margin-top:.9rem; }
.meal-actions .ingredients-button { grid-column:1/-1; }
.birthday-card { border:3px solid #8b36b5; }
.birthday-item { border-left:8px solid #8b36b5; flex-wrap:wrap; }
.birthday-item .item-main { flex-basis:100%; }
.birthday-date-fields { margin:1rem 0; padding:1rem; border:2px solid var(--line); border-radius:.9rem; }
.birthday-date-fields legend { padding:0 .35rem; font-weight:900; }
.birthday-date-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:.8rem; }
.symbol-verjaardag { color:#c4006a; }
body.high-contrast .birthday-card,body.high-contrast .birthday-item { border-color:#ffeb3b; }
dialog { width:min(520px,calc(100vw - 1rem)); max-width:calc(100vw - 1rem); margin:auto; border:0; border-radius:1.2rem; padding:1.2rem; color:var(--ink); overflow-x:hidden; }
#agendaDialog form { width:100%; max-width:100%; min-width:0; overflow:hidden; }
#boodschapDialog { width:min(700px,calc(100vw - 1rem)); }
dialog::backdrop { background:rgba(0,0,0,.65); }
.dialog-heading { display:flex; justify-content:space-between; align-items:center; }
.close-button { min-width:50px; min-height:50px; border:0; border-radius:50%; background:#e8ecea; font-size:1.8rem; }
.dialog-actions { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; margin-top:1.2rem; }
.dialog-actions button { min-height:58px; }
.secondary-button { border:2px solid var(--green); border-radius:.85rem; background:#fff; color:var(--green); padding:.7rem 1rem; font-weight:800; }
.form-error { margin:1rem 0 0; padding:.8rem; border:3px solid #a32121; border-radius:.7rem; background:#fff1f1; color:#761717; font-weight:800; }
.toast { position:fixed; z-index:30; left:50%; bottom:6.5rem; transform:translate(-50%,1rem); padding:.8rem 1rem; border-radius:.8rem; background:#111; color:#fff; opacity:0; pointer-events:none; transition:.2s; }
.toast.show { opacity:1; transform:translate(-50%,0); }
body.high-contrast { --cream:#000; --card:#000; --ink:#fff; --muted:#fff; --line:#fff; --green:#000; --green-2:#ffeb3b; --focus:#00e5ff; --shadow:none; }
body.high-contrast .app-header,.high-contrast .bottom-nav { border-color:#fff; background:#000; }
body.high-contrast .nav-button.selected { background:#fff; color:#000; }
body.high-contrast input,body.high-contrast select { border-color:#fff; background:#000; color:#fff; }
body.high-contrast textarea { border-color:#fff; background:#000; color:#fff; }
body.high-contrast .meal-card,body.high-contrast .week-controls button { border-color:#fff; background:#000; color:#fff; }
body.high-contrast .item-action { background:#000; color:#fff; border-color:#fff; }
body.high-contrast .shopping-edit-button { color:#fff; }
body.high-contrast .shopping-edit-button:hover { border-color:#ffeb3b; background:#000; }
body.high-contrast .secondary-button { background:#000; color:#fff; border-color:#fff; }
body.high-contrast .club-label { background:#fff; color:#000; }
body.high-contrast dialog { color-scheme:dark; background:#000; color:#fff; border:3px solid #fff; }
body.high-contrast .primary-button { border:2px solid #fff; background:#000; color:#fff; }
body.high-contrast .close-button { background:#fff; color:#000; }
body.high-contrast .delete-button { background:#fff; color:#000; }
body.high-contrast .check-button { border-color:#fff; background:#000; }
body.high-contrast .payment-fields,body.high-contrast .payment-toggle { border-color:#fff; }
body.high-contrast .taxi-reservation-toggle { border-color:#ffeb3b; }
body.high-contrast .shopping-picker { border-color:#ffeb3b; }
body.high-contrast .done .check-button { background:#fff; color:#000; }
body.high-contrast .toast { border:2px solid #fff; background:#000; color:#fff; }
body.high-contrast .form-error { border-color:#fff; background:#000; color:#fff; }
body.high-contrast .leave-list button { border-color:#fff; background:#000; color:#fff; }
body.high-contrast .scroll-navigation button { border-color:#fff; background:#000; color:#fff; }
body.high-contrast .scroll-navigation button:disabled { border-color:#fff; background:#fff; color:#000; }
body.high-contrast .text-button { border:2px solid #fff; border-radius:.65rem; background:#000; color:#fff; padding:.5rem .7rem; }
body.high-contrast .text-button:disabled { border-color:#aaa; color:#aaa; }
body.high-contrast .calendar-controls button,body.high-contrast .month-today-button { border-color:#fff; background:#000; color:#fff; }
body.high-contrast .agenda-view-switch button { border-color:#fff; background:#000; color:#fff; }
body.high-contrast .agenda-view-switch button.selected { background:#fff; color:#000; }
body.high-contrast .agenda-filter { border-color:#ffeb3b; }
body.high-contrast .month-table td { border-color:#fff; background:#000; color:#fff; }
body.high-contrast .month-table td.has-activity { border-color:#ffeb3b; background:#000; }
body.high-contrast .calendar-legend { border-color:#fff; }
body.high-contrast .activity-symbol,body.high-contrast .person-symbol { color:#ffeb3b; text-shadow:none; }
body.high-contrast .calendar-day-button { background:#000; color:#fff; }
body.high-contrast .month-table td.past-day,body.high-contrast .month-table td.past-day .calendar-day-button { border-color:#777; background:#222; color:#aaa; }
body.high-contrast .appointment-item.selected-activity { border-color:#fff; background:#ffeb3b; color:#000; box-shadow:0 0 0 5px #000,0 0 0 9px #ffeb3b; }
body.high-contrast .overview-card,body.high-contrast .overview-card strong,body.high-contrast .overview-card small { color:#fff; }
body.high-contrast .birthday-calendar-button { border-color:#fff; background:#ffeb3b; color:#000; }
@media (max-width:620px) { .meal-choice-grid{grid-template-columns:1fr} }
@media (max-width:620px) {
  #maaltijden .section-heading { display:block; }
  #maaltijden .section-actions { display:grid; grid-template-columns:1fr 1fr; width:100%; margin-top:1rem; gap:.65rem; }
  #maaltijden .section-actions button { width:100%; min-height:5rem; margin:0; padding:.7rem .45rem; }
}
@media (max-width:520px) { :root{font-size:17px}.app-header{align-items:flex-start}.header-button{font-size:.8rem}.section-heading{align-items:flex-end}.shopping-fields{grid-template-columns:1fr}.scroll-navigation button{right:.45rem;width:58px;height:58px}.bottom-nav{padding-bottom:max(.35rem,env(safe-area-inset-bottom))}.nav-button{font-size:.56rem}.nav-button span{font-size:1.15rem}.meal-actions{grid-template-columns:1fr}.meal-actions .ingredients-button{grid-column:auto} }
@media (max-width:520px) { #berichtDialog .dialog-actions{grid-template-columns:1fr} }
@media (max-width:620px) { .app-header{flex-direction:column;align-items:stretch}.account-actions{justify-content:flex-start}.account-actions span{width:100%} }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
