@layer theme,legacy,utilities;
@layer legacy{
:root{}*{box-sizing:border-box}body{margin:0;font-family:Arial,"Helvetica Neue",sans-serif;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}button,select{cursor:pointer}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--action);outline-offset:3px}button:disabled{cursor:default;opacity:.5}.demo{padding:9px 16px;text-align:center;font-size:0.8rem;background:var(--surface);color:var(--ink);line-height:1.6}.shell{display:grid;grid-template-columns:235px 1fr;min-height:calc(100vh - 37px)}aside{background:var(--surface);padding:40px 24px;border-left:1px solid var(--line);display:flex;flex-direction:column}.brand{text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:13px;font-size:2rem;font-weight:800}.brand small{display:block;font-size:0.8rem;letter-spacing:2px;color:var(--muted);margin-top:3px}.brand-icon{display:grid;place-items:center;background:var(--purple);color:var(--on-action);width:48px;height:48px;border-radius:17px;transform:rotate(-9deg)}.family-label{font-size:0.8rem;color:var(--muted);margin:54px 12px 15px}nav{display:grid;gap:9px}nav button{background:none;text-align:right;padding:14px 12px;border-radius:12px;color:var(--ink);display:flex;gap:13px;align-items:center}nav button.active{background:var(--surface);color:var(--purple);font-weight:700}.sidebar-bottom{margin-top:auto;padding-top:65px;font-size:0.82353rem;line-height:1.7}.sidebar-bottom>span{display:block;font-size:1.76471rem;margin-bottom:15px}.sidebar-bottom p{font-size:0.8rem;color:var(--muted)}main{padding:38px 4.5%;max-width:1500px;width:100%;margin:auto}header{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:30px}.eyebrow{color:var(--muted);font-size:0.8rem}h1{font-size:1.64706rem;letter-spacing:-.8px;margin:10px 0}h2{font-size:1.11765rem;margin:0}h3{font-size:0.94118rem;margin:0 0 8px}.profile{display:flex;align-items:center;gap:10px}.profile label{font-size:0.8rem;color:var(--muted)}select{border:1px solid var(--line);background:var(--surface);padding:10px;border-radius:10px;color:var(--ink)}.avatar{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--surface);color:var(--ink);font-weight:bold}.parent{background:var(--surface);color:var(--ink)}.hero{background:var(--surface);border-radius:24px;padding:28px 32px;display:flex;justify-content:space-between;gap:30px;align-items:center;position:relative;overflow:hidden}.hero .eyebrow{color:var(--ink);font-weight:bold}.hero h2{font-size:1.76471rem;margin:12px 0;color:var(--ink)}.hero p{font-size:0.82353rem;color:var(--ink);line-height:1.7;margin:0}.hero-text{max-width:65%}.hero-art{width:140px;height:140px;position:relative;display:grid;place-items:center;font-size:4.11765rem;background:var(--surface);border-radius:50%;box-shadow:0 0 0 17px var(--line)}.hero-art:after{content:'✦';position:absolute;font-size:1.88235rem;color:var(--ink);right:-14px;top:5px}.hero-art:before{content:'✧';position:absolute;font-size:2.35294rem;color:var(--ink);left:-12px;bottom:0}.goal{margin-top:22px;max-width:420px}.progress{height:8px;background:var(--surface);border-radius:12px;overflow:hidden}.progress i{display:block;height:100%;border-radius:12px;background:var(--purple)}.goal-label{display:flex;justify-content:space-between;font-size:0.8rem;color:var(--ink);margin-bottom:9px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:23px 0 30px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:19px;display:flex;gap:15px;align-items:center}.stat-icon{width:42px;height:42px;display:grid;place-items:center;background:var(--surface);border-radius:12px;font-size:1.29412rem}.stat:nth-child(2) .stat-icon{background:var(--surface)}.stat:nth-child(3) .stat-icon{background:var(--surface)}.stat strong{font-size:1.52941rem;display:block}.stat small{font-size:0.8rem;color:var(--muted);display:block;margin-top:5px}.cols{display:grid;grid-template-columns:1fr 285px;gap:24px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px}.section-head p{color:var(--muted);font-size:0.8rem;margin:8px 0 0}.primary{background:var(--purple);color:var(--on-action);border-radius:11px;padding:12px 18px;font-weight:700;font-size:0.8rem}.secondary{background:var(--surface);color:var(--purple);border-radius:9px;padding:10px 14px;font-size:0.8rem}.filters{display:flex;gap:7px;margin:20px 0}.filters button{background:transparent;padding:8px 15px;border-radius:20px;font-size:0.8rem;color:var(--muted)}.filters button.active{background:var(--ink);color:var(--bg)}.task{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:19px;margin-bottom:12px}.task-emoji{font-size:1.47059rem;border-radius:14px;background:var(--surface);width:52px;height:52px;display:grid;place-items:center;flex-shrink:0}.task:nth-child(2n) .task-emoji{background:var(--surface)}.task-info{flex:1}.task-info p{font-size:0.8rem;color:var(--muted);margin:7px 0 0;line-height:1.7}.task-info h3{font-size:0.82353rem}.points{color:var(--ink);font-size:0.8rem;font-weight:bold;background:var(--surface);border-radius:14px;padding:5px 8px;white-space:nowrap}.task-action{display:flex;flex-direction:column;align-items:center;gap:9px}.done-btn{border:2px solid var(--line);background:var(--surface);color:var(--purple);border-radius:50%;width:30px;height:30px;font-size:0.94118rem}.done-btn.approved{background:var(--surface);color:var(--success);border:0}.pending-tag{font-size:0.8rem;color:var(--warning)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:19px;padding:23px;margin-bottom:18px}.panel p{font-size:0.8rem;color:var(--muted);line-height:1.7}.member{display:flex;align-items:center;gap:10px;margin:22px 0 10px}.member .progress{height:5px;background:var(--surface);margin-top:8px}.member>div{flex:1}.member b{font-size:0.8rem}.member small{float:left;color:var(--muted);font-size:0.8rem}.mini-reward{display:flex;gap:12px;margin-top:20px;align-items:center}.mini-reward>span{font-size:1.47059rem;background:var(--surface);border-radius:12px;padding:12px}.mini-reward b{font-size:0.8rem}.mini-reward small{display:block;color:var(--muted);font-size:0.8rem;margin-top:6px}.text-btn{background:none;color:var(--purple);font-size:0.8rem;padding:0;margin-top:20px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.reward{text-align:center;padding:30px}.reward>span{font-size:3.17647rem;display:block;margin-bottom:24px}.reward h3{font-size:1.05882rem}.reward button{margin-top:12px}.empty{padding:45px;text-align:center;border:1px dashed var(--line);border-radius:16px;color:var(--muted);line-height:1.8}.week-day{margin-bottom:24px}.week-day h3{margin:0 0 15px}.timeline{padding:15px 0;border-bottom:1px solid var(--line);font-size:0.82353rem;line-height:1.7}.timeline small{display:block;color:var(--muted);font-size:0.8rem}.settings{max-width:700px}.settings label,dialog label{display:block;font-size:0.8rem;margin:18px 0}.settings input,dialog input,dialog select{display:block;width:100%;padding:12px;border:1px solid var(--line);border-radius:9px;margin-top:8px;background:var(--surface)}.settings .fields,dialog .fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings .fields label{margin:10px 0}.notice{background:var(--surface);color:var(--ink);padding:14px;border-radius:10px;font-size:0.8rem;line-height:1.7}footer{text-align:center;color:var(--ink);font-size:0.8rem;padding:35px 0 5px}dialog{border:0;border-radius:22px;width:min(460px,92vw);padding:28px;color:var(--ink)}dialog::backdrop{background:var(--surface);backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head button{background:none;color:var(--muted)}dialog .primary{width:100%;margin-top:10px}.muted{font-size:0.8rem;color:var(--muted);line-height:1.7}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(100px);background:var(--ink);color:var(--bg);padding:14px 23px;border-radius:13px;font-size:0.8rem;transition:.25s;z-index:5;max-width:90vw;text-align:center}#toast.show{transform:translateX(-50%) translateY(0)}@media(min-width:1500px){main{padding-top:50px;padding-bottom:50px}}@media(max-width:1100px){.cols{grid-template-columns:1fr}.side-panels{display:grid;grid-template-columns:1fr 1fr;gap:16px}.shell{grid-template-columns:195px 1fr}aside{padding:35px 18px}.profile label{display:none}.cards{grid-template-columns:1fr 1fr}}@media(max-width:740px){.shell{display:block}aside{padding:17px 20px;border-bottom:1px solid var(--line)}.brand{font-size:1.41176rem}.brand-icon{height:35px;width:35px;font-size:1.47059rem;border-radius:12px}.brand small{font-size:0.8rem}.family-label,.sidebar-bottom{display:none}nav{display:flex;overflow:auto;margin-top:20px;gap:6px}nav button{white-space:nowrap;padding:10px;font-size:0.8rem;gap:6px}main{padding:24px 18px}h1{font-size:1.35294rem}.avatar.parent{display:none}header{align-items:flex-start;margin-bottom:22px}.profile select{font-size:0.8rem;max-width:95px}.hero{padding:24px 20px;gap:10px}.hero h2{font-size:1.35294rem}.hero p{font-size:0.8rem}.hero-art{height:83px;width:83px;font-size:2.64706rem;flex-shrink:0}.hero-text{max-width:70%}.stats{gap:8px;margin-bottom:25px}.stat{padding:14px 10px;display:block}.stat-icon{width:30px;height:30px;font-size:1.05882rem;margin-bottom:8px}.stat strong{font-size:1.35294rem}.stat small{font-size:0.8rem;line-height:1.6}.side-panels{display:block}.task{padding:15px 12px;gap:11px}.task-emoji{width:42px;height:42px;font-size:1.29412rem}.task-info h3{font-size:0.8rem}.cards{grid-template-columns:1fr 1fr;gap:10px}.reward{padding:25px 10px}.reward h3{font-size:0.88235rem}.section-head h2{font-size:1.05882rem}.primary{padding:11px 14px}.demo{font-size:0.8rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
[hidden]{display:none!important}.auth-wrap{max-width:480px;margin:8vh auto;padding:0 20px}.auth-wrap .brand{justify-content:center;margin-bottom:35px}.auth-wrap .panel{padding:30px}.auth-wrap h1{font-size:1.58824rem;line-height:1.4}.auth-wrap input{display:block;width:100%;margin:9px 0 18px;padding:13px;border:1px solid var(--line);border-radius:10px;font:inherit}.auth-wrap label{font-size:0.8rem}.auth-wrap .primary{width:100%;margin:10px 0}.auth-wrap .google{width:100%;background:var(--surface);color:var(--ink);border:1px solid var(--line);margin:12px 0;padding:13px;border-radius:11px}.auth-wrap p{line-height:1.8}.auth-wrap a{color:var(--purple)}#profile-info{font-size:0.8rem}.invite-link{width:100%;padding:12px;direction:ltr;font-size:0.8rem;border:1px solid var(--line);border-radius:8px;margin:12px 0}.status-dot{color:var(--ink)}.redemption{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);font-size:0.8rem}.settings form{margin-top:20px}.logout-note{font-size:0.8rem;color:var(--muted)}
/* Ocean / coral / sunshine — Family Quest visual system */
:root{}
body{background:radial-gradient(ellipse at 10% 0%,var(--surface) 0,transparent 42%),radial-gradient(ellipse at 92% 80%,var(--surface) 0,transparent 45%),var(--bg)}
.demo{background:var(--surface);color:var(--ink);border-bottom:1px solid var(--line)}
aside{background:var(--surface);border-left:0;color:var(--ink);box-shadow:-8px 0 35px var(--line)}
.brand{color:var(--ink)}.brand small{color:var(--ink)}.brand-icon{background:var(--surface);color:var(--ink);box-shadow:0 7px 25px var(--line)}
.family-label{color:var(--ink);letter-spacing:.3px}nav button{color:var(--ink);transition:background .2s,color .2s}nav button:hover{background:var(--surface);color:var(--ink)}nav button.active{background:var(--action);color:var(--on-action);box-shadow:0 6px 25px var(--line)}.sidebar-bottom{color:var(--ink)}.sidebar-bottom p{color:var(--ink)}
h1{font-weight:800;color:var(--ink)}.eyebrow{color:var(--ink)}.hero{background:linear-gradient(115deg,var(--surface) 5%,var(--surface) 62%,var(--surface));color:var(--ink);min-height:245px;box-shadow:0 15px 35px var(--line);border:1px solid var(--line)}.hero:after{content:'';position:absolute;width:260px;height:260px;border:1px solid var(--line);border-radius:50%;left:-50px;bottom:-155px;pointer-events:none}.hero .eyebrow{color:var(--ink);letter-spacing:.5px}.hero h2{color:var(--ink);font-size:1.94118rem;line-height:1.25}.hero p{color:var(--ink)}.goal{max-width:440px}.goal-label{color:var(--ink)}.goal-label b{color:var(--ink)}.hero .progress{height:11px;background:var(--surface);border:1px solid var(--line)}.hero .progress i{background:linear-gradient(90deg,var(--surface),var(--surface));box-shadow:0 0 18px var(--line)}.hero-art{background:linear-gradient(145deg,var(--surface),var(--surface));box-shadow:0 0 0 15px var(--line),0 0 0 30px var(--line),0 14px 30px var(--line);transform:rotate(-7deg);border-radius:35%}.hero-art:before{color:var(--ink)}.hero-art:after{color:var(--ink)}
.stat{border:1px solid var(--line);background:var(--surface);box-shadow:0 6px 22px var(--line);position:relative;overflow:hidden}.stat:before{content:'';position:absolute;inset:0 0 0 auto;width:4px;background:var(--surface)}.stat:nth-child(2):before{background:var(--surface)}.stat:nth-child(3):before{background:var(--surface)}.stat-icon{background:var(--surface);color:var(--ink)}.stat:nth-child(2) .stat-icon{background:var(--surface);color:var(--ink)}.stat:nth-child(3) .stat-icon{background:var(--surface);color:var(--ink)}.stat strong{color:var(--ink)}.stat small{color:var(--ink)}
.primary{background:var(--action);box-shadow:0 4px 12px var(--line);transition:transform .15s,background .15s}.primary:hover:not(:disabled){background:var(--action);transform:translateY(-1px)}.primary:disabled{background:var(--surface);color:var(--ink);opacity:1;box-shadow:none}.secondary{background:var(--surface);color:var(--ink)}.filters button{color:var(--ink)}.filters button.active{background:var(--action);box-shadow:0 4px 12px var(--line)}.task{border:1px solid var(--line);box-shadow:0 4px 18px var(--line)}.task-emoji{background:var(--surface)}.task:nth-child(2n) .task-emoji{background:var(--surface)}.task:nth-child(3n) .task-emoji{background:var(--surface)}.points{background:var(--surface);color:var(--ink)}.done-btn{border-color:var(--line);color:var(--ink)}.done-btn:hover{background:var(--surface)}.done-btn.approved{background:var(--surface);color:var(--success)}.pending-tag{color:var(--warning)}.panel{border:1px solid var(--line);box-shadow:0 6px 24px var(--line)}.avatar{background:var(--surface);color:var(--ink)}.parent{background:var(--surface);color:var(--ink)}.progress{background:var(--surface)}.progress i{background:linear-gradient(90deg,var(--action),var(--action))}.member .progress{background:var(--surface)}.text-btn{color:var(--ink);font-weight:bold}.notice{background:var(--surface);color:var(--ink)}.muted,footer{color:var(--ink)}
.cards{align-items:stretch;gap:20px}.reward{padding:24px 22px;text-align:right;border-top:4px solid var(--line);position:relative;overflow:hidden;display:flex;flex-direction:column;margin-bottom:0}.reward:nth-child(3n+2){border-top-color:var(--line)}.reward:nth-child(3n){border-top-color:var(--line)}.reward .reward-art{display:grid;place-items:center;width:80px;height:80px;border-radius:24px;background:var(--surface);font-size:2.52941rem;margin:0 0 22px;transform:rotate(-5deg)}.reward:nth-child(3n+2) .reward-art{background:var(--surface);transform:rotate(5deg)}.reward:nth-child(3n) .reward-art{background:var(--surface)}.reward h3{font-size:1.11765rem;color:var(--ink)}.reward p.reward-cost{color:var(--ink);font-size:0.8rem;margin:4px 0 20px}.reward .primary{margin-top:auto;width:100%;padding:13px}.reward-meters{flex:1;padding-bottom:22px}.reward-meter{text-align:right;margin-top:16px}.meter-label,.meter-caption{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:0.8rem;line-height:1.5}.meter-label{color:var(--ink);margin-bottom:9px}.meter-label b{color:var(--ink)}.meter-label span{font-variant-numeric:tabular-nums;white-space:nowrap}.reward-track{height:12px;background:var(--surface);border-radius:20px;overflow:hidden;box-shadow:inset 0 1px 3px var(--line)}.reward-track i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,var(--action),var(--action));transition:width .45s ease}.reward:nth-child(3n+2) .reward-track i{background:linear-gradient(90deg,var(--action),var(--surface))}.reward:nth-child(3n) .reward-track i{background:linear-gradient(90deg,var(--action),var(--surface))}.meter-caption{margin-top:8px;color:var(--ink);font-size:0.8rem}.meter-caption b{font-size:0.8rem;color:var(--ink)}.is-ready .reward-track i{background:linear-gradient(90deg,var(--action),var(--action))!important}.is-ready .meter-caption,.is-ready .meter-caption b{color:var(--ink);font-weight:700}.is-ready{background:var(--surface);border-radius:12px;padding:11px;margin-inline:-11px}.rewards-intro{display:flex;align-items:center;gap:16px;background:linear-gradient(110deg,var(--surface),var(--surface));color:var(--ink);padding:20px 24px;border-radius:18px;margin:8px 0 24px}.rewards-intro>span{font-size:1.88235rem;color:var(--ink)}.rewards-intro p{margin:0;font-size:1rem;font-weight:bold;line-height:1.6}.rewards-intro small{display:block;font-size:0.8rem;color:var(--ink);font-weight:normal;margin-top:4px}.journey-panel{background:linear-gradient(145deg,var(--surface),var(--surface));border-color:var(--line)}.journey-heading{display:flex;align-items:center;gap:12px}.journey-heading>span{display:grid;place-items:center;background:var(--surface);border-radius:13px;width:44px;height:44px;font-size:1.41176rem}.journey-heading .eyebrow{font-size:0.8rem;color:var(--ink)}.journey-heading h3{margin:5px 0 0}.journey-item{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.journey-prize{display:flex;align-items:center;gap:9px;font-size:0.8rem}.journey-prize>span{font-size:1.35294rem}.journey-panel .reward-track{height:10px}.journey-panel .reward-meter{margin-top:13px}.auth-wrap .brand{color:var(--ink)}.auth-wrap .brand small{color:var(--ink)}.auth-wrap .panel{box-shadow:0 18px 60px var(--line)}.auth-wrap .google{border-color:var(--line)}.dialog-head h2{color:var(--ink)}dialog{box-shadow:0 25px 90px var(--line)}#toast{background:var(--surface);box-shadow:0 10px 30px var(--line)}
@media(max-width:740px){.hero{min-height:235px}.hero h2{font-size:1.47059rem}.hero-art{width:74px;height:90px;border-radius:28px;font-size:2.47059rem}.hero-text{max-width:72%}.cards{grid-template-columns:1fr}.reward{padding:22px}.reward .reward-art{width:65px;height:65px;font-size:2.11765rem;margin-bottom:16px}.reward h3{font-size:1.17647rem}.reward-meters{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:18px}.reward-meter{margin-top:8px}.reward-track{height:13px}.meter-label{font-size:0.8rem}.meter-caption{font-size:0.8rem}.rewards-intro{padding:18px}.rewards-intro p{font-size:0.94118rem}.rewards-intro small{font-size:0.8rem}.hero .goal-label{font-size:0.8rem}aside{border-bottom:0}.stat{border-radius:15px}.stat:before{width:3px}}
@media(prefers-reduced-motion:reduce){.reward-track i,.primary,nav button{transition:none}.primary:hover:not(:disabled){transform:none}}

}