:root{--accent: #f07a4b;--teal: #2f9e8f;--bg: #faf6f0;--page-bg: #f0e8db;--card: #ffffff;--ink: #3d3a37;--ink-2: #8a847d;--line: #eee7de;--accent-soft: #fdeee6;--teal-soft: #e4f4f1;--yellow-soft: #fdf3d8;--red: #c0392b;--red-soft: #fdecea;--orange-text: #c05a2e;--teal-text: #1f6e63;--yellow-text: #7a5c12;--banner-text: #7a3d12;--shadow: 0 1px 2px rgba(60, 40, 20, .04);--sheet-shadow: 0 10px 40px rgba(60, 40, 20, .08);--radius: 16px;--chart-band: #fdeee6;--chart-median: #f07a4b;--chart-user: #2f9e8f;--chart-grid: #eee7de;--chart-axis: #8a847d}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #1a1815;--page-bg: #100f0d;--card: #242220;--ink: #e8e4de;--ink-2: #9a948c;--line: #3a3733;--accent-soft: #3a2a1f;--teal-soft: #1f3733;--yellow-soft: #3a3320;--red: #e74c3c;--red-soft: #3a1f1f;--orange-text: #ff9a6e;--teal-text: #5ec4b5;--yellow-text: #d4b96a;--banner-text: #e8b87a;--shadow: 0 1px 2px rgba(0, 0, 0, .3);--chart-band: #3a2a1f;--chart-median: #f07a4b;--chart-user: #5ec4b5;--chart-grid: #3a3733;--chart-axis: #9a948c}}:root[data-theme=dark]{--bg: #1a1815;--page-bg: #100f0d;--card: #242220;--ink: #e8e4de;--ink-2: #9a948c;--line: #3a3733;--accent-soft: #3a2a1f;--teal-soft: #1f3733;--yellow-soft: #3a3320;--red: #e74c3c;--red-soft: #3a1f1f;--orange-text: #ff9a6e;--teal-text: #5ec4b5;--yellow-text: #d4b96a;--banner-text: #e8b87a;--shadow: 0 1px 2px rgba(0, 0, 0, .3);--chart-band: #3a2a1f;--chart-median: #f07a4b;--chart-user: #5ec4b5;--chart-grid: #3a3733;--chart-axis: #9a948c}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;transition:background .3s ease,color .3s ease}.app{max-width:640px;margin:0 auto;padding:16px 14px 96px}@media (min-width: 900px){.app{max-width:780px}}@media (min-width: 1200px){body{background:var(--page-bg)}.app{max-width:1120px;margin:40px auto;padding:40px 48px 64px;display:grid;grid-template-columns:250px minmax(0,740px);gap:64px;justify-content:center;align-items:start;background:var(--bg);border:1px solid var(--line);border-radius:24px;box-shadow:var(--sheet-shadow);min-height:calc(100vh - 80px)}.app>.sidebar{position:sticky;top:32px}.app>.main-col{max-width:none}}.topbar{display:flex;align-items:center;gap:12px;margin-bottom:14px}.avatar{width:48px;height:48px;border-radius:16px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:26px;flex:none}.topbar .who{flex:1;min-width:0}.topbar h1{font-size:18px;margin:0}.topbar .age{color:var(--ink-2);font-size:13px;margin-top:2px}.link-btn{background:none;border:none;color:var(--teal);cursor:pointer;font-size:13px;padding:6px 8px;flex:none}.theme-btn{background:var(--card);border:1px solid var(--line);border-radius:10px;cursor:pointer;font-size:16px;padding:6px 8px;flex:none;line-height:1}h2.page{font-size:17px;margin:4px 0 12px}.card{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow);border:1px solid var(--line)}.card.sec h3{font-size:15px;margin:0 0 10px;display:flex;align-items:center;gap:6px}.nav{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:6px 0 max(8px,env(safe-area-inset-bottom));z-index:10}.nav button{background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:var(--ink-2);cursor:pointer;padding:4px 12px;border-radius:10px}.nav button.active{color:var(--accent)}.nav button .ico{font-size:20px}@media (min-width: 1200px){.nav{position:static;border-top:none;flex-direction:column;gap:4px;padding:0;background:transparent}.nav button{flex-direction:row;justify-content:flex-start;gap:10px;font-size:14px;padding:12px 16px;border-radius:12px;width:100%}.nav button.active{background:var(--accent-soft);color:var(--orange-text)}.nav button .ico{font-size:18px}.mobile-nav,.mobile-only{display:none!important}}@media (max-width: 1199px){.sidebar{display:none!important}.app{display:block!important}}@media (max-width: 1199px){.mobile-nav{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:6px 0 max(8px,env(safe-area-inset-bottom));z-index:10}.mobile-nav button{background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:var(--ink-2);cursor:pointer;padding:4px 12px;border-radius:10px}.mobile-nav button.active{color:var(--accent)}.mobile-nav button .ico{font-size:20px}}.stage-picker{display:flex;gap:8px;align-items:center;margin-bottom:10px}.stage-select{flex:1;min-width:0;padding:9px 10px;border-radius:10px;border:1px solid var(--line);font-size:14px;background:var(--card);color:var(--ink);-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.stage-picker .chip{flex:none}.chip{flex:none;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:12px;color:var(--ink-2);cursor:pointer;transition:background .2s,color .2s}.chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.chip.now{border-color:var(--teal);color:var(--teal-text);font-weight:600}.home-banner{display:block;width:100%;text-align:left;border:none;border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.6;cursor:pointer;margin-bottom:12px;transition:opacity .2s}.home-banner.backup{background:var(--yellow-soft);color:var(--yellow-text)}.home-banner.stage{background:var(--teal-soft);color:var(--teal-text)}.home-banner.vaccine{background:var(--accent-soft);color:var(--orange-text)}.home-banner.vaccine.urgent{background:var(--red-soft);color:var(--red)}.banner{background:linear-gradient(120deg,var(--accent-soft),var(--yellow-soft));color:var(--banner-text);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px;font-size:13.5px;line-height:1.6}.section-collapse{border-bottom:1px solid var(--line)}.section-collapse:last-child{border-bottom:none}.section-collapse .sec-head{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;background:none;border:none;width:100%;text-align:left;font-family:inherit}.section-collapse .sec-head:focus-visible{outline:2px solid var(--teal);outline-offset:-2px;border-radius:10px}.section-collapse .sec-head .sec-title{flex:1;font-size:15px;font-weight:600}.section-collapse .sec-head .sec-arrow{font-size:12px;color:var(--ink-2);transition:transform .2s ease}.section-collapse.open .sec-arrow{transform:rotate(90deg)}.section-collapse .sec-body{overflow:hidden;max-height:0;transition:max-height .3s ease}.section-collapse.open .sec-body{max-height:3000px}.section-collapse .sec-body-inner{padding:0 16px 20px}ul.list{margin:0;padding-left:18px;font-size:14px;line-height:1.8;color:var(--ink)}.kv{display:flex;gap:10px;font-size:13.5px;line-height:1.65;margin-bottom:8px}.kv b{flex:none;color:var(--teal-text);font-weight:600;min-width:4.5em}.task-item{margin-bottom:14px;padding:10px 12px;border-radius:10px;background:var(--bg);border:1px solid var(--line)}.task-item:last-child{margin-bottom:0}.task-item .task-title{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:4px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.task-item .task-detail{font-size:13px;color:var(--ink-2);line-height:1.7}.activity-item{margin-bottom:12px;padding:10px 12px;border-radius:10px;background:var(--bg);border:1px solid var(--line)}.activity-item:last-child{margin-bottom:0}.activity-item .act-name{font-size:13.5px;font-weight:600;color:var(--teal-text);margin-bottom:4px}.activity-item .act-how{font-size:13px;color:var(--ink);line-height:1.7}.tips{background:var(--yellow-soft);border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.7;margin-top:8px;color:var(--ink)}.pills{display:flex;flex-wrap:wrap;gap:6px}.pill{background:var(--teal-soft);color:var(--teal-text);padding:4px 10px;border-radius:999px;font-size:12.5px}.pill.orange{background:var(--accent-soft);color:var(--orange-text)}.recipes .r{border-left:3px solid var(--accent);padding:2px 0 2px 10px;margin-bottom:8px}.recipes .r b{font-size:13.5px}.recipes .r p{margin:2px 0 0;font-size:13px;color:var(--ink-2);line-height:1.55}.flags{background:var(--red-soft);color:var(--red);border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.7;margin-bottom:10px}.flags ul.list li::marker{color:var(--red)}.form{display:flex;flex-direction:column;gap:12px}.form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink-2)}.form input,.form select{padding:10px 12px;border-radius:10px;border:1px solid var(--line);font-size:15px;background:var(--card);color:var(--ink)}.form input:focus,.form select:focus{outline:2px solid var(--teal);outline-offset:-1px}.form select,.stage-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a847d' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}.date-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--line);font-size:15px;background:var(--card);color:var(--ink);cursor:pointer;text-align:left}.date-btn .cal-ico{font-size:15px;opacity:.75}.cal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.cal-pop{position:fixed;z-index:41;width:304px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 30px #00000038;padding:12px}.cal-head{display:flex;align-items:center;gap:4px;margin-bottom:8px}.cal-head button{width:28px;height:28px;border:none;border-radius:8px;background:var(--bg);color:var(--ink-2);font-size:14px;cursor:pointer}.cal-head button:hover{background:var(--accent-soft);color:var(--orange-text)}.cal-title{flex:1;text-align:center;font-size:14px;font-weight:600}.cal-week{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:2px}.cal-week span{text-align:center;font-size:11px;color:var(--ink-2);padding:4px 0}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-day{height:36px;border:none;border-radius:8px;background:none;color:var(--ink);font-size:13px;cursor:pointer}.cal-day:hover{background:var(--accent-soft)}.cal-day.today{box-shadow:inset 0 0 0 1.5px var(--teal)}.cal-day.sel{background:var(--accent);color:#fff;font-weight:600}.cal-day:disabled{opacity:.3;cursor:default}.cal-foot{display:flex;gap:8px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}.cal-foot button{flex:1;padding:7px;border:none;border-radius:8px;background:var(--teal-soft);color:var(--teal-text);font-size:13px;cursor:pointer}@media print{body{background:#fff!important}.app{max-width:100%!important;margin:0!important;padding:0!important;display:block!important;background:#fff!important;border:none!important;border-radius:0!important;box-shadow:none!important;min-height:auto!important}.nav,.mobile-nav,.mobile-only,.sidebar,.subpage-bar,.home-banner,.backup-banner,.theme-btn,.no-print,.cal-pop,.cal-backdrop,.search-bar{display:none!important}.card{box-shadow:none!important;border:1px solid #ddd!important;break-inside:avoid;background:#fff!important}.banner{background:none!important;border:1px solid #ddd!important;color:#333!important}.flags{background:#fff!important;border:1px solid #c0392b!important;color:#c0392b!important}.tips{background:none!important;border:1px dashed #ddd!important}*{print-color-adjust:exact;-webkit-print-color-adjust:exact}}.btn{padding:12px;border-radius:12px;border:none;background:var(--accent);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .2s}.btn:active{opacity:.8}.btn.ghost{background:var(--card);color:var(--accent);border:1px solid var(--accent)}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.progress{height:8px;background:var(--line);border-radius:999px;overflow:hidden;margin:8px 0 6px}.progress>div{height:100%;background:var(--teal);border-radius:999px;transition:width .4s ease}.check-row{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px dashed var(--line);font-size:14px;line-height:1.6;cursor:pointer}.check-row:last-child{border-bottom:none}.check-row input{width:18px;height:18px;margin-top:2px;accent-color:var(--teal);flex:none}.check-row input:checked+span{color:var(--ink-2)}.dim-tag{font-size:11px;color:#fff;background:var(--teal);padding:1px 8px;border-radius:999px;margin-right:6px;white-space:nowrap}.vac-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line);cursor:pointer}.vac-item:last-child{border-bottom:none}.vac-item .info{flex:1;min-width:0}.vac-item .nm{font-size:14px;font-weight:600}.vac-item .dt{font-size:12px;color:var(--ink-2);margin-top:1px}.tag{font-size:11px;padding:2px 8px;border-radius:999px;white-space:nowrap;flex:none}.tag.done{background:var(--teal-soft);color:var(--teal-text)}.tag.due{background:var(--accent-soft);color:var(--orange-text)}.tag.future{background:var(--bg);color:var(--ink-2);border:1px solid var(--line)}.tag.over{background:var(--red-soft);color:var(--red)}.tag.st-ok{background:var(--teal-soft);color:var(--teal-text)}.tag.st-watch{background:var(--yellow-soft);color:var(--yellow-text)}.tag.st-bad{background:var(--red-soft);color:var(--red)}.moment-row{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px dashed var(--line)}.moment-row:last-child{border-bottom:none}.moment-row>button{background:none;border:none;color:var(--red);cursor:pointer;font-size:12px;padding:4px}.moment-dot{font-size:18px;flex:none}.tool-item{display:flex;align-items:center;gap:12px;width:100%;background:none;border:none;padding:14px 10px;border-bottom:1px dashed var(--line);cursor:pointer;text-align:left}.tool-item:last-child{border-bottom:none}.tool-ico{font-size:24px;flex:none}.tool-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.tool-text b{font-size:14.5px;color:var(--ink)}.tool-text span{font-size:12px;color:var(--ink-2)}.tool-arrow{font-size:20px;color:var(--ink-2);flex:none}.subpage-bar{display:flex;align-items:center;gap:8px;margin-bottom:10px}.subpage-bar button{background:none;border:none;color:var(--accent);font-size:14px;cursor:pointer;padding:4px 8px}.subpage-bar span{color:var(--ink-2);font-size:13px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#e74c3c;margin-left:6px;vertical-align:middle}.dash-grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 600px){.dash-grid{grid-template-columns:1fr 1fr}.dash-grid .span-2{grid-column:span 2}}.dash-card{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);border:1px solid var(--line)}.dash-card h3{font-size:14px;margin:0 0 10px;color:var(--ink-2);font-weight:500}.dash-card .big-num{font-size:32px;font-weight:700;color:var(--ink);line-height:1.2}.dash-card .big-unit{font-size:14px;color:var(--ink-2)}.dash-card .trend{font-size:12px;margin-top:4px}.search-bar{display:flex;gap:8px;margin-bottom:12px}.search-input{flex:1;padding:10px 14px;border-radius:12px;border:1px solid var(--line);font-size:15px;background:var(--card);color:var(--ink)}.search-input:focus{outline:2px solid var(--teal);outline-offset:-1px}.search-result{padding:10px 0;border-bottom:1px dashed var(--line);cursor:pointer}.search-result:last-child{border-bottom:none}.search-result .sr-stage{font-size:11px;color:var(--ink-2);margin-bottom:2px}.search-result .sr-text{font-size:13.5px;line-height:1.6}.search-result .sr-text mark{background:var(--yellow-soft);color:inherit;border-radius:3px;padding:0 2px}.growth-entry{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:13px;align-items:center;color:var(--ink)}.growth-entry button{background:none;border:none;color:var(--red);cursor:pointer;font-size:12px;padding:4px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.anim-card{animation:fadeInUp .25s ease both}.anim-card:nth-child(2){animation-delay:.05s}.anim-card:nth-child(3){animation-delay:.1s}.anim-card:nth-child(4){animation-delay:.15s}.anim-card:nth-child(5){animation-delay:.2s}.anim-check{animation:popIn .25s ease both}.empty{text-align:center;color:var(--ink-2);padding:24px 0;font-size:13px}.note{font-size:12px;color:var(--ink-2);line-height:1.7}
