:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Apple Color Emoji","Segoe UI Emoji",sans-serif;color:#26362e;background:#f4f5f3;font-synthesis:none;--green:#217657;--line:#dfe5df;--muted:#77817a;--soft:#eaf2eb}*{box-sizing:border-box}body{margin:0}button,a,input,select{-webkit-tap-highlight-color:transparent}button,select,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #89bba6;outline-offset:3px}button{border:1px solid var(--line);background:white;border-radius:12px;min-height:44px;padding:9px 14px}button:disabled{opacity:.45;cursor:default}a{color:var(--green);text-decoration:none}.topbar{height:76px;border-bottom:1px solid var(--line);padding:0 max(24px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;background:#fbfcfa;gap:10px}.brand{display:flex;align-items:center;gap:12px;color:#273e32;font-weight:650;white-space:nowrap}.brand-mark{display:grid;place-items:center;background:#2c654c;color:white;width:38px;height:38px;border-radius:12px;font-size:22px}.brand small{font-size:12px;font-weight:400;color:var(--muted);margin-left:8px}.sync{font-size:12px;color:var(--green);text-align:right;line-height:1.5}.sync.offline{color:#a2662b}main{max-width:1120px;margin:0 auto;padding:40px 24px 80px}.eyebrow{font-size:12px;font-weight:600;letter-spacing:2px;color:var(--green)}h1{font-size:34px;letter-spacing:-1px;margin:10px 0 12px;font-weight:650}h2{font-size:22px;margin:0}.intro{max-width:630px;color:#657169;line-height:1.8;font-size:14px}.notice{font-size:12px;color:#8a7770;line-height:1.8;margin:22px 0 0;border-left:2px solid #cfbfb3;padding-left:12px}.clients{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:32px}.client-card{display:block;min-height:208px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:24px;position:relative;transition:border-color .15s,transform .15s}.client-card:hover{border-color:#8faf9d;transform:translateY(-2px)}.client-card h2{font-size:20px;color:#2e4235;margin:18px 0 9px}.client-card .number{font-family:ui-monospace,monospace;color:#9daaa0;font-size:13px}.client-card .arrow{position:absolute;right:24px;top:22px;font-size:22px;color:var(--green)}.card-meta{font-size:12px;color:var(--muted);line-height:1.8}.progress-line{height:4px;border-radius:5px;background:#edf1ec;margin-top:20px;overflow:hidden}.progress-fill{height:100%;background:#448564;max-width:100%;transition:width .3s}.card-progress{font-size:12px;color:#5d6e62;margin-top:9px}.back{display:inline-flex;min-height:40px;align-items:center;font-size:13px;color:var(--muted);margin-bottom:12px}.project-head{display:flex;gap:18px;align-items:flex-start;justify-content:space-between}.project-head h1{font-size:28px}.project-meta{font-size:12px;line-height:1.8;color:var(--muted)}.project-progress{min-width:140px;text-align:right;padding-top:15px}.project-progress strong{font-size:24px;font-weight:600}.project-progress span{font-size:12px;color:var(--muted)}.filters{position:sticky;top:0;z-index:5;background:rgba(244,245,243,.98);padding:16px 0 12px;border-bottom:1px solid var(--line)}.roles{display:flex;gap:8px;overflow:auto;padding:2px 1px 10px;scrollbar-width:none}.roles button{white-space:nowrap;border-radius:22px;min-height:44px;font-size:12px;padding:9px 13px;background:transparent}.roles button.active{background:#2f684f;color:white;border-color:#2f684f}.roles .role-count{opacity:.65;font-size:10px;margin-left:5px}.filter-row{display:flex;align-items:center;gap:9px}.date-select{border:1px solid var(--line);border-radius:11px;background:white;padding:11px 12px;min-height:44px;font-size:14px;max-width:260px;flex:1}.filter-row .nav-day{min-width:44px;padding:8px}.only-pending{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap;margin-left:auto;min-height:44px}.only-pending input{accent-color:var(--green);width:17px;height:17px}.continue{font-size:12px;white-space:nowrap}.day-summary{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;margin:20px 0 25px;gap:12px}.messages{max-width:840px;margin:0 auto}.message{display:flex;gap:10px;margin-bottom:22px;align-items:flex-start;scroll-margin-top:170px}.avatar{flex-shrink:0;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:#e1e9df;color:#496c4a;font-size:12px;font-weight:600}.avatar.M{background:#e3e9f1;color:#5b7087}.avatar.S{background:#ece4d9;color:#927c52}.avatar.A{background:#dbeadf;color:#417951}.message-main{max-width:calc(100% - 94px);min-width:0}.message-meta{font-size:11px;color:var(--muted);display:flex;gap:8px;align-items:center;min-height:25px}.bubble{background:#fff;border:1px solid #e5e9e3;border-radius:3px 15px 15px 15px;padding:13px 16px;line-height:1.75;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:0 1px 1px #18392103}.message.self{flex-direction:row-reverse}.message.self .message-meta{justify-content:flex-end}.message.self .bubble{background:#e1eddf;border-color:#d6e4d3;border-radius:15px 3px 15px 15px}.actions{display:flex;flex-direction:column;align-items:center;gap:4px;padding-top:25px;flex-shrink:0}.copy-button{min-width:44px;min-height:44px;border-color:transparent;background:transparent;padding:7px;color:#89948b;font-size:18px}.copy-button:hover{background:#e6ece6}.copy-button.done{color:var(--green)}.copy-button.pending{color:#ad7627}.undo{font-size:10px;padding:3px;min-height:44px;border:0;background:transparent;color:#97a096}.copied-at{font-size:10px;color:#77957a;margin-top:5px}.report-preview{display:block;padding:0;border:0;background:white;width:min(100%,660px);border-radius:8px;overflow:hidden;min-height:90px}.report-preview img{width:100%;height:auto;display:block}.report-caption{font-size:11px;color:#718378;margin-top:7px;white-space:normal}.report-bubble{padding:9px}.date-break{text-align:center;color:#89948b;font-size:12px;margin:30px 0 22px}.empty{text-align:center;color:var(--muted);padding:60px 10px;line-height:1.8}.loading{color:var(--muted);padding:40px;text-align:center}.footer-note{max-width:840px;margin:25px auto;font-size:11px;line-height:1.8;color:#91a095;border-top:1px solid var(--line);padding-top:18px}.toast{position:fixed;bottom:calc(25px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:min(90vw,500px);background:#2b4337;color:#fff;padding:13px 20px;border-radius:12px;font-size:13px;line-height:1.6;z-index:40;box-shadow:0 5px 24px #13382322}.toast.error{background:#825334}dialog{width:min(96vw,1200px);max-height:90dvh;border:1px solid var(--line);border-radius:18px;padding:18px;background:#f7f9f5;color:inherit}dialog::backdrop{background:#102a226b}.dialog-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:10px}.dialog-bar strong{font-size:14px}.report-scroll{overflow:auto;max-height:64dvh;background:white}.report-scroll img{width:1400px;max-width:none;display:block}.report-tip{font-size:12px;color:var(--muted)}.download{display:inline-block;padding:12px;background:#e4eee3;border-radius:10px;font-size:13px}.load-more{display:block;margin:24px auto}.day-complete{color:var(--green)}
@media(max-width:760px){.topbar{padding:0 18px;height:65px}.brand small{display:block;margin-left:0;font-size:10px;margin-top:2px}.brand-mark{width:34px;height:34px}.sync{max-width:145px;font-size:10px}main{padding:26px 16px 70px}h1{font-size:28px}.clients{grid-template-columns:1fr;gap:12px;margin-top:24px}.client-card{min-height:170px;padding:20px}.client-card h2{margin:12px 0 7px}.client-card .arrow{top:20px;right:20px}.client-card .progress-line{margin-top:16px}.intro{font-size:13px}.project-head h1{font-size:23px}.project-progress{min-width:78px;padding-top:10px}.project-progress strong{font-size:21px}.project-meta{font-size:11px}.filters{margin:0 -16px;padding:14px 12px 10px}.roles{gap:5px}.roles button{padding:8px 10px;font-size:11px}.roles .role-count{display:none}.filter-row{gap:5px;flex-wrap:wrap}.date-select{font-size:13px;max-width:none;width:calc(100% - 98px);flex:none}.only-pending{margin-left:3px;flex:1}.continue{min-height:44px;padding:6px 10px}.message{gap:6px;margin-bottom:20px}.avatar{width:29px;height:29px;border-radius:9px;font-size:10px}.message-main{max-width:calc(100% - 85px)}.message-meta{font-size:10px;gap:5px;min-height:23px}.bubble{padding:11px 12px;font-size:14px;line-height:1.7}.actions{padding-top:22px;gap:1px}.copy-button{min-width:44px;padding:4px;font-size:17px}.undo{font-size:9px}.day-summary{font-size:11px;margin:17px 0 22px}.report-bubble{padding:7px}.notice{font-size:11px}.report-scroll img{width:1200px}.dialog-bar button{min-height:40px}.date-break{margin:24px 0 18px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.export-link{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;margin:0 0 22px;border:1px solid #326650;border-radius:10px;color:#254d3d;text-decoration:none;font-weight:600;background:#fff}.export-link:hover{background:#edf4ee}.wechat-time{display:block;text-align:center;font-size:12px;color:#858b87;margin:20px 0 12px}

.note-preview{width:min(100%,340px);min-height:0}.note-preview img{max-height:420px;object-fit:contain}.note-bubble .message-text{margin-top:9px}.message-text a,.delivery-link{text-decoration:underline;text-underline-offset:3px}.delivery-link{display:block;margin-top:8px}.report-scroll img.note-full{width:auto;max-width:100%;height:auto;margin:0 auto}
