.login-page[data-v-4cc8a8e5]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.login-card[data-v-4cc8a8e5]{width:340px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:28px 28px 24px;display:flex;flex-direction:column}h1[data-v-4cc8a8e5]{margin:0;font-size:19px;font-weight:600}.sub[data-v-4cc8a8e5]{margin:4px 0 18px;font-size:13px;color:var(--text-muted)}label[data-v-4cc8a8e5]{font-size:12px;color:var(--text-muted);margin-bottom:4px}input[data-v-4cc8a8e5]{margin-bottom:12px;width:100%}.error[data-v-4cc8a8e5]{margin:0 0 12px;font-size:13px;color:var(--danger)}button[data-v-4cc8a8e5]{margin-top:8px;padding:8px 14px}.overlay[data-v-baca6183]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;padding:24px;z-index:50}.modal[data-v-baca6183]{background:var(--surface);border-radius:10px;width:min(760px,100%);max-height:100%;overflow-y:auto;padding:20px 24px 22px}h2[data-v-baca6183]{margin:0 0 14px;font-size:17px}.grid[data-v-baca6183]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field[data-v-baca6183]{display:flex;flex-direction:column;gap:4px}.span2[data-v-baca6183]{grid-column:span 2}label[data-v-baca6183]{font-size:12px;color:var(--text-muted)}input[data-v-baca6183],textarea[data-v-baca6183]{width:100%}.date-row[data-v-baca6183]{display:flex;align-items:center;gap:6px}.date-row span[data-v-baca6183]{font-size:12px;color:var(--text-muted);flex:none}.error[data-v-baca6183]{margin:12px 0 0;padding:8px 12px;background:#fdecec;color:var(--danger);border-radius:var(--radius);font-size:13px}.actions[data-v-baca6183]{display:flex;align-items:center;gap:8px;margin-top:18px}.spacer[data-v-baca6183]{flex:1}.page[data-v-2a8d5f5c]{max-width:1700px;margin:0 auto;padding:18px 22px 48px}.top[data-v-2a8d5f5c]{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap}.brand[data-v-2a8d5f5c]{display:flex;align-items:baseline;gap:10px}h1[data-v-2a8d5f5c]{margin:0;font-size:19px;font-weight:600}.who[data-v-2a8d5f5c]{font-size:13px;color:var(--text-muted)}.link[data-v-2a8d5f5c]{border:none;background:none;padding:0;color:var(--brand);font-size:13px}.top-actions[data-v-2a8d5f5c]{display:flex;align-items:center;gap:8px}.top-actions .primary[data-v-2a8d5f5c]{font-size:13px;padding:6px 14px;border-radius:var(--radius)}a.btn-link.primary[data-v-2a8d5f5c]{display:inline-block;text-decoration:none;line-height:1.5;background:var(--brand);border:1px solid var(--brand);color:#fff}a.btn-link.primary[data-v-2a8d5f5c]:hover{background:#1d4ed8}.link[data-v-2a8d5f5c]:hover{text-decoration:underline;background:none}.filters[data-v-2a8d5f5c]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.search[data-v-2a8d5f5c]{width:250px}select[data-v-2a8d5f5c]{font:inherit;color:inherit;border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;background:var(--surface);outline:none}.toggle[data-v-2a8d5f5c]{padding:6px 14px}.toggle.on[data-v-2a8d5f5c]{background:var(--brand);border-color:var(--brand);color:#fff}.toggle.on[data-v-2a8d5f5c]:hover{background:#1d4ed8}.hint[data-v-2a8d5f5c]{margin-left:auto;font-size:12px;color:var(--text-muted)}.error[data-v-2a8d5f5c]{margin:0 0 12px;padding:8px 12px;background:#fdecec;color:var(--danger);border-radius:var(--radius);font-size:13px}.overlay[data-v-2a8d5f5c]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;padding:24px;z-index:60}.modal-small[data-v-2a8d5f5c]{background:var(--surface);border-radius:10px;width:min(460px,100%);padding:20px 24px}.modal-small h2[data-v-2a8d5f5c]{margin:0 0 10px;font-size:17px}.import-summary[data-v-2a8d5f5c]{margin:0 0 8px;font-size:14px}.import-summary b[data-v-2a8d5f5c]{color:var(--brand);font-size:16px}.import-errors[data-v-2a8d5f5c]{margin:8px 0 0;padding:8px 12px;background:#fef3c7;border-radius:var(--radius);font-size:13px;color:#92400e;max-height:200px;overflow-y:auto}.import-errors p[data-v-2a8d5f5c]{margin:2px 0}.modal-small .actions[data-v-2a8d5f5c]{display:flex;gap:8px;margin-top:16px}.spacer[data-v-2a8d5f5c]{flex:1}.tip[data-v-2a8d5f5c]{padding:48px 0;text-align:center;color:var(--text-muted)}.table-wrap[data-v-2a8d5f5c]{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow-x:auto}table[data-v-2a8d5f5c]{width:100%;border-collapse:collapse;table-layout:fixed;min-width:1480px}th[data-v-2a8d5f5c],td[data-v-2a8d5f5c]{border-bottom:1px solid var(--border);padding:9px 10px;text-align:left;vertical-align:top;font-size:13px}th[data-v-2a8d5f5c]{background:#fafbfc;font-weight:500;color:var(--text-muted);white-space:nowrap}tbody tr[data-v-2a8d5f5c]:hover{background:#f7f9fc;cursor:pointer}tbody tr:last-child td[data-v-2a8d5f5c]{border-bottom:none}tbody tr.dragging[data-v-2a8d5f5c]{opacity:.4}tbody tr.drag-over td[data-v-2a8d5f5c]{border-top:2px solid var(--brand)}.c-idx[data-v-2a8d5f5c]{width:62px}.c-name[data-v-2a8d5f5c]{width:210px}.c-members[data-v-2a8d5f5c]{width:200px}.c-date[data-v-2a8d5f5c]{width:96px}.c-deadline[data-v-2a8d5f5c]{width:118px}.c-updated[data-v-2a8d5f5c]{width:92px}.c-op[data-v-2a8d5f5c]{width:52px}.idx[data-v-2a8d5f5c]{color:var(--text-muted)}.handle[data-v-2a8d5f5c]{display:inline-block;margin-right:6px;color:#b9bec6;cursor:grab;-webkit-user-select:none;user-select:none}.handle.disabled[data-v-2a8d5f5c]{cursor:not-allowed;opacity:.35}.name[data-v-2a8d5f5c]{font-weight:500;word-break:break-word}.members[data-v-2a8d5f5c]{word-break:break-word}.member-main[data-v-2a8d5f5c]{font-weight:600;color:#1f2328}.member-other[data-v-2a8d5f5c]{color:#6b7280;font-size:12px}.nowrap[data-v-2a8d5f5c]{white-space:nowrap}.people[data-v-2a8d5f5c]{color:#4b5563;word-break:break-word}.date[data-v-2a8d5f5c]{font-variant-numeric:tabular-nums}.updated[data-v-2a8d5f5c]{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.mine-dot[data-v-2a8d5f5c]{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--brand);margin-right:5px;vertical-align:middle}.badge[data-v-2a8d5f5c]{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;white-space:nowrap}.badge-archived[data-v-2a8d5f5c]{background:#eceef1;color:#6b7280;margin-right:5px}tbody tr.archived td[data-v-2a8d5f5c]{color:#9ca3af}tbody tr.archived .member-main[data-v-2a8d5f5c]{color:#9ca3af;font-weight:400}.deadline .date[data-v-2a8d5f5c]{white-space:nowrap}.deadline .left[data-v-2a8d5f5c]{font-size:12px;margin-top:2px;white-space:nowrap}.u-overdue .date[data-v-2a8d5f5c],.u-overdue .left[data-v-2a8d5f5c]{color:#dc2626;font-weight:600}.u-soon .date[data-v-2a8d5f5c],.u-soon .left[data-v-2a8d5f5c]{color:#b45309;font-weight:600}.u-ok .date[data-v-2a8d5f5c],.u-ok .left[data-v-2a8d5f5c]{color:#15803d}.u-none .date[data-v-2a8d5f5c],.u-none .left[data-v-2a8d5f5c]{color:#9ca3af}.multiline[data-v-2a8d5f5c]{white-space:pre-line;line-height:1.6;color:#374151;word-break:break-word}.multiline.muted[data-v-2a8d5f5c]{color:#6b7280;font-size:12px}.notes[data-v-2a8d5f5c]{font-size:12px}.booting[data-v-e02048a6]{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}:root{--surface: #ffffff;--bg: #f5f6f7;--text: #1f2328;--text-muted: #6b7280;--border: #e3e5e8;--brand: #2563eb;--danger: #dc2626;--radius: 6px;--font-sans: "SF Pro Text", "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}body{margin:0;font:400 14px/1.6 var(--font-sans);color:var(--text);background:var(--bg)}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:inherit;border-radius:var(--radius);padding:6px 14px}button:hover{background:#f0f2f4}button:disabled{opacity:.6;cursor:default}button.primary{background:var(--brand);border-color:var(--brand);color:#fff}button.primary:hover{background:#1d4ed8}button.danger{color:var(--danger);border-color:transparent;background:transparent}button.danger:hover{background:#fdecec}input,textarea{font:inherit;color:inherit;border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;outline:none;background:var(--surface)}input:focus,textarea:focus{border-color:var(--brand)}textarea{resize:vertical}
