:root{--brand:#2f6fed;--brand-dark:#2457d6;--text:#1f2329;--text-2:#646a73;--text-3:#8f959e;--line:#ebeef5;--bg:#f5f7fb;--danger:#f5514b;--warn:#f08c00;--ok:#37b24d}*{box-sizing:border-box}html,body,#app{height:100%}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;font-size:14px}button{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-family:inherit}input,textarea,select{color:var(--text);font-family:inherit;font-size:14px}.app-shell{flex-direction:column;height:100%;display:flex;overflow:hidden}.app-header{color:#fff;z-index:300;background:linear-gradient(96deg,#6ba8ff 0%,#4d8dfa 48%,#3478f2 100%);flex:none;align-items:center;gap:12px;height:56px;padding:0 16px;display:flex;position:relative}.app-header:after{content:"";pointer-events:none;background:radial-gradient(closest-side,#ffffff38,#0000);width:320px;height:160px;position:absolute;top:-60px;right:6%}.brand-avatar{color:#fff;z-index:1;border:2px solid #ffffffd9;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:14px;font-weight:600;display:grid;position:relative}.header-divider{background:#ffffff59;flex:none;width:1px;height:22px}.main-nav{z-index:1;align-items:center;gap:6px;display:flex;position:relative}.nav-item{color:#ffffffeb;border-radius:16px;align-items:center;gap:6px;height:32px;padding:0 14px;font-size:14px;transition:background .15s;display:flex}.nav-item:hover{background:#ffffff29}.nav-item.active{color:var(--brand);background:#fff;font-weight:500;box-shadow:0 2px 6px #10388c2e}.header-actions{z-index:1;align-items:center;gap:16px;margin-left:auto;display:flex;position:relative}.icon-btn{color:#fffffff2;border-radius:6px;place-items:center;width:26px;height:26px;display:grid;position:relative}.icon-btn:hover{background:#ffffff2e}.badge-dot{color:#fff;text-align:center;background:#f5514b;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:11px;line-height:16px;position:absolute;top:-5px;right:-8px}.board-toolbar{border-bottom:1px solid var(--line);background:#fff;flex:none;align-items:center;gap:10px;height:48px;padding:0 16px;display:flex}.scope-tabs{align-items:center;height:100%;margin-left:6px;display:flex}.board-toolbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.board-sort-label{color:var(--text-2);font-size:13px}.board-sort-select{width:104px}.board-refresh{height:30px;color:var(--text-2);cursor:pointer;background:#fff;border:1px solid #dfe4ec;border-radius:6px;align-items:center;gap:4px;margin-left:0;padding:0 10px;font-size:13px;display:inline-flex}.board-refresh:hover{border-color:var(--brand);color:var(--brand)}.board-refresh .is-spinning{animation:.8s linear infinite toolbar-spin}.scope-tab{height:100%;color:var(--text-2);border-bottom:2px solid #0000;align-items:center;padding:0 14px;font-size:14px;display:inline-flex}.scope-tab.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:500}.scope-count{color:var(--brand);background:#eaf1ff;border-radius:8px;margin-left:4px;padding:0 5px;font-size:11px;font-weight:500;line-height:16px}.scope-count.is-archived{color:#8f959e;background:#f2f4f8}.toolbar-center{flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.date-label{color:var(--text);align-items:center;gap:4px;font-size:14px;font-weight:500;display:flex}.ghost-icon{width:24px;height:24px;color:var(--text-3);border-radius:4px;place-items:center;display:grid}.ghost-icon:hover{color:var(--brand);background:#f2f4f8}.toolbar-right{color:var(--text-2);align-items:center;gap:18px;font-size:13px;display:flex}.toolbar-action{color:var(--text-2);align-items:center;gap:4px;display:flex}.toolbar-action:hover{color:var(--brand)}.board-body{background:#fff;flex:1;min-height:0;display:flex}.quadrant-grid{background:var(--line);flex:1;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:1px;min-width:0;display:grid}.quadrant{background:#fff;flex-direction:column;min-height:0;padding:10px 14px 6px;display:flex}.quadrant-head{flex:none;align-items:center;gap:8px;height:30px;display:flex}.quadrant-bar{border-radius:2px;flex:none;width:4px;height:14px}.quadrant-title{font-size:14px;font-weight:600}.quadrant-count{color:var(--text-3);font-size:12px}.quadrant-tools{align-items:center;gap:10px;margin-left:auto;display:flex}.add-round{color:#98a2b3;border:1px solid #d8dde6;border-radius:50%;place-items:center;width:20px;height:20px;display:grid}.add-round:hover{border-color:var(--brand);color:var(--brand)}.task-list{flex:1;padding:6px 0 10px;overflow-y:auto}.task-row{cursor:pointer;border-bottom:1px solid #eef1f6;border-radius:6px;flex-flow:column wrap;align-items:stretch;gap:6px;min-height:40px;padding:6px;display:flex}.task-row:hover{background:#f7f9fc}.task-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.task-row.done .task-title{color:#b1b6bf;text-decoration:line-through}.tag{white-space:nowrap;border-radius:4px;flex:none;padding:1px 6px;font-size:12px;line-height:18px}.tag.overdue{color:var(--danger);background:#fdeceb}.tag.late{color:var(--warn);background:#fff6e5}.tag.left{color:#5b677a;background:#f1f4f9}.tag.doing{color:var(--brand);background:#eaf1ff}.tag.pending{color:#7b5cd6;background:#f1edff}.tag.rework{color:var(--danger);background:#fdeceb}.task-meta{color:#b6bcc6;flex:none;align-items:center;gap:10px;margin-left:auto;display:flex}.task-subtasks{border-left:2px solid #e8edf5;flex-direction:column;flex:0 0 calc(100% - 24px);gap:2px;margin:2px 0 0 24px;padding-left:8px;display:flex}.task-subtasks-head{color:#98a2b3;justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.task-subtasks-progress{color:var(--brand)}.task-subtask{color:#5b6b82;align-items:center;gap:6px;min-width:0;font-size:12px;display:flex}.task-subtask-dot{background:#c7d2e5;border-radius:50%;flex:none;width:6px;height:6px}.task-subtask-dot.submitted{background:var(--warn)}.task-subtask-dot.approved{background:var(--ok)}.task-subtask-dot.rejected{background:var(--danger)}.task-subtask-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.task-subtask-status{color:#98a2b3;flex:none;font-size:11px}.tag.subtask-tag{color:var(--brand);background:#eef4ff}.tag.self-created{color:#1f9254;background:#e9f7ef}.tag.leader-assigned{color:#d97706;background:#fff4e5}.tag.subtask-state{color:#5b6b82;background:#eef2f8}.tag.subtask-state.is-submitted{color:#d97706;background:#fff4e5}.tag.subtask-state.is-approved{color:#1f9254;background:#e9f7ef}.tag.subtask-state.is-rejected{color:#d92d20;background:#fdecec}.subtask-card{flex-direction:column;align-items:stretch;gap:6px}.task-row-main,.subtask-card-head{align-items:center;gap:8px;min-width:0;display:flex}.task-row-main .task-title,.subtask-card-head .task-title{flex:1;min-width:0}.task-row-meta,.subtask-card-meta{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.subtask-card .task-subtasks{border-left:none;flex:0 0 100%;margin-left:0;padding-left:0}.subtask-card .row-actions{visibility:visible}.task-owner{color:#fff;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:11px;display:grid}.row-icon{color:#7c8794;background:#fff;border:1px solid #e2e7f0;border-radius:7px;place-items:center;width:26px;height:26px;transition:color .12s,border-color .12s,background .12s;display:grid}.row-icon:hover{color:var(--brand);background:#f2f7ff;border-color:#b9cdf3}.row-icon.active{color:#f5a623;background:#fff8ec;border-color:#fbd9a3}.row-icon.active svg path{fill:currentColor;stroke:currentColor}.row-icon.warn:hover{color:#f08c00;background:#fff8ec;border-color:#fbd9a3}.row-actions{visibility:hidden;gap:6px;display:flex}.task-row:hover .row-actions,.task-row.done .row-actions{visibility:visible}.quadrant-empty{color:#c3c8d1;padding:10px 6px;font-size:13px}.overlay{z-index:40;background:#0f172a52;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:#fff;border-radius:12px;width:460px;padding:20px 22px;box-shadow:0 18px 48px #0f172a3d}.dialog-title{justify-content:space-between;align-items:center;margin-bottom:16px;font-size:16px;font-weight:600;display:flex}.field{margin-bottom:14px}.field-label{color:var(--text-2);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px;display:flex}.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=number],.field input[type=date],.field textarea,.field select{background:#fff;border:1px solid #dfe4ec;border-radius:6px;outline:none;width:100%;height:34px;padding:0 10px}.field textarea{resize:vertical;height:68px;padding:8px 10px}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #2f6fed1f}.field .ant-select input.ant-select-selection-search-input,.field .ant-select input.ant-select-selection-search-input:focus{border-radius:0;outline:none;padding:0;box-shadow:none!important;background:0 0!important;border:0!important}.quadrant-picker{grid-template-columns:1fr 1fr;gap:8px;display:grid}.quadrant-picker.inline{grid-template-columns:repeat(4,minmax(0,1fr))}.quadrant-option{height:32px;color:var(--text-2);cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e3e8f0;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:13px;display:flex}.quadrant-option.active{border-color:var(--brand);color:var(--brand);background:#f3f7ff}.priority-picker{flex-wrap:wrap;gap:8px;display:flex}.priority-option{min-width:88px;height:32px;color:var(--text-2);cursor:pointer;background:#fff;border:1px solid #e3e8f0;border-radius:6px;padding:0 16px;font-size:13px}.priority-option:hover{border-color:var(--brand);color:var(--brand)}.priority-option.active{border-color:var(--brand);color:var(--brand);background:#f3f7ff;font-weight:600}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.btn{height:32px;color:var(--text-2);background:#fff;border:1px solid #dfe4ec;border-radius:6px;padding:0 16px;font-size:14px}.btn:hover{border-color:var(--brand);color:var(--brand)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-dark)}.btn.danger{color:var(--danger);border-color:#f8d4d2}.drawer-title{font-size:16px;font-weight:600;line-height:1.4}.drawer-sub{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:12px;margin-top:6px;font-size:12px;display:flex}.section-label{color:var(--text-3);letter-spacing:.4px;margin:18px 0 8px;font-size:12px}.status-group{gap:8px;display:flex}.status-chip{height:28px;color:var(--text-2);border:1px solid #e3e8f0;border-radius:14px;padding:0 12px;font-size:13px}.status-chip.active{border-color:var(--brand);color:var(--brand);background:#eaf1ff;font-weight:500}.progress-row{align-items:center;gap:12px;display:flex}.progress-row input[type=range]{accent-color:var(--brand);flex:1}.progress-value{color:var(--brand);text-align:right;width:40px;font-size:13px}.timeline{flex-direction:column;gap:10px;display:flex}.timeline-item{color:var(--text-2);gap:8px;font-size:13px;display:flex}.timeline-dot{background:#c9d1de;border-radius:50%;flex:none;width:6px;height:6px;margin-top:7px}.comment{border-bottom:1px dashed #eef1f6;gap:10px;padding:10px 0;display:flex}.comment-avatar{color:#fff;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:12px;display:grid}.comment-main{flex:1;min-width:0}.comment-head{color:var(--text-3);align-items:center;gap:8px;font-size:12px;display:flex}.comment-author{color:var(--text);font-size:13px;font-weight:500}.comment-text{white-space:pre-wrap;word-break:break-word;margin-top:4px;font-size:13px;line-height:1.6}.mention{color:var(--brand)}.mention-picker{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.mention-chip{height:24px;color:var(--text-2);border:1px solid #e3e8f0;border-radius:12px;padding:0 10px;font-size:12px}.mention-chip.active{border-color:var(--brand);color:var(--brand);background:#eaf1ff}.comment-input{align-items:flex-end;gap:8px;display:flex}.comment-input>textarea{resize:none;border:1px solid #dfe4ec;border-radius:8px;outline:none;flex:1;height:60px;padding:8px 10px}.comment-input>textarea:focus{border-color:var(--brand)}.comment-input>.ant-mentions{flex:1}.popover{width:380px;color:var(--text);z-index:50;background:#fff;border-radius:10px;position:absolute;top:40px;right:0;overflow:hidden;box-shadow:0 16px 40px #0f172a33}.popover-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 14px;font-size:13px;font-weight:600;display:flex}.popover-body{max-height:340px;padding-right:2px;overflow-y:auto}.popover-body::-webkit-scrollbar{width:6px}.popover-body::-webkit-scrollbar-track{background:#f3f5f9;border-radius:3px;margin:6px 0 6px 2px}.popover-body::-webkit-scrollbar-thumb{background:#cbd3df;border:none;border-radius:3px}.popover-body::-webkit-scrollbar-thumb:hover{background:#a9b4c4}.notice{cursor:pointer;color:var(--text-2);border-bottom:1px solid #f4f6fa;padding:10px 14px 10px 20px;font-size:13px;transition:background .16s;position:relative}.notice:hover{background:#eef4fd}.notice.unread{color:var(--text);font-weight:500}.notice.unread:before{content:"";background:var(--brand);border-radius:50%;width:5px;height:5px;position:absolute;top:15px;left:8px}.notice-meta{color:var(--text-3);justify-content:space-between;align-items:center;gap:8px;margin-top:4px;font-size:11px;display:flex}.notice-read{color:var(--brand);cursor:pointer;opacity:.55;background:0 0;border:none;padding:0 2px;font-size:11px;transition:opacity .16s}.notice:hover .notice-read{opacity:1}.notice-read:hover{text-decoration:underline}.user-entry,.notice-entry{position:relative}.user-menu{width:248px;color:var(--text);z-index:60;background:#fff;border:1px solid #eaeef5;border-radius:12px;animation:.14s ease-out pop-in;position:absolute;top:46px;right:-6px;overflow:hidden;box-shadow:0 14px 36px #0f172a29}.user-menu-head{align-items:center;gap:10px;padding:14px 14px 12px;display:flex}.user-menu-avatar{color:#fff;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;font-size:16px;font-weight:600;display:grid}.user-menu-id{min-width:0}.user-menu-name{color:var(--text);font-size:14px;font-weight:600}.user-menu-meta{color:var(--text-3);align-items:center;gap:6px;margin-top:4px;font-size:12px;display:flex}.role-badge{color:var(--brand);background:#eaf1ff;border-radius:4px;padding:1px 6px;font-size:11px;line-height:16px}.user-menu-row{color:var(--text-3);padding:0 14px 12px;font-size:12px}.user-menu-push{justify-content:space-between;align-items:center;gap:12px;display:flex}.push-tag{border-radius:999px;align-items:center;padding:1px 8px;font-size:11px;font-weight:600;line-height:18px;display:inline-flex}.push-tag.ok{color:#15803d;background:#ecfdf3}.push-tag.bad{color:#b42318;background:#fef3f2}.user-menu-item{width:100%;color:var(--text-2);border-top:1px solid var(--line);text-align:left;align-items:center;gap:8px;padding:11px 14px;font-size:13px;display:flex}.user-menu-item:hover{color:var(--danger);background:#fef4f4}@keyframes pop-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.placeholder-view{color:var(--text-3);text-align:center;flex:1;place-items:center;gap:8px;font-size:14px;display:grid}.quadrant-view{flex-direction:column;flex:1;min-height:0;display:flex}.quadrant.drop-target{outline:1px dashed var(--brand);outline-offset:-6px;background:#f4f8ff}.task-row.dragging{opacity:.4}.task-row{position:relative}.task-row.drop-before:before,.task-row.drop-after:after{content:"";background:var(--brand);pointer-events:none;z-index:3;border-radius:2px;height:2px;position:absolute;left:0;right:0}.task-row.drop-before:before{z-index:4;top:-2px}.task-row.drop-after:after{z-index:4;bottom:-3px}.quadrant-drop-line{background:var(--brand);pointer-events:none;border-radius:2px;height:2px;margin:2px 0}.task-row[draggable=true]{cursor:grab}.task-row[draggable=true]:active{cursor:grabbing}.project-view{background:#fff;flex:1;min-height:0;display:flex}.project-side{border-right:1px solid var(--line);flex-direction:column;flex:none;width:248px;min-height:0;display:flex}.project-side-head{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:8px;height:44px;padding:0 14px;font-size:14px;font-weight:600;display:flex}.project-side-head .add-round{margin-left:auto}.project-list{flex:1;padding:8px;overflow-y:auto}.project-item{text-align:left;border-radius:8px;align-items:flex-start;gap:8px;width:100%;padding:10px;display:flex}.project-item:hover{background:#f6f8fc}.project-item.active{background:#eef4ff}.project-dot{border-radius:50%;flex:none;width:8px;height:8px;margin-top:6px}.project-item-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.project-item-name{color:var(--text);font-size:14px;font-weight:500}.project-item.active .project-item-name{color:var(--brand)}.project-item-meta{color:var(--text-3);font-size:12px}.project-bar{background:#eef1f6;border-radius:2px;height:3px;display:block;overflow:hidden}.project-bar>span{border-radius:2px;height:100%;display:block}.project-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.project-head{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex}.project-title{align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex}.project-title .project-dot{width:10px;height:10px;margin-top:0}.project-desc{color:var(--text-3);margin-top:4px;font-size:13px}.project-head-right{align-items:center;gap:14px;display:flex}.project-members{gap:-6px;display:flex}.project-members .task-owner{border:2px solid #fff;margin-left:-6px}.project-progress-text{color:var(--text-2);font-size:13px}.kanban{background:var(--bg);flex:1;grid-template-columns:repeat(3,1fr);gap:12px;min-height:0;padding:14px 20px 20px;display:grid}.kanban-col{border:1px solid var(--line);background:#f7f9fc;border-radius:10px;flex-direction:column;min-height:0;padding:10px;display:flex}.kanban-col.drop-target{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);background:#f4f8ff}.kanban-col-head{color:var(--text-2);flex:none;align-items:center;gap:8px;padding:2px 4px 10px;font-size:13px;font-weight:600;display:flex}.kanban-col-head .add-round{margin-left:auto}.kanban-cards{flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.kanban-card{cursor:grab;background:#fff;border:1px solid #e9edf4;border-radius:8px;padding:10px 12px;box-shadow:0 1px 2px #0f172a0a}.kanban-card:hover{border-color:#cfdcf7;box-shadow:0 3px 10px #2f6fed1f}.kanban-card.dragging{opacity:.4}.kanban-card-title{color:var(--text);word-break:break-word;font-size:13px;line-height:1.5}.kanban-card-meta{align-items:center;gap:6px;margin-top:8px;display:flex}.kanban-spacer{flex:1}.kanban-add input{border:1px solid var(--brand);background:#fff;border-radius:8px;outline:none;width:100%;height:34px;padding:0 10px}.execute-view{background:#fff;flex-direction:column;flex:1;min-height:0;display:flex}.execute-toolbar{border-bottom:1px solid var(--line);background:#fff;flex:none;align-items:center;gap:10px;height:52px;padding:0 16px;display:flex}.execute-title{color:var(--text);align-items:center;gap:6px;margin-right:8px;font-size:15px;font-weight:600;display:flex}.execute-title svg{color:var(--brand)}.range-switch{border:1px solid #dfe4ec;border-radius:6px;align-items:center;margin-left:8px;display:flex;overflow:hidden}.range-btn{width:34px;height:26px;color:var(--text-2);background:#fff;font-size:13px}.range-btn+.range-btn{border-left:1px solid #dfe4ec}.range-btn:hover{color:var(--brand)}.range-btn.active{background:var(--brand);color:#fff}.toolbar-action.is-on{color:var(--brand)}.execute-body{flex:1;min-height:0;display:flex}.execute-side{border-right:1px solid var(--line);flex-direction:column;flex:none;gap:10px;width:232px;min-height:0;padding:12px 10px;display:flex}.member-search{height:30px;color:var(--text-3);border:1px solid #e3e8f0;border-radius:6px;align-items:center;gap:6px;padding:0 10px;display:flex}.member-search input{background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:13px}.dept-tree{flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.dept-item{height:32px;color:var(--text-2);text-align:left;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:13px;display:flex}.dept-item.child{padding-left:18px}.dept-item:hover{background:#f6f8fc}.dept-item.active{color:var(--brand);background:#eaf1ff;font-weight:500}.dept-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.dept-count{color:var(--text-3);font-size:12px}.execute-lanes{column-width:260px;background:var(--bg);flex:1;column-gap:20px;min-width:0;padding:16px;overflow-y:auto}.lane{break-inside:avoid;background:#fff;border:1px solid #dfe4ec;border-radius:12px;flex-direction:column;min-width:0;margin:0 0 20px;padding:10px 12px 12px;transition:background .15s,border-color .15s;display:flex;box-shadow:0 1px 3px #0f172a0f}.lane-head{flex:none;align-items:center;gap:8px;height:32px;padding:0 2px;display:flex}.lane-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.lane-count{color:var(--text-3);flex:none;font-size:12px}.lane-meter{background:#e9edf4;border-radius:999px;flex:none;height:4px;margin:2px 2px 10px;overflow:hidden}.lane-meter span{border-radius:inherit;background:var(--brand);height:100%;transition:width .2s;display:block}.lane-cards{flex-direction:column;gap:10px;padding:0 2px 2px;display:flex}.lane-empty{color:var(--text-3);margin:14px auto;font-size:12px}.execute-empty{column-span:all;text-align:center}@media (width<=640px){.execute-lanes{column-width:auto;column-count:1}}.lane-card{background:#f8fafd;border:1px solid #e6ebf2;border-radius:8px;padding:10px 12px;transition:background .15s,border-color .15s,box-shadow .15s}.lane-card:hover{background:#fff;border-color:#cdd8ea;box-shadow:0 2px 8px #0f172a14}.lane-card.done{opacity:.72;cursor:not-allowed}.lane-card.done:hover{opacity:1}.lane-card.done:active{cursor:not-allowed}.lane-card.done .task-title{color:#b1b6bf;text-decoration:line-through}.lane-card-top{align-items:center;gap:8px;display:flex}.lane-card-top .task-title{cursor:pointer;flex:1;min-width:0}.lane-card-meta{align-items:center;gap:8px;margin-top:8px;display:flex}.lane-progress{color:var(--text-3);font-size:12px}.lane-source{color:var(--text-3);white-space:nowrap;flex:none;font-size:11px}.lane-created{color:var(--text-3);white-space:nowrap;margin-left:auto;font-size:12px}.lane-subtask,.lane-subtask:active,.lane-subtask.done{cursor:pointer}.subtask-pop{max-width:260px}.subtask-pop-label{color:var(--text-3);font-size:11px}.subtask-pop-title{color:var(--text);margin-top:2px;font-size:13px;font-weight:600}.subtask-pop-meta{color:var(--text-3);margin-top:4px;font-size:12px}.subtask-pop-link{color:var(--brand);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:0;font-size:12px}.subtask-pop-link:hover{text-decoration:underline}.lane.drop-target{outline:1px dashed var(--brand);outline-offset:4px;background:#eef5ff;border-radius:12px}.lane-card{cursor:grab}.lane-card.dragging{opacity:.6;border-style:dashed;border-color:var(--brand)}.drag-ghost{z-index:9999;pointer-events:none;will-change:transform;border-radius:8px;position:fixed;top:0;left:0;transform:translate(-9999px,-9999px);box-shadow:0 12px 32px #0f172a38;opacity:1!important;background:#fff!important;border:1px solid #b9c8de!important}.lane-card:active{cursor:grabbing}.module-view{background:#fff;flex-direction:column;flex:1;min-height:0;display:flex}.module-toolbar{border-bottom:1px solid var(--line);background:#fff;flex:none;align-items:center;gap:10px;height:52px;padding:0 16px;display:flex}.module-title{align-items:center;gap:6px;margin-right:8px;font-size:15px;font-weight:600;display:flex}.module-title svg{color:var(--brand)}.module-body{background:var(--bg);flex:1;min-height:0;padding:16px 20px 24px;overflow-y:auto}.range-btn.wide{width:auto;padding:0 12px}.range-switch.type-switch{width:100%;max-width:260px}.range-switch.type-switch .range-btn{flex:1;width:auto}.quarter-select,.month-input{height:30px;color:var(--text-2);background:#fff;border:1px solid #dfe4ec;border-radius:6px;outline:none;padding:0 10px;font-size:13px}.okr-group+.okr-group{margin-top:20px}.okr-group-head{color:var(--text-2);align-items:center;gap:10px;margin-bottom:10px;font-size:13px;font-weight:600;display:flex}.okr-card{background:#fff;border:1px solid #e9edf4;border-radius:10px;margin-bottom:10px;padding:14px 16px}.okr-head{align-items:center;gap:8px;display:flex}.okr-title{color:var(--text);flex:1;min-width:0;margin:0;font-size:15px;font-weight:600}.okr-progress{color:var(--brand);font-size:13px;font-weight:600}.okr-desc{color:var(--text-3);margin:6px 0 0;font-size:13px}.okr-bar{background:#eef1f6;border-radius:2px;height:4px;margin:12px 0 6px;overflow:hidden}.okr-bar>span{border-radius:2px;height:100%;display:block}.kr-list{flex-direction:column;gap:6px;padding:6px 0;display:flex}.kr-row{align-items:center;gap:10px;padding:4px 0;display:flex}.kr-title{min-width:0;color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.kr-row input[type=range]{width:140px;accent-color:var(--brand)}.kr-value{text-align:right;width:44px;color:var(--text-3);font-size:12px}.kr-input{border:1px solid var(--brand);border-radius:6px;outline:none;width:100%;height:32px;padding:0 10px}.okr-foot{margin-top:6px}.perf-table{border-collapse:collapse;background:#fff;border:1px solid #e9edf4;border-radius:10px;width:100%;font-size:13px;overflow:hidden}.perf-table th,.perf-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #f1f4f9;padding:12px 14px}.perf-table th{color:var(--text-2);background:#f8fafd;font-size:12px;font-weight:600}.perf-table th:nth-child(n+2):nth-child(-n+6),.perf-table td:nth-child(n+2):nth-child(-n+6){text-align:center}.perf-table tbody tr:hover{background:#f9fbff}.perf-name{color:var(--text);margin-left:6px;font-weight:500}.perf-title{color:var(--text-3);margin-left:6px;font-size:12px}.perf-score{color:var(--brand);font-weight:600}.perf-empty{color:var(--text-3)}.perf-comment{color:var(--text-2);max-width:320px}.perf-danger{color:var(--danger);font-weight:600}.review-list{flex-direction:column;gap:12px;max-width:900px;display:flex}.review-card{background:#fff;border:1px solid #e9edf4;border-radius:10px;padding:14px 16px}.review-head{border-bottom:1px dashed #eef1f6;align-items:center;gap:8px;padding-bottom:10px;display:flex}.review-author{font-size:13px;font-weight:600}.review-block{margin-top:10px}.review-label{color:var(--text-3);margin-bottom:4px;font-size:12px}.review-text{color:var(--text);white-space:pre-wrap;font-size:13px;line-height:1.65}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px;display:grid}.kpi-card{background:#fff;border:1px solid #e9edf4;border-radius:10px;padding:14px 16px}.kpi-label{color:var(--text-3);font-size:12px}.kpi-value{color:var(--text);margin-top:6px;font-size:24px;font-weight:600}.chart-card{background:#fff;border:1px solid #e9edf4;border-radius:10px;margin-bottom:14px;padding:14px 16px}.chart-title{color:var(--text-2);align-items:center;gap:12px;margin-bottom:12px;font-size:13px;font-weight:600;display:flex}.chart-legend{color:var(--text-3);align-items:center;gap:6px;margin-left:auto;font-size:12px;font-weight:400;display:flex}.chart-legend .dot{border-radius:2px;width:8px;height:8px;display:inline-block}.chart-legend .dot.done{background:#37b24d}.chart-legend .dot.created{background:#cfdcf7}.bar-chart{align-items:flex-end;gap:6px;height:150px;padding-bottom:18px;display:flex;position:relative}.bar-slot{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.bar-pair{justify-content:center;align-items:flex-end;gap:2px;width:100%;height:100%;display:flex}.bar{border-radius:2px 2px 0 0;width:8px;min-height:2px;display:block}.bar.done{background:#37b24d}.bar.created{background:#cfdcf7}.bar-label{color:var(--text-3);white-space:nowrap;font-size:10px;position:absolute;bottom:-16px}.chart-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.rank-list{flex-direction:column;gap:10px;display:flex}.rank-row{align-items:center;gap:8px;font-size:13px;display:flex}.rank-name{width:84px;color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;flex:none;overflow:hidden}.rank-track{background:#eef1f6;border-radius:4px;flex:1;height:8px;overflow:hidden}.rank-fill{border-radius:4px;height:100%;display:block}.rank-value{text-align:right;width:56px;color:var(--text-3);font-size:12px}.dept-row{align-items:center;gap:4px;display:flex}.dept-row .dept-item{flex:1;min-width:0}.dept-add{color:#b6bcc6;opacity:0;border-radius:4px;flex:none;place-items:center;width:22px;height:22px;display:grid}.dept-row:hover .dept-add{opacity:1}.dept-add:hover{color:var(--brand);background:#eaf1ff}.assign-hint{color:var(--text-3);margin-bottom:10px;font-size:12px;line-height:1.5}.assign-list{flex-direction:column;gap:2px;max-height:320px;display:flex;overflow-y:auto}.assign-row{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.assign-row:hover{background:#f6f8fc}.assign-name{color:var(--text);flex:1}.assign-dept{color:var(--text-3);font-size:12px}.login-page{background:linear-gradient(135deg,#eef4ff 0%,#f7f9fc 45%,#e8f0ff 100%);flex:1;place-items:center;height:100%;padding:24px;display:grid}.login-card{background:#fff;border-radius:14px;width:360px;padding:28px 26px 22px;box-shadow:0 18px 48px #172e601f}.login-brand{align-items:center;gap:12px;margin-bottom:22px;display:flex}.login-logo{color:#fff;background:linear-gradient(135deg,#4d8dfa,#3478f2);border-radius:12px;place-items:center;width:40px;height:40px;font-size:20px;font-weight:600;display:grid}.login-title{font-size:18px;font-weight:600}.login-sub{color:var(--text-3);margin-top:2px;font-size:12px}.login-submit{width:100%;height:38px;margin-top:6px;font-size:15px}.setup-card{width:400px}.setup-desc{color:var(--text-3);margin:0 0 16px;font-size:13px;line-height:1.7}.setup-card input:-webkit-autofill{caret-color:#1f2937;-webkit-text-fill-color:#1f2937!important;box-shadow:inset 0 0 0 1000px #fff!important}.setup-card input:-webkit-autofill:hover{caret-color:#1f2937;-webkit-text-fill-color:#1f2937!important;box-shadow:inset 0 0 0 1000px #fff!important}.setup-card input:-webkit-autofill:focus{caret-color:#1f2937;-webkit-text-fill-color:#1f2937!important;box-shadow:inset 0 0 0 1000px #fff!important}.setup-card input:-webkit-autofill:active{caret-color:#1f2937;-webkit-text-fill-color:#1f2937!important;box-shadow:inset 0 0 0 1000px #fff!important}.password-field{position:relative}.password-field input{padding-right:38px}.password-eye{width:28px;height:28px;color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.password-eye:hover{color:var(--text-2);background:#f1f5fb}.field-error{color:var(--danger);margin-top:5px;font-size:12px}.setup-rules{color:var(--text-3);flex-wrap:wrap;gap:4px 14px;margin:7px 0 0;padding:0;font-size:12px;list-style:none;display:flex}.setup-rules li:before{content:"○";margin-right:4px}.setup-rules li.ok{color:#1f9254}.setup-rules li.ok:before{content:"✓"}.account-status{border-radius:10px;padding:1px 8px;font-size:12px;display:inline-block}.account-status.on{color:#37b24d;background:#eefaf0}.account-status.off{color:#8f959e;background:#f2f4f8}.account-actions{flex-wrap:wrap;gap:6px;display:flex}.account-actions .btn{height:26px;padding:0 10px;font-size:12px}.account-actions .btn:disabled{opacity:.45;cursor:not-allowed}.delete-account-tip{color:#475467;margin:0 0 12px;line-height:1.7}.antd-field{margin-bottom:14px}.task-form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 20px;display:grid}.task-form-col{min-width:0}@media (width<=720px){.task-form-grid{grid-template-columns:minmax(0,1fr)}}.antd-field-label{color:var(--text-2);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px;display:flex}.antd-field-hint{color:#8f959e;font-size:12px}.antd-field .ant-select,.antd-field .ant-picker{width:100%}.ant-modal-wrap:not(.ant-modal-centered){justify-content:center;align-items:center;padding:16px 0;display:flex}.ant-modal-wrap:not(.ant-modal-centered) .ant-modal{max-height:calc(100vh - 32px);margin:0;padding-bottom:0;top:0;overflow-y:auto}.ant-modal .ant-btn{border-radius:6px}.ant-modal .ant-btn-primary{background:var(--brand);border-color:var(--brand)}.ant-modal .ant-btn-primary:hover{background:var(--brand-dark);border-color:var(--brand-dark)}.account-table .ant-table{border:1px solid #e9edf4;border-radius:10px;overflow:hidden}.account-table .ant-table-thead>tr>th{font-size:12px;font-weight:600}.account-table .ant-table-tbody>tr>td{font-size:13px}.antd-error{color:var(--danger);font-size:13px}.account-member{align-items:center;gap:8px;display:inline-flex}.dept-danger{border-top:1px dashed #eef1f6;align-items:center;gap:10px;margin-top:12px;padding-top:4px;display:flex}.drawer-title{color:var(--text);font-size:16px;font-weight:600;line-height:1.4}.drawer-sub{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:12px;margin-top:6px;font-size:12px;font-weight:400;display:flex}.drawer-note{color:var(--text-2);white-space:pre-wrap;font-size:13px;line-height:1.6}.comment-foot{flex-direction:column;gap:8px;display:flex}.comment-hint{color:var(--text-3);font-size:12px}.comment-foot .mention-picker{margin-bottom:0}.comment-foot .comment-input>textarea{border-radius:8px;height:auto;min-height:56px}.login-options{align-items:center;gap:8px;margin:2px 0 12px;display:flex}.login-options .ant-checkbox-wrapper{color:var(--text-2);font-size:13px}.app-body{flex:1;min-height:0;display:flex}.header-page-title{color:#fff;padding-left:4px;font-size:15px;font-weight:600}.app-shell .app-header.ant-layout-header{color:#fff;background:linear-gradient(96deg,#6ba8ff 0%,#4d8dfa 48%,#3478f2 100%);align-items:center;gap:12px;height:56px;padding:0 16px;line-height:normal;display:flex}.app-shell .app-sidebar.ant-layout-sider{color:#fff;background:linear-gradient(#4f90fb 0%,#3578f2 100%)}.app-sidebar .ant-layout-sider-children{flex-direction:column;height:100%;display:flex}.sidebar-menu{flex:1;min-height:0;overflow:hidden auto;border-inline-end:none!important}.sidebar-menu .ant-menu-item{align-items:center;display:flex}.app-content{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.sidebar-brand{flex:none;align-items:center;gap:10px;height:56px;padding:0 15px;display:flex}.sidebar-logo{background:#ffffff38;border-radius:8px;flex:none;place-items:center;width:30px;height:30px;font-size:15px;font-weight:600;display:grid}.sidebar-brand-name{white-space:nowrap;font-size:15px;font-weight:600}.user-menu-layout{justify-content:space-between;align-items:center;gap:8px;padding:0 14px 12px;display:flex}.user-menu-layout-label{color:var(--text-3);font-size:12px}.layout-switch{border:1px solid #e3e8f0;border-radius:6px;display:flex;overflow:hidden}.layout-btn{height:24px;color:var(--text-2);background:#fff;padding:0 10px;font-size:12px}.layout-btn+.layout-btn{border-left:1px solid #e3e8f0}.layout-btn:hover{color:var(--brand)}.layout-btn.active{background:var(--brand);color:#fff}.app-shell .app-sidebar .ant-menu-dark,.app-shell .app-sidebar .ant-menu-dark.ant-menu-inline,.app-shell .app-sidebar .ant-menu-dark.ant-menu-inline-collapsed{background:0 0}.app-shell .app-sidebar .ant-menu-dark .ant-menu-item{color:#ffffffeb}.app-shell .app-sidebar .ant-menu-dark .ant-menu-item:hover{color:#fff;background:#ffffff29!important}.app-shell .app-sidebar .ant-menu-dark .ant-menu-item-selected{font-weight:500;color:var(--brand)!important;background:#fff!important}.app-shell .app-sidebar .ant-menu-dark .ant-menu-item-selected svg{color:var(--brand)}.app-shell .app-sidebar .ant-layout-sider-trigger{color:#ffffffe6;background:#0000001f;border-top:1px solid #ffffff2e}.app-shell .app-sidebar .ant-layout-sider-trigger:hover{color:#fff;background:#0003}.sidebar-trigger{justify-content:center;align-items:center;gap:6px;width:100%;height:100%;font-size:13px;line-height:1;display:flex}.ant-tooltip .ant-tooltip-inner{border:1px solid #e6eaf2;border-radius:8px;min-height:auto;padding:4px 8px;font-size:12px;box-shadow:0 6px 16px #0f172a1f;color:var(--text)!important;background:#fff!important}.ant-tooltip .ant-tooltip-arrow:before,.ant-tooltip .ant-tooltip-arrow:after{background:#fff!important}.task-owner-tag{white-space:nowrap;border-radius:10px;flex:none;padding:1px 7px;font-size:12px;line-height:18px}.task-collab-tag{color:var(--text-3);white-space:nowrap;background:#f2f4f8;border-radius:4px;flex:none;padding:1px 6px;font-size:12px;line-height:18px}.collab-progress-list{min-width:190px}.collab-progress-row{align-items:center;gap:8px;padding:3px 0;display:flex}.collab-progress-name{width:48px;color:var(--text);flex:none;font-size:12px}.collab-progress-bar{background:#e8eef7;border-radius:999px;flex:1;height:5px;overflow:hidden}.collab-progress-bar span{border-radius:inherit;background:var(--brand);height:100%;display:block}.collab-progress-value{color:var(--text-3);white-space:nowrap;flex:none;font-size:11px}.task-source{color:#8f959e;white-space:nowrap;background:#f2f4f8;border-radius:4px;flex:none;padding:1px 6px;font-size:12px;line-height:18px}.lane-dept{color:#8f959e;white-space:nowrap;background:#f2f4f8;border-radius:4px;flex:none;padding:1px 6px;font-size:11px;line-height:16px}*{scrollbar-width:thin;scrollbar-color:#d3d9e3 transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d3d9e3 padding-box content-box;border:2px solid #0000;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#b6bfcd padding-box content-box}::-webkit-scrollbar-corner{background:0 0}.execute-lanes::-webkit-scrollbar{width:10px;height:10px}.execute-lanes::-webkit-scrollbar-thumb{background:#dfe4ec padding-box content-box;border-radius:5px}.execute-lanes:hover::-webkit-scrollbar-thumb{background:#c6ceda padding-box content-box}.filter-group{color:#8f959e;align-items:center;gap:4px;display:flex}.toolbar-add{align-items:center;gap:4px;height:30px;padding:0 12px;font-size:13px;display:inline-flex}.toolbar-actions{align-items:center;gap:8px;display:inline-flex}.toolbar-refresh{align-items:center;gap:4px;height:30px;padding:0 12px;font-size:13px;display:inline-flex}.toolbar-refresh .is-spinning{animation:.8s linear infinite toolbar-spin}@keyframes toolbar-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.filter-chip{color:#646a73;cursor:pointer;background:0 0;border:none;border-radius:6px;height:26px;padding:0 10px;font-size:12px;transition:background .15s,color .15s}.filter-chip:hover{background:#f2f4f8}.filter-chip.is-on{color:#2f6fed;background:#eaf1ff;font-weight:500}.kr-slider{flex:1;min-width:0;margin:0 12px}.okr-owner{flex:none;align-items:center;gap:6px;display:flex}.okr-owner-name{color:#1f2329;white-space:nowrap;font-size:13px}.okr-owner-dept{color:#8f959e;white-space:nowrap;background:#f2f4f8;border-radius:4px;padding:1px 6px;font-size:11px;line-height:16px}.scope-tag{color:#2f6fed;background:#eaf1ff;border-radius:10px;margin-left:8px;padding:1px 7px;font-size:11px;font-weight:400;line-height:17px}.notice-head-actions{align-items:center;gap:22px;display:flex}.notice-read-count{min-width:16px;height:16px;color:var(--brand);background:#eaf1ff;border-radius:8px;justify-content:center;align-items:center;margin-left:4px;padding:0 4px;font-size:11px;line-height:16px;display:inline-flex}.notice-empty{text-align:center;color:#8f959e;padding:24px 0}.notice-all-list{max-height:440px;overflow-y:auto}.notice-all-list .notice{cursor:pointer}.wecom-status-row{color:#1f2329;background:#f7f9fc;border-radius:8px;align-items:center;gap:8px;margin-bottom:14px;padding:10px 12px;font-size:13px;display:flex}.wecom-dot{background:#c8cfda;border-radius:50%;width:8px;height:8px}.wecom-dot.connected{background:#37b24d}.wecom-dot.connecting{background:#f0a020}.wecom-dot.error{background:#f5514b}.wecom-meta{color:#8f959e;font-size:12px}.wecom-error{color:#d93026;word-break:break-all;background:#fff1f0;border-radius:6px;margin-top:10px;padding:8px 10px;font-size:12px;line-height:1.5}.wecom-actions{gap:8px;margin-top:14px;display:flex}.wecom-assets{gap:16px;margin-top:4px;display:flex}.wecom-asset{flex-direction:column;gap:6px;display:flex}.wecom-asset-link{flex:1;min-width:0}.qr-upload{cursor:pointer;background:#fafbfd;border:1px dashed #d3d9e3;border-radius:8px;place-items:center;width:96px;height:96px;transition:border-color .15s;display:grid;overflow:hidden}.qr-upload:hover{border-color:#2f6fed}.qr-upload img{object-fit:contain;width:auto;max-width:92px;height:auto;max-height:92px}.qr-empty{color:#8f959e;flex-direction:column;align-items:center;gap:4px;font-size:11px;display:flex}.qr-clear{color:#8f959e;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:11px}.qr-clear:hover{color:#f5514b}.qr-upload.is-dragover{background:#eef4ff;border-color:#2f6fed}.qr-upload.is-dragover .qr-empty{color:#2f6fed}.user-menu-bind{white-space:normal;flex-wrap:wrap;align-items:flex-start;gap:4px 8px;display:flex}.bind-label{flex:none}.user-menu-bind .bind-id{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;word-break:break-all;flex:0 auto;min-width:0;max-width:100%;overflow:visible}.bind-id{color:#2f6fed;word-break:break-all;background:#eaf1ff;border-radius:4px;max-width:100%;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;display:inline-block}.bind-copy{white-space:nowrap;color:#2f6fed;cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-size:12px}.bind-copy:hover{text-decoration:underline}.wecom-empty{color:#8f959e;text-align:center;background:#fafbfd;border-radius:6px;margin-top:6px;padding:12px;font-size:12px}.wecom-binding{align-items:center;gap:10px;padding:7px 0;font-size:13px;display:flex}.wecom-binding-name{color:#1f2329}.wecom-binding-meta{color:#8f959e;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.wecom-binding-actions{flex:none;align-items:center;gap:10px;display:flex}.wecom-binding-actions .bind-copy:disabled{opacity:.5;cursor:not-allowed}.account-muted{color:#b0b6c0;font-size:12px}.bind-page .module-body{display:flex}.bind-page .module-body>.bind-panel{margin:auto}.bind-emphasis{color:var(--brand);font-weight:600}.bind-done-btn.ant-btn-primary{box-shadow:none;background:#1f9254;border-color:#1f9254}.bind-done-btn.ant-btn-primary:not(:disabled):hover{background:#18824a;border-color:#18824a}.bind-panel{background:#fff;border-radius:12px;width:100%;max-width:900px;padding:24px 28px;box-shadow:0 1px 3px #0f172a0f}.bind-steps{flex-direction:column;gap:28px;display:flex}.bind-step-head{color:#1f2329;align-items:center;gap:8px;margin-bottom:10px;font-size:14px;font-weight:500;display:flex}.bind-step-no{color:#2f6fed;background:#eaf1ff;border-radius:50%;place-items:center;width:20px;height:20px;font-size:12px;display:grid}.bind-step-body{align-items:center;gap:24px;display:flex}.bind-qr{border:1px solid #eef1f6;border-radius:8px;flex:none;place-items:center;width:210px;height:210px;display:grid;overflow:hidden}.bind-qr img{object-fit:contain;width:auto;max-width:206px;height:auto;max-height:206px}.bind-qr-empty{color:#b0b6c0;text-align:center;padding:0 12px;font-size:12px}.bind-qr-side{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.bind-way{color:var(--text-2);align-items:flex-start;gap:8px;font-size:13px;display:flex}.bind-way+.bind-way{margin-top:16px}.bind-way-tag{color:var(--brand);background:#eef4ff;border-radius:10px;flex:none;padding:0 7px;font-size:12px;line-height:20px}.bind-way-body{flex-direction:column;gap:6px;min-width:0;display:flex}.bind-way span:not(.bind-link),.bind-way-body>span:not(.bind-link){-webkit-user-select:none;user-select:none}.bind-link-row{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.bind-link{color:#2f6fed;text-align:left;word-break:break-all;cursor:text;-webkit-user-select:all;user-select:all;background:0 0;border:none;flex:1;min-width:0;padding:0;font-size:13px;line-height:1.5}.bind-link-copy,.bind-command-copy{flex:none;height:auto;padding:0;line-height:1.5}.bind-bound-tip{color:#1f9254;background:#e9f7ef;border-radius:8px;align-items:center;gap:6px;margin-top:12px;padding:8px 12px;font-size:13px;display:flex}.bind-done-actions{margin-top:14px}.bind-muted{color:#8f959e;font-size:12px}.bind-command-row{flex-wrap:wrap}.bind-command{color:#1f2329;white-space:nowrap;-webkit-user-select:all;user-select:all;cursor:text;background:#f7f9fc;border-radius:6px;padding:5px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;display:inline-block}.bind-command-step .bind-step-head,.bind-command-step .bind-muted{-webkit-user-select:none;user-select:none}.bind-done-title{color:#1f8f3c;align-items:center;gap:6px;margin-bottom:10px;font-size:15px;font-weight:500;display:flex}.bind-done-desc{color:#1f2329;margin:0 0 8px;font-size:13px;line-height:1.7}.bind-done-hint{color:#8f959e;margin:0;font-size:12px}.bind-banner{color:#8a4b00;background:linear-gradient(90deg,#fff8ea 0%,#fff3e6 100%);border:1px solid #ffd8a8;border-radius:10px;align-items:center;gap:12px;margin:12px 16px 0;padding:12px 16px;display:flex}.bind-banner-icon{color:#d46b08;background:#ffe7ba;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;display:grid}.bind-banner-text{flex-wrap:wrap;flex:1;align-items:baseline;gap:8px;min-width:0;font-size:13px;line-height:1.5;display:flex}.bind-banner-text strong{color:#ad4e00;font-weight:500}.bind-banner-text span{color:#9c6b2f}.bind-banner-btn{color:#fff;cursor:pointer;background:#fa8c16;border:none;border-radius:6px;flex:none;height:30px;padding:0 14px;font-size:13px;transition:background .15s}.bind-banner-btn:hover{background:#e07a0c}.bind-banner-close{color:#b08954;cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-size:12px}.bind-banner-close:hover{color:#8a4b00}.wecom-tabs .ant-tabs-nav{margin-bottom:12px}.wecom-bindings{border-top:none;margin-top:0;padding-top:0}.priority-bar{border-radius:2px;flex:none;align-self:stretch;width:3px;min-height:18px}.priority-bar.urgent{background:#f5514b}.priority-bar.important{background:#fa8c16}.drawer-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.drawer-grid.single{grid-template-columns:1fr}.drawer-title-input.ant-input{box-shadow:none;color:#1f2329;background:0 0;border-color:#0000;padding:2px 6px;font-size:16px;font-weight:600;transition:border-color .15s,background .15s}.drawer-title-input.ant-input:hover{background:#fff;border-color:#e3e8ef}.drawer-title-input.ant-input:focus{background:#fff;border-color:#2f6fed;box-shadow:0 0 0 2px #2f6fed1f}.drawer-note-input.ant-input{box-shadow:none;resize:none;background:#fff;border-color:#dfe4ec;min-height:88px;font-size:13px}.drawer-note-input.ant-input:hover{background:#fff;border-color:#e3e8ef}.drawer-note-input.ant-input:focus{background:#fff;border-color:#2f6fed;box-shadow:0 0 0 2px #2f6fed1f}.comment-locked{color:#8f959e;text-align:center;background:#fafbfd;border-radius:8px;padding:10px 12px;font-size:12px}.review-delete{align-items:center;gap:4px;height:26px;margin-left:8px;padding:0 8px;font-size:12px;display:inline-flex}.drawer-empty{text-align:center;padding:56px 12px}
