:root{font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:#183b34;background:#f6f7f1;font-synthesis:none;--green:#175b4d;--muted:#657870;--line:#dce4dc;--paper:#fff;--lime:#eaf4d1}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #c78c20;outline-offset:3px}button{border:1px solid var(--line);border-radius:12px;background:white;color:var(--green);padding:11px 14px;font-weight:650}.primary{background:var(--green);border-color:var(--green);color:#fff}.wide{width:100%}.quiet{padding:7px 10px;font-size:.85rem}.danger{color:#8c3c2d}a{color:var(--green)}h1,h2,h3,p{margin-top:0}h1{font-size:1.7rem;line-height:1.2}h2{font-size:1.18rem}h3{font-size:1rem}p{line-height:1.6}.small{font-size:.82rem;color:var(--muted)}.brand{font-size:.68rem;letter-spacing:.18em;font-weight:800;color:var(--green)}#app{max-width:780px;margin:auto;padding:22px 18px 40px}.top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.top h1{margin:7px 0 0}.top .name{font-size:.85rem;color:var(--muted);margin:5px 0 0}.card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:20px;margin:14px 0}.intro{background:var(--lime);border:0}.intro h1{margin-top:12px}.hero{background:var(--green);color:white;display:flex;justify-content:space-between;align-items:center;padding:22px;border-radius:20px;gap:14px}.hero h2{margin:7px 0;font-size:1.35rem}.hero p{margin:0;color:#dce9df;font-size:.85rem}.count{font-size:2.6rem;white-space:nowrap;font-weight:750;letter-spacing:-.05em}.count small{font-size:1rem;font-weight:500;letter-spacing:0;color:#dce9df}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.metric{padding:14px 16px;background:white;border:1px solid var(--line);border-radius:15px}.metric b{display:block;font-size:1.15rem;margin-bottom:4px}.metric span{font-size:.76rem;color:var(--muted)}.monthbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.monthbar h2{margin:0}.monthbar button{padding:8px 12px}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekdays{font-size:.7rem;color:var(--muted);text-align:center;margin-bottom:7px}.day{min-height:51px;border-radius:10px;padding:5px 0;font-size:.86rem;font-weight:650;border:1px solid transparent;background:#f0f3ee;display:flex;flex-direction:column;align-items:center;gap:4px}.day small{font-size:.57rem;font-weight:500;line-height:1.1}.day.partial{background:#dcecc0;color:#315e30}.day.complete{background:var(--green);color:white}.day.rest{background:#e6edf1;color:#4a6370}.day.blank{background:transparent;color:#9ba9a1}.day.selected{outline:2px solid #c78c20;outline-offset:1px}.day.today:not(.complete){border-color:var(--green)}.legend{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.68rem;margin:12px 0 0}.legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;background:#edf1e9}.legend .p{background:#dcecc0}.legend .c{background:var(--green)}.legend .r{background:#dfe9ef}.selected-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.selected-head h2{margin:0}.selected-head span{font-size:.75rem;color:var(--muted)}.exercise{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-top:1px solid #edf0ea}.exercise input{appearance:none;flex:0 0 26px;width:26px;height:26px;border:1.5px solid #a6b8a9;border-radius:8px;margin:2px 0 0;display:grid;place-content:center}.exercise input:checked{background:var(--green);border-color:var(--green)}.exercise input:checked:after{content:'✓';color:white;font-size:20px;font-weight:750}.exercise strong{font-size:.94rem;display:block}.exercise .dose{display:block;color:var(--green);font-size:.82rem;margin-top:4px}.exercise .hint{display:block;font-size:.75rem;color:var(--muted);line-height:1.5;margin-top:4px}.row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.row>*{flex:1}.actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.actions .primary{grid-column:1/-1}.subtle{background:#f2f5ee;border-radius:12px;padding:12px 14px;font-size:.8rem;line-height:1.55;margin:12px 0;color:#52695e}.warning{background:#fff4df;color:#7c5718}.ready{color:#27704b}.offline-line{font-size:.75rem;text-align:center;padding:7px 0;color:var(--muted);line-height:1.5}.install{font-size:.82rem;line-height:1.6}.install ol{padding-left:22px}.install li{margin:6px 0}label.field{display:block;margin:13px 0;font-size:.85rem;font-weight:600}input:not([type=checkbox]),select,textarea{width:100%;display:block;background:white;color:#183b34;border:1px solid #bccac0;padding:12px;border-radius:10px;margin-top:6px;min-height:46px;font-size:16px}textarea{resize:vertical;min-height:75px}.checkline{display:flex;gap:9px;align-items:flex-start;font-size:.8rem;line-height:1.6;margin:14px 0}.checkline input{margin:5px 0;flex:0 0 18px;width:18px;height:18px}details{margin:15px 0;border-top:1px solid var(--line);padding-top:15px}summary{cursor:pointer;font-weight:650;font-size:.88rem}details>div{padding-top:12px}.notice{position:fixed;bottom:max(15px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#153c34;color:white;border-radius:13px;padding:13px 18px;max-width:calc(100vw - 28px);width:max-content;z-index:10;font-size:.85rem;box-shadow:0 8px 35px #163c3426}.boot{padding:60px 15px}.footer{text-align:center;color:var(--muted);font-size:.69rem;line-height:1.7;padding-top:12px}.back{margin-bottom:14px}.filebox{padding:13px;background:#f3f5ee;border-radius:12px;margin:12px 0}.filebox input{font-size:.78rem;padding:7px;max-width:100%}.preview{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.8rem;background:#edf3e9;padding:12px;border-radius:10px}.badge{font-size:.72rem;color:var(--green);background:var(--lime);padding:6px 10px;border-radius:999px}input[disabled]{opacity:.55}@media(min-width:660px){#app{padding-top:35px}.dashboard{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.dashboard .card{margin:0}.hero{padding:25px 28px}.day{min-height:57px}.actions .primary{grid-column:1/-1}}@media(max-width:350px){#app{padding:14px 11px}.card{padding:14px}.day{min-height:47px}.legend{gap:6px}.count{font-size:2.2rem}.metrics{gap:8px}.metric{padding:12px}h1{font-size:1.45rem}}

.spaced{margin-top:12px}
