
:root{--ink:#3c261f;--muted:#846d65;--paper:#fff9f3;--peach:#f8e9df;--terra:#c46637;--pink:#f7dae1;--green:#eaf0d3;--lavender:#eee0f2;--sky:#dceafa;--yellow:#fff1bd;--accent:#cd7958;--accentlight:#f9e0d7;--shadow:0 9px 28px rgba(108,65,40,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#eae8e3;font-family:"Nunito",system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.4}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #ecac62;outline-offset:3px}button:disabled{opacity:.45;cursor:not-allowed}
#app{margin:0 auto;width:min(100%,490px);min-height:100dvh;background:var(--paper);box-shadow:0 9px 60px rgba(47,29,18,.14)}.app-shell{min-height:100dvh;display:flex;flex-direction:column;background:radial-gradient(circle at 98% 2%,var(--accentlight) 0,transparent 19%),linear-gradient(180deg,#fffaf5 0%,#fff7f0 100%)}.page-content{padding:22px 22px 32px;flex:1}.bottom-safe{height:24px}.loading{padding:5rem 2rem;text-align:center;font-size:24px;font-weight:900}
h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.1;font-weight:900;letter-spacing:-1px}h2{font-size:23px;line-height:1.2;font-weight:900}h3{font-size:17px;font-weight:900}p{color:var(--muted)}.small{font-size:12px}.medium{font-size:14px}.muted{color:var(--muted)}.strong{font-weight:900}.center{text-align:center}.space8{height:8px}.space16{height:16px}.space24{height:24px}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.grow{flex:1;min-width:0}.wrap{flex-wrap:wrap}.align-end{align-items:flex-end}.brand{display:flex;align-items:center;gap:8px;font-weight:1000;font-size:17px;line-height:.98;letter-spacing:-.6px}.brand-mark{font-size:31px;line-height:1;color:var(--terra)}.topbar{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-bottom:20px}.selector{border:0;border-radius:999px;background:#f8e9df;padding:6px 10px;display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink);font-weight:900}.selector-avatar{width:30px;height:30px;overflow:hidden;border-radius:50%;background:#ffe5d2}.selector-avatar svg{width:42px;height:42px;transform:translate(-6px,-4px)}.profile-button{border:0;width:38px;height:38px;background:#fbe9df;border-radius:50%;font-size:22px}.demo-pill{border-radius:999px;background:#fbe7d6;padding:5px 10px;font-size:11px;font-weight:900;color:#a15432}
.card{background:rgba(255,255,255,.77);border:1px solid rgba(255,255,255,.95);border-radius:27px;box-shadow:var(--shadow);padding:18px;margin-bottom:14px}.soft{background:#fff5ec}.tinted{background:var(--accentlight)}.green{background:#eef1df}.lavender{background:#f3e6f4}.pink{background:#fde9ea}.sky{background:#e7eff9}.yellow{background:#fff2ce}.peach{background:#fce9dc}
.btn{border:0;border-radius:999px;background:var(--accent);color:white;padding:14px 20px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:49px;box-shadow:0 6px 14px rgba(145,68,31,.12);text-align:center}.btn.secondary{background:#fff7f0;color:var(--ink);border:1px solid #f2ded1;box-shadow:none}.btn.ghost{background:transparent;color:var(--ink);box-shadow:none;border:1px dashed #d8bbab}.btn.full{width:100%}.btn.small-btn{min-height:35px;padding:7px 13px;font-size:13px}.back{width:42px;height:42px;display:grid;place-items:center;background:#fce9df;border:0;border-radius:50%;color:var(--ink);font-size:24px;line-height:1}.header-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:17px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:22px 0 12px}.star-chip{display:inline-flex;align-items:center;gap:5px;padding:8px 12px;border-radius:999px;background:#fff2db;color:#7f4b23;font-weight:900;font-size:15px}.star{color:#e7a927;text-shadow:0 1px #c6852e}.subline{font-size:13px;color:#8d7569}
.avatar{position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate}.avatar svg{width:100%;height:auto;filter:drop-shadow(0 4px 4px rgba(82,54,33,.06))}.avatar-sm{width:92px;height:86px}.avatar-md{width:140px;height:125px}.avatar-lg{width:175px;height:155px}.avatar-hero{width:180px;max-width:48%}.hero{display:flex;align-items:center;justify-content:space-between;gap:0;padding:7px 0 18px}.hero-text{flex:1}.hero-text h1{font-size:27px}.hero-caption{color:var(--muted);font-size:13px}.progress-ring{width:155px;height:155px;flex:0 0 155px;border-radius:50%;background:conic-gradient(#bcd297 0deg 105deg,#c7d8fa 105deg 190deg,#e5c8ed 190deg 260deg,#ffe293 260deg 320deg,#f4e7e2 320deg 360deg);padding:15px;box-shadow:0 6px 18px rgba(62,33,22,.04)}.ring-inner{border-radius:50%;height:100%;width:100%;background:#fff9f5;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.ring-inner strong{font-size:31px;font-weight:1000;line-height:1}.ring-inner span{font-size:11px;font-weight:800}.today-hero{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:8px}.hero-child{flex:1}.hero-child .avatar{margin:-8px auto -1px}.daily-stars{font-size:13px;font-weight:900;background:#fff0df;border-radius:15px;padding:7px 10px;text-align:center}
.nav{position:sticky;bottom:0;z-index:20;background:#fffaf5ee;backdrop-filter:blur(18px);border:1px solid #fff;display:flex;justify-content:space-around;gap:3px;padding:8px 5px max(9px,env(safe-area-inset-bottom));border-radius:25px 25px 0 0;box-shadow:0 -8px 24px rgba(80,45,20,.07)}.nav-item{flex:1;min-width:0;border:0;border-radius:18px;background:transparent;color:#715749;padding:8px 1px 7px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;font-weight:800}.nav-item.active{background:var(--accent);color:#fff}.nav-item svg{width:23px;height:23px;stroke:currentColor}.nav-item span{white-space:nowrap}
.mood-panel{padding:14px;border-radius:23px;background:#fbe5e4}.mood-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:12px}.mood{background:rgba(255,255,255,.72);border:2px solid transparent;border-radius:16px;padding:8px 2px 7px;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink);font-weight:800;font-size:10px;min-height:75px}.mood .face{font-size:27px;line-height:1.1}.mood.selected{border-color:var(--accent);background:#fff6e7;box-shadow:0 2px 10px #f4c9b6}.mood label{text-align:center;max-width:88px}
.task-list{display:flex;flex-direction:column;gap:7px}.task{width:100%;border:1px solid #fff;display:flex;align-items:center;text-align:left;gap:11px;padding:11px 10px;border-radius:19px;color:var(--ink);min-height:65px}.task:nth-child(4n+1){background:#f0f2df}.task:nth-child(4n+2){background:#fff3e6}.task:nth-child(4n+3){background:#f5e8ef}.task:nth-child(4n+4){background:#e8f0f7}.task-icon{height:39px;width:43px;display:grid;place-items:center;font-size:25px;flex:0 0 43px;border-radius:13px;background:#ffffff99}.task-name{font-size:16px;font-weight:900}.task-sub{font-size:10px;color:#79685d}.task-status{border-radius:50%;display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border:2px solid #c6ab9d;font-weight:900;color:#957266}.task-status.yes{background:#93a954;border-color:#93a954;color:white}.task-status.no{background:#eed2c5;border-color:#d8ac9c}.task-reward{font-size:12px;white-space:nowrap;font-weight:900;color:#99642e}.status-legend{display:flex;gap:10px;color:#8b7169;font-size:11px;margin:4px 3px 12px}
.welcome{text-align:center;padding:26px 24px 42px}.welcome-top{display:flex;justify-content:center;margin-bottom:13px}.welcome-illustration{display:flex;align-items:end;justify-content:center;gap:0;margin:8px 0 18px;background:radial-gradient(ellipse at center,#f9e7dc,transparent 70%);min-height:245px}.welcome-illustration .avatar{width:49%;margin:0 -15px}.welcome-illustration .avatar:first-child{transform:rotate(-4deg)}.welcome-illustration .avatar:last-child{transform:rotate(4deg)}.welcome h1{font-size:34px;margin:13px 0}.welcome p{font-size:16px;margin-bottom:22px}.feature-icons{display:flex;justify-content:space-around;margin:22px 0 26px}.feature-icons span{border-radius:50%;display:grid;place-items:center;width:49px;height:49px;font-size:24px}.welcome .btn{margin:5px 0}.notice{margin:14px 0;color:#987d70;font-size:11px;line-height:1.5}
.field{display:block;margin:14px 0}.field-label{display:block;font-weight:900;font-size:14px;margin:0 0 6px}.text-input,.text-area{width:100%;background:#fff;border:1px solid #e9d8cf;border-radius:17px;padding:13px 15px;color:var(--ink);font-weight:700;font-size:15px}.text-area{min-height:73px;resize:vertical}.chips{display:flex;flex-wrap:wrap;gap:8px}.choice{border:2px solid transparent;border-radius:17px;background:#f7eae3;padding:12px 14px;font-weight:900;color:var(--ink);flex:1}.choice.selected{border-color:var(--accent);background:#fff0df}.palette-options{display:flex;gap:13px;flex-wrap:wrap}.palette-dot{width:37px;height:37px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px #dcc9bd;display:grid;place-items:center;color:#4a3030;font-size:18px}.palette-dot.selected{box-shadow:0 0 0 3px #aa704f}.range-wrap{background:#fff0e8;padding:11px 14px;border-radius:16px}.range-top{display:flex;align-items:center;justify-content:space-between}.age-value{background:#ffe3ac;padding:5px 11px;border-radius:12px;font-weight:900}.age-range{width:100%;accent-color:var(--accent);height:34px}.range-labels{display:flex;justify-content:space-between;font-size:11px;color:#8d7468}.tiny-illustration{display:flex;align-items:center;justify-content:center;min-height:180px;background:radial-gradient(ellipse at center,var(--accentlight),transparent 67%)}.tiny-illustration .avatar{width:190px}.block-head{margin-bottom:13px}
.question{border-radius:22px;padding:15px;background:#fff1e5;margin-bottom:12px}.question:nth-child(even){background:#ecf0dd}.question:nth-child(odd){background:#f5e9f2}.question p{font-weight:900;color:var(--ink);margin:0 0 10px}.food-list{display:grid;gap:8px}.food-item{border:1px solid #fff;border-radius:16px;padding:12px;background:#fbefdf;display:flex;align-items:center;gap:9px;cursor:pointer;font-weight:800}.food-item:nth-child(2){background:#eff3df}.food-item:nth-child(3){background:#e8eff9}.food-item:nth-child(4){background:#f3e5f4}.food-item input{accent-color:#94a856;width:19px;height:19px;margin-left:auto}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.detail-actions .btn{padding:12px 8px}.small-success{background:#edf2e1;color:#5e753e;border:1px solid #cddcaf}
.reward-hero{display:flex;align-items:center;justify-content:space-between;gap:10px;background:linear-gradient(130deg,#ffe9d9,#fff9ed);border-radius:28px;padding:18px;margin-bottom:18px}.jar{font-size:81px;text-align:center;line-height:1}.reward-hero strong{font-size:33px;font-weight:900}.reward-row{display:flex;align-items:center;gap:12px;border:1px solid #fff;border-radius:21px;padding:13px;margin-bottom:9px}.reward-row:nth-of-type(even){background:#f4e6f1}.reward-row:nth-of-type(odd){background:#eff0dd}.reward-icon{font-size:26px;width:43px;height:43px;display:grid;place-items:center;background:#fff8;flex:0 0 43px;border-radius:13px}.reward-title{font-size:16px;font-weight:900}.mini-chip{background:#fff9ed;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:900}
.kid-card{border-radius:25px;padding:13px;margin-bottom:12px;display:flex;align-items:center;gap:5px;background:var(--accentlight);border:2px solid #fff;box-shadow:var(--shadow)}.kid-card .avatar{width:135px;flex:0 0 135px}.kid-card .kid-info{flex:1;min-width:0}.kid-card h3{font-size:19px}.kid-card .btn{padding:8px 14px;min-height:38px;font-size:12px;margin-top:8px}.kid-card small{color:#7c6259}.add-kid{border:2px dashed #d9bbae;border-radius:23px;padding:20px;width:100%;background:#fff9f3;color:var(--ink);font-size:16px;font-weight:900}
.diary-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.daybox{border:0;border-radius:15px;background:#eef1df;text-align:center;min-width:0;padding:9px 1px;font-size:11px;color:var(--ink)}.daybox.today-date{outline:2px solid var(--accent)}.daybox strong{display:block;font-size:13px}.daybox .day-star{font-size:19px}.chart{display:flex;align-items:end;gap:7px;min-height:105px;margin-top:12px;padding-bottom:18px;border-bottom:1px solid #efdcd2}.chart-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:110px}.chart-bar{width:18px;border-radius:13px 13px 4px 4px;background:linear-gradient(#e8b5df,#a9c991);min-height:5px}.chart-col span{font-size:10px;margin-top:5px;color:#7c675d}.streak{padding:11px 12px;border-radius:16px;background:#f1f2e2;display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:13px;font-weight:800}
.settings-row{width:100%;display:flex;gap:13px;align-items:center;text-align:left;border:1px solid white;border-radius:18px;background:#f2f1e0;padding:15px 13px;margin:8px 0;font-weight:900;font-size:14px;color:var(--ink)}.settings-row:nth-child(even){background:#fce9df}.settings-row .icon{font-size:24px}.settings-row .arrow{margin-left:auto;color:#967e71}.parent-hero{display:flex;align-items:center;background:#fff0e3;border-radius:25px;padding:10px}.parent-hero .avatar{width:125px}.parent-hero h2{font-size:25px}
.pill-note{background:#f1e7f4;border-radius:22px;padding:14px;color:#755f78;font-size:12px}.empty-state{text-align:center;background:#fff0e3;border-radius:20px;padding:24px 15px}.empty-state .big{font-size:39px}.day-summary{background:linear-gradient(130deg,#fff1c7,#ffe6d0);border-radius:22px;padding:21px}.day-summary strong{font-size:34px;line-height:1.1}
#toast{position:fixed;z-index:100;left:50%;bottom:90px;transform:translate(-50%,20px);background:#3a261f;color:white;border-radius:18px;padding:12px 16px;max-width:min(410px,calc(100% - 40px));width:max-content;box-shadow:0 9px 28px #321b1b33;opacity:0;pointer-events:none;transition:opacity .22s,transform .22s;font-size:13px;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.eyebrow{text-transform:uppercase;letter-spacing:1.4px;font-weight:900;color:#b67858;font-size:10px}
@media(min-width:650px){#app{min-height:95dvh;margin:2.5dvh auto;border-radius:28px;overflow:hidden}.nav{border-radius:25px}.app-shell{min-height:95dvh}}
@media(max-width:375px){.page-content{padding:16px 13px 22px}.brand{font-size:15px}.selector{font-size:12px;padding:5px 8px}.progress-ring{width:135px;height:135px;flex-basis:135px}.today-hero .avatar-hero{max-width:46%}.task-name{font-size:14px}.task{gap:6px}.task-icon{width:36px;flex-basis:36px;font-size:21px}.task-reward{font-size:11px}.mood-grid{gap:4px}.nav-item{font-size:9px}.kid-card .avatar{width:108px;flex-basis:108px}}

/* Approved illustrated characters: use original raster artwork, not programmatic SVG people. */
.avatar .drawn-character{width:100%;height:100%;object-fit:contain;display:block;border-radius:20px;filter:none}
.selector-avatar .drawn-character{width:52px;height:65px;max-width:none;object-fit:cover;object-position:50% 0%;transform:translate(-11px,-7px);border-radius:0}
.welcome-illustration .avatar .drawn-character{width:100%;height:100%;object-fit:contain}
.today-hero .avatar-hero .drawn-character{max-height:188px;object-fit:contain}
.kid-card .avatar .drawn-character{height:auto;max-height:145px}
.tiny-illustration .avatar .drawn-character{max-height:200px;object-fit:contain}
.parent-hero .avatar .drawn-character{max-height:118px}

/* Hero illustration arrangements taken from the approved screens */
.avatar-hero{height:174px;min-height:174px}
.avatar-hero .drawn-character{height:172px;max-height:172px;border-radius:16px}
.kid-card .avatar{height:144px;min-height:144px}
.kid-card .avatar .drawn-character{width:100%;height:135px;max-height:135px;object-fit:contain;border-radius:16px}
.welcome-illustration .avatar{height:180px}
.welcome-illustration .avatar .drawn-character{height:180px;max-height:180px;object-fit:contain}
.profile-button{overflow:hidden;display:grid;place-items:center}
.profile-button img{width:57px;height:45px;max-width:none;object-fit:cover;object-position:center 4%;transform:translate(-2px,5px)}
.parent-hero .avatar{width:144px;min-width:144px;height:116px;overflow:hidden}
.parent-hero .avatar .drawn-character{width:144px;height:112px;object-fit:cover;border-radius:18px}
