.layout{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:10;transition:width .25s ease;overflow:hidden}.sidebar.collapsed{width:64px}.sidebar-header{padding:16px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;min-height:60px}.logo{font-size:24px;font-weight:700;color:var(--color-primary);letter-spacing:-.5px;white-space:nowrap;transition:font-size .25s}.collapsed .logo{font-size:22px}.collapse-btn{width:28px;height:28px;border-radius:50%;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;transition:all .15s}.collapse-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.workspace-switcher{display:flex;gap:6px;padding:10px;border-bottom:1px solid var(--color-border);transition:padding .25s}.collapsed .workspace-switcher{flex-direction:column;padding:8px 6px}.workspace-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 6px;border-radius:var(--radius);border:2px solid transparent;background:var(--color-bg);color:var(--color-text-secondary);font-size:12px;font-weight:600;transition:all .15s;overflow:hidden;white-space:nowrap}.workspace-btn:hover{background:var(--color-bg);color:var(--color-text)}.workspace-btn.active{color:var(--color-text)}.workspace-icon{font-size:16px;flex-shrink:0}.workspace-label{white-space:nowrap}.sidebar-nav{flex:1;padding:12px 8px;display:flex;flex-direction:column;gap:4px}.nav-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);color:var(--color-text-secondary);font-weight:500;font-size:14px;transition:all .15s;white-space:nowrap;overflow:hidden}.collapsed .nav-link{justify-content:center;padding:10px}.nav-link:hover{background:var(--color-bg);color:var(--color-text)}.nav-link.active{background:#6366f11a;color:var(--color-primary)}.nav-icon{font-size:18px;width:20px;text-align:center;flex-shrink:0}.sidebar-footer{padding:12px;border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:8px}.collapsed .sidebar-footer{flex-direction:column;gap:6px}.user-info{display:flex;align-items:center;gap:8px;min-width:0}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0}.user-name{font-size:13px;font-weight:500;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collapse-signout{padding:4px 8px;font-size:14px}.main-content{flex:1;margin-left:240px;padding:24px;transition:margin-left .25s ease}.sidebar-collapsed .main-content{margin-left:64px}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-card{width:100%;max-width:400px;padding:40px}.login-logo{font-size:32px;font-weight:700;color:var(--color-primary);text-align:center;margin-bottom:8px}.login-subtitle{text-align:center;color:var(--color-text-secondary);margin-bottom:24px;font-size:14px}.login-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.login-btn{width:100%;justify-content:center;padding:10px;font-size:15px;margin-top:4px}.login-error{background:#fef2f2;color:var(--color-danger);padding:8px 12px;border-radius:var(--radius);font-size:13px}.login-success{background:#f0fdf4;color:var(--color-success);padding:8px 12px;border-radius:var(--radius);font-size:13px}.login-toggle{text-align:center;margin-top:20px;font-size:14px;color:var(--color-text-secondary)}.link-btn{background:none;color:var(--color-primary);font-weight:500;padding:0}.link-btn:hover{text-decoration:underline}.kanban-board{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;min-height:calc(100vh - 120px)}.kanban-column{background:var(--color-bg);border-radius:var(--radius);border:2px solid transparent;padding:12px;transition:border-color .15s}.kanban-column.column-over{border-color:var(--color-primary);background:#6366f108}.column-header{display:flex;align-items:center;gap:8px;padding:8px 4px;margin-bottom:8px}.column-dot{width:10px;height:10px;border-radius:50%}.column-title{font-size:14px;font-weight:600}.column-content{display:flex;flex-direction:column;gap:8px;min-height:100px}.kanban-card{padding:12px;cursor:grab;transition:box-shadow .15s;touch-action:none}.kanban-card:hover{box-shadow:var(--shadow-lg)}.kanban-card.dragging{box-shadow:var(--shadow-lg);cursor:grabbing}.task-project-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:12px;margin-bottom:6px}.task-title{font-size:14px;font-weight:500;margin-bottom:8px}.task-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tag{font-size:11px;font-weight:600;padding:2px 8px;border-radius:12px}.tag-urgent{background:#fef2f2;color:var(--color-danger)}.tag-important{background:#fefce8;color:#a16207}.task-due{font-size:12px;color:var(--color-text-secondary);margin-left:auto}.add-task-btn{width:100%;padding:8px;background:transparent;color:var(--color-text-secondary);border:2px dashed var(--color-border);border-radius:var(--radius);font-size:13px;font-weight:500;transition:all .15s;margin-top:4px}.add-task-btn:hover{color:var(--color-primary);border-color:var(--color-primary);background:#6366f108}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.dialog{width:100%;max-width:520px;padding:24px;max-height:90vh;overflow-y:auto}.dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dialog-header h2{font-size:18px;font-weight:600}.close-btn{background:none;font-size:24px;color:var(--color-text-secondary);padding:0 4px;line-height:1}.close-btn:hover{color:var(--color-text)}.dialog-form{display:flex;flex-direction:column;gap:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialog-actions{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:16px;border-top:1px solid var(--color-border)}.alert-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px}.alert-panel-header{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--color-border)}.alert-bell{font-size:18px;color:#f59e0b}.alert-panel-header h3{font-size:14px;font-weight:600}.alert-list{max-height:300px;overflow-y:auto}.alert-group{padding:4px 0}.alert-group-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:8px 16px 4px}.alert-item{display:flex;align-items:center;gap:10px;padding:10px 16px;border-left:3px solid transparent;cursor:pointer;transition:background .1s}.alert-item:hover{background:var(--color-bg)}.alert-item-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.alert-item-content{flex:1;min-width:0}.alert-item-title{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-item-meta{display:flex;align-items:center;gap:8px;margin-top:2px}.alert-item-date{font-size:12px;font-weight:600}.alert-badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:12px;white-space:nowrap;flex-shrink:0}.eisenhower-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:16px;min-height:calc(100vh - 160px);position:relative;padding:30px 0 0 30px}.axis-label{position:absolute;font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.axis-y-top{left:0;top:50px;writing-mode:vertical-lr;transform:rotate(180deg)}.axis-y-bottom{left:0;bottom:50px;writing-mode:vertical-lr;transform:rotate(180deg)}.axis-x-left{top:8px;left:100px}.axis-x-right{top:8px;right:100px}.quadrant{border-radius:var(--radius);padding:16px;border:1px solid var(--color-border)}.quadrant-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.quadrant-dot{width:10px;height:10px;border-radius:50%}.quadrant-header h3{font-size:15px;font-weight:600}.quadrant-count{background:var(--color-surface);font-size:12px;font-weight:600;padding:1px 8px;border-radius:12px;color:var(--color-text-secondary)}.quadrant-subtitle{font-size:12px;color:var(--color-text-secondary);margin-bottom:12px}.quadrant-tasks{display:flex;flex-direction:column;gap:6px}.quadrant-task{padding:10px;cursor:pointer;transition:box-shadow .15s}.quadrant-task{cursor:grab;touch-action:none}.quadrant-task:hover{box-shadow:var(--shadow-lg)}.quadrant-task.dragging{cursor:grabbing}.quadrant.quadrant-over{border-color:var(--color-primary)}.drop-hint{color:var(--color-primary)!important;font-weight:500;border:2px dashed var(--color-primary);border-radius:var(--radius)}.quadrant-empty{font-size:13px;color:var(--color-text-secondary);text-align:center;padding:20px}.import-btn{cursor:pointer}.import-dialog{max-width:700px;width:100%}.import-summary{background:var(--color-bg);padding:12px 16px;border-radius:var(--radius);margin-bottom:16px;font-size:14px}.import-preview{max-height:350px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:16px}.preview-table{width:100%;border-collapse:collapse;font-size:13px}.preview-table th{position:sticky;top:0;background:var(--color-bg);text-align:left;padding:8px 12px;font-weight:600;border-bottom:1px solid var(--color-border)}.preview-table td{padding:6px 12px;border-bottom:1px solid var(--color-border);vertical-align:top}.preview-table tr:last-child td{border-bottom:none}.cell-task{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-date{white-space:nowrap;color:var(--color-text-secondary)}.preview-project{display:inline-block;background:#6366f11a;color:var(--color-primary);padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;white-space:nowrap}.preview-status{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;white-space:nowrap}.status-done{background:#f0fdf4;color:var(--color-success)}.status-in_progress{background:#fffbeb;color:#a16207}.status-todo{background:#eff6ff;color:var(--color-info)}.status-backlog{background:var(--color-bg);color:var(--color-text-secondary)}.import-progress{background:#eff6ff;color:var(--color-info);padding:8px 12px;border-radius:var(--radius);font-size:13px;margin-bottom:12px}.gantt-dialog{max-width:960px;width:95vw;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;padding:0}.gantt-dialog .dialog-header{padding:16px 20px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.gantt-header-actions{display:flex;align-items:center;gap:6px}.gantt-title{display:flex;align-items:center;gap:10px}.gantt-dot{width:12px;height:12px;border-radius:50%}.gantt-empty{padding:60px 20px;text-align:center;color:var(--color-text-secondary)}.gantt-container{flex:1;overflow-y:auto;padding:0}.gantt-legend{display:flex;gap:16px;padding:12px 20px;border-bottom:1px solid var(--color-border);background:var(--color-bg)}.gantt-legend-item{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--color-text-secondary);font-weight:500}.gantt-legend-dot{width:10px;height:10px;border-radius:3px}.gantt-timeline{display:flex;border-bottom:1px solid var(--color-border);background:var(--color-bg);position:sticky;top:0;z-index:2}.gantt-labels-header{width:200px;min-width:200px;padding:8px 16px;font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-right:1px solid var(--color-border)}.gantt-bars-header{flex:1;position:relative;height:32px}.gantt-week-marker{position:absolute;top:0;font-size:10px;color:var(--color-text-secondary);font-weight:500;padding:8px 0 0 4px;white-space:nowrap}.gantt-today-marker{position:absolute;top:0;bottom:0;z-index:3}.gantt-today-label{position:absolute;top:4px;left:-12px;font-size:10px;font-weight:700;color:var(--color-danger);background:#fef2f2;padding:1px 6px;border-radius:4px}.gantt-body{min-height:100px}.gantt-row{display:flex;border-bottom:1px solid var(--color-border);min-height:40px}.gantt-row.even{background:#00000004}.gantt-row:hover{background:#6366f108}.gantt-label{width:200px;min-width:200px;padding:8px 12px;display:flex;flex-direction:column;justify-content:center;gap:1px;border-right:1px solid var(--color-border)}.gantt-task-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-task-date{font-size:10px;color:var(--color-text-secondary)}.gantt-bar-area{flex:1;position:relative;display:flex;align-items:center;padding:4px 0}.gantt-grid-line{position:absolute;top:0;bottom:0;width:1px;background:var(--color-border);opacity:.5}.gantt-today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--color-danger);z-index:1;opacity:.6}.gantt-bar{position:absolute;height:24px;border-radius:6px;display:flex;align-items:center;overflow:hidden;z-index:1;box-shadow:0 1px 3px #0000001f;transition:transform .15s,box-shadow .15s}.gantt-bar:hover{transform:scaleY(1.15);box-shadow:0 2px 8px #0003;z-index:2}.gantt-bar.bar-done{opacity:.75}.gantt-bar.bar-overdue{animation:pulse-overdue 2s ease-in-out infinite}@keyframes pulse-overdue{0%,to{opacity:1}50%{opacity:.7}}.gantt-bar-label{padding:0 8px;font-size:10px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.3)}.gantt-summary{display:flex;justify-content:space-between;padding:10px 20px;border-top:1px solid var(--color-border);font-size:12px;color:var(--color-text-secondary);font-weight:500;background:var(--color-bg)}.projects-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.project-card{overflow:hidden}.project-color-bar{height:4px}.project-card-body{padding:16px}.project-card-body h3{font-size:16px;font-weight:600}.project-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.project-status-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 10px;border-radius:12px;white-space:nowrap;flex-shrink:0}.status-dot{width:8px;height:8px;border-radius:50%}.project-progress{margin:8px 0}.progress-bar{height:6px;background:var(--color-bg);border-radius:3px;overflow:hidden;display:flex}.progress-done{background:var(--color-success);transition:width .3s}.progress-in-progress{background:#f59e0b;transition:width .3s}.progress-text{font-size:11px;color:var(--color-text-secondary);margin-top:4px;display:block}.project-desc{font-size:13px;color:var(--color-text-secondary);margin-bottom:12px}.project-actions{display:flex;gap:8px}.btn-gantt{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none}.btn-gantt:hover{opacity:.9}.color-picker{display:flex;gap:8px}.color-swatch{width:28px;height:28px;border-radius:50%;border:3px solid transparent;transition:border-color .15s}.color-swatch.active{border-color:var(--color-text)}.empty-message{grid-column:1 / -1;text-align:center;padding:40px;color:var(--color-text-secondary)}:root{--color-primary: #6366f1;--color-primary-dark: #4f46e5;--color-bg: #f8fafc;--color-surface: #ffffff;--color-text: #1e293b;--color-text-secondary: #64748b;--color-border: #e2e8f0;--color-success: #22c55e;--color-warning: #f59e0b;--color-danger: #ef4444;--color-info: #3b82f6;--radius: 8px;--shadow: 0 1px 3px rgba(0,0,0,.1);--shadow-lg: 0 4px 12px rgba(0,0,0,.1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.5}button{cursor:pointer;border:none;font-family:inherit;font-size:inherit}input,textarea,select{font-family:inherit;font-size:inherit}a{color:var(--color-primary);text-decoration:none}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-weight:500;font-size:14px;transition:all .15s}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-bg)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{opacity:.9}.btn-sm{padding:4px 10px;font-size:13px}.input{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);transition:border-color .15s}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11a}.card{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);box-shadow:var(--shadow)}
