:root{--nav: #101d2a;--nav2: #142535;--bg: #f4f7fb;--panel: #fff;--text: #101927;--muted: #657184;--line: #dfe5ed;--blue: #1263e7;--red: #e33b36;--orange: #f07b13;--green: #2d9b49;--safe-bottom: env(safe-area-inset-bottom, 0px);--tab-height: 56px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);font-family:-apple-system,Microsoft YaHei UI,PingFang SC,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer;border:none;background:none}a{color:var(--blue);text-decoration:none}.mobile-app{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;padding-bottom:calc(var(--tab-height) + var(--safe-bottom))}.m-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.m-header-left{display:flex;align-items:center;gap:10px}.m-logo{width:28px;height:28px;color:var(--blue)}.m-date{display:block;font-size:16px;font-weight:700;letter-spacing:.01em}.m-header-left small{display:block;font-size:11px;color:var(--muted);margin-top:1px}.m-header-right{display:flex;align-items:center;gap:8px}.m-header-right button{width:38px;height:38px;display:grid;place-items:center;border-radius:8px;color:var(--muted)}.m-header-right button:active{background:#f0f3f7}.m-header-right svg{width:20px;height:20px}.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--blue);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.m-search{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.m-search svg{width:18px;height:18px;color:var(--muted);flex:none}.m-search input{flex:1;border:none;outline:none;font-size:15px;background:transparent}.m-search button{width:28px;height:28px;display:grid;place-items:center;color:var(--muted)}.m-search button svg{width:16px;height:16px}.m-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 12px 20px}.m-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.m-metrics button{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 8px;text-align:center}.m-metrics button:active{background:#f8fafc}.m-metrics span{display:block;font-size:11px;color:var(--muted)}.m-metrics strong{display:block;margin-top:4px;font-size:24px;font-weight:700;font-family:Georgia,serif}.blue{color:var(--blue)}.red{color:var(--red)}.orange{color:var(--orange)}.green{color:var(--green)}.task-groups{display:grid;gap:4px}.view-title{display:flex;align-items:center;justify-content:space-between;padding:12px 4px 8px}.view-title h2{font-size:17px}.view-title span{font-size:13px;color:var(--muted)}.task-group{margin-bottom:4px}.group-header{display:flex;align-items:center;gap:8px;width:100%;padding:10px 8px;text-align:left;color:var(--muted);font-size:13px}.group-header svg{width:16px;height:16px}.group-header b{color:var(--text);font-size:14px}.group-header em{font-style:normal;min-width:22px;height:22px;display:grid;place-items:center;border-radius:11px;background:#eef1f6;font-size:12px;color:var(--muted)}.task-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:8px;transition:box-shadow .15s}.task-card:active{box-shadow:0 2px 12px #0000000f}.task-card.is-done{opacity:.55}.task-card.is-done .card-title{text-decoration:line-through}.card-top{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:start}.card-check{width:26px;height:26px;border:2px solid #b8c4d4;border-radius:6px;display:grid;place-items:center;background:var(--panel);color:var(--blue);margin-top:1px}.card-check.lg{width:30px;height:30px;border-radius:8px}.card-check.checked{background:var(--blue);border-color:var(--blue);color:#fff}.card-check svg{width:16px;height:16px}.card-check.lg svg{width:20px;height:20px}.card-main{min-width:0}.card-title{font-size:15px;font-weight:650;line-height:1.35;display:flex;align-items:center;gap:6px}.focus-star{width:14px;height:14px;color:#f2a410;flex:none}.card-action{margin-top:4px;font-size:12px;color:var(--muted);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-priority{padding:2px 8px;border-radius:5px;font-size:12px;font-weight:650;border:1px solid;white-space:nowrap}.p-高{color:var(--red);background:#fff3f2;border-color:#f5c6c2}.p-中{color:var(--orange);background:#fff7ed;border-color:#fdd9b3}.p-低{color:var(--muted);background:#f5f7fa;border-color:#dce2ea}.card-bottom{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}.card-project{padding:2px 8px;border-radius:4px;background:#e9f2ff;color:var(--blue);font-size:11px;font-weight:650}.card-project.uncategorized{background:#eef1f4;color:var(--muted)}.card-status{padding:4px 8px;border-radius:5px;border:1px solid #a7c3f5;color:#185ab8;font-size:12px;background:var(--panel);min-width:0}.s-待跟进中{color:var(--orange);border-color:#ffc084}.s-已完成{color:var(--green);border-color:#9ad0aa}.s-已搁置{color:var(--muted);border-color:#c8d0da}.card-bottom time{font-size:12px;color:#5a6779;margin-left:auto}.card-bottom time.late{color:var(--red);font-weight:700}.card-actions{display:flex;gap:4px}.card-actions button{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;color:var(--muted);background:var(--panel)}.card-actions button:active{background:#f0f3f7}.card-actions button svg{width:15px;height:15px}.focus-btn.active{color:var(--blue);border-color:#9ebdf1;background:#edf5ff}.card-blocker{display:flex;align-items:center;gap:6px;margin-top:8px;padding:8px 10px;border-radius:6px;background:#fff7ed;color:var(--orange);font-size:12px}.card-blocker svg{width:15px;height:15px;flex:none}.done-title{text-decoration:line-through;color:var(--muted)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;color:var(--muted);gap:6px}.empty-state svg{width:36px;height:36px;color:var(--green)}.empty-state b{font-size:15px}.empty-state span{font-size:13px}.fab-group{position:fixed;right:16px;bottom:calc(var(--tab-height) + var(--safe-bottom) + 16px);display:flex;flex-direction:column;gap:10px;z-index:8}.fab{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;box-shadow:0 6px 20px #00000026}.fab svg{width:24px;height:24px}.fab-primary{background:var(--blue);color:#fff}.fab-primary:active{background:#0e52c7}.fab-secondary{background:var(--panel);color:var(--blue);border:1px solid var(--line)}.fab-secondary:active{background:#f0f5ff}.m-tabs{position:fixed;bottom:0;left:0;right:0;z-index:12;display:flex;height:calc(var(--tab-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--panel);border-top:1px solid var(--line)}.m-tabs button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:10px;position:relative;transition:color .15s}.m-tabs button svg{width:22px;height:22px}.m-tabs button.active{color:var(--blue)}.m-tabs button em{position:absolute;top:4px;right:calc(50% - 18px);min-width:17px;height:17px;border-radius:9px;display:grid;place-items:center;background:var(--orange);color:#fff;font-style:normal;font-size:10px;font-weight:700}.sheet-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#0a142180;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;padding:0}.sheet{width:100%;max-width:520px;max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--panel);border-radius:16px 16px 0 0;padding:0;animation:slideUp .25s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:1}.sheet-header h2{font-size:17px}.sheet-header button{width:32px;height:32px;display:grid;place-items:center;color:var(--muted);border-radius:8px}.sheet-header button svg{width:20px;height:20px}.m-form{padding:0 20px 24px}.m-form .m-field{display:grid;gap:6px;margin-bottom:14px;font-size:12px;font-weight:650;color:#475569}.m-form input,.m-form select,.m-form textarea{width:100%;padding:11px 12px;border:1px solid #d5dce6;border-radius:8px;outline:none;font-size:15px;background:var(--panel);-webkit-appearance:none}.m-form input:focus,.m-form select:focus,.m-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #e6f0ff}.m-form textarea{min-height:100px;resize:vertical;line-height:1.6}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check-field{display:flex!important;align-items:center;gap:10px;margin:8px 0 16px;font-size:14px;font-weight:600;color:#475569}.check-field input{width:18px;height:18px;accent-color:var(--blue)}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.form-actions button{height:42px;padding:0 20px;border-radius:8px;font-weight:650;font-size:14px}.form-actions>button:first-child{border:1px solid var(--line);background:var(--panel);color:var(--text)}.primary{background:var(--blue);color:#fff;border:none;box-shadow:0 4px 12px #1263e72e}.primary:active{background:#0e52c7}.primary:disabled{opacity:.45;cursor:not-allowed}.form-task-name{padding:10px 12px;margin:12px 0;border-radius:8px;background:#f3f6fa;color:var(--text);font-size:14px;font-weight:600}.form-hint{margin:8px 0 12px;color:var(--muted);font-size:12px}.quick-input{display:block;width:100%;min-height:140px!important;font-size:13px;line-height:1.7}.progress-history{max-height:140px;overflow:auto;margin:10px 0;border:1px solid var(--line);border-radius:8px}.progress-history b{display:block;padding:8px 12px;background:#f4f7fb;color:var(--muted);font-size:12px}.progress-history div{display:grid;grid-template-columns:80px 1fr;gap:8px;padding:8px 12px;border-top:1px solid var(--line);font-size:12px}.progress-history time{color:#7d8998}.progress-history p{margin:0;color:#364456}.task-detail{padding-bottom:20px}.detail-body{padding:0 20px}.detail-title-row{display:flex;align-items:start;gap:12px;padding:16px 0 12px}.detail-title-row h3{font-size:18px;line-height:1.4;flex:1}.detail-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.detail-info{margin-bottom:16px}.detail-row{display:grid;grid-template-columns:90px 1fr;gap:8px;padding:10px 0;border-bottom:1px solid #f0f3f7;font-size:14px}.detail-row span{color:var(--muted);font-size:13px}.detail-row p{color:var(--text)}.detail-row p.late{color:var(--red);font-weight:700}.detail-row p.blocker-text{color:var(--orange)}.detail-logs{margin:12px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.detail-logs b{display:block;padding:10px 14px;background:#f4f7fb;font-size:13px;color:var(--muted)}.detail-logs div{display:grid;grid-template-columns:80px 1fr;gap:8px;padding:10px 14px;border-top:1px solid var(--line);font-size:13px}.detail-logs time{color:#7d8998}.detail-logs p{margin:0;color:#364456}.detail-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:16px 20px}.detail-actions button{display:flex;align-items:center;justify-content:center;gap:6px;height:42px;border:1px solid var(--line);border-radius:8px;font-size:13px;font-weight:600;color:var(--text);background:var(--panel)}.detail-actions button:active{background:#f0f3f7}.detail-actions button svg{width:16px;height:16px}.detail-actions button.danger{color:var(--red);border-color:#efc0bd}.detail-actions button.danger:active{background:#fff5f4}.focus-view{padding:4px 0}.focus-header{display:flex;align-items:center;gap:12px;padding:12px 4px 16px}.focus-icon{width:30px;height:30px;color:var(--blue)}.focus-header h2{font-size:20px}.focus-header p{font-size:13px;color:var(--muted);margin-top:2px}.focus-list{list-style:none;display:grid;gap:8px}.focus-list li{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.focus-rank{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--orange);color:#fff;font-weight:750;font-size:14px}.focus-rank.first{background:var(--red)}.focus-content{min-width:0}.focus-title{border:none;background:none;padding:0;text-align:left;display:block;width:100%}.focus-title b{font-size:15px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.focus-content small{display:block;margin-top:3px;color:var(--blue);font-size:12px}.focus-btns{display:flex;gap:4px}.focus-btns button{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;color:var(--muted)}.focus-btns button:active{background:#f0f3f7}.focus-btns button svg{width:18px;height:18px}.focus-empty{display:flex!important;flex-direction:column;align-items:center;padding:40px 20px;color:var(--muted);gap:8px;border:none!important;background:transparent!important}.focus-empty svg{width:36px;height:36px;color:#c0c8d4}.focus-empty b{font-size:15px;color:var(--text)}.focus-empty small{font-size:13px}.followup-remind{margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}.followup-remind h3{font-size:15px;margin-bottom:10px;padding:0 4px}.followup-item{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:center;width:100%;padding:12px;margin-bottom:6px;border:1px solid #ffaaa4;border-radius:8px;background:#fff1f0;text-align:left}.followup-item svg{width:20px;height:20px;color:var(--red)}.followup-item b{display:block;font-size:14px;color:#7b2a28}.followup-item small{display:block;font-size:11px;color:var(--red);margin-top:2px}.report-view{padding:4px 0}.report-header{display:flex;align-items:start;gap:12px;padding:12px 4px 16px}.report-icon{width:32px;height:32px;color:var(--blue);flex:none}.report-header small{color:var(--blue);font-weight:700;font-size:11px}.report-header h2{font-size:22px;margin:4px 0}.report-header p{font-size:13px;color:var(--muted);margin:0}.report-stats{display:flex;gap:20px;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-bottom:14px;font-size:13px;color:#5c6878}.report-stats b{margin-left:4px;font-size:20px}.copy-report-btn{width:100%;height:44px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;font-weight:650;font-size:15px;margin-bottom:18px}.copy-report-btn svg{width:18px;height:18px}.report-section{margin-bottom:16px;border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden}.report-section h3{padding:12px 16px;font-size:15px;border-bottom:1px solid var(--line);background:#f8fafc;display:flex;align-items:center;justify-content:space-between}.report-section h3 span{min-width:24px;height:24px;display:grid;place-items:center;border-radius:12px;background:#e8eef7;font-size:12px;color:#516174}.report-section article{padding:12px 16px;border-bottom:1px solid var(--line)}.report-section article:last-child{border-bottom:none}.report-section article b{font-size:14px;display:block}.report-section article small{color:#7a8797;font-size:11px;display:block;margin-top:2px}.report-section article p{margin:6px 0 0;color:#475569;font-size:13px;line-height:1.55}.report-section article.followup-article{display:flex;align-items:start;gap:10px}.report-section article.followup-article .warn-icon{color:var(--red);width:18px;height:18px;flex:none;margin-top:2px}.report-empty{padding:20px;color:var(--muted);font-size:13px;text-align:center}.report-text{margin:0;padding:16px;border-radius:10px;background:#111d2b;color:#dfe7ef;white-space:pre-wrap;font:12px/1.75 -apple-system,Microsoft YaHei UI,sans-serif;overflow-x:auto}.settings-view{padding:4px 0}.settings-view h2{font-size:20px;padding:12px 4px 16px}.setting-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:10px}.setting-card label{display:grid;gap:6px;font-size:12px;font-weight:650;color:#475569;margin-bottom:12px}.setting-card input{width:100%;padding:11px 12px;border:1px solid #d5dce6;border-radius:8px;font-size:14px;outline:none}.setting-card input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #e6f0ff}.setting-card .primary{width:100%;height:42px;border-radius:8px;font-weight:650;font-size:14px}.sync-status{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text)}.icon-green{color:var(--green);width:20px;height:20px}.icon-gray{color:var(--muted);width:20px;height:20px}.setting-card h3{font-size:14px;margin-bottom:10px;color:var(--muted)}.data-stats{display:flex;gap:20px;font-size:14px}.data-stats b{font-size:20px;display:block;margin-top:2px}.setting-card.about{text-align:center;color:var(--muted);font-size:13px}.setting-card.about p{margin:2px 0}.m-toast{position:fixed;z-index:40;left:50%;bottom:calc(var(--tab-height) + var(--safe-bottom) + 20px);transform:translate(-50%);padding:10px 20px;border-radius:10px;background:#152333;color:#fff;box-shadow:0 8px 28px #0003;font-size:14px;font-weight:500;animation:toastIn .2s ease-out;white-space:nowrap}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(min-width:600px){.m-content{padding:16px 20px 24px}.m-metrics{gap:12px}.m-metrics button{padding:16px 12px}.m-metrics strong{font-size:32px}.card-title{font-size:16px}.task-card{padding:16px}.sheet{border-radius:16px;margin-bottom:20px;max-height:85vh}.sheet-bg{align-items:flex-end;padding:20px}.detail-actions{grid-template-columns:repeat(4,1fr)}}@media(min-width:900px){.mobile-app{max-width:680px;margin:0 auto}.m-tabs{max-width:680px;left:50%;transform:translate(-50%);border-radius:12px 12px 0 0}.fab-group{right:calc(50% - 324px)}}
