:root{--ink:#17383b;--muted:#65797b;--bg:#ffffff;--card:#f3f5f5;--line:#dce3e3;--green:#087c86;--mint:#dff5e4;--gold:#ffb21f;--coral:#f5aa1c;--blue:#25bfd0;--danger:#a94d42;--shadow:0 10px 30px rgba(20,73,78,.075);font-family:Inter,ui-rounded,"SF Pro Rounded","SF Pro Display",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}.capture-ipad-2x{zoom:2}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg)}button,input,textarea,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(213,118,85,.26);outline-offset:2px}h1,h2,h3,p{margin-top:0}.app-shell{min-height:100vh}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 max(22px,env(safe-area-inset-left));border-bottom:1px solid rgba(232,226,216,.8);background:rgba(247,244,237,.9);backdrop-filter:blur(20px);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:11px;font-size:20px;font-weight:850;letter-spacing:-.5px}.brand-mark{width:34px;height:34px;border-radius:12px;background:var(--green);display:grid;place-items:center;color:var(--gold)}.top-actions{display:flex;gap:8px;align-items:center}.avatar{border:0;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--person,var(--green));color:#fff;font-weight:800;box-shadow:0 0 0 3px #fff;cursor:pointer}.avatar.small{width:34px;height:34px;font-size:13px;box-shadow:none}.avatar.large{width:78px;height:78px;font-size:27px;box-shadow:0 0 0 6px rgba(255,255,255,.6)}.role-pill{font-size:12px;font-weight:800;background:#fff;border:1px solid var(--line);padding:7px 10px;border-radius:999px}.layout{display:grid;grid-template-columns:240px minmax(0,1fr);max-width:1440px;margin:auto}.sidebar{position:sticky;top:76px;height:calc(100vh - 76px);padding:26px 18px;border-right:1px solid var(--line)}.nav-label{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);font-weight:800;padding:0 13px 10px}.nav{display:grid;gap:5px}.nav button,.bottom-nav button{border:0;background:transparent;cursor:pointer}.nav button{height:48px;border-radius:15px;display:flex;align-items:center;gap:13px;padding:0 14px;color:var(--muted);font-weight:730;text-align:left}.nav button.active{background:#fff;color:var(--ink);box-shadow:0 5px 20px rgba(31,49,44,.06)}.nav svg{width:20px}.nav-spacer{height:22px}.sidebar-note{position:absolute;bottom:28px;left:18px;right:18px;background:var(--mint);padding:16px;border-radius:18px;font-size:13px;line-height:1.5}.content{width:100%;max-width:1180px;padding:36px clamp(24px,4vw,58px) 110px;margin:0 auto}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:28px}.eyebrow{text-transform:uppercase;color:var(--coral);letter-spacing:1.3px;font-size:11px;font-weight:850;margin-bottom:8px}.page-head h1{font-size:clamp(29px,4vw,42px);letter-spacing:-1.4px;margin-bottom:7px;line-height:1.08}.subtle{color:var(--muted);line-height:1.5}.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;margin-bottom:26px}.points-hero{background:var(--green);color:#fff;border-radius:28px;padding:27px 28px;min-height:195px;position:relative;overflow:hidden}.points-hero:after{content:"";position:absolute;width:180px;height:180px;border:38px solid rgba(242,201,109,.14);border-radius:50%;right:-40px;top:-70px}.points-label{color:#c5d3ce;font-size:13px;font-weight:700}.points-value{font-size:64px;line-height:1;font-weight:850;letter-spacing:-3px;margin:13px 0 18px}.points-value span{font-size:15px;letter-spacing:0;color:#c5d3ce;margin-left:4px}.mini-stats{display:flex;gap:26px;position:relative;z-index:1}.mini-stat b{display:block;font-size:19px}.mini-stat span{color:#c5d3ce;font-size:12px}.goal-card,.card{background:var(--card);border:1px solid rgba(232,226,216,.8);box-shadow:var(--shadow);border-radius:24px}.goal-card{padding:24px;display:flex;flex-direction:column;justify-content:space-between}.goal-icon{width:46px;height:46px;background:#f9ecd2;color:#8a6429;border-radius:15px;display:grid;place-items:center}.goal-icon svg{width:22px}.goal-card h3{font-size:18px;margin:13px 0 4px}.progress{height:8px;background:#ece8df;border-radius:999px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--person,var(--coral));border-radius:inherit}.progress-copy{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:9px}.section{margin-top:30px}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:14px;gap:14px}.section-head h2{font-size:21px;letter-spacing:-.4px;margin:0}.text-button{border:0;background:transparent;color:var(--coral);font-weight:800;cursor:pointer;padding:7px}.chore-list{display:grid;gap:10px}.chore-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:15px 16px;display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:14px;cursor:pointer;transition:.18s ease}.chore-card:hover{transform:translateY(-1px);box-shadow:var(--shadow);border-color:#d9d1c5}.chore-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:var(--mint);color:var(--green)}.chore-icon.optional{background:#f8eadf;color:#9b5d47}.chore-icon svg{width:23px}.chore-title{font-weight:800;margin-bottom:4px}.meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.dot{width:3px;height:3px;border-radius:50%;background:#aaa}.point-chip{padding:8px 11px;background:#f7f2e8;border-radius:12px;font-size:13px;font-weight:850;white-space:nowrap}.status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800}.status.pending{color:#896426;background:#fbf0d6}.status.approved{color:#226349;background:#ddf0e6}.status.returned,.status.rejected{color:#93483d;background:#f7e2de}.empty{padding:30px;border:1px dashed #d8d0c4;border-radius:20px;text-align:center;color:var(--muted)}.empty svg{width:34px;margin-bottom:8px}.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.summary-card{padding:21px}.summary-card .big{font-size:31px;font-weight:850;letter-spacing:-1px;margin:12px 0 3px}.summary-card .label{font-size:13px;color:var(--muted)}.summary-top{display:flex;justify-content:space-between}.summary-top svg{width:21px;color:var(--coral)}.activity-list{display:grid}.activity-row{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.activity-row:last-child{border:0}.activity-icon{width:38px;height:38px;border-radius:13px;background:#eef2ef;display:grid;place-items:center}.activity-icon svg{width:18px}.activity-title{font-size:14px;font-weight:780;margin-bottom:3px}.activity-detail{font-size:12px;color:var(--muted)}.amount{font-weight:850;font-size:14px}.amount.positive{color:#29704f}.amount.negative{color:var(--coral)}.reward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.reward-card{padding:19px;display:flex;flex-direction:column;min-height:198px}.reward-art{height:65px;border-radius:16px;background:#e5eee9;display:flex;align-items:center;justify-content:space-between;padding:15px;color:var(--green)}.reward-art.money{background:#e6e7f1;color:#515f91}.reward-art.custom{background:#f6e8d3;color:#8f6233}.reward-art svg{width:31px}.reward-cost{font-weight:850;font-size:12px;background:rgba(255,255,255,.7);padding:7px 9px;border-radius:10px}.reward-card h3{font-size:15px;margin:15px 0 4px}.reward-card p{font-size:12px;color:var(--muted);flex:1}.primary,.secondary,.danger-button{min-height:48px;border-radius:15px;padding:0 18px;font-weight:820;cursor:pointer}.primary{border:0;background:var(--green);color:#fff}.primary.coral{background:var(--coral)}.primary:disabled{opacity:.42;cursor:not-allowed}.secondary{background:#fff;border:1px solid var(--line)}.danger-button{background:#fff4f1;color:var(--danger);border:1px solid #efd4ce}.small-button{min-height:38px;border-radius:12px;padding:0 13px;font-size:12px}.wide{width:100%}.approval-card{display:grid;grid-template-columns:1fr auto;gap:18px;padding:20px;margin-bottom:12px}.person-line{display:flex;align-items:center;gap:11px;margin-bottom:13px}.approval-card h3{font-size:18px;margin:0}.approval-evidence{display:flex;gap:12px;align-items:center;background:#f8f5ef;border-radius:15px;padding:11px 13px;font-size:13px;color:var(--muted);margin-top:12px}.approval-evidence img{width:58px;height:58px;object-fit:cover;border-radius:12px}.approval-actions{display:flex;gap:8px;align-items:center}.approval-actions .primary{min-width:108px}.tabs{display:flex;gap:7px;overflow:auto;padding-bottom:5px;margin-bottom:20px}.tab{border:1px solid var(--line);background:#fff;padding:9px 14px;border-radius:999px;font-size:13px;font-weight:750;white-space:nowrap;cursor:pointer}.tab.active{background:var(--green);color:#fff;border-color:var(--green)}.family-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.family-row:last-child{border:0}.family-row .balance{font-size:20px;font-weight:850}.family-row .balance span{font-size:11px;color:var(--muted)}.weekly{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:end;height:120px;padding-top:18px}.bar-wrap{display:flex;height:100%;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px;font-size:10px;color:var(--muted)}.bar{width:100%;max-width:28px;border-radius:8px 8px 3px 3px;background:#cfded6;min-height:5px}.bar.today{background:var(--coral)}.achievement{display:flex;gap:12px;align-items:center;padding:14px;border-radius:18px;background:#faf5e9}.achievement+.achievement{margin-top:9px}.badge{width:43px;height:43px;border-radius:50%;background:var(--gold);display:grid;place-items:center;color:#77551d}.badge svg{width:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:800;color:#596560}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);background:#fff;padding:13px 14px;border-radius:14px;color:var(--ink)}.field textarea{min-height:90px;resize:vertical}.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.toggle{width:48px;height:28px;border:0;border-radius:999px;background:#cbc9c3;padding:3px;cursor:pointer}.toggle:after{content:"";display:block;width:22px;height:22px;border-radius:50%;background:#fff;transition:.2s}.toggle.on{background:var(--green)}.toggle.on:after{transform:translateX(20px)}.modal-layer{position:fixed;inset:0;background:rgba(18,36,32,.42);backdrop-filter:blur(5px);z-index:100;display:flex;align-items:flex-end;justify-content:center;padding:20px}.modal{background:var(--bg);width:min(620px,100%);max-height:min(880px,92vh);overflow:auto;border-radius:28px;padding:26px;box-shadow:0 30px 80px rgba(18,36,32,.25);animation:rise .22s ease}.modal-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:22px}.modal-head h2{font-size:25px;letter-spacing:-.7px;margin-bottom:5px}.close{border:0;background:#ebe7df;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;cursor:pointer}.detail-hero{display:grid;grid-template-columns:60px 1fr auto;gap:15px;align-items:center;background:#fff;padding:16px;border-radius:20px;margin-bottom:18px}.detail-hero .chore-icon{width:58px;height:58px}.detail-hero .points{font-size:21px;font-weight:850}.instruction{font-size:15px;line-height:1.6;color:#56635f}.checklist{display:grid;gap:8px;margin:16px 0}.check{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);padding:12px;border-radius:13px}.check input{width:20px;height:20px;accent-color:var(--green)}.upload{border:1px dashed #bfc9c3;border-radius:17px;padding:19px;text-align:center;background:#f9fbf9;cursor:pointer}.upload input{display:none}.upload-preview{width:100%;max-height:210px;object-fit:cover;border-radius:15px;margin-top:11px}.modal-actions{display:flex;gap:9px;margin-top:22px}.modal-actions>*{flex:1}.pin-dots{display:flex;justify-content:center;gap:13px;margin:20px}.pin-dot{width:15px;height:15px;border-radius:50%;background:#ded9d0}.pin-dot.filled{background:var(--green)}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;max-width:330px;margin:auto}.pin-key{height:58px;border:0;border-radius:17px;background:#fff;font-size:21px;font-weight:800;cursor:pointer}.pin-hint{text-align:center;font-size:12px;color:var(--muted);margin-top:17px}.toast-region{position:fixed;top:88px;right:18px;z-index:200;display:grid;gap:8px}.toast{background:var(--green);color:#fff;padding:14px 17px;border-radius:15px;box-shadow:0 12px 30px rgba(24,59,53,.22);font-size:14px;font-weight:700;animation:toast .25s ease;max-width:330px}.toast.error{background:var(--danger)}.celebrate{position:fixed;inset:0;pointer-events:none;z-index:190;display:grid;place-items:center}.celebrate-bubble{background:var(--green);color:#fff;border-radius:26px;padding:27px 35px;text-align:center;box-shadow:0 22px 80px rgba(24,59,53,.28);animation:pop 1.8s ease both}.celebrate-bubble b{display:block;font-size:35px;color:var(--gold);margin-bottom:4px}.bottom-nav{display:none}.only-mobile{display:none}@keyframes rise{from{transform:translateY(18px);opacity:0}}@keyframes toast{from{transform:translateY(-8px);opacity:0}}@keyframes pop{0%{transform:scale(.7);opacity:0}15%,75%{transform:scale(1);opacity:1}100%{transform:scale(.92);opacity:0}}
.topbar{background:rgba(255,255,255,.94);border-bottom:0}
.brand-mark{width:40px;height:40px;border-radius:13px;object-fit:cover;background:#fff;color:transparent;box-shadow:0 2px 8px rgba(20,73,78,.08)}.avatar{color:#fff}.avatar[style*="#f5aa1c"]{color:#3d2a00}
.points-hero{background:#087c86;color:#fff}.points-hero:after{border-color:rgba(255,178,31,.22)}.points-label,.points-value span,.mini-stat span{color:#d7f4f5}
.eyebrow,.text-button{color:#b96800}.goal-icon{background:#fff2d2;color:#9b5b00}.progress{background:#e5edee}.point-chip{background:#fff3d5;color:#744600}
.chore-icon{background:#ddf6f8;color:#087c86}.chore-icon.optional{background:#fff2d2;color:#a45f00}.status.pending{color:#805000;background:#fff1cc}.status.approved{color:#17613d;background:#dff5e4}
.reward-art{background:#dff5e4;color:#17613d}.reward-art.money{background:#dcf6f8;color:#08727b}.reward-art.custom{background:#fff1cf;color:#915700}.achievement{background:#fff7e5}.badge{background:#ffb21f;color:#654000}.bar{background:#cfeeed}.bar.today{background:#f5aa1c}
.primary,.tab.active{background:#087c86;color:#fff;border-color:#087c86}.primary.coral{background:#f5aa1c;color:#3d2a00;border-color:#f5aa1c}.toast,.celebrate-bubble{background:#087c86;color:#fff}.celebrate-bubble b{color:#ffcf66}.approval-evidence{background:#f7fafa}.activity-icon{background:#ddf6f8}.modal{background:#ffffff}.close{background:#e5eff0}.upload{background:#f7fbfb}.bottom-nav{border-color:rgba(219,231,232,.95);background:rgba(255,255,255,.96)}
.goal-card,.card,.chore-card{border:0}.card-style-shadow .goal-card,.card-style-shadow .card,.card-style-shadow .chore-card{box-shadow:var(--shadow)}.card-style-flat .goal-card,.card-style-flat .card,.card-style-flat .chore-card{box-shadow:none}.style-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.style-choice{border:1px solid var(--line);background:#fff;border-radius:17px;padding:14px;display:grid;gap:5px;text-align:left;cursor:pointer}.style-choice.selected{border-color:#087c86;box-shadow:0 0 0 2px rgba(8,124,134,.12)}.style-choice small{color:var(--muted)}.style-preview{display:block;width:100%;height:48px;border-radius:13px;background:#f3f5f5;margin-bottom:5px}.shadow-preview{box-shadow:0 8px 18px rgba(20,73,78,.13)}.flat-preview{box-shadow:none}
.icon-action{width:54px;height:54px;min-height:54px;padding:0;display:grid;place-items:center;border-radius:16px}.icon-action svg{width:24px;height:24px;stroke-width:2.4}.approval-card{grid-template-columns:1fr}.approval-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:9px}.approve-icon-button{grid-column:1/-1;grid-row:1;width:100%;height:120px;min-height:120px;padding:0;border-radius:16px;display:grid;place-items:center}.approve-icon-button svg{width:64px;height:64px;stroke-width:2.2}.back-button{white-space:nowrap}.card-style-flat .nav button.active{box-shadow:none}
@media(max-width:900px){.layout{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding-inline:12px}.cards-3{grid-template-columns:1fr 1fr}.cards-3>:last-child{grid-column:1/-1}.reward-grid{grid-template-columns:1fr 1fr}.hero-grid{grid-template-columns:1fr}.goal-card{min-height:175px}.approval-card{grid-template-columns:1fr}.approval-actions{justify-content:flex-end}}
@media(max-width:680px){.topbar{height:67px}.role-pill{display:none}.layout{display:block}.sidebar{display:none}.content{padding:26px 17px calc(100px + env(safe-area-inset-bottom))}.page-head{margin-bottom:21px}.page-head h1{font-size:30px}.page-head>.primary{min-height:42px;padding:0 13px;font-size:12px}.hero-grid{gap:12px}.points-hero{min-height:181px;padding:23px}.points-value{font-size:56px}.cards-3,.reward-grid{grid-template-columns:1fr}.cards-3>:last-child{grid-column:auto}.reward-card{min-height:175px}.approval-actions{display:grid;grid-template-columns:1fr 1fr}.approval-actions .primary{grid-column:1/-1;grid-row:1}.bottom-nav{display:flex;position:fixed;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));height:70px;border:1px solid rgba(232,226,216,.9);border-radius:22px;background:rgba(255,253,250,.94);backdrop-filter:blur(20px);z-index:50;padding:6px;box-shadow:0 12px 40px rgba(31,49,44,.13);justify-content:space-around}.bottom-nav button{display:flex;flex:1;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:16px;color:var(--muted);font-size:9px;font-weight:750}.bottom-nav button.active{color:var(--green);background:#eef3ef}.bottom-nav svg{width:19px;height:19px}.parent-bottom button:nth-child(n+6){display:none}.chore-card{grid-template-columns:45px 1fr auto;padding:13px 12px;gap:10px}.chore-icon{width:45px;height:45px}.point-chip{padding:7px 8px}.modal-layer{padding:0;align-items:flex-end}.modal{border-radius:27px 27px 0 0;padding:23px 18px max(24px,env(safe-area-inset-bottom));max-height:94vh}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.toast-region{top:76px;right:12px;left:12px}.toast{max-width:none}.top-actions .secondary{display:none}.only-mobile{display:block}}
@media(min-width:681px) and (orientation:landscape){.content{padding-top:28px}.hero-grid{grid-template-columns:1.15fr .85fr}}
@media(max-width:680px){.parent-bottom button{font-size:8px}.parent-bottom svg{width:18px;height:18px}.parent-bottom button:nth-child(n+6){display:flex}}
@media(max-width:680px){.approval-actions .approve-icon-button{grid-column:1/-1;justify-self:stretch}.style-choices{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition:none!important}}
.theme-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.theme-choice{border:1px solid var(--line);background:#fff;border-radius:17px;padding:14px;display:grid;gap:5px;text-align:left;cursor:pointer}.theme-choice.selected{border-color:#087c86;box-shadow:0 0 0 2px rgba(8,124,134,.12)}.theme-choice small{color:var(--muted)}.theme-preview{display:block;width:100%;height:54px;border-radius:13px;margin-bottom:5px;position:relative;overflow:hidden}.theme-preview:before{content:"";position:absolute;left:10px;right:10px;top:10px;height:9px;border-radius:6px}.theme-preview:after{content:"";position:absolute;left:10px;right:34%;bottom:9px;height:17px;border-radius:7px}.light-preview{background:#fff;border:1px solid #e4eaea}.light-preview:before{background:#087c86}.light-preview:after{background:#f3f5f5}.dark-preview{background:#0d1516}.dark-preview:before{background:#32c0c9}.dark-preview:after{background:#182426}.system-preview{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:transparent;border:0;padding:0}.system-preview:before,.system-preview:after{content:none}.system-preview i{display:block;position:relative;border-radius:11px;overflow:hidden}.system-light-mini{background:#fff;border:1px solid #e4eaea}.system-dark-mini{background:#0d1516}.system-preview i:before,.system-preview i:after{content:"";position:absolute;left:7px;border-radius:5px}.system-preview i:before{right:7px;top:10px;height:8px}.system-preview i:after{right:30%;bottom:9px;height:14px}.system-light-mini:before{background:#087c86}.system-light-mini:after{background:#f3f5f5}.system-dark-mini:before{background:#32c0c9}.system-dark-mini:after{background:#182426}
:root[data-theme="dark"]{--ink:#edf5f5;--muted:#9aadaf;--bg:#0d1516;--card:#182426;--line:#2b393b;--green:#32c0c9;--mint:#203d32;--gold:#ffc24b;--coral:#f5aa1c;--danger:#f08b7d;--shadow:none;color-scheme:dark}
:root[data-theme="dark"] .topbar{background:rgba(13,21,22,.94)}:root[data-theme="dark"] .sidebar{border-color:#263638}:root[data-theme="dark"] .brand-mark{background:#fff;box-shadow:none}:root[data-theme="dark"] .role-pill,:root[data-theme="dark"] .secondary{background:#1b292b;border-color:#334447;color:var(--ink)}:root[data-theme="dark"] .nav button.active{background:#1b292b;color:var(--ink);box-shadow:none}:root[data-theme="dark"] .sidebar-note{background:#173033}:root[data-theme="dark"] .points-hero{background:#076c74}:root[data-theme="dark"] .goal-icon{background:#3c321c;color:#ffd16f}:root[data-theme="dark"] .progress{background:#2a393b}:root[data-theme="dark"] .point-chip{background:#3a311e;color:#ffd16f}:root[data-theme="dark"] .chore-icon{background:#17383b;color:#53d0d7}:root[data-theme="dark"] .chore-icon.optional{background:#3a311e;color:#ffc75a}:root[data-theme="dark"] .chore-card:hover{border-color:#3c4d4f}:root[data-theme="dark"] .status.pending{background:#3a311e;color:#ffd16f}:root[data-theme="dark"] .status.approved{background:#203d32;color:#83d5a3}:root[data-theme="dark"] .status.returned,:root[data-theme="dark"] .status.rejected{background:#3a2423;color:#ffaaa0}:root[data-theme="dark"] .reward-art{background:#203d32;color:#83d5a3}:root[data-theme="dark"] .reward-art.money{background:#17383b;color:#53d0d7}:root[data-theme="dark"] .reward-art.custom{background:#3a311e;color:#ffd16f}:root[data-theme="dark"] .reward-cost{background:rgba(13,21,22,.6)}:root[data-theme="dark"] .achievement{background:#302b20}:root[data-theme="dark"] .badge{color:#3d2a00}:root[data-theme="dark"] .activity-icon{background:#17383b}:root[data-theme="dark"] .amount.positive{color:#83d5a3}:root[data-theme="dark"] .approval-evidence{background:#111c1d}:root[data-theme="dark"] .danger-button{background:#3a2423;border-color:#5a3430;color:#ffaaa0}:root[data-theme="dark"] .tab{background:#101a1b}:root[data-theme="dark"] .field input,:root[data-theme="dark"] .field textarea,:root[data-theme="dark"] .field select{background:#101a1b;border-color:#344447;color:var(--ink)}:root[data-theme="dark"] .field label{color:#b9c7c8}:root[data-theme="dark"] .modal{background:#0d1516}:root[data-theme="dark"] .close{background:#243234}:root[data-theme="dark"] .detail-hero,:root[data-theme="dark"] .check,:root[data-theme="dark"] .pin-key{background:#182426;border-color:#2b393b}:root[data-theme="dark"] .instruction{color:#b4c2c3}:root[data-theme="dark"] .upload{background:#111c1d;border-color:#3d5052}:root[data-theme="dark"] .bottom-nav{background:rgba(18,29,30,.96);border-color:#2b393b;box-shadow:none}:root[data-theme="dark"] .bottom-nav button.active{background:#213638;color:#53d0d7}:root[data-theme="dark"] .bar{background:#27494c}:root[data-theme="dark"] .bar.today{background:#f5aa1c}:root[data-theme="dark"] .toggle{background:#39484a}:root[data-theme="dark"] .empty{border-color:#3a494b}:root[data-theme="dark"] .style-choice,:root[data-theme="dark"] .theme-choice{background:#101a1b;border-color:#344447;color:var(--ink)}:root[data-theme="dark"] .style-choice.selected,:root[data-theme="dark"] .theme-choice.selected{border-color:#32c0c9;box-shadow:0 0 0 2px rgba(50,192,201,.15)}:root[data-theme="dark"] .primary,:root[data-theme="dark"] .tab.active{background:#32c0c9;color:#071617;border-color:#32c0c9}:root[data-theme="dark"] .primary.coral{background:#f5aa1c;color:#3d2a00;border-color:#f5aa1c}:root[data-theme="dark"] .toast,:root[data-theme="dark"] .celebrate-bubble{background:#32c0c9;color:#071617}:root[data-theme="dark"] .modal-layer{background:rgba(2,8,9,.7)}
@media(max-width:680px){.theme-choices{gap:8px}.theme-choice{padding:10px}.theme-preview{height:48px}.theme-preview:before{left:7px;right:7px;top:8px;height:7px}.theme-preview:after{left:7px;bottom:7px;height:14px}.system-preview i:before{top:8px;height:7px}.system-preview i:after{bottom:7px;height:12px}}
.native-ios .topbar{height:calc(76px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}.native-ios .sidebar{top:calc(76px + env(safe-area-inset-top));height:calc(100vh - 76px - env(safe-area-inset-top))}
@media(max-width:680px){.native-ios .topbar{height:calc(67px + env(safe-area-inset-top))}}
.onboarding-shell{min-height:100vh;padding:max(28px,env(safe-area-inset-top)) 18px max(28px,env(safe-area-inset-bottom));display:grid;place-items:center;background:linear-gradient(145deg,#f7fbfb 0%,#fff 48%,#f8fbf3 100%)}.onboarding-card{width:min(680px,100%);background:#fff;border-radius:30px;padding:clamp(25px,5vw,48px);box-shadow:0 25px 80px rgba(20,73,78,.12)}.onboarding-brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:850;margin-bottom:34px}.onboarding-brand img{width:46px;height:46px;border-radius:15px}.onboarding-card h1{font-size:clamp(34px,7vw,52px);letter-spacing:-1.7px;margin-bottom:10px}.onboarding-points{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:25px 0}.onboarding-points span{display:flex;align-items:center;gap:8px;background:#f3f5f5;padding:12px;border-radius:14px;font-size:12px;font-weight:750}.onboarding-points svg{width:18px;color:#087c86;flex:0 0 auto}.onboarding-divider{display:flex;align-items:center;gap:12px;margin:19px 0;color:var(--muted);font-size:12px}.onboarding-divider:before,.onboarding-divider:after{content:"";height:1px;background:var(--line);flex:1}.onboarding-legal{text-align:center;color:var(--muted);font-size:11px;line-height:1.5;margin:17px 0 0}.onboarding-legal button{border:0;background:none;color:#087c86;text-decoration:underline;padding:0;cursor:pointer}.row-actions,.settings-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.settings-links{justify-content:flex-start;padding-top:18px}.danger-zone{display:flex;justify-content:space-between;align-items:center;gap:20px}.danger-zone p{margin:5px 0 0}.color-choices{display:flex;gap:12px;flex-wrap:wrap}.color-choice input{position:absolute;opacity:0;pointer-events:none}.color-choice span{display:block;width:42px;height:42px;border-radius:50%;background:var(--swatch);cursor:pointer;border:4px solid var(--bg);box-shadow:0 0 0 1px var(--line)}.color-choice input:checked+span{box-shadow:0 0 0 3px var(--ink)}.policy-copy{font-size:14px;line-height:1.65;color:var(--muted)}.policy-copy h3{color:var(--ink);font-size:16px;margin:22px 0 4px}.policy-copy a{color:var(--green)}
:root[data-theme="dark"] .onboarding-shell{background:linear-gradient(145deg,#0a1112,#0d1516 48%,#101918)}:root[data-theme="dark"] .onboarding-card{background:#182426;box-shadow:none}:root[data-theme="dark"] .onboarding-points span{background:#101a1b}
@media(max-width:680px){.onboarding-points{grid-template-columns:1fr}.onboarding-card{border-radius:24px}.danger-zone{align-items:stretch;flex-direction:column}.row-actions{justify-content:flex-start}.family-row{align-items:start}}
.approval-evidence>svg{width:20px;height:20px;flex:0 0 auto}
/* Optional browser access */
.family-code{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface-2,#f2f5f5);border-radius:18px;padding:18px 20px;margin:10px 0 14px}.family-code span{color:var(--muted);font-weight:700}.family-code strong{font-size:clamp(1.45rem,5vw,2.25rem);letter-spacing:.16em;color:var(--green);font-variant-numeric:tabular-nums}.fine-print{font-size:.82rem;color:var(--muted);margin:12px 0 0}.sync-error{color:#a64b42;background:#fff0ed;border-radius:12px;padding:10px 12px}.settings-links{flex-wrap:wrap}
[data-theme="dark"] .family-code{background:#182526}[data-theme="dark"] .sync-error{background:#3a2220;color:#ffb9af}

/* Keep modal close controls circular when the heading needs more room. */
.modal-head .close{width:38px;height:38px;min-width:38px;min-height:38px;flex:0 0 38px;padding:0;line-height:1}

/* Quiet, system-style treatment for destructive actions throughout the app. */
.danger-button{background:#ececec;color:#2c2c2e;border-color:transparent}
:root[data-theme="dark"] .danger-button{background:#2c2c2e;color:#f2f2f7;border-color:transparent}
.chore-actions{display:flex;align-items:center;gap:7px}
.danger-zone{flex-direction:column;align-items:stretch}
.settings-links .danger-button{flex:1 0 100%}
.confirm-modal{width:min(500px,100%);padding:0;background:#ececec;color:#2c2c2e;overflow:hidden}
.confirm-modal p{margin:0;padding:26px 28px 18px;font-size:17px;line-height:1.45;color:#2c2c2e}
.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 18px 18px}
.confirm-actions button{min-height:48px;border:0;border-radius:14px;background:transparent;color:#55555a;font-weight:850;text-align:center;cursor:pointer}
.confirm-actions button:hover{background:rgba(0,0,0,.045)}
:root[data-theme="dark"] .confirm-modal{background:#2c2c2e;color:#f2f2f7}
:root[data-theme="dark"] .confirm-modal p{color:#f2f2f7}
:root[data-theme="dark"] .confirm-actions button{color:#d1d1d6}
:root[data-theme="dark"] .confirm-actions button:hover{background:rgba(255,255,255,.06)}

/* Profile security and quieter task controls. */
.field input,.field select{min-height:50px}
.approval-actions .return-button{border:0}
.upload{background:#f7f9f9;border-color:#e3e9e9}
.upload>svg{display:block;width:min(200px,55%);height:auto;margin:22px auto 18px;color:#d7dfdf;stroke-width:1.55}
:root[data-theme="dark"] .approval-actions .return-button{border:0}
:root[data-theme="dark"] .upload{background:#111c1d;border-color:#273638}
:root[data-theme="dark"] .upload>svg{color:#344447}

/* Progressive setup, truthful progress and richer profiles. */
.avatar{overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.setup-progress{display:grid;gap:10px;margin-bottom:28px}.setup-progress>div:first-child{display:flex;justify-content:space-between;gap:16px;align-items:center;font-size:12px}.setup-progress span{color:var(--muted)}.setup-progress .progress{height:6px}.setup-step{display:none}.setup-step.active{display:block;animation:rise .2s ease}.setup-step h1{margin-bottom:9px}.setup-actions{display:grid;grid-template-columns:.55fr 1.45fr;gap:10px;margin-top:24px}.starter-section{margin-top:25px}.starter-section h2{font-size:17px;margin-bottom:11px}.starter-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.starter-choice{position:relative;display:grid;grid-template-columns:45px 1fr;align-items:center;gap:11px;padding:12px;border-radius:17px;background:#f3f5f5;border:2px solid transparent;cursor:pointer}.starter-choice input{position:absolute;opacity:0;pointer-events:none}.starter-choice:has(input:checked){background:#f0fbfb;border-color:#087c86}.starter-choice .chore-icon{width:45px;height:45px;border-radius:14px}.starter-choice b,.starter-choice small{display:block}.starter-choice b{font-size:13px;margin-bottom:3px}.starter-choice small{font-size:11px;color:var(--muted)}.setup-defaults{margin-top:22px}.goal-card.reward-ready{background:#effafa}.goal-icon.ready{background:#d8f3e5;color:#24704d}.reward-ready .eyebrow{margin:14px 0 0;color:#24704d}.reward-ready .primary{margin-top:18px}.weekly .bar-wrap b{height:14px;font-size:9px;color:var(--ink)}.bar.empty{min-height:0;background:transparent}.weekly-zero{min-height:148px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;color:var(--muted)}.weekly-zero svg{width:30px;color:#9bb0b1}.weekly-zero b{color:var(--ink)}.weekly-zero span{font-size:12px}.weekly-zero.compact{min-height:120px}.profile-hero{display:flex;align-items:center;gap:20px}.profile-hero h2{margin:0 0 4px}.editable-avatar{flex:0 0 auto}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.profile-stats .big{font-size:28px}.profile-goal{display:flex;align-items:center;gap:10px;margin-top:16px;font-size:13px}.profile-goal svg{width:24px;color:var(--green);flex:0 0 auto}.avatar-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.avatar-upload-button{display:inline-flex!important;align-items:center;justify-content:center;color:var(--ink)!important;cursor:pointer}.avatar-upload-button input{display:none}.parent-profile-form{display:grid;grid-template-columns:auto 1fr;gap:14px 18px;align-items:center}.parent-profile-form .avatar-controls{grid-column:2}
:root[data-theme="dark"] .starter-choice{background:#101a1b}:root[data-theme="dark"] .starter-choice:has(input:checked){background:#173033;border-color:#32c0c9}:root[data-theme="dark"] .goal-card.reward-ready{background:#173033}:root[data-theme="dark"] .goal-icon.ready{background:#203d32;color:#83d5a3}
@media(max-width:680px){.setup-progress>div:first-child{align-items:flex-start;flex-direction:column;gap:3px}.starter-grid,.profile-stats{grid-template-columns:1fr}.setup-actions{grid-template-columns:1fr 1.5fr}.parent-profile-form{grid-template-columns:auto 1fr}.parent-profile-form .field,.parent-profile-form .avatar-controls{grid-column:1/-1}.profile-hero{align-items:center}.reward-ready .primary{width:100%}}

/* Consistent controls, individual weekly charts and direct profile-picture editing. */
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid rgba(8,124,134,.28);outline-offset:2px}
.field{min-width:0}.field input,.field select{height:58px;min-height:58px;padding:0 16px;line-height:1.2}.field select{min-width:0;white-space:nowrap;text-overflow:ellipsis}.field textarea{min-height:100px;padding:15px 16px}.field input:focus,.field textarea:focus,.field select:focus{outline:0;border-color:#79bbc0;box-shadow:0 0 0 3px rgba(8,124,134,.12)}.field-help{color:var(--muted);font-size:11px;line-height:1.4}.setup-reassurance{margin:12px 0 0;text-align:right;color:var(--muted);font-size:11px;line-height:1.45}.setup-defaults{grid-template-columns:minmax(180px,.8fr) minmax(300px,1.2fr)}.currency-field{min-width:0}
.child-week-list{display:grid;gap:12px}.child-week-card{background:var(--bg);border-radius:18px;padding:14px 15px}.child-week-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.child-week-head div:nth-child(2){display:grid;gap:2px}.child-week-head span{color:var(--muted);font-size:11px}.child-week-head strong{font-size:13px}.child-weekly{height:104px;padding-top:12px}.child-weekly .bar-wrap{justify-content:flex-end}.bar-slot{height:62px;width:100%;display:flex;align-items:flex-end;justify-content:center}.child-weekly .bar{display:block;width:100%;max-width:24px;min-height:0;background:var(--person);border-radius:7px 7px 2px 2px}.child-weekly .bar-wrap>b{height:12px}.child-weekly .bar-wrap>span{height:12px}.child-weekly .bar-wrap:has(.bar)>span{color:var(--ink);font-weight:800}
.avatar-picker-button{position:relative;border:0;padding:0;cursor:pointer;overflow:visible}.avatar-picker-button>img,.avatar-picker-button>svg{border-radius:50%}.avatar-picker-button>svg{width:38px;height:38px}.avatar-edit-badge{position:absolute;right:-3px;bottom:-3px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--green);box-shadow:0 2px 8px rgba(20,73,78,.2)}.avatar-edit-badge svg{width:14px;height:14px}.avatar-edit-hint{display:block;color:var(--muted);font-size:11px;margin-top:6px}.avatar-source-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.avatar-source{display:flex;align-items:center;gap:12px;min-height:76px;padding:14px;border-radius:17px;background:var(--card);cursor:pointer}.avatar-source>svg{width:25px;color:var(--green);flex:0 0 auto}.avatar-source span{display:grid;gap:3px}.avatar-source small{color:var(--muted)}.avatar-source input{display:none}.avatar-preset-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.avatar-preset{border:0;background:var(--card);border-radius:16px;padding:10px 6px;display:grid;place-items:center;gap:7px;cursor:pointer}.avatar-preset>span{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--person);color:#fff;font-weight:850}.avatar-preset svg{width:23px}.avatar-preset small{font-size:10px;color:var(--muted)}.parent-profile-form .avatar-controls{justify-content:space-between}.parent-profile-form .avatar-controls .primary{margin-left:auto}
:root[data-theme="dark"] .child-week-card,:root[data-theme="dark"] .avatar-source,:root[data-theme="dark"] .avatar-preset{background:#101a1b}:root[data-theme="dark"] .avatar-edit-badge{background:#243234;color:#53d0d7}:root[data-theme="dark"] .field input:focus,:root[data-theme="dark"] .field textarea:focus,:root[data-theme="dark"] .field select:focus{border-color:#32c0c9;box-shadow:0 0 0 3px rgba(50,192,201,.14)}
@media(max-width:680px){.setup-defaults{grid-template-columns:1fr}.setup-reassurance{text-align:center}.avatar-source-grid{grid-template-columns:1fr}.avatar-preset-grid{grid-template-columns:repeat(4,1fr)}.child-week-card{padding:13px}.profile-hero{gap:17px}}

/* Parent-controlled weekly target. */
.section-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.goal-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:18px}.goal-preset{min-height:76px;border:0;border-radius:17px;background:var(--card);color:var(--ink);display:grid;place-items:center;align-content:center;gap:3px;cursor:pointer}.goal-preset b{font-size:16px}.goal-preset span{font-size:11px;color:var(--muted)}.goal-preset.selected{background:#e8f8f8;box-shadow:inset 0 0 0 2px var(--green)}
.family-goal-card{min-height:230px;padding:28px 21px;display:flex;flex-direction:column}.family-goal-counter{margin-bottom:12px;text-align:right;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.family-goal-card .subtle{margin:20px 0 0;line-height:1.55}.family-goal-actions{display:flex;justify-content:flex-end;margin-top:auto;padding-top:18px}
.dashboard-side-stack{display:grid;gap:18px;align-content:start}.dashboard-goal-card{background:linear-gradient(145deg,#f1f8f8,#f7f9f9);overflow:hidden}.dashboard-goal-heading .eyebrow{margin-bottom:5px}.dashboard-goal-heading h2{font-size:21px;margin:0}.dashboard-goal-visual{display:flex;align-items:center;gap:20px;margin-top:20px}.dashboard-goal-wide .dashboard-goal-visual{justify-content:center;padding:4px 0 8px}.goal-ring{--progress:0;width:132px;height:132px;flex:0 0 132px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--green) calc(var(--progress)*1%),#dfe9e9 0);position:relative}.goal-ring:after{content:"";position:absolute;inset:12px;border-radius:50%;background:var(--card)}.dashboard-goal-card .goal-ring:after{background:#f5f9f9}.goal-ring>div{position:relative;z-index:1;display:grid;text-align:center}.goal-ring strong{font-size:28px;letter-spacing:-1px}.goal-ring span{font-size:10px;color:var(--muted);font-weight:750;text-transform:uppercase;letter-spacing:.6px}.dashboard-goal-copy{display:grid;gap:4px;min-width:0}.dashboard-goal-copy>strong{font-size:17px}.dashboard-goal-copy>span{font-size:12px;color:var(--green);font-weight:800}.dashboard-goal-copy p{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
:root[data-theme="dark"] .goal-preset{background:#101a1b}:root[data-theme="dark"] .goal-preset.selected{background:#173033;box-shadow:inset 0 0 0 2px #32c0c9}
:root[data-theme="dark"] .dashboard-goal-card{background:linear-gradient(145deg,#152526,#182426)}:root[data-theme="dark"] .dashboard-goal-card .goal-ring:after{background:#182426}:root[data-theme="dark"] .goal-ring{background:conic-gradient(var(--green) calc(var(--progress)*1%),#2a393b 0)}
@media(max-width:680px){.section-head-actions{gap:6px}.section-head-actions .small-button{min-height:34px;padding:0 10px}.goal-presets{grid-template-columns:1fr}.goal-preset{min-height:62px;grid-template-columns:auto auto;gap:8px}.family-goal-card{min-height:245px;padding:24px 21px}.dashboard-goal-visual{gap:16px}.goal-ring{width:118px;height:118px;flex-basis:118px}.goal-ring strong{font-size:25px}}

/* Match the HomeCrew brand mark to the active appearance. */
.brand-mark-wrap{position:relative;display:block;width:40px;height:40px;flex:0 0 40px}
.brand-mark-wrap .brand-mark{position:absolute;inset:0}
.brand-mark-dark{display:none}
:root[data-theme="dark"] .brand-mark-light{display:none}
:root[data-theme="dark"] .brand-mark-dark{display:block;background:#121b1c;box-shadow:none}
.onboarding-brand .brand-mark-wrap{width:46px;height:46px;flex-basis:46px}
.onboarding-brand .brand-mark{width:46px;height:46px;border-radius:15px}
