:root{--navy-950:#04142d;--navy-900:#061b3a;--navy-800:#0b2a53;--navy-700:#163b68;--teal-700:#00706c;--teal-600:#009f9a;--teal-500:#08b8b2;--teal-400:#5ed6d0;--teal-200:#a9ebe7;--teal-100:#daf7f5;--teal-50:#effcfb;--gold-500:#ffbe18;--gold-400:#f5c02a;--gold-100:#fff2c5;--coral-500:#f7626b;--coral-100:#ffebed;--green-600:#168b5d;--green-500:#27ae78;--green-100:#e2f7ed;--ink:#10213b;--muted:#66758b;--subtle:#6c7785;--placeholder:#818893;--line:#e5eaf0;--canvas:#f5f7fa;--surface:#fff;--surface-soft:#fafbfc;--fill:#e9edf2;--fill-soft:#eef1f5;--line-strong:#d7dee7;--muted-strong:#5c6a7e;--gold-ink:#8a6200;--info-bg:#eef6ff;--info-ink:#12507f;--warn-bg:#fff4e6;--warn-ink:#8a5310;--danger-bg:#ffeff0;--danger-ink:#b03744;--success-bg:#e2f7ed;--success-ink:#10684c;--shadow-sm:0 1px 2px #05183408, 0 8px 22px #0518340b;--shadow-md:0 18px 50px #0518341f;--r-xs:8px;--r-sm:12px;--r-md:16px;--r-lg:22px;--r-xl:28px;--r-pill:999px;--text-2xs:.6875rem;--text-xs:.75rem;--text-sm:.8125rem;--text-md:.875rem;--text-lg:1rem;--text-xl:1.1875rem;--text-2xl:1.4375rem;--text-3xl:1.875rem;--fw-normal:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-black:800;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--font:"Manrope", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{background:var(--canvas);min-width:320px;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}body{min-height:100dvh;margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent;color:inherit}a{text-decoration:none}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--navy-900);letter-spacing:-.035em}h1{font-size:clamp(1.72rem,7vw,2.35rem);line-height:1.12}h1,h2{margin-bottom:8px}h2{font-size:var(--text-xl);line-height:1.25}h3{font-size:var(--text-lg);margin-bottom:4px;line-height:1.35}p{color:var(--muted);line-height:1.55}:focus-visible{outline:2px solid var(--teal-700);outline-offset:2px}.balance-card :focus-visible,.toast :focus-visible,.ui-button.is-primary:focus-visible{outline-color:var(--teal-400)}.brand-logo{flex:none;align-items:center;display:inline-flex}.brand-logo img{-o-object-fit:contain;object-fit:contain;width:auto}.brand-logo img.small{height:32px}.brand-logo img.medium{height:42px}.brand-logo img.large{height:58px}.ui-button{border-radius:var(--r-md);min-height:52px;padding:0 var(--space-5);justify-content:center;align-items:center;gap:var(--space-2);font-weight:var(--fw-bold);font-size:var(--text-lg);cursor:pointer;border:0;transition:transform .18s,background .18s,box-shadow .18s;display:inline-flex}@media (hover:hover) and (pointer:fine){.ui-button:hover{transform:translateY(-1px)}}.ui-button:active{transform:translateY(0)scale(.985)}.ui-button:disabled{cursor:not-allowed;opacity:.58;transform:none}.ui-button.is-block{width:100%}.ui-button.is-primary{background:var(--navy-900);color:#fff;box-shadow:0 8px 18px #061b3a24}@media (hover:hover) and (pointer:fine){.ui-button.is-primary:hover{background:var(--navy-800)}}.ui-button.is-secondary{background:var(--teal-500);color:var(--navy-950)}.ui-button.is-soft{background:var(--teal-100);color:var(--teal-700)}.ui-button.is-ghost{color:var(--navy-800);border:1px solid var(--line);background:0 0}.ui-button.is-danger{background:var(--coral-100);color:var(--danger-ink)}.spin{animation:.8s linear infinite spin}.ui-card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);border:1px solid #e5eaf0e6}.ui-card.is-flat{box-shadow:none}.ui-card.is-interactive{transition:transform .2s,box-shadow .2s}@media (hover:hover) and (pointer:fine){.ui-card.is-interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}}.field{gap:var(--space-2);display:grid}.field-label{color:var(--navy-800);font-size:var(--text-sm);font-weight:var(--fw-bold)}.field-label.is-block{margin-bottom:10px;display:block}.field-hint{color:var(--subtle);font-size:var(--text-xs);line-height:1.45}.input-wrap{align-items:center;gap:var(--space-2);min-height:52px;padding:0 var(--space-4);border:1px solid var(--line);border-radius:var(--r-md);background:#fff;transition:border .18s,box-shadow .18s;display:flex}.input-wrap:focus-within{border-color:var(--teal-500);box-shadow:0 0 0 4px #08b8b21a}.input-wrap>svg{color:var(--subtle);flex:none}.input-wrap input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;min-width:0}.input-wrap input::placeholder{color:var(--placeholder)}.select-field{gap:var(--space-2);display:grid}.select-field span{color:var(--navy-800);font-size:var(--text-sm);font-weight:var(--fw-bold)}.select-field select,.textarea-field textarea{border:1px solid var(--line);border-radius:var(--r-md);width:100%;min-height:52px;padding:0 var(--space-3);color:var(--ink);background:#fff;outline:0}.textarea-field{gap:var(--space-2);display:grid}.textarea-field span{color:var(--navy-800);font-size:var(--text-sm);font-weight:var(--fw-bold)}.textarea-field textarea{resize:vertical;min-height:94px;padding:var(--space-3) var(--space-3)}.select-field select:focus,.textarea-field textarea:focus{border-color:var(--teal-500);box-shadow:0 0 0 4px #08b8b21a}.form-grid{gap:var(--space-4);display:grid}.form-row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.form-error{padding:var(--space-3) var(--space-3);border-radius:var(--r-sm);background:var(--coral-100);color:var(--danger-ink);font-size:var(--text-sm);margin:-4px 0 0}.avatar-bubble{border-radius:var(--r-md);color:#fff;width:42px;height:42px;font-size:var(--text-sm);font-weight:var(--fw-black);justify-content:center;align-items:center;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff40}.avatar-bubble:has(+*){flex:none}.app-layout{min-height:100dvh}.desktop-sidebar{display:none}.app-column{min-height:100dvh}.mobile-header{height:calc(64px + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--space-4) 0;z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f5f7faeb;border-bottom:1px solid #e5eaf0c2;justify-content:space-between;position:sticky;top:0}.header-actions,.mobile-header{align-items:center;display:flex}.header-actions{gap:var(--space-2)}.icon-button{border-radius:var(--r-md);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}@media (hover:hover) and (pointer:fine){.icon-button:hover{background:var(--fill-soft)}}.app-main{width:100%;max-width:1180px;padding:var(--space-6) var(--space-4) calc(96px + env(safe-area-inset-bottom));margin:0 auto}.bottom-nav{z-index:30;min-height:calc(68px + env(safe-area-inset-bottom));padding:var(--space-1) var(--space-1) env(safe-area-inset-bottom);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff5;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{border-radius:var(--r-md);justify-content:center;align-items:center;gap:var(--space-1);color:#6b7685;min-width:0;min-height:56px;font-size:var(--text-2xs);font-weight:var(--fw-bold);flex-direction:column;display:flex}.bottom-nav a.router-link-exact-active{color:var(--navy-900);background:var(--teal-50)}.bottom-nav a.router-link-exact-active svg{color:var(--teal-600)}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:24px;display:flex}.page-header>div:first-child{min-width:0}.page-header h1{margin-bottom:6px}.page-subtitle{font-size:var(--text-md);margin:0}.eyebrow{color:var(--teal-700);font-size:var(--text-xs);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:.1em;margin:0 0 7px}.section-title{justify-content:space-between;align-items:center;gap:var(--space-3);margin:30px 0 14px;display:flex}.section-title h2{margin:0}.section-title a,.text-button{color:var(--teal-700);font-weight:var(--fw-bold);font-size:var(--text-sm);cursor:pointer;background:0 0;border:0}.dashboard-grid{gap:var(--space-4);display:grid}.balance-card{padding:var(--space-5);color:#fff;background:var(--navy-900);border:0;position:relative;overflow:hidden}.balance-card:after{content:"";border:30px solid #08b8b22b;border-radius:50%;width:160px;height:160px;position:absolute;top:-70px;right:-62px}.balance-card>*{z-index:1;position:relative}.balance-top{align-items:center;gap:var(--space-3);margin-bottom:22px;display:flex}.balance-top strong{font-size:var(--text-md);display:block}.balance-top small{color:#ffffffa3}.balance-values{gap:var(--space-3);grid-template-columns:1.25fr 1fr;display:grid}.balance-values small{color:#ffffffab;font-size:var(--text-2xs);margin-bottom:3px;display:block}.balance-values strong{letter-spacing:-.04em;font-size:clamp(1.26rem,5.4vw,1.7rem)}.balance-values .points-value{padding-left:var(--space-4);border-left:1px solid #ffffff24}.goal-card{padding:var(--space-5)}.goal-head{gap:var(--space-3);margin-bottom:17px}.goal-emoji,.goal-head{align-items:center;display:flex}.goal-emoji{border-radius:var(--r-md);background:var(--gold-100);width:46px;height:46px;color:var(--gold-ink);font-size:var(--text-xl);justify-content:center}.goal-head h3{margin:0}.goal-head p{font-size:var(--text-xs);margin:2px 0 0}.goal-values{color:var(--muted);font-size:var(--text-xs);justify-content:space-between;margin-bottom:10px;display:flex}.goal-values strong{color:var(--navy-900)}.progress-wrap{align-items:center;gap:var(--space-2);display:flex}.progress-track{border-radius:var(--r-pill);background:var(--fill);flex:1;height:9px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--teal-500);height:100%;transition:width .5s;display:block}.progress-label{text-align:right;min-width:34px;color:var(--teal-700);font-size:var(--text-xs);font-weight:var(--fw-black)}.approval-card{padding:var(--space-4);gap:var(--space-3);display:grid}.approval-person{align-items:center;gap:var(--space-3);display:flex}.approval-person>div{min-width:0}.approval-person h3{white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.approval-person p{font-size:var(--text-xs);margin:2px 0 0}.approval-actions{gap:var(--space-2);grid-template-columns:1fr auto auto;display:grid}.approval-actions .ui-button{min-height:46px;padding:0 var(--space-3)}.approval-description{color:var(--muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;overflow:hidden}.approval-time{color:var(--subtle);font-weight:var(--fw-semibold)}.approval-noproof{padding:var(--space-2) var(--space-3);border-radius:var(--r-sm);background:var(--surface-soft);color:var(--muted);font-size:var(--text-xs);margin:0}.approval-proof{gap:var(--space-2);display:grid}.proof-thumb{border:1px solid var(--line);border-radius:var(--r-md);background:var(--teal-50);cursor:zoom-in;width:100%;height:170px;padding:0;display:block;position:relative;overflow:hidden}.proof-thumb img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.proof-zoom{border-radius:var(--r-xs);color:#fff;background:#04142db8;place-items:center;width:32px;height:32px;display:grid;position:absolute;bottom:8px;right:8px}.proof-meta{justify-content:space-between;align-items:center;gap:var(--space-2);color:var(--muted);font-size:var(--text-xs);font-weight:var(--fw-bold);display:flex}.attempt-list{gap:var(--space-3);display:grid}.attempt-card{padding:var(--space-3);gap:var(--space-2);display:grid}.attempt-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.attempt-card img{-o-object-fit:cover;object-fit:cover;border-radius:var(--r-sm);width:100%;max-height:240px}.attempt-date{color:var(--subtle);font-size:var(--text-2xs);margin:0}.attempt-note{color:var(--navy-800);font-size:var(--text-xs);margin:0}.mission-list{gap:var(--space-2);display:grid}.mission-card{min-width:0;padding:var(--space-3);gap:var(--space-3);border:1px solid var(--line);background:#fff}.mission-card,.mission-icon{border-radius:var(--r-md);align-items:center;display:flex}.mission-icon{background:var(--teal-50);width:46px;height:46px;color:var(--teal-700);flex:none;justify-content:center}.mission-copy{flex:1;min-width:0}.mission-title-line{align-items:center;gap:var(--space-2);display:flex}.mission-title-line h3{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;min-width:0;margin:0;display:-webkit-box;overflow:hidden}.mission-copy>p{font-size:var(--text-xs);margin:2px 0 4px}.reward-line{align-items:center;gap:var(--space-2);color:var(--teal-700);font-size:var(--text-xs);font-weight:var(--fw-black);display:flex}.reward-line span{align-items:center;gap:3px;display:inline-flex}.status-badge{border-radius:var(--r-pill);padding:var(--space-1) var(--space-2);font-size:var(--text-2xs);font-weight:var(--fw-black);flex:none}.status-badge.is-pending{background:var(--gold-100);color:var(--gold-ink)}.status-badge.is-approved{background:var(--green-100);color:var(--green-600)}.status-badge.is-rejected{background:var(--coral-100);color:var(--danger-ink)}.status-badge.is-adjustment{color:#a65d0a;background:#fff0de}.status-badge.is-awaiting_approval{background:var(--gold-100);color:var(--gold-ink)}.status-badge.is-expired,.status-badge.is-missed{background:var(--fill);color:#636e7f}.required-badge{padding:var(--space-1) var(--space-2);border-radius:var(--r-pill);color:var(--teal-700);font-size:var(--text-2xs);font-weight:var(--fw-black);background:#edf8f7;flex:none}.consequence-line{align-items:center;gap:var(--space-1);color:#9b6a2d;font-size:var(--text-2xs);font-weight:var(--fw-bold);flex-wrap:wrap;margin-top:6px;display:flex}.consequence-line span:first-child{font-weight:var(--fw-semibold)}.summary-card{padding:var(--space-4);gap:var(--space-1);grid-template-columns:repeat(2,1fr);display:grid}.summary-item{text-align:center;min-width:0;padding:var(--space-2) var(--space-1)}.summary-item+.summary-item{border-left:1px solid var(--line)}.summary-item strong{color:var(--navy-900);font-size:var(--text-lg);display:block}.summary-item span{color:var(--muted);font-size:var(--text-xs)}.quick-actions{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.quick-action{min-height:88px;padding:var(--space-3) var(--space-1);border:1px solid var(--line);border-radius:var(--r-md);justify-content:center;align-items:center;gap:var(--space-2);color:var(--navy-800);font-size:var(--text-2xs);font-weight:var(--fw-bold);text-align:center;background:#fff;flex-direction:column;display:flex}.quick-action span:first-child{border-radius:var(--r-sm);background:var(--teal-50);width:34px;height:34px;color:var(--teal-600);place-items:center;display:grid}.empty-state{padding:var(--space-8) var(--space-5);text-align:center;border:1px dashed var(--line-strong);background:#ffffff94}.empty-icon,.empty-state{border-radius:var(--r-lg)}.empty-icon{width:58px;height:58px;margin:0 auto var(--space-3);background:var(--teal-100);color:var(--teal-700);place-items:center;display:grid}.empty-state h3{margin-bottom:6px}.empty-state p{max-width:350px;font-size:var(--text-sm);margin:0 auto 17px}.toast-stack{z-index:100;left:14px;right:14px;bottom:calc(86px + env(safe-area-inset-bottom));pointer-events:none;justify-items:center;display:grid;position:fixed}.toast{border-radius:var(--r-md);width:min(100%,420px);min-height:52px;padding:var(--space-3) var(--space-4);align-items:center;gap:var(--space-2);color:#fff;background:var(--navy-900);box-shadow:var(--shadow-md);pointer-events:auto;text-align:left;font-size:var(--text-sm);font-weight:var(--fw-semibold);border:0;display:flex}.toast.is-success svg{color:#5ce1a6}.toast.is-error svg{color:#ff9aa0}.toast.is-info svg{color:#64d9d5}.toast-enter-active,.toast-leave-active{transition:all .25s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(15px)scale(.97)}.modal-backdrop{z-index:60;padding-top:env(safe-area-inset-top);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#04142d70;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-sheet{border-radius:var(--r-xl) var(--r-xl) 0 0;width:100%;max-height:min(92vh,820px);box-shadow:var(--shadow-md);padding-bottom:env(safe-area-inset-bottom);background:#fff;overflow:auto}.sheet-handle{border-radius:var(--r-pill);background:var(--line-strong);width:38px;height:4px;margin:10px auto 3px}.sheet-header{z-index:2;padding:var(--space-4) var(--space-4) var(--space-3);justify-content:space-between;align-items:center;gap:var(--space-4);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff2;display:flex;position:sticky;top:0}.sheet-header h2{margin:0}.sheet-content{padding:var(--space-1) var(--space-4) var(--space-6)}.modal-backdrop.is-locked{padding:max(10px,env(safe-area-inset-top)) var(--space-2) max(10px,env(safe-area-inset-bottom));align-items:center}.modal-sheet.is-locked{border-radius:var(--r-lg);grid-template-rows:auto minmax(0,1fr) auto;min-height:min(600px,100dvh - 20px);max-height:calc(100dvh - 20px);padding-bottom:0;display:grid;overflow:hidden}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter-from,.fade-leave-to{opacity:0}.sheet-enter-active,.sheet-leave-active{transition:transform .28s cubic-bezier(.2,.8,.2,1)}.sheet-enter-from,.sheet-leave-to{transform:translateY(100%)}.auth-page{min-height:100dvh;padding:calc(28px + env(safe-area-inset-top)) var(--space-4) calc(28px + env(safe-area-inset-bottom));background:radial-gradient(circle at 100% 0,#08b8b21f,transparent 32%),var(--canvas);align-items:center;display:grid}.auth-card{width:100%;max-width:470px;padding:var(--space-6) var(--space-5);margin:auto}.auth-brand{margin-bottom:30px}.auth-card h1{font-size:var(--text-3xl)}.auth-card>p{font-size:var(--text-md);margin-bottom:24px}.auth-footer{text-align:center;font-size:var(--text-sm);margin:20px 0 0}.auth-footer a{color:var(--teal-700);font-weight:var(--fw-bold)}.lp{background:var(--surface);overflow-x:clip}.lp-section{padding:clamp(56px,9vw,104px) var(--space-4)}.lp-section.is-tinted{background:var(--canvas)}.lp-container{width:100%;max-width:1120px;margin:0 auto}.lp-narrow{max-width:760px}.lp-head{max-width:640px;margin:0 0 clamp(28px,4vw,44px)}.lp-head.is-centered{text-align:center;margin-left:auto;margin-right:auto}.lp-head h2{letter-spacing:-.04em;margin:0 0 12px;font-size:clamp(1.6rem,4.6vw,2.6rem);line-height:1.14}.lp-head p{margin:0;font-size:clamp(.95rem,2vw,1.08rem);line-height:1.6}.lp-eyebrow{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--r-pill);background:var(--teal-50);box-shadow:inset 0 0 0 1px var(--teal-100);color:var(--teal-600);font-size:var(--text-xs);font-weight:var(--fw-black);letter-spacing:.05em;text-transform:uppercase;margin-bottom:14px;display:inline-flex}.lp-eyebrow.is-soon{background:var(--gold-100);color:var(--gold-ink);box-shadow:inset 0 0 0 1px #f3dc9a}.lp.is-armed [data-reveal]{opacity:0;transform:translateY(16px)}.lp [data-reveal]{transition:opacity .55s,transform .55s cubic-bezier(.2,.7,.3,1)}.lp.is-armed [data-reveal].is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.lp.is-armed [data-reveal]{opacity:1;transform:none}.lp [data-reveal]{transition:none}}.choice-grid{gap:var(--space-2);display:grid}.choice-card{min-height:78px;padding:var(--space-3) var(--space-3);align-items:center;gap:var(--space-3);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;text-align:left;background:#fff;display:flex}.choice-card.is-active{border-color:var(--teal-500);background:var(--teal-50);box-shadow:0 0 0 3px #08b8b214}@media (hover:hover) and (pointer:fine){.choice-card:hover:not(.is-active):not(:disabled){border-color:var(--teal-500)}}.choice-card:disabled{opacity:.42;cursor:not-allowed}.choice-card>span:first-child{border-radius:var(--r-md);background:var(--canvas);width:44px;height:44px;font-size:var(--text-xl);flex:none;place-items:center;display:grid}.choice-card.is-active>span:first-child{background:var(--teal-100);color:var(--teal-600)}.choice-card strong{font-size:var(--text-md);display:block}.choice-card small{color:var(--muted);font-size:var(--text-xs)}.choice-card.is-compact{gap:var(--space-2);min-height:58px;padding:var(--space-2) var(--space-8) var(--space-2) var(--space-2);border-radius:var(--r-md)}.choice-card.is-compact>span:first-child{border-radius:var(--r-sm);width:34px;height:34px;font-size:var(--text-lg)}.choice-card.is-compact strong{font-size:var(--text-md);overflow-wrap:anywhere;line-height:1.25}.color-picker{gap:var(--space-3);display:flex}.color-dot{width:38px;height:38px;box-shadow:0 0 0 1px var(--line);cursor:pointer;border:3px solid #fff;border-radius:50%}.color-dot.is-active{box-shadow:0 0 0 2px var(--navy-900)}.child-grid,.goal-grid,.reward-grid{gap:var(--space-3);display:grid}.child-card{padding:var(--space-4);align-items:center;gap:var(--space-3);display:flex}.child-card .avatar-bubble{border-radius:var(--r-md);width:52px;height:52px}.child-card>div{flex:1;min-width:0}.child-card h3{margin:0}.child-card p{font-size:var(--text-xs);margin:2px 0 0}.chevron{color:var(--subtle)}.goal-list-card,.reward-card{padding:var(--space-4)}.goal-list-card .goal-head{margin-bottom:14px}.reward-card{align-items:center;gap:var(--space-3);display:flex}.reward-card .goal-emoji{flex:none}.reward-card>div:nth-child(2){flex:1;min-width:0}.reward-card h3{margin:0}.reward-card p{font-size:var(--text-xs);margin:2px 0 0}.segmented{padding:var(--space-1);background:var(--fill);border-radius:var(--r-md);grid-template-columns:repeat(3,1fr);gap:3px;display:grid}.segmented button{border-radius:var(--r-sm);min-height:44px;color:var(--muted-strong);font-size:var(--text-xs);font-weight:var(--fw-bold);cursor:pointer;background:0 0;border:0}.segmented button.is-active{color:var(--navy-900);background:#fff;box-shadow:0 2px 7px #061b3a14}.history-list{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--line);gap:1px;display:grid;overflow:hidden}.history-item{padding:var(--space-3);align-items:center;gap:var(--space-3);background:#fff;display:flex}.history-item-icon{border-radius:var(--r-sm);background:var(--teal-50);width:40px;height:40px;color:var(--teal-600);place-items:center;display:grid}.history-item>div:nth-child(2){flex:1;min-width:0}.history-item h3{white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.history-item p{font-size:var(--text-2xs);margin:1px 0 0}.history-value{color:var(--green-600);font-size:var(--text-sm);font-weight:var(--fw-black);flex:none}.history-value.is-negative{color:var(--coral-500)}.profile-card{padding:var(--space-4)}.profile-line{align-items:center;gap:var(--space-3);display:flex}.profile-line h3{margin:0}.profile-line p{font-size:var(--text-xs);margin:2px 0 0}.settings-list{border-top:1px solid var(--line);margin-top:18px}.settings-row{align-items:center;gap:var(--space-3);border-bottom:1px solid var(--line);min-height:54px;color:var(--navy-800);font-size:var(--text-sm);font-weight:var(--fw-semibold);display:flex}.settings-row svg:last-child{color:var(--subtle);margin-left:auto}.child-page{min-height:100dvh;padding-bottom:calc(90px + env(safe-area-inset-bottom));background:radial-gradient(circle at 90% 0,#08b8b22e,transparent 28%),var(--canvas)}.child-header{padding:calc(16px + env(safe-area-inset-top)) var(--space-4) var(--space-2);justify-content:space-between;align-items:center;display:flex}.child-content{max-width:760px;padding:var(--space-3) var(--space-4);margin:0 auto}.child-greeting{margin-bottom:20px}.child-greeting h1{margin:0 0 5px}.child-greeting p{margin:0}.child-stats{gap:var(--space-3);grid-template-columns:1.2fr 1fr;display:grid}.child-stat{padding:var(--space-4)}.child-stat small{color:var(--muted);font-size:var(--text-2xs);display:block}.child-stat strong{color:var(--navy-900);font-size:var(--text-2xl);letter-spacing:-.04em;margin-top:4px;display:block}.child-stat.is-points{background:var(--gold-100);border-color:#0000}.child-mission-card{padding:var(--space-4);align-items:flex-start}.complete-button{border-radius:var(--r-sm);min-height:42px;padding:0 var(--space-3);background:var(--navy-900);color:#fff;font-size:var(--text-2xs);font-weight:var(--fw-bold);cursor:pointer;border:0;flex:none}.complete-button:disabled{background:var(--fill);color:var(--muted)}.child-page .status-badge{display:none}.skeleton{background:var(--fill);border-radius:var(--r-sm);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffffb3,#0000);animation:1.3s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}.skeleton-line{width:70%;height:16px;margin-bottom:10px}.skeleton-card{height:130px;margin-bottom:12px}@media (width>=640px){.app-main{padding-left:var(--space-6);padding-right:var(--space-6)}.dashboard-grid{grid-template-columns:1fr 1fr}.approval-list,.child-grid,.goal-grid,.reward-grid{grid-template-columns:repeat(2,1fr)}.approval-list{gap:var(--space-3);display:grid}.choice-grid{grid-template-columns:repeat(3,1fr)}.modal-backdrop{padding:var(--space-6);align-items:center}.modal-sheet{border-radius:var(--r-xl);max-width:560px;max-height:88vh;padding-bottom:0}.sheet-handle{display:none}.landing-actions{flex-wrap:wrap;justify-content:center;display:flex}.landing-actions .ui-button{width:auto}}@media (width>=1024px){.app-layout{grid-template-columns:244px 1fr;display:grid}.desktop-sidebar{height:100vh;padding:28px var(--space-4);border-right:1px solid var(--line);background:#fff;flex-direction:column;display:flex;position:sticky;top:0}.desktop-sidebar .brand-logo{margin:0 11px 35px}.desktop-sidebar nav{gap:var(--space-1);display:grid}.desktop-sidebar nav a{min-height:48px;padding:0 var(--space-3);align-items:center;gap:var(--space-3);border-radius:var(--r-md);color:var(--muted);font-size:var(--text-sm);font-weight:var(--fw-bold);display:flex}.desktop-sidebar nav a.router-link-exact-active{background:var(--teal-50);color:var(--navy-900)}.desktop-sidebar nav a.router-link-exact-active svg{color:var(--teal-600)}.sidebar-profile{width:100%;padding:var(--space-2);border-radius:var(--r-md);align-items:center;gap:var(--space-2);background:var(--canvas);cursor:pointer;text-align:left;border:0;margin-top:auto;display:flex}.sidebar-profile>span:nth-child(2){flex:1;min-width:0}.sidebar-profile small,.sidebar-profile strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.sidebar-profile strong{font-size:var(--text-xs)}.sidebar-profile small{color:var(--subtle);font-size:var(--text-2xs)}.bottom-nav,.mobile-header{display:none}.app-main{padding:var(--space-10) var(--space-10) 60px}.toast-stack{width:420px;bottom:28px;left:auto;right:28px}.dashboard-grid{grid-template-columns:1.1fr .9fr}.dashboard-body{gap:var(--space-8);grid-template-columns:minmax(0,1.55fr) minmax(290px,.8fr);display:grid}.dashboard-body .mission-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=370px){.app-main{padding-left:var(--space-3);padding-right:var(--space-3)}.bottom-nav a{font-size:var(--text-2xs)}.balance-card{padding:var(--space-4)}.mission-card{padding:var(--space-3);gap:var(--space-2)}.mission-icon{width:42px;height:42px}.form-row{grid-template-columns:1fr}}@media (width<=480px){.landing-nav .nav-start{display:none}.landing-hero{margin-top:clamp(76px,14vh,120px)}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes shimmer{to{transform:translate(100%)}}.money-invitation{gap:var(--space-3);display:grid}.money-invitation p{font-size:var(--text-sm);margin:0}.money-invitation-actions{gap:var(--space-2);margin-top:8px;display:grid}
