:root{color:#1a2523;font-synthesis:none;text-rendering:optimizelegibility;--color-ink:#1a2523;--color-muted:#68736f;--color-surface:#fff;--color-line:#d9dfdc;--color-primary:#176b5b;--color-primary-strong:#0f5145;--color-secondary:#b85335;--color-soft:#e9f2ef;--shadow-low:0 1px 3px #1626221a;background:#f6f7f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{background:#f6f7f5}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{border:0}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{min-height:100vh;padding-bottom:calc(76px + env(safe-area-inset-bottom))}.app-header{z-index:10;min-height:calc(58px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 20px 0;border-bottom:1px solid var(--color-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;align-items:center;display:flex;position:sticky;top:0}.brand-lockup{align-items:center;gap:10px;display:flex}.brand-mark{background:var(--color-primary);color:#fff;border-radius:7px;place-items:center;width:34px;height:34px;font-size:18px;font-weight:700;display:grid}.brand-lockup div{align-items:baseline;gap:7px;display:flex}.brand-lockup strong{font-size:18px}.brand-lockup div span{color:var(--color-muted);font-size:13px;font-weight:600}.app-main{width:min(100%,720px);margin:0 auto}.page{padding:24px 20px 32px}.page-heading{margin-bottom:28px}.eyebrow{color:var(--color-primary);margin:0 0 5px;font-size:14px;font-weight:650}h1,h2,p{letter-spacing:0}h1{margin:0;font-size:28px;line-height:1.25}h2{margin:0;font-size:18px;line-height:1.4}.section-heading{margin-bottom:12px}.latest-section{margin-bottom:20px}.empty-state{border:1px solid var(--color-line);background:var(--color-surface);box-shadow:var(--shadow-low);text-align:center;border-radius:8px;justify-items:center;padding:32px 22px;display:grid}.empty-state__icon{background:var(--color-soft);width:48px;height:48px;color:var(--color-primary);border-radius:8px;place-items:center;margin-bottom:14px;display:grid}.empty-state strong{margin-bottom:7px;font-size:17px}.empty-state p{max-width:360px;color:var(--color-muted);margin:0;font-size:15px;line-height:1.6}.primary-action{background:var(--color-primary);color:#fff;width:100%;min-height:52px;box-shadow:var(--shadow-low);border-radius:8px;justify-content:center;align-items:center;gap:9px;font-weight:700;text-decoration:none;display:flex}.primary-action:active{background:var(--color-primary-strong)}.secondary-action{border:1px solid var(--color-primary);background:var(--color-surface);width:100%;min-height:48px;color:var(--color-primary);border-radius:8px;justify-content:center;align-items:center;gap:8px;font-weight:700;display:flex}.secondary-action--danger{color:#9d3028;border-color:#b33e32;margin-top:18px}.danger-action{color:#fff;background:#9d3028;border:1px solid #9d3028;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:48px;font-weight:700;display:flex}.auth-page,.onboarding-page,.invite-page{width:min(100%,560px);min-height:100vh;padding:calc(26px + env(safe-area-inset-top)) 20px calc(34px + env(safe-area-inset-bottom));margin:0 auto}.auth-page{flex-direction:column;justify-content:center;display:flex}.invite-page{padding-top:max(26px, env(safe-area-inset-top))}.auth-brand{align-items:center;gap:10px;margin-bottom:30px;display:flex}.auth-brand div{align-items:baseline;gap:7px;display:flex}.auth-brand strong{font-size:20px}.auth-brand div span{color:var(--color-muted);font-size:14px;font-weight:650}.auth-panel,.onboarding-form,.invite-content{border:1px solid var(--color-line);background:var(--color-surface);box-shadow:var(--shadow-low);border-radius:8px;padding:25px 22px}.auth-panel h1{margin-bottom:10px}.auth-panel__icon{background:var(--color-soft);width:50px;height:50px;color:var(--color-primary);border-radius:8px;place-items:center;margin-bottom:16px;display:grid}.auth-lead,.auth-boundary,.field-stack small,.settings-section p{color:var(--color-muted);line-height:1.6}.auth-lead{margin:0 0 22px;font-size:15px}.auth-boundary{text-align:center;margin:18px 0 0;font-size:13px}.segmented-control{border:1px solid var(--color-line);background:#eef1ef;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;min-height:46px;margin-bottom:22px;padding:3px;display:grid}.segmented-control button{min-width:0;min-height:38px;color:var(--color-muted);background:0 0;border-radius:6px;font-size:14px;font-weight:700}.segmented-control button.active{background:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 3px #1e2d291f}.field-stack{gap:8px;margin-bottom:22px;display:grid}.field-stack>span{font-size:15px;font-weight:700}.field-stack input{width:100%;min-height:50px;color:var(--color-ink);background:#fff;border:1px solid #bec8c4;border-radius:8px;outline:none;padding:0 13px;font-size:16px}.field-stack input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #176b5b1f}.field-stack small{font-size:13px}.inline-message{border-radius:7px;margin-bottom:16px;padding:11px 12px;font-size:14px;line-height:1.5}.inline-message--error{color:#8a2f26;background:#fff4f1;border:1px solid #e1b5ad}.inline-message--success{color:#155f50;background:#f0f8f5;border:1px solid #a9cec4}.recovery-code{overflow-wrap:anywhere;color:var(--color-primary-strong);text-align:center;background:#f3f7f5;border:1px dashed #90a49d;border-radius:8px;margin-bottom:14px;padding:16px 13px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:17px;font-weight:750;line-height:1.6;display:block}.consent-check{min-height:48px;color:var(--color-ink);align-items:flex-start;gap:11px;margin:18px 0;font-size:15px;line-height:1.55;display:flex}.consent-check input{width:21px;height:21px;accent-color:var(--color-primary);flex:none;margin:1px 0 0}.consent-check--boxed{border:1px solid var(--color-line);background:#f7f9f8;border-radius:8px;min-height:60px;padding:13px}.privacy-summary{border-left:4px solid var(--color-primary);background:var(--color-soft);margin:4px 0 20px;padding:18px 16px}.section-heading-row{color:var(--color-primary);align-items:center;gap:9px;margin-bottom:10px;display:flex}.privacy-summary p,.settings-section p{margin:10px 0 0;font-size:14px;line-height:1.65}.privacy-summary p svg{vertical-align:-4px;margin-right:5px}.profile-summary{border:1px solid var(--color-line);background:var(--color-surface);border-radius:8px;align-items:center;gap:15px;padding:18px;display:flex}.profile-summary .empty-state__icon{flex:none;margin:0}.profile-summary strong{font-size:18px}.profile-summary p{color:var(--color-muted);margin:4px 0 0;font-size:14px}.settings-section{border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);margin-top:20px;padding:18px}.profile-editor .field-stack{margin:18px 0}.profile-status-row{justify-content:space-between;align-items:center;gap:16px;min-height:62px;margin-top:12px;display:flex}.profile-status-row strong{font-size:17px}.profile-status-row p{margin-top:3px}.profile-status-actions{flex-direction:column;flex:none;align-items:flex-end;display:flex}.profile-family-action{margin-top:16px}.account-actions{gap:12px;margin-top:16px;display:grid}.account-actions .secondary-action--danger{margin-top:0}.security-add{gap:12px;margin-top:18px;display:grid}.security-add .field-stack{margin-bottom:0}.security-group{border-top:1px solid var(--color-line);margin-top:22px;padding-top:18px}.security-group h3{margin:0 0 8px;font-size:16px}.security-list{margin:0;padding:0;list-style:none}.security-list li{border-bottom:1px solid var(--color-line);grid-template-columns:40px minmax(0,1fr) 44px;align-items:center;gap:10px;min-height:76px;display:grid}.security-list li:last-child{border-bottom:0}.security-list__icon{background:var(--color-soft);width:40px;height:40px;color:var(--color-primary);border-radius:8px;place-items:center;display:grid}.security-list__content{gap:3px;min-width:0;display:grid}.security-list__content strong,.security-list__content span{overflow-wrap:anywhere}.security-list__content strong{font-size:15px}.security-list__content span{color:var(--color-muted);font-size:12px;line-height:1.45}.security-list .icon-action{width:44px;height:44px;color:var(--color-muted);background:0 0;border:0;place-items:center;display:grid}.security-list .icon-action--danger{color:#9d3028}.privacy-details{gap:18px;margin-top:14px;display:grid}.privacy-details section{border-top:1px solid var(--color-line);padding-top:14px}.privacy-details section:first-child{border-top:0;padding-top:0}.privacy-details h3{margin:0;font-size:15px}.privacy-details p{margin-top:6px}.confirm-backdrop{z-index:100;padding:16px max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:#121c1a85;align-items:end;display:grid;position:fixed;inset:0}.confirm-dialog{background:var(--color-surface);border-radius:8px;width:min(100%,480px);margin:0 auto;padding:20px;box-shadow:0 16px 44px #0e191647}.confirm-dialog header{grid-template-columns:32px minmax(0,1fr) 44px;align-items:center;gap:8px;display:grid}.confirm-dialog h2{margin:0;font-size:19px}.confirm-dialog__icon{color:#9d3028;place-items:center;width:32px;height:32px;display:grid}.confirm-dialog .icon-action{width:44px;height:44px;color:var(--color-muted);background:0 0;border:0;place-items:center;display:grid}.confirm-dialog>p{color:var(--color-muted);margin:14px 0 20px;line-height:1.65}.confirm-dialog__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (width>=640px){.confirm-backdrop{align-items:center}}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}.quick-actions button,.quick-actions a{border:1px solid var(--color-line);background:var(--color-surface);min-height:64px;color:var(--color-ink);border-radius:8px;justify-content:center;align-items:center;gap:10px;font-weight:650;text-decoration:none;display:flex}.quick-actions>:first-child{color:var(--color-primary)}.quick-actions>:last-child{color:var(--color-secondary)}.status-panel{border:1px solid var(--color-line);background:var(--color-surface);min-height:72px;color:var(--color-muted);text-align:center;border-radius:8px;padding:22px 16px}.measurement-summary{border:1px solid var(--color-line);background:var(--color-surface);box-shadow:var(--shadow-low);border-radius:8px;padding:17px}.measurement-summary__topline{color:var(--color-muted);justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;font-size:13px;display:flex}.measurement-summary__metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.measurement-summary__metrics div{flex-direction:column;min-width:0;display:flex}.measurement-summary__metrics strong{font-size:20px;line-height:1.2}.measurement-summary__metrics span{color:var(--color-muted);margin-top:4px;font-size:11px;line-height:1.35}.measurement-summary>p{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;margin:13px 0 0;font-size:14px;line-height:1.5;overflow:hidden}.subject-banner{border-left:4px solid var(--color-primary);background:var(--color-soft);justify-content:space-between;align-items:center;min-height:52px;margin-bottom:22px;padding:0 14px;display:flex}.subject-banner span{color:var(--color-muted);font-size:14px}.compact-subject{margin-bottom:18px}.subject-switcher{gap:8px;margin-bottom:18px;display:grid}.subject-switcher>span{color:var(--color-muted);align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}.subject-switcher select{background:var(--color-surface);width:100%;min-height:50px;color:var(--color-ink);border:1px solid #bec8c4;border-radius:8px;padding:0 42px 0 13px;font-size:16px;font-weight:700}.view-only-note{color:var(--color-muted);background:#eef1ef;border-left:4px solid #7b8581;margin:0;padding:13px 14px;font-size:14px;line-height:1.6}.metric-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:22px;display:grid}.metric-field{gap:8px;min-width:0;display:grid}.metric-field>span,.field-stack>span{align-items:center;gap:6px;display:flex}.metric-field>span{font-size:14px;font-weight:700}.metric-field>div{position:relative}.metric-field input{width:100%;min-height:54px;color:var(--color-ink);background:#fff;border:1px solid #bec8c4;border-radius:8px;padding:0 65px 0 12px;font-size:20px;font-weight:700}.metric-field div>span{max-width:58px;color:var(--color-muted);text-align:right;font-size:11px;line-height:1.15;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.field-stack textarea{resize:vertical;width:100%;min-height:100px;color:var(--color-ink);border:1px solid #bec8c4;border-radius:8px;padding:12px 13px;line-height:1.55}.form-boundary{color:var(--color-muted);margin:0 0 18px;font-size:13px;line-height:1.55}.history-add{margin-bottom:18px}.history-list{gap:12px;display:grid}.period-control{border:1px solid var(--color-line);background:#eef1ef;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;min-height:48px;margin-bottom:18px;padding:3px;display:grid}.period-control button{min-width:0;min-height:40px;color:var(--color-muted);background:0 0;border-radius:6px;font-size:14px;font-weight:700}.period-control button.active{background:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 3px #1e2d291f}.period-summary{color:var(--color-muted);margin-bottom:20px;font-size:14px}.stats-section,.trend-section,.report-section{border-top:1px solid var(--color-line);margin-top:24px;padding-top:22px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.stats-grid div{border:1px solid var(--color-line);background:var(--color-surface);border-radius:8px;min-width:0;padding:14px}.stats-grid dt,.range-list dt{color:var(--color-muted);font-size:13px}.stats-grid dd{overflow-wrap:anywhere;margin:8px 0 0;font-size:17px;font-weight:750;line-height:1.35}.stats-grid dd small{color:var(--color-muted);margin-top:3px;font-size:12px;font-weight:500;display:block}.range-list{border-top:1px solid var(--color-line);margin:18px 0 0}.range-list div{border-bottom:1px solid var(--color-line);justify-content:space-between;gap:16px;padding:12px 2px;display:flex}.range-list dd{text-align:right;margin:0;font-weight:700}.trend-chart{border:1px solid var(--color-line);background:var(--color-surface);border-radius:8px;margin-top:18px;padding:16px}.trend-chart .section-heading{margin-bottom:10px}.trend-chart__canvas{height:230px;position:relative}.chart-caption{color:var(--color-muted);margin:10px 0 0;font-size:12px;line-height:1.5}.report-header{padding:2px 0 4px}.report-title{color:var(--color-primary);align-items:center;gap:8px;font-size:16px;line-height:1.4;display:flex}.report-meta{border-top:1px solid var(--color-line);margin:16px 0 0}.report-meta div{border-bottom:1px solid var(--color-line);justify-content:space-between;gap:16px;padding:11px 2px;display:flex}.report-meta dt{color:var(--color-muted);font-size:13px}.report-meta dd{text-align:right;margin:0;font-size:14px;font-weight:650}.report-record-list{gap:12px;display:grid}.report-section>.trend-chart+.trend-chart{margin-top:14px}.report-notes ul{color:var(--color-muted);margin:0;padding-left:20px;font-size:14px;line-height:1.7}.report-notes li+li{margin-top:5px}.report-empty{box-shadow:none}.history-list>a{color:inherit;text-decoration:none}.detail-list{border-top:1px solid var(--color-line);margin:18px 0}.detail-list div{border-bottom:1px solid var(--color-line);justify-content:space-between;gap:18px;padding:14px 2px;display:flex}.detail-list dt{color:var(--color-muted)}.detail-list dd{text-align:right;margin:0;font-weight:650}.detail-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.detail-actions .secondary-action--danger{margin-top:0}.family-heading{border-left:4px solid var(--color-primary);background:var(--color-soft);justify-content:space-between;align-items:center;gap:16px;min-height:70px;padding:14px 16px;display:flex}.family-heading div>span,.family-heading>span,.section-copy,.quiet-state{color:var(--color-muted);font-size:14px}.family-heading h2{margin-top:3px;font-size:20px}.family-section{border-top:1px solid var(--color-line);margin-top:26px;padding-top:22px}.family-section>h2{margin-bottom:12px}.family-list{border-top:1px solid var(--color-line);margin:0;padding:0;list-style:none}.family-list li{border-bottom:1px solid var(--color-line);justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:8px 2px;display:flex}.family-list li>span{color:var(--color-muted);text-align:right;font-size:14px}.member-name{flex-wrap:wrap;align-items:center;gap:7px;min-width:0;display:flex}.member-name>span{color:var(--color-muted);align-items:center;gap:3px;font-size:12px;display:inline-flex}.row-actions{flex:none;gap:4px;display:flex}.row-actions button,.text-action{min-height:44px;color:var(--color-primary);background:0 0;border-radius:6px;justify-content:center;align-items:center;gap:5px;padding:0 9px;font-size:13px;font-weight:700;display:inline-flex}.row-actions .danger-text{color:#9d3028}.section-copy{margin:0 0 14px;line-height:1.6}.quiet-state{margin:0;padding:14px 0}.create-family-form{margin-top:22px}.invite-tool{border:1px solid var(--color-line);background:var(--color-surface);border-radius:8px;justify-items:center;gap:16px;margin-top:16px;padding:18px;display:grid}.invite-tool img{aspect-ratio:1;width:min(240px,100%);height:auto}.invite-tool .field-stack{width:100%;margin-bottom:0}.invite-tool textarea{overflow-wrap:anywhere;font-size:13px}.danger-zone h2{font-size:16px}.permission-link{margin-top:16px;text-decoration:none}.permission-note{border-left:4px solid var(--color-primary);background:var(--color-soft);margin-bottom:22px;padding:16px}.permission-note p{color:var(--color-muted);margin:0;font-size:14px;line-height:1.65}.permission-members{gap:14px;display:grid}.permission-members__heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.permission-members__heading .section-heading-row{margin-bottom:0}.permission-members__intro{color:var(--color-muted);margin:0;font-size:14px;line-height:1.65}.permission-list{gap:16px;margin:0;padding:0;list-style:none;display:grid}.permission-list li{border-bottom:1px solid var(--color-line);gap:10px;padding-bottom:16px;display:grid}.permission-member-heading{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:8px 16px;display:flex}.permission-member-heading>div{gap:3px;display:grid}.permission-member-heading span{color:var(--color-muted);font-size:12px}.permission-member-heading>div>strong{font-size:17px}.permission-level-summary{color:var(--color-primary);text-align:right;font-size:13px}.permission-member-question,.permission-level-help{margin:0;font-size:14px;line-height:1.55}.permission-member-question{font-weight:700}.permission-level-help,.permission-list small{color:var(--color-muted)}.permission-control{border:1px solid var(--color-line);background:#eef1ef;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));min-height:46px;padding:3px;display:grid}.permission-control button{min-width:0;min-height:38px;color:var(--color-muted);background:0 0;border-radius:6px;font-size:14px;font-weight:700}.permission-control button.active{background:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 3px #1e2d291f}.invite-content h1{margin-bottom:10px}.invite-icon{background:var(--color-soft);width:52px;height:52px;color:var(--color-primary);border-radius:8px;place-items:center;margin-bottom:18px;display:grid}.bottom-nav{z-index:20;min-height:calc(66px + env(safe-area-inset-bottom));padding:4px max(8px, env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px, env(safe-area-inset-left));border-top:1px solid var(--color-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{min-width:0;min-height:58px;color:var(--color-muted);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:12px;font-weight:600;text-decoration:none;display:flex}.bottom-nav a.router-link-active{color:var(--color-primary)}@media (width>=760px){.app-shell{padding-bottom:32px}.app-header{padding-left:max(24px,50vw - 360px);padding-right:max(24px,50vw - 360px)}.bottom-nav{border:1px solid var(--color-line);border-radius:8px;width:min(100%,720px);min-height:64px;margin:0 auto 24px;padding:0;position:sticky}}@media (width<=370px){.auth-page,.onboarding-page,.invite-page{padding-left:14px;padding-right:14px}.auth-panel,.onboarding-form{padding-left:16px;padding-right:16px}.segmented-control button{font-size:13px}.metric-fields{grid-template-columns:1fr}.period-control button{font-size:13px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
