
:root{--ink:#172c2b;--muted:#687775;--paper:#f4f3ed;--line:#dce2d9;--green:#247460;--mint:#c2ed91;--gold:#e0b76d;--white:#fff;--soft:#e8eee5;--orange:#b66d39}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 "Microsoft YaHei","PingFang SC",system-ui,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ba8b40;outline-offset:3px}button:disabled{cursor:default}a{color:var(--green);text-underline-offset:3px}button{color:inherit}h1,h2,h3,p{margin:0}h1{font-size:30px;line-height:1.35;letter-spacing:-1px}h2{font-size:22px;line-height:1.4}h3{font-size:17px}small,.small{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase}.app{display:grid;grid-template-columns:218px minmax(0,1fr);max-width:1700px;margin:auto;min-height:100vh}.sidebar{background:#142f2d;color:#e5ede7;padding:31px 20px;display:flex;flex-direction:column;gap:32px}.brand{display:flex;align-items:center;gap:12px;padding:0 8px}.brand-mark{width:35px;height:35px;border:1px solid #95c0a6;display:grid;place-items:center;transform:rotate(45deg);border-radius:9px}.brand-mark span{transform:rotate(-45deg);color:var(--mint);font-size:22px}.brand strong{display:block;font-size:21px;line-height:1.15;letter-spacing:3px}.brand small{font-size:10px;color:#a5bcb0;letter-spacing:1px}.season-tag{font-size:11px;color:#c6d6cc;border-top:1px solid #35504b;padding:18px 8px 0}.season-tag strong{font-size:14px;display:block;margin-top:5px;color:#fff}.nav{display:grid;gap:7px}.nav button{background:transparent;border:0;text-align:left;padding:12px 14px;color:#bdd0c7;border-radius:9px;display:flex;align-items:center;gap:13px;font-size:14px}.nav button:hover{background:#24423a}.nav button.active{color:#15372c;background:var(--mint);font-weight:700}.nav-icon{font-size:18px;width:20px;line-height:1}.sidebar-bottom{margin-top:auto;padding:15px 8px 0;border-top:1px solid #35504b;color:#a3b9ac;font-size:11px}.sidebar-bottom p+p{margin-top:7px}.main{padding:32px 38px 45px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:28px}.breadcrumb{color:var(--muted);font-size:12px;letter-spacing:1px}.status{font-size:11px;display:flex;gap:8px;align-items:center;color:#53675e;flex-wrap:wrap}.status-dot{width:7px;height:7px;background:#72905f;border-radius:50%}.chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:5px;font-size:11px;background:var(--soft);color:#52694d;white-space:nowrap}.chip.draft{background:#f1e7d1;color:#8b632e}.page[hidden]{display:none}.page-intro{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px}.page-intro p{margin-top:8px;color:var(--muted);font-size:13px}.page-intro .eyebrow{color:var(--green);margin-bottom:8px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 17px;border:1px solid #bdc9bc;background:#fff;border-radius:7px;font-weight:600;font-size:12px;text-decoration:none;white-space:normal}.button.primary{background:var(--green);border-color:var(--green);color:#fff}.button.light{background:var(--mint);border-color:var(--mint);color:#173c31}.button.quiet{background:transparent;border-color:transparent;padding-left:0;color:var(--green)}.overview-top{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,1fr);gap:22px}.hero{position:relative;min-height:310px;background:#183b34;border-radius:14px;overflow:hidden;color:#fff;display:grid;grid-template-columns:1.1fr .9fr;padding:29px 30px;isolation:isolate}.hero:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 80% 40%,#547d4b55,transparent 50%);background-size:auto}.hero-copy{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start}.hero .eyebrow{color:#b8cba6;font-size:10px}.hero h2{font-size:34px;margin-top:17px;letter-spacing:2px}.hero p{font-size:12px;color:#c0d2bf;margin-top:9px;max-width:240px}.hero-meta{margin-top:23px;display:flex;gap:12px;align-items:center}.hero .badge{border:1px solid #718c65;color:var(--mint);padding:3px 9px;font-size:10px;border-radius:4px}.hero-footer{margin-top:auto;padding-top:25px;color:#b9cfb2;font-size:10px}.character{width:100%;align-self:center;min-width:0}.hero .character svg{width:100%;height:auto;max-height:270px;overflow:visible}.daily-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:23px 24px}.section-label{display:flex;justify-content:space-between;align-items:center;gap:10px}.section-label .eyebrow{color:var(--muted);font-size:10px}.daily-number{display:flex;align-items:baseline;gap:8px;margin-top:16px}.daily-number strong{font-size:42px;line-height:1.1;letter-spacing:-2px}.daily-number span{color:var(--muted);font-size:13px}.daily-caption{font-size:11px;color:var(--muted);margin-top:6px}.mini-tasks{margin:18px 0 6px;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:9px 12px}.mini-tasks li{font-size:12px;display:flex;gap:7px;align-items:center}.tick{width:15px;height:15px;display:inline-grid;place-items:center;border-radius:50%;background:#e7f1e4;color:var(--green);font-size:9px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:29px 0 16px}.section-title p{font-size:11px;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.metric{background:#fff;border:1px solid var(--line);border-radius:11px;padding:19px 21px;position:relative;display:flex;flex-direction:column;gap:7px;text-align:left;min-height:157px}.metric:hover{border-color:#7da48b;background:#fbfdf8}.metric-head{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}.metric-glyph{font-size:17px;color:var(--green)}.metric-value{font-size:27px;font-weight:700;line-height:1.4;letter-spacing:-1px}.metric-value span{font-size:12px;font-weight:400;letter-spacing:0;margin-left:5px}.metric-foot{font-size:10px;color:var(--muted);margin-top:auto}.metric-rank{font-size:10px;position:absolute;right:18px;top:55px;color:#7d8c7c;border-left:1px solid var(--line);padding-left:10px}.overview-bottom{display:grid;grid-template-columns:1.4fr 1fr;gap:22px;margin-top:23px}.note-box{border-left:3px solid var(--green);padding:4px 0 4px 17px}.note-box h3{font-size:14px}.note-box p{font-size:12px;color:var(--muted);margin-top:5px}.season-progress{font-size:12px}.season-progress .dates{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin:7px 0}.track{height:6px;background:#dce3d6;border-radius:6px;overflow:hidden}.track i{height:100%;display:block;background:var(--green)}.notice{padding:13px 16px;border-radius:7px;background:#e9ede3;color:#54664f;font-size:12px;line-height:1.8;margin-bottom:20px}.notice.amber{background:#f3ecd9;color:#846532}.two-col{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,1fr);gap:24px}.panel{background:#fff;border:1px solid var(--line);border-radius:11px;padding:23px;min-width:0}.panel h2{font-size:20px}.panel p.description{font-size:12px;color:var(--muted);margin-top:8px}.task-list{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:0}.task-item{border-top:1px solid var(--line);padding:16px 0;display:grid;grid-template-columns:31px minmax(0,1fr) auto;gap:12px;align-items:start}.task-item .num{font-size:10px;line-height:25px;width:25px;text-align:center;border:1px solid var(--line);border-radius:50%;color:var(--green)}.task-item strong{display:block;font-size:13px}.task-item p{font-size:11px;color:var(--muted);margin-top:4px}.task-item .chip{font-size:10px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.field{font-size:11px;color:#53635d;display:flex;flex-direction:column;gap:6px;min-width:0}.field.full{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid #cdd5c8;background:#fbfcf8;color:var(--ink);padding:10px;border-radius:5px;min-height:43px}textarea{min-height:90px;resize:vertical}.form-status{font-size:12px;color:var(--green);margin-top:12px;min-height:20px}.form-status.error{color:#a13929}.draft-list{display:grid;gap:9px;margin-top:18px;font-size:12px}.draft-row{padding:12px;border:1px dashed #c8d3c2;border-radius:6px;display:flex;justify-content:space-between;gap:10px;align-items:center}.draft-row button{border:0;background:none;color:var(--green);font-size:12px;padding:6px}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0}.tabs button{border:1px solid #cbd5c6;background:transparent;padding:9px 15px;border-radius:6px;font-size:12px;min-height:40px}.tabs button.active{background:#234f40;color:#fff;border-color:#234f40}.roadmap{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0 24px}.phase{border-top:3px solid #a9bda0;padding-top:12px}.phase:first-child{border-color:var(--green)}.phase .eyebrow{color:var(--muted);font-size:10px}.phase h3{margin:6px 0;font-size:15px}.phase p{font-size:12px;color:var(--muted)}.guide-copy{font-size:13px;line-height:1.9;overflow-wrap:anywhere}.guide-copy h1{font-size:24px;margin:0 0 18px}.guide-copy h2{font-size:19px;margin:25px 0 12px}.guide-copy h3{font-size:16px;margin:20px 0 10px}.guide-copy p,.guide-copy ul,.guide-copy ol{margin:10px 0}.guide-copy table{width:100%;border-collapse:collapse;font-size:12px;margin:18px 0}.guide-copy td,.guide-copy th{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.guide-copy th{background:#f0f3ea}.guide-copy blockquote{border-left:3px solid #c6b783;margin:15px 0;padding:4px 15px;color:var(--muted)}.guide-copy code{font-size:12px;background:#eff2e9;padding:2px 4px;border-radius:3px}.guide-copy pre{white-space:pre-wrap;word-break:break-word}.ladder{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:22px 0}.rank{padding:20px 8px;background:#fff;border:1px solid var(--line);border-radius:9px;text-align:center}.rank .emblem{font-size:28px;color:#799078}.rank:nth-child(4) .emblem,.rank:nth-child(5) .emblem,.rank:nth-child(6) .emblem{color:#b69659}.rank strong{display:block;font-size:13px;margin:8px 0}.rank small{color:var(--muted);font-size:10px}.rewards{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:22px 0}.reward{background:#fff;border:1px solid var(--line);border-radius:9px;padding:20px}.reward .cost{font-size:20px;font-weight:700;color:var(--green)}.reward h3{font-size:13px;margin:9px 0 6px}.reward p{font-size:11px;color:var(--muted)}.report-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:22px 0}.report-stat{border-left:1px solid #cbd5c6;padding-left:19px}.report-stat strong{display:block;font-size:28px}.report-stat span{font-size:11px;color:var(--muted)}.chart-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:15px 0}.chart-toolbar select{width:auto;font-size:12px}.chart-wrap{min-width:0}.chart-wrap svg{width:100%;height:245px;display:block}.day-strip{display:grid;grid-template-columns:repeat(10,1fr);gap:8px;margin:16px 0}.day-cell{border:1px dashed #c9d3c2;border-radius:5px;padding:10px 2px;text-align:center;font-size:11px;color:#8a9687}.day-cell.recorded{border-style:solid;background:#e7f1dc;border-color:#bdcfa9;color:#486a41}.day-cell strong{display:block;font-size:14px}.source-list{margin-top:18px}.source-row{padding:15px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap}.source-row strong{font-size:13px;display:block}.source-row p{font-size:11px;color:var(--muted);margin-top:3px}.source-row a{font-size:12px}.source-summary{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}.source-summary dl{margin:0}.source-summary dt{font-size:11px;color:var(--muted)}.source-summary dd{margin:3px 0 13px;font-size:13px}.footer{margin-top:36px;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;color:#849080;font-size:10px}.modal{border:0;border-radius:13px;padding:28px;max-width:540px;width:calc(100% - 32px);box-shadow:0 20px 80px #152f2d44;color:var(--ink)}.modal::backdrop{background:#10272488}.modal .close{float:right;background:#eef1e9;border:0;border-radius:50%;width:31px;height:31px;font-size:17px}.modal h2{margin:7px 35px 12px 0}.modal dl{margin:12px 0}.modal dt{font-size:11px;font-weight:700;color:var(--green);margin-top:16px}.modal dd{font-size:13px;margin:5px 0 0;line-height:1.8}.desktop-only{display:block}
@media(min-width:1450px){.main{padding:38px 55px}.hero{min-height:330px}.metric{min-height:165px}}@media(max-width:1100px){.app{grid-template-columns:185px minmax(0,1fr)}.sidebar{padding:26px 13px}.main{padding:27px 25px}.overview-top{grid-template-columns:minmax(0,1.45fr) minmax(240px,1fr);gap:16px}.hero{padding:23px;grid-template-columns:1.1fr .8fr}.hero h2{font-size:28px}.hero .character{margin-left:7px}.daily-card{padding:21px}.two-col{grid-template-columns:1fr}.metrics{gap:12px}.metric{padding:17px}.metric-rank{display:none}.metric-value{font-size:24px}}
@media(max-width:820px){.app{display:block}.sidebar{padding:17px 20px;display:block}.brand{padding:0}.brand strong{font-size:17px}.brand-mark{width:28px;height:28px}.brand small{font-size:9px}.season-tag,.sidebar-bottom{display:none}.nav{margin-top:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.nav button{justify-content:center;font-size:11px;padding:9px 5px;min-height:40px;gap:6px}.nav-icon{font-size:14px;width:16px}.main{padding:24px 20px}.topbar{margin-bottom:23px}.overview-top{grid-template-columns:1fr 1fr}.hero{grid-template-columns:1fr;min-height:300px}.hero-copy{max-width:100%}.hero .character{position:absolute;right:-12px;width:150px;bottom:25px;opacity:.37;z-index:0}.hero h2{font-size:29px}.hero-footer{max-width:150px}.daily-number strong{font-size:35px}.metrics{grid-template-columns:repeat(3,1fr)}.metric{padding:16px 13px}.metric-value{font-size:22px}.metric-foot{font-size:10px}.overview-bottom{grid-template-columns:1fr}.ladder{grid-template-columns:repeat(3,1fr)}.rewards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){h1{font-size:25px}.main{padding:20px 16px}.topbar{align-items:start}.breadcrumb{font-size:10px}.status{font-size:10px;justify-content:flex-end;max-width:180px}.page-intro{align-items:start;flex-direction:column;gap:13px}.page-intro .button{min-height:40px}.overview-top{grid-template-columns:1fr;gap:16px}.hero{min-height:280px;padding:25px;grid-template-columns:1.05fr .9fr}.hero .character{position:static;opacity:1;width:100%;margin-left:0;z-index:1}.hero h2{font-size:28px}.hero p{font-size:11px}.hero-footer{max-width:100%;font-size:9px;padding-top:22px}.hero-meta{gap:7px}.hero .badge{font-size:9px}.daily-card{padding:20px}.daily-number{margin-top:12px}.mini-tasks{grid-template-columns:repeat(3,1fr);gap:10px;font-size:11px}.mini-tasks li{font-size:11px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.metric{min-height:148px;padding:15px}.metric-value{font-size:25px}.section-title{align-items:start}.section-title h2{font-size:20px}.section-title p{font-size:10px;max-width:110px;text-align:right}.note-box p{font-size:11px}.panel{padding:19px 17px}.roadmap{grid-template-columns:1fr;gap:20px}.phase{border-top:0;border-left:3px solid #a9bda0;padding:0 0 0 14px}.phase:first-child{border-color:var(--green)}.fields{gap:12px}.field{font-size:11px}input,select,textarea{font-size:16px}.task-item{grid-template-columns:23px minmax(0,1fr);gap:9px}.task-item>.chip{grid-column:2;justify-self:start}.day-strip{gap:5px}.day-cell{font-size:9px;padding:7px 1px}.day-cell strong{font-size:12px}.chart-wrap svg{height:220px}.chart-toolbar{align-items:start;flex-direction:column}.chart-toolbar select{width:100%}.report-summary{gap:10px}.report-stat{padding-left:10px}.report-stat strong{font-size:23px}.source-summary{grid-template-columns:1fr}.source-row{gap:7px}.guide-copy{font-size:13px}.guide-copy table{font-size:11px;table-layout:fixed}.guide-copy td,.guide-copy th{padding:8px 5px;overflow-wrap:anywhere}.footer{font-size:9px}.desktop-only{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

