body { background: #f6f7f2; color: #1a3330; font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif; font-size: calc(var(--rpx) * 28); }
div, span, button, input, textarea, picker, div { box-sizing: border-box; }
button { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; font-size: inherit; line-height: 1.5; text-align: left; }
button::after { border: 0; }
button[disabled] { opacity: .45; }
input, textarea { font-family: inherit; color: inherit; }

.app-shell { min-height: 100vh; padding: calc(var(--rpx) * 28) calc(var(--rpx) * 36) calc(var(--rpx) * 184); color: #223b31; background: #f7f7f0; }
.brand-row, .brand, .utility-row, .profile-link, .hero-top, .section-head, .progress-head, .progress-bottom, .task-row, .question-top, .filter-bar, .sheet-heading, .form-inline, .field, .menu-row, .tools-profile, .scheme-strip, .maintenance-card-top, .maintenance-main, .maintenance-card-foot, .timeline-heading { display: flex; align-items: center; justify-content: space-between; }
.brand-row { gap: calc(var(--rpx) * 20); }.brand { gap: calc(var(--rpx) * 15); }.brand-mark { display: flex; align-items: center; justify-content: center; height: calc(var(--rpx) * 63); width: calc(var(--rpx) * 63); background: #285e49; color: #fff; border-radius: calc(var(--rpx) * 21) calc(var(--rpx) * 21) calc(var(--rpx) * 21) calc(var(--rpx) * 5); font-size: calc(var(--rpx) * 32); }.brand-name { display: block; font-size: calc(var(--rpx) * 35); font-weight: 650; line-height: 1.2; letter-spacing: calc(var(--rpx) * 5); }.brand-sub { display: block; font-size: calc(var(--rpx) * 12); letter-spacing: calc(var(--rpx) * 1.7); color: #81917d; margin-top: calc(var(--rpx) * 6); white-space: nowrap; }
.program-switch { display: flex; flex-shrink: 0; border: calc(var(--rpx) * 1) solid #dfe5d8; background: #eaeedf; padding: calc(var(--rpx) * 6); border-radius: calc(var(--rpx) * 18); gap: calc(var(--rpx) * 3); }.program-option { text-align: center; min-width: calc(var(--rpx) * 80); font-size: calc(var(--rpx) * 24); color: #8a967c; padding: calc(var(--rpx) * 12) calc(var(--rpx) * 14); border-radius: calc(var(--rpx) * 12); }.program-option.selected { background: #fff; color: #2a6046; font-weight: 600; box-shadow: 0 calc(var(--rpx) * 3) calc(var(--rpx) * 8) #26452d0a; }
.utility-row { gap: calc(var(--rpx) * 16); margin: calc(var(--rpx) * 24) 0 calc(var(--rpx) * 43); padding-top: calc(var(--rpx) * 21); border-top: calc(var(--rpx) * 1) solid #e8ebdf; }.profile-link { justify-content: flex-start; min-width: 0; gap: calc(var(--rpx) * 9); font-size: calc(var(--rpx) * 21); color: #7c8c74; line-height: 1.6; }.profile-arrow { flex-shrink: 0; margin-left: calc(var(--rpx) * 5); }.tools-button { flex-shrink: 0; width: calc(var(--rpx) * 52); height: calc(var(--rpx) * 38); border: calc(var(--rpx) * 1) solid #dce3d1; border-radius: calc(var(--rpx) * 12); font-size: calc(var(--rpx) * 30); color: #758967; text-align: center; line-height: calc(var(--rpx) * 25); }
.tiny-dot, .dot { display: inline-block; width: calc(var(--rpx) * 9); height: calc(var(--rpx) * 9); border-radius: 50%; background: #6f9272; flex-shrink: 0; }.intro { margin-bottom: calc(var(--rpx) * 29); }.eyebrow { display: block; font-size: calc(var(--rpx) * 17); font-weight: 550; letter-spacing: calc(var(--rpx) * 3); color: #8f9a7e; margin-bottom: calc(var(--rpx) * 17); }.page-title { display: block; font-size: calc(var(--rpx) * 45); line-height: 1.5; letter-spacing: calc(var(--rpx) * -1); font-weight: 650; }.title-break { display: block; }.subtitle { display: block; font-size: calc(var(--rpx) * 24); line-height: 1.85; color: #85917c; margin-top: calc(var(--rpx) * 15); }
.module-switch { display: flex; gap: calc(var(--rpx) * 6); border-bottom: calc(var(--rpx) * 1) solid #dfe5d5; margin: 0 0 calc(var(--rpx) * 26); }.module-option { flex: 1; text-align: center; font-size: calc(var(--rpx) * 25); color: #8e9a82; padding: calc(var(--rpx) * 20) calc(var(--rpx) * 4) calc(var(--rpx) * 19); border-bottom: calc(var(--rpx) * 4) solid transparent; }.module-option.selected { color: #2c674c; font-weight: 600; border-bottom-color: #2c674c; }
.scheme-strip { border: calc(var(--rpx) * 1) solid #e5e9da; border-radius: calc(var(--rpx) * 19); padding: calc(var(--rpx) * 20) calc(var(--rpx) * 24); margin-bottom: calc(var(--rpx) * 23); background: #fff; }.strip-label { display: block; font-size: calc(var(--rpx) * 19); color: #96a087; margin-bottom: calc(var(--rpx) * 3); }.strip-title { display: block; font-size: calc(var(--rpx) * 25); color: #526d48; }.text-link { font-size: calc(var(--rpx) * 22); color: #5a805a; flex-shrink: 0; }.category-selector { margin: calc(var(--rpx) * 20) 0 calc(var(--rpx) * 26); }.ttps-options { display: flex; gap: calc(var(--rpx) * 12); }.ttps-option { flex: 1; min-width: 0; border: calc(var(--rpx) * 1) solid #d9e5e0; background: #fff; padding: calc(var(--rpx) * 19) calc(var(--rpx) * 15); border-radius: calc(var(--rpx) * 18); }.ttps-option.selected { background: #e5eeea; border-color: #759e90; }.ttps-name { display: block; font-size: calc(var(--rpx) * 26); font-weight: 600; color: #416d61; }.ttps-description { display: block; font-size: calc(var(--rpx) * 19); color: #8b9c93; line-height: 1.7; margin-top: calc(var(--rpx) * 8); }
.assessment-card { border: calc(var(--rpx) * 1) solid #dee6cf; background: #edf1e3; border-radius: calc(var(--rpx) * 25); padding: calc(var(--rpx) * 29); }.assessment-card.warm { background: #f4eedf; border-color: #eadfc5; }.assessment-card.danger { background: #f6eae2; border-color: #ebd7c9; }.card-eyebrow { display: flex; align-items: center; gap: calc(var(--rpx) * 11); color: #879577; font-size: calc(var(--rpx) * 20); letter-spacing: calc(var(--rpx) * 1); }.status-dot { width: calc(var(--rpx) * 10); height: calc(var(--rpx) * 10); border-radius: 50%; background: #8eaa73; }.assessment-title { display: block; font-size: calc(var(--rpx) * 34); font-weight: 600; line-height: 1.65; margin: calc(var(--rpx) * 15) 0 calc(var(--rpx) * 9); }.assessment-detail { display: block; color: #899579; font-size: calc(var(--rpx) * 23); line-height: 1.9; }.assessment-metrics { display: flex; gap: calc(var(--rpx) * 42); margin: calc(var(--rpx) * 27) 0; }.assessment-metrics > div { flex: 1; min-width: 0; }.metric-value { display: block; font-size: calc(var(--rpx) * 50); line-height: 1.2; font-weight: 550; }.metric-denom { font-size: calc(var(--rpx) * 24); color: #8c9e7b; font-weight: 400; }.metric-label { display: block; font-size: calc(var(--rpx) * 20); color: #8d9a7e; margin-top: calc(var(--rpx) * 10); line-height: 1.8; }.assessment-foot { display: block; font-size: calc(var(--rpx) * 20); color: #879578; line-height: 1.9; border-top: calc(var(--rpx) * 1) solid #87957824; padding-top: calc(var(--rpx) * 20); }
.gap-card { border: calc(var(--rpx) * 1) solid #eadfc9; background: #fbf6eb; border-radius: calc(var(--rpx) * 18); padding: calc(var(--rpx) * 22) calc(var(--rpx) * 25); margin-top: calc(var(--rpx) * 18); }.gap-title { display: block; font-size: calc(var(--rpx) * 23); color: #9a8050; margin-bottom: calc(var(--rpx) * 7); font-weight: 550; }.gap-item { display: block; font-size: calc(var(--rpx) * 22); color: #a08e6d; line-height: 1.9; }.section-head { gap: calc(var(--rpx) * 15); margin: calc(var(--rpx) * 35) 0 calc(var(--rpx) * 21); }.section-head.compact { margin: 0 0 calc(var(--rpx) * 27); }.section-title { font-size: calc(var(--rpx) * 29); font-weight: 600; }.section-title.small { font-size: calc(var(--rpx) * 25); }.section-caption { font-size: calc(var(--rpx) * 20); color: #98a18b; }
.question-card { width: 100%; padding: calc(var(--rpx) * 26); background: #fff; border: calc(var(--rpx) * 1) solid #e4e9db; border-radius: calc(var(--rpx) * 22); margin-bottom: calc(var(--rpx) * 16); }.question-top { gap: calc(var(--rpx) * 13); }.tier-tag { display: inline-block; color: #758a62; background: #edf2e5; font-size: calc(var(--rpx) * 19); border-radius: calc(var(--rpx) * 7); padding: calc(var(--rpx) * 5) calc(var(--rpx) * 11); line-height: 1.5; }.answer-badge { font-size: calc(var(--rpx) * 20); color: #a2ab95; flex-shrink: 0; }.answer-badge.yes { color: #54815e; }.answer-badge.unknown { color: #b39459; }.answer-badge.no { color: #b17c63; }.answer-chevron { font-size: calc(var(--rpx) * 26); margin-left: calc(var(--rpx) * 13); }.question-title { display: block; font-size: calc(var(--rpx) * 27); line-height: 1.8; font-weight: 550; margin: calc(var(--rpx) * 17) 0 calc(var(--rpx) * 6); }.question-detail { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: calc(var(--rpx) * 22); line-height: 1.9; color: #8d9b7e; }
.progress-card { border: calc(var(--rpx) * 1) solid #e4e9da; background: #fff; border-radius: calc(var(--rpx) * 22); padding: calc(var(--rpx) * 27); }.progress-number { font-size: calc(var(--rpx) * 47); font-weight: 550; }.progress-total { font-size: calc(var(--rpx) * 22); color: #949f89; }.percent { font-size: calc(var(--rpx) * 27); color: #55774a; }.progress-track { height: calc(var(--rpx) * 10); background: #edf1e6; border-radius: calc(var(--rpx) * 10); overflow: hidden; margin-top: calc(var(--rpx) * 22); }.progress-fill { height: 100%; border-radius: calc(var(--rpx) * 10); background: #7e9b68; transition: width .2s; }.progress-bottom { color: #8c9b7d; font-size: calc(var(--rpx) * 20); gap: calc(var(--rpx) * 8); margin-top: calc(var(--rpx) * 21); }.dot { width: calc(var(--rpx) * 9); height: calc(var(--rpx) * 9); margin-right: calc(var(--rpx) * 7); }.todo-dot { background: #c6d0b8; }.doing-dot { background: #cfb577; }.muted { font-size: calc(var(--rpx) * 20); color: #9ba58d; }
.task-list { background: #fff; border: calc(var(--rpx) * 1) solid #e4e9da; border-radius: calc(var(--rpx) * 23); overflow: hidden; }.spaced { margin-top: calc(var(--rpx) * 22); }.task-row { padding: calc(var(--rpx) * 25) calc(var(--rpx) * 23); min-height: calc(var(--rpx) * 126); gap: calc(var(--rpx) * 18); border-bottom: calc(var(--rpx) * 1) solid #eff1e8; }.task-row:last-child { border-bottom: 0; }.check { display: flex; align-items: center; justify-content: center; flex-shrink: 0; height: calc(var(--rpx) * 42); width: calc(var(--rpx) * 42); border: calc(var(--rpx) * 2) solid #d5ddc9; border-radius: calc(var(--rpx) * 12); color: #fff; font-size: calc(var(--rpx) * 26); }.check.checked { background: #327354; border-color: #327354; }.check.in-progress { background: #faf4df; border-color: #ccb477; color: #b39551; font-size: calc(var(--rpx) * 36); }.check.not-applicable { background: #eff1e9; border-color: #dfe4d5; color: #a2ac93; }.task-body { flex: 1; min-width: 0; }.task-title { display: block; font-size: calc(var(--rpx) * 26); line-height: 1.75; }.task-meta { display: block; color: #97a18c; font-size: calc(var(--rpx) * 19); line-height: 1.8; margin-top: calc(var(--rpx) * 5); }.task-more { color: #a1ae92; font-size: calc(var(--rpx) * 35); width: calc(var(--rpx) * 28); text-align: center; flex-shrink: 0; }.completed-text { color: #94a085; }
.maintenance-hero, .renewal-hero { color: #fff; border-radius: calc(var(--rpx) * 27); padding: calc(var(--rpx) * 31); background: #275640; overflow: hidden; }.hero-top { position: relative; gap: calc(var(--rpx) * 15); }.hero-kicker { color: #d0e0c5; font-size: calc(var(--rpx) * 23); letter-spacing: calc(var(--rpx) * 2); }.hero-tag { color: #bfd0b7; font-size: calc(var(--rpx) * 18); padding: calc(var(--rpx) * 6) calc(var(--rpx) * 12); border: calc(var(--rpx) * 1) solid #ffffff30; border-radius: calc(var(--rpx) * 20); flex-shrink: 0; }.score-row { display: flex; align-items: baseline; gap: calc(var(--rpx) * 12); margin-top: calc(var(--rpx) * 23); }.score-value { font-size: calc(var(--rpx) * 112); line-height: 1.15; font-weight: 400; letter-spacing: calc(var(--rpx) * -4); }.score-unit { font-size: calc(var(--rpx) * 26); color: #a9c39b; }.score-description { display: flex; flex: 1; align-items: flex-end; flex-direction: column; gap: calc(var(--rpx) * 9); color: #c1d3b6; font-size: calc(var(--rpx) * 21); line-height: 1.7; }.hero-divider { height: calc(var(--rpx) * 1); background: #ffffff24; margin: calc(var(--rpx) * 27) 0 calc(var(--rpx) * 23); }.hero-stats { display: flex; }.hero-stats > div { flex: 1; min-width: 0; }.hero-stats > div + div { border-left: calc(var(--rpx) * 1) solid #ffffff25; padding-left: calc(var(--rpx) * 27); }.hero-stat-value { display: block; font-size: calc(var(--rpx) * 37); line-height: 1.25; }.hero-stat-denom { font-size: calc(var(--rpx) * 20); color: #adc49e; margin-left: calc(var(--rpx) * 4); }.hero-stat-label { display: block; margin-top: calc(var(--rpx) * 9); font-size: calc(var(--rpx) * 18); color: #b7cea9; }
.index-note { display: flex; gap: calc(var(--rpx) * 10); align-items: flex-start; color: #97a28a; font-size: calc(var(--rpx) * 19); line-height: 1.8; margin: calc(var(--rpx) * 17) calc(var(--rpx) * 2); }.index-note .tiny-dot { margin-top: calc(var(--rpx) * 12); height: calc(var(--rpx) * 6); width: calc(var(--rpx) * 6); }.notice { display: flex; align-items: flex-start; gap: calc(var(--rpx) * 14); padding: calc(var(--rpx) * 22); border: calc(var(--rpx) * 1) solid #e0e8d2; border-radius: calc(var(--rpx) * 18); background: #eef3e5; color: #7f926c; font-size: calc(var(--rpx) * 22); line-height: 1.9; margin: calc(var(--rpx) * 20) 0; }.notice.warm { border-color: #eadfc7; background: #f8f1e0; color: #a18b5c; }.notice.danger { border-color: #ebd6cb; background: #f8ece6; color: #af7760; }.notice-icon { flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: calc(var(--rpx) * 18); border: calc(var(--rpx) * 1) solid currentColor; border-radius: 50%; width: calc(var(--rpx) * 27); height: calc(var(--rpx) * 27); margin-top: calc(var(--rpx) * 7); }
.category-scroll { width: 100%; white-space: nowrap; margin: calc(var(--rpx) * 20) 0; }.category-pills { display: inline-flex; gap: calc(var(--rpx) * 12); padding: calc(var(--rpx) * 2); }.pill { display: inline-block; color: #8d997d; border: calc(var(--rpx) * 1) solid #dfe6d1; border-radius: calc(var(--rpx) * 30); padding: calc(var(--rpx) * 13) calc(var(--rpx) * 20); font-size: calc(var(--rpx) * 22); white-space: nowrap; }.pill.active { color: #fff; background: #32664b; border-color: #32664b; }.pill-count { font-size: calc(var(--rpx) * 18); opacity: .7; margin-left: calc(var(--rpx) * 11); }.maintenance-card { padding: calc(var(--rpx) * 22) calc(var(--rpx) * 24) 0; background: #fff; border: calc(var(--rpx) * 1) solid #e4e9da; border-radius: calc(var(--rpx) * 22); margin-bottom: calc(var(--rpx) * 17); }.points-label { color: #9bab8b; font-size: calc(var(--rpx) * 18); }.maintenance-main { gap: calc(var(--rpx) * 18); margin: calc(var(--rpx) * 18) 0 calc(var(--rpx) * 21); align-items: flex-start; }.maintenance-main .check { margin-top: calc(var(--rpx) * 5); }.maintenance-main .task-more { margin-top: calc(var(--rpx) * 1); }.maintenance-detail { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; color: #94a085; font-size: calc(var(--rpx) * 21); line-height: 1.9; margin-top: calc(var(--rpx) * 7); }.maintenance-card-foot { border-top: calc(var(--rpx) * 1) solid #eef1e6; padding: calc(var(--rpx) * 16) 0; gap: calc(var(--rpx) * 10); }.item-status { color: #a0aa95; font-size: calc(var(--rpx) * 20); }.item-status.done { color: #66915c; }.item-status.doing { color: #b09a61; }.review-date { color: #a5af98; font-size: calc(var(--rpx) * 18); text-align: right; }.review-date.stale { color: #b39b64; }
.hero-edit { flex-shrink: 0; color: #d2e2c7; font-size: calc(var(--rpx) * 20); border: calc(var(--rpx) * 1) solid #ffffff35; border-radius: calc(var(--rpx) * 28); padding: calc(var(--rpx) * 8) calc(var(--rpx) * 13); }.countdown { display: flex; align-items: center; gap: calc(var(--rpx) * 24); margin-top: calc(var(--rpx) * 25); }.days { font-size: calc(var(--rpx) * 108); font-weight: 400; letter-spacing: calc(var(--rpx) * -5); line-height: 1.15; }.days-label { display: flex; flex-direction: column; gap: calc(var(--rpx) * 12); font-size: calc(var(--rpx) * 21); color: #c1d3b7; padding-top: calc(var(--rpx) * 10); }.days-label span:first-child { font-size: calc(var(--rpx) * 26); color: #e6efd9; }.hero-status { display: block; font-size: calc(var(--rpx) * 28); font-weight: 550; }.hero-caption { display: block; font-size: calc(var(--rpx) * 21); line-height: 1.9; color: #b3ccaa; margin-top: calc(var(--rpx) * 9); }
.window-strip { display: flex; align-items: center; border: calc(var(--rpx) * 1) solid #e3e8d8; border-radius: calc(var(--rpx) * 21); background: #fff; padding: calc(var(--rpx) * 22) calc(var(--rpx) * 13); margin-top: calc(var(--rpx) * 20); }.window-strip > div { flex: 1; min-width: 0; text-align: center; }.window-number { display: block; font-size: calc(var(--rpx) * 35); color: #456e3f; }.window-number span { font-size: calc(var(--rpx) * 19); margin-left: calc(var(--rpx) * 5); color: #879d73; }.window-label { display: block; font-size: calc(var(--rpx) * 17); color: #9aa58c; margin-top: calc(var(--rpx) * 4); }.window-line { height: calc(var(--rpx) * 37); width: calc(var(--rpx) * 1); background: #e7ecdd; }.timeline-card { padding: calc(var(--rpx) * 26); border: calc(var(--rpx) * 1) solid #e4e9da; border-radius: calc(var(--rpx) * 23); background: #fff; margin-top: calc(var(--rpx) * 22); }.timeline { margin: 0 0 0 calc(var(--rpx) * 10); }.timeline-item { position: relative; padding: 0 0 calc(var(--rpx) * 24) calc(var(--rpx) * 28); border-left: calc(var(--rpx) * 2) solid #dbe5d0; }.timeline-item:last-child { padding-bottom: 0; border-left-color: transparent; }.timeline-dot { width: calc(var(--rpx) * 13); height: calc(var(--rpx) * 13); border: calc(var(--rpx) * 3) solid #fff; background: #8aab72; box-shadow: 0 0 0 calc(var(--rpx) * 1) #b6cba1; border-radius: 50%; position: absolute; top: calc(var(--rpx) * 8); left: calc(var(--rpx) * -7); }.timeline-item.past .timeline-dot { background: #c4cdb7; box-shadow: 0 0 0 calc(var(--rpx) * 1) #dde4d2; }.timeline-item.current .timeline-dot { background: #356e48; box-shadow: 0 0 0 calc(var(--rpx) * 4) #e3edd8; }.timeline-heading { align-items: flex-start; gap: calc(var(--rpx) * 12); }.timeline-title { font-size: calc(var(--rpx) * 22); color: #687f57; line-height: 1.75; }.timeline-date { font-size: calc(var(--rpx) * 20); color: #99a48b; line-height: 1.9; flex-shrink: 0; }.timeline-detail { display: block; color: #a0aa94; font-size: calc(var(--rpx) * 19); line-height: 1.9; margin-top: calc(var(--rpx) * 5); }
.setup-strip { display: flex; align-items: center; gap: calc(var(--rpx) * 19); background: #ecf1e1; border: calc(var(--rpx) * 1) solid #dfe7d1; padding: calc(var(--rpx) * 24); border-radius: calc(var(--rpx) * 21); width: 100%; margin-top: calc(var(--rpx) * 22); }.small-icon { display: flex; align-items: center; justify-content: center; height: calc(var(--rpx) * 62); width: calc(var(--rpx) * 62); border-radius: calc(var(--rpx) * 17); background: #e7eedc; color: #66834f; font-size: calc(var(--rpx) * 29); flex-shrink: 0; }.flex-fill { flex: 1; min-width: 0; }.row-title { display: block; font-size: calc(var(--rpx) * 25); line-height: 1.7; font-weight: 550; }.row-desc { display: block; color: #94a084; font-size: calc(var(--rpx) * 21); line-height: 1.85; margin-top: calc(var(--rpx) * 4); }.chevron { font-size: calc(var(--rpx) * 33); color: #acb69d; flex-shrink: 0; }.route-chip { display: flex; justify-content: space-between; align-items: flex-start; gap: calc(var(--rpx) * 20); width: 100%; font-size: calc(var(--rpx) * 21); color: #839970; line-height: 1.85; margin: calc(var(--rpx) * -4) 0 calc(var(--rpx) * 18); }.route-chip span { flex-shrink: 0; }
.search-box { display: flex; align-items: center; gap: calc(var(--rpx) * 15); background: #fff; border: calc(var(--rpx) * 1) solid #e4e9d9; border-radius: calc(var(--rpx) * 18); padding: calc(var(--rpx) * 18) calc(var(--rpx) * 24); margin-top: calc(var(--rpx) * 25); }.search-icon { color: #97a783; font-size: calc(var(--rpx) * 33); line-height: 1; }.search-box input { flex: 1; min-width: 0; font-size: calc(var(--rpx) * 24); height: calc(var(--rpx) * 38); }.filter-bar { gap: calc(var(--rpx) * 12); margin: calc(var(--rpx) * 23) 0; }.filter-tabs { display: flex; gap: calc(var(--rpx) * 25); }.filter { color: #98a48b; font-size: calc(var(--rpx) * 22); padding: calc(var(--rpx) * 3) 0 calc(var(--rpx) * 9); border-bottom: calc(var(--rpx) * 3) solid transparent; }.filter.selected { color: #4b7745; border-bottom-color: #4b7745; font-weight: 600; }.add-task-line { width: 100%; border: calc(var(--rpx) * 1) dashed #cdd9ba; border-radius: calc(var(--rpx) * 18); color: #819d66; text-align: center; padding: calc(var(--rpx) * 22); margin-top: calc(var(--rpx) * 22); font-size: calc(var(--rpx) * 24); }.info-note { font-size: calc(var(--rpx) * 21); line-height: 1.95; color: #a0aa91; margin: calc(var(--rpx) * 24) 0; }.empty { text-align: center; padding: calc(var(--rpx) * 50) calc(var(--rpx) * 24); }.empty-symbol { display: block; font-size: calc(var(--rpx) * 55); color: #9fb789; margin-bottom: calc(var(--rpx) * 17); }
.source-foot { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: calc(var(--rpx) * 8); font-size: calc(var(--rpx) * 17); color: #a4ae95; margin-top: calc(var(--rpx) * 33); }.source-foot .tiny-dot { width: calc(var(--rpx) * 6); height: calc(var(--rpx) * 6); }.source-foot button { color: #82976e; font-size: calc(var(--rpx) * 17); margin-left: calc(var(--rpx) * 8); }.bottom-nav { display: flex; position: fixed; bottom: 0; left: 0; right: 0; background: #fffffff5; border-top: calc(var(--rpx) * 1) solid #e5e9dc; padding: calc(var(--rpx) * 17) calc(var(--rpx) * 20) calc(calc(var(--rpx) * 20) + env(safe-area-inset-bottom)); z-index: 20; }.nav-item { display: flex; flex: 1; flex-direction: column; align-items: center; gap: calc(var(--rpx) * 6); position: relative; color: #a2ac95; font-size: calc(var(--rpx) * 22); }.nav-glyph { font-size: calc(var(--rpx) * 34); height: calc(var(--rpx) * 46); line-height: calc(var(--rpx) * 46); }.nav-active { color: #356746; font-weight: 600; }.nav-indicator { position: absolute; bottom: calc(var(--rpx) * -12); width: calc(var(--rpx) * 20); height: calc(var(--rpx) * 5); border-radius: calc(var(--rpx) * 5); background: #356746; }
.modal-mask { position: fixed; top: 0; bottom: 0; left: 0; right: 0; z-index: 50; background: #16332470; display: flex; align-items: flex-end; justify-content: center; color: #223b31; }.sheet { width: 100%; max-height: 92vh; border-radius: calc(var(--rpx) * 32) calc(var(--rpx) * 32) 0 0; overflow: hidden; background: #f7f8f0; padding-bottom: env(safe-area-inset-bottom); }.sheet-handle { width: calc(var(--rpx) * 65); height: calc(var(--rpx) * 7); background: #d6dfc9; border-radius: calc(var(--rpx) * 8); margin: calc(var(--rpx) * 18) auto calc(var(--rpx) * 4); }.sheet-heading { padding: calc(var(--rpx) * 21) calc(var(--rpx) * 35); gap: calc(var(--rpx) * 20); }.close-button { font-size: calc(var(--rpx) * 43); color: #9ca98b; line-height: 1; padding: calc(var(--rpx) * 4) calc(var(--rpx) * 8); }.sheet-scroll { height: 74vh; }.sheet-content { padding: calc(var(--rpx) * 6) calc(var(--rpx) * 36) calc(var(--rpx) * 42); }.form-hint { display: block; color: #929f80; font-size: calc(var(--rpx) * 24); line-height: 1.9; margin-bottom: calc(var(--rpx) * 23); }.field-label { display: block; color: #647e51; font-size: calc(var(--rpx) * 24); font-weight: 550; margin: calc(var(--rpx) * 26) 0 calc(var(--rpx) * 13); }.field-label.compact { margin-top: 0; }.field { width: 100%; min-height: calc(var(--rpx) * 84); background: #fff; border: calc(var(--rpx) * 1) solid #dfe7d1; border-radius: calc(var(--rpx) * 16); padding: calc(var(--rpx) * 22); font-size: calc(var(--rpx) * 25); }.field span { color: #aab69b; }.clear-date { font-size: calc(var(--rpx) * 21); color: #9aae86; margin-top: calc(var(--rpx) * 12); }.form-inline { gap: calc(var(--rpx) * 16); padding: calc(var(--rpx) * 14) 0; }.form-inline .field-label { margin-top: calc(var(--rpx) * 13); }.stepper { display: flex; align-items: center; gap: calc(var(--rpx) * 20); flex-shrink: 0; font-size: calc(var(--rpx) * 25); }.stepper button { display: flex; align-items: center; justify-content: center; width: calc(var(--rpx) * 48); height: calc(var(--rpx) * 48); border: calc(var(--rpx) * 1) solid #dfe6d2; border-radius: calc(var(--rpx) * 14); color: #7c9665; }
.primary, .secondary { width: 100%; display: block; text-align: center; border-radius: calc(var(--rpx) * 18); padding: calc(var(--rpx) * 24); margin-top: calc(var(--rpx) * 25); color: #fff; background: #356b4d; font-size: calc(var(--rpx) * 25); font-weight: 550; }.secondary { color: #698653; background: #eaf0e0; border: calc(var(--rpx) * 1) solid #dae4cc; }.wide { width: 100%; }.detail-title { display: block; font-size: calc(var(--rpx) * 34); font-weight: 600; line-height: 1.7; margin: calc(var(--rpx) * 20) 0; }.detail-copy { display: block; color: #81966f; font-size: calc(var(--rpx) * 25); line-height: 2; }.source-link { color: #7b9b5c; font-size: calc(var(--rpx) * 23); margin: calc(var(--rpx) * 20) 0; }.status-options { display: flex; gap: calc(var(--rpx) * 12); flex-wrap: wrap; }.status-option { min-width: calc(var(--rpx) * 110); flex: 1; text-align: center; border: calc(var(--rpx) * 1) solid #dce6cf; border-radius: calc(var(--rpx) * 15); padding: calc(var(--rpx) * 19) calc(var(--rpx) * 8); color: #93a37e; font-size: calc(var(--rpx) * 23); }.status-option.chosen, .answer-option.chosen { color: #4a7742; background: #e7efdc; border-color: #91ac78; }.answer-options { display: flex; flex-direction: column; gap: calc(var(--rpx) * 13); }.answer-option { text-align: center; border: calc(var(--rpx) * 1) solid #dce6cf; border-radius: calc(var(--rpx) * 15); padding: calc(var(--rpx) * 21) calc(var(--rpx) * 12); color: #93a37e; font-size: calc(var(--rpx) * 24); }.note-input { display: block; width: 100%; height: calc(var(--rpx) * 220); background: #fff; border: calc(var(--rpx) * 1) solid #dfe7d1; border-radius: calc(var(--rpx) * 17); padding: calc(var(--rpx) * 21); font-size: calc(var(--rpx) * 24); line-height: 1.9; }.input-hint { display: block; font-size: calc(var(--rpx) * 20); color: #a4af96; margin-top: calc(var(--rpx) * 12); line-height: 1.8; }.title-input { height: calc(var(--rpx) * 85); }.backup-input { height: calc(var(--rpx) * 330); margin-top: calc(var(--rpx) * 25); font-size: calc(var(--rpx) * 21); }
.tools-profile { gap: calc(var(--rpx) * 19); background: #ebf0e0; padding: calc(var(--rpx) * 22); border-radius: calc(var(--rpx) * 20); margin-bottom: calc(var(--rpx) * 24); }.menu-list { background: #fff; border: calc(var(--rpx) * 1) solid #e1e8d5; border-radius: calc(var(--rpx) * 21); overflow: hidden; }.menu-row { width: 100%; padding: calc(var(--rpx) * 24); gap: calc(var(--rpx) * 22); border-bottom: calc(var(--rpx) * 1) solid #edf1e5; }.menu-row:last-child { border: 0; }.menu-icon { font-size: calc(var(--rpx) * 32); color: #92ac78; width: calc(var(--rpx) * 35); text-align: center; flex-shrink: 0; }.privacy-card { background: #edf1e4; border-radius: calc(var(--rpx) * 20); padding: calc(var(--rpx) * 25); margin-top: calc(var(--rpx) * 24); }.privacy-card .row-title { color: #7b9366; }.privacy-card .row-desc { margin-top: calc(var(--rpx) * 12); line-height: 1.95; }.reset-button { width: 100%; padding: calc(var(--rpx) * 25) calc(var(--rpx) * 10); margin-top: calc(var(--rpx) * 15); color: #b78d72; font-size: calc(var(--rpx) * 23); text-align: center; }.source-verified { display: flex; align-items: center; gap: calc(var(--rpx) * 10); color: #88a06f; font-size: calc(var(--rpx) * 22); margin: calc(var(--rpx) * 7) 0 calc(var(--rpx) * 22); }.source-card { width: 100%; display: block; background: #fff; border: calc(var(--rpx) * 1) solid #e0e8d3; border-radius: calc(var(--rpx) * 20); padding: calc(var(--rpx) * 24); margin-top: calc(var(--rpx) * 17); }.source-detail { display: block; color: #98a688; font-size: calc(var(--rpx) * 22); line-height: 1.85; margin-top: calc(var(--rpx) * 10); }.source-url { display: block; color: #a6b299; font-size: calc(var(--rpx) * 18); word-break: break-all; margin-top: calc(var(--rpx) * 10); }.source-copy { display: block; color: #84a264; font-size: calc(var(--rpx) * 19); margin-top: calc(var(--rpx) * 11); }
.theme-ttps .brand-mark, .theme-ttps .maintenance-hero, .theme-ttps .renewal-hero { background: #265b58; }.theme-ttps .program-switch { background: #e4ece7; border-color: #d8e4de; }.theme-ttps .program-option.selected, .theme-ttps .module-option.selected { color: #2b7064; }.theme-ttps .module-option.selected { border-bottom-color: #2b7064; }.theme-ttps .check.checked, .theme-ttps .primary, .theme-ttps .pill.active { background: #37776b; border-color: #37776b; }.theme-ttps .nav-active { color: #307164; }.theme-ttps .nav-indicator { background: #307164; }.theme-ttps .progress-fill { background: #72a08a; }
@media (max-width: 350px) { .app-shell { padding-left: calc(var(--rpx) * 28); padding-right: calc(var(--rpx) * 28); } .brand-sub { font-size: calc(var(--rpx) * 11); letter-spacing: calc(var(--rpx) * 1); } .profile-link { font-size: calc(var(--rpx) * 20); } .page-title { font-size: calc(var(--rpx) * 43); } .ttps-description { font-size: calc(var(--rpx) * 18); } .hero-stats > div + div { padding-left: calc(var(--rpx) * 20); } .score-description { font-size: calc(var(--rpx) * 20); } .section-caption { font-size: calc(var(--rpx) * 18); } .filter-tabs { gap: calc(var(--rpx) * 22); } }

:root{--rpx:min(.133333333vw,.64px);--web-width:900px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:20px}
body{margin:0;background:#e9ede4!important;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit}
button{cursor:pointer;appearance:none;-webkit-tap-highlight-color:transparent}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid #39785b;outline-offset:3px}
input,textarea{border:0;resize:vertical}
input::placeholder,textarea::placeholder{color:#87917e}
.web-frame{max-width:var(--web-width);margin:auto;background:#f7f7f0;min-height:100dvh}
.save-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 22px;background:#eff2e8;border-bottom:1px solid #e3e8d8;font-size:12px;color:#65765f;min-height:46px}
.save-status{display:flex;align-items:center;gap:7px;font-size:inherit;line-height:1.5;text-align:left;min-height:28px}
.save-dot{width:6px;height:6px;flex-shrink:0;background:#7b9675;border-radius:50%}
.save-status.failed{color:#aa5845}.save-status.failed .save-dot{background:#bd7358}
.backup-button{white-space:nowrap;font-size:12px;color:#35684c;padding:5px 0 5px 10px;flex-shrink:0}
.web-banner{display:flex;align-items:center;gap:14px;padding:12px 22px;background:#f7ebcb;color:#806031;font-size:13px;line-height:1.7}
.web-banner[hidden]{display:none}.web-banner>span{flex:1}.web-banner>button{white-space:nowrap;text-decoration:underline}
#app{min-height:calc(100dvh - 46px)}
.bottom-nav{max-width:var(--web-width);margin:auto;backdrop-filter:blur(12px)}
.sheet{max-width:580px}.sheet-scroll{overflow-y:auto;overscroll-behavior:contain}
.category-scroll{overflow-x:auto;scrollbar-width:none}.category-scroll::-webkit-scrollbar{display:none}
.web-picker{position:relative;display:block}
.web-picker>select,.web-picker>input{position:absolute;inset:0;width:100%;height:100%;opacity:.01;cursor:pointer;font-size:16px}
.note-input,.title-input,.search-box input{font-size:16px}
.toast{position:fixed;z-index:100;left:50%;top:48%;transform:translate(-50%,-50%);padding:15px 22px;background:#203b31ed;color:white;border-radius:15px;font-size:14px;max-width:min(350px,90vw);line-height:1.8;pointer-events:none}
.switch-input{appearance:none;width:42px;height:25px;border-radius:20px;background:#d6decf;border:0;position:relative;flex-shrink:0;cursor:pointer}
.switch-input:before{content:'';position:absolute;width:19px;height:19px;left:3px;top:3px;background:white;border-radius:50%;box-shadow:0 1px 4px #0002;transition:transform .15s}
.switch-input:checked{background:#247a64}.switch-input:checked:before{transform:translateX(17px)}
.native-dialog{border:0;border-radius:20px;background:#fafbf6;padding:25px;max-width:min(420px,90vw);color:#264333;box-shadow:0 10px 60px #0002}
.native-dialog::backdrop{background:#142f2866}.native-dialog h3{margin:0 0 15px;font-size:18px}.native-dialog p{font-size:14px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}
.dialog-actions{display:flex;justify-content:flex-end;gap:20px;margin-top:24px}.dialog-actions button{font-size:14px;padding:8px 12px}.dialog-confirm{color:#2e6953!important;font-weight:600}
.download-link{display:none}.noscript{padding:28px;line-height:1.9}
.skip-link{position:fixed;left:20px;top:-100px;z-index:200;background:#fff;padding:12px;color:#285e49}.skip-link:focus{top:8px}
.task-more,.tools-button,.close-button{min-width:36px;min-height:36px}
.program-option{min-height:36px}.check{min-width:30px;min-height:30px}
@media(min-width:600px){body{padding:24px 20px 0}.web-frame{box-shadow:0 15px 80px #233b2b12;border-radius:24px 24px 0 0;overflow:hidden}.save-bar{padding:14px 34px}.app-shell{padding-left:34px;padding-right:34px}.brand-row{padding-top:8px}.brand-name{font-size:27px}.brand-sub{font-size:10px}.page-title{font-size:32px}.intro{margin-bottom:28px}.utility-row{margin-bottom:30px}.sheet{border-radius:24px 24px 0 0}.sheet-scroll{height:70dvh}.question-list,.maintenance-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}.question-card,.maintenance-card{margin:0;min-width:0}.question-list{margin-bottom:20px}.question-card{text-align:left}.maintenance-card{display:flex;flex-direction:column}.maintenance-main{flex:1}.bottom-nav{border-left:1px solid #e1e7d8;border-right:1px solid #e1e7d8;padding:12px 24px calc(12px + env(safe-area-inset-bottom))}.nav-item{flex-direction:row;justify-content:center;gap:12px;min-height:36px}.nav-glyph{height:auto;line-height:1.5}.nav-indicator{bottom:-9px}.maintenance-hero,.renewal-hero{padding:26px 30px}.source-foot{font-size:12px}.source-foot button{font-size:12px}}
@media(min-width:1000px){body{padding-top:36px}.app-shell{padding-left:44px;padding-right:44px}.save-bar{padding-left:44px;padding-right:44px}.hero-stats{max-width:600px}.assessment-card{padding:26px 30px}.assessment-metrics{max-width:500px}.task-row{padding:19px 24px}.task-title{font-size:17px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
