:root{color:#1a1c21;font-synthesis:none;text-rendering:optimizelegibility;background:#e9ebef;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-stage{place-items:center;min-height:100vh;padding:24px;display:grid}.phone-frame{background:linear-gradient(#f4f7fc 0%,#edf3ff9e 100%);border:1px solid #fff;border-radius:36px;width:min(720px,100vw - 48px);height:calc(100dvh - 48px);position:relative;overflow:hidden;box-shadow:0 16px 40px #14213b2e}.auth-page{background:#fafafa;flex-direction:column;align-items:stretch;gap:14px;min-height:100%;padding:24px;display:flex}.auth-heading{flex-direction:column;gap:8px;display:flex}.auth-heading h1{color:#1a1a1a;margin:0;font-size:28px;font-weight:600;line-height:1.35}.auth-heading p{color:#474747;margin:0;font-size:14px;line-height:1.55}.field{flex-direction:column;gap:7px;display:flex}.field-label{color:#474747;font-size:13px;font-weight:600}.field input,.field select{color:#1a1a1a;background:#fff;border:1px solid #d1d1d1;border-radius:10px;outline:none;width:100%;height:52px;padding:0 16px;font-size:14px;transition:border-color .16s,box-shadow .16s}.field select{appearance:auto}.field input:focus,.field select:focus{border-color:#242930;box-shadow:0 0 0 3px #24293014}.field input[readonly]{color:#616670;background:#f4f4f4}.field.has-error input{border-color:#b94b4b}.field-input-wrap{position:relative}.field-input-wrap.has-password-toggle input{padding-right:52px}.password-toggle{color:#6f747d;background:0 0;border:0;border-radius:8px;place-items:center;width:40px;height:40px;padding:0;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.password-toggle:hover{color:#1f2329;background:#f2f3f5}.password-toggle:focus-visible{outline-offset:-2px;outline:2px solid #242930}.password-toggle svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.field-helper,.field-error{color:#7a7a7a;min-height:17px;font-size:12px;line-height:1.4}.field-error{color:#a73b3b}.primary-button,.secondary-button{border-radius:8px;width:100%;height:48px;font-size:14px}.primary-button{color:#fff;background:#1f1f1f;border:1px solid #1f1f1f}.primary-button:disabled{opacity:.62;cursor:wait}.secondary-button{color:#1a1c21;background:#fff;border:1px solid #333}.auth-tip,.legal-copy{color:#7a7a7a;margin:0}.auth-tip{font-size:12px;line-height:1.5}.legal-copy{font-size:11px}.flex-spacer{flex:1;min-height:1px}.register-page{gap:11px;overflow-y:auto}.register-page .auth-heading{gap:4px}.register-page .auth-heading h1{font-size:26px}.register-page .field{gap:4px}.register-page .field input,.register-page .field select{height:46px}.register-page .field-helper,.register-page .field-error{min-height:0}.toast{z-index:20;color:#fff;text-align:center;background:#1f1f1f;border-radius:10px;place-items:center;width:342px;min-height:48px;padding:12px 16px;font-size:13px;font-weight:600;animation:.18s ease-out toast-in;display:grid;position:absolute;bottom:176px;left:23px}.toast-low{bottom:70px}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.app-page{background:#f9f9fa;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.page-scroll{z-index:1;flex:1;min-height:0;position:relative;overflow-y:auto}.home-content{flex-direction:column;gap:24px;min-height:100%;padding:24px;display:flex}.profile-header{align-items:center;gap:12px;height:56px;display:flex}.avatar{background:#e8ebf0;border:1px solid #b8bdc7;border-radius:50%;flex:none;place-items:center;width:48px;height:48px;font-size:18px;font-weight:600;display:grid}.profile-header>div:last-child{flex-direction:column;gap:4px;min-width:0;display:flex}.profile-header strong{white-space:nowrap;font-size:16px;font-weight:600}.profile-header span{color:#616670;font-size:11px}.greeting{flex-direction:column;gap:6px;display:flex}.greeting h1{margin:0;font-size:26px;font-weight:600;line-height:1.3}.greeting p{color:#616670;margin:0;font-size:13px}.empty-family-card{background:#fff;border:1px solid #d6d9de;border-radius:12px;flex-direction:column;gap:16px;padding:24px;display:flex}.empty-family-card p,.empty-family-card h2{margin:0}.empty-family-card .eyebrow{color:#737373;font-size:12px}.empty-family-card h2{font-size:24px;font-weight:600}.empty-family-card>p:not(.eyebrow):not(.card-helper){color:#3d424d;font-size:14px;line-height:1.55}.empty-family-card .card-helper{color:#616670;text-align:center;font-size:12px}.bottom-tabs{z-index:3;background:#fff;border-top:1px solid #e4eaf4;flex:0 0 68px;justify-content:space-between;gap:8px;padding:8px 18px;display:flex;position:relative;box-shadow:0 -4px 8px #1f33570f}.bottom-tabs button{color:#7b88a2;background:#fff;border:0;border-radius:12px;flex-direction:column;flex:0 0 104px;justify-content:center;align-items:center;gap:2px;height:50px;display:flex}.bottom-tabs button.active{color:#fff;background:#4f7cff;border-radius:16px;box-shadow:0 5px 14px #4f7cff3d}.bottom-tabs .tab-icon{flex:none;display:block}.bottom-tabs small{font-size:11px}.family-content{gap:16px;padding-bottom:32px}.family-header{justify-content:space-between;align-items:center;height:56px;display:flex}.family-header .profile-header{flex:1;min-width:0}.profile-header.compact .avatar{background:#f2f5f7;border-color:#d6d9de}.child-switcher{z-index:6;flex:none;position:relative}.child-switch{color:#1f2d47;white-space:nowrap;background:#f6f8fff5;border:1px solid #e4eaf7;border-radius:14px;justify-content:center;align-items:center;gap:6px;min-width:118px;max-width:154px;height:40px;padding:0 10px 0 12px;transition:border-color .16s,background .16s,box-shadow .16s;display:flex;overflow:hidden;box-shadow:inset 0 1px #fffc}.child-switch:hover{background:#eef3ff}.child-switch.open{background:#fff;border-color:#6f92ff;box-shadow:0 0 0 3px #4f7cff1c}.child-switch-label{color:#8a98b2;flex:none;font-size:11px;font-weight:500}.child-switch-label:after{content:"·";margin-left:5px}.child-switch strong{color:#52678e;text-overflow:ellipsis;min-width:0;font-size:12px;font-weight:600;overflow:hidden}.child-switch-caret{color:#6f86b0;flex:none;transition:transform .16s}.child-switch.open .child-switch-caret{transform:rotate(180deg)}.single-child{cursor:default}.child-switch-menu{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffffa;border:1px solid #e1e8f4;border-radius:17px;flex-direction:column;gap:4px;width:202px;padding:7px;display:flex;position:absolute;top:48px;right:0;overflow:hidden;box-shadow:0 16px 36px #1f33572e}.child-switch-menu button{color:#1f2d47;text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;grid-template-columns:34px minmax(0,1fr) 22px;align-items:center;gap:9px;width:100%;min-height:54px;padding:7px 9px;display:grid}.child-switch-menu button:hover{background:#f7f9fe}.child-switch-menu button.active{background:#f7f9ff;border-color:#dbe5ff}.child-choice-avatar{color:#4f70cf;background:#eef3ff;border-radius:11px;place-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:grid;overflow:hidden}.child-switch-menu button.active .child-choice-avatar{color:#fff;background:#4f7cff;box-shadow:0 4px 10px #4f7cff33}.child-choice-copy{flex-direction:column;gap:2px;min-width:0;display:flex;overflow:hidden}.child-choice-copy strong{color:#1f2d47;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.child-choice-copy small{color:#8a98b2;font-size:10px}.child-choice-check{color:#4f7cff;background:#e7efff;border-radius:50%;place-items:center;width:20px;height:20px;display:grid}.compact-greeting{gap:6px}.summary-card,.calendar-card,.empty-plan-card{background:#fff;border:1px solid #d6d9de;border-radius:16px}.summary-card{flex-direction:column;gap:8px;padding:16px;display:flex}.summary-card h2{margin:0;font-size:18px;font-weight:600}.progress-track{background:#f2f5f7;border-radius:4px;height:8px}.calendar-card{flex-direction:column;gap:12px;padding:16px;display:flex}.calendar-title{align-items:center;gap:8px;height:32px;display:flex}.calendar-title button{background:#fff;border:1px solid #d6d9de;border-radius:10px;width:32px;height:30px;font-size:12px}.calendar-title strong{text-align:center;flex:1;font-size:15px}.calendar-title .today-button{width:74px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.calendar-grid span{place-items:center;display:grid}.week-labels span{color:#616670;height:20px;font-size:11px}.dates span{border-radius:10px;height:34px;font-size:12px}.dates span.today{color:#fff;background:#242930;font-weight:600}.calendar-helper{color:#616670;margin:0;font-size:12px}.add-plan-button{color:#fff;background:#242930;border:1px solid #242930;border-radius:8px;height:44px;font-size:11px}.list-title{justify-content:space-between;align-items:center;height:28px;display:flex}.list-title h2{margin:0;font-size:18px}.list-title span{color:#616670;font-size:11px}.filters{gap:6px;display:flex}.filters button{background:#fff;border:1px solid #d6d9de;border-radius:10px;flex:1;height:34px;font-size:12px}.empty-plan-card{text-align:center;padding:20px}.empty-plan-card h3{margin:0 0 8px;font-size:18px}.empty-plan-card p{color:#616670;margin:0;font-size:13px}.page-title{background:#fff;padding:24px 24px 18px}.page-title h1,.page-title p{margin:0}.page-title h1{font-size:24px;font-weight:600}.page-title p{color:#616670;margin-top:6px;font-size:12px}.my-content{flex-direction:column;gap:16px;padding:24px;display:flex}.account-overview{background:#fff;border:1px solid #d6d9de;border-radius:16px;align-items:center;gap:12px;padding:16px;display:flex}.avatar.large{background:#f2f5f7;border:0;width:52px;height:52px;font-size:17px}.account-overview>div:last-child{flex-direction:column;gap:4px;display:flex}.account-overview strong{font-size:17px}.account-overview span{color:#616670;font-size:12px}.menu-row{color:#1a1c21;background:#fff;border:1px solid #d6d9de;border-radius:14px;justify-content:space-between;align-items:center;width:100%;padding:16px;display:flex}.menu-row strong{font-size:15px}.menu-row span{color:#616670;font-size:18px}.account-page{background:#f9f9fa;height:100%}.subpage-header{background:#fff;border-bottom:1px solid #d6d9de;grid-template-columns:44px 1fr 44px;align-items:center;height:76px;padding:12px 16px;display:grid}.subpage-header button{color:#1a1c21;background:0 0;border:0;width:40px;height:40px;font-size:28px}.subpage-header h1{text-align:center;margin:0;font-size:20px}.account-details{flex-direction:column;gap:16px;padding:24px;display:flex}.details-card{background:#fff;border:1px solid #d6d9de;border-radius:16px;overflow:hidden}.detail-row{border-bottom:1px solid #eceef1;justify-content:space-between;align-items:center;gap:12px;min-height:54px;padding:14px 16px;display:flex}.detail-row:last-child{border-bottom:0}.detail-row span{color:#616670;font-size:13px}.detail-row strong{overflow-wrap:anywhere;max-width:220px;font-size:14px;font-weight:500}.logout-button{color:#a73b3b;background:#fff;border:1px solid #b94b4b;border-radius:8px;height:48px;font-size:14px}.logout-helper{color:#7a7a7a;text-align:center;margin:0;font-size:12px}.home-page{background:linear-gradient(#f4f7fc 0%,#edf3ff9e 100%)}.home-page:before{content:"";z-index:0;background:url(/assets/home-header.png) top/cover no-repeat;height:196px;position:absolute;inset:0 0 auto}.home-page:after{content:"";z-index:0;background:linear-gradient(90deg,#fffffff5,#ffffff80 56%,#ffffff24);height:196px;position:absolute;inset:0 0 auto}.home-page .home-content{z-index:1;color:#1f2d47;position:relative}.home-page .profile-header strong,.home-page .greeting h1,.home-page .list-title h2{color:#1f2d47}.home-page .profile-header span,.home-page .greeting p,.home-page .list-title span{color:#7b88a2}.home-page .avatar{color:#1f2d47;border-color:#e4eaf4}.home-page.without-family .profile-header,.home-page.without-family .greeting{background:#fff;border-radius:16px;width:342px}.home-page.without-family .empty-family-card{border-color:#e4eaf4;border-radius:20px;box-shadow:0 7px 22px #1f335717}.home-page.without-family .empty-family-card .eyebrow,.home-page.without-family .empty-family-card .card-helper{color:#7b88a2}.home-page.without-family .empty-family-card h2,.home-page.without-family .empty-family-card>p:not(.eyebrow):not(.card-helper){color:#1f2d47}.home-page.without-family .empty-family-card .primary-button{background:linear-gradient(90deg,#4f7cff,#79a0ff);border-color:#4f7cff;border-radius:16px;box-shadow:0 7px 22px #1f335717}.home-page.without-family .empty-family-card .secondary-button{border-color:#e4eaf4}.home-page.has-family .family-header{background:#fff;border-radius:16px;height:64px;padding:8px 10px;box-shadow:0 7px 11px #1f335717}.home-page.has-family .family-header .profile-header{height:48px}.home-page.has-family .family-header .avatar{width:44px;height:44px}.home-page.has-family .child-switch{color:#52678e;margin-right:4px}.home-page.has-family .summary-card,.home-page.has-family .calendar-card,.home-page.has-family .empty-plan-card{border-color:#e4eaf4;border-radius:20px;box-shadow:0 7px 22px #1f335717}.home-page.has-family .summary-card h2{color:#1f2d47}.home-page.has-family .calendar-title button{color:#4f7cff;border-color:#e4eaf4}.home-page.has-family .week-labels span,.home-page.has-family .dates span,.home-page.has-family .calendar-helper{color:#7b88a2}.home-page.has-family .dates span.today{color:#fff;background:#242930}.home-page.has-family .add-plan-button{color:#7b88a2;background:#fff;border-color:#e4eaf4;border-radius:16px}.home-page.has-family .filters button{color:#546b94;border-color:#dbe5f7;border-radius:12px;box-shadow:0 2px 4px #29406b0d}.home-page.has-family .empty-plan-card{color:#7b88a2}.my-page{background:linear-gradient(#f4f7fc 0%,#edf3ff9e 100%)}.my-page .page-title{z-index:1;position:relative}.my-page .page-title h1,.my-page .account-overview strong,.my-page .menu-row{color:#1f2d47}.my-page .page-title p,.my-page .account-overview span{color:#7b88a2}.my-page .my-content{background:#f9f9fa}.my-page .account-overview,.my-page .menu-row{border-color:#e4eaf4;border-radius:16px}@media (width>=439px) and (height<=891px){.app-stage{height:100vh;min-height:0;overflow:hidden}.phone-frame{height:calc(100vh - 48px)}}@media (width<=438px){.app-stage{min-height:100dvh;padding:0;display:block}.phone-frame{width:100%;max-width:390px;height:100dvh;min-height:640px;box-shadow:none;border-top:0;border-bottom:0;border-radius:0;margin:0 auto}}.family-flow-page{color:#1f2d47;background:linear-gradient(#f4f7fc 0%,#edf3ff9e 100%);height:100%;position:relative;overflow-y:auto}.flow-wash{pointer-events:none;background:linear-gradient(90deg,#edf3fff2,#ffffff14);height:148px;position:absolute;inset:0 0 auto}.flow-header,.flow-content{z-index:1;position:relative}.flow-header{padding:22px 24px 16px}.flow-back{color:#657596;background:0 0;border:0;align-items:center;gap:5px;min-height:28px;padding:0;font-size:22px;display:flex}.flow-back span{font-size:13px}.brand-mark{color:#4f7cff;align-items:center;height:28px;font-size:14px;font-weight:700;display:inline-flex}.flow-header h1{color:#1f2d47;margin:15px 0 0;font-size:28px;font-weight:600;line-height:1.3}.flow-header p{color:#7b88a2;margin:7px 0 0;font-size:14px;line-height:1.55}.flow-content{flex-direction:column;gap:14px;padding:0 24px 28px;display:flex}.flow-form{flex-direction:column;gap:14px;display:flex}.flow-card{background:#fff;border:1px solid #e4eaf4;border-radius:20px;box-shadow:0 7px 22px #1f335717}.form-card{flex-direction:column;gap:16px;padding:18px;display:flex}.form-card h2{margin:0;font-size:17px;font-weight:600}.section-title{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.section-title p{color:#7b88a2;margin:4px 0 0;font-size:12px}.required-pill,.valid-pill{color:#4f7cff;background:#eef3ff;border-radius:12px;align-items:center;min-height:24px;padding:0 9px;font-size:11px;font-weight:600;display:inline-flex}.flow-field{flex-direction:column;gap:7px;display:flex}.flow-field>span{color:#384967;font-size:13px;font-weight:600}.flow-field input,.flow-field select,.inline-name-input{color:#1f2d47;background:#fbfcff;border:1px solid #dbe5f7;border-radius:14px;outline:none;width:100%;height:48px;padding:0 14px;font-size:14px}.flow-input-wrap{width:100%;position:relative}.flow-input-wrap.has-password-toggle input{padding-right:48px}.password-visibility{color:#7184a6;background:0 0;border:0;border-radius:11px;place-items:center;width:36px;height:36px;padding:0;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.password-visibility:hover{color:#4f7cff;background:#eef3ff}.password-visibility:focus-visible{outline-offset:1px;outline:2px solid #4f7cff66}.flow-field select{appearance:none;background:#fbfcff url(/assets/chevron-down.svg) right 15px center/10px 10px no-repeat}.flow-field input:focus,.flow-field select:focus,.inline-name-input:focus{border-color:#6f92ff;box-shadow:0 0 0 3px #4f7cff1c}.flow-field.has-error input{border-color:#e16969}.flow-field small{color:#7b88a2;font-size:11px;line-height:1.4}.flow-field.has-error small{color:#c95555}.flow-primary,.flow-secondary,.danger-button{border-radius:16px;width:100%;min-height:48px;padding:0 16px;font-size:14px;font-weight:600}.flow-primary{color:#fff;background:linear-gradient(90deg,#4f7cff,#79a0ff);border:0;box-shadow:0 7px 18px #4f7cff33}.flow-secondary{color:#4f648a;background:#fff;border:1px solid #dbe5f7}.danger-button{color:#c95555;background:#fff7f7;border:1px solid #f0c9c9}.flow-primary:disabled,.flow-secondary:disabled,.danger-button:disabled{opacity:.55;cursor:wait}.flow-note{color:#7b88a2;text-align:center;margin:0;font-size:12px;line-height:1.6}.current-account-card{flex-direction:column;gap:5px;padding:17px 18px;display:flex}.current-account-card span{color:#7b88a2;font-size:11px}.current-account-card strong{font-size:15px}.current-account-card small{color:#7b88a2;font-size:12px}.invite-code-card{gap:13px}.code-preview{grid-template-columns:repeat(6,1fr);gap:7px;display:grid}.code-preview span{background:#f7f9ff;border:1px solid #dbe5f7;border-radius:11px;place-items:center;height:42px;font-size:19px;font-weight:600;display:grid}.invite-hero-card{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:28px 22px;display:flex}.family-badge{color:#fff;background:linear-gradient(145deg,#4f7cff,#87a8ff);border-radius:24px;place-items:center;width:70px;height:70px;font-size:26px;font-weight:700;display:grid;box-shadow:0 10px 22px #4f7cff3d}.family-badge.small{border-radius:17px;flex:none;width:54px;height:54px;font-size:20px}.invite-hero-card h2,.family-preview-card h2,.person-summary h2{margin:0;font-size:20px}.invite-hero-card p,.family-preview-card p,.person-summary p{color:#7b88a2;margin:0;font-size:13px;line-height:1.55}.family-preview-card{align-items:center;gap:14px;padding:18px;display:flex}.family-preview-card>div:last-child{flex-direction:column;gap:5px;display:flex}.family-overview-card{padding:19px}.overview-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.card-eyebrow{color:#7b88a2;margin-bottom:6px;font-size:11px;display:block}.family-overview-card h2{margin:0 0 12px;font-size:22px}.family-overview-card p{color:#7b88a2;margin:5px 0 0;font-size:13px}.created-child-card{flex-direction:column;gap:8px;padding:16px;display:flex}.created-child-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:2px;display:flex}.created-child-heading strong{color:#1f2d47;font-size:14px}.created-child-heading span{color:#4f7cff;background:#eef3ff;border-radius:10px;padding:3px 8px;font-size:10px}.credential-line{color:#6f7d98;align-items:center;gap:4px;font-size:12px;display:flex}.credential-line b{color:#526584;letter-spacing:.2px;font-weight:500}.credential-copy-button{color:#fff;background:#1f1f1f;border:0;border-radius:8px;width:100%;height:40px;margin-top:3px;font-size:12px;font-weight:600}.created-child-card p{color:#9aa6ba;margin:0;font-size:10px}.inline-name-input{height:42px;font-size:18px;font-weight:600}.text-button,.link-button{color:#4f7cff;background:0 0;border:0;padding:0;font-size:13px}.flow-menu{background:#fff;border:1px solid #e4eaf4;border-radius:20px;overflow:hidden;box-shadow:0 7px 22px #1f335717}.flow-menu-row{color:#1f2d47;text-align:left;background:#fff;border:0;border-bottom:1px solid #edf1f8;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:72px;padding:15px 18px;display:flex}.flow-menu-row:last-child{border-bottom:0}.flow-menu-row div{flex-direction:column;gap:5px;display:flex}.flow-menu-row strong{font-size:15px}.flow-menu-row span{color:#7b88a2;font-size:12px}.flow-menu-row em{color:#8290aa;font-size:13px;font-style:normal}.member-list{flex-direction:column;gap:10px;display:flex}.member-card{color:#1f2d47;text-align:left;background:#fff;border:1px solid #e4eaf4;border-radius:16px;grid-template-columns:46px 1fr auto 12px;align-items:center;gap:11px;width:100%;min-height:72px;padding:12px 14px;display:grid;box-shadow:0 5px 14px #1f335712}.member-avatar{color:#5b6d8f;background:#eff3fb;border-radius:15px;place-items:center;width:44px;height:44px;font-size:16px;font-weight:700;display:grid}.member-avatar.child{color:#4f7cff;background:#eef3ff}.member-avatar.large{border-radius:18px;width:56px;height:56px;font-size:20px}.member-card>div{flex-direction:column;gap:4px;min-width:0;display:flex}.member-card strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.member-card span:not(.member-avatar){color:#7b88a2;font-size:11px}.member-card em{border-radius:10px;padding:4px 7px;font-size:10px;font-style:normal}.status-ok{color:#36a066;background:#edf9f2}.status-muted{color:#8a94a7;background:#f2f4f7}.member-card b{color:#a3adc0;font-size:18px;font-weight:400}.empty-members{color:#7b88a2;text-align:center;padding:22px;font-size:13px}.link-button{align-self:center;min-height:30px}.share-card{text-align:center;flex-direction:column;align-items:center;gap:13px;padding:21px 18px;display:flex}.share-icon{color:#4f7cff;background:#eef3ff;border-radius:15px;place-items:center;width:44px;height:44px;font-size:22px;font-weight:700;display:grid}.share-icon.code{color:#7e68df;background:#f3f0ff}.share-card h2{margin:0;font-size:17px}.share-value{overflow-wrap:anywhere;color:#6f7d98;background:#f7f9fd;border-radius:12px;width:100%;margin:0;padding:11px;font-size:11px;line-height:1.5}.big-code{letter-spacing:7px;color:#1f2d47;font-size:28px}.person-summary{align-items:center;gap:14px;padding:18px;display:flex}.person-summary>div{flex-direction:column;gap:5px;display:flex}.detail-card{overflow:hidden}.detail-card>div{border-bottom:1px solid #edf1f8;align-items:center;gap:10px;min-height:56px;padding:13px 16px;display:flex}.detail-card>div:last-child{border-bottom:0}.detail-card span{color:#7b88a2;width:76px;font-size:12px}.detail-card strong{overflow-wrap:anywhere;text-align:right;flex:1;font-size:13px;font-weight:600}.detail-card .text-button{flex:none}@media (width<=438px){.family-flow-page{min-height:100dvh}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.page-home,.page-createPlan{outline-offset:-1px;background:linear-gradient(#f4f7fc 0%,#edf3ff9e 100%);border:0;border-radius:36px;outline:1px solid #fff;box-shadow:0 16px 40px #14213b2e}.page-home>.toast{color:#b7c1d4;border-radius:18px;width:180px;min-height:36px;padding:8px 14px;font-weight:400;top:24px;bottom:auto;left:105px}.page-createPlan>.toast{border-radius:12px;width:330px;min-height:40px;padding:10px 16px;font-weight:400;top:24px;bottom:auto;left:30px}.home-page.has-family{background:0 0}.home-page.has-family .compact-greeting{gap:16px}.home-page.has-family .profile-header strong,.home-page.has-family .greeting h1,.home-page.has-family .list-title h2{color:#1f2d47}.home-page.has-family .profile-header span,.home-page.has-family .greeting p,.home-page.has-family .list-title span{color:#7b88a2}.home-page.has-family .summary-card,.home-page.has-family .calendar-card,.home-page.has-family .empty-plan-card,.plan-card{border-color:#e4eaf4;border-radius:20px;box-shadow:0 7px 22px #1f335717}.home-page.has-family .calendar-title button{color:#4f7cff;border-color:#e4eaf4;border-radius:10px}.home-page.has-family .calendar-title .today-button{border-radius:14px}.home-page.has-family .week-labels span,.home-page.has-family .calendar-toggle,.home-page.has-family .calendar-legend{color:#7b88a2}.home-page.has-family .add-plan-button{color:#fff;background:linear-gradient(90deg,#4f7cff,#79a0ff);border:0;border-radius:16px;height:48px;font-size:14px;font-weight:500;box-shadow:0 7px 22px #1f335717}.home-page.has-family .add-plan-button:disabled{opacity:.45;cursor:not-allowed}.progress-track{overflow:hidden}.progress-track span{border-radius:inherit;background:#54cfa5;height:100%;transition:width .18s;display:block}.calendar-grid.dates{align-items:start}.calendar-grid.dates button{color:#7b88a2;background:0 0;border:0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:0;height:34px;padding:0;font-size:12px;display:flex}.calendar-grid.dates button>span{height:15px;line-height:15px}.calendar-grid.dates button.selected{color:#4f70cf;background:#eef3ff;font-weight:600;box-shadow:inset 0 0 0 1px #4f70cf29}.calendar-grid.dates button.selected.status-pending{color:#c94650;background:#fff0f1;box-shadow:inset 0 0 0 1px #c9465029}.calendar-grid.dates button.selected.status-completed{color:#329568;background:#eaf8f1;box-shadow:inset 0 0 0 1px #32956829}.calendar-grid.dates button.selected.status-overdue{color:#c97627;background:#fff4e8;box-shadow:inset 0 0 0 1px #c976272b}.calendar-grid.dates button.outside{opacity:.36}.calendar-date-status{place-items:center;width:11px;height:8px;font-style:normal;display:grid}.calendar-date-status svg{width:10px;height:10px}.calendar-date-status.status-pending{color:#d84d57}.calendar-date-status.status-completed{color:#3aa56f}.calendar-date-status.status-overdue{color:#df8a35}.calendar-grid.dates button.selected.status-pending .calendar-date-status{color:#d84d57}.calendar-grid.dates button.selected.status-completed .calendar-date-status{color:#3aa56f}.calendar-grid.dates button.selected.status-overdue .calendar-date-status{color:#df8a35}.calendar-footer{justify-content:space-between;align-items:center;gap:8px;min-height:30px;display:flex}.calendar-toggle{white-space:nowrap;background:0 0;border:0;align-items:center;gap:7px;height:30px;padding:0;font-size:12px;display:inline-flex}.calendar-toggle i{background:linear-gradient(#fff,#f1f5fd);border:1px solid #d6e2f6;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;transition:transform .18s,border-color .18s,background .18s;display:inline-flex;box-shadow:0 3px 8px #29406b24}.calendar-toggle:hover i,.calendar-toggle:focus-visible i{background:#eaf0ff;border-color:#9ab4f2}.calendar-toggle:focus-visible{outline:none}.calendar-toggle i.expanded{background:#eaf0ff;border-color:#b6c9f3;transform:rotate(180deg)}.calendar-toggle img{width:11px;height:11px}.calendar-legend{white-space:nowrap;align-items:center;gap:5px;display:flex}.legend-tag{border-radius:8px;align-items:center;gap:3px;height:22px;padding:0 6px;font-size:9px;font-weight:500;display:inline-flex}.legend-tag svg{flex:none;width:11px;height:11px}.legend-tag.status-pending{color:#c94650;background:#fff0f1}.legend-tag.status-completed{color:#329568;background:#eaf8f1}.legend-tag.status-overdue{color:#c97627;background:#fff4e8}.filters{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.filters label{min-width:0;position:relative}.filters label b{z-index:1;pointer-events:none;color:#546b94;font-size:12px;font-weight:400;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.filters select{appearance:none;color:#546b94;background:#fff url(/assets/chevron-down.svg) right 12px center/10px 10px no-repeat;border:1px solid #dbe5f7;border-radius:12px;outline:none;width:100%;height:34px;padding:0 24px 0 52px;font-size:12px;box-shadow:0 2px 4px #29406b0d}.plan-list{flex-direction:column;gap:12px;display:flex}.skeleton-plan-card{background:#fff;border:1px solid #e4eaf4;border-radius:20px;flex-direction:column;gap:12px;height:142px;padding:15px;display:flex;box-shadow:0 7px 22px #1f33570f}.skeleton-plan-card>*{background:linear-gradient(90deg,#edf1f7 25%,#f7f9fc 50%,#edf1f7 75%) 0 0/200% 100%;border-radius:8px;animation:1.2s linear infinite skeleton-shimmer;display:block;overflow:hidden}.skeleton-plan-card i{width:118px;height:23px}.skeleton-plan-card strong{width:62%;height:20px}.skeleton-plan-card span{width:42%;height:12px}.skeleton-plan-card span:last-child{width:70%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.plan-card{cursor:pointer;background:#fff;flex-direction:column;gap:10px;padding:14px;transition:transform .15s,opacity .15s,box-shadow .15s;display:flex;position:relative}.plan-card:focus-visible{outline-offset:2px;outline:2px solid #4f7cff}.plan-card.dragging{z-index:3;opacity:.92;cursor:grabbing;transform:scale(1.015);box-shadow:0 14px 32px #1f335733}.plan-card.drag-over:after{content:"";z-index:4;background:#242930;border-radius:4px;height:4px;position:absolute;bottom:-8px;left:0;right:0;box-shadow:0 2px 7px #1f293033}.plan-card-badges{align-items:center;gap:8px;display:flex}.plan-card-badges span{border-radius:10px;justify-content:center;align-items:center;height:24px;font-size:12px;display:inline-flex}.priority-badge{color:#7b88a2;border:1px solid #e4eaf4;gap:5px;min-width:76px;padding:0 5px 0 8px}.drag-handle{color:#607498;cursor:grab;touch-action:none;background:#f3f6fc;border:0;border-radius:7px;width:24px;height:22px;padding:0;font-size:17px;line-height:20px}.drag-handle:hover:not(:disabled),.drag-handle:focus-visible{color:#315fe7;background:#e8eeff;outline:2px solid #4f7cff38}.drag-handle:active{cursor:grabbing}.drag-handle:disabled{opacity:.48;cursor:not-allowed}.dragging-label{color:#4f7cff;margin-left:auto;font-size:11px;font-weight:500}.status-badge{color:#4f7cff;background:#edf3ff;min-width:72px;padding:0 12px}.status-已逾期 .status-badge{color:#e56a5f;background:#fff1f0}.status-已完成 .status-badge{color:#54cfa5;background:#e8f8f2}.plan-card h3{color:#1f2d47;margin:0;font-size:16px;line-height:1.35}.plan-card>p{color:#7b88a2;margin:0;font-size:12px}.plan-meta-tags{align-items:center;gap:6px;display:flex}.plan-meta-tag{border-radius:8px;justify-content:center;align-items:center;min-width:38px;height:22px;padding:0 8px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.subject-chinese{color:#c94e58;background:#fff0f1}.subject-math{color:#4f72d8;background:#edf3ff}.subject-english{color:#7a5bc5;background:#f3efff}.subject-sport{color:#329568;background:#eaf8f1}.subject-life{color:#c97627;background:#fff4e8}.subject-growth{color:#278f91;background:#e9f8f8}.type-school{color:#566bd3;background:#eef1ff}.type-outside{color:#2e9179;background:#e9f8f4}.plan-card-actions{flex-wrap:wrap;gap:6px;display:flex}.plan-card-actions button{color:#7b88a2;background:#fff;border:1px solid #e4eaf4;border-radius:8px;min-width:70px;height:32px;padding:0 12px;font-size:11px}.plan-card-actions button.dark{color:#fff;background:#4f7cff;border-color:#4f7cff;border-radius:14px}.create-plan-page{color:#1f2d47;background:0 0;flex-direction:column;gap:12px;height:100%;padding:24px;display:flex;position:relative;overflow-y:auto}.create-plan-page:before{content:"";z-index:-1;background:linear-gradient(90deg,#edf3fff2,#fff0);height:148px;position:absolute;inset:0 0 auto}.plan-back{color:#4f7cff;background:0 0;border:0;flex:0 0 32px;width:fit-content;height:32px;padding:0;font-size:14px}.create-plan-page h1{color:#1f2d47;flex:none;margin:0;font-size:24px;font-weight:500;line-height:1.35}.plan-form-field{color:#1f2d47;background:#fff;border:1px solid #0000;border-radius:16px;flex:none;align-items:center;width:100%;min-height:52px;padding:0 16px;font-size:14px;display:flex;position:relative;overflow:hidden}.plan-form-field.error{border-color:#b94b4b;box-shadow:0 0 0 2px #b94b4b14}.plan-form-field span{flex:none}.plan-form-field input,.plan-form-field select{color:#1f1f1f;min-width:0;height:50px;font:inherit;background:0 0;border:0;outline:0;flex:1;padding:0}.plan-form-field input::placeholder{color:#7b88a2}.plan-form-field strong{font-weight:400}.plan-form-field.readonly{color:#1f2d47;background:0 0;border-color:#0000}.plan-form-field select{appearance:none;background:url(/assets/chevron-down.svg) 100%/10px 10px no-repeat;padding-right:24px}.plan-form-field.date-field{padding-right:40px}.plan-form-field.date-field:after{content:"";pointer-events:none;background:url(/assets/chevron-down.svg) 50%/10px 10px no-repeat;width:10px;height:10px;position:absolute;right:16px}.plan-form-field.date-field input::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer;width:28px;height:38px;position:absolute;right:10px}.plan-form-field.note{min-height:64px;padding:0}.plan-form-field textarea{resize:none;color:#1f2d47;width:100%;height:64px;font:inherit;background:0 0;border:0;outline:0;padding:20px 16px}.save-plan-button{color:#fff;background:linear-gradient(90deg,#4f7cff,#79a0ff);border:0;border-radius:16px;flex:0 0 48px;width:100%;height:48px;font-size:14px;box-shadow:0 7px 22px #1f335717}.save-plan-button:disabled{opacity:.62;cursor:wait}.manage-plan-page{color:#1f2d47;background:linear-gradient(#f4f7fc 0%,#edf3ff9e 100%);height:100%;position:relative;overflow:hidden}.manage-plan-page:before,.edit-plan-page:before{content:"";z-index:0;background:linear-gradient(90deg,#edf3fff2,#fff0);height:148px;position:absolute;inset:0 0 auto}.manage-plan-page.delete-tone:before{background:linear-gradient(90deg,#fff0f0f2,#fff0)}.manage-plan-scroll{z-index:1;height:100%;padding:25px 24px 32px;position:relative;overflow-y:auto}.manage-plan-back{color:#4f7cff;background:0 0;border:0;width:fit-content;height:20px;padding:0;font-size:14px}.manage-plan-page h1{margin:12px 0;font-size:24px;font-weight:500;line-height:34px}.manage-plan-summary{background:#fff;border-radius:20px;flex-direction:column;gap:12px;width:342px;padding:18px 16px;display:flex;box-shadow:0 7px 22px #1f335717}.manage-plan-summary h2{margin:0;font-size:20px;font-weight:500;line-height:20px}.manage-plan-summary p{color:#7b88a2;height:20px;margin:0;font-size:13px;line-height:20px}.manage-plan-summary .tagged-plan-field{align-items:center;gap:5px;display:flex}.manage-plan-summary .plan-meta-tag{height:20px}.more-info-toggle{color:#1f2d47;background:#fff;border:0;border-radius:20px;justify-content:center;align-items:center;gap:9px;width:342px;height:56px;margin-top:12px;padding:0 16px;font-size:14px;font-weight:500;display:flex;box-shadow:0 7px 22px #1f335717}.more-info-toggle i{background:#f3f6fc;border:1px solid #dbe5f7;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;transition:transform .18s,background .18s;display:inline-flex;box-shadow:0 2px 5px #29406b1a}.more-info-toggle i.expanded{background:#eaf0ff;transform:rotate(180deg)}.more-info-toggle img{width:11px;height:11px}.more-plan-info{background:#ffffffc7;border-radius:18px;width:342px;margin-top:10px;padding:7px 16px}.more-plan-info p{border-bottom:1px solid #eef2f8;justify-content:space-between;align-items:center;gap:12px;min-height:38px;margin:0;font-size:12px;display:flex}.more-plan-info p:last-child{border:0}.more-plan-info span{color:#8a98b2}.more-plan-info strong{text-align:right;max-width:215px;font-weight:500}.manage-plan-actions{grid-template-columns:repeat(3,1fr);gap:8px;width:342px;height:48px;margin-top:8px;display:grid}.manage-plan-actions button{color:#7b88a2;background:#fff;border:1px solid #0000;border-radius:14px;font-size:12px}.manage-plan-actions button:nth-child(2){border-color:#e4eaf4}.manage-plan-actions button.delete{color:#f36f6f;border-color:#f36f6f}.manage-plan-hint{color:#7b88a2;text-align:center;width:342px;margin:14px 0 0;font-size:12px}.manage-modal-overlay{z-index:60;background:#00000047;position:absolute;inset:0}.manage-confirm-modal{background:#fff;border-radius:22px;flex-direction:column;gap:14px;width:334px;padding:18px;animation:.2s ease-out modal-in;display:flex;position:absolute;top:299px;left:27px;box-shadow:0 12px 30px #1f335729}.manage-confirm-modal h2{margin:0;font-size:20px;font-weight:500;line-height:1.3}.manage-confirm-modal>p,.defer-date-line{color:#7b88a2;margin:0;font-size:13px;line-height:20px;position:relative}.defer-date-line input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:-8px 0}.manage-confirm-modal>div{gap:10px;height:44px;display:flex}.manage-confirm-modal>div button{color:#7b88a2;background:#fff;border:1px solid #e4eaf4;border-radius:14px;flex:1;font-size:13px;font-weight:500}.manage-confirm-modal>div .confirm-defer{color:#fff;background:#202124;border-color:#202124;border-radius:8px}.manage-confirm-modal>div .confirm-delete{color:#fff;background:#f36f6f;border-color:#f36f6f;border-radius:16px;box-shadow:0 7px 22px #1f335717}.manage-confirm-modal button:disabled{opacity:.6}.edit-plan-page{color:#1f2d47;background:linear-gradient(#f4f7fc 0%,#edf3ff9e 100%)}.edit-plan-page>*{z-index:1;position:relative}@media (width<=438px){.page-home,.page-createPlan,.page-planDetail,.page-editPlan{box-shadow:none;border-radius:0}}.checkin-page{color:#1f2d47;background:linear-gradient(#f4f7fc 0%,#edf3ff9e 100%);height:100%;position:relative;overflow:hidden}.checkin-page:before{content:"";background:linear-gradient(#e2edfff5,#f4f7fc00);height:148px;position:absolute;inset:0 0 auto}.checkin-scroll{z-index:1;height:100%;padding:22px 24px 32px;position:relative;overflow-y:auto}.checkin-back{color:#4f7cff;background:0 0;border:0;height:28px;padding:0;font-size:14px;font-weight:600}.checkin-page h1{margin:12px 0 20px;font-size:24px;font-weight:700;line-height:1.35}.checkin-fields{flex-direction:column;gap:10px;display:flex}.checkin-info-row{background:#fff;border:1px solid #edf1f8;border-radius:16px;align-items:center;gap:6px;width:342px;min-height:52px;padding:0 16px;font-size:14px;display:flex;box-shadow:0 6px 18px #1f33570f}.checkin-info-row span{color:#7b88a2}.checkin-info-row strong{color:#1f2d47;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.checkin-info-row.plain{box-shadow:none;background:0 0;border-color:#0000}.upload-card{background:#fff;border:1px solid #dee5f5;border-radius:18px;width:342px;min-height:170px;margin-top:14px;padding:15px 16px 12px;box-shadow:0 7px 22px #1f335717}.upload-heading{justify-content:space-between;align-items:center;display:flex}.upload-heading>span{align-items:center;gap:7px;font-size:14px;font-weight:600;display:flex}.upload-heading img{width:18px;height:18px}.upload-heading small{color:#8a98b2;font-size:12px}.upload-grid{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.upload-add,.upload-preview{border-radius:14px;width:86px;height:86px;position:relative;overflow:hidden}.upload-add{color:#6484d8;background:#f7f9ff;border:1px dashed #8ca8f0;flex-direction:column;justify-content:center;align-items:center;gap:7px;font-size:12px;display:flex}.upload-add>img{width:22px;height:22px}.upload-preview>img:not(.video-play),.upload-preview>video{object-fit:cover;width:100%;height:100%}.upload-preview .video-play{pointer-events:none;width:24px;height:24px;position:absolute;top:31px;left:31px}.upload-preview>button{z-index:3;background:0 0;border:0;border-radius:50%;place-items:center;width:22px;height:22px;padding:0;display:grid;position:absolute;top:4px;right:4px}.upload-preview>button img{width:22px;height:22px}.upload-preview>button:disabled{opacity:0}.upload-state{z-index:2;color:#fff;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);background:#1924398f;flex-direction:column;justify-content:center;align-items:center;gap:7px;font-size:11px;font-weight:600;display:flex;position:absolute;inset:0}.upload-state i{border:2px solid #ffffff6b;border-top-color:#fff;border-radius:50%;width:22px;height:22px;animation:.8s linear infinite upload-spin}.upload-state.failed{background:#5c262ba3}.upload-state.failed button{color:#fff;background:#ffffff29;border:1px solid #ffffffbd;border-radius:12px;height:30px;padding:0 13px;font-size:11px;font-weight:600}.upload-uploaded{z-index:2;color:#fff;background:#24755bdb;border:1px solid #ffffffd1;border-radius:8px;align-items:center;height:19px;padding:0 7px;font-size:9px;font-weight:600;display:inline-flex;position:absolute;bottom:5px;left:5px;box-shadow:0 2px 6px #1f335729}@keyframes upload-spin{to{transform:rotate(360deg)}}.upload-card>p{color:#9aa5bb;margin:10px 0 0;font-size:11px}.checkin-note{width:342px;height:82px;margin-top:14px;display:block;position:relative}.checkin-note textarea{resize:none;color:#1f2d47;width:100%;height:100%;font:inherit;background:#fff;border:1px solid #edf1f8;border-radius:20px;outline:none;padding:14px 16px 24px;font-size:13px;box-shadow:0 7px 22px #1f335714}.checkin-note textarea:focus{border-color:#8ca8f0}.checkin-note textarea::placeholder{color:#a3aec0}.checkin-note small{color:#a3aec0;font-size:10px;position:absolute;bottom:9px;right:14px}.checkin-submit{color:#fff;background:linear-gradient(90deg,#4f7cff,#79a0ff);border:0;border-radius:16px;width:342px;height:48px;margin-top:20px;font-size:15px;font-weight:700;box-shadow:0 8px 18px #4f7cff47}.checkin-submit:disabled{opacity:.62}.sheet-overlay,.modal-overlay{z-index:50;background:#16213761;position:absolute;inset:0}.upload-sheet{background:#fff;border-radius:20px 20px 0 0;height:312px;padding:16px 24px 24px;animation:.2s ease-out sheet-in;position:absolute;bottom:0;left:0;right:0}.upload-sheet button{color:#1f2d47;text-align:left;background:0 0;border:0;border-bottom:1px solid #eef2f8;align-items:center;gap:14px;width:100%;height:58px;padding:0 8px;font-size:15px;display:flex}.upload-sheet button img{width:24px;height:24px}.upload-sheet .sheet-cancel{color:#6f7f9c;background:#f3f6fc;border:0;border-radius:16px;justify-content:center;height:52px;margin-top:16px}@keyframes sheet-in{0%{transform:translateY(100%)}}.completion-overlay{place-items:center;display:grid}.completion-modal{background:#fff;border-radius:28px;flex-direction:column;align-items:center;width:324px;min-height:360px;padding:28px 24px 24px;animation:.25s ease-out modal-in;display:flex;position:relative;box-shadow:0 20px 50px #14233f38}.completion-close{background:0 0;border:0;place-items:center;width:28px;height:28px;padding:0;display:grid;position:absolute;top:18px;right:18px}.completion-close img{width:24px;height:24px}.success-art{width:112px;height:94px;margin-top:3px;animation:.55s ease-out both success-pop}.completion-modal h2{margin:8px 0 18px;font-size:26px}.encouragement-card{color:#49658d;text-align:center;background:linear-gradient(135deg,#eef4ff,#eefcf7);border-radius:20px;place-items:center;width:276px;min-height:92px;padding:16px 22px;font-size:15px;font-weight:600;line-height:1.65;display:grid}.completion-ok{color:#fff;background:linear-gradient(90deg,#4f7cff,#79a0ff);border:0;border-radius:16px;width:276px;height:52px;margin-top:20px;font-weight:700}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.96)}}@keyframes success-pop{0%{opacity:0;transform:scale(.4)rotate(-8deg)}70%{transform:scale(1.08)rotate(2deg)}to{opacity:1;transform:scale(1)}}.detail-summary,.detail-block,.completion-info{background:#fff;border:1px solid #e7edf7;border-radius:18px;width:342px;box-shadow:0 7px 22px #1f335712}.detail-summary{box-shadow:none;background:#f4f6fa;padding:18px;position:relative}.detail-summary h2{max-width:245px;margin:0 0 10px;font-size:18px}.detail-summary p{color:#7b88a2;margin:0;font-size:12px}.detail-summary-meta{align-items:center;gap:6px;display:flex}.detail-summary-meta small{color:#7b88a2;margin-left:2px;font-size:11px}.detail-summary>span{color:#42a56e;background:#eaf7f0;border-radius:10px;padding:5px 9px;font-size:11px;font-weight:700;position:absolute;top:16px;right:16px}.detail-block{margin-top:14px;padding:16px}.detail-block h3{margin:0 0 12px;font-size:14px}.detail-block>p{color:#5f6f89;margin:0;font-size:13px;line-height:1.6}.detail-empty{color:#9aa5bb!important}.detail-media{gap:8px;display:flex;overflow-x:auto}.detail-media>button{background:#e9eef7;border:0;border-radius:14px;flex:none;width:150px;height:108px;padding:0;position:relative;overflow:hidden}.detail-media img:not(.video-play),.detail-media video{object-fit:cover;width:100%;height:100%}.detail-media .video-play{pointer-events:none;width:30px;height:30px;position:absolute;top:39px;left:60px}.completion-info{margin-top:14px;padding:8px 16px}.completion-info p{border-bottom:1px solid #eef2f8;justify-content:space-between;align-items:center;gap:12px;min-height:42px;margin:0;font-size:12px;display:flex}.completion-info p:last-child{border:0}.completion-info span{color:#8a98b2}.completion-info strong{text-align:right;font-weight:600}.cancel-completion{color:#e05560;background:#fff;border:1px solid #eb6c73;border-radius:16px;width:342px;height:48px;margin-top:20px;font-weight:700}.cancel-modal{text-align:center;background:#fff;border-radius:24px;width:324px;padding:26px 24px 22px;position:absolute;top:283px;left:33px}.cancel-modal h2{margin:0 0 12px;font-size:20px}.cancel-modal>p{color:#7b88a2;margin:0;font-size:13px;line-height:1.6}.cancel-modal>div{gap:10px;margin-top:22px;display:flex}.cancel-modal button{color:#596b88;background:#f2f5fa;border:0;border-radius:14px;flex:1;height:46px}.cancel-modal button.danger{color:#fff;background:#e85d67}.media-viewer{z-index:70;background:#0d1525db;place-items:center;padding:52px 18px 32px;display:grid;position:absolute;inset:0}.media-viewer>div{border-radius:18px;place-items:center;width:100%;max-height:720px;display:grid;overflow:hidden}.media-viewer img,.media-viewer video{object-fit:contain;border-radius:16px;max-width:100%;max-height:720px;display:block}.media-viewer video{background:#000;width:100%}.media-viewer-close{color:#fff;background:#ffffff29;border:0;border-radius:50%;place-items:center;width:38px;height:38px;padding:0 0 3px;font-size:30px;line-height:1;display:grid;position:absolute;top:20px;right:20px}@media (width<=430px){.app-stage{padding:0}.phone-frame{border:0;border-radius:0;width:100vw;height:100dvh}}.upload-add:disabled{cursor:wait;opacity:.76}.upload-card>p.upload-processing{color:#4f7cff;font-weight:600}.upload-submit-hint{color:#7184a6;text-align:center;width:342px;margin:10px 0 0;font-size:11px;line-height:1.55}@media (width>=768px){.app-stage{min-height:100dvh;padding:24px}.phone-frame{border-radius:32px;width:min(720px,100vw - 48px);height:calc(100dvh - 48px);min-height:0}.auth-page{gap:18px;padding:44px 64px}.auth-heading{gap:10px}.auth-heading h1{font-size:32px}.auth-heading p{font-size:16px}.field{gap:9px}.field-label{font-size:15px}.field input,.field select{height:56px;font-size:16px}.register-page{gap:14px}.register-page .auth-heading h1{font-size:30px}.register-page .field input,.register-page .field select{height:52px}.primary-button,.secondary-button{height:52px;font-size:16px}.toast{width:auto;font-size:14px;left:48px;right:48px}.page-home>.toast,.page-createPlan>.toast{width:auto;left:72px;right:72px}.home-page:before,.home-page:after{height:232px}.home-content{gap:26px;padding:32px 40px 40px}.family-content{gap:20px;padding-bottom:40px}.home-page.without-family .profile-header,.home-page.without-family .greeting{width:100%}.home-page.has-family .family-header{border-radius:20px;height:72px;padding:10px 14px}.home-page.has-family .family-header .profile-header{height:52px}.home-page.has-family .family-header .avatar{width:48px;height:48px}.profile-header strong{font-size:18px}.profile-header span{font-size:13px}.greeting h1{font-size:30px}.greeting p{font-size:15px}.child-switch{min-width:150px;max-width:210px;height:44px;padding:0 13px 0 15px}.child-switch-label{font-size:12px}.child-switch strong{font-size:14px}.child-switch-menu{width:248px;top:52px}.child-switch-menu button{min-height:58px}.summary-card,.calendar-card{padding:20px}.summary-card h2{font-size:21px}.calendar-card{gap:15px}.calendar-title{height:38px}.calendar-title button{width:38px;height:36px;font-size:14px}.calendar-title strong{font-size:18px}.calendar-title .today-button{width:88px}.calendar-grid{gap:9px}.week-labels span{height:24px;font-size:13px}.calendar-grid.dates button{border-radius:13px;height:44px;font-size:14px}.calendar-grid.dates button>span{height:18px;line-height:18px}.calendar-date-status{width:14px;height:10px}.calendar-date-status svg{width:12px;height:12px}.calendar-footer{min-height:36px}.calendar-toggle{height:34px;font-size:14px}.calendar-toggle i{width:32px;height:32px}.calendar-legend{gap:8px}.legend-tag{border-radius:10px;gap:5px;height:26px;padding:0 9px;font-size:11px}.add-plan-button{height:52px!important;font-size:16px!important}.list-title{height:34px}.list-title h2{font-size:21px}.list-title span{font-size:13px}.filters{gap:10px}.filters label b{font-size:14px;left:16px}.filters select{background-position:right 15px center;height:42px;padding-left:62px;padding-right:32px;font-size:14px}.plan-list{gap:16px}.plan-card{gap:12px;padding:18px 20px}.plan-card h3{font-size:19px}.plan-card>p{font-size:14px}.plan-card-actions button{min-width:84px;height:36px;padding:0 15px;font-size:13px}.bottom-tabs{flex-basis:76px;gap:20px;padding:9px 40px}.bottom-tabs button{flex:1 1 0;max-width:240px;height:58px;margin:0 auto}.bottom-tabs small{font-size:13px}.page-title{padding:34px 40px 24px}.page-title h1{font-size:30px}.page-title p{font-size:14px}.my-content{gap:20px;padding:30px 40px}.account-overview{gap:16px;padding:22px}.account-overview strong{font-size:20px}.account-overview span{font-size:14px}.menu-row{min-height:68px;padding:18px 22px}.menu-row strong{font-size:17px}.subpage-header{height:84px;padding:14px 32px}.subpage-header h1{font-size:23px}.account-details{gap:20px;padding:32px 40px}.detail-row{min-height:62px;padding:16px 20px}.detail-row span{font-size:14px}.detail-row strong{max-width:420px;font-size:15px}.flow-header{padding:32px 40px 20px}.flow-header h1{margin-top:18px;font-size:32px}.flow-header p{font-size:16px}.flow-content{gap:18px;padding:0 40px 40px}.flow-form{gap:18px}.form-card{gap:19px;padding:24px}.form-card h2{font-size:20px}.flow-field>span{font-size:15px}.flow-field input,.flow-field select,.inline-name-input{height:54px;font-size:16px}.flow-primary,.flow-secondary,.danger-button{min-height:52px;font-size:16px}.flow-menu-row{min-height:82px;padding:18px 22px}.flow-menu-row strong{font-size:17px}.flow-menu-row span{font-size:13px}.member-card{grid-template-columns:54px 1fr auto 14px;min-height:82px;padding:15px 18px}.member-avatar{width:50px;height:50px;font-size:18px}.member-card strong{font-size:16px}.member-card span:not(.member-avatar){font-size:13px}.create-plan-page{gap:16px;padding:32px 40px 40px}.create-plan-page h1{font-size:30px}.plan-back{height:36px;font-size:16px}.plan-form-field{min-height:58px;padding:0 20px;font-size:16px}.plan-form-field input,.plan-form-field select{height:56px}.plan-form-field.note,.plan-form-field textarea{min-height:86px}.plan-form-field textarea{padding:26px 20px}.save-plan-button{height:54px;font-size:16px}.manage-plan-scroll{padding:32px 40px 40px}.manage-plan-back{height:24px;font-size:16px}.manage-plan-page h1{margin:16px 0;font-size:30px;line-height:40px}.manage-plan-summary,.more-info-toggle,.more-plan-info,.manage-plan-actions,.manage-plan-hint{width:100%}.manage-plan-summary{gap:15px;padding:22px 20px}.manage-plan-summary h2{font-size:23px;line-height:28px}.manage-plan-summary p{height:auto;min-height:22px;font-size:15px;line-height:22px}.more-info-toggle{height:62px;font-size:16px}.more-plan-info{padding:9px 20px}.more-plan-info p{min-height:44px;font-size:14px}.more-plan-info strong{max-width:430px}.manage-plan-actions{gap:12px;height:54px}.manage-plan-actions button{font-size:14px}.manage-confirm-modal{width:80%;padding:24px;top:calc(50% - 150px);left:10%}.checkin-scroll{padding:32px 40px 40px}.checkin-back{height:32px;font-size:16px}.checkin-page h1{margin:16px 0 24px;font-size:30px}.checkin-fields{gap:12px}.checkin-info-row,.upload-card,.checkin-note,.checkin-submit,.detail-summary,.detail-block,.completion-info,.cancel-completion,.upload-submit-hint{width:100%}.checkin-info-row{min-height:58px;padding:0 20px;font-size:16px}.upload-card{min-height:190px;margin-top:18px;padding:19px 20px 15px}.upload-heading>span{font-size:16px}.upload-grid{gap:12px;margin-top:16px}.upload-add,.upload-preview{width:96px;height:96px}.upload-preview .video-play{top:36px;left:36px}.checkin-note{height:96px;margin-top:18px}.checkin-note textarea{padding:17px 20px 26px;font-size:15px}.checkin-submit{height:54px;margin-top:24px;font-size:17px}.upload-submit-hint{font-size:13px}.upload-sheet{height:340px;padding:22px 48px 30px}.upload-sheet button{height:64px;font-size:17px}.completion-modal{width:min(520px,100% - 80px);min-height:390px;padding:34px 32px 30px}.encouragement-card,.completion-ok{width:min(400px,100%)}.detail-summary{padding:22px}.detail-summary h2{max-width:calc(100% - 90px);font-size:22px}.detail-summary p{font-size:14px}.detail-block{margin-top:18px;padding:20px}.detail-block h3{font-size:16px}.detail-block>p{font-size:15px}.detail-media{gap:12px}.detail-media>button{width:190px;height:136px}.detail-media .video-play{top:53px;left:80px}.completion-info{margin-top:18px;padding:10px 20px}.completion-info p{min-height:48px;font-size:14px}.cancel-completion{height:54px;margin-top:24px;font-size:16px}.cancel-modal{width:80%;padding:30px 32px 26px;top:calc(50% - 145px);left:10%}.media-viewer{padding:64px 32px 40px}.media-viewer>div,.media-viewer img,.media-viewer video{max-height:calc(100dvh - 160px)}}
