/* 任务中心（2026-10-19 改版）：简洁、安静、一眼看清“轮到谁”。手机 390px 优先，不出现套着的内部滚动框。 */
.task-center{--tc-ink:#1f2d3a;--tc-text:#33475a;--tc-muted:#7b8a96;--tc-line:#e8edf1;--tc-soft:#f5f7f9;--tc-teal:#009f8d;--tc-teal-soft:#e6f6f3;--tc-orange:#c2410c;--tc-orange-soft:#fff4e8;--tc-red:#c73b46;--tc-red-soft:#fdeeee;--tc-blue-soft:#e9f1fb;min-width:0;color:var(--tc-text)}
.task-center [hidden],[data-task-modal] [hidden]{display:none!important}
.task-center .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tc-page{max-width:980px;margin:0 auto}
.tc-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.tc-head h2{margin:0;font-size:22px;color:var(--tc-ink);font-weight:750;flex:1;min-width:0}
.tc-head-actions{display:flex;align-items:center;gap:8px}
.tc-back{flex:none}
.tc-icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;border:1px solid #d8e3e8;border-radius:8px;background:#fff;color:var(--tc-text);font-size:18px;line-height:1;cursor:pointer;list-style:none;user-select:none}
.tc-icon-btn::-webkit-details-marker{display:none}
.tc-menu{position:relative}
.tc-menu>summary{list-style:none}
.tc-menu-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:15;min-width:176px;padding:6px;border:1px solid var(--tc-line);border-radius:10px;background:#fff;box-shadow:0 12px 32px #12334b26;display:grid;gap:2px}
.tc-menu-item{display:block;width:100%;text-align:left;padding:10px 12px;border:0;border-radius:7px;background:none;color:var(--tc-ink);font-size:14px;cursor:pointer;white-space:nowrap}
.tc-menu-item:hover,.tc-menu-item:focus-visible{background:var(--tc-soft)}
.tc-menu-item.danger{color:var(--tc-red)}
.tc-menu-note{margin:4px 6px;padding:8px 10px;border-radius:7px;background:var(--tc-soft);font-size:12px;line-height:1.6;color:var(--tc-muted);white-space:normal;max-width:240px}

/* 搜索、筛选与页签 */
.tc-toolbar{display:flex;gap:8px;align-items:flex-start;margin-bottom:10px;flex-wrap:wrap}
.tc-search{flex:1 1 220px;min-width:0;display:block}
.tc-search input{width:100%;height:38px;padding:0 12px 0 34px;border:1px solid #dde5eb;border-radius:9px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237b8a96' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") 11px center no-repeat;font:inherit;font-size:14px;color:var(--tc-ink)}
.tc-filter{position:relative}
.tc-filter>summary{list-style:none;height:38px}
.tc-filter>summary::-webkit-details-marker{display:none}
.tc-filter>summary.active{border-color:var(--tc-teal);color:var(--tc-teal)}
.tc-filter-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:12;width:min(540px,calc(100vw - 32px));display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end;padding:12px;border:1px solid var(--tc-line);border-radius:10px;background:#fff;box-shadow:0 12px 32px #12334b26}
.tc-active-filters{display:flex;align-items:center;gap:8px;margin:-2px 0 10px;font-size:12px;color:var(--tc-muted)}
.tc-field-control{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:12px;font-weight:600;color:#55697a}
.tc-field-control select,.tc-field-control input,.tc-field-control textarea{width:100%;min-width:0;padding:9px 10px;border:1px solid #d9e2e9;border-radius:8px;background:#fff;color:var(--tc-ink);font:inherit;font-size:14px;font-weight:400}
.tc-tabs-wrap{position:relative;margin:0 0 12px}
.tc-tabs{display:flex;gap:4px;margin:0;border-bottom:1px solid var(--tc-line);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
/* 页签放不下时右侧渐隐，提示可以左右滑动看到「全部」等页签 */
.tc-tabs-wrap::after{content:"";position:absolute;top:0;right:0;bottom:1px;width:36px;pointer-events:none;background:linear-gradient(90deg,#f4f7f900,#f4f7f9 80%);opacity:0;transition:opacity .15s}
.tc-tabs-wrap.can-scroll:not(.at-end)::after{opacity:1}
.tc-tabs::-webkit-scrollbar{display:none}
.tc-tab{flex:none;display:inline-flex;align-items:center;gap:6px;padding:10px 12px 11px;border:0;border-bottom:2px solid transparent;background:none;color:var(--tc-muted);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;margin-bottom:-1px}
.tc-tab b{flex:none;min-width:18px;padding:1px 6px;border-radius:10px;background:#edf1f4;color:#5b6b78;font-size:11px;font-weight:700;text-align:center}
.tc-tab.active{color:var(--tc-ink);border-bottom-color:var(--tc-teal)}
.tc-tab.active b{background:var(--tc-teal);color:#fff}

/* 列表 */
.tc-list{background:#fff;border:1px solid var(--tc-line);border-radius:12px;overflow:hidden}
.tc-group+.tc-group{border-top:1px solid var(--tc-line)}
.tc-group-head{display:flex;align-items:center;gap:6px;margin:0;padding:10px 16px 6px;font-size:12px;font-weight:700;color:var(--tc-muted);letter-spacing:.02em}
.tc-group-head span{font-weight:600}
.tc-group-head.danger{color:var(--tc-red)}
.tc-group-toggle{width:100%;border:0;background:none;cursor:pointer;padding:12px 16px;justify-content:space-between;font-size:13px}
.tc-row{display:flex;align-items:center;gap:12px;min-height:60px;padding:8px 16px;border-top:1px solid #f0f3f6;position:relative}
.tc-group-head+.tc-rows>.tc-row:first-child,.tc-rows>.tc-batch:first-child>.tc-row{border-top:0}
.tc-row.is-mine::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:#f08a24}
.tc-row.is-done .tc-row-title{color:#8a99a5;text-decoration:line-through;text-decoration-color:#c5ced5}
.tc-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;padding:4px 0;border:0;background:none;text-align:left;cursor:pointer;color:inherit;font:inherit}
.tc-row-main:focus-visible{outline:2px solid var(--tc-teal);outline-offset:2px;border-radius:6px}
.tc-row-title{display:flex;align-items:center;gap:6px;min-width:0;font-size:15px;font-weight:600;color:var(--tc-ink);line-height:1.45}
.tc-row-title>span:last-child,.tc-row-title>span:not(.tc-tag){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-row-meta{display:flex;align-items:center;flex-wrap:wrap;gap:2px 0;font-size:12px;line-height:1.6;color:var(--tc-muted);min-width:0}
.tc-row-meta>span{white-space:nowrap}
.tc-dot{font-style:normal;margin:0 5px;color:#c3cdd4}
.tc-next.mine{color:var(--tc-orange);font-weight:700}
.tc-due.overdue,.tc-danger{color:var(--tc-red)!important}
.tc-warn{color:#a16207}
.tc-comments.unread{position:relative;padding-right:7px;color:var(--tc-ink)}
.tc-comments.unread::after{content:"";position:absolute;right:0;top:3px;width:6px;height:6px;border-radius:50%;background:var(--tc-red)}
.tc-row-reason{font-size:12px;color:var(--tc-red);overflow-wrap:anywhere}
.tc-row-actions{display:flex;gap:6px;flex:none;align-items:center}
.tc-tag{flex:none;display:inline-flex;align-items:center;padding:1px 6px;border-radius:5px;background:#eef2f5;color:#5e6f7c;font-size:11px;font-weight:600;line-height:1.6}
.tc-tag.performance,.tc-tag.bounty{background:#fff3e2;color:#a3550c}
.tc-tag.series{background:var(--tc-blue-soft);color:#3a69a0}
.tc-check{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:1.5px solid #b9c5ce;background:#fff;padding:0;color:#fff;font-size:12px}
.tc-check .tc-check-mark{display:block;width:9px;height:5px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-1px) rotate(-45deg);opacity:0}
button.tc-check.can{cursor:pointer;color:var(--tc-teal);border-color:#7cc7bd}
button.tc-check.can:hover .tc-check-mark,button.tc-check.can:focus-visible .tc-check-mark{opacity:.55}
.tc-check.done,button.tc-check.can.done{background:var(--tc-teal);border-color:var(--tc-teal);color:#fff}
.tc-check.done .tc-check-mark{opacity:1}
.tc-check.review{border-style:dashed;border-color:#e09a3c}
.tc-check.closed{background:#eef1f3;border-color:#ccd5db}
.tc-check.series,.tc-check.add{border:0;background:none;font-size:15px;color:var(--tc-muted)}
.tc-series.is-blocked{background:#fffafa}
.tc-batch.open>.tc-row{background:#fbfcfd}
.tc-batch-rows{padding:0 16px 8px 50px;display:grid;gap:2px}
.tc-batch-member{display:flex;align-items:center;gap:8px;min-height:36px}
.tc-batch-open{display:flex;align-items:center;gap:8px;flex:1;min-width:0;border:0;background:none;text-align:left;cursor:pointer;font:inherit;font-size:13px;color:var(--tc-ink);padding:4px 0}
.tc-batch-open .tc-next{font-size:12px;color:var(--tc-muted)}
.tc-batch-open .tc-next.mine{color:var(--tc-orange)}
.tc-empty{padding:48px 20px;text-align:center;font-size:14px;color:var(--tc-muted)}
.tc-empty-line{margin:6px 0;font-size:13px;color:var(--tc-muted);line-height:1.7}
.tc-more-row{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px;border-top:1px solid var(--tc-line);font-size:12px;color:var(--tc-muted)}
.tc-muted{color:var(--tc-muted)}

/* 工作台卡片 */
.tc-dash{padding:16px 18px;margin-top:17px}
.tc-dash-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.tc-dash-head h2{margin:0;font-size:16px;color:#183d55;display:flex;align-items:center;gap:8px}
.tc-count{display:inline-flex;min-width:22px;justify-content:center;padding:1px 7px;border-radius:11px;background:#edf1f4;color:#5b6b78;font-size:12px}
.tc-count.hot{background:#fff1df;color:#b45309}
.tc-dash-row{display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 0;border:0;border-top:1px solid #eef2f5;background:none;text-align:left;cursor:pointer;font:inherit}
.tc-dash-title{font-size:14px;font-weight:600;color:#1f2d3a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 详情：单栏，桌面最宽 760px */
.tc-detail{max-width:760px;padding-bottom:8px}
.tc-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.tc-topbar-title{font-size:13px;color:var(--tc-muted);font-weight:600}
.tc-banner{display:grid;gap:4px;padding:11px 14px;border-radius:10px;background:var(--tc-soft);color:var(--tc-text);font-size:14px}
.tc-banner b{font-weight:700}
.tc-banner-link{display:grid;gap:2px;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.tc-banner-link small{font-size:12px;font-weight:500;text-decoration:underline;text-underline-offset:2px;opacity:.85}
.tc-banner.mine{background:var(--tc-orange-soft);color:#9a3412;box-shadow:inset 3px 0 0 #f08a24}
.tc-banner.done{background:var(--tc-teal-soft);color:#0b7466}
.tc-banner.danger{background:var(--tc-red-soft);color:#9b2f3c}
.tc-banner>span{font-size:13px;color:inherit;opacity:.85}
.tc-banner-reason{margin:2px 0 0;font-size:13px;line-height:1.7;color:var(--tc-red);white-space:pre-wrap;overflow-wrap:anywhere}
.tc-banner-reason small{display:block;color:var(--tc-muted);font-size:12px}
.tc-parent{margin:12px 0 0;font-size:13px;color:var(--tc-muted)}
.tc-title{margin:12px 0 4px;font-size:22px;line-height:1.4;color:var(--tc-ink);font-weight:750;overflow-wrap:anywhere}
.tc-title-button{border:0;background:none;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:text;overflow-wrap:anywhere}
.tc-title-button:hover{background:var(--tc-soft);border-radius:6px}
.tc-subline{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 12px;font-size:12px;color:var(--tc-muted)}
.tc-status{padding:2px 8px;border-radius:6px;background:#eef2f5;color:#536574;font-weight:600}
.tc-status.doing{background:var(--tc-blue-soft);color:#3a69a0}
.tc-status.review{background:#fff3e2;color:#a3550c}
.tc-status.done{background:var(--tc-teal-soft);color:#0b7466}
.tc-status.closed{background:#f0f2f4;color:#7b8a96}
.tc-link{border:0;background:none;padding:0;color:#2c6db3;font:inherit;font-size:12px;cursor:pointer;min-height:auto}
.btn.tc-link{border:0;box-shadow:none;padding:2px 4px;color:#2c6db3;background:none}
.tc-fields{border-top:1px solid var(--tc-line);border-bottom:1px solid var(--tc-line)}
.tc-field{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:8px;min-height:46px;border-top:1px solid #f1f4f6}
.tc-field:first-child{border-top:0}
.tc-field-label{font-size:13px;color:var(--tc-muted)}
.tc-field-value{display:flex;align-items:center;gap:8px;min-width:0;padding:7px 0;font-size:14px;color:var(--tc-ink);flex-wrap:wrap}
.tc-field-value small{display:block;font-size:12px;color:var(--tc-muted)}
.tc-field-button{width:100%;border:0;background:none;text-align:left;cursor:pointer;font:inherit;border-radius:7px;padding:7px 6px;margin-left:-6px}
.tc-field-button:hover,.tc-field-button:focus-visible{background:var(--tc-soft)}
.tc-edit-hint{margin-left:auto;font-size:12px;color:#9aa8b2;font-style:normal;flex:none}
.tc-avatar{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#dbe9f5;color:#285a86;font-size:13px;font-weight:700}
.tc-progress{display:inline-block;width:120px;max-width:50%;height:6px;border-radius:6px;background:#e7edf1;overflow:hidden}
.tc-progress i{display:block;height:100%;background:var(--tc-teal)}
.tc-steps{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:13px}
.tc-steps i{font-style:normal;color:#b5c1ca}
.tc-step{padding:2px 8px;border-radius:12px;background:#f1f4f6;color:#6c7c88;white-space:nowrap}
.tc-step.current{background:var(--tc-orange-soft);color:#9a3412;font-weight:700}
.tc-step.done{background:var(--tc-teal-soft);color:#0b7466}
.tc-note{margin:8px 0 0;padding:9px 12px;border-radius:8px;background:var(--tc-soft);font-size:12px;line-height:1.7;color:#55697a;overflow-wrap:anywhere}
.tc-note.warn{background:#fff7e6;color:#8a5a0f}
.tc-note.danger{background:var(--tc-red-soft);color:#9b2f3c}
.tc-section{padding:14px 0;border-bottom:1px solid var(--tc-line)}
.tc-section-head{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:15px;font-weight:700;color:var(--tc-ink)}
.tc-section-head h3{margin:0;font-size:15px;font-weight:700;color:var(--tc-ink)}
.tc-section-head span,.tc-section-head h3 span{font-size:12px;font-weight:600;color:var(--tc-muted)}
.tc-section-head>.tc-upload,.tc-section-head>.tc-segment{margin-left:auto}
.tc-desc{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.85;color:var(--tc-text)}
.tc-desc.clamped{display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden}
.tc-inline-actions{display:flex;gap:10px;margin-top:4px}
.tc-sub{display:flex;align-items:center;gap:10px;min-height:44px;border-top:1px solid #f1f4f6}
.tc-sub:first-of-type{border-top:0}
/* 多级分任务：下级缩进显示在同一张清单里 */
.tc-sub[data-depth]{padding-left:calc(var(--tc-depth,1) * 22px);position:relative}
.tc-sub[data-depth]::before{content:"";position:absolute;left:calc(var(--tc-depth,1) * 22px - 12px);top:0;bottom:50%;width:8px;border-left:1px solid #d9e2e9;border-bottom:1px solid #d9e2e9;border-bottom-left-radius:4px}
.tc-sub.is-mine .tc-sub-title{font-weight:650}
.tc-sub.is-target{background:var(--tc-orange-soft);border-radius:8px;box-shadow:inset 3px 0 0 #f08a24;transition:background .3s}
.tc-sub-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;padding:6px 0;border:0;background:none;text-align:left;cursor:pointer;font:inherit}
.tc-sub-title{font-size:14px;color:var(--tc-ink);overflow-wrap:anywhere}
.tc-sub.is-done .tc-sub-title{color:#8a99a5;text-decoration:line-through}
.tc-sub-add{display:flex;align-items:center;gap:10px;min-height:44px;border-top:1px solid #f1f4f6}
.tc-sub-add input{flex:1;min-width:0;height:36px;border:0;background:none;font:inherit;font-size:14px;color:var(--tc-ink);outline:none}
.tc-sub-add input::placeholder{color:#9aa8b2}
.tc-files{display:grid;gap:8px}
.tc-file{display:flex;align-items:center;gap:10px;min-width:0;padding:8px 10px;border:1px solid var(--tc-line);border-radius:10px;background:#fff}
.tc-file-thumb{flex:none;width:44px;height:44px;padding:0;border:0;border-radius:7px;overflow:hidden;background:#eef2f5;cursor:pointer}
.tc-file-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.tc-file-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:7px;background:#eef3f8;color:#4c6a86;font-size:10px;font-weight:800;letter-spacing:.02em}
.tc-file-text{flex:1;min-width:0}
.tc-file-text b{display:block;font-size:13px;color:var(--tc-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.tc-file-text small{font-size:11px;color:var(--tc-muted)}
.tc-file-actions{display:flex;gap:4px;flex:none}
.tc-upload{position:relative;overflow:hidden;cursor:pointer}
.tc-upload input,.tc-attach input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.tc-fold{border-bottom:1px solid var(--tc-line)}
.tc-fold>summary{display:flex;align-items:center;gap:8px;padding:13px 0;cursor:pointer;font-size:14px;font-weight:650;color:var(--tc-ink);list-style:none}
.tc-fold>summary::-webkit-details-marker{display:none}
.tc-fold>summary::after{content:"▸";margin-left:auto;color:#9aa8b2;font-size:12px}
.tc-fold[open]>summary::after{content:"▾"}
.tc-fold>summary small,.tc-fold>summary span{font-size:12px;font-weight:500;color:var(--tc-muted)}
.tc-fold-body{padding:0 0 12px}
.tc-info{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;align-items:center;min-height:36px;font-size:13px}
.tc-info>span{color:var(--tc-muted)}
.tc-info>b{font-weight:500;color:var(--tc-ink);overflow-wrap:anywhere}
.tc-info-value{display:flex;align-items:center;gap:8px;border:0;background:none;padding:6px;margin-left:-6px;border-radius:7px;text-align:left;cursor:pointer;font:inherit;font-size:13px;color:var(--tc-ink);overflow-wrap:anywhere}
.tc-info-value:hover{background:var(--tc-soft)}
.tc-info-value small{margin-left:auto;color:#9aa8b2}
.tc-event-line{font-size:12px;color:var(--tc-muted);padding:5px 0}
.tc-rule{margin:0 0 6px;font-size:14px;color:var(--tc-text);line-height:1.7}
.tc-plan-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.tc-plan-occurrence{border-top:1px solid #f1f4f6}
.tc-plan-open{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:10px 0;border:0;background:none;text-align:left;cursor:pointer;font:inherit;font-size:14px;color:var(--tc-ink)}
.tc-plan-open small{color:var(--tc-muted);font-size:12px;white-space:nowrap}

/* 讨论：聊天流，最新在下 */
.tc-chat{border-bottom:0}
.tc-segment{display:inline-flex;padding:2px;border-radius:8px;background:#eef2f5}
.tc-seg{border:0;background:none;padding:4px 10px;border-radius:6px;font-size:12px;color:var(--tc-muted);cursor:pointer}
.tc-seg.active{background:#fff;color:var(--tc-ink);font-weight:600;box-shadow:0 1px 2px #12334b1a}
.tc-stream{display:grid;gap:12px;padding-top:6px}
.tc-event{display:grid;justify-items:center;gap:2px;text-align:center;font-size:12px;color:var(--tc-muted);line-height:1.6;overflow-wrap:anywhere;padding:0 12px}
.tc-event b{font-weight:600;color:#5b6b78}
.tc-msg{display:flex;align-items:flex-start;gap:8px;max-width:100%}
.tc-msg.mine{justify-content:flex-end}
.tc-msg-body{display:grid;gap:4px;min-width:0;max-width:min(560px,82%)}
.tc-msg.mine .tc-msg-body{justify-items:end}
.tc-msg-head{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--tc-muted)}
.tc-msg-head b{color:#45596a;font-weight:600}
.tc-msg-head time{font-size:11px}
.tc-bubble{padding:8px 12px;border-radius:4px 12px 12px 12px;background:#f2f4f6;font-size:14px;line-height:1.7;color:var(--tc-ink);white-space:pre-wrap;overflow-wrap:anywhere}
.tc-msg.mine .tc-bubble{border-radius:12px 4px 12px 12px;background:#dff3ef}
.tc-bubble-tag{padding:0 6px;border-radius:5px;background:var(--tc-blue-soft);color:#3a69a0;font-size:11px}
.tc-mention{color:#2c6db3;font-weight:600}
.tc-withdraw{font-size:12px;color:var(--tc-muted)}
.tc-bubble-files{display:grid;gap:6px;min-width:0}
.tc-thumbs{display:flex;flex-wrap:wrap;gap:6px}
.task-thumb{width:96px;height:96px;padding:0;border:1px solid var(--tc-line);border-radius:9px;overflow:hidden;background:#eef2f5;cursor:pointer}
.task-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.task-thumb.unavailable img,.tc-file-thumb.unavailable img{opacity:.3}
.tc-bubble-file{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%;padding:6px 8px;border:1px solid var(--tc-line);border-radius:9px;background:#fff;font-size:12px}
.tc-bubble-file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--tc-ink)}
.tc-bubble-file small{flex:none;color:var(--tc-muted)}

/* 底部固定操作区：主按钮 + 留言输入条 */
.tc-dock{position:sticky;bottom:0;z-index:6;margin:8px -16px 0;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--tc-line);box-shadow:0 -6px 18px #12334b0f;display:grid;gap:8px}
.tc-dock-actions{display:flex;gap:8px}
.tc-dock-actions .btn{flex:1;min-height:42px;font-size:14px}
.tc-dock-note{margin:0;font-size:12px;color:var(--tc-muted);text-align:center}
.tc-composer{display:grid;gap:6px;position:relative}
.tc-composer-row{display:flex;align-items:flex-end;gap:8px}
.tc-composer textarea{flex:1;min-width:0;min-height:40px;max-height:160px;padding:9px 12px;border:1px solid #d9e2e9;border-radius:20px;background:var(--tc-soft);font:inherit;font-size:14px;line-height:1.5;color:var(--tc-ink);resize:none}
.tc-composer textarea:focus{background:#fff;border-color:var(--tc-teal);outline:none}
.tc-attach{position:relative;border-radius:50%;width:40px;height:40px;font-size:17px}
.tc-attach.disabled{opacity:.45}
.tc-send{min-height:40px;border-radius:20px;padding:0 16px}
.tc-chips{display:flex;flex-wrap:wrap;gap:6px}
.tc-chips:empty{display:none}
.tc-chip-file{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 4px 3px 10px;border-radius:14px;background:#eef2f5;font-size:12px;color:var(--tc-ink)}
.tc-chip-file small{color:var(--tc-muted)}
.tc-chip-x{border:0;background:none;color:#7b8a96;font-size:16px;line-height:1;padding:0 6px;cursor:pointer}
.tc-mentions{position:absolute;left:0;right:0;bottom:calc(100% + 6px);z-index:8;display:grid;gap:2px;padding:6px;border:1px solid var(--tc-line);border-radius:10px;background:#fff;box-shadow:0 10px 28px #12334b26}
.tc-mention-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border:0;border-radius:7px;background:none;text-align:left;cursor:pointer;font:inherit;font-size:14px;color:var(--tc-ink)}
.tc-mention-item:hover,.tc-mention-item:focus-visible{background:var(--tc-soft)}
.tc-mention-item small{margin-left:auto;font-size:11px;color:var(--tc-muted)}
.tc-mention-item .tc-avatar{width:24px;height:24px;font-size:11px}

/* 弹窗表单（发布 / 修改 / 提交 / 通过 / 驳回 / 确认 / 修改历史） */
[data-task-modal] .tc-form{display:grid;gap:12px;padding:16px 20px 0}
[data-task-modal] .tc-form>.tc-modal-footer{position:sticky;bottom:0;z-index:3;margin:4px -20px 0;padding:10px 20px calc(10px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid #e6ecf0;display:flex;justify-content:flex-end;gap:8px}
[data-task-modal] .tc-modal-footer .btn{min-width:96px;min-height:40px;font-size:14px}
[data-task-modal] .tc-big-input{width:100%;padding:6px 0;border:0;border-bottom:1px solid #e3e9ee;border-radius:0;font:inherit;font-size:19px;font-weight:650;color:#1f2d3a;outline:none;background:transparent}
[data-task-modal] .tc-big-input:focus{border-bottom-color:#009f8d}
[data-task-modal] .tc-desc-input{width:100%;padding:8px 10px;border:1px solid #e3e9ee;border-radius:8px;font:inherit;font-size:14px;line-height:1.7;color:#33475a;resize:vertical;min-height:52px}
[data-task-modal] .tc-lead{margin:0;font-size:14px;line-height:1.8;color:#1f2d3a}
[data-task-modal] .tc-hint,[data-task-modal] small.tc-hint{display:block;margin:0;font-size:12px;line-height:1.7;color:#7b8a96;font-weight:400}
[data-task-modal] .tc-static{margin:0;font-size:14px;color:#1f2d3a}
[data-task-modal] .tc-static span,[data-task-modal] .tc-static small{display:block;font-size:12px;color:#7b8a96}
[data-task-modal] .tc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tc-form-block{display:grid;gap:6px}
.tc-field-error{font-size:12px;font-weight:600;color:#c73b46}
.tc-form-error{margin:0;padding:9px 12px;border-radius:8px;background:#fdeeee;color:#9b2f3c;font-size:13px;font-weight:600;line-height:1.7;overflow-wrap:anywhere}
.tc-form-note{margin:0;padding:9px 12px;border-radius:8px;background:#fff7e6;color:#8a5a0f;font-size:12px;line-height:1.7;overflow-wrap:anywhere}
[data-task-modal] input[aria-invalid="true"]{border-color:#c73b46;background:#fffafa}
.tc-form-label{font-size:12px;font-weight:600;color:#55697a}
.tc-chips{display:flex;flex-wrap:wrap;gap:6px}
.tc-chip{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:0 12px;border:1px solid #d8e1e8;border-radius:16px;background:#fff;color:#33475a;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap}
.tc-chip[aria-pressed="true"],.tc-chip-check:has(input:checked){border-color:#009f8d;background:#e6f6f3;color:#0b7466;font-weight:600}
.tc-chip.static{cursor:default}
.tc-chip-check input{position:absolute;opacity:0;pointer-events:none}
.tc-chip-check{position:relative}
.tc-picker{display:grid;gap:6px;min-width:0}
.tc-picker-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12px;font-weight:600;color:#55697a}
.tc-picker-tools{display:inline-flex;gap:6px;margin-left:auto;margin-right:8px}
.tc-picker-head small{font-weight:500;color:#0b7466;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-picker-search{width:100%;height:36px;padding:0 12px;border:1px solid #d9e2e9;border-radius:8px;font:inherit;font-size:14px}
.tc-picker-list{display:grid;gap:2px}
.tc-person{position:relative;display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 8px;border-radius:9px;cursor:pointer}
.tc-person:hover{background:#f5f7f9}
.tc-person input{position:absolute;opacity:0;pointer-events:none}
.tc-person:has(input:checked){background:#e6f6f3}
.tc-person:has(input:checked)::after{content:"✓";margin-left:auto;color:#009f8d;font-weight:800}
.tc-person:has(input:focus-visible){outline:2px solid #009f8d}
.tc-person-text{display:grid;min-width:0}
.tc-person-text b{font-size:14px;font-weight:600;color:#1f2d3a}
.tc-person-text small{font-size:12px;color:#7b8a96;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-default{font-style:normal;font-size:11px;font-weight:600;color:#3a69a0;background:#e9f1fb;border-radius:4px;padding:0 4px}
.tc-picker-more{margin:0;font-size:12px;color:#7b8a96;padding-left:8px}
.tc-switch{position:relative;display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #e3e9ee;border-radius:10px;cursor:pointer}
.tc-switch input{position:absolute;opacity:0;pointer-events:none}
.tc-switch-track{flex:none;position:relative;width:40px;height:24px;border-radius:12px;background:#cfd8df;transition:background .15s}
.tc-switch-track::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .15s}
.tc-switch input:checked+.tc-switch-track{background:#009f8d}
.tc-switch input:checked+.tc-switch-track::after{transform:translateX(16px)}
.tc-switch input:disabled+.tc-switch-track{opacity:.6}
.tc-switch input:focus-visible+.tc-switch-track{outline:2px solid #009f8d;outline-offset:2px}
.tc-switch-text{display:grid;gap:2px;min-width:0}
.tc-switch-text b{font-size:14px;color:#1f2d3a}
.tc-switch-text small{font-size:12px;color:#7b8a96;line-height:1.6}
.tc-form-more{border-top:1px solid #e8edf1}
.tc-form-more .tc-fold-body{display:grid;gap:14px}
.tc-schedule{display:grid;gap:10px;padding:12px;border-radius:10px;background:#f7f9fb}
.tc-weekdays{display:grid;gap:6px;font-size:12px;font-weight:600;color:#55697a}
.tc-schedule-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tc-check-line{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:#1f2d3a;cursor:pointer}
.tc-check-line input{width:18px;height:18px;margin:2px 0 0;accent-color:#009f8d;flex:none}
.tc-check-line small{display:block;font-size:12px;color:#7b8a96;line-height:1.6}
.tc-due-rule{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tc-review-summary{display:grid;gap:8px;padding:12px;border-radius:10px;background:#f7f9fb;font-size:13px}
.tc-review-summary span{font-size:12px;color:#7b8a96}
.tc-review-summary p{margin:2px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#1f2d3a}
.tc-nudge-list{display:grid;gap:6px}
.tc-nudge-list>div{display:flex;align-items:center;gap:8px;font-size:14px;color:#1f2d3a}
.tc-nudge-list>div>span{display:grid;min-width:0}.tc-nudge-list b{font-weight:600}.tc-nudge-list small{font-size:12px;color:#7b8a96;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-history-list{padding-bottom:0}
.tc-history{border-bottom:1px solid #eef2f5;padding:10px 0;font-size:13px}
.tc-history>summary,.tc-history{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;cursor:default}
details.tc-history{display:block}
details.tc-history>summary{cursor:pointer;list-style:none}
details.tc-history>summary::-webkit-details-marker{display:none}
details.tc-history>summary::after{content:"看对比";margin-left:auto;font-size:12px;color:#2c6db3}
details.tc-history[open]>summary::after{content:"收起"}
.tc-history b{color:#1f2d3a}
.tc-history span{color:#7b8a96}
.tc-history-change{display:grid;gap:2px;margin-top:8px;padding:8px 10px;border-radius:8px;background:#f7f9fb}
.tc-history-change>span{font-size:12px;color:#7b8a96}
.tc-history-change p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:#1f2d3a}
.tc-history-change del{color:#9aa8b2}
.task-review-target{display:grid;gap:3px;min-width:0;padding:10px 12px;border:1px solid #e3e9ee;border-radius:9px;background:#fafbfc;overflow-wrap:anywhere}
.task-review-target>span{font-size:11px;color:#7b8a96}
.task-review-target>strong,.task-review-target>p{margin:0;min-width:0;color:#1f2d3a;font-size:14px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.task-hour-field{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:12px;font-weight:600;color:#55697a}
.task-hour-controls{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:6px;min-width:0}
.task-hour-controls input,.task-hour-controls select{min-width:0;width:100%;padding:8px;border:1px solid #d9e2e9;border-radius:8px;background:#fff;font:inherit;font-size:14px;font-weight:400;color:#1f2d3a}
.task-calendar-choice{display:grid;gap:8px}
.task-calendar-add{display:flex;gap:8px;align-items:end}.task-calendar-add>label{flex:1;max-width:240px}
.task-calendar-tags{display:flex;gap:6px;flex-wrap:wrap}
.task-calendar-tags>span{display:inline-flex;align-items:center;gap:5px;border:1px solid #d3e4ed;border-radius:6px;background:#fff;padding:3px 6px;font-size:12px;color:#345c73}
.task-calendar-tags .task-calendar-remove{border:0;padding:1px 3px;background:transparent;color:#5e788c;box-shadow:none;line-height:1.2;font-size:16px;min-height:auto}
[data-task-modal] .multi-file-field{display:grid;gap:6px;min-width:0}

@media(max-width:760px){
  .tc-filter-pop{grid-template-columns:1fr;width:min(360px,calc(100vw - 32px))}
}
@media(max-width:620px){
  .tc-head h2{font-size:20px}
  .tc-tabs{gap:2px}
  .tc-tab{padding:10px 7px 11px;gap:4px}
  .tc-tab b{padding:1px 5px}
  .tc-list{border-radius:0;border-left:0;border-right:0;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
  .tc-row{padding:8px 16px;gap:10px;min-height:62px}
  .tc-row-title{font-size:15px}
  .tc-row-actions .btn.tiny{min-height:32px;padding:5px 10px}
  .tc-batch-rows{padding-left:48px}
  .tc-title{font-size:20px}
  .tc-field{grid-template-columns:56px minmax(0,1fr)}
  /* 底部固定操作区停在手机底部导航之上 */
  .tc-dock{bottom:62px;margin:8px calc(50% - 50vw) 0;padding:10px 16px}
  .tc-msg-body{max-width:86%}
  [data-task-modal] .tc-form{padding:14px 16px 0}
  [data-task-modal] .tc-form>.tc-modal-footer{margin:4px -16px 0;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px))}
  [data-task-modal] .tc-modal-footer .btn{flex:1}
  [data-task-modal] .tc-grid,.tc-schedule-times,.tc-due-rule{grid-template-columns:1fr}
  /* 手机上“⋯”菜单从底部弹出 */
  .tc-menu[open]::before{content:"";position:fixed;inset:0;z-index:29;background:#0b23394d}
  .tc-menu-pop{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:30;min-width:0;padding:8px 8px calc(12px + env(safe-area-inset-bottom,0px));border:0;border-radius:14px 14px 0 0;box-shadow:0 -10px 30px #12334b33}
  .tc-menu-item{padding:14px 16px;font-size:15px}
  .tc-menu-note{max-width:none}
}

/* 任务详情有底部操作区时，悬浮的助手按钮停在操作区上方（操作区高度随留言框、附件实时更新）；
   @ 列表弹出、任务弹窗（发布 / 修改 / 确认）打开、手机上正在输入留言时收起按钮，不挡住列表、底部按钮和发布表单的底栏。 */
body:has(.tc-detail .tc-dock) .ea-fab{bottom:calc(var(--tc-dock-h,140px) + 16px)}
@media(max-width:620px){body:has(.tc-detail .tc-dock) .ea-fab{bottom:calc(var(--tc-dock-h,140px) + 74px + env(safe-area-inset-bottom,0px))}}
body:has(.tc-detail [data-task-mention-list]:not([hidden])) .ea-fab,body:has([data-task-modal]) .ea-fab{display:none}
@media(max-width:620px){body:has(.tc-detail .tc-composer textarea:focus) .ea-fab,body:has(.tc-detail .tc-menu[open]) .ea-fab{display:none}}

/* 站内通知（任务通知同用）与公司台账任务分组：沿用原样式 */
.notice-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.notice-group-card{border:1px solid #dce7ef;border-radius:11px;background:#fff;display:flex;flex-direction:column;gap:7px;text-align:left;padding:16px 18px;cursor:pointer}.notice-group-card.active{border-color:#00a69c;background:#eefaf8}.notice-group-card>span{font-size:15px;font-weight:750;color:#23445b}.notice-group-card>strong{font-size:24px;color:#173d55}.notice-group-card small{font-size:12px;font-weight:400;color:#728b9e}.notice-group-card p{font-size:12px;color:#738b9e;margin:0}.notice-selection-bar{display:flex;align-items:center;gap:16px;padding:12px 0}.notice-selection-bar label{font-size:12px;color:#476276;display:flex;gap:5px;align-items:center}.notice-record{align-items:flex-start!important}.notice-checkbox{padding-top:3px}.notice-message{flex:1;min-width:0;overflow-wrap:anywhere}.notice-record .page-actions{max-width:40%;flex-wrap:wrap;justify-content:flex-end}.notice-fold{margin-top:14px;border:1px solid #dce7ef;border-radius:10px;background:#fff;padding:14px}.notice-fold summary{font-size:13px;font-weight:700;color:#284e67;cursor:pointer}.notice-fold>.card{box-shadow:none;border:0;margin:12px 0 0}
@media(max-width:650px){.notice-groups{gap:7px}.notice-group-card{padding:12px 10px;gap:5px}.notice-group-card>span{font-size:13px}.notice-group-card>strong{font-size:22px}.notice-group-card p{font-size:10px;line-height:1.5}.notice-record{flex-wrap:wrap}.notice-record .page-actions{max-width:100%;margin-left:24px;justify-content:flex-start}.notice-selection-bar{gap:9px;flex-wrap:wrap}}
.content .company-records-grid:has([data-company-records-section="tasks"]){grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1100px){.content .company-records-grid:has([data-company-records-section="tasks"]){grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.content .company-records-grid:has([data-company-records-section="tasks"]){grid-template-columns:repeat(2,minmax(0,1fr))}}
