:root{--bg-primary: #080810;--bg-secondary: #0f0f1a;--bg-tertiary: #181824;--bg-elevated: #1e1e2e;--bg-hover: #252538;--text-primary: #eaeaf4;--text-secondary: #8080a0;--text-tertiary: #50506a;--border: #252538;--border-light: #303048;--border-glow: #404060;--accent: hsl(210, 80%, 65%);--accent-dim: hsl(210, 40%, 18%);--accent-glow: hsl(210, 80%, 65%);--amber: hsl(40, 80%, 60%);--amber-dim: hsl(40, 40%, 16%);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 22px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .4);--shadow-md: 0 4px 20px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .6);--shadow-glow: 0 0 20px rgba(100, 150, 255, .15);--font-sans: "Space Grotesk", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", monospace;--transition-fast: .12s ease;--transition-med: .22s ease;--transition-slow: .38s cubic-bezier(.16, 1, .3, 1);--transition-spring: .4s cubic-bezier(.34, 1.56, .64, 1)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-glow)}button{font-family:var(--font-sans);cursor:pointer;border:none;outline:none;background:none;color:inherit}input,textarea,select{font-family:var(--font-sans);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:9px 13px;font-size:14px;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 2px #5ea6ed1f}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%238080a0'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:30px}.app{display:flex;width:100%;height:100%}.sidebar{width:272px;min-width:272px;height:100%;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;zoom:1.2}.sidebar-header{padding:20px 16px 14px;border-bottom:1px solid var(--border)}.sidebar-logo{font-size:23px;font-weight:700;letter-spacing:-.5px;display:flex;align-items:center;gap:12px}.sidebar-logo .logo-icon{width:36px;height:36px;border-radius:var(--radius-md);background:#0c0c18;border:1px solid rgba(34,197,94,.22);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 14px #22c55e2e}.sidebar-section{padding:10px 0;border-bottom:1px solid var(--border)}.sidebar-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-tertiary);padding:0 16px 7px}.sidebar-item{display:flex;align-items:center;gap:11px;padding:9px 16px;font-size:14px;font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;border:none;background:none;width:100%;text-align:left;border-radius:0;position:relative}.sidebar-item:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-item.active{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:60%;background:var(--accent);border-radius:0 2px 2px 0}.sidebar-item .dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.sidebar-item .block-countdown{margin-left:auto;font-size:11px;font-family:var(--font-mono);font-weight:500;color:var(--text-tertiary);background:var(--bg-elevated);padding:2px 7px;border-radius:5px}.sidebar-scroll{flex:1;overflow-y:auto}.sidebar-bottom{padding:10px 12px;border-top:1px solid var(--border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;transition:all var(--transition-fast);letter-spacing:.1px}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px #5ea6ed40}.btn-primary:hover{filter:brightness(1.12);box-shadow:0 4px 16px #5ea6ed66;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.4;pointer-events:none;box-shadow:none}.btn-ghost{color:var(--text-secondary);border:1px solid transparent}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border)}.btn-sm{padding:6px 13px;font-size:13px}.btn-full{width:100%}.btn-danger{color:#e45858}.btn-danger:hover{background:#e458581a}.tag{font-size:11px;font-weight:500;padding:3px 8px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary)}.main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary)}.topbar{height:54px;display:flex;align-items:center;padding:0 22px;border-bottom:1px solid var(--border);gap:14px;flex-shrink:0;background:var(--bg-secondary);zoom:1.2}.topbar-title{font-size:17px;font-weight:700;letter-spacing:-.3px}.topbar-countdown{font-family:var(--font-mono);font-size:13px;font-weight:500;color:var(--accent);background:var(--accent-dim);padding:5px 13px;border-radius:var(--radius-sm);border:1px solid hsla(210,80%,65%,.18)}.topbar-progress{display:flex;align-items:center;gap:10px;margin-left:auto}.progress-bar{width:120px;height:6px;background:var(--bg-elevated);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:3px;background:var(--accent);transition:width var(--transition-slow);box-shadow:0 0 8px var(--accent-glow)}.progress-text{font-size:13px;font-family:var(--font-mono);font-weight:500;color:var(--text-secondary)}.view-switcher{display:flex;gap:2px;background:var(--bg-elevated);padding:3px;border-radius:var(--radius-sm);border:1px solid var(--border)}.view-switcher button{padding:5px 14px;border-radius:4px;font-size:13px;font-weight:600;color:var(--text-tertiary);transition:all var(--transition-fast)}.view-switcher button:hover{color:var(--text-secondary)}.view-switcher button.active{background:var(--bg-hover);color:var(--text-primary);box-shadow:var(--shadow-sm)}.treemap-container{flex:1;padding:14px;position:relative;overflow:hidden}.treemap-svg{width:100%;height:100%}.treemap-category-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;fill:#fff;pointer-events:none;opacity:.9}.treemap-task-label{font-size:10px;font-weight:500;fill:#fff;pointer-events:none;opacity:.8}.kanban-container{flex:1;display:flex;gap:14px;padding:14px;overflow-x:auto}.kanban-column{min-width:260px;width:260px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transition:box-shadow var(--transition-med)}.kanban-column:hover{box-shadow:var(--shadow-sm)}.kanban-column-header{padding:12px 14px;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.1px;background:var(--bg-tertiary)}.kanban-column-header .dot{width:9px;height:9px;border-radius:50%}.kanban-column-header .count{margin-left:auto;font-size:10px;color:var(--text-tertiary);font-family:var(--font-mono);background:var(--bg-elevated);padding:1px 6px;border-radius:4px}.kanban-column-body{flex:1;padding:8px;overflow-y:auto;display:flex;flex-direction:column;gap:5px}.kanban-card{padding:9px 11px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border);font-size:13px;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:flex-start;gap:8px;position:relative;overflow:visible;min-height:36px}.kanban-card:hover{background:var(--bg-hover);border-color:var(--border-light);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.kanban-card:active{transform:translateY(0)}.kanban-card.completed{opacity:.45;text-decoration:line-through}.kanban-card.locked{opacity:.65;cursor:not-allowed;background:#231f1a;border-color:#493827;border-style:dashed}.kanban-card.locked:hover{transform:none;box-shadow:none;background:#29241e}.kanban-card .check{width:15px;height:15px;border-radius:4px;border:2px solid var(--border-light);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);margin-top:1px}.kanban-card .check.done{border-color:var(--accent);background:var(--accent)}.lock-icon{font-size:12px;flex-shrink:0;opacity:.7;margin-top:1px}.kanban-card-title{flex:1;text-align:center;font-size:13px;font-weight:500;line-height:1.3;word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.kanban-card-notes{font-size:10px;color:var(--text-tertiary);max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.task-duration-badge{font-size:9px;font-family:var(--font-mono);color:var(--text-tertiary);background:var(--bg-elevated);padding:1px 5px;border-radius:3px;flex-shrink:0}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:26px;min-width:400px;max-width:480px;box-shadow:var(--shadow-lg),0 0 40px #0006;position:relative}.modal-wide{min-width:440px;max-width:520px}.modal h2{font-size:17px;font-weight:700;margin-bottom:18px;letter-spacing:-.3px}.modal-field{margin-bottom:14px}.modal-field label{display:block;font-size:11px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px}.modal-field input,.modal-field select,.modal-field textarea{width:100%}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:22px}.weight-picker{display:flex;gap:6px}.weight-btn{flex:1;height:36px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);font-size:13px;font-weight:600;font-family:var(--font-mono);transition:all var(--transition-fast)}.weight-btn:hover{border-color:var(--border-light);color:var(--text-primary);background:var(--bg-elevated)}.weight-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 2px 8px #5ea6ed4d}.calendar-picker{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;margin-top:2px}.calendar-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--bg-elevated)}.calendar-nav-btn{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--text-secondary);transition:all var(--transition-fast);line-height:1}.calendar-nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.calendar-month-label{font-size:13px;font-weight:600;color:var(--text-primary);letter-spacing:-.2px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:8px}.calendar-day-name{text-align:center;font-size:10px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;padding:4px 0}.calendar-day{aspect-ratio:1;border-radius:6px;font-size:12px;font-weight:500;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);cursor:pointer;font-family:var(--font-mono)}.calendar-day:hover{background:var(--bg-hover);color:var(--text-primary)}.calendar-day.today{color:var(--accent);font-weight:700;position:relative}.calendar-day.today:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--accent)}.calendar-day.selected{background:var(--accent);color:#fff;font-weight:700;box-shadow:0 2px 8px #5ea6ed59}.calendar-day.selected:hover{background:var(--accent);filter:brightness(1.1)}.dep-toggle{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text-secondary);width:100%;text-align:left;padding:6px 0;transition:color var(--transition-fast);text-transform:uppercase;letter-spacing:.6px}.dep-toggle:hover{color:var(--text-primary)}.dep-toggle-icon{font-size:10px;transition:transform var(--transition-fast)}.dep-badge{background:var(--accent);color:#fff;font-size:9px;font-weight:700;padding:1px 5px;border-radius:10px;margin-left:2px}.dep-list{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;background:var(--bg-tertiary);max-height:160px;overflow-y:auto;margin-top:4px}.dep-item{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:4px;cursor:pointer;transition:background var(--transition-fast);font-size:12px}.dep-item:hover{background:var(--bg-hover)}.dep-item.selected{background:var(--accent-dim)}.dep-item .check{width:14px;height:14px;border-radius:3px;border:1.5px solid var(--border-light);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.dep-item .check.done{border-color:var(--accent);background:var(--accent)}.duration-input-row{display:flex;align-items:center;gap:12px}.duration-slider{flex:1;height:4px;background:var(--bg-elevated);border:none;border-radius:2px;-webkit-appearance:none;cursor:pointer;padding:0}.duration-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 2px 6px #5ea6ed66;transition:box-shadow var(--transition-fast)}.duration-slider::-webkit-slider-thumb:hover{box-shadow:0 2px 12px #5ea6ed99}.duration-slider:focus{outline:none;box-shadow:none}.duration-value{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--accent);min-width:36px;text-align:right}.pomo-stats{display:flex;gap:8px;margin-bottom:20px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px}.pomo-stat{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px}.pomo-stat-value{font-family:var(--font-mono);font-size:22px;font-weight:600;color:var(--accent)}.pomo-stat-label{font-size:10px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.survey-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200}.survey-card{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:28px 24px;min-width:320px;max-width:360px;text-align:center;box-shadow:var(--shadow-lg)}.survey-checkmark{display:flex;justify-content:center;margin-bottom:12px}.survey-title{font-size:18px;font-weight:700;letter-spacing:-.3px;margin-bottom:4px}.survey-task-name{font-size:13px;color:var(--text-secondary);margin-bottom:16px;max-width:260px;margin-left:auto;margin-right:auto;line-height:1.4}.survey-question{font-size:12px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:10px}.survey-options{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}.survey-option{padding:8px 4px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-tertiary);font-size:12px;font-weight:600;color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;font-family:var(--font-mono)}.survey-option:hover{border-color:var(--cat-color, var(--accent));color:var(--cat-color, var(--accent));background:var(--bg-elevated);transform:translateY(-1px)}.survey-option-custom{font-family:var(--font-sans);font-size:11px;letter-spacing:.3px}.survey-custom-input{display:flex;gap:8px;margin-bottom:10px}.survey-skip{font-size:11px;color:var(--text-tertiary);padding:4px 8px;border-radius:4px;transition:color var(--transition-fast);display:block;margin:0 auto}.survey-skip:hover{color:var(--text-secondary)}.pomodoro-widget{position:fixed;bottom:20px;right:20px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:14px 18px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:14px;z-index:50;min-width:270px}.pomodoro-timer{font-family:var(--font-mono);font-size:26px;font-weight:600;letter-spacing:2px;line-height:1}.pomodoro-mode{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;font-weight:700}.pomodoro-mode.work{color:#e45858}.pomodoro-mode.break{color:#3c3}.pomodoro-mode.longBreak{color:#5ea6ed}.pomodoro-controls{display:flex;gap:4px;flex-direction:column}.pomodoro-btn{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);transition:all var(--transition-fast);font-size:12px;color:var(--text-secondary)}.pomodoro-btn:hover{background:var(--bg-hover);color:var(--text-primary);transform:scale(1.05)}.pomodoro-sessions{display:flex;gap:4px}.pomodoro-sessions .pip{width:5px;height:5px;border-radius:50%;background:var(--border-light);transition:background var(--transition-fast)}.pomodoro-sessions .pip.filled{background:var(--accent);box-shadow:0 0 4px var(--accent-glow)}.timeline-container{flex:1;padding:14px;overflow:auto}.timeline-row{display:flex;align-items:center;margin-bottom:8px}.timeline-label{width:140px;font-size:13px;font-weight:500;color:var(--text-secondary);flex-shrink:0;padding-right:12px;text-align:right}.timeline-track{flex:1;height:30px;background:var(--bg-tertiary);border-radius:var(--radius-sm);position:relative;overflow:hidden}.timeline-task-bar{position:absolute;top:4px;height:22px;border-radius:4px;display:flex;align-items:center;padding:0 8px;font-size:11px;font-weight:500;color:#fff;cursor:pointer;transition:filter var(--transition-fast);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.timeline-task-bar:hover{filter:brightness(1.18)}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--text-tertiary)}.empty-state-icon{font-size:48px;opacity:.35}.empty-state h3{font-size:17px;font-weight:600;color:var(--text-secondary)}.empty-state p{font-size:13px;max-width:380px;text-align:center;line-height:1.6}@keyframes particle-burst{0%{transform:scale(0);opacity:1}50%{opacity:1}to{transform:scale(1);opacity:0}}@keyframes tile-pop{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes gentle-breathe{0%,to{opacity:1}50%{opacity:.92}}@keyframes sparkle{0%,to{opacity:0}50%{opacity:1}}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 var(--accent-glow)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.tile-completing{animation:tile-pop .4s cubic-bezier(.16,1,.3,1)}.tile-idle{animation:gentle-breathe 4s ease-in-out infinite}.sidebar-item.drag-over{background:var(--accent-dim)!important;border:1px dashed var(--accent)!important;color:var(--text-primary)!important}.kanban-card[draggable=true]{cursor:grab}.kanban-card[draggable=true]:active{cursor:grabbing;opacity:.6}@keyframes focus-pulse{0%,to{opacity:1;box-shadow:0 0 4px currentColor}50%{opacity:.6;box-shadow:0 0 12px currentColor}}@keyframes flame-dance{0%,to{transform:rotate(-3deg) scale(1)}25%{transform:rotate(2deg) scale(1.05)}50%{transform:rotate(-2deg) scale(1.1)}75%{transform:rotate(3deg) scale(1.05)}}@media(max-width:768px){.app{flex-direction:column}.sidebar{width:100%;min-width:100%;height:auto;max-height:200px;border-right:none;border-bottom:1px solid var(--border)}.sidebar-scroll{display:flex;overflow-x:auto;gap:0}.sidebar-section{min-width:200px;border-bottom:none;border-right:1px solid var(--border)}.topbar{flex-wrap:wrap;height:auto;padding:8px 12px;gap:8px}.pomodoro-widget{bottom:8px;right:8px;left:8px;min-width:unset}.kanban-container{padding:8px;gap:8px}.kanban-column{min-width:220px;width:220px}.modal,.survey-card{min-width:unset;margin:16px;max-width:calc(100vw - 32px)}}
