*{box-sizing:border-box;margin:0;padding:0}body{background:#f8fafb;margin:0;font-family:Outfit,sans-serif}.yearly-view[data-v-6a5ed053]{background:#f8fafb;min-height:100vh;padding:40px 20px;font-family:Outfit,sans-serif;position:relative}.header[data-v-6a5ed053]{text-align:center;margin-bottom:48px}.year-nav[data-v-6a5ed053]{justify-content:center;align-items:center;gap:20px;margin-bottom:6px;display:flex}.nav-btn[data-v-6a5ed053]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;display:flex;box-shadow:0 1px 3px #0000000f}.year-title[data-v-6a5ed053]{letter-spacing:-2px;background:linear-gradient(135deg,#0f172a,#334155);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-size:56px;font-weight:900}.subtitle[data-v-6a5ed053]{color:#94a3b8;letter-spacing:3px;margin:0;font-family:DM Mono,monospace;font-size:13px}.progress-bar[data-v-6a5ed053]{justify-content:center;align-items:center;gap:10px;margin-top:16px;display:flex}.bar-track[data-v-6a5ed053]{background:#e2e8f0;border-radius:3px;width:180px;height:6px;overflow:hidden}.bar-fill[data-v-6a5ed053]{background:linear-gradient(90deg,#2dd4bf,#38bdf8,#818cf8);border-radius:3px;height:100%;transition:width .6s}.pct-label[data-v-6a5ed053]{color:#2dd4bf;font-family:DM Mono,monospace;font-size:12px;font-weight:500}.timeline[data-v-6a5ed053]{max-width:940px;margin:0 auto}.row[data-v-6a5ed053]{align-items:center;padding:0 10px;display:flex;position:relative}.row-curve[data-v-6a5ed053]{z-index:1;height:40px;position:absolute;top:50%;left:50px;right:50px;overflow:visible;transform:translateY(-50%)}.curve-path[data-v-6a5ed053]{stroke-dasharray:1200;stroke-dashoffset:1200px;animation:1s forwards drawPath-6a5ed053}.month-col[data-v-6a5ed053]{z-index:2;flex-direction:column;flex:1;align-items:center;min-width:0;display:flex;position:relative}.info-card[data-v-6a5ed053]{text-align:center;flex-direction:column;min-height:70px;display:flex}.info-card.above[data-v-6a5ed053]{justify-content:flex-end;margin-bottom:14px;animation:.5s both fadeSlideDown-6a5ed053}.info-card.below[data-v-6a5ed053]{justify-content:flex-start;margin-top:14px;animation:.5s both fadeSlideUp-6a5ed053}.month-name[data-v-6a5ed053]{color:#1e293b;margin-bottom:3px;font-size:14px;font-weight:700}.month-name.big[data-v-6a5ed053]{font-size:17px}.month-stats[data-v-6a5ed053]{color:#64748b;max-width:140px;margin:0 auto;font-size:11px;line-height:1.4}.month-empty[data-v-6a5ed053]{color:#cbd5e1;font-size:11px;font-style:italic}.mobile-timeline[data-v-6a5ed053]{display:none}.m-card[data-v-6a5ed053]{cursor:pointer;background:#fff;border-left:4px solid;border-radius:12px;padding:14px 16px;transition:transform .15s,box-shadow .15s;animation:.3s both fadeIn}.m-card[data-v-6a5ed053]:active{transform:scale(.98)}.m-card-head[data-v-6a5ed053]{justify-content:space-between;align-items:center;display:flex}.m-card-month[data-v-6a5ed053]{font-size:16px;font-weight:700}.m-card-badge[data-v-6a5ed053]{color:#fff;border-radius:11px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:11px;font-weight:700;display:flex}.m-card-stats[data-v-6a5ed053]{color:#64748b;margin-top:6px;font-size:12px}.m-card-bar[data-v-6a5ed053]{background:#f1f5f9;border-radius:2px;height:4px;margin-top:8px;overflow:hidden}.m-card-bar-fill[data-v-6a5ed053]{border-radius:2px;height:100%;transition:width .4s}.m-card-empty[data-v-6a5ed053]{color:#cbd5e1;margin-top:4px;font-size:12px;font-style:italic}@media (width<=768px){.yearly-view[data-v-6a5ed053]{padding:20px 12px}.header[data-v-6a5ed053]{margin-bottom:20px}.year-title[data-v-6a5ed053]{font-size:36px}.subtitle[data-v-6a5ed053]{letter-spacing:2px;font-size:10px}.desktop-timeline[data-v-6a5ed053]{display:none}.mobile-timeline[data-v-6a5ed053]{flex-direction:column;gap:8px;max-width:500px;margin:0 auto;display:flex}.action-btns[data-v-6a5ed053]{flex-direction:column;align-items:stretch;gap:8px;margin-top:24px}.action-btn[data-v-6a5ed053]{justify-content:center;padding:12px 20px;font-size:14px}.legend[data-v-6a5ed053]{gap:12px;margin-top:20px}.legend-item span[data-v-6a5ed053]{font-size:10px}.hint[data-v-6a5ed053]{margin-top:16px;font-size:11px}}@media (width<=480px){.year-title[data-v-6a5ed053]{font-size:28px}}.node[data-v-6a5ed053]{cursor:pointer;z-index:2;background:#fff;border:3px solid;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;transition:all .3s cubic-bezier(.34,1.56,.64,1);animation:.4s both popIn-6a5ed053;display:flex;position:relative}.node.hovered[data-v-6a5ed053]{z-index:10;transform:scale(1.12)}.node-label[data-v-6a5ed053]{font-size:14px;font-weight:800}.node-year[data-v-6a5ed053]{color:#94a3b8;margin-top:1px;font-family:DM Mono,monospace;font-size:9px}.badge[data-v-6a5ed053]{color:#fff;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.pulse-ring[data-v-6a5ed053]{border:2px solid #22c55e44;border-radius:50%;animation:2s infinite pulse-6a5ed053;position:absolute;inset:-6px}.connector[data-v-6a5ed053]{height:44px;display:flex}.connector.right[data-v-6a5ed053]{justify-content:flex-end;padding-right:11.5%}.connector.left[data-v-6a5ed053]{justify-content:flex-start;padding-left:11.5%}.connector-svg[data-v-6a5ed053]{width:50px;height:100%;overflow:visible}.legend[data-v-6a5ed053]{flex-wrap:wrap;justify-content:center;gap:24px;margin-top:48px;display:flex}.legend-item[data-v-6a5ed053]{align-items:center;gap:6px;display:flex}.legend-dot[data-v-6a5ed053]{border-radius:50%;width:10px;height:10px}.legend-item span[data-v-6a5ed053]{color:#64748b;font-size:12px}.hint[data-v-6a5ed053]{text-align:center;color:#94a3b8;margin-top:24px;font-size:13px}.action-btns[data-v-6a5ed053]{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:32px;display:flex}.action-btn[data-v-6a5ed053]{color:#fff;cursor:pointer;border:none;border-radius:14px;align-items:center;gap:10px;padding:14px 28px;font-family:Outfit,sans-serif;font-size:15px;font-weight:600;transition:transform .2s,box-shadow .2s;display:flex}.action-btn[data-v-6a5ed053]:hover{transform:translateY(-2px)}.dashboard-btn[data-v-6a5ed053]{background:linear-gradient(135deg,#f97316,#ef4444);box-shadow:0 4px 16px #f973164d}.dashboard-btn[data-v-6a5ed053]:hover{box-shadow:0 8px 24px #f9731666}.projects-btn[data-v-6a5ed053]{background:linear-gradient(135deg,#4f46e5,#7c3aed);box-shadow:0 4px 16px #4f46e54d}.projects-btn[data-v-6a5ed053]:hover{box-shadow:0 8px 24px #4f46e566}.features-btn[data-v-6a5ed053]{background:linear-gradient(135deg,#2563eb,#3b82f6);box-shadow:0 4px 16px #2563eb4d}.features-btn[data-v-6a5ed053]:hover{box-shadow:0 8px 24px #2563eb66}.skills-btn[data-v-6a5ed053]{background:linear-gradient(135deg,#7c3aed,#a78bfa);box-shadow:0 4px 16px #7c3aed4d}.skills-btn[data-v-6a5ed053]:hover{box-shadow:0 8px 24px #7c3aed66}.gantt-btn[data-v-6a5ed053]{background:linear-gradient(135deg,#0f172a,#334155);box-shadow:0 4px 16px #0f172a33}.gantt-btn[data-v-6a5ed053]:hover{box-shadow:0 8px 24px #0f172a4d}@keyframes drawPath-6a5ed053{to{stroke-dashoffset:0}}@keyframes popIn-6a5ed053{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes fadeSlideDown-6a5ed053{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeSlideUp-6a5ed053{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-6a5ed053{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.8;transform:scale(1.08)}}.overlay[data-v-b89b3d48]{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172a80;justify-content:center;align-items:center;animation:.2s fadeIn-b89b3d48;display:flex;position:fixed;inset:0}.picker[data-v-b89b3d48]{background:#fff;border-radius:20px;width:92%;max-width:560px;max-height:80vh;padding:24px 28px;overflow-y:auto;box-shadow:0 24px 80px #00000026}.picker-header[data-v-b89b3d48]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.picker-header h3[data-v-b89b3d48]{color:#1e293b;margin:0;font-size:18px;font-weight:700}.close-btn[data-v-b89b3d48]{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.search-input[data-v-b89b3d48]{color:#1e293b;box-sizing:border-box;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;outline:none;width:100%;margin-bottom:16px;padding:10px 14px;font-family:Outfit,sans-serif;font-size:14px}.empty[data-v-b89b3d48]{text-align:center;color:#cbd5e1;padding:30px;font-size:13px;font-style:italic}.project-group[data-v-b89b3d48]{margin-bottom:16px}.project-label[data-v-b89b3d48]{color:#1e293b;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:700;display:flex}.proj-dot[data-v-b89b3d48]{border-radius:2px;width:8px;height:8px}.team-group[data-v-b89b3d48]{margin-bottom:10px;margin-left:16px}.team-label[data-v-b89b3d48]{color:#64748b;text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;margin-bottom:6px;font-size:11px;font-weight:600;display:flex}.team-icon[data-v-b89b3d48]{color:#fff;border-radius:5px;justify-content:center;align-items:center;width:20px;height:20px;font-size:9px;font-weight:700;display:flex}.feature-item[data-v-b89b3d48]{cursor:pointer;border:1px solid #f1f5f9;border-radius:10px;margin-bottom:6px;padding:10px 14px;transition:all .15s}.feature-item[data-v-b89b3d48]:hover:not(.scheduled){background:#f8fafc;border-color:#e2e8f0}.feature-item.scheduled[data-v-b89b3d48]{opacity:.5;cursor:not-allowed;background:#f8fafc}.feat-info[data-v-b89b3d48]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.feat-title[data-v-b89b3d48]{color:#1e293b;font-size:14px;font-weight:600}.priority-tag[data-v-b89b3d48]{border-radius:6px;padding:2px 8px;font-size:10px;font-weight:600}.team-chip[data-v-b89b3d48]{color:#059669;background:#d1fae5;border-radius:6px;padding:2px 8px;font-size:10px;font-weight:600}.scheduled-tag[data-v-b89b3d48]{color:#94a3b8;font-size:10px;font-style:italic}.feat-desc[data-v-b89b3d48]{color:#64748b;margin-top:4px;font-size:12px}.feat-meta[data-v-b89b3d48]{color:#94a3b8;margin-top:4px;font-size:11px}@keyframes fadeIn-b89b3d48{0%{opacity:0}to{opacity:1}}.month-detail[data-v-e4da0c68]{background:#f8fafb;max-width:860px;min-height:100vh;margin:0 auto;padding:32px 20px;font-family:Outfit,sans-serif}.top-bar[data-v-e4da0c68]{align-items:center;gap:16px;margin-bottom:32px;display:flex}.back-btn[data-v-e4da0c68]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;display:flex;box-shadow:0 1px 3px #0000000f}.top-info[data-v-e4da0c68]{flex:1}.top-info h2[data-v-e4da0c68]{color:#1e293b;margin:0;font-size:28px;font-weight:800}.top-sub[data-v-e4da0c68]{color:#94a3b8;letter-spacing:1.5px;margin:2px 0 0;font-family:DM Mono,monospace;font-size:12px}.pct-box[data-v-e4da0c68]{text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:10px 18px;box-shadow:0 1px 3px #0000000a}.pct-val[data-v-e4da0c68]{font-size:22px;font-weight:800}.pct-count[data-v-e4da0c68]{color:#94a3b8;font-size:11px}.filter-bar[data-v-e4da0c68]{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.filter-select[data-v-e4da0c68]{color:#1e293b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;outline:none;padding:8px 12px;font-family:Outfit,sans-serif;font-size:13px}.filter-select[data-v-e4da0c68]:focus{border-color:#94a3b8}.filter-count[data-v-e4da0c68]{color:#94a3b8;font-family:DM Mono,monospace;font-size:12px}.filter-clear[data-v-e4da0c68]{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:8px;padding:6px 12px;font-family:Outfit,sans-serif;font-size:12px}.filter-clear[data-v-e4da0c68]:hover{background:#f1f5f9}.add-feature-row[data-v-e4da0c68]{margin-bottom:20px}.add-feature-btn[data-v-e4da0c68]{color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;padding:12px;font-family:Outfit,sans-serif;font-size:14px;font-weight:600}.empty-features[data-v-e4da0c68]{color:#cbd5e1;text-align:center;background:#fff;border:1px dashed #e2e8f0;border-radius:14px;padding:40px 20px;font-size:14px;font-style:italic}.feature-card[data-v-e4da0c68]{background:#fff;border:1px solid #e2e8f0;border-left:3px solid;border-radius:14px;margin-bottom:12px;padding:18px 20px;animation:.3s both fadeSlideUp-e4da0c68;box-shadow:0 1px 4px #00000008}.card-header[data-v-e4da0c68]{align-items:flex-start;gap:12px;display:flex}.status-circle[data-v-e4da0c68]{cursor:pointer;border:2px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;margin-top:2px;display:flex}.card-content[data-v-e4da0c68]{flex:1;min-width:0}.title-row[data-v-e4da0c68]{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:2px;display:flex}.feat-title[data-v-e4da0c68]{color:#1e293b;font-size:16px;font-weight:700}.feat-title.done[data-v-e4da0c68]{opacity:.6;text-decoration:line-through}.feat-duration[data-v-e4da0c68]{color:#94a3b8;margin-bottom:4px;font-family:DM Mono,monospace;font-size:12px}.tag[data-v-e4da0c68]{border-radius:6px;padding:2px 8px;font-size:10px;font-weight:600}.project-tag[data-v-e4da0c68]{color:#4f46e5;background:#e0e7ff}.team-tag[data-v-e4da0c68]{color:#059669;background:#d1fae5}.task-section[data-v-e4da0c68]{border-top:1px solid #f1f5f9;margin-top:12px;padding-top:12px}.task-progress-row[data-v-e4da0c68]{align-items:center;gap:8px;margin-bottom:8px;display:flex}.task-progress-track[data-v-e4da0c68]{background:#f1f5f9;border-radius:2px;flex:1;height:4px;overflow:hidden}.task-progress-fill[data-v-e4da0c68]{background:linear-gradient(90deg,#2dd4bf,#22c55e);border-radius:2px;height:100%;transition:width .3s}.task-progress-label[data-v-e4da0c68]{color:#94a3b8;font-family:DM Mono,monospace;font-size:11px}.task-item[data-v-e4da0c68]{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:5px 0;transition:background .1s;display:flex}.task-item[data-v-e4da0c68]:hover{background:#f8fafc}.task-checkbox[data-v-e4da0c68]{border:2px solid #cbd5e1;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;transition:all .15s;display:flex}.task-checkbox.checked[data-v-e4da0c68]{background:#22c55e;border-color:#22c55e}.task-title[data-v-e4da0c68]{color:#1e293b;flex:1;font-size:13px}.task-title.task-done[data-v-e4da0c68]{color:#94a3b8;text-decoration:line-through}.task-del[data-v-e4da0c68]{color:#cbd5e1;cursor:pointer;opacity:0;background:0 0;border:none;padding:2px 4px;font-size:14px;transition:opacity .15s}.task-item:hover .task-del[data-v-e4da0c68]{opacity:1}.task-del[data-v-e4da0c68]:hover{color:#ef4444}.task-target[data-v-e4da0c68]{color:#94a3b8;background:#f1f5f9;border-radius:4px;flex-shrink:0;padding:1px 6px;font-family:DM Mono,monospace;font-size:10px}.task-team-tag[data-v-e4da0c68]{color:#059669;background:#d1fae5;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:9px;font-weight:600}.task-item.task-overdue[data-v-e4da0c68]{background:#fef2f2;border-radius:6px;margin:0 -6px;padding:4px 6px}.task-item.task-overdue .task-target[data-v-e4da0c68]{color:#ef4444;background:#fef2f2;border:1px solid #fecaca}.task-overdue-badge[data-v-e4da0c68]{color:#ef4444;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:9px;font-weight:700}.add-task-btn[data-v-e4da0c68]{color:#94a3b8;cursor:pointer;background:0 0;border:none;margin-top:6px;padding:4px 0;font-family:Outfit,sans-serif;font-size:12px;font-weight:500}.add-task-btn[data-v-e4da0c68]:hover{color:#64748b}.target-week-options[data-v-e4da0c68]{flex-wrap:wrap;gap:6px;display:flex}.tw-option[data-v-e4da0c68]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;font-family:DM Mono,monospace;font-size:11px;font-weight:500;transition:all .15s}.tw-option[data-v-e4da0c68]:hover{border-color:#94a3b8}.tw-option.active[data-v-e4da0c68]{color:#fff;background:#059669;border-color:#059669}.duration-modal[data-v-e4da0c68]{max-width:440px}.dur-feature-name[data-v-e4da0c68]{color:#1e293b;margin-bottom:16px;font-size:16px;font-weight:700}.dur-range-box[data-v-e4da0c68]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:12px;margin-bottom:16px;padding:16px;display:flex}.dur-point[data-v-e4da0c68]{flex:1}.dur-point-label[data-v-e4da0c68]{color:#94a3b8;letter-spacing:1px;margin-bottom:6px;font-size:10px;font-weight:700}.dur-point-value[data-v-e4da0c68]{font-size:15px;font-weight:700}.dur-arrow[data-v-e4da0c68]{color:#cbd5e1;flex-shrink:0;font-size:20px}.dur-end-selects[data-v-e4da0c68]{gap:6px;display:flex}.dur-select[data-v-e4da0c68]{color:#1e293b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;flex:1;padding:8px 10px;font-family:Outfit,sans-serif;font-size:13px}.dur-summary-bar[data-v-e4da0c68]{background:#f1f5f9;border-radius:4px;height:8px;margin-bottom:8px;overflow:hidden}.dur-summary-fill[data-v-e4da0c68]{border-radius:4px;height:100%;transition:width .3s}.dur-summary-text[data-v-e4da0c68]{text-align:center;color:#64748b;margin-bottom:4px;font-size:14px}.feat-desc[data-v-e4da0c68]{color:#64748b;margin:4px 0;font-size:13px;line-height:1.5}.feat-meta[data-v-e4da0c68]{flex-wrap:wrap;gap:16px;margin-top:8px;display:flex}.meta-item[data-v-e4da0c68]{color:#64748b;align-items:center;gap:6px;font-size:12px;display:flex}.needs-item[data-v-e4da0c68]{color:#94a3b8}.avatar[data-v-e4da0c68]{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:9px;font-weight:700;display:flex}.del-btn[data-v-e4da0c68]{color:#ef4444;cursor:pointer;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.overlay[data-v-e4da0c68]{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-e4da0c68]{background:#fff;border-radius:20px;width:92%;max-width:480px;max-height:85vh;padding:28px 32px;overflow-y:auto;box-shadow:0 24px 80px #00000026}.modal-header[data-v-e4da0c68]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h3[data-v-e4da0c68]{color:#1e293b;margin:0;font-size:18px;font-weight:700}.close-btn[data-v-e4da0c68]{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.field[data-v-e4da0c68]{margin-bottom:16px}.field label[data-v-e4da0c68]{color:#64748b;margin-bottom:6px;font-size:12px;font-weight:500;display:block}.field input[data-v-e4da0c68],.field textarea[data-v-e4da0c68],.field select[data-v-e4da0c68]{color:#1e293b;box-sizing:border-box;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:10px 14px;font-family:Outfit,sans-serif;font-size:14px}.field textarea[data-v-e4da0c68]{resize:vertical;min-height:60px}.field select[data-v-e4da0c68]{cursor:pointer}.field-row[data-v-e4da0c68]{gap:12px;display:flex}.field-row .field[data-v-e4da0c68]{flex:1}.currency-input[data-v-e4da0c68]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;align-items:center;display:flex;overflow:hidden}.currency-prefix[data-v-e4da0c68]{color:#94a3b8;flex-shrink:0;padding:10px 0 10px 14px;font-family:DM Mono,monospace;font-size:14px;font-weight:500}.currency-input input[data-v-e4da0c68]{color:#1e293b;background:0 0;border:none;outline:none;flex:1;width:100%;padding:10px 14px 10px 6px;font-family:DM Mono,monospace;font-size:14px}.save-btn[data-v-e4da0c68]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#059669,#10b981);border:none;border-radius:12px;width:100%;margin-top:8px;padding:12px;font-size:15px;font-weight:600}.top-icon-wrap[data-v-e4da0c68]{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;transition:box-shadow .2s;display:flex;position:relative;box-shadow:0 1px 3px #0000000f}.top-icon-wrap[data-v-e4da0c68]:hover{box-shadow:0 4px 12px #0000001a}.edit-icon-badge[data-v-e4da0c68]{color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:9px;display:flex;position:absolute;bottom:-4px;right:-4px}.icon-picker-modal[data-v-e4da0c68]{background:#fff;border-radius:20px;width:92%;max-width:360px;padding:24px 28px;box-shadow:0 24px 80px #00000026}.icon-grid[data-v-e4da0c68]{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:8px;display:grid}.icon-option[data-v-e4da0c68]{aspect-ratio:1;cursor:pointer;background:#fff;border:2px solid #e2e8f0;border-radius:12px;justify-content:center;align-items:center;width:100%;transition:all .15s;display:flex}.icon-option[data-v-e4da0c68]:hover{background:#f8fafc;border-color:#94a3b8}.icon-option.active[data-v-e4da0c68]{background:#f0fdf4;border-color:currentColor;box-shadow:0 0 0 3px #05966926}@keyframes fadeSlideUp-e4da0c68{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.gantt-page[data-v-db96ba78]{background:#f8fafb;max-width:1200px;min-height:100vh;margin:0 auto;padding:32px 20px;font-family:Outfit,sans-serif}.top-bar[data-v-db96ba78]{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:24px;display:flex}.back-btn[data-v-db96ba78]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;display:flex;box-shadow:0 1px 3px #0000000f}.top-info[data-v-db96ba78]{flex:1;min-width:200px}.top-info h2[data-v-db96ba78]{color:#1e293b;margin:0;font-size:28px;font-weight:800}.top-sub[data-v-db96ba78]{color:#94a3b8;letter-spacing:1.5px;margin:2px 0 0;font-family:DM Mono,monospace;font-size:12px}.filter-bar[data-v-db96ba78]{flex-wrap:wrap;gap:8px;display:flex}.filter-select[data-v-db96ba78]{color:#1e293b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;outline:none;padding:8px 12px;font-family:Outfit,sans-serif;font-size:13px}.summary-row[data-v-db96ba78]{flex-wrap:wrap;gap:12px;margin-bottom:24px;display:flex}.summary-card[data-v-db96ba78]{text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex:1;min-width:110px;padding:16px 20px;box-shadow:0 1px 3px #0000000a}.summary-val[data-v-db96ba78]{color:#1e293b;font-size:28px;font-weight:800}.summary-label[data-v-db96ba78]{color:#94a3b8;margin-top:2px;font-size:12px}.gantt-wrapper[data-v-db96ba78]{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow-x:auto;box-shadow:0 1px 4px #0000000a}.gantt-container[data-v-db96ba78]{min-width:1000px}.gantt-header[data-v-db96ba78]{z-index:10;background:#fff;border-bottom:2px solid #e2e8f0;display:flex;position:sticky;top:0}.gantt-label-col[data-v-db96ba78]{border-right:1px solid #e2e8f0;width:240px;min-width:240px;padding:12px 16px}.header-label[data-v-db96ba78]{color:#64748b;font-size:12px;font-weight:600}.gantt-timeline-header[data-v-db96ba78]{flex:1;display:flex}.gantt-timeline-cells[data-v-db96ba78]{flex:1;min-height:48px;position:relative}.month-header[data-v-db96ba78]{text-align:center;border-left:1px solid #f1f5f9;flex:1;padding-top:8px}.month-header-text[data-v-db96ba78]{font-size:12px;font-weight:700}.weeks-row[data-v-db96ba78]{margin-top:4px;display:flex}.week-header[data-v-db96ba78]{color:#cbd5e1;text-align:center;flex:1;padding:3px 0;font-family:DM Mono,monospace;font-size:9px}.group-header-row[data-v-db96ba78]{cursor:pointer;background:#f8fafc;border-bottom:1px solid #e2e8f0;transition:background .15s;display:flex}.group-header-row[data-v-db96ba78]:hover{background:#f1f5f9}.group-header[data-v-db96ba78]{align-items:center;gap:10px;padding:4px 0;display:flex}.group-chevron[data-v-db96ba78]{color:#94a3b8;font-size:12px;transition:transform .2s;display:inline-block}.group-chevron.collapsed[data-v-db96ba78]{transform:rotate(-90deg)}.group-color-bar[data-v-db96ba78]{border-radius:2px;flex-shrink:0;width:4px;height:28px}.group-info[data-v-db96ba78]{flex:1;min-width:0}.group-name[data-v-db96ba78]{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;display:block;overflow:hidden}.group-count[data-v-db96ba78]{color:#94a3b8;font-size:10px}.group-progress[data-v-db96ba78]{flex-shrink:0;align-items:center;gap:6px;display:flex}.group-progress-track[data-v-db96ba78]{background:#e2e8f0;border-radius:2px;width:48px;height:4px;overflow:hidden}.group-progress-fill[data-v-db96ba78]{border-radius:2px;height:100%;transition:width .4s}.group-pct[data-v-db96ba78]{color:#94a3b8;min-width:28px;font-family:DM Mono,monospace;font-size:10px}.group-span-bar[data-v-db96ba78]{border:1.5px dashed;border-radius:4px;min-width:4px;height:16px;position:absolute;top:50%;transform:translateY(-50%)}.gantt-row[data-v-db96ba78]{border-bottom:1px solid #f1f5f9;animation:.3s both fadeIn-db96ba78;display:flex}.gantt-row[data-v-db96ba78]:hover{background:#fafbfc}.goal-label[data-v-db96ba78]{padding:4px 0 4px 20px}.goal-title-row[data-v-db96ba78]{align-items:center;gap:8px;display:flex}.goal-dot[data-v-db96ba78]{border-radius:50%;flex-shrink:0;width:8px;height:8px}.goal-name[data-v-db96ba78]{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;max-width:170px;font-size:13px;font-weight:600;overflow:hidden}.goal-meta-row[data-v-db96ba78]{align-items:center;gap:6px;margin-top:4px;padding-left:16px;display:flex}.priority-tag[data-v-db96ba78],.status-tag[data-v-db96ba78]{border-radius:4px;padding:1px 6px;font-size:9px;font-weight:600}.pic-text[data-v-db96ba78]{color:#94a3b8;font-size:10px}.gantt-cells[data-v-db96ba78]{width:100%;height:100%;display:flex;position:absolute;inset:0}.month-cells[data-v-db96ba78]{flex:1;display:flex}.week-cell[data-v-db96ba78]{border-left:1px solid #f1f5f9;flex:1}.week-cell.is-today[data-v-db96ba78]{background:#6366f108}.bar-overlay[data-v-db96ba78]{pointer-events:none;align-items:center;display:flex;position:absolute;inset:0}.gantt-bar[data-v-db96ba78]{border-radius:6px;justify-content:space-between;align-items:center;min-width:20px;height:26px;padding:0 8px;transition:opacity .3s;display:flex;position:absolute;box-shadow:0 2px 6px #0000001a}.bar-text[data-v-db96ba78]{color:#fff;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:10px;font-weight:600;overflow:hidden}.bar-status[data-v-db96ba78]{color:#fff;flex-shrink:0;margin-left:4px;font-size:10px}.empty-state[data-v-db96ba78]{text-align:center;color:#cbd5e1;padding:60px 20px;font-size:14px;font-style:italic}.gantt-legend[data-v-db96ba78]{flex-wrap:wrap;justify-content:center;gap:20px;margin-top:20px;display:flex}.legend-item[data-v-db96ba78]{color:#64748b;align-items:center;gap:6px;font-size:12px;display:flex}.legend-bar[data-v-db96ba78]{border-radius:3px;width:24px;height:10px}@keyframes fadeIn-db96ba78{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.gantt-page[data-v-db96ba78]{padding:16px 8px}.top-bar[data-v-db96ba78]{flex-direction:column;align-items:flex-start;gap:10px}.top-info h2[data-v-db96ba78]{font-size:20px}.filter-bar[data-v-db96ba78]{width:100%}.filter-select[data-v-db96ba78]{flex:1;padding:6px 8px;font-size:12px}.summary-row[data-v-db96ba78]{gap:6px}.summary-card[data-v-db96ba78]{padding:10px 12px}.summary-val[data-v-db96ba78]{font-size:20px}.summary-label[data-v-db96ba78]{font-size:10px}.gantt-label-col[data-v-db96ba78]{width:140px;min-width:140px;padding:8px}.goal-name[data-v-db96ba78]{max-width:100px;font-size:11px}.goal-label[data-v-db96ba78]{padding-left:8px}.priority-tag[data-v-db96ba78],.status-tag[data-v-db96ba78]{font-size:8px}.bar-text[data-v-db96ba78]{font-size:9px}.gantt-bar[data-v-db96ba78]{height:22px;padding:0 4px}.gantt-legend[data-v-db96ba78]{gap:10px;margin-top:12px}}.gantt-tooltip[data-v-db96ba78]{z-index:99999;color:#e2e8f0;pointer-events:none;background:#1e293b;border-radius:12px;width:320px;padding:14px 16px;font-size:12px;position:fixed;box-shadow:0 12px 40px #0000004d}.tt-enter-active[data-v-db96ba78]{transition:opacity .15s,transform .15s}.tt-leave-active[data-v-db96ba78]{transition:opacity .1s}.tt-enter-from[data-v-db96ba78]{opacity:0;transform:translateY(-4px)}.tt-leave-to[data-v-db96ba78]{opacity:0}.tt-loading[data-v-db96ba78]{color:#94a3b8;align-items:center;gap:10px;padding:8px 0;font-size:13px;display:flex}.tt-spinner[data-v-db96ba78]{border:2px solid #334155;border-top-color:#3b82f6;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin-db96ba78}@keyframes spin-db96ba78{to{transform:rotate(360deg)}}.tt-header[data-v-db96ba78]{align-items:center;gap:8px;margin-bottom:6px;display:flex}.tt-dot[data-v-db96ba78]{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tt-title[data-v-db96ba78]{color:#fff;font-size:14px;font-weight:700}.tt-desc[data-v-db96ba78]{color:#94a3b8;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 10px;font-size:11px;line-height:1.4;display:-webkit-box;overflow:hidden}.tt-grid[data-v-db96ba78]{border-top:1px solid #334155;border-bottom:1px solid #334155;grid-template-columns:1fr 1fr;gap:6px 12px;margin-bottom:8px;padding:8px 0;display:grid}.tt-field[data-v-db96ba78]{flex-direction:column;gap:1px;display:flex}.tt-label[data-v-db96ba78]{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:10px}.tt-val[data-v-db96ba78]{font-size:12px;font-weight:600}.tt-section[data-v-db96ba78]{flex-direction:column;gap:4px;margin-top:8px;display:flex}.tt-tags[data-v-db96ba78]{flex-wrap:wrap;gap:4px;display:flex}.tt-tag[data-v-db96ba78]{color:#cbd5e1;background:#334155;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:500}.tt-tag.dep[data-v-db96ba78]{color:#7dd3fc;background:#1e3a5f}.pm-page[data-v-d09e5147]{background:#f8fafb;max-width:860px;min-height:100vh;margin:0 auto;padding:32px 20px;font-family:Outfit,sans-serif}.top-bar[data-v-d09e5147]{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:32px;display:flex}.back-btn[data-v-d09e5147]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;display:flex;box-shadow:0 1px 3px #0000000f}.top-info[data-v-d09e5147]{flex:1}.top-info h2[data-v-d09e5147]{color:#1e293b;margin:0;font-size:28px;font-weight:800}.top-sub[data-v-d09e5147]{color:#94a3b8;letter-spacing:1.5px;margin:2px 0 0;font-family:DM Mono,monospace;font-size:12px}.add-project-btn[data-v-d09e5147]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#4f46e5,#7c3aed);border:none;border-radius:12px;padding:10px 20px;font-family:Outfit,sans-serif;font-size:14px;font-weight:600}.empty-state[data-v-d09e5147]{text-align:center;color:#cbd5e1;background:#fff;border:1px dashed #e2e8f0;border-radius:16px;padding:60px 20px;font-size:15px;font-style:italic}.project-card[data-v-d09e5147]{background:#fff;border:1px solid #e2e8f0;border-radius:16px;margin-bottom:16px;animation:.3s both fadeIn-d09e5147;overflow:hidden;box-shadow:0 1px 4px #0000000a}.project-header[data-v-d09e5147],.team-header[data-v-d09e5147]{cursor:pointer;align-items:center;gap:12px;padding:16px 20px;transition:background .15s;display:flex}.project-header[data-v-d09e5147]:hover,.team-header[data-v-d09e5147]:hover{background:#f8fafc}.chevron[data-v-d09e5147]{color:#94a3b8;font-size:12px;transition:transform .2s;display:inline-block}.chevron.sm[data-v-d09e5147]{font-size:10px}.chevron.collapsed[data-v-d09e5147]{transform:rotate(-90deg)}.color-bar[data-v-d09e5147]{border-radius:2px;flex-shrink:0;width:4px;height:32px}.team-icon[data-v-d09e5147]{color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:flex}.header-info[data-v-d09e5147]{flex:1;min-width:0}.header-name[data-v-d09e5147]{color:#1e293b;font-size:16px;font-weight:700}.header-name.sm[data-v-d09e5147]{font-size:14px}.header-desc[data-v-d09e5147]{color:#94a3b8;margin-top:2px;font-size:12px}.count-badge[data-v-d09e5147]{color:#94a3b8;white-space:nowrap;font-size:11px}.count-badge.sm[data-v-d09e5147]{font-size:10px}.header-actions[data-v-d09e5147]{gap:4px;display:flex}.icon-btn[data-v-d09e5147]{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.icon-btn.sm[data-v-d09e5147]{width:26px;height:26px;font-size:12px}.icon-btn.edit[data-v-d09e5147]{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0}.icon-btn.del[data-v-d09e5147]{color:#ef4444;background:#fef2f2;border:1px solid #fecaca}.team-members-section[data-v-d09e5147]{padding:0 16px 12px}.member-list[data-v-d09e5147]{flex-direction:column;gap:2px;margin-bottom:6px;display:flex}.member-row[data-v-d09e5147]{align-items:center;gap:8px;padding:3px 0;display:flex}.member-avatar-lg[data-v-d09e5147]{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:9px;font-weight:700;display:flex}.member-name[data-v-d09e5147]{color:#475569;flex:1;font-size:12px;font-weight:500}.member-role[data-v-d09e5147]{color:#4f46e5;background:#e0e7ff;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:500}.member-salary[data-v-d09e5147]{color:#059669;white-space:nowrap;font-family:DM Mono,monospace;font-size:10px;font-weight:500}.member-del[data-v-d09e5147]{color:#cbd5e1;cursor:pointer;opacity:0;background:0 0;border:none;padding:2px 4px;font-size:12px;transition:opacity .15s}.member-row:hover .member-del[data-v-d09e5147]{opacity:1}.member-del[data-v-d09e5147]:hover{color:#ef4444}.member-edit[data-v-d09e5147]{color:#cbd5e1;cursor:pointer;opacity:0;background:0 0;border:none;padding:2px 4px;font-size:11px;transition:opacity .15s}.member-row:hover .member-edit[data-v-d09e5147]{opacity:1}.member-edit[data-v-d09e5147]:hover{color:#4f46e5}.member-cancel-btn[data-v-d09e5147]{color:#ef4444;cursor:pointer;white-space:nowrap;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:5px 8px;font-family:Outfit,sans-serif;font-size:12px;font-weight:700}.member-add-inline[data-v-d09e5147]{gap:4px;display:flex}.member-add-inline input[data-v-d09e5147]{color:#1e293b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;outline:none;padding:5px 8px;font-family:Outfit,sans-serif;font-size:11px}.member-add-inline input[data-v-d09e5147]:focus{border-color:#94a3b8}.member-add-inline .add-name[data-v-d09e5147]{flex:2}.member-add-inline .add-role[data-v-d09e5147]{flex:1.5}.member-add-inline .add-salary[data-v-d09e5147]{flex:1.2;font-family:DM Mono,monospace}.member-add-btn-sm[data-v-d09e5147]{color:#059669;cursor:pointer;white-space:nowrap;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:5px 10px;font-family:Outfit,sans-serif;font-size:12px;font-weight:700}.member-add-btn-sm[data-v-d09e5147]:hover{background:#dcfce7}.team-skills-section[data-v-d09e5147]{border-top:1px solid #f1f5f9;padding:4px 16px 12px}.skill-list[data-v-d09e5147]{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.skill-tag[data-v-d09e5147]{color:#7c3aed;cursor:pointer;background:#ede9fe;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:500;transition:all .15s}.skill-tag[data-v-d09e5147]:hover{color:#ef4444;background:#fecaca}.skill-assign-row[data-v-d09e5147]{gap:4px;display:flex}.skill-select[data-v-d09e5147]{color:#64748b;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;outline:none;flex:1;padding:4px 8px;font-family:Outfit,sans-serif;font-size:11px}.skill-add-btn[data-v-d09e5147]{color:#7c3aed;cursor:pointer;background:#ede9fe;border:1px solid #c4b5fd;border-radius:6px;width:24px;height:24px;font-size:14px;font-weight:600}.skill-add-btn[data-v-d09e5147]:hover{background:#ddd6fe}.nested-section[data-v-d09e5147]{border-top:1px solid #f1f5f9;padding:0 20px 16px}.empty-nested[data-v-d09e5147]{text-align:center;color:#cbd5e1;padding:16px;font-size:13px;font-style:italic}.team-card[data-v-d09e5147]{border:1px solid #f1f5f9;border-radius:12px;margin-top:10px;overflow:hidden}.team-header[data-v-d09e5147]{padding:12px 16px}.features-list[data-v-d09e5147]{padding:0 16px 12px}.feature-row[data-v-d09e5147]{border:1px solid #f1f5f9;border-radius:10px;margin-top:8px;padding:10px 14px;position:relative}.feature-info[data-v-d09e5147]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.feature-title[data-v-d09e5147]{color:#1e293b;font-size:14px;font-weight:600}.priority-tag[data-v-d09e5147]{border-radius:6px;padding:2px 8px;font-size:10px;font-weight:600}.feature-desc[data-v-d09e5147]{color:#64748b;margin-top:4px;font-size:12px}.feature-meta[data-v-d09e5147]{gap:12px;margin-top:4px;display:flex}.meta-text[data-v-d09e5147]{color:#94a3b8;font-size:11px}.feature-actions[data-v-d09e5147]{gap:4px;display:flex;position:absolute;top:10px;right:10px}.add-nested-btn[data-v-d09e5147]{cursor:pointer;background:0 0;border:1px dashed;border-radius:10px;width:100%;margin-top:10px;padding:10px;font-family:Outfit,sans-serif;font-size:13px;font-weight:600}.overlay[data-v-d09e5147]{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-d09e5147]{background:#fff;border-radius:20px;width:92%;max-width:480px;max-height:85vh;padding:28px 32px;overflow-y:auto;box-shadow:0 24px 80px #00000026}.modal-header[data-v-d09e5147]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h3[data-v-d09e5147]{color:#1e293b;margin:0;font-size:18px;font-weight:700}.close-btn[data-v-d09e5147]{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.field[data-v-d09e5147]{margin-bottom:16px}.field label[data-v-d09e5147]{color:#64748b;margin-bottom:6px;font-size:12px;font-weight:500;display:block}.field input[data-v-d09e5147],.field textarea[data-v-d09e5147],.field select[data-v-d09e5147]{color:#1e293b;box-sizing:border-box;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:10px 14px;font-family:Outfit,sans-serif;font-size:14px}.field textarea[data-v-d09e5147]{resize:vertical;min-height:60px}.field select[data-v-d09e5147]{cursor:pointer}.save-btn[data-v-d09e5147]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#4f46e5,#7c3aed);border:none;border-radius:12px;width:100%;margin-top:8px;padding:12px;font-size:15px;font-weight:600}.field-row[data-v-d09e5147]{gap:12px;display:flex}.field-row .field[data-v-d09e5147]{flex:1}.currency-input[data-v-d09e5147]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;align-items:center;display:flex;overflow:hidden}.currency-prefix[data-v-d09e5147]{color:#94a3b8;flex-shrink:0;padding:10px 0 10px 14px;font-family:DM Mono,monospace;font-size:14px;font-weight:500}.currency-input input[data-v-d09e5147]{color:#1e293b;background:0 0;border:none;outline:none;flex:1;width:100%;padding:10px 14px 10px 6px;font-family:DM Mono,monospace;font-size:14px}.project-badges[data-v-d09e5147]{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.badge-item[data-v-d09e5147]{border-radius:6px;padding:2px 8px;font-size:10px;font-weight:600}.deadline-badge[data-v-d09e5147]{color:#d97706;background:#fef3c7}.budget-badge[data-v-d09e5147]{color:#059669;background:#d1fae5;font-family:DM Mono,monospace}.period-badge[data-v-d09e5147]{color:#64748b;background:#f1f5f9;font-family:DM Mono,monospace}.remaining-badge[data-v-d09e5147]{color:#2563eb;background:#dbeafe;font-family:DM Mono,monospace}.over-badge[data-v-d09e5147]{color:#ef4444;background:#fef2f2;font-family:DM Mono,monospace}.budget-badge.sm[data-v-d09e5147]{font-size:9px}.budget-info[data-v-d09e5147]{color:#059669;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;justify-content:space-between;align-items:center;margin-top:8px;padding:8px 12px;font-size:12px;display:flex}.budget-info.over-budget[data-v-d09e5147]{color:#ef4444;background:#fef2f2;border-color:#fecaca}.budget-warning[data-v-d09e5147]{font-weight:700}.section-block[data-v-d09e5147]{border-top:1px solid #f1f5f9;margin-top:14px;padding-top:12px}.section-label[data-v-d09e5147]{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:11px;font-weight:700}.ms-actions[data-v-d09e5147]{gap:4px;display:flex}.resource-row[data-v-d09e5147]{border:1px solid #f1f5f9;border-radius:10px;margin-bottom:6px;padding:10px 14px;position:relative}.res-info[data-v-d09e5147]{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.res-title[data-v-d09e5147]{color:#1e293b;font-size:14px;font-weight:600}.res-cat[data-v-d09e5147],.res-type[data-v-d09e5147]{border-radius:6px;padding:2px 8px;font-size:10px;font-weight:600}.res-type.one_time[data-v-d09e5147]{color:#2563eb;background:#dbeafe}.res-type.recurring[data-v-d09e5147]{color:#d97706;background:#fef3c7}.res-type.pay_as_you_go[data-v-d09e5147]{color:#059669;background:#f0fdf4}.res-type.max_monthly[data-v-d09e5147]{color:#db2777;background:#fce7f3}.amount-hint[data-v-d09e5147]{color:#94a3b8;margin-top:4px;font-size:11px;font-style:italic}.res-details[data-v-d09e5147]{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.res-amount[data-v-d09e5147]{color:#059669;font-family:DM Mono,monospace;font-size:16px;font-weight:800}.res-unit-price[data-v-d09e5147]{color:#1e293b;font-family:DM Mono,monospace;font-size:13px;font-weight:700}.unit-input-wrap[data-v-d09e5147]{flex-direction:column;gap:6px;display:flex}.unit-input-wrap select[data-v-d09e5147]{width:100%}.unit-custom[data-v-d09e5147]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;outline:none;padding:8px 12px;font-size:13px}.currency-suffix[data-v-d09e5147]{color:#94a3b8;flex-shrink:0;padding:10px 14px 10px 0;font-family:DM Mono,monospace;font-size:12px}.res-period[data-v-d09e5147]{color:#94a3b8;font-size:12px}.res-range[data-v-d09e5147]{color:#94a3b8;margin-left:auto;font-family:DM Mono,monospace;font-size:11px}.res-desc[data-v-d09e5147]{color:#64748b;margin-top:4px;font-size:12px}.res-used-by[data-v-d09e5147]{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.used-by-tag[data-v-d09e5147]{border-radius:6px;padding:2px 8px;font-size:9px;font-weight:600}.used-by-tag.all[data-v-d09e5147]{color:#64748b;background:#f1f5f9}.used-by-tag.team[data-v-d09e5147]{color:#059669;background:#d1fae5}.used-by-options[data-v-d09e5147]{gap:16px;margin-bottom:4px;display:flex}.used-by-radio[data-v-d09e5147]{color:#1e293b;cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.used-by-radio input[data-v-d09e5147]{accent-color:#059669}.end-date-wrap[data-v-d09e5147]{flex-direction:column;gap:6px;display:flex}.ongoing-check[data-v-d09e5147]{color:#64748b;cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.ongoing-check input[data-v-d09e5147]{accent-color:#059669}@keyframes fadeIn-d09e5147{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dashboard-page[data-v-3e14db44]{background:#f8fafb;max-width:900px;min-height:100vh;margin:0 auto;padding:32px 20px;font-family:Outfit,sans-serif}.top-bar[data-v-3e14db44]{align-items:center;gap:16px;margin-bottom:28px;display:flex}.back-btn[data-v-3e14db44]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;display:flex;box-shadow:0 1px 3px #0000000f}.top-info[data-v-3e14db44]{flex:1}.top-info h2[data-v-3e14db44]{color:#1e293b;margin:0;font-size:28px;font-weight:800}.top-sub[data-v-3e14db44]{color:#94a3b8;letter-spacing:1.5px;margin:2px 0 0;font-family:DM Mono,monospace;font-size:12px}.year-nav[data-v-3e14db44]{align-items:center;gap:10px;display:flex}.nav-btn[data-v-3e14db44]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;display:flex}.year-label[data-v-3e14db44]{color:#1e293b;font-family:DM Mono,monospace;font-size:18px;font-weight:800}.loading[data-v-3e14db44]{text-align:center;color:#94a3b8;padding:60px}.summary-row[data-v-3e14db44]{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px;display:grid}.summary-card[data-v-3e14db44]{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:18px;box-shadow:0 1px 3px #0000000a}.summary-card.risk-card[data-v-3e14db44]{border-color:#fecaca}.summary-icon[data-v-3e14db44]{border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:10px;display:flex}.summary-val[data-v-3e14db44]{color:#1e293b;font-size:26px;font-weight:800}.summary-val.mono[data-v-3e14db44]{font-family:DM Mono,monospace;font-size:18px}.summary-label[data-v-3e14db44]{color:#94a3b8;margin-top:2px;font-size:12px}.summary-sub[data-v-3e14db44]{color:#64748b;margin-top:4px;font-family:DM Mono,monospace;font-size:11px}.empty-state[data-v-3e14db44]{text-align:center;color:#cbd5e1;background:#fff;border:1px dashed #e2e8f0;border-radius:16px;padding:60px;font-style:italic}.project-row[data-v-3e14db44]{background:#fff;border:1px solid #e2e8f0;border-radius:16px;margin-bottom:12px;padding:20px 24px;box-shadow:0 1px 4px #0000000a}.project-header-row[data-v-3e14db44]{justify-content:space-between;align-items:flex-start;margin-bottom:14px;display:flex}.project-name-section[data-v-3e14db44]{align-items:flex-start;gap:12px;display:flex}.risk-dot[data-v-3e14db44]{border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:6px}.project-name[data-v-3e14db44]{color:#1e293b;font-size:18px;font-weight:700}.project-meta[data-v-3e14db44]{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.deadline-badge[data-v-3e14db44]{color:#64748b;align-items:center;gap:4px;font-family:DM Mono,monospace;font-size:11px;display:flex}.risk-badge[data-v-3e14db44]{border-radius:6px;padding:2px 10px;font-size:10px;font-weight:600}.project-stats[data-v-3e14db44]{text-align:right;flex-shrink:0}.stat-pct[data-v-3e14db44]{color:#1e293b;font-size:24px;font-weight:800;display:block}.stat-detail[data-v-3e14db44]{color:#94a3b8;font-size:11px}.bar-section[data-v-3e14db44]{align-items:center;gap:10px;margin-bottom:8px;display:flex}.bar-label[data-v-3e14db44]{color:#94a3b8;flex-shrink:0;width:55px;font-size:11px}.bar-track[data-v-3e14db44]{background:#f1f5f9;border-radius:4px;flex:1;height:8px;overflow:hidden}.bar-fill[data-v-3e14db44]{border-radius:4px;height:100%;transition:width .6s}.progress-fill[data-v-3e14db44]{background:linear-gradient(90deg,#38bdf8,#818cf8)}.budget-fill[data-v-3e14db44]{background:linear-gradient(90deg,#2dd4bf,#059669)}.budget-fill.overrun[data-v-3e14db44]{background:linear-gradient(90deg,#f97316,#ef4444)}.bar-amounts[data-v-3e14db44]{color:#64748b;white-space:nowrap;margin-left:8px;font-family:DM Mono,monospace;font-size:11px}.bar-total[data-v-3e14db44]{color:#94a3b8}.risk-details[data-v-3e14db44]{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.risk-item[data-v-3e14db44]{border-radius:6px;padding:3px 10px;font-size:11px;font-weight:600}.risk-item.overdue[data-v-3e14db44]{color:#ef4444;background:#fef2f2}.risk-item.budget[data-v-3e14db44]{color:#f97316;background:#fff7ed}.risk-item.deadline[data-v-3e14db44]{color:#ca8a04;background:#fefce8}.teams-section[data-v-3e14db44]{border-top:1px solid #f1f5f9;margin-top:14px;padding-top:14px}.teams-title[data-v-3e14db44]{color:#64748b;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;font-size:12px;font-weight:700}.teams-grid[data-v-3e14db44]{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.team-card[data-v-3e14db44]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px}.team-name[data-v-3e14db44]{color:#1e293b;margin-bottom:2px;font-size:13px;font-weight:700}.team-desc[data-v-3e14db44]{color:#94a3b8;margin-bottom:8px;font-size:10px}.team-members[data-v-3e14db44]{flex-direction:column;gap:4px;display:flex}.member-chip[data-v-3e14db44]{color:#475569;align-items:center;gap:6px;font-size:12px;display:flex}.member-avatar[data-v-3e14db44]{color:#fff;background:linear-gradient(135deg,#38bdf8,#818cf8);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:9px;font-weight:700;display:flex}.member-empty[data-v-3e14db44]{color:#cbd5e1;font-size:11px;font-style:italic}.proj-chevron[data-v-3e14db44]{color:#94a3b8;margin-top:6px;font-size:12px;transition:transform .2s;display:inline-block}.proj-chevron.collapsed[data-v-3e14db44]{transform:rotate(-90deg)}.drill-down[data-v-3e14db44]{border-top:1px solid #f1f5f9;margin-top:14px;padding-top:14px}.drill-group[data-v-3e14db44]{margin-bottom:12px}.drill-group-label[data-v-3e14db44]{margin-bottom:8px;font-size:12px;font-weight:700}.drill-feat[data-v-3e14db44]{border:1px solid #f1f5f9;border-radius:10px;margin-bottom:6px;padding:10px 14px}.drill-feat-header[data-v-3e14db44]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.drill-feat-title[data-v-3e14db44]{color:#1e293b;font-size:13px;font-weight:600}.drill-feat-priority[data-v-3e14db44]{border-radius:4px;padding:2px 6px;font-size:9px;font-weight:600}.drill-team-tag[data-v-3e14db44]{color:#059669;background:#d1fae5;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:600}.drill-feat-range[data-v-3e14db44]{color:#94a3b8;margin-left:auto;font-family:DM Mono,monospace;font-size:10px}.drill-tasks[data-v-3e14db44]{align-items:center;gap:8px;margin-top:6px;display:flex}.drill-task-bar[data-v-3e14db44]{background:#f1f5f9;border-radius:2px;flex:1;max-width:120px;height:4px;overflow:hidden}.drill-task-fill[data-v-3e14db44]{background:linear-gradient(90deg,#2dd4bf,#22c55e);border-radius:2px;height:100%}.drill-task-label[data-v-3e14db44]{color:#94a3b8;font-family:DM Mono,monospace;font-size:10px}.drill-deps[data-v-3e14db44]{flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;display:flex}.drill-dep-label[data-v-3e14db44]{color:#94a3b8;font-size:10px}.drill-dep-tag[data-v-3e14db44]{color:#d97706;background:#fef3c7;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:600}@media (width<=768px){.dashboard-page[data-v-3e14db44]{padding:16px 10px}.top-bar[data-v-3e14db44]{flex-direction:column;align-items:flex-start;gap:8px}.top-info h2[data-v-3e14db44]{font-size:20px}.summary-row[data-v-3e14db44]{grid-template-columns:repeat(2,1fr);gap:8px}.summary-card[data-v-3e14db44]{padding:12px}.summary-val[data-v-3e14db44]{font-size:22px}.project-grid[data-v-3e14db44]{grid-template-columns:1fr}}@media (width<=480px){.summary-row[data-v-3e14db44]{grid-template-columns:1fr}}@keyframes fadeIn-3e14db44{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fm-page[data-v-98d413ec]{background:#f8fafb;max-width:860px;min-height:100vh;margin:0 auto;padding:32px 20px;font-family:Outfit,sans-serif}.top-bar[data-v-98d413ec]{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:24px;display:flex}.back-btn[data-v-98d413ec]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;display:flex;box-shadow:0 1px 3px #0000000f}.top-info[data-v-98d413ec]{flex:1}.top-info h2[data-v-98d413ec]{color:#1e293b;margin:0;font-size:28px;font-weight:800}.top-sub[data-v-98d413ec]{color:#94a3b8;letter-spacing:1.5px;margin:2px 0 0;font-family:DM Mono,monospace;font-size:12px}.add-btn-primary[data-v-98d413ec]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2563eb,#3b82f6);border:none;border-radius:12px;padding:10px 20px;font-family:Outfit,sans-serif;font-size:14px;font-weight:600}.filter-row[data-v-98d413ec]{gap:8px;margin-bottom:20px;display:flex}.filter-select[data-v-98d413ec]{color:#1e293b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;outline:none;padding:8px 12px;font-family:Outfit,sans-serif;font-size:13px}.empty-state[data-v-98d413ec]{text-align:center;color:#cbd5e1;background:#fff;border:1px dashed #e2e8f0;border-radius:16px;padding:60px 20px;font-size:15px;font-style:italic}.group-header[data-v-98d413ec]{text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;padding:10px 0 6px;font-size:12px;font-weight:700;display:flex}.group-project[data-v-98d413ec]{color:#4f46e5}.group-sep[data-v-98d413ec]{color:#cbd5e1}.group-team[data-v-98d413ec]{color:#059669}.group-count[data-v-98d413ec]{color:#94a3b8;background:#f1f5f9;border-radius:10px;margin-left:4px;padding:1px 8px;font-size:10px}.feature-card[data-v-98d413ec]{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:8px;padding:14px 18px;box-shadow:0 1px 3px #00000008}.feat-row[data-v-98d413ec]{align-items:flex-start;gap:12px;display:flex}.feat-content[data-v-98d413ec]{flex:1;min-width:0}.feat-title-row[data-v-98d413ec]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.feat-title[data-v-98d413ec]{color:#1e293b;font-size:15px;font-weight:600}.priority-tag[data-v-98d413ec]{border-radius:6px;padding:2px 8px;font-size:10px;font-weight:600}.feat-desc[data-v-98d413ec]{color:#64748b;margin-top:4px;font-size:12px}.feat-meta[data-v-98d413ec]{gap:12px;margin-top:4px;display:flex}.meta-text[data-v-98d413ec]{color:#94a3b8;font-size:11px}.team-tag[data-v-98d413ec]{color:#059669;background:#d1fae5;border-radius:6px;padding:2px 8px;font-size:10px;font-weight:600}.feat-resources[data-v-98d413ec]{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.resource-tag[data-v-98d413ec]{color:#7c3aed;background:#ede9fe;border-radius:6px;padding:2px 8px;font-size:10px;font-weight:600}.feat-actions[data-v-98d413ec]{flex-shrink:0;gap:4px;display:flex}.resource-checkboxes[data-v-98d413ec]{flex-direction:column;gap:6px;display:flex}.resource-check-item[data-v-98d413ec]{cursor:pointer;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;transition:all .15s;display:flex}.resource-check-item.selected[data-v-98d413ec]{background:#ede9fe;border-color:#c4b5fd}.resource-check-item input[data-v-98d413ec]{accent-color:#7c3aed}.feat-deps[data-v-98d413ec]{flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;display:flex}.dep-label[data-v-98d413ec]{color:#94a3b8;font-size:10px}.dep-tag[data-v-98d413ec]{color:#d97706;background:#fef3c7;border-radius:6px;padding:2px 8px;font-size:10px;font-weight:600}.dep-checkboxes[data-v-98d413ec]{flex-direction:column;gap:4px;display:flex}.dep-check-item[data-v-98d413ec]{cursor:pointer;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:8px;padding:6px 12px;transition:all .15s;display:flex}.dep-check-item.selected[data-v-98d413ec]{background:#fef3c7;border-color:#fcd34d}.dep-check-item input[data-v-98d413ec]{accent-color:#d97706}.dep-title[data-v-98d413ec]{color:#1e293b;font-size:13px;font-weight:500}.rc-info[data-v-98d413ec]{align-items:center;gap:6px;display:flex}.rc-title[data-v-98d413ec]{color:#1e293b;font-size:13px;font-weight:500}.rc-cat[data-v-98d413ec]{color:#64748b;background:#f1f5f9;border-radius:4px;padding:1px 6px;font-size:10px}.icon-btn[data-v-98d413ec]{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;display:flex}.icon-btn.edit[data-v-98d413ec]{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0}.icon-btn.del[data-v-98d413ec]{color:#ef4444;background:#fef2f2;border:1px solid #fecaca;font-size:14px}.overlay[data-v-98d413ec]{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-98d413ec]{background:#fff;border-radius:20px;width:92%;max-width:520px;max-height:85vh;padding:28px 32px;overflow-y:auto;box-shadow:0 24px 80px #00000026}.modal-header[data-v-98d413ec]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h3[data-v-98d413ec]{color:#1e293b;margin:0;font-size:18px;font-weight:700}.close-btn[data-v-98d413ec]{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.field[data-v-98d413ec]{margin-bottom:16px}.field label[data-v-98d413ec]{color:#64748b;margin-bottom:6px;font-size:12px;font-weight:500;display:block}.field input[data-v-98d413ec],.field textarea[data-v-98d413ec],.field select[data-v-98d413ec]{color:#1e293b;box-sizing:border-box;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:10px 14px;font-family:Outfit,sans-serif;font-size:14px}.field textarea[data-v-98d413ec]{resize:vertical;min-height:60px}.field select[data-v-98d413ec]{cursor:pointer}.field-row[data-v-98d413ec]{gap:12px;display:flex}.field-row .field[data-v-98d413ec]{flex:1}.team-checkboxes[data-v-98d413ec]{flex-wrap:wrap;gap:8px;display:flex}.team-check-item[data-v-98d413ec]{cursor:pointer;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;transition:all .15s;display:flex}.team-check-item[data-v-98d413ec]:has(input:checked){background:#d1fae5;border-color:#6ee7b7}.team-check-item input[data-v-98d413ec]{accent-color:#059669}.team-check-name[data-v-98d413ec]{color:#1e293b;font-weight:500}.save-btn[data-v-98d413ec]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2563eb,#3b82f6);border:none;border-radius:12px;width:100%;margin-top:8px;padding:12px;font-size:15px;font-weight:600}.sm-page[data-v-609c6f37]{background:#f8fafb;max-width:860px;min-height:100vh;margin:0 auto;padding:32px 20px;font-family:Outfit,sans-serif}.top-bar[data-v-609c6f37]{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:24px;display:flex}.back-btn[data-v-609c6f37]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;display:flex;box-shadow:0 1px 3px #0000000f}.top-info[data-v-609c6f37]{flex:1}.top-info h2[data-v-609c6f37]{color:#1e293b;margin:0;font-size:28px;font-weight:800}.top-sub[data-v-609c6f37]{color:#94a3b8;letter-spacing:1.5px;margin:2px 0 0;font-family:DM Mono,monospace;font-size:12px}.add-row[data-v-609c6f37]{flex-shrink:0;gap:8px;display:flex}.add-input[data-v-609c6f37]{color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:10px;outline:none;width:200px;padding:8px 14px;font-family:Outfit,sans-serif;font-size:13px}.add-input[data-v-609c6f37]:focus{border-color:#a78bfa}.add-btn[data-v-609c6f37]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c3aed,#8b5cf6);border:none;border-radius:10px;padding:8px 16px;font-family:Outfit,sans-serif;font-size:13px;font-weight:600}.add-btn[data-v-609c6f37]:disabled{opacity:.5;cursor:not-allowed}.empty-state[data-v-609c6f37]{text-align:center;color:#cbd5e1;background:#fff;border:1px dashed #e2e8f0;border-radius:16px;padding:60px 20px;font-size:15px;font-style:italic}.skill-grid[data-v-609c6f37]{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.skill-card[data-v-609c6f37]{background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:10px;padding:14px 16px;transition:border-color .15s;display:flex;box-shadow:0 1px 3px #00000008}.skill-card[data-v-609c6f37]:hover{border-color:#c4b5fd}.skill-icon[data-v-609c6f37]{color:#fff;background:linear-gradient(135deg,#7c3aed,#a78bfa);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:flex}.skill-name[data-v-609c6f37]{color:#1e293b;flex:1;font-size:14px;font-weight:600}.usage-count[data-v-609c6f37]{color:#94a3b8;cursor:help;background:#f1f5f9;border-radius:6px;padding:2px 8px;font-size:10px;font-weight:500}.edit-input[data-v-609c6f37]{color:#1e293b;background:#f8fafc;border:1px solid #c4b5fd;border-radius:8px;outline:none;flex:1;padding:6px 10px;font-family:Outfit,sans-serif;font-size:13px}.card-actions[data-v-609c6f37]{flex-shrink:0;gap:4px;display:flex}.icon-btn[data-v-609c6f37]{cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;display:flex}.icon-btn.edit[data-v-609c6f37]{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0}.icon-btn.del[data-v-609c6f37]{color:#ef4444;background:#fef2f2;border:1px solid #fecaca;font-size:14px}.icon-btn.save[data-v-609c6f37]{color:#16a34a;background:#dcfce7;border:1px solid #86efac}.icon-btn.cancel[data-v-609c6f37]{color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0;font-size:14px}.roadmap-container[data-v-826c221e]{min-height:100vh;position:relative;overflow:hidden}.zoom-overlay[data-v-826c221e]{z-index:999;pointer-events:none;position:fixed;inset:0;overflow:hidden}.zoom-circle[data-v-826c221e]{border-radius:50%;width:0;height:0;animation:.55s cubic-bezier(.4,0,.2,1) forwards zoomCircleExpand-826c221e;position:absolute;transform:translate(-50%,-50%)}.white-wash[data-v-826c221e]{opacity:0;background:#f8fafb;animation:.55s .3s forwards whiteWash-826c221e;position:absolute;inset:0}.zoom-out-overlay[data-v-826c221e]{z-index:999;pointer-events:none;background:#f8fafb;animation:.4s forwards fadeOut-826c221e;position:fixed;inset:0}.anim-zoom-in[data-v-826c221e]{animation:.5s cubic-bezier(.4,0,.2,1) forwards contentZoomIn-826c221e}.anim-detail-slide[data-v-826c221e]{animation:.5s cubic-bezier(.16,1,.3,1) both detailSlideUp-826c221e}.anim-yearly-fade[data-v-826c221e]{animation:.45s cubic-bezier(.16,1,.3,1) both yearlyFadeBack-826c221e}.anim-shrink[data-v-826c221e]{animation:.4s forwards contentShrink-826c221e}@keyframes zoomCircleExpand-826c221e{0%{opacity:1;width:0;height:0}60%{opacity:1}to{opacity:.8;width:300vmax;height:300vmax}}@keyframes whiteWash-826c221e{0%{opacity:0}to{opacity:1}}@keyframes contentZoomIn-826c221e{0%{opacity:1;transform:scale(1)}to{opacity:0;filter:blur(6px);transform:scale(1.15)}}@keyframes detailSlideUp-826c221e{0%{opacity:0;transform:translateY(40px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes yearlyFadeBack-826c221e{0%{opacity:0;filter:blur(4px);transform:scale(.92)}to{opacity:1;filter:blur();transform:scale(1)}}@keyframes contentShrink-826c221e{0%{opacity:1;transform:scale(1)}to{opacity:0;filter:blur(4px);transform:scale(.9)}}@keyframes fadeOut-826c221e{0%{opacity:0}40%{opacity:.7}to{opacity:0}}.floating-notes[data-v-8f1040b3]{z-index:900;font-family:Outfit,sans-serif;position:fixed;bottom:24px;right:24px}.fab[data-v-8f1040b3]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0f172a,#334155);border:none;border-radius:16px;justify-content:center;align-items:center;width:52px;height:52px;transition:all .2s;display:flex;position:relative;box-shadow:0 4px 20px #0f172a4d}.fab[data-v-8f1040b3]:hover{transform:scale(1.05);box-shadow:0 8px 28px #0f172a66}.fab.active[data-v-8f1040b3]{background:linear-gradient(135deg,#334155,#475569);border-radius:12px}.fab-badge[data-v-8f1040b3]{color:#fff;background:#ef4444;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.notes-popup[data-v-8f1040b3]{background:#fff;border-radius:16px;flex-direction:column;width:320px;max-height:420px;animation:.2s popUp-8f1040b3;display:flex;position:absolute;bottom:62px;right:0;overflow:hidden;box-shadow:0 12px 40px #00000026}.popup-header[data-v-8f1040b3]{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}.popup-title[data-v-8f1040b3]{color:#1e293b;font-size:15px;font-weight:700}.popup-count[data-v-8f1040b3]{color:#64748b;background:#f1f5f9;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.add-row[data-v-8f1040b3]{gap:6px;padding:10px 12px;display:flex}.add-input[data-v-8f1040b3]{color:#1e293b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;outline:none;flex:1;padding:8px 12px;font-family:Outfit,sans-serif;font-size:13px}.add-input[data-v-8f1040b3]:focus{border-color:#94a3b8}.add-btn[data-v-8f1040b3]{color:#fff;cursor:pointer;background:#0f172a;border:none;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;font-size:18px;display:flex}.add-btn[data-v-8f1040b3]:disabled{opacity:.3;cursor:not-allowed}.notes-list[data-v-8f1040b3]{flex:1;padding:4px 12px 12px;overflow-y:auto}.empty[data-v-8f1040b3]{text-align:center;color:#cbd5e1;padding:20px;font-size:13px;font-style:italic}.note-item[data-v-8f1040b3]{border-bottom:1px solid #f8fafc;align-items:flex-start;gap:8px;padding:8px 0;display:flex}.note-content[data-v-8f1040b3]{color:#1e293b;cursor:text;word-break:break-word;flex:1;font-size:13px;line-height:1.5}.edit-input[data-v-8f1040b3]{color:#1e293b;border:1px solid #38bdf8;border-radius:6px;outline:none;flex:1;padding:4px 8px;font-family:Outfit,sans-serif;font-size:13px}.note-actions[data-v-8f1040b3]{flex-shrink:0;gap:2px;display:flex}.note-btn[data-v-8f1040b3]{cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;display:flex}.note-btn.edit[data-v-8f1040b3]{color:#64748b;background:#f8fafc}.note-btn.save[data-v-8f1040b3]{color:#059669;background:#d1fae5}.note-btn.del[data-v-8f1040b3]{color:#cbd5e1;background:0 0}.note-btn.del[data-v-8f1040b3]:hover{color:#ef4444}@keyframes popUp-8f1040b3{0%{opacity:0;transform:translateY(8px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.login-page[data-v-4a371d7e]{color:#202124;background:#f8f9fa;justify-content:center;align-items:center;min-height:100vh;padding:20px;font-family:Google Sans,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}.login-card[data-v-4a371d7e]{background:#fff;border:1px solid #dadce0;border-radius:12px;width:100%;max-width:400px;padding:40px;box-shadow:0 4px 24px #0000000f}.login-header[data-v-4a371d7e]{text-align:center;margin-bottom:28px}.logo[data-v-4a371d7e]{background:#1a73e8;border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 16px;display:flex;box-shadow:0 4px 12px #1a73e840}.brand[data-v-4a371d7e]{color:#202124;margin:0;font-size:24px;font-weight:400}.subtitle[data-v-4a371d7e]{color:#5f6368;margin:4px 0 0;font-size:14px}form[data-v-4a371d7e]{flex-direction:column;gap:16px;display:flex}label[data-v-4a371d7e]{color:#5f6368;flex-direction:column;gap:6px;font-size:13px;display:flex}label>span[data-v-4a371d7e]{color:#5f6368;font-weight:500}input[data-v-4a371d7e],.password-field[data-v-4a371d7e]{width:100%}input[data-v-4a371d7e]{color:#202124;background:#fff;border:1px solid #dadce0;border-radius:8px;outline:none;padding:10px 14px;font-size:15px;transition:border-color .15s,box-shadow .15s}input[data-v-4a371d7e]:focus{border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e826}.password-field[data-v-4a371d7e]{align-items:center;display:flex;position:relative}.password-field input[data-v-4a371d7e]{padding-right:40px}.eye-btn[data-v-4a371d7e]{color:#5f6368;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.eye-btn[data-v-4a371d7e]:hover{background:#f1f3f4}.error[data-v-4a371d7e]{color:#a50e0e;background:#fce8e6;border:1px solid #fad2cf;border-radius:8px;padding:8px 12px;font-size:13px}.submit[data-v-4a371d7e]{color:#fff;cursor:pointer;background:#1a73e8;border:none;border-radius:8px;margin-top:4px;padding:11px 16px;font-size:15px;font-weight:500;transition:background .15s,box-shadow .15s}.submit[data-v-4a371d7e]:hover:not(:disabled){background:#1557b0;box-shadow:0 1px 3px #0000001f}.submit[data-v-4a371d7e]:disabled{cursor:not-allowed;background:#c2d7f9}.register-hint[data-v-4a371d7e]{text-align:center;color:#5f6368;margin:8px 0 0;font-size:13px}.register-hint a[data-v-4a371d7e]{color:#1a73e8;font-weight:500;text-decoration:none}.register-hint a[data-v-4a371d7e]:hover{text-decoration:underline}.logout-btn[data-v-818bbbfd]{z-index:9999;color:#e2e8f0;cursor:pointer;background:#1e293bd9;border:1px solid #334155;border-radius:6px;width:32px;height:32px;font-size:1rem;position:fixed;top:.5rem;right:.5rem}.logout-btn[data-v-818bbbfd]:hover{background:#334155}
