:root{color-scheme:light;--paper:#fdfbf6;--ink:#304650;--soft:#edf3f4;--blue:#cde4ef;--blue-ink:#29434b;--line:#d5dfe0;--focus:#557988;--sage:#eaf2e7;font-family:ui-rounded,'Segoe UI',system-ui,sans-serif;color:var(--ink);background:#eef2ef;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;color:inherit}button{min-height:48px;padding:10px 16px;border:1px solid var(--line);border-radius:14px;background:var(--paper);cursor:pointer;touch-action:manipulation}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button:hover{border-color:var(--focus)}[hidden]{display:none!important}.app{max-width:820px;margin:24px auto;padding:26px;background:var(--paper);border:1px solid var(--line);border-radius:28px;min-height:calc(100svh - 48px)}header{display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{font-size:23px;font-weight:650}.quiet{border:0;background:transparent;font-size:14px}nav{display:flex;background:var(--soft);border-radius:18px;padding:5px;gap:5px;margin:22px 0}nav button{flex:1;background:transparent;border:0;font-size:18px;font-weight:600}nav button[aria-pressed=true],.primary{background:var(--blue);color:var(--blue-ink)}.hero{text-align:center;padding:28px 16px;background:#e6f1f6;border-radius:24px}.hero p{font-size:22px;margin:0}.hero h1{font-size:clamp(36px,6vw,52px);line-height:1.15;margin:10px 0 14px;letter-spacing:-1px}.hero .date{font-size:18px}.neighbors{display:flex;justify-content:space-around;padding:20px 0;border-bottom:1px solid var(--line);text-align:center;gap:12px}.neighbors span{font-size:14px}.neighbors strong{display:block;margin-top:5px;font-size:19px;font-weight:600}h2{font-size:23px;font-weight:650;margin:24px 0 16px}h3{font-size:19px}.activity{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:20px;padding:15px;margin:12px 0;background:var(--paper)}.activity.completed{background:var(--sage)}.activity.completed .activity-name{text-decoration:line-through;text-decoration-thickness:1px}.picture{width:60px;height:60px;flex-shrink:0;display:grid;place-items:center;background:#f5efdf;border-radius:16px;font-size:32px}.completed .picture{background:#e0ebdd}.activity-text{flex:1;min-width:0;overflow-wrap:anywhere}.period{font-size:14px;margin-bottom:5px}.activity-name{font-size:21px;font-weight:600}.complete-control{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:58px;min-height:58px;font-size:13px;cursor:pointer}.complete-control input{width:27px;height:27px;accent-color:#54775d;margin:0}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.calendar-head h1{font-size:25px;text-align:center;margin:14px 0}.calendar-head button{padding:8px;min-width:48px;font-size:24px}.today-note{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:14px 0 18px;font-size:16px}.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekday{text-align:center;font-size:14px;padding:9px 0}.day{position:relative;padding:8px 2px;border-radius:12px;min-height:70px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:20px}.day.today{border:2px solid var(--focus);background:#e6f1f6}.day.selected{background:var(--blue);border-color:var(--focus);color:var(--blue-ink)}.day small{font-size:11px;min-height:14px}.day-mark{font-size:14px;min-height:17px}.week .day{min-height:115px}.week .day-picture{font-size:27px}.day-count{font-size:11px}.legend,.muted{font-size:14px;line-height:1.5}.empty{padding:18px 0;font-size:18px;line-height:1.5}.empty p{margin:6px 0}.empty .muted{font-size:15px}.warning{background:#fff0d6;padding:14px;border-radius:12px;line-height:1.5}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:24px;width:min(560px,calc(100% - 24px));max-height:90svh}dialog::backdrop{background:#203d4b66}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-head h2{margin:0}.dialog-head button{min-width:48px}dialog label{display:block;margin:16px 0 7px;font-size:15px}dialog input:not([type=checkbox]),dialog select{display:block;width:100%;padding:12px;border:1px solid var(--line);background:var(--paper);border-radius:12px;font-size:16px;min-height:48px}dialog input[type=file]{max-width:100%}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.parent-row{padding:14px 0;border-bottom:1px solid var(--line)}.parent-row strong{display:block;overflow-wrap:anywhere}.parent-row .actions{margin-top:10px}.parent-row .actions button{font-size:14px}details{margin-top:24px;border-top:1px solid var(--line);padding-top:18px}summary{cursor:pointer;min-height:36px}.check-setting{display:flex!important;align-items:center;gap:10px;min-height:48px}.check-setting input{width:22px;height:22px;accent-color:#54775d}.small{font-size:12px;margin-top:22px}
@media(max-width:480px){.app{margin:0;border:0;border-radius:0;padding:18px 14px;min-height:100svh}.brand{font-size:21px}.picture{width:48px;height:48px;font-size:28px}.activity{padding:12px;gap:10px}.activity-name{font-size:19px}.complete-control{min-width:52px}.grid{gap:3px}.weekday{font-size:12px}.day{font-size:17px;min-height:68px}.week .day{min-height:100px}.week .day-picture{font-size:22px}.calendar-head h1{font-size:20px}.fields{grid-template-columns:1fr}dialog{padding:18px}}
#parent-dialog[open]{display:flex;flex-direction:column;overflow:hidden;padding:0;max-height:90svh}
#parent-dialog .dialog-head{flex:none;padding:18px 20px;border-bottom:1px solid var(--line)}
.parent-scroll{overflow-y:auto;min-height:0;padding:0 20px 16px;overscroll-behavior:contain}
.parent-footer{flex:none;background:var(--paper);border-top:1px solid var(--line);padding:12px 20px max(12px,env(safe-area-inset-bottom))}
.parent-footer .actions{margin:0}.parent-footer .primary{flex:1;font-weight:650}.parent-footer p{margin:0 0 8px;font-size:14px}.parent-footer p:empty{display:none}
#gate-question{font-size:26px;font-weight:650}#gate-error{color:#8b332e}
/* A single, generous reading column at every screen size. */
.app{max-width:560px}
.today-layout{display:flex;flex-direction:column;gap:8px}.today-layout>div,.today-layout>.schedule{width:100%}
.brand{font-size:26px}.quiet{font-size:16px}nav{margin:24px 0;padding:6px;border-radius:22px}nav button{font-size:21px;min-height:56px;border-radius:17px}
.hero{position:relative;display:flex;flex-direction:column;align-items:center;padding:30px 12px 34px;border-radius:30px;background:linear-gradient(155deg,#e3f1f7,#edf5ec);border:1px solid #d2e5e9}
.hero::before{content:'☀️';display:grid;place-items:center;width:68px;height:68px;background:#fbf2d7;border-radius:24px;font-size:39px;margin-bottom:20px}
.hero p{font-size:29px;font-weight:500}.hero h1{font-size:clamp(38px,11vw,58px);letter-spacing:-1.5px;line-height:1.15;margin:10px 0 20px;max-width:100%;overflow-wrap:anywhere;color:#284c59}
.hero .date{font-size:21px;line-height:1.4;background:#fdfbf6;padding:10px 18px;border-radius:16px}
.neighbors{border:0;gap:12px;padding:16px 0}.neighbors>div{flex:1;background:#f2f0e7;border-radius:20px;padding:16px 8px}.neighbors>div:last-child{background:#edf0f6}.neighbors span{font-size:17px}.neighbors strong{font-size:22px;margin-top:7px}
h2{font-size:28px;line-height:1.25;margin:22px 0 18px}h3{font-size:22px}.activity{border-radius:23px;padding:16px 14px;gap:12px;margin:14px 0;min-height:106px}.picture{width:56px;height:62px;font-size:34px;border-radius:19px}.period{font-size:17px;margin-bottom:7px}.activity-name{font-size:24px;line-height:1.25}.complete-control{font-size:14px;min-width:58px}.complete-control input{width:30px;height:30px}
.calendar-head h1{font-size:24px}.today-note{font-size:19px}.day{font-size:21px}.weekday{font-size:14px}.legend,.muted{font-size:16px}.empty{font-size:21px}.empty .muted{font-size:17px}dialog label{font-size:17px}dialog input:not([type=checkbox]),dialog select{font-size:18px}.parent-footer .primary{font-size:18px}
@media(max-width:350px){.brand{font-size:23px}.quiet{font-size:14px}nav button{font-size:19px;padding:8px}.hero p{font-size:27px}.hero .date{font-size:19px;padding:10px 12px}.neighbors strong{font-size:20px}.neighbors span{font-size:16px}.activity{gap:9px;padding:14px 10px}.picture{width:44px;height:54px;font-size:29px}.activity-name{font-size:22px}.complete-control{min-width:52px;font-size:13px}.calendar-head h1{font-size:21px}.weekday{font-size:12px}}
.brand{display:flex;align-items:center;gap:9px;font-size:22px;line-height:1.25;min-width:0}.brand>span:last-child{overflow-wrap:anywhere}#parents{display:flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;padding:8px;font-size:14px}#parents>span{font-size:18px}
@media(max-width:350px){.brand{font-size:19px;gap:6px}header{gap:6px}#parents{font-size:13px;padding:6px;gap:4px}}
.brand-logo{display:block;width:44px;height:44px;object-fit:contain;flex-shrink:0}
@media(max-width:350px){.brand-logo{width:36px;height:36px}}
.night .hero{background:linear-gradient(155deg,#e7e4f5,#f2edf7);border-color:#d9d2e9}
.night .hero::before{content:'🌙';background:#f8f1da}
.night .hero h1{color:#514165}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Soft surfaces distinguish controls, routines, and the activity editor. */
button{background:#edf0f6;border-color:#b9c9ce}nav button{background:#fdfbf6}nav button[aria-pressed=true]{background:#cde4ef}.quiet,#parents{background:#eee8f2;border:1px solid #d2c5df;border-radius:14px}.day{background:#edf3f6}.activity{background:#edf3f6;border-color:#c7dce4}.activity.completed{background:#e4efdf;border-color:#bccfb5}.complete-control{background:#fdfbf6;border-radius:12px;padding:7px 5px}.primary{background:#cde4ef}#activity-form{background:#e8f1ee;border:1px solid #c3d9d0;border-radius:20px;padding:18px;margin-top:20px;scroll-margin-top:12px}#form-title{margin-top:0;font-size:24px}#activity-form .muted{font-size:14px}.planned-section{margin-top:26px}summary{background:#edf0f6;border-radius:12px;padding:12px}#activity-time{max-width:100%;min-width:0}.parent-row{background:#f2f0e7;border:1px solid #dedbca;border-radius:14px;margin:10px 0;padding:14px}#repeat-help:empty{display:none}

.weekday.sunday,.day.sunday>span:first-child{color:#a33340}#custom-picture{font-size:28px}#custom-picture-field{background:#fdfbf6;padding:0 12px 8px;border-radius:12px}

.future-note{padding:14px 16px;background:#f2edfa;border:1px solid #ded5ea;border-radius:16px;font-size:17px;line-height:1.5}.complete-control:has(input:disabled){cursor:default}.complete-control input:disabled{opacity:.65;cursor:default}

.period-lock{font-size:14px;line-height:1.4;margin:9px 0 0;color:#514165}

.grid{touch-action:pan-y}.day-status{display:grid;place-items:center;width:23px;height:23px;border-radius:6px;font-size:19px;line-height:1;border:2px solid #87949a;background:#edf0f1;color:#87949a}.day-status.finished{background:#54775d;border-color:#54775d;color:#fff}.day .day-count{color:var(--ink)}#copy-preview{margin-top:16px}#move-error{color:#8b332e}
