:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#20382f;background:#f3f6f3}*{box-sizing:border-box}body{margin:0}main{max-width:1320px;margin:auto;padding:22px}header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}small{letter-spacing:.13em;color:#668779;font-weight:700}h1{font-size:28px;margin:4px 0}h2{font-size:18px;margin:0 0 15px}#subtitle{color:#70877b;font-size:14px}button,input,select{font:inherit}button{border:1px solid #d8e2dc;background:white;color:#254538;border-radius:9px;padding:11px 13px;cursor:pointer;min-height:44px}button.primary{background:#287653;color:white;border-color:#287653}button:hover{filter:brightness(.97)}.top-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.panel{background:#fff;border:1px solid #e2eae4;padding:18px;border-radius:16px;box-shadow:0 3px 10px #163c2710}.section-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.legend{display:flex;align-items:center;gap:6px;color:#687d71;font-size:12px;flex-wrap:wrap}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-left:6px}.dot.sjoerd{background:#528cc4}.dot.geraldine{background:#d987a1}.dot.gezin{background:#6d9e65}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.day{background:#f6f8f6;border:1px solid #e9eeea;border-radius:10px;min-height:225px;padding:9px;overflow-wrap:anywhere}.day.current{border:2px solid #478b6b;background:#f1f8f3}.dayname{font-weight:700;font-size:13px;margin-bottom:12px}.event{padding:8px 6px;border-radius:7px;margin-bottom:6px;font-size:12px;position:relative}.event.sjoerd{background:#dcecf9;color:#24547f}.event.geraldine{background:#fbe2e9;color:#7b4057}.event.gezin{background:#def0d9;color:#356c3e}.event button{float:right;min-height:auto;padding:0 4px;background:transparent;border:0;font-size:16px;color:inherit}.lists{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:16px}.add-form{display:flex;gap:8px}.add-form input{flex:1;min-width:0}.add-form input,input,select{border:1px solid #d5e2d9;border-radius:9px;padding:11px;background:white;min-height:44px}.items{margin-top:12px}.item{display:flex;align-items:center;gap:10px;padding:9px 3px;border-bottom:1px solid #f0f3f1;font-size:14px}.item span{flex:1}.item.done span{text-decoration:line-through;color:#84938a}.item input{min-height:auto;accent-color:#287653;width:18px;height:18px}.item button{border:none;padding:2px 8px;min-height:30px;color:#9a5757}footer{text-align:center;font-size:12px;color:#8a9c90;margin:20px}dialog{border:0;border-radius:15px;padding:22px;width:min(410px,95vw);box-shadow:0 15px 70px #142b2550}dialog::backdrop{background:#10271988}dialog form{display:grid;gap:12px}dialog label{display:grid;gap:6px;font-size:13px;font-weight:600}dialog input,dialog select{width:100%}.time{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:7px}@media(max-width:760px){header{align-items:flex-start;flex-direction:column}.day{padding:5px;min-height:180px}.dayname{font-size:11px}.event{font-size:10px;padding:5px 3px}.week{gap:3px}.lists{grid-template-columns:1fr}main{padding:10px}.panel{padding:10px}.legend{font-size:10px}}

/* Login and activation: scoped to avoid altering dashboard forms */
[hidden]{display:none!important}
body.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:22px;background:#f3f6f3}
.auth-page main.auth-card{width:100%;max-width:420px;margin:0;padding:28px;background:#fff;border:1px solid #e2eae4;border-radius:18px;box-shadow:0 8px 30px #163c2717}
.auth-card h1{font-size:27px;line-height:1.2;margin:0 0 12px}
.auth-card p{line-height:1.5;margin:0 0 18px;color:#587064}
.auth-form{display:grid;gap:16px}
.auth-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.auth-field label{display:block;font-weight:600;font-size:14px}
.auth-field input{display:block;width:100%;min-width:0;box-sizing:border-box;margin:0}
.auth-field input:focus{outline:2px solid #438c64;outline-offset:1px}
.auth-checkbox{display:flex;align-items:center;gap:9px;font-size:14px}
.auth-checkbox input{flex:none;width:18px;height:18px;min-height:0;margin:0}
.auth-form button{width:100%}
.auth-form [role="alert"]{color:#aa253d;min-height:1em;margin:0;font-size:13px}
.auth-card a{color:#287653;font-weight:600}
@media(max-width:480px){.auth-page main.auth-card{padding:22px}}

/* Persoonlijke kleuren en lichte/donkere weergave */
:root{--accent:#318064}
button.primary{background:var(--accent);border-color:var(--accent)}
.day.current{border-color:var(--accent)}
.item input{accent-color:var(--accent)}
.settings-shell{max-width:760px}
.settings-form{display:grid;gap:14px}
.settings-form label{font-weight:600}
.settings-form input[type=color]{width:75px;height:48px;padding:4px;cursor:pointer}
.settings-palette{display:flex;gap:12px;flex-wrap:wrap}
.settings-palette button{height:42px;width:42px;min-height:42px;padding:0;border:3px solid transparent;border-radius:50%}
.settings-palette button[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:2px}
body.dark-mode{background:#17221e;color:#e8f1eb}
body.dark-mode .panel,body.dark-mode .auth-card{background:#25352c;border-color:#40594a;color:#e8f1eb}
body.dark-mode .day{background:#293b31;border-color:#496253}
body.dark-mode .day.current{border-color:var(--accent)}
body.dark-mode button:not(.primary):not([data-color]),body.dark-mode input,body.dark-mode select{background:#35483d;color:#f0f7f1;border-color:#537160}
body.dark-mode #subtitle,body.dark-mode .legend,body.dark-mode footer{color:#bbcfc0}
body.dark-mode .item{border-color:#40594a}
body.dark-mode a{color:#a8d9ba}
