@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Space+Mono:wght@400;700&display=swap";:root{--font-display: "Space Mono", monospace;--font-body: "DM Sans", sans-serif;--color-bg: #f5f4f0;--color-surface: #ffffff;--color-surface-hover: #fafaf8;--color-border: #e8e6e0;--color-border-strong: #d4d1c8;--color-text-primary: #1a1916;--color-text-secondary: #6b6960;--color-text-muted: #9e9b91;--color-accent: #2d4a3e;--color-accent-light: #e8f0ec;--color-accent-hover: #233c32;--color-todo-badge: #e8e6e0;--color-todo-text: #4a4840;--color-inprogress-badge: #e8f0ec;--color-inprogress-text: #2d4a3e;--color-done-badge: #f5f0e8;--color-done-text: #6b5a2d;--color-high: #f0e8e8;--color-high-text: #7a2d2d;--color-medium: #f5f0e0;--color-medium-text: #7a6020;--color-low: #e8f0ec;--color-low-text: #2d5a3e;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-modal: 0 20px 60px rgba(0, 0, 0, .12), 0 8px 24px rgba(0, 0, 0, .08);--transition: .15s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text-primary);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}.app-shell{display:flex;height:100vh;overflow:hidden}.sidebar{width:220px;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;flex-shrink:0}.sidebar-logo{padding:20px 20px 16px;border-bottom:1px solid var(--color-border)}.sidebar-logo h1{font-family:var(--font-display);font-size:15px;font-weight:700;letter-spacing:-.02em;color:var(--color-text-primary)}.sidebar-logo span{color:var(--color-accent)}.sidebar-nav{padding:12px 10px;display:flex;flex-direction:column;gap:2px;flex:1}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;border:none;background:none;width:100%;text-align:left;transition:background var(--transition),color var(--transition)}.nav-item:hover{background:var(--color-bg);color:var(--color-text-primary)}.nav-item.active{background:var(--color-accent-light);color:var(--color-accent)}.nav-icon{font-size:15px;width:20px;text-align:center}.sidebar-footer{padding:12px;border-top:1px solid var(--color-border)}.user-chip{display:flex;align-items:center;gap:8px;padding:8px;border-radius:var(--radius-md)}.user-avatar{width:28px;height:28px;border-radius:var(--radius-full);background:var(--color-accent);color:#fff;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-name{font-size:12px;font-weight:500;color:var(--color-text-secondary)}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{height:56px;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0}.topbar-left{display:flex;align-items:center;gap:12px}.back-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:none;cursor:pointer;color:var(--color-text-secondary);font-size:16px;transition:all var(--transition)}.back-btn:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.topbar-title{font-weight:600;font-size:14px}.topbar-subtitle{font-size:12px;color:var(--color-text-muted)}.topbar-actions{display:flex;align-items:center;gap:8px}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-md);font-family:var(--font-body);font-size:13px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all var(--transition);white-space:nowrap}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-ghost{background:none;color:var(--color-text-secondary);border-color:var(--color-border)}.btn-ghost:hover{background:var(--color-bg);color:var(--color-text-primary)}.btn-danger{background:none;color:#9b3535;border-color:#e8d0d0}.btn-danger:hover{background:#fdf0f0}.btn-icon{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:none;color:var(--color-text-muted);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;font-size:15px;transition:all var(--transition)}.btn-icon:hover{background:var(--color-bg);color:var(--color-text-primary);border-color:var(--color-border)}.analytics-bar{display:flex;gap:12px;padding:20px 24px 0;flex-shrink:0}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px 18px;flex:1}.stat-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.stat-value{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--color-text-primary);margin-top:4px;line-height:1}.stat-card.todo .stat-value{color:var(--color-todo-text)}.stat-card.inprogress .stat-value{color:var(--color-inprogress-text)}.stat-card.done .stat-value{color:#9b7530}.progress-bar-wrap{margin-top:8px;height:3px;background:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;border-radius:var(--radius-full);background:var(--color-accent);transition:width .4s ease}.board-area{flex:1;overflow:hidden;padding:20px 24px 24px;display:flex;gap:16px}.kanban-column{flex:1;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;min-width:0}.column-header{padding:14px 16px 12px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.column-header-left{display:flex;align-items:center;gap:8px}.column-title{font-family:var(--font-display);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary)}.column-count{font-size:11px;font-weight:600;padding:2px 7px;border-radius:var(--radius-full)}.count-todo{background:var(--color-todo-badge);color:var(--color-todo-text)}.count-inprogress{background:var(--color-inprogress-badge);color:var(--color-inprogress-text)}.count-done{background:var(--color-done-badge);color:var(--color-done-text)}.column-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.column-body::-webkit-scrollbar{width:4px}.column-body::-webkit-scrollbar-track{background:transparent}.column-body::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.drop-zone{border:1.5px dashed var(--color-border);border-radius:var(--radius-lg);padding:28px 16px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:12px;text-align:center;margin-top:4px;transition:all var(--transition)}.drop-zone.drag-over{border-color:var(--color-accent);background:var(--color-accent-light);color:var(--color-accent)}.task-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:12px 14px;cursor:grab;transition:all var(--transition);position:relative}.task-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-card);background:var(--color-surface)}.task-card:active{cursor:grabbing}.task-card.dragging{opacity:.5;box-shadow:var(--shadow-modal)}.task-card.done-card{opacity:.7}.task-card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px}.task-card-actions{display:flex;gap:4px;opacity:0;transition:opacity var(--transition)}.task-card:hover .task-card-actions{opacity:1}.task-title{font-size:13px;font-weight:500;line-height:1.4;color:var(--color-text-primary);margin-bottom:6px}.task-title.completed{text-decoration:line-through;color:var(--color-text-muted)}.task-desc{font-size:12px;color:var(--color-text-secondary);line-height:1.5;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.task-meta{display:flex;align-items:center;gap:6px}.task-assignee{width:22px;height:22px;border-radius:var(--radius-full);font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--color-surface);color:#fff}.task-date{font-size:11px;color:var(--color-text-muted);display:flex;align-items:center;gap:4px}.task-date.overdue{color:#9b3535}.priority-badge{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:var(--radius-sm)}.priority-high{background:var(--color-high);color:var(--color-high-text)}.priority-medium{background:var(--color-medium);color:var(--color-medium-text)}.priority-low{background:var(--color-low);color:var(--color-low-text)}.status-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.status-dot.todo{background:#b5b0a5}.status-dot.inprogress{background:var(--color-accent)}.status-dot.done{background:#c4a34e}.modal-overlay{position:fixed;inset:0;background:#0a0a088c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-surface);border-radius:var(--radius-xl);border:1px solid var(--color-border);width:100%;max-width:480px;box-shadow:var(--shadow-modal);animation:slideUp .2s cubic-bezier(.16,1,.3,1);overflow:hidden}@keyframes slideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:20px 22px 16px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.modal-title{font-weight:600;font-size:15px}.modal-body{padding:20px 22px;display:flex;flex-direction:column;gap:16px}.modal-footer{padding:16px 22px;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:8px;background:var(--color-bg)}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:12px;font-weight:600;color:var(--color-text-secondary);letter-spacing:.03em}.form-input,.form-textarea,.form-select{font-family:var(--font-body);font-size:13px;padding:9px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);outline:none;transition:border-color var(--transition),box-shadow var(--transition);width:100%;resize:none}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-muted)}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #2d4a3e1a;background:var(--color-surface)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.projects-page{flex:1;overflow-y:auto;padding:24px}.projects-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.projects-title{font-size:20px;font-weight:600}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:20px;cursor:pointer;transition:all var(--transition);position:relative;overflow:hidden}.project-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-card);transform:translateY(-1px)}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px}.project-card.accent-green:before{background:var(--color-accent)}.project-card.accent-amber:before{background:#c4a34e}.project-card.accent-blue:before{background:#3d6ea8}.project-card.accent-rose:before{background:#a84d4d}.project-status-pill{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:var(--radius-full);display:inline-flex;align-items:center;gap:5px;margin-bottom:12px}.status-active{background:var(--color-inprogress-badge);color:var(--color-inprogress-text)}.status-planning{background:#e8eef5;color:#3d5a7a}.status-paused{background:#f5f0e0;color:#7a6020}.project-name{font-size:15px;font-weight:600;margin-bottom:6px}.project-desc{font-size:12px;color:var(--color-text-secondary);line-height:1.5;margin-bottom:14px}.project-meta{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--color-text-muted)}.project-task-count{display:flex;align-items:center;gap:4px;font-weight:500}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--color-text-muted);text-align:center;gap:8px}.empty-icon{font-size:28px;margin-bottom:4px}.empty-text{font-size:12px}.toast-container{position:fixed;bottom:24px;right:24px;z-index:2000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:var(--color-text-primary);color:var(--color-bg);padding:10px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px;animation:toastIn .2s ease;min-width:200px}@keyframes toastIn{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.toast-success{background:var(--color-accent)}.toast-error{background:#7a2d2d}.confirm-modal{max-width:360px}.confirm-msg{font-size:13px;color:var(--color-text-secondary);line-height:1.6}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}@media(max-width:1024px){.sidebar{width:180px}.analytics-bar{flex-wrap:wrap}.stat-card{min-width:150px}.board-area{overflow-x:auto}.kanban-column{min-width:260px}}@media(max-width:768px){.app-shell{flex-direction:column;height:auto}.sidebar{width:100%;flex-direction:row;border-right:none;border-bottom:1px solid var(--color-border);overflow-x:auto}.sidebar-logo{display:none}.sidebar-nav{flex-direction:row;gap:6px;padding:8px}.nav-item{flex-direction:column;font-size:11px;padding:6px 8px}.sidebar-footer{display:none}.topbar{padding:0 12px}.analytics-bar{flex-direction:column;padding:16px 12px 0}.board-area{padding:12px;overflow-x:auto}.kanban-column{min-width:280px}}@media(max-width:480px){.topbar-title{font-size:13px}.btn{padding:6px 10px;font-size:12px}.task-title{font-size:12px}.task-desc{font-size:11px}.projects-grid{grid-template-columns:1fr}}
