:root{--ink:#183c36;--muted:#7b8c80;--teal:#175d53;--line:#e5eae1;--paper:#f7f8f4}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 -apple-system,BlinkMacSystemFont,'Microsoft YaHei',sans-serif}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #79a892;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}header{max-width:940px;margin:auto;padding:22px 26px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.identity{display:flex;align-items:center;gap:12px}.identity b{display:block;font-size:23px;letter-spacing:2px}.identity small{display:block;color:var(--muted);font-size:11px;letter-spacing:2px}.mark{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:#144e46;color:#f4efdf;font-size:31px;font-weight:650}.private-label{font-size:10px;letter-spacing:2px;color:#8a9b8d}main{max-width:940px;margin:auto;padding:32px 26px 120px}.eyebrow{font-size:11px;letter-spacing:3px;color:#879883;margin-bottom:8px}h1{font-size:30px;line-height:1.3;font-weight:600;letter-spacing:1px;margin:0}h2{font-size:19px;font-weight:600;margin:0}h3{font-size:18px;margin:26px 0 10px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.banner{width:100%;display:block;aspect-ratio:1808/870;object-fit:cover;border-radius:20px;margin:25px 0}.dashboard{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.card{padding:25px;background:#fff;border:1px solid var(--line);border-radius:20px;margin-top:20px}.dashboard .card:first-child{margin-top:0}.dashboard>div>.card:first-child{margin-top:0}.muted{color:var(--muted)}.small{font-size:12px}.tag{background:#edf2e5;color:#77885f;padding:3px 9px;border-radius:6px;font-size:11px;white-space:nowrap}.primary,.secondary,.danger{padding:13px 20px;border-radius:11px;font-size:14px;font-weight:600;display:inline-block;text-align:center}.primary{background:var(--teal);color:white}.secondary{background:#edf2e9;color:#476e59}.danger{background:#fff0e9;color:#9c4a34}.link{background:transparent;color:#2b7460;padding:6px 0;font-size:13px}.mt{margin-top:22px}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:24px 0 18px;text-align:center}.day{color:#859381;font-size:11px}.dot{margin:7px auto 0;width:34px;height:34px;line-height:34px;background:#f0f3ec;border-radius:50%;font-size:17px}.dot.done{background:var(--teal);color:white}.dot.today{box-shadow:0 0 0 1px #97b3a1}.check{display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:transparent;padding:16px 0;border-bottom:1px solid #edf0e8;color:var(--ink)}.check:last-child{border:0;padding-bottom:0}.checkbox{width:25px;height:25px;display:grid;place-items:center;border:1px solid #ccd8c8;border-radius:8px;color:transparent;flex-shrink:0}.checkbox.done{background:var(--teal);color:#fff;border-color:var(--teal)}.check b{display:block;font-size:15px;font-weight:500}.check small{display:block;color:#90a08c;font-size:12px}.empty{padding:25px 10px;text-align:center;color:#83947c;font-size:13px}.empty strong{display:block;font-size:16px;font-weight:500;color:#537258;margin-bottom:6px}.empty .primary{margin-top:20px}.note{width:100%;text-align:left;display:block;background:transparent;padding:18px 0;border-bottom:1px solid #edf0e8;overflow-wrap:anywhere;color:var(--ink)}.note:last-child{border:0}.note-title{font-size:16px;font-weight:600;margin:8px 0 4px}.note-text{color:#84947f;font-size:13px;white-space:pre-wrap}.foot{text-align:center;font-size:11px;letter-spacing:1px;color:#98a38f;padding:30px 0 0}.intro{color:#879780;font-size:13px;margin-top:12px}.search{width:100%;padding:15px 17px;background:#fff;border:1px solid #dfe7d9;border-radius:12px;outline:0;margin-top:22px}.search:focus{border-color:#86ab8c;box-shadow:0 0 0 3px #175d5310}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.chip{padding:8px 14px;border:1px solid #e1e8dc;background:#fff;color:#85937b;border-radius:10px;font-size:12px}.chip.active{background:var(--teal);color:white;border-color:var(--teal)}.article-row{display:flex;gap:17px;padding:23px 0;border-bottom:1px solid #edf0e8}.article-row:last-child{border:0}.article-icon{width:55px;height:65px;display:grid;place-items:center;border-radius:11px;background:#eaf1e5;color:#769570;font:28px Georgia,serif;flex-shrink:0}.cover{width:70px;height:78px;object-fit:cover;border-radius:10px;flex-shrink:0}.article-row h3{font-size:16px;margin:0 0 7px;line-height:1.55}.article-row p{font-size:12px;color:#87967e;margin:0}.meta{font-size:11px;color:#93a088;margin-top:7px}.reading{max-width:690px;margin:auto}.reading h1{font-size:31px;line-height:1.5;margin:20px 0 10px}.reading .body-text{font-size:16px;line-height:1.95;color:#506b54;white-space:pre-wrap;overflow-wrap:anywhere}.article-cover{width:100%;max-height:400px;object-fit:contain;border-radius:14px;margin-top:20px}.notice{font-size:12px;color:#8a9b82;line-height:1.9;margin-top:23px}.source{background:#f0f5e9;padding:15px;border-radius:10px;margin-top:12px;font-size:12px;overflow-wrap:anywhere}.source a{color:#5b8160;text-decoration:underline}.actions{display:flex;gap:12px;margin-top:25px}.actions>*{flex:1}.back{display:inline-block;color:#80927b;background:transparent;padding:0 0 16px;font-size:13px}.stats{display:grid;grid-template-columns:repeat(3,1fr);text-align:center}.stats b{display:block;font-size:28px;font-weight:600;line-height:1.4}.stats small{font-size:12px;color:#8e9d81}.brand-row{display:flex;gap:16px;align-items:center}.brand-row .mark{width:65px;height:65px;font-size:43px}.toggle{display:flex;gap:4px;background:#eaf0e2;padding:6px;border-radius:13px;margin-top:22px}.toggle button{flex:1;padding:11px 5px;border-radius:9px;background:transparent;color:#849577;font-size:13px}.toggle button.active{background:#fff;color:var(--teal)}.menu{display:flex;align-items:center;justify-content:space-between;width:100%;padding:17px 0;background:transparent;color:#4f6f53;border-bottom:1px solid #edf0e8;font-size:14px;text-align:left}.menu:last-child{border:0}.menu span:last-child{color:#a0ad93}.form{max-width:650px;margin:auto}.field-label{display:block;font-size:14px;font-weight:600;margin:20px 0 9px}.input{display:block;width:100%;background:#f8faf6;border:1px solid #e0e8d9;border-radius:11px;padding:13px 15px;outline:0;color:var(--ink)}.input:focus{border-color:#86ab8c}textarea.input{height:210px;resize:vertical;line-height:1.8}.field-note{font-size:11px;color:#98a58a;margin-top:9px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}nav{position:fixed;bottom:0;left:0;right:0;margin:auto;background:#ffffffed;backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;justify-content:center;padding:12px 20px max(14px,env(safe-area-inset-bottom));z-index:2}nav a{display:flex;gap:7px;align-items:center;justify-content:center;width:160px;font-size:13px;color:#94a088}nav svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.5}nav a.active{color:var(--teal);font-weight:650}#toast{position:fixed;left:50%;bottom:95px;transform:translateX(-50%);padding:12px 22px;background:#193e35ed;color:#fff;font-size:13px;border-radius:10px;z-index:5;max-width:90%;text-align:center}dialog{border:1px solid var(--line);border-radius:20px;padding:28px;max-width:390px;width:calc(100% - 38px);color:var(--ink)}dialog::backdrop{background:#133e354f}dialog p{font-size:14px;color:#7f9077}.warning{padding:12px 16px;background:#fff5e4;color:#927740;border-radius:10px;font-size:12px;margin-top:14px}.error{color:#a55f4f;font-size:13px}
@media(max-width:680px){header{padding:17px 20px}.identity b{font-size:21px}.private-label{display:none}main{padding:25px 20px 110px}.dashboard{grid-template-columns:1fr;gap:20px}h1{font-size:26px}.card{padding:22px;border-radius:18px}.banner{margin:23px 0;border-radius:16px}.reading h1{font-size:28px}.article-row h3{font-size:15px}.article-row{gap:14px}.week{gap:5px}.source{font-size:11px}nav a{width:33.33%;flex-direction:column;gap:3px;font-size:11px}.form-grid{grid-template-columns:1fr;gap:0}.actions{gap:9px}.primary,.secondary,.danger{padding:13px 15px}.article-icon{width:50px;height:62px}.brand-row h1{font-size:26px}}
