@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap";:root{--font-sans:"Plus Jakarta Sans", "Inter", system-ui, -apple-system, sans-serif;--bg-app:#faf9f5;--bg-sidebar:#fff;--bg-card:#fff;--bg-card-hover:#fcfaf6;--bg-overdue:#fffdfb;--border-color:#eceae4;--border-focus:#d4d1c7;--text-primary:#2c2a26;--text-secondary:#726f68;--text-muted:#a5a29a;--accent-color:#6366f1;--accent-hover:#4f46e5;--accent-light:#eef2ff;--accent-text:#4338ca;--priority-high-bg:#fee2e2;--priority-high-text:#991b1b;--priority-high-dot:#ef4444;--priority-medium-bg:#fef3c7;--priority-medium-text:#92400e;--priority-medium-dot:#f59e0b;--priority-low-bg:#d1fae5;--priority-low-text:#065f46;--priority-low-dot:#10b981;--category-work-bg:#ede9fe;--category-work-text:#5b21b6;--category-personal-bg:#e0f2fe;--category-personal-text:#0369a1;--status-todo-bg:#f3f4f6;--status-todo-text:#4b5563;--status-progress-bg:#eff6ff;--status-progress-text:#1d4ed8;--status-done-bg:#ecfdf5;--status-done-text:#047857;--shadow-sm:0 1px 2px 0 #00000005;--shadow-md:0 4px 12px -2px #726f680d, 0 2px 6px -1px #726f6808;--shadow-lg:0 12px 24px -4px #726f6814, 0 4px 12px -2px #726f680a;--shadow-card:0 8px 16px -4px #726f680f, 0 2px 4px -2px #726f680a;--shadow-drawer:-8px 0 24px -4px #726f6814;--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--radius-full:9999px;--transition-normal:.2s cubic-bezier(.4, 0, .2, 1);--transition-slow:.3s cubic-bezier(.4, 0, .2, 1)}body.dark-theme{--bg-app:#121214;--bg-sidebar:#1a1a1e;--bg-card:#1a1a1e;--bg-card-hover:#222228;--bg-overdue:#2d1a1a;--border-color:#2d2d35;--border-focus:#4f46e5;--text-primary:#f3f4f6;--text-secondary:#9ca3af;--text-muted:#6b7280;--accent-color:#818cf8;--accent-hover:#6366f1;--accent-light:#2e3056;--accent-text:#a5b4fc;--priority-high-bg:#451a1a;--priority-high-text:#fca5a5;--priority-high-dot:#ef4444;--priority-medium-bg:#452a10;--priority-medium-text:#fde047;--priority-medium-dot:#f59e0b;--priority-low-bg:#064e3b;--priority-low-text:#a7f3d0;--priority-low-dot:#10b981;--category-work-bg:#2e1065;--category-work-text:#ddd6fe;--category-personal-bg:#082f49;--category-personal-text:#bae6fd;--status-todo-bg:#374151;--status-todo-text:#d1d5db;--status-progress-bg:#1e3a8a;--status-progress-text:#93c5fd;--status-done-bg:#064e3b;--status-done-text:#a7f3d0;--shadow-sm:0 1px 2px 0 #00000080;--shadow-md:0 4px 12px -2px #0000004d, 0 2px 6px -1px #0003;--shadow-lg:0 12px 24px -4px #0006, 0 4px 12px -2px #0000004d;--shadow-card:0 8px 16px -4px #0000004d, 0 2px 4px -2px #0003;--shadow-drawer:-8px 0 24px -4px #0006}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;overflow-x:hidden}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#e4e2dc}::-webkit-scrollbar-thumb:hover{background:#d4d1c7}.app-container{min-height:100vh;display:flex;position:relative}.sidebar{background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);z-index:40;width:280px;transition:transform var(--transition-normal);flex-direction:column;padding:32px 24px;display:flex;position:fixed;top:0;bottom:0;left:0}.logo-container{align-items:center;gap:12px;margin-bottom:24px;display:flex}.logo-icon{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--accent-color), #818cf8);color:#fff;justify-content:center;align-items:center;width:38px;height:38px;display:flex;box-shadow:0 4px 10px #6366f14d}.logo-text{letter-spacing:-.5px;background:linear-gradient(to right, var(--text-primary), #55524b);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:20px;font-weight:700}.add-task-btn{background-color:var(--accent-color);color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);border:none;justify-content:center;align-items:center;gap:10px;margin-bottom:20px;padding:14px 20px;font-size:15px;font-weight:600;display:flex;box-shadow:0 4px 12px #6366f133}.add-task-btn:hover{background-color:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 16px #6366f14d}.add-task-btn:active{transform:translateY(0)}.nav-menu{flex-direction:column;flex-grow:1;gap:4px;padding-right:4px;list-style:none;display:flex;overflow-y:auto}.nav-item button{border-radius:var(--radius-md);width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;transition:all var(--transition-normal);background:0 0;border:none;align-items:center;gap:12px;padding:10px 14px;font-size:14px;font-weight:500;display:flex}.nav-item button:hover{background-color:var(--bg-app);color:var(--text-primary)}.nav-item.active button{background-color:var(--accent-light);color:var(--accent-text);font-weight:600}.sidebar-footer{border-top:1px solid var(--border-color);align-items:center;gap:12px;margin-top:auto;padding-top:16px;display:flex}.profile-avatar{border-radius:var(--radius-full);background-color:var(--accent-light);width:40px;height:40px;color:var(--accent-text);justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex}.profile-info{flex-direction:column;display:flex}.profile-name{color:var(--text-primary);font-size:13px;font-weight:600}.profile-role{color:var(--text-secondary);font-size:11px}.main-content{min-height:100vh;transition:padding var(--transition-normal);flex-direction:column;flex-grow:1;margin-left:280px;padding:40px 48px;display:flex}.content-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.header-left h1{letter-spacing:-.5px;color:var(--text-primary);margin-bottom:4px;font-size:26px;font-weight:700}.header-left p{color:var(--text-secondary);font-size:14px}.header-right{align-items:center;gap:12px;display:flex}.current-date-badge{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);box-shadow:var(--shadow-sm);align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:500;display:flex}.privacy-toggle-btn{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;width:38px;height:38px;color:var(--text-secondary);transition:all var(--transition-normal);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;display:flex}.privacy-toggle-btn:hover{border-color:var(--text-secondary);color:var(--text-primary)}.privacy-toggle-btn.active{color:#d97706;background-color:#fef3c7;border-color:#f59e0b}.privacy-blur{filter:blur(5px);-webkit-user-select:none;user-select:none;pointer-events:none;opacity:.8;transition:filter .2s}.privacy-replace{font-size:12px;font-style:italic;color:var(--text-muted)!important}.menu-toggle-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;width:38px;height:38px;color:var(--text-primary);justify-content:center;align-items:center;display:none}.dashboard-greeting-container{background-color:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);align-items:center;gap:14px;margin-bottom:24px;padding:20px;display:flex}.greeting-icon{border-radius:var(--radius-md);background-color:#fffbeb;justify-content:center;align-items:center;padding:10px;font-size:26px;display:flex}.greeting-text h2{color:var(--text-primary);margin-bottom:2px;font-size:20px;font-weight:700}.greeting-text p{color:var(--text-secondary);font-size:13px}.summary-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.summary-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform var(--transition-normal), box-shadow var(--transition-normal);align-items:center;gap:14px;padding:18px;display:flex}.summary-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.summary-card-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:44px;height:44px;display:flex}.summary-card-info{flex-direction:column;display:flex}.summary-value{color:var(--text-primary);font-size:22px;font-weight:700;line-height:1.2}.summary-label{color:var(--text-secondary);font-size:12px;font-weight:500}.dashboard-section{margin-bottom:28px}.section-title{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:14px;font-size:16px;font-weight:700;display:flex}.section-badge{border-radius:var(--radius-full);background-color:var(--border-color);color:var(--text-secondary);padding:2px 6px;font-size:11px;font-weight:600}.overdue-title .section-badge{background-color:var(--priority-high-bg);color:var(--priority-high-text)}.tasks-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.task-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);min-height:165px;box-shadow:var(--shadow-card);transition:all var(--transition-normal);flex-direction:column;justify-content:space-between;padding:18px;display:flex;position:relative}.task-card:hover{border-color:var(--border-focus);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.task-card.is-overdue{border-left:4px solid var(--priority-high-dot);background-color:var(--bg-overdue)}.task-card-header{align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.task-checkbox-btn{cursor:pointer;color:var(--text-muted);transition:color var(--transition-normal), transform .1s;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;padding:2px;display:flex}.task-checkbox-btn:hover{color:var(--accent-color);transform:scale(1.1)}.task-checkbox-btn.checked{color:#10b981}.task-title-area{flex-grow:1}.task-title{color:var(--text-primary);word-break:break-word;margin-bottom:4px;font-size:14px;font-weight:600;line-height:1.4}.task-card.is-done .task-title{color:var(--text-muted);text-decoration:line-through}.task-desc{color:var(--text-secondary);-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.task-card.is-done .task-desc{color:var(--text-muted)}.task-card-footer{flex-direction:column;gap:10px;margin-top:12px;display:flex}.task-tags{flex-wrap:wrap;gap:6px;display:flex}.badge{border-radius:var(--radius-full);align-items:center;gap:4px;padding:3px 8px;font-size:10px;font-weight:600;display:inline-flex}.badge-work{background-color:var(--category-work-bg);color:var(--category-work-text)}.badge-personal{background-color:var(--category-personal-bg);color:var(--category-personal-text)}.badge-priority-high{background-color:var(--priority-high-bg);color:var(--priority-high-text)}.badge-priority-medium{background-color:var(--priority-medium-bg);color:var(--priority-medium-text)}.badge-priority-low{background-color:var(--priority-low-bg);color:var(--priority-low-text)}.badge-type{color:#475569;background-color:#e2e8f0}.task-meta-row{color:var(--text-secondary);border-top:1px solid #faf9f6;justify-content:space-between;align-items:center;padding-top:8px;font-size:11px;display:flex}.task-meta-item{align-items:center;gap:4px;display:flex}.task-meta-item.overdue-text{color:var(--priority-high-text);font-weight:600}.task-collaborator{background-color:var(--bg-app);border-radius:var(--radius-full);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;max-width:140px;padding:2px 8px;font-size:10px;font-weight:500;display:flex;overflow:hidden}.task-actions{background-color:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);opacity:.5;transition:all var(--transition-normal);z-index:10;gap:6px;padding:4px;display:flex;position:absolute;top:14px;right:14px;transform:translateY(0)}.task-card:hover .task-actions{opacity:1}.action-btn{cursor:pointer;width:26px;height:26px;color:var(--text-secondary);transition:all var(--transition-normal);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.action-btn:hover{background-color:var(--bg-app);color:var(--text-primary)}.action-btn.edit-btn:hover{color:var(--accent-color);background-color:var(--accent-light)}.action-btn.delete-btn:hover{color:#dc2626;background-color:#fee2e2}.status-indicator-box{cursor:pointer;transition:background var(--transition-normal);border-radius:4px;align-items:center;gap:4px;padding:2px 6px;font-size:10px;font-weight:600;display:flex}.status-indicator-box:hover{background-color:#f1f0eb}.status-indicator-box.todo{background-color:var(--status-todo-bg);color:var(--status-todo-text)}.status-indicator-box.progress{background-color:var(--status-progress-bg);color:var(--status-progress-text)}.status-indicator-box.done{background-color:var(--status-done-bg);color:var(--status-done-text)}.empty-state{text-align:center;background-color:var(--bg-card);border:1px dashed var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;margin-top:10px;padding:40px 20px;display:flex}.empty-state-icon{color:var(--text-muted);background-color:var(--bg-app);border-radius:var(--radius-full);margin-bottom:12px;padding:14px}.empty-state h3{color:var(--text-primary);margin-bottom:4px;font-size:15px;font-weight:600}.empty-state p{color:var(--text-secondary);max-width:280px;font-size:12px}.kanban-board{flex-grow:1;grid-template-columns:repeat(3,1fr);align-items:start;gap:20px;display:grid}.kanban-column{background-color:var(--bg-app);border-radius:var(--radius-lg);border:1px solid var(--border-color);min-height:500px;transition:background-color var(--transition-normal);flex-direction:column;gap:14px;padding:16px 14px;display:flex}.kanban-column.drag-over{background-color:var(--accent-light);border:1px dashed var(--accent-color)}.kanban-column-header{justify-content:space-between;align-items:center;padding:0 4px 6px;display:flex}.column-header-left{color:var(--text-primary);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.column-dot{border-radius:var(--radius-full);width:8px;height:8px}.column-dot.todo{background-color:var(--text-secondary)}.column-dot.progress{background-color:var(--accent-color)}.column-dot.done{background-color:#10b981}.column-count{color:var(--text-secondary);background-color:var(--bg-card);border-radius:var(--radius-full);border:1px solid var(--border-color);padding:2px 6px;font-size:11px;font-weight:600}.kanban-tasks-list{flex-direction:column;flex-grow:1;gap:12px;min-height:400px;display:flex}.kanban-card{cursor:grab;-webkit-user-select:none;user-select:none}.kanban-card:active{cursor:grabbing}.kanban-card.is-dragging{opacity:.4;border:2px dashed var(--accent-color)}.kanban-quick-actions{border-top:1px solid var(--border-color);justify-content:space-between;margin-top:6px;padding-top:6px;display:flex}.kanban-quick-move-btn{color:var(--text-secondary);cursor:pointer;transition:all var(--transition-normal);background:0 0;border:none;border-radius:4px;align-items:center;gap:2px;padding:2px 6px;font-size:10px;font-weight:500;display:flex}.kanban-quick-move-btn:hover{background-color:var(--accent-light);color:var(--accent-text)}.calendar-view-container{flex-grow:1;align-items:stretch;gap:24px;max-height:calc(100vh - 180px);display:flex;position:relative;overflow:hidden}.calendar-main{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;flex-grow:1;padding:16px;display:flex;overflow:hidden}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.calendar-month-year{color:var(--text-primary);font-size:17px;font-weight:700}.calendar-nav-buttons{gap:6px;display:flex}.calendar-nav-btn{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);transition:all var(--transition-normal);justify-content:center;align-items:center;display:flex}.calendar-nav-btn:hover{border-color:var(--text-secondary);color:var(--text-primary)}.calendar-grid{flex:1;grid-template-columns:repeat(7,1fr);gap:4px;min-height:0;display:grid;overflow:hidden}.calendar-weekday{text-align:center;color:var(--text-secondary);border-bottom:1px solid var(--border-color);padding:6px 0;font-size:11px;font-weight:600}.calendar-cell{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);flex-direction:column;justify-content:space-between;min-height:0;padding:4px 5px;display:flex;position:relative;overflow:hidden}.calendar-cell:hover{background-color:var(--bg-app);border-color:var(--border-color)}.calendar-cell.outside-month{color:var(--text-muted);background-color:var(--bg-app);opacity:.5}.calendar-cell.is-selected{border:2px solid var(--accent-color);background-color:var(--accent-light)}.calendar-cell.is-today{font-weight:700}.calendar-cell.is-today .cell-date-num{background-color:var(--accent-color);color:#fff;border-radius:var(--radius-full);justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;display:flex}.cell-date-num{color:var(--text-primary);align-self:flex-start;font-size:12px;font-weight:500}.calendar-cell.outside-month .cell-date-num{color:var(--text-muted)}.cell-dots{flex-wrap:wrap;justify-content:flex-start;gap:3px;min-height:6px;margin-top:3px;display:flex}.calendar-dot{border-radius:var(--radius-full);width:5px;height:5px;display:inline-block}.calendar-dot.high{background-color:var(--priority-high-dot)}.calendar-dot.medium{background-color:var(--priority-medium-dot)}.calendar-dot.low{background-color:var(--priority-low-dot)}.calendar-legend{border-top:1px solid var(--border-color);color:var(--text-secondary);justify-content:center;gap:16px;padding-top:14px;font-size:11px;font-weight:500;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.calendar-sidebar-drawer{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:320px;box-shadow:var(--shadow-drawer);animation:slideIn var(--transition-normal);flex-direction:column;gap:16px;padding:20px;display:flex}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.drawer-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding-bottom:10px;display:flex}.drawer-title h3{color:var(--text-primary);font-size:15px;font-weight:700}.drawer-title p{color:var(--text-secondary);font-size:11px}.drawer-close-btn{cursor:pointer;color:var(--text-secondary);width:26px;height:26px;transition:all var(--transition-normal);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.drawer-close-btn:hover{background-color:var(--bg-app);color:var(--text-primary)}.drawer-tasks-list{flex-direction:column;flex-grow:1;gap:10px;max-height:480px;padding-right:4px;display:flex;overflow-y:auto}.drawer-add-btn{background-color:var(--bg-app);border:1px dashed var(--border-color);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);justify-content:center;align-items:center;gap:8px;padding:10px;font-size:12px;font-weight:600;display:flex}.drawer-add-btn:hover{background-color:var(--accent-light);color:var(--accent-text);border-color:var(--accent-color)}.collaborations-container,.clients-container{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px;display:grid}.collab-card,.client-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:16px;padding:20px;display:flex}.collab-card-header,.client-card-header{border-bottom:1px solid var(--border-color);align-items:center;gap:14px;padding-bottom:12px;display:flex}.collab-avatar,.client-avatar{border-radius:var(--radius-full);color:#fff;justify-content:center;align-items:center;width:48px;height:48px;font-size:15px;font-weight:700;display:flex;box-shadow:0 4px 8px #0000000a}.collab-info,.client-info{flex-direction:column;flex-grow:1;display:flex}.collab-name,.client-name{color:var(--text-primary);font-size:15px;font-weight:700}.collab-meta-sub,.client-meta-sub{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;font-size:11px;display:flex}.collab-link,.client-link{color:var(--accent-color);align-items:center;gap:2px;text-decoration:none;display:inline-flex}.collab-link:hover,.client-link:hover{text-decoration:underline}.collab-amount,.client-amount-badge{color:#047857;background-color:#ecfdf5;border-radius:4px;padding:1px 6px;font-size:12px;font-weight:700}.collab-tasks-list,.client-milestones-list{flex-direction:column;gap:10px;display:flex}.collab-task-item,.client-milestone-item{background-color:var(--bg-app);border-radius:var(--radius-md);border:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.collab-task-left,.client-milestone-left{flex-direction:column;gap:2px;max-width:65%;display:flex}.collab-task-title,.client-milestone-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.collab-task-title.is-done,.client-milestone-title.is-paid{color:var(--text-muted);text-decoration:line-through}.collab-task-meta,.client-milestone-meta{color:var(--text-secondary);font-size:10px}.collab-toggle-btn,.client-milestone-toggle-btn{background-color:var(--bg-card);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);align-items:center;gap:4px;padding:5px 10px;font-size:10px;font-weight:600;display:flex}.collab-toggle-btn.done,.client-milestone-toggle-btn.paid{background-color:var(--status-done-bg);color:var(--status-done-text);border-color:var(--status-done-text)}.collab-toggle-btn:hover,.client-milestone-toggle-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}.client-overall-progress{flex-direction:column;gap:4px;display:flex}.progress-header{color:var(--text-secondary);justify-content:space-between;font-size:11px;font-weight:600;display:flex}.progress-track{border-radius:var(--radius-full);background-color:#e2e8f0;width:100%;height:6px;overflow:hidden}.progress-fill{background-color:var(--accent-color);border-radius:var(--radius-full);height:100%;transition:width var(--transition-normal)}.progress-fill.green{background-color:#10b981}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:20px;display:grid}.project-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:16px;padding:20px;display:flex}.project-card-header{justify-content:space-between;align-items:flex-start;display:flex}.project-card-title{color:var(--text-primary);font-size:16px;font-weight:700}.project-logs-timeline{border-top:1px solid var(--border-color);flex-direction:column;gap:10px;max-height:150px;padding-top:12px;padding-right:4px;display:flex;overflow-y:auto}.project-log-item{border-left:2px solid var(--border-color);flex-direction:column;padding-left:12px;font-size:11px;display:flex;position:relative}.project-log-item:before{content:"";border-radius:var(--radius-full);background-color:var(--text-muted);width:8px;height:8px;position:absolute;top:4px;left:-5px}.project-log-date{color:var(--text-secondary);font-weight:600}.project-log-text{color:var(--text-primary);margin-top:1px}.work-tracker-panel{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:28px;padding:20px}.work-tracker-title{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:12px;font-size:15px;font-weight:700;display:flex}.work-tracker-form{grid-template-columns:1fr 2fr 1fr auto;align-items:end;gap:14px;display:grid}.work-tracker-row{background-color:var(--bg-app);border-radius:var(--radius-md);border:1px solid var(--border-color);grid-template-columns:200px 1fr 38px;align-items:start;gap:10px;padding:12px;display:grid}@media (width<=768px){.work-tracker-form{grid-template-columns:1fr;gap:10px}}.analytics-grid{grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:28px;display:grid}@media (width<=768px){.analytics-grid{grid-template-columns:1fr}}.analytics-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:22px}.analytics-title{color:var(--text-primary);border-bottom:1px solid var(--border-color);margin-bottom:16px;padding-bottom:10px;font-size:15px;font-weight:700}.analytics-pointer-list{flex-direction:column;gap:12px;display:flex}.pointer-item{justify-content:space-between;align-items:center;font-size:13px;font-weight:500;display:flex}.pointer-label{color:var(--text-secondary);align-items:center;gap:8px;display:flex}.pointer-value{color:var(--text-primary);font-weight:700}.pointer-value.accent{color:var(--accent-color)}.pointer-value.green{color:#10b981}.pointer-value.red{color:#ef4444}.floating-assistant-btn{border-radius:var(--radius-full);color:#fff;cursor:pointer;z-index:100;background:linear-gradient(135deg,#6366f1 0%,#818cf8 60%,#a5b4fc 100%);border:none;justify-content:center;align-items:center;width:58px;height:58px;transition:all .2s cubic-bezier(.34,1.56,.64,1);display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 8px 28px #6366f173,0 2px 8px #6366f133}.floating-assistant-btn:hover{transform:scale(1.1)translateY(-2px);box-shadow:0 12px 36px #6366f18c}.floating-assistant-btn.active{background:linear-gradient(135deg,#374151,#1f2937);transform:scale(1);box-shadow:0 6px 16px #0000004d}.floating-assistant-chat{background-color:var(--bg-sidebar);border:1px solid var(--border-color);z-index:99;border-radius:20px;flex-direction:column;width:420px;height:600px;animation:.28s cubic-bezier(.34,1.3,.64,1) floatUp;display:flex;position:fixed;bottom:96px;right:24px;overflow:hidden;box-shadow:0 24px 64px #0000002e,0 4px 16px #6366f11f}@keyframes floatUp{0%{opacity:0;transform:translateY(24px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.assistant-header{background:linear-gradient(135deg,#4f46e5 0%,#6366f1 50%,#818cf8 100%);border-bottom:none;flex-shrink:0;align-items:center;gap:0;padding:0;display:flex}.assistant-header-inner{align-items:center;gap:12px;width:100%;padding:16px 18px;display:flex}.assistant-avatar{border-radius:var(--radius-full);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff3;border:1.5px solid #ffffff4d;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex}.assistant-header-info{flex:1;min-width:0}.assistant-header-info h2{color:#fff;letter-spacing:-.01em;margin:0;font-size:14px;font-weight:700}.assistant-header-info p{color:#ffffffbf;align-items:center;gap:5px;margin:1px 0 0;font-size:11px;display:flex}.assistant-status-dot{border-radius:var(--radius-full);background-color:#34d399;width:6px;height:6px;animation:2s infinite pulse-dot;box-shadow:0 0 6px #34d39999}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.assistant-close-btn{border-radius:var(--radius-full);color:#fff;cursor:pointer;width:30px;height:30px;transition:all var(--transition-normal);background:#ffffff26;border:1px solid #fff3;flex-shrink:0;justify-content:center;align-items:center;display:flex}.assistant-close-btn:hover{background:#ffffff47}.chat-messages{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent;flex-direction:column;flex-grow:1;gap:14px;padding:16px 16px 8px;display:flex;overflow-y:auto}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:0 0}.chat-messages::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:4px}.message-row{align-items:flex-end;gap:8px;display:flex}.message-row.user{flex-direction:row-reverse}.message-avatar-sm{border-radius:var(--radius-full);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:10px;font-weight:700;display:flex}.message-avatar-sm.bot{background:linear-gradient(135deg,#6366f1,#818cf8)}.message-avatar-sm.user{background:linear-gradient(135deg,#374151,#4b5563)}.message-bubble{word-break:break-word;border-radius:16px;max-width:78%;padding:10px 13px;font-size:12.5px;line-height:1.55}.message-bubble.bot{background-color:var(--bg-app);color:var(--text-primary);border:1px solid var(--border-color);border-bottom-left-radius:4px}.message-bubble.user{color:#fff;background:linear-gradient(135deg,#6366f1,#818cf8);border-bottom-right-radius:4px;box-shadow:0 4px 12px #6366f14d}.message-bubble.thinking{align-items:center;gap:5px;min-width:56px;padding:12px 16px;display:flex}.message-bubble.thinking .dot{background-color:var(--accent-color);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite bounce-dot}.message-bubble.thinking .dot:first-child{animation-delay:0s}.message-bubble.thinking .dot:nth-child(2){animation-delay:.2s}.message-bubble.thinking .dot:nth-child(3){animation-delay:.4s}@keyframes bounce-dot{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-6px)}}.query-chips{border-top:1px solid var(--border-color);white-space:nowrap;background-color:var(--bg-sidebar);scrollbar-width:none;flex-shrink:0;gap:6px;padding:10px 14px;display:flex;overflow-x:auto}.query-chips::-webkit-scrollbar{display:none}.chip-btn{background-color:var(--bg-app);border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer;white-space:nowrap;flex-shrink:0;padding:5px 11px;font-size:11px;font-weight:600;transition:all .18s}.chip-btn:hover{background-color:var(--accent-light);border-color:var(--accent-color);color:var(--accent-text);transform:translateY(-1px)}.chat-input-area{border-top:1px solid var(--border-color);background-color:var(--bg-sidebar);flex-shrink:0;align-items:center;gap:8px;padding:12px 14px 14px;display:flex}.chat-input-wrapper{background-color:var(--bg-app);border:1.5px solid var(--border-color);border-radius:24px;flex:1;align-items:center;padding:0 14px;transition:border-color .18s,box-shadow .18s;display:flex}.chat-input-wrapper:focus-within{border-color:var(--accent-color);box-shadow:0 0 0 3px #6366f11f}.chat-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:10px 0;font-family:inherit;font-size:13px}.chat-input::placeholder{color:var(--text-muted)}.chat-send-btn{border-radius:var(--radius-full);color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#818cf8);border:none;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;transition:all .2s cubic-bezier(.34,1.56,.64,1);display:flex;box-shadow:0 4px 12px #6366f14d}.chat-send-btn:hover{transform:scale(1.1);box-shadow:0 6px 18px #6366f173}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}@media (width<=480px){.floating-assistant-chat{width:auto;height:400px;bottom:84px;left:16px;right:16px}}.settings-container{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);max-width:600px;box-shadow:var(--shadow-sm);flex-direction:column;gap:20px;padding:24px;display:flex}.settings-card{flex-direction:column;gap:14px;display:flex}.settings-instructions{background-color:var(--accent-light);color:var(--accent-text);border-radius:var(--radius-md);padding:14px;font-size:12px;line-height:1.45}.modal-milestones-builder{border-top:1px solid var(--border-color);flex-direction:column;gap:10px;padding-top:14px;display:flex}.milestone-builder-header{justify-content:space-between;align-items:center;display:flex}.milestone-builder-row{grid-template-columns:2fr 1fr auto;align-items:center;gap:10px;display:grid}.percentage-tracker{color:var(--text-secondary);font-size:11px;font-weight:600}.percentage-tracker.warning{color:#dc2626}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;animation:fadeIn var(--transition-normal);background-color:#2c2a2666;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background-color:var(--bg-card);border-radius:var(--radius-xl);border:1px solid var(--border-color);width:550px;max-width:90%;max-height:90vh;box-shadow:var(--shadow-lg);animation:scaleUp var(--transition-normal);flex-direction:column;gap:20px;padding:24px;display:flex;position:relative;overflow-y:auto}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{justify-content:space-between;align-items:center;display:flex}.modal-header h2{color:var(--text-primary);font-size:18px;font-weight:700}.modal-close-btn{cursor:pointer;color:var(--text-secondary);width:30px;height:30px;transition:all var(--transition-normal);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex}.modal-close-btn:hover{background-color:var(--bg-app);color:var(--text-primary)}.modal-form{flex-direction:column;gap:14px;display:flex}.form-group{flex-direction:column;gap:4px;display:flex}.form-label{color:var(--text-primary);font-size:12px;font-weight:600}.form-input{border-radius:var(--radius-md);border:1px solid var(--border-color);color:var(--text-primary);background-color:var(--bg-app);transition:all var(--transition-normal);padding:8px 12px;font-size:13px}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{border-color:var(--accent-color);background-color:var(--bg-card);outline:none;box-shadow:0 0 0 3px #6366f11f}.form-textarea{resize:vertical;min-height:60px}.form-grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-actions{border-top:1px solid var(--border-color);justify-content:flex-end;gap:10px;margin-top:6px;padding-top:14px;display:flex}.form-cancel-btn{background-color:var(--bg-card);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);padding:10px 16px;font-size:13px;font-weight:600}.form-cancel-btn:hover{background-color:var(--bg-app);color:var(--text-primary);border-color:var(--text-secondary)}.form-submit-btn{background-color:var(--accent-color);color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);border:none;padding:10px 20px;font-size:13px;font-weight:600;box-shadow:0 4px 12px #6366f126}.form-submit-btn:hover{background-color:var(--accent-hover);transform:translateY(-1px)}@media (width<=1024px){.sidebar{transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0)}.main-content{margin-left:0;padding:20px}.menu-toggle-btn{display:flex}.summary-grid{grid-template-columns:repeat(2,1fr)}.calendar-view-container{flex-direction:column}.calendar-sidebar-drawer{width:100%}}@media (width<=768px){.summary-grid,.kanban-board,.form-grid-2{grid-template-columns:1fr}.content-header{flex-direction:column;align-items:flex-start;gap:12px}.header-right{justify-content:space-between;width:100%}}.work-tracker-rows{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.work-tracker-row{grid-template-columns:1fr 2fr auto;align-items:center;gap:12px;display:grid}@media (width<=600px){.work-tracker-row{border-bottom:1px solid var(--border-color);grid-template-columns:1fr;gap:8px;padding-bottom:12px}}.login-screen-overlay{background-color:var(--bg-app);justify-content:center;align-items:center;width:100vw;min-height:100vh;padding:20px;display:flex}.login-card-container{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:440px;max-width:100%;box-shadow:var(--shadow-lg);flex-direction:column;gap:24px;padding:40px;display:flex}.login-card-header{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.login-logo-icon{border-radius:var(--radius-lg);background:linear-gradient(135deg, var(--accent-color), #818cf8);color:#fff;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:8px;display:flex;box-shadow:0 4px 12px #6366f140}.login-card-header h2{color:var(--text-primary);letter-spacing:-.5px;font-size:22px;font-weight:700}.login-card-header p{color:var(--text-secondary);font-size:13px}.login-form-body{flex-direction:column;gap:16px;display:flex}.login-error-alert{color:#b91c1c;border-radius:var(--radius-md);background-color:#fee2e2;border:1px solid #fecaca;padding:10px 14px;font-size:12px;font-weight:600}.login-submit-btn{background-color:var(--accent-color);color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);border:none;width:100%;margin-top:8px;padding:12px 20px;font-size:14px;font-weight:600;box-shadow:0 4px 12px #6366f133}.login-submit-btn:hover{background-color:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 16px #6366f14d}.login-submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-card-footer{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:4px;font-size:11px;display:flex}.sidebar-mobile-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:35;animation:fadeIn var(--transition-normal);background-color:#2c2a2659;position:fixed;inset:0}@media (width>=1025px){.sidebar-mobile-overlay{display:none}}.message-bubble.bot.thinking{background-color:var(--bg-app);border-top-left-radius:2px;align-self:flex-start;align-items:center;gap:4px;padding:8px 12px;display:inline-flex}.message-bubble.bot.thinking .dot{background-color:var(--text-secondary);border-radius:50%;width:6px;height:6px;animation:1.4s infinite both typingBounce;display:inline-block}.message-bubble.bot.thinking .dot:nth-child(2){animation-delay:.2s}.message-bubble.bot.thinking .dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.theme-toggle-btn{border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;width:38px;height:38px;transition:all var(--transition-normal);background:0 0;justify-content:center;align-items:center;display:flex}.theme-toggle-btn:hover{background-color:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-focus)}.message-bubble.bot{background-color:var(--bg-app);max-width:90%;color:var(--text-primary);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);border-top-left-radius:2px;padding:14px 18px;font-size:13px;line-height:1.5}.message-bubble.user{background-color:var(--accent-color);color:#fff;border-top-right-radius:2px;align-self:flex-end;max-width:85%;padding:12px 16px;font-size:13px;line-height:1.4}.chat-text-block{flex-direction:column;gap:8px;display:flex}.chat-p{color:var(--text-primary);margin:0}.chat-h3{color:var(--text-primary);letter-spacing:-.2px;border-bottom:1px solid var(--border-color);margin-top:10px;margin-bottom:2px;padding-bottom:4px;font-size:15px;font-weight:700}.chat-h4{color:var(--text-primary);margin-top:8px;margin-bottom:2px;font-size:13px;font-weight:600}.chat-ul,.chat-ol{color:var(--text-primary);margin:0;padding-left:20px}.chat-ul li,.chat-ol li{margin-bottom:4px}.chat-inline-code{background-color:var(--border-color);color:var(--accent-text);border-radius:4px;padding:2px 5px;font-family:monospace;font-size:12px}.chat-table-container{border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background-color:var(--bg-card);margin:12px 0;overflow-x:auto}.chat-table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}.chat-table th{background-color:var(--bg-app);color:var(--text-primary);border-bottom:1px solid var(--border-color);padding:8px 12px;font-weight:600}.chat-table td{border-bottom:1px solid var(--border-color);color:var(--text-secondary);padding:8px 12px}.chat-table tr:last-child td{border-bottom:none}.chat-table tr:hover{background-color:var(--bg-card-hover)}.chat-code-block-container{border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background-color:#1e1e24;margin:12px 0;overflow:hidden}.chat-code-block-header{color:#9ca3af;background-color:#121216;border-bottom:1px solid #2d2d35;justify-content:space-between;align-items:center;padding:6px 12px;font-family:monospace;font-size:11px;font-weight:500;display:flex}.chat-copy-code-btn{color:#9ca3af;cursor:pointer;transition:all var(--transition-normal);background:0 0;border:1px solid #374151;border-radius:4px;padding:2px 8px;font-size:10px}.chat-copy-code-btn:hover{color:#fff;background-color:#2d2d35;border-color:#4b5563}.chat-code-block{color:#e5e7eb;background-color:#1e1e24;margin:0;padding:12px;font-family:monospace;font-size:12px;line-height:1.45;overflow-x:auto}.chat-mermaid-container{border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background-color:#fff;flex-direction:column;margin:14px 0;display:flex;overflow:hidden}.chat-mermaid-header{background-color:var(--bg-app);border-bottom:1px solid var(--border-color);color:var(--text-primary);align-items:center;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.chat-mermaid-diagram{background-color:#fff;justify-content:center;align-items:center;padding:16px;display:flex;overflow-x:auto}.chat-mermaid-diagram svg{max-width:100%!important;height:auto!important}.chat-mermaid-error{border-radius:var(--radius-md);color:#b91c1c;background-color:#fef2f2;border:1px solid #fca5a5;padding:12px}.github-commit-status-row{background:var(--bg-app);border:1px solid var(--border-color);border-radius:var(--radius-md);align-items:center;gap:8px;min-height:28px;margin-top:8px;padding:6px 10px;display:flex}.github-logo-link{color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;transition:transform .2s,color .2s;display:inline-flex}.github-logo-link:hover{color:var(--accent-color);transform:scale(1.15)}.github-commit-text{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;overflow:hidden}.github-commit-text strong{color:var(--text-primary);font-weight:500}.github-commit-date{color:var(--text-muted);margin-left:4px}.github-commit-text.loading{color:var(--text-muted);font-style:italic}.github-commit-text.error{color:var(--priority-high-dot);font-weight:500}.collab-link,.client-link{background:#6366f114;border:1px solid #6366f126;border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:10px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex;color:var(--accent-color)!important}.collab-link:hover,.client-link:hover{background:var(--accent-light);border-color:var(--accent-color);color:var(--accent-color)!important;text-decoration:none!important}
