.particle-background[data-v-da6f0a77]{pointer-events:none;position:absolute;inset:0;overflow:hidden}canvas[data-v-da6f0a77]{display:block}.app-shell[data-v-3e7a37ac]{background:var(--bg);height:100vh;display:flex;overflow:hidden}.sidebar[data-v-3e7a37ac]{width:var(--sidebar-width);background:var(--sidebar-bg);border-right:1px solid var(--border);color:var(--text-1);flex-direction:column;flex-shrink:0;transition:width .22s;display:flex;position:relative;overflow:hidden auto}.sidebar.collapsed[data-v-3e7a37ac]{width:72px}.sidebar-toggle[data-v-3e7a37ac]{z-index:10;border:1px solid var(--border);width:24px;height:24px;color:var(--text-2);background:var(--surface);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:18px;right:-12px;box-shadow:0 2px 8px #1f23291a}.sidebar-toggle[data-v-3e7a37ac]:hover{color:var(--primary);border-color:var(--primary)}.sidebar.collapsed .brand[data-v-3e7a37ac]{justify-content:center;padding-left:10px;padding-right:10px}.sidebar.collapsed .brand-text[data-v-3e7a37ac],.sidebar.collapsed .nav-label[data-v-3e7a37ac],.sidebar.collapsed .entry-label[data-v-3e7a37ac],.sidebar.collapsed .user-info[data-v-3e7a37ac],.sidebar.collapsed .logout-btn[data-v-3e7a37ac]{display:none}.sidebar.collapsed .nav-item[data-v-3e7a37ac],.sidebar.collapsed .entry-switch[data-v-3e7a37ac]{justify-content:center;padding-left:10px;padding-right:10px}.sidebar.collapsed .user-area[data-v-3e7a37ac]{padding-left:8px;padding-right:8px}.sidebar.collapsed .user-card[data-v-3e7a37ac]{justify-content:center}.sidebar.collapsed .login-btn[data-v-3e7a37ac]{padding-left:0;padding-right:0;font-size:0}.sidebar.collapsed .login-btn[data-v-3e7a37ac] .n-button__icon{margin:0}.brand[data-v-3e7a37ac]{align-items:center;gap:12px;padding:22px 20px 18px;display:flex;position:relative}.brand[data-v-3e7a37ac]:after{content:"";background:linear-gradient(90deg,#0000,#4f46e540,#0000);height:1px;position:absolute;bottom:0;left:20px;right:20px}.brand-logo[data-v-3e7a37ac]{background:var(--brand-gradient);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex;box-shadow:0 2px 10px #4f46e54d}.brand-logo span[data-v-3e7a37ac]{color:#fff;font-size:19px;font-weight:700}.brand-title[data-v-3e7a37ac]{letter-spacing:.5px;color:var(--text-1);font-size:15px;font-weight:600}.brand-sub[data-v-3e7a37ac]{letter-spacing:1.6px;color:var(--text-3);margin-top:2px;font-size:10px}.nav-wrap[data-v-3e7a37ac]{flex-direction:column;flex:1;gap:4px;padding:14px 10px;display:flex;position:relative;overflow:hidden}.nav-item[data-v-3e7a37ac]{z-index:1;border-radius:var(--radius-sm);color:var(--text-2);align-items:center;gap:10px;padding:10px 12px 10px 14px;font-size:14px;text-decoration:none;transition:color .16s,background .16s;display:flex;position:relative}.nav-icon[data-v-3e7a37ac]{flex-shrink:0;display:flex}.nav-item[data-v-3e7a37ac]:hover{color:var(--text-1);background:var(--bg)}.nav-indicator[data-v-3e7a37ac]{background:var(--primary);border-radius:0 3px 3px 0;width:3px;height:22px;transition:transform .18s;position:absolute;top:50%;left:0;transform:translateY(-50%)scaleY(0)}.nav-item.active[data-v-3e7a37ac]{color:var(--text-1);background:var(--primary-soft);font-weight:500}.nav-item.active .nav-indicator[data-v-3e7a37ac]{transform:translateY(-50%)scaleY(1)}.entry-switch[data-v-3e7a37ac]{border-radius:var(--radius-sm);border:1px dashed var(--border);color:var(--text-2);align-items:center;gap:8px;margin:4px 12px 8px;padding:9px 14px;font-size:13px;text-decoration:none;transition:all .15s;display:flex}.entry-switch[data-v-3e7a37ac]:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-soft)}.user-area[data-v-3e7a37ac]{border-top:1px solid var(--border);padding:14px 12px 16px}.user-card[data-v-3e7a37ac]{border-radius:var(--radius-sm);background:var(--bg);border:1px solid var(--border);align-items:center;gap:10px;padding:10px 12px;display:flex}.user-avatar[data-v-3e7a37ac]{background:var(--brand-gradient);flex-shrink:0;font-size:14px;font-weight:600}.user-info[data-v-3e7a37ac]{flex-direction:column;flex:1;align-items:flex-start;gap:3px;min-width:0;display:flex}.user-name[data-v-3e7a37ac]{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:13px;font-weight:600;overflow:hidden}.user-role[data-v-3e7a37ac]{font-size:11px}.logout-btn[data-v-3e7a37ac]{color:var(--text-3);flex-shrink:0}.logout-btn[data-v-3e7a37ac]:hover{color:var(--danger)}.login-btn[data-v-3e7a37ac]{background:var(--brand-gradient);color:#fff;border-radius:var(--radius-sm);border:none;font-weight:500;box-shadow:0 2px 10px #4f46e54d}.content[data-v-3e7a37ac]{flex:1;min-width:0;padding:24px 28px;overflow-y:auto}:root{--brand:#4f46e5;--brand-2:#6366f1;--brand-gradient:linear-gradient(135deg, #4f46e5, #6366f1);--primary:#4f46e5;--primary-hover:#6366f1;--primary-pressed:#4338ca;--primary-soft:#eef2ff;--volt:#65a30d;--volt-soft:#f7fee7;--bg:#f5f6f8;--surface:#fff;--border:#e4e7ed;--text-1:#1f2329;--text-2:#646a73;--text-3:#98a1b3;--state-claim:#9ba3b4;--state-start:#5b8def;--state-doing:#f5a623;--state-done:#3ecf8e;--state-hold:#a78bfa;--todo:#9ba3b4;--doing:#5b8def;--done:#3ecf8e;--warn:#f59e0b;--danger:#ef4444;--priority-high:#ef4444;--priority-medium:#f5a623;--priority-low:#9ba3b4;--radius:12px;--radius-sm:8px;--shadow-1:0 1px 3px #1f23290f, 0 4px 12px #1f23290d;--shadow-2:0 8px 24px #4f46e524, 0 2px 8px #1f232914;--sidebar-bg:#fff;--sidebar-width:232px}html,body{height:100%}body{background:var(--bg);color:var(--text-1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.5}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#c9cfdd;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#aab2c5}.fade-slide-enter-active,.fade-slide-leave-active{transition:opacity .18s,transform .18s}.fade-slide-enter-from{opacity:0;transform:translateY(10px)}.fade-slide-leave-to{opacity:0;transform:translateY(-6px)}.page{animation:.32s cubic-bezier(.22,.8,.32,1) both page-in}@keyframes page-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}[data-tilt]{will-change:transform;transform-style:preserve-3d}.surface-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1)}.brand-gradient-text{background:var(--brand-gradient);color:#0000;-webkit-background-clip:text;background-clip:text}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#333;background:#f3f5f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.5}#app{min-height:100vh}.sortable-ghost{opacity:.4}.sortable-chosen{box-shadow:0 4px 16px #00000026}.sortable-drag{opacity:.9}.project-pool{background:#fff;border:1px solid #ebedf0;border-radius:10px;margin-bottom:16px;padding:16px 20px}.pool-list{flex-wrap:wrap;align-items:center;gap:8px;min-height:48px;display:flex}.pool-card{cursor:grab;-webkit-user-select:none;user-select:none;background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;transition:all .15s;display:inline-flex}.pool-card:hover{background:#c7d2fe;transform:translateY(-1px);box-shadow:0 2px 6px #6366f133}.pool-card .dot{background:#6366f1;border-radius:50%;flex-shrink:0;width:8px;height:8px}.pool-card .sales{color:#6b7280;font-size:12px}.board-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;display:grid}@media (width>=1400px){.board-grid{grid-template-columns:repeat(5,1fr)}}.emp-column{background:#f0f2f5;border-radius:10px;flex-direction:column;min-height:280px;padding:12px;display:flex}.emp-column-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.emp-column-header .name{color:#1f2937;font-size:14px;font-weight:600}.emp-column-header .meta{color:#9ca3af;align-items:center;gap:6px;font-size:12px;display:flex}.task-drop-zone{flex-direction:column;flex:1;gap:8px;min-height:80px;display:flex}.task-card{cursor:grab;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px;transition:all .15s;position:relative}.task-card:hover{border-color:#c7d2fe;box-shadow:0 2px 8px #6366f11a}.task-card .title{color:#1f2937;word-break:break-all;margin-bottom:8px;padding-right:20px;font-size:13px;font-weight:500;line-height:1.5}.task-card .meta-row{flex-wrap:wrap;gap:4px;display:flex}.task-card .del-btn{color:#d1d5db;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px;font-size:16px;line-height:1;transition:all .15s;position:absolute;top:8px;right:8px}.task-card .del-btn:hover{color:#ef4444;background:#fef2f2}.sat-bar{background:#e5e7eb;border-radius:2px;width:100%;height:4px;overflow:hidden}.sat-bar .fill{border-radius:2px;height:100%;transition:width .3s}.calendar-wrap{border:1px solid #e5e7eb;border-radius:10px;overflow-x:auto}.calendar-table{border-collapse:collapse;background:#fff;width:100%;font-size:13px}.calendar-table th,.calendar-table td{text-align:center;border-bottom:1px solid #f0f0f0;padding:10px 8px}.calendar-table th{color:#fff;z-index:5;background:#1e293b;font-size:13px;font-weight:500;position:sticky;top:0}.calendar-table td:first-child{color:#1e293b;z-index:3;background:#f8fafc;font-weight:600;position:sticky;left:0}.calendar-table tbody tr:hover td{background:#f0f4ff}.calendar-table tbody tr:hover td:first-child{background:#e8edfc}.proj-tag{border-radius:4px;margin:2px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.p0{color:#1d4ed8;background:#dbeafe}.p1{color:#047857;background:#d1fae5}.p2{color:#c2410c;background:#ffedd5}.p3{color:#be185d;background:#fce7f3}.p4{color:#6d28d9;background:#ede9fe}.p5{color:#0f766e;background:#ccfbf1}.p6{color:#a16207;background:#fef9c3}.p7{color:#7c3aed;background:#f3e8ff}.meeting-badge{color:#86198f;background:#fae8ff;border:1px dashed #d946ef;border-radius:4px;margin:2px;padding:2px 8px;font-size:12px;display:inline-block}
