*{box-sizing:border-box}body{margin:0;background:#e9eee5;color:#203e32;font-family:"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d9a82e;outline-offset:3px}.app{max-width:460px;min-height:100vh;margin:auto;background:#f8f8f2;overflow:hidden}header{height:76px;padding:22px 24px;display:flex;align-items:center;justify-content:space-between}.brand{font-size:17px;font-weight:650;letter-spacing:1px}.brand>span{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:11px;background:#196448;color:#f2da87;font-size:23px;margin-right:5px}.capsule{border:1px solid #dee5d9;border-radius:20px;padding:6px 11px;font-size:12px;color:#41584a}main{padding:10px 24px 24px}.eyebrow{font-size:10px;letter-spacing:2px;color:#718371;margin:0 0 9px}.title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}h1{font-size:28px;letter-spacing:-1px;line-height:1.3;margin:0 0 7px;font-weight:650}h2{font-size:19px;letter-spacing:-.5px;margin:0}h3{font-size:15px;margin:0 0 7px}p{font-size:13px;line-height:1.85;margin:0;color:#6a7c6e}.sub{font-size:11px;color:#84907f}.avatar{width:46px;height:46px;border-radius:17px;background:#e4eccf;display:grid;place-items:center;font-size:22px;color:#196448}.quiet{border:0;background:#edf1e4;border-radius:20px;padding:9px 13px;font-size:11px;color:#476149}.hero{position:relative;border-radius:27px;padding:26px 24px;background:#196448;color:#fff;overflow:hidden;min-height:206px;border:5px solid #e2ead8;box-shadow:inset 0 1px 0 #ffffff30}.hero:after{content:"";position:absolute;width:175px;height:175px;border:1px solid #ffffff15;border-radius:50%;right:-50px;top:-55px;box-shadow:0 0 0 25px #ffffff05,0 0 0 50px #ffffff04}.hero .eyebrow{color:#bed2b4;position:relative;z-index:1}.hero h2{font-size:26px;line-height:1.5;margin:12px 0 13px;position:relative;z-index:1}.hero p{color:#d6e5cc;font-size:11px}.hero .medal{position:absolute;right:20px;top:56px;transform:rotate(9deg)}.medal{width:91px;height:91px;border-radius:50%;display:grid;place-items:center;font-size:36px;color:#82651d;background:linear-gradient(145deg,#fff3b1,#d9af4b);border:7px solid #f1d582;box-shadow:inset 0 0 0 2px #b7913340,0 10px 25px #102c2730}.hero .mini-pill{background:#ffffff15;color:#e6eedf;border:1px solid #ffffff1f;padding:6px 10px;border-radius:20px;display:inline-block;font-size:10px}.stats{display:grid;grid-template-columns:repeat(3,1fr);margin:22px 0 26px}.stats>div{text-align:center;border-right:1px solid #dce4d6}.stats>div:last-child{border:0}.stats strong{font-size:25px;font-weight:600;display:block;color:#244c38;line-height:1.4}.stats span{font-size:10px;color:#7b8a78}.heading{display:flex;align-items:center;justify-content:space-between;margin:27px 0 14px}.heading a{font-size:11px;color:#788774}.card{padding:20px;background:#fff;border:1px solid #edf0e7;border-radius:24px;box-shadow:0 7px 22px #284b3010}.highlight{background:#edf2e3;border:5px solid #f4f6ee;padding:18px}.tag{font-size:10px;border-radius:7px;background:#dce9cd;color:#436744;padding:4px 7px;display:inline-block;margin-bottom:10px}.highlight h3{font-size:18px;line-height:1.6;max-width:240px;margin-bottom:9px}.highlight .byline{margin-top:14px;font-size:10px;color:#71816a}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.quick{border-radius:21px;padding:18px 16px;min-height:122px;background:#f5eac5}.quick:nth-child(2){background:#e6edde}.quick b{display:block;font-size:14px;margin:10px 0 5px}.quick small{font-size:10px;color:#7d806c}.quick .icon{font-size:23px}.timeline{position:relative;padding-left:20px;border-left:1px solid #dce5d5;margin-left:6px}.event{position:relative;padding:0 0 23px}.event:last-child{padding-bottom:0}.event:before{content:"";width:9px;height:9px;background:#a8bb8c;border:3px solid #f8f8f2;box-sizing:content-box;position:absolute;left:-28px;top:5px;border-radius:50%}.event b{font-size:13px;font-weight:550}.event p{font-size:11px;margin-top:5px}.event time{font-size:10px;color:#8b9783}.event .score{float:right;color:#5d793e;font-size:12px}nav{display:flex;justify-content:space-around;background:#fff;border-top:1px solid #e8eddf;padding:15px 12px 12px;margin:0 14px;border-radius:25px;box-shadow:0 6px 26px #29433209}nav a{font-size:10px;min-width:52px;text-align:center;color:#8d9888}nav span{display:block;font-size:20px;margin-bottom:5px}nav a.active{color:#196448;font-weight:600}footer{padding:17px 10px;text-align:center;color:#9aa491;font-size:9px}.tabs{display:flex;gap:8px;margin:20px 0}.tabs a{font-size:11px;padding:9px 17px;border-radius:20px;background:#eef1e6}.tabs a.active{background:#196448;color:#fff}.chart{width:100%;height:210px;display:block}.chart text{font-size:11px;fill:#71806c}.legend{text-align:center;font-size:10px;color:#6c7d60;margin-top:8px}.legend i{display:inline-block;width:7px;height:7px;background:#96b071;border-radius:50%;margin-right:6px}.badge-grid{display:flex;justify-content:space-between;margin:22px 0 10px;gap:5px}.badge-grid div{text-align:center;font-size:9px;color:#728064}.badge-grid b{display:grid;place-items:center;border:4px solid #ecdfac;border-radius:50%;background:#f6e9b8;color:#a17d26;width:45px;height:45px;font-size:20px;margin:auto auto 8px}.badge-grid div:last-child b{background:#e9eddf;border-color:#dbe4cd;color:#889875}.note{background:#f1f4e9;border-radius:14px;padding:13px 15px;font-size:11px;margin-top:17px}.activity{padding:6px;border:1px solid #eceee4;border-radius:24px;background:#fff;margin-bottom:16px}.activity img{width:100%;height:165px;object-fit:cover;border-radius:18px;display:block}.activity-body{padding:17px 15px}.activity-body .tag{margin-bottom:9px}.activity-body h2{font-size:19px;margin-bottom:8px}.activity-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:16px}.activity-bottom small{font-size:10px;color:#809071}.arrow{width:32px;height:32px;display:grid;place-items:center;background:#196448;color:#fff;border-radius:50%;font-size:16px;border:0}.sports{background:#e9efdc;color:#2c5335}.sports h2{font-size:26px}.sports p{color:#728160}.sports .medal{border-color:#e1e8c8;background:#f5f4cf;color:#789344;box-shadow:0 8px 25px #42603615}.week{display:flex;justify-content:space-between;margin:24px 0}.week div{text-align:center;font-size:10px;color:#859078}.week b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;margin-top:9px;background:#e6edd9;color:#628052;font-size:12px}.week .today b{background:#196448;color:#fff}.week .future b{background:#f0f2e9;color:#a6ae9e}.field{display:block;font-size:12px;color:#486040;margin:22px 0 10px}.choices{display:flex;gap:8px}.choices button{border:1px solid #e2e8d8;border-radius:13px;background:white;color:#6d7f60;padding:11px 19px;font-size:12px}.choices button.selected{border-color:#196448;background:#edf3e5;color:#196448}.duration{width:100%;border:1px solid #e1e7d7;border-radius:14px;padding:14px;color:#294c36;background:#fff}.primary{border:0;border-radius:24px;width:100%;padding:10px 10px 10px 20px;background:#196448;color:#fff;display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-top:22px}.primary span{border-radius:50%;background:#ffffff20;display:grid;place-items:center;width:30px;height:30px}.upload{display:block;width:100%;padding:22px;border:1px dashed #bdcaaa;background:#f1f4e8;border-radius:17px;text-align:center;color:#77866b;font-size:12px}.upload input{display:block;max-width:100%;margin-top:13px;font-size:10px}dialog{border:1px solid #dbe3d1;border-radius:25px;padding:28px;max-width:340px;width:calc(100% - 40px);color:#264735;box-shadow:0 30px 90px #12351e30}dialog::backdrop{background:#193c2850}dialog h2{margin:12px 0}dialog .close{float:right;border:0;background:#eef2e6;border-radius:50%;width:30px;height:30px;font-size:20px;color:#49633d}button:active,a:active{transform:scale(.98)}@media(max-width:370px){main{padding:10px 18px 24px}.hero{padding:23px 18px}.hero .medal{right:12px;width:75px;height:75px}.hero h2{font-size:23px}.choices button{padding:11px 15px}}@media(prefers-reduced-motion:no-preference){button,a{transition:transform .2s cubic-bezier(.32,.72,0,1)}}
/* 阅读对比度与中性投影：暖色仅用于材质，不用于发光。 */
.app .eyebrow,.app .sub,.app .stats span,.app .hero p,.app .hero .mini-pill,.app .tag,.app .highlight .byline,.app .quick small,.app .event time,.app nav a,.app .legend,.app .badge-grid div,.app .activity-bottom small,.app .week div{font-size:11px}
.app footer{font-size:11px}
.app .sports .eyebrow{color:#596b51}.app p{color:#596b51}.app .hero p{color:#d9e6cf}.app .sports p{color:#596b51}
.sports .eyebrow{color:#596b51}.chart text{fill:#596b51}.sports p,.legend,.badge-grid div{color:#596b51}.upload input{font-size:11px}.upload input::file-selector-button{border:0;border-radius:9px;background:#dde8cd;color:#294c36;padding:9px;margin-right:8px}.week .future b{color:#596b51}
.sub,.eyebrow,.stats span,.heading a,.highlight .byline,.quick small,.event time,nav a,footer,.legend,.badge-grid div,.activity-bottom small,.week div,.upload{color:#596b51}
.card{box-shadow:0 7px 22px #00000008}.medal{box-shadow:inset 0 0 0 2px #00000012,0 10px 25px #00000018}.sports .medal{box-shadow:0 8px 25px #0000000d}nav{box-shadow:0 6px 26px #00000008}dialog{box-shadow:0 30px 90px #00000030}.hero .eyebrow{color:#d9e6cf}.hero .mini-pill{color:#fff}.badge-grid div:nth-child(2) b{background:#e9eddf;border-color:#dbe4cd;color:#64734f}
