:root{--bg-darkest:#0d1016;--bg-sidebar:#14181f;--bg-main:#1b1f27;--bg-card:#242933;--bg-card-hover:#2a303c;--bg-column:#171a21;--bg-input:#1d222a;--bg-modal-overlay:#090b11bf;--border-subtle:#2b303b;--border-medium:#363d49;--border-focus:#7963e9;--text-primary:#e2e4e9;--text-secondary:#89909f;--text-muted:#5c6370;--text-inverse:#0d1016;--accent-primary:#7963e9;--accent-primary-hover:#9482ed;--accent-primary-subtle:#7963e91f;--priority-high:#e64d4d;--priority-high-bg:#e64d4d1a;--priority-medium:#f49d25;--priority-medium-bg:#f49d251a;--priority-low:#37be7a;--priority-low-bg:#37be7a1a;--status-todo:#6c7993;--status-progress:#f49d25;--status-done:#37be7a;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:20px;--space-2xl:24px;--space-3xl:32px;--space-4xl:48px;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-xs:.6875rem;--font-sm:.75rem;--font-base:.875rem;--font-md:1rem;--font-lg:1.125rem;--font-xl:1.375rem;--font-2xl:1.75rem;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 3px #00000040;--shadow-md:0 4px 12px #0000004d;--shadow-lg:0 8px 30px #00000059;--shadow-glow:0 0 20px #7963e926;--transition-fast:.12s ease;--transition-base:.2s ease;--transition-smooth:.3s cubic-bezier(.4, 0, .2, 1);--sidebar-width:260px;--sidebar-collapsed:0px;--header-height:56px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-base);color:var(--text-primary);background-color:var(--bg-darkest);height:100vh;line-height:1.5;overflow:hidden}#app{width:100vw;height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border-subtle);height:100vh;transition:min-width var(--transition-smooth), width var(--transition-smooth);z-index:10;flex-direction:column;display:flex;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-collapsed);min-width:var(--sidebar-collapsed)}.sidebar-header{padding:var(--space-xl) var(--space-xl) var(--space-lg);align-items:center;gap:var(--space-md);flex-shrink:0;display:flex}.sidebar-logo{align-items:center;gap:var(--space-md);white-space:nowrap;text-decoration:none;display:flex}.sidebar-logo-icon{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--accent-primary), #30abe8);width:32px;height:32px;font-size:var(--font-lg);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-logo-text{font-size:var(--font-lg);color:var(--text-primary);letter-spacing:-.02em;font-weight:700}.sidebar-section-title{font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:var(--space-xl) var(--space-xl) var(--space-sm);white-space:nowrap;font-weight:600}.sidebar-projects{padding:0 var(--space-sm);flex:1;overflow-y:auto}.sidebar-projects::-webkit-scrollbar{width:4px}.sidebar-projects::-webkit-scrollbar-track{background:0 0}.sidebar-projects::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:2px}.project-item{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);white-space:nowrap;margin:2px 0;display:flex;position:relative}.project-item:hover{background:#ffffff0d}.project-item.active{background:var(--accent-primary-subtle)}.project-item.active .project-item-name{color:var(--accent-primary-hover);font-weight:600}.project-color-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.project-item-name{font-size:var(--font-base);color:var(--text-secondary);transition:color var(--transition-fast);text-overflow:ellipsis;flex:1;overflow:hidden}.project-item-delete{opacity:0;color:var(--text-muted);cursor:pointer;font-size:var(--font-sm);padding:var(--space-xs);border-radius:var(--radius-sm);transition:opacity var(--transition-fast), color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.project-item:hover .project-item-delete{opacity:1}.project-item-delete:hover{color:var(--priority-high);background:var(--priority-high-bg)}.sidebar-footer{padding:var(--space-lg);border-top:1px solid var(--border-subtle);flex-shrink:0}.btn-new-project{justify-content:center;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-lg);background:var(--accent-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--font-base);font-weight:600;font-family:var(--font-family);cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);white-space:nowrap;border:none;display:flex}.btn-new-project:hover{background:var(--accent-primary-hover);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-new-project:active{transform:translateY(0)}.main-content{background:var(--bg-main);flex-direction:column;flex:1;display:flex;overflow:hidden}.content-header{padding:var(--space-lg) var(--space-2xl);height:var(--header-height);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--space-lg);flex-shrink:0;display:flex}.content-header-left{align-items:center;gap:var(--space-lg);min-width:0;display:flex}.btn-toggle-sidebar{border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;padding:var(--space-sm);border-radius:var(--radius-sm);font-size:var(--font-md);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.btn-toggle-sidebar:hover{color:var(--text-primary);background:#ffffff0d}.content-title{font-size:var(--font-xl);color:var(--text-primary);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.content-header-right{align-items:center;gap:var(--space-sm);flex-shrink:0;display:flex}.view-tab{color:var(--text-muted);cursor:pointer;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:500;font-family:var(--font-family);transition:all var(--transition-fast);align-items:center;gap:var(--space-sm);background:0 0;border:1px solid #0000;display:flex}.view-tab:hover{color:var(--text-secondary);background:#ffffff0a}.view-tab.active{color:var(--accent-primary-hover);background:var(--accent-primary-subtle);border-color:#7963e933}.kanban-board{gap:var(--space-xl);padding:var(--space-2xl);flex:1;align-items:flex-start;display:flex;overflow:auto hidden}.kanban-column{background:var(--bg-column);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);min-width:280px;max-width:380px;max-height:calc(100vh - var(--header-height) - var(--space-4xl));transition:border-color var(--transition-fast);flex-direction:column;flex:1;display:flex}.kanban-column.drag-over{border-color:var(--accent-primary);box-shadow:var(--shadow-glow)}.kanban-column-header{padding:var(--space-lg) var(--space-lg) var(--space-md);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.kanban-column-title-group{align-items:center;gap:var(--space-sm);display:flex}.kanban-column-indicator{border-radius:50%;width:8px;height:8px}.kanban-column-indicator.todo{background:var(--status-todo)}.kanban-column-indicator.progress{background:var(--status-progress)}.kanban-column-indicator.done{background:var(--status-done)}.kanban-column-title{font-size:var(--font-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-weight:600}.kanban-column-count{font-size:var(--font-xs);color:var(--text-muted);text-align:center;background:#ffffff0f;border-radius:10px;min-width:22px;padding:2px 8px;font-weight:600}.kanban-column-body{padding:var(--space-sm) var(--space-md);gap:var(--space-sm);flex-direction:column;flex:1;min-height:60px;display:flex;overflow-y:auto}.kanban-column-body::-webkit-scrollbar{width:4px}.kanban-column-body::-webkit-scrollbar-track{background:0 0}.kanban-column-body::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:2px}.kanban-column-footer{padding:var(--space-sm) var(--space-md) var(--space-md);flex-shrink:0}.btn-add-task{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);border:1px dashed var(--border-subtle);border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--font-sm);font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);background:0 0;display:flex}.btn-add-task:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:var(--accent-primary-subtle)}.task-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);cursor:grab;transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);-webkit-user-select:none;user-select:none;position:relative}.task-card:hover{background:var(--bg-card-hover);border-color:var(--border-medium);box-shadow:var(--shadow-md);transform:translateY(-1px)}.task-card:active{cursor:grabbing}.task-card.dragging{opacity:.4;transform:scale(.98)}.task-card-priority-bar{border-radius:var(--radius-md) var(--radius-md) 0 0;height:3px;position:absolute;top:0;left:0;right:0}.task-card-priority-bar.high{background:var(--priority-high)}.task-card-priority-bar.medium{background:var(--priority-medium)}.task-card-priority-bar.low{background:var(--priority-low)}.task-card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-sm);margin-top:var(--space-xs);display:flex}.task-card-title{font-size:var(--font-base);color:var(--text-primary);word-break:break-word;flex:1;font-weight:600;line-height:1.4}.task-card-actions{opacity:0;transition:opacity var(--transition-fast);flex-shrink:0;gap:2px;display:flex}.task-card:hover .task-card-actions{opacity:1}.task-card-action-btn{color:var(--text-muted);cursor:pointer;padding:var(--space-xs);border-radius:var(--radius-sm);font-size:var(--font-sm);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.task-card-action-btn:hover{color:var(--text-primary);background:#ffffff14}.task-card-action-btn.delete:hover{color:var(--priority-high);background:var(--priority-high-bg)}.task-card-description{font-size:var(--font-sm);color:var(--text-secondary);margin-top:var(--space-sm);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.5;display:-webkit-box;overflow:hidden}.task-card-footer{margin-top:var(--space-md);justify-content:space-between;align-items:center;display:flex}.task-card-priority-tag{font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.04em;border-radius:10px;padding:2px 8px;font-weight:600}.task-card-priority-tag.high{background:var(--priority-high-bg);color:var(--priority-high)}.task-card-priority-tag.medium{background:var(--priority-medium-bg);color:var(--priority-medium)}.task-card-priority-tag.low{background:var(--priority-low-bg);color:var(--priority-low)}.task-card-date{font-size:var(--font-xs);color:var(--text-muted)}.drop-placeholder{border:2px dashed var(--accent-primary);border-radius:var(--radius-md);background:var(--accent-primary-subtle);min-height:60px;transition:all var(--transition-fast);margin:var(--space-xs) 0}.notes-panel{padding:var(--space-2xl);flex-direction:column;flex:1;display:flex;overflow:hidden}.notes-textarea{resize:none;background:var(--bg-column);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:100%;padding:var(--space-xl);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-base);transition:border-color var(--transition-fast);outline:none;flex:1;line-height:1.8}.notes-textarea::placeholder{color:var(--text-muted)}.notes-textarea:focus{border-color:var(--accent-primary);box-shadow:var(--shadow-glow)}.notes-status{align-items:center;gap:var(--space-sm);margin-top:var(--space-md);font-size:var(--font-xs);color:var(--text-muted);display:flex}.notes-status-dot{background:var(--status-done);width:6px;height:6px;transition:background var(--transition-fast);border-radius:50%}.notes-status-dot.saving{background:var(--status-progress);animation:1s infinite pulse}.modal-overlay{background:var(--bg-modal-overlay);z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-sidebar);border:1px solid var(--border-medium);border-radius:var(--radius-xl);width:100%;max-width:460px;box-shadow:var(--shadow-lg);margin:var(--space-lg);animation:.2s cubic-bezier(.4,0,.2,1) slideUp}.modal-header{padding:var(--space-xl) var(--space-2xl) var(--space-lg);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-lg);color:var(--text-primary);font-weight:700}.modal-close{color:var(--text-muted);cursor:pointer;font-size:var(--font-lg);padding:var(--space-xs);border-radius:var(--radius-sm);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.modal-close:hover{color:var(--text-primary);background:#ffffff0f}.modal-body{padding:var(--space-xl) var(--space-2xl);gap:var(--space-lg);flex-direction:column;display:flex}.form-group{gap:var(--space-sm);flex-direction:column;display:flex}.form-label{font-size:var(--font-sm);color:var(--text-secondary);font-weight:600}.form-input,.form-textarea,.form-select{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-base);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #7963e91a}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-textarea{resize:vertical;min-height:80px;line-height:1.6}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.form-color-input{align-items:center;gap:var(--space-md);display:flex}.color-picker{border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;width:36px;height:36px;padding:0}.color-picker::-webkit-color-swatch-wrapper{padding:0}.color-picker::-webkit-color-swatch{border:2px solid var(--border-medium);border-radius:var(--radius-md)}.modal-footer{justify-content:flex-end;gap:var(--space-sm);padding:var(--space-lg) var(--space-2xl) var(--space-xl);border-top:1px solid var(--border-subtle);display:flex}.btn{padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-md);font-size:var(--font-base);font-weight:600;font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:var(--space-sm);border:1px solid #0000;display:flex}.btn-primary{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.btn-primary:hover{background:var(--accent-primary-hover);border-color:var(--accent-primary-hover);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-ghost{color:var(--text-secondary);border-color:var(--border-subtle);background:0 0}.btn-ghost:hover{color:var(--text-primary);background:#ffffff0d}.btn-danger{background:var(--priority-high);color:#fff;border-color:var(--priority-high)}.btn-danger:hover{background:#e23636;transform:translateY(-1px)}.empty-state{justify-content:center;align-items:center;gap:var(--space-xl);padding:var(--space-4xl);text-align:center;flex-direction:column;flex:1;animation:.4s fadeIn;display:flex}.empty-state-icon{background:var(--accent-primary-subtle);width:100px;height:100px;margin-bottom:var(--space-md);border-radius:50%;justify-content:center;align-items:center;font-size:2.5rem;display:flex}.empty-state-title{font-size:var(--font-xl);color:var(--text-primary);font-weight:700}.empty-state-description{font-size:var(--font-base);color:var(--text-secondary);max-width:360px;line-height:1.6}.empty-state .btn{margin-top:var(--space-md)}.confirm-content{padding:var(--space-xl) var(--space-2xl)}.confirm-message{font-size:var(--font-base);color:var(--text-secondary);line-height:1.6}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slideInCard{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.task-card{animation:.2s slideInCard}@media (width<=768px){.sidebar{z-index:50;box-shadow:var(--shadow-lg);position:fixed;top:0;left:0}.sidebar.collapsed{width:var(--sidebar-width);min-width:var(--sidebar-width);transform:translate(-100%)}.kanban-board{padding:var(--space-lg);gap:var(--space-lg)}.kanban-column{min-width:260px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
