:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;color:#263b31;background:#f7f8f3;font-synthesis:none;--green:#264e3e;--ink:#263b31;--muted:#6b776f;--line:#e3e8dd;--pale:#eef3e7;--lime:#d1e59b;--radius:22px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #8aac52;outline-offset:3px}button{border:0}h1,h2,h3,p{margin:0}h1{font-size:30px;line-height:1.35;letter-spacing:-1px;font-weight:650}h2{font-size:19px;font-weight:650;line-height:1.5}h3{font-size:16px}p{line-height:1.65}a{color:var(--green)}.shell{max-width:540px;margin:auto;padding:24px 20px 100px}.loading{padding-top:48px}.loading>p{margin-top:40px;color:var(--muted)}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.brand{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:1.8px;font-weight:750;color:var(--green)}.brand-mark{display:flex;align-items:center;justify-content:center;width:35px;height:35px;border-radius:11px;background:var(--green);color:#fff;font-size:26px;font-weight:600;letter-spacing:-2px;padding-right:3px}.icon-button{min-width:42px;height:42px;background:transparent;border:1px solid var(--line);border-radius:50%;font-size:24px;color:var(--ink)}.settings-button{font-size:12px;border-radius:99px;width:auto;padding:0 15px}.eyebrow{color:var(--muted);font-size:11px;letter-spacing:1.5px;font-weight:600;margin-bottom:10px}.intro{margin:26px 0 24px}.intro p{color:var(--muted);font-size:14px;margin-top:8px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-top:16px}.card-soft{background:var(--pale);border-color:transparent}.login-art{height:95px;display:flex;gap:7px;align-items:end;margin:34px 0 26px}.login-art i{display:block;width:35px;height:35px;background:#e7eddf;border-radius:10px}.login-art i:nth-child(2){height:54px;background:#dce8c2}.login-art i:nth-child(3){height:75px;background:#b6d187}.login-art i:nth-child(4){height:95px;background:var(--green)}.login-art span{font-size:12px;color:var(--muted);padding:0 0 4px 10px;line-height:1.7}.field{display:block;margin:20px 0;font-size:13px;font-weight:600}.field input,.field textarea,.field select{display:block;width:100%;margin-top:8px;border:1px solid #d6ded3;background:#fff;border-radius:12px;padding:13px 14px;min-height:48px;color:var(--ink);font-weight:400;outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--green);box-shadow:0 0 0 3px #d1e59b55}.field input[type=password]{font-size:23px;letter-spacing:10px}.field small{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:7px}.trust-row{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:var(--muted);line-height:1.65;margin:24px 0}.trust-row input{accent-color:var(--green);width:20px;height:20px;flex-shrink:0;margin:1px 0}.button{display:inline-flex;justify-content:center;align-items:center;gap:7px;min-height:48px;border-radius:13px;padding:12px 17px;background:var(--green);color:#fff;font-size:14px;font-weight:600;line-height:1.45}.button.full{width:100%}.button.secondary{background:#eef2e9;color:var(--green)}.button.quiet{background:transparent;color:var(--muted);border:1px solid var(--line)}.button.danger{background:#fbefea;color:#a04431}.small-button{min-height:38px;font-size:12px;padding:9px 12px;border-radius:10px}.stack{display:flex;flex-direction:column;gap:10px}.button-row{display:flex;gap:9px;margin-top:16px}.button-row>.button{flex:1}.muted{font-size:12px;color:var(--muted);line-height:1.7}.hint{font-size:12px;color:var(--muted);margin-top:14px}.message{padding:13px 15px;border-radius:13px;background:#f8eee7;border:1px solid #eddccf;font-size:13px;line-height:1.65;margin:14px 0;color:#82523a}.message.green{background:#eef3e6;border-color:#dce6cd;color:#466133}.status-pill{display:inline-flex;align-items:center;gap:5px;font-size:10px;padding:5px 8px;background:#edf2e8;border-radius:99px;color:#5f7454}.status-dot{width:5px;height:5px;border-radius:50%;background:#7a9e59}.heading-line{display:flex;gap:12px;justify-content:space-between;align-items:center}.greeting{font-size:13px;color:var(--muted);margin:2px 0 5px}.plan-title{font-size:27px}.plan-range{font-size:12px;color:var(--muted);margin-top:8px}.progress-card{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;margin-top:24px;background:var(--green);color:#fff;border:0}.progress-card .eyebrow{color:#d7e5ce;margin-bottom:9px}.progress-number{font-size:31px;font-weight:600;line-height:1.2}.progress-number span{font-size:13px;font-weight:400;color:#c2d3c5}.progress-card p{font-size:12px;color:#d7e5ce;margin-top:9px}.progress-ring{--percent:0;position:relative;width:78px;height:78px;border-radius:50%;background:conic-gradient(var(--lime) calc(var(--percent)*1%),#496956 0);display:grid;place-items:center}.progress-ring:before{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--green)}.progress-ring span{position:relative;font-size:17px;color:#e8f0e2}.calendar-card{padding:21px 13px 15px}.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:0 7px 16px}.calendar-header h2{font-size:18px}.month-controls{display:flex;align-items:center;gap:5px}.month-controls button{background:transparent;color:var(--ink);min-width:35px;min-height:36px;font-size:20px;border-radius:8px}.month-controls .today-button{font-size:12px;min-width:46px;background:#f1f4ed}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays{font-size:11px;text-align:center;color:#778374;margin:0 0 8px}.day{height:57px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid transparent;border-radius:11px;background:#f3f5ef;color:#425540;padding:3px 0;font-size:14px;font-weight:550;overflow:hidden}.day .day-status{font-size:8px;font-weight:400;white-space:nowrap}.day.partial{background:#dcebbf}.day.complete{background:var(--green);color:#fff}.day.rest{background:#edece7;color:#746e62}.day.selected{outline:2px solid #9fba74;outline-offset:1px;z-index:1}.day.today .day-number:after{content:"";display:block;width:3px;height:3px;background:currentColor;border-radius:50%;position:absolute;top:6px;left:calc(50% - 1.5px)}.day.outside{background:transparent;color:#bcc2b6}.day.future{color:#95a08b;background:#f7f8f5;border:1px dashed #e3e8dd}.day.other-month{opacity:.55}.day[aria-disabled=true]{cursor:default}.legend{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:13px;font-size:10px;color:var(--muted);margin-top:16px}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:9px;height:9px;border-radius:3px;background:#f0f3eb}.legend .partial-key{background:#dcebbf}.legend .full-key{background:var(--green)}.week-summary{font-size:12px;color:var(--muted);padding:15px 7px 0;margin-top:14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:8px}.day-panel{margin-top:26px}.day-panel .heading-line{align-items:start;margin-bottom:17px}.date-title{font-size:21px;letter-spacing:-.4px}.date-kicker{font-size:11px;color:var(--muted);margin-top:5px}.count-badge{padding:7px 10px;background:#e7eedc;border-radius:10px;font-size:12px;color:#4a6937;white-space:nowrap}.exercise{display:flex;gap:12px;align-items:center;margin-bottom:9px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px 12px}.check-button{flex:0 0 27px;height:27px;border:1.5px solid #cdd6c5;border-radius:9px;background:#fff;color:transparent;font-size:16px;padding:0}.check-button.checked{background:var(--green);border-color:var(--green);color:#fff}.exercise-text{flex:1;min-width:0}.exercise h3{font-size:13px;line-height:1.5;font-weight:600}.exercise p{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.5}.play-button{flex-shrink:0;background:#f0f4e9;color:#587448;border-radius:11px;padding:0;min-width:39px;min-height:39px;font-size:12px}.play-label{display:none}.record-note{font-size:11px;color:#84907f;line-height:1.65;margin:12px 1px}.feedback{margin-top:18px;border-top:1px solid var(--line);padding-top:18px}.feedback summary{font-size:13px;color:var(--muted);cursor:pointer;min-height:32px}.feedback .field{margin:14px 0;font-size:12px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.review-note{display:flex;gap:10px;font-size:12px;line-height:1.7}.review-icon{font-size:20px;color:#7c9454}.footer-note{text-align:center;font-size:10px;color:#8c9586;line-height:1.8;margin-top:28px}.page-header{display:flex;align-items:center;gap:14px;margin-bottom:24px}.page-header h1{font-size:24px}.setting-section{margin-top:23px}.setting-section h2{font-size:16px;margin-bottom:9px}.setting-section p{margin:8px 0 12px}.setting-section .button{margin-top:4px}.divider{height:1px;background:var(--line);margin:24px 0}.archive-item{padding:12px 0;border-bottom:1px solid var(--line)}.archive-item p{font-size:13px;margin:0 0 6px}.file-input{width:100%;font-size:12px;color:var(--muted);padding:12px;border:1px dashed #cbd6c0;border-radius:12px;margin-top:10px}.toast{position:fixed;bottom:calc(26px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:50;background:#263b31;color:white;font-size:13px;line-height:1.6;padding:12px 18px;border-radius:13px;box-shadow:0 7px 30px #1d382c22;width:max-content;max-width:calc(100vw - 36px)}.toast[hidden]{display:none}.video-dialog{width:min(510px,calc(100% - 28px));border:0;border-radius:20px;padding:18px;background:#fff;color:var(--ink);max-height:90dvh}.video-dialog::backdrop{background:#17251caa}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.dialog-head h2{font-size:15px}.video-dialog video{display:block;width:100%;max-height:65dvh;background:#18221b;border-radius:12px}.video-dialog .muted{margin-top:12px}.empty-illustration{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:26px 0}.empty-illustration span{aspect-ratio:1;border-radius:8px;background:#e8eedf}.empty-illustration span:nth-child(3n){background:#cce0a5}.empty-illustration span:nth-child(5n){background:#41674b}.offline-banner{margin-top:0}.save-progress{height:7px;border:0;border-radius:20px;background:#e8eddf;width:100%;accent-color:var(--green)}.save-progress::-webkit-progress-bar{background:#e8eddf;border-radius:20px}.save-progress::-webkit-progress-value{background:var(--green);border-radius:20px}@media(min-width:620px){.shell{padding-top:40px}.day{height:62px}.play-label{display:inline;margin-left:4px}.play-button{padding:0 10px}.login-shell{padding-top:58px}}@media(prefers-reduced-motion:no-preference){button{transition:background .14s,opacity .14s;}.card{animation:appear .2s ease-out}@keyframes appear{from{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}}

.progress-step-0{--percent:0}.progress-step-1{--percent:10}.progress-step-2{--percent:20}.progress-step-3{--percent:30}.progress-step-4{--percent:40}.progress-step-5{--percent:50}.progress-step-6{--percent:60}.progress-step-7{--percent:70}.progress-step-8{--percent:80}.progress-step-9{--percent:90}.progress-step-10{--percent:100}
