.create-view{display:flex;flex-direction:column;height:100vh;background:linear-gradient(135deg,#f8fafc,#e2e8f0,#f1f5f9);color:#1e293b;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.create-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:#fffc;border-bottom:1px solid rgba(0,0,0,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.create-header-left{display:flex;align-items:center;gap:1.5rem}.create-back-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#00000008;border:1px solid rgba(0,0,0,.1);border-radius:8px;color:#64748b;font-size:.875rem;cursor:pointer;transition:all .2s ease}.create-back-btn:hover{background:#0000000f;color:#334155}.create-title-section{display:flex;align-items:baseline;gap:1rem}.create-title{font-size:1.25rem;font-weight:600;color:#0f172a;margin:0}.create-project-name{font-size:.875rem;color:#94a3b8;padding:.25rem .75rem;background:#00000008;border-radius:4px}.create-header-right{display:flex;align-items:center;gap:1rem}.api-key-input{position:relative}.api-key-field{padding:.5rem 1rem;width:200px;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:8px;color:#1e293b;font-size:.875rem;transition:all .2s ease}.api-key-field::placeholder{color:#94a3b8}.api-key-field:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.create-new-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:8px;color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.create-new-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.export-buttons{display:flex;gap:.5rem}.create-export-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:8px;color:#64748b;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease}.create-export-btn:hover{background:#f8fafc;color:#334155;border-color:#6366f14d}.create-main{flex:1;overflow:hidden;padding:1rem}.create-panels{display:grid;grid-template-columns:1fr 1fr;gap:1rem;height:100%}.chat-panel{display:flex;flex-direction:column;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.chat-message{max-width:85%;padding:.875rem 1rem;border-radius:12px;font-size:.9375rem;line-height:1.6}.chat-message.user{align-self:flex-end;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-bottom-right-radius:4px}.chat-message.assistant{align-self:flex-start;background:#f8fafc;border:1px solid rgba(0,0,0,.06);color:#334155;border-bottom-left-radius:4px}.chat-message.assistant pre{background:#1e293b;color:#e2e8f0;padding:.75rem;border-radius:6px;overflow-x:auto;margin:.5rem 0}.chat-message.assistant code{font-family:JetBrains Mono,Fira Code,monospace;font-size:.8125rem}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;color:#94a3b8}.chat-empty-icon{width:64px;height:64px;margin-bottom:1rem;opacity:.5}.chat-empty h3{font-size:1.125rem;font-weight:500;color:#64748b;margin:0 0 .5rem}.chat-empty p{font-size:.875rem;margin:0}.chat-input-container{padding:1rem;border-top:1px solid rgba(0,0,0,.06);background:#f8fafc}.chat-input-wrapper{display:flex;gap:.75rem;align-items:flex-end}.chat-textarea{flex:1;padding:.75rem 1rem;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:10px;color:#1e293b;font-size:.9375rem;font-family:inherit;resize:none;min-height:44px;max-height:200px;line-height:1.5;transition:border-color .2s ease}.chat-textarea::placeholder{color:#94a3b8}.chat-textarea:focus{outline:none;border-color:#6366f1}.chat-send-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:10px;color:#fff;cursor:pointer;transition:all .2s ease}.chat-send-btn:hover:not(:disabled){transform:scale(1.05)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.canvas-panel{display:flex;flex-direction:column;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.canvas-tabs{display:flex;gap:.25rem;padding:.75rem 1rem;background:#f8fafc;border-bottom:1px solid rgba(0,0,0,.06)}.canvas-tab{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;border:none;border-radius:6px;color:#64748b;font-size:.875rem;cursor:pointer;transition:all .2s ease}.canvas-tab:hover{background:#00000008;color:#334155}.canvas-tab.active{background:#6366f11a;color:#6366f1}.canvas-content{flex:1;overflow:auto;padding:1rem}.mermaid-container{display:flex;flex-direction:column;height:100%}.mermaid-scroll{flex:1;overflow:auto;background:#f8fafc;border-radius:8px;padding:1rem}.mermaid-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#94a3b8}.mermaid-empty-icon{width:48px;height:48px;margin-bottom:.75rem;opacity:.5}.mermaid-render{display:inline-block;min-width:100%;text-align:center}.mermaid-render svg{max-width:none;height:auto}.mermaid-error{padding:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:.875rem;overflow:auto}.debug-panel{display:flex;flex-direction:column;height:100%}.debug-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem;color:#94a3b8}.debug-content{flex:1;overflow:auto;padding:.5rem}.debug-entry{margin-bottom:1rem;background:#f8fafc;border:1px solid rgba(0,0,0,.06);border-radius:8px;overflow:hidden}.debug-entry-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#fff;font-size:.75rem;font-weight:500;color:#64748b;cursor:pointer}.debug-entry-header .timestamp{color:#94a3b8}.debug-entry-body{padding:1rem;border-top:1px solid rgba(0,0,0,.04)}.debug-entry-body pre{margin:0;font-size:.75rem;font-family:JetBrains Mono,monospace;white-space:pre-wrap;word-break:break-all;color:#334155;background:#fff;padding:.75rem;border-radius:6px;max-height:300px;overflow:auto}.debug-entry.error .debug-entry-header{color:#b91c1c}.debug-entry.error .debug-entry-body pre{color:#b91c1c;background:#fef2f2}.plan-container{display:flex;flex-direction:column;gap:1rem}.plan-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem;color:#94a3b8}.phase-card{background:#f8fafc;border:1px solid rgba(0,0,0,.06);border-radius:10px;overflow:hidden}.phase-header{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#fff;cursor:pointer}.phase-number{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-radius:6px;font-size:.75rem;font-weight:600}.phase-title{flex:1;font-weight:500;color:#1e293b}.phase-content{padding:1rem;border-top:1px solid rgba(0,0,0,.04)}.phase-description{margin:0 0 1rem;color:#64748b;font-size:.875rem;line-height:1.6}.phase-tasks{display:flex;flex-direction:column;gap:.5rem}.phase-task{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem;background:#fff;border-radius:6px;font-size:.875rem;color:#64748b}.phase-task:before{content:"•";color:#6366f1}.mock-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.mock-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem;color:#94a3b8}.mock-item{background:#f8fafc;border:1px solid rgba(0,0,0,.06);border-radius:10px;overflow:hidden;cursor:pointer;transition:all .2s ease}.mock-item:hover{border-color:#6366f14d;transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.mock-image{width:100%;aspect-ratio:16/10;object-fit:cover;background:#e2e8f0}.mock-wireframe{padding:1rem;font-size:.75rem;color:#64748b;font-family:JetBrains Mono,monospace;white-space:pre-wrap;background:#fff;min-height:120px}.mock-prompt{padding:.75rem;font-size:.75rem;color:#94a3b8;border-top:1px solid rgba(0,0,0,.04)}.loading-dots{display:flex;gap:4px;padding:.75rem 1rem}.loading-dots span{width:8px;height:8px;background:#6366f1;border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@media (max-width: 768px){.create-panels{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.create-header{flex-direction:column;gap:1rem;align-items:stretch}.create-header-left,.create-header-right{justify-content:space-between}.api-key-field{width:150px}}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #f9fafb;--bg-secondary: #ffffff;--bg-tertiary: #f3f4f6;--accent-primary: #10b981;--accent-secondary: #059669;--accent-gradient: linear-gradient(135deg, #10b981 0%, #059669 100%);--text-primary: #111827;--text-secondary: #6b7280;--border-color: #e5e7eb;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .06), 0 2px 4px -1px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1)}html{height:100%;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;height:100%;overflow:hidden;width:100%}#root{height:100%}.app-container{height:100%;max-height:100vh;display:flex;flex-direction:column;overflow:hidden}.header{background:linear-gradient(135deg,#fffffff2,#f9fafbfa);border-bottom:1px solid var(--border-color);padding:1rem 2rem;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 2px 8px #0000000a,0 1px 2px #00000005}.header-content{max-width:1600px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:2rem}.header-left{display:flex;align-items:center;gap:.75rem}.app-title{font-size:1.75rem;font-weight:700;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;letter-spacing:-.02em;line-height:1.2}.app-subtitle{font-size:.875rem;color:var(--text-secondary);margin:0}.header-actions{display:flex;align-items:center;gap:.75rem}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg-tertiary);border:none;border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition-base);font-size:16px;font-weight:600}.icon-btn:hover{background:var(--accent-primary);color:#fff;transform:translateY(-1px)}.branding{display:flex;align-items:center;gap:12px}.logo-icon{width:32px;height:32px;stroke:var(--accent-primary);stroke-width:2}.header-actions{display:flex;align-items:center;gap:1rem}.view-toggle{display:flex;gap:.5rem;background:var(--bg-tertiary);padding:4px;border-radius:var(--radius-md)}.toggle-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;border:none;color:var(--text-secondary);font-size:.875rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base)}.toggle-btn svg{width:18px;height:18px;stroke-width:2}.toggle-btn:hover{color:var(--text-primary);background:#10b9811a}.toggle-btn.active{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-md)}#timelineViewBtn.active{background:#10b981;color:#fff}#workstreamViewBtn.active{background:#8b5cf6;color:#fff}#notesViewBtn.active{background:#3b82f6;color:#fff}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition-base);font-size:16px;font-weight:600}.icon-btn:hover{background:var(--bg-tertiary);border-color:var(--text-secondary)}.icon-btn svg{width:20px;height:20px}.user-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;border:2px solid var(--accent-primary)}.icon-btn.auth-login{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.icon-btn.auth-login:hover{background:var(--accent-secondary);border-color:var(--accent-secondary);color:#fff}.icon-btn:has(.user-avatar){border:none;background:transparent}.icon-btn:has(.user-avatar):hover{background:transparent;border:none}.user-menu-container{position:relative;height:36px}.dropdown-menu{display:none;position:absolute;top:100%;right:0;margin-top:.5rem;min-width:220px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:1000;padding:.5rem;animation:fadeIn var(--transition-fast)}.dropdown-menu:before{content:"";position:absolute;top:-1rem;left:0;width:100%;height:1rem;background:transparent}.user-menu-container.logged-in:hover .dropdown-menu,.dropdown-menu.active{display:block}.dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;border:none;background:transparent;color:var(--text-primary);font-size:.875rem;font-weight:500;text-align:left;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-base)}.dropdown-item:hover{background:var(--bg-tertiary);color:var(--accent-primary)}.dropdown-item svg{width:16px;height:16px;color:var(--text-secondary);transition:color var(--transition-base)}.dropdown-item:hover svg{color:var(--accent-primary)}.dropdown-divider{height:1px;background:var(--border-color);margin:.5rem 0}.mobile-board-switcher{display:none}.dropdown-section-label{padding:.5rem 1rem .25rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);opacity:.7}.dropdown-item.board-option{padding-left:1rem}.dropdown-item.board-option.active{color:var(--accent-primary);background:var(--bg-tertiary)}.dropdown-item.board-option svg{width:16px;height:16px}.dropdown-item.text-danger{color:var(--error)}.dropdown-item.text-danger:hover{background:#fef2f2;color:var(--error)}.dropdown-item.text-danger svg{color:var(--error)}.btn-primary{padding:.5rem 1rem;background:var(--accent-primary);color:#fff;border:1px solid var(--accent-primary);border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:center;gap:.375rem}.btn-primary:hover{background:var(--accent-secondary);border-color:var(--accent-secondary)}.btn-primary:active{transform:scale(.98)}.btn-primary span{font-size:1.125rem;line-height:1}.btn-icon-primary{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--accent-primary);color:#fff;border:1px solid var(--accent-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base)}.btn-icon-primary:hover{background:var(--accent-secondary);border-color:var(--accent-secondary)}.btn-icon-primary svg{width:20px;height:20px;stroke-width:2.5}.btn-icon-primary{font-size:20px;line-height:1;font-weight:300}.board-container{flex:1;overflow:hidden;padding:0;display:grid;grid-template-rows:1fr;min-height:0}.board-view{display:none;gap:1.5rem;max-width:1600px;margin:0 auto;width:100%;padding:1.5rem;box-sizing:border-box;min-height:0}.board-view.active{display:flex;overflow-x:auto;overflow-y:hidden;height:100%;max-height:100%}#notesView.notes-view{padding:0!important}#workstreamView.board-view{max-width:none;justify-content:flex-start;padding-bottom:1rem}.column{flex:1;min-width:300px;background:var(--bg-secondary);border-radius:var(--radius-lg);display:flex;flex-direction:column;min-height:0;overflow:hidden;border:1px solid var(--border-color);transition:all var(--transition-base)}.column:hover{border-color:#d1d5db;box-shadow:var(--shadow-md)}.column-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.column-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);text-transform:capitalize}.task-count{background:var(--bg-tertiary);color:var(--text-secondary);font-size:.75rem;font-weight:600;padding:.25rem .625rem;border-radius:12px;min-width:24px;text-align:center}.column-content{flex:1;min-height:0;padding:1rem;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem}.column-content::-webkit-scrollbar{width:6px}.column-content::-webkit-scrollbar-track{background:transparent}.column-content::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:3px}.column-content::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.task-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem;cursor:grab;transition:all var(--transition-base);position:relative;max-width:100%;box-sizing:border-box}.task-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent-gradient);opacity:0;transition:opacity var(--transition-base);border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.task-card:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 8px 20px -4px #10b98133}.task-card:hover:before{opacity:1}.task-card.dragging{opacity:.5;cursor:grabbing;transform:rotate(5deg)}.task-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.board-switcher-container{position:relative;margin-left:1rem}.board-pill{display:inline-flex;align-items:center;gap:8px;background:var(--bg-tertiary);border:none;padding:6px 12px;border-radius:20px;font-size:.85rem;transition:all var(--transition-base);cursor:pointer;color:var(--text-secondary)}.board-pill:hover{background:#e5e7eb;color:var(--text-primary)}.board-pill svg{width:16px;height:16px;opacity:.6}.board-label{font-weight:500;color:var(--text-secondary)}.board-value{font-weight:600;color:var(--text-primary)}.board-dropdown{top:calc(100% + 8px);left:0;right:auto;width:220px;max-height:400px;overflow-y:auto}.task-title{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem;line-height:1.4;word-break:break-word;overflow-wrap:break-word}.task-description{font-size:.8125rem;color:var(--text-secondary);line-height:1.5;margin-bottom:.75rem}.task-meta{display:flex;gap:.5rem;flex-wrap:wrap}.task-tag{font-size:.6875rem;font-weight:600;padding:.25rem .75rem;text-transform:capitalize;letter-spacing:.5px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.task-tag[class*=timeline-]{border-radius:9999px}.task-tag[class*=tag-accent-]{border-radius:4px}.task-tag.timeline-today{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.task-tag.timeline-tomorrow{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.task-tag.timeline-thisweek{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.task-tag.timeline-later{background:#f3f4f6;color:#4b5563;border:1px solid #e5e7eb}.tag-accent-0{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.tag-accent-1{background:#f5f3ff;color:#7c3aed;border:1px solid #ddd6fe}.tag-accent-2{background:#ecfeff;color:#0e7490;border:1px solid #a5f3fc}.tag-accent-3{background:#fff1f2;color:#be123c;border:1px solid #fecdd3}.tag-accent-4{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.tag-accent-5{background:#fdf4ff;color:#a21caf;border:1px solid #f5d0fe}.column-content.drag-over{background:var(--bg-tertiary);border:2px dashed #9ca3af;border-radius:var(--radius-md)}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;align-items:center;padding-top:0;justify-content:center}.modal.active{display:flex}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeIn var(--transition-base)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{position:relative;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:90%;max-width:600px;box-shadow:0 20px 50px #0000001a,var(--shadow-xl);animation:slideUp var(--transition-slow);overflow:hidden}.modal.spotlight-mode .modal-content{max-width:700px;background:transparent;border:none;box-shadow:none}.modal.spotlight-mode .modal-header,.modal.spotlight-mode .form-actions,.modal.spotlight-mode .task-details{display:none}.modal.spotlight-mode #taskForm{padding:0}.modal.spotlight-mode .spotlight-input-group{position:relative;display:flex;align-items:center}.modal.spotlight-mode #taskTitle{font-size:1.5rem;padding:1.25rem 3.5rem 1.25rem 1.5rem;border:1px solid var(--border-color);border-radius:12px;background:var(--bg-secondary);box-shadow:none;width:100%;text-align:left}.spotlight-submit{display:none}.modal.spotlight-mode .spotlight-submit{display:flex;position:absolute;right:1rem;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;border-radius:50%;transition:all var(--transition-base)}.modal.spotlight-mode .spotlight-submit:hover{background:var(--bg-tertiary);color:var(--accent-primary)}.modal.spotlight-mode #taskTitle::placeholder{color:var(--text-secondary);opacity:.5}.modal:not(.spotlight-mode) .spotlight-input-group #taskTitle{font-size:1.25rem;font-weight:600;margin-bottom:1rem;background:transparent;border:none;padding:0;border-radius:0}.modal:not(.spotlight-mode) .spotlight-input-group{border-bottom:1px solid var(--border-color);margin-bottom:1.5rem}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:1.25rem;font-weight:600}.modal-close{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;border-radius:var(--radius-sm);transition:all var(--transition-base)}.modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-close svg{width:20px;height:20px;stroke-width:2}.task-form{padding:1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.form-group input,.form-group textarea,.form-group select{width:100%;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem;color:var(--text-primary);font-size:.9375rem;font-family:inherit;transition:all var(--transition-base)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #10b98126}.form-group textarea{resize:vertical;min-height:80px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all var(--transition-base)}.btn-primary{background:var(--accent-gradient);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-primary)}.empty-state{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:1000;background:var(--bg-primary);flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--text-secondary)}.empty-state.active{display:flex}.empty-state-content{max-width:400px;padding:2rem;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-color)}.empty-state h1,.empty-state h2{color:var(--text-primary);margin-bottom:1rem}.empty-state p{margin-bottom:.5rem}.toast{position:fixed;bottom:2rem;right:2rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem 1.5rem;box-shadow:var(--shadow-xl);opacity:0;transform:translateY(100px);transition:all var(--transition-slow);z-index:2000}.toast.show{opacity:1;transform:translateY(0)}.toast-message{color:var(--text-primary);font-size:.9375rem;font-weight:500}.column-content:empty:after{content:"Drop tasks here";display:block;text-align:center;color:var(--text-secondary);font-size:.875rem;padding:2rem;opacity:.5}@media (max-width: 1024px){html,body,.app-container{overflow-y:auto;overflow-x:hidden}.board-view{flex-direction:column;overflow-x:visible}.board-view.active{height:auto;max-height:none;overflow-y:visible}.board-container{padding:1rem;overflow-y:visible;-webkit-overflow-scrolling:touch}.column{width:100%;flex:none;min-height:auto;max-height:none;overflow:visible;margin-bottom:2rem}.column:last-child{margin-bottom:0}.column-content{overflow-y:visible}.task-card{width:100%}.header-content{flex-direction:column;gap:1rem}.form-row{grid-template-columns:1fr}.mobile-board-switcher{display:block}.workstream-separator{width:100%;height:2px;margin:1.5rem 0;min-width:100%}}@media (max-width: 640px){.header{padding:1rem}.app-title{font-size:1.25rem}.toggle-btn span,.add-task-btn span{display:none}.board-container{padding:1rem}.board-switcher-container{display:none}}.task-card.selected{border-color:var(--accent-primary);box-shadow:0 0 0 3px #10b98126;background:var(--bg-secondary)}.shortcuts-list{display:flex;flex-direction:column;gap:24px;padding:1.5rem;max-height:60vh;overflow-y:auto}.shortcut-section h3{font-size:14px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.shortcut-hint{font-size:13px;color:var(--text-secondary);margin-bottom:12px;font-style:italic}.shortcut-item{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border-color)}.shortcut-item:last-child{border-bottom:none}.shortcut-item kbd{display:inline-block;padding:4px 8px;font-family:Segoe UI,system-ui,sans-serif;font-size:12px;font-weight:600;color:var(--text-primary);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 2px 0 var(--border-color);margin:0 2px}.shortcut-item .shortcut-mouse{display:inline-block;padding:4px 12px;font-size:12px;font-weight:500;color:var(--accent-primary);background:#10b9811a;border-radius:4px}.shortcut-item>span:last-child{flex:1;text-align:right;color:var(--text-primary);font-size:14px}.close-btn{background:transparent;border:none;color:var(--text-secondary);font-size:24px;cursor:pointer;padding:.5rem;border-radius:var(--radius-sm);transition:all var(--transition-base);line-height:1}.close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.task-title-group{display:flex;align-items:flex-start;gap:.75rem}.checkbox-wrapper{display:flex;align-items:center;padding-top:.125rem}.task-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:1.25rem;height:1.25rem;border:1.5px solid var(--text-secondary);border-radius:50%;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:grid;place-content:center;margin:0;background-color:transparent}.task-checkbox:checked{background-color:var(--accent-primary);border-color:var(--accent-primary)}.task-checkbox:hover{border-color:var(--accent-primary);background-color:#10b9810d}.task-checkbox:checked:hover{background-color:var(--accent-primary)}.task-card.completed{opacity:.8;background-color:var(--bg-tertiary);border-color:transparent;box-shadow:none;padding:.5rem .75rem;cursor:default;transform:none!important}.task-card.completed:hover{box-shadow:none;border-color:transparent;transform:none!important;opacity:.8}.task-card.completed:before{display:none}.task-card.completed .task-title{text-decoration:line-through;color:var(--text-secondary);margin-bottom:0}.task-card.completed .task-description,.task-card.completed .task-meta,.task-card.completed .task-header:after{display:none}.task-card.completed .task-header{margin-bottom:0}.completed-footer{padding:1rem 1rem 0;margin-bottom:1rem;border-top:1px dashed var(--border-color);margin-top:auto}.completed-toggle-btn{background:none;border:none;color:var(--text-secondary);font-size:.825rem;width:100%;margin-bottom:.75rem;cursor:pointer;font-family:inherit;font-weight:500;opacity:.8;transition:opacity .2s}.completed-toggle-btn:hover{opacity:1;color:var(--text-primary)}.completed-list{display:flex;flex-direction:column;gap:.75rem;max-height:400px;overflow-y:auto;padding:.5rem;margin:0 -.5rem;width:calc(100% + 1rem)}.ghost-column{background:transparent;border:2px dashed var(--border-color);border-radius:12px;display:flex;align-items:center;justify-content:center;min-width:34px!important;width:34px!important;max-width:34px!important;flex:0 0 34px!important;opacity:.5;transition:all .2s;writing-mode:vertical-rl;text-orientation:sideways}.ghost-column:hover{opacity:1;border-color:var(--text-secondary);background:var(--bg-secondary)}.ghost-btn{background:none;border:none;color:var(--text-secondary);font-weight:600;cursor:pointer;font-size:.9rem;padding:0;width:100%;height:100%;white-space:nowrap;letter-spacing:1px}.archived-column{opacity:.7;background:var(--bg-secondary);border-style:dashed}.workstream-separator{width:2px;background:var(--border-color);margin:0 1rem;border-radius:1px;min-width:2px;flex-shrink:0}.task-checkbox:checked:before{content:"";width:.65rem;height:.65rem;background-color:#fff;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%)}.task-checkbox:hover{border-color:var(--accent-primary)}.notes-view{display:none;flex-direction:row;align-items:stretch;height:100%;min-height:0;background:var(--bg-primary);--accent-color: #3b82f6;padding:0!important;margin:0}.notes-view.active{display:flex!important}.notes-sidebar{width:300px;min-width:300px;flex-shrink:0;background:var(--bg-secondary);border-right:1px solid var(--border-color);border-left:1px solid var(--border-color);padding:2rem 1.25rem;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column}.notes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.notes-header h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.btn-primary,#newNoteBtn{width:100%;margin-bottom:1rem;padding:.75rem;background:var(--accent-color, #10b981);color:#fff;border:none;border-radius:var(--radius-md, .5rem);font-weight:500;cursor:pointer;transition:all var(--transition-base, .2s)}.btn-primary:hover,#newNoteBtn:hover{background:var(--accent-hover, #059669);transform:translateY(-1px)}.notes-list{display:flex;flex-direction:column;gap:.5rem;padding-left:4px}.note-item{padding:.875rem 1rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base);margin-bottom:.5rem}.note-item:hover{border-color:var(--accent-color);box-shadow:0 2px 4px #0000000d;transform:translateY(-1px)}.note-item.active{border-left:1px solid var(--border-color);background:#eff6ff;box-shadow:inset 4px 0 0 var(--accent-color)}.note-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2px}.note-item-title{font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;flex:1;margin-right:.5rem}.note-options{position:relative}.note-options-btn{background:transparent;border:none;color:var(--text-tertiary);padding:0 4px;cursor:pointer;font-size:1.25rem;line-height:1;border-radius:4px;opacity:0;transition:all .2s}.note-item:hover .note-options-btn{opacity:1}.note-options-btn:hover{color:var(--text-primary);background-color:var(--bg-hover, #f3f4f6)}.note-options-menu{display:none;position:absolute;right:0;top:100%;background:#fff;border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;z-index:10;min-width:120px;padding:4px}.note-options-menu.show{display:block}.delete-note-btn{display:block;width:100%;text-align:left;padding:6px 12px;background:transparent;border:none;color:#ef4444;font-size:.875rem;cursor:pointer;border-radius:4px}.delete-note-btn:hover{background-color:#fef2f2}.note-item-preview{display:none}.note-delete-btn{background:transparent;border:none;color:var(--text-tertiary);font-size:1.25rem;line-height:1;cursor:pointer;padding:2px 6px;border-radius:4px;opacity:0;transition:all .2s}.note-item:hover .note-delete-btn{opacity:1}.note-delete-btn:hover{color:var(--error);background-color:#fef2f2}.note-item-meta{font-size:.75rem;color:var(--text-tertiary);margin-top:.375rem}.notes-content{flex:1;padding:2rem 3rem;overflow-y:auto;display:flex;flex-direction:column}.notes-content.empty{display:flex;align-items:center;justify-content:center}.notes-empty-state{text-align:center;color:var(--text-secondary)}.notes-empty-state h3{font-size:1.25rem;margin-bottom:.5rem;color:var(--text-primary)}.editor-header{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem}.title-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%}.note-editor{display:flex;flex-direction:column;gap:1rem;max-width:800px;width:100%;flex:1}.note-editor[style*="display: flex"]{display:flex!important}#noteTitle{font-size:2rem;font-weight:700;border:none;border-bottom:1px solid var(--border-color, #e5e7eb);padding:0;margin-bottom:0;outline:none;background:transparent;color:var(--text-primary);transition:border-color .2s;flex:1}.editor-tags{margin-bottom:1.5rem}#noteTitle:focus{outline:none;border-bottom-color:var(--accent-color, #10b981)}#noteTitle::placeholder{color:var(--text-tertiary, #9ca3af);font-weight:400}#noteContent{flex:1;min-height:400px;border:1px solid var(--border-color, #e5e7eb);border-radius:.5rem;padding:1.25rem;font-size:1rem;line-height:1.7;resize:none;outline:none;font-family:inherit;color:var(--text-primary);background:var(--bg-primary);transition:border-color .2s,box-shadow .2s}#noteContent:focus{outline:none;border-color:var(--accent-color, #10b981);box-shadow:0 0 0 3px #10b9811a}#noteContent::placeholder{color:var(--text-tertiary, #9ca3af)}.save-indicator{position:fixed;bottom:2rem;right:2rem;padding:.5rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;color:var(--text-secondary);opacity:0;transition:opacity var(--transition-base)}.save-indicator.visible{opacity:1}.save-indicator.saving{color:var(--accent-color)}.save-indicator.saved{color:#10b981}.note-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}.editor-tags{margin:0;width:100%}.note-tag{font-size:13px;background-color:var(--primary-color-light, #e0f2fe);color:var(--primary-color-dark, #0369a1);padding:3px 8px;border-radius:12px;font-weight:500}@media (max-width: 768px){.notes-view{flex-direction:column;overflow-x:hidden}.notes-sidebar{width:100%;height:100%;border-right:none;display:block;padding-bottom:80px}.notes-content{display:none;width:100%;height:100%;padding:1rem;background:var(--bg-primary);position:relative;overflow-x:hidden}#noteTitle{font-size:1.5rem;width:100%;min-width:0}.title-row{flex-wrap:nowrap;gap:.5rem}.notes-view.mobile-editing .notes-sidebar{display:none}.notes-view.mobile-editing .notes-content{display:flex}.mobile-back-btn{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:1rem;background:transparent;border:none;color:var(--text-secondary);font-weight:500;cursor:pointer;padding:0;font-size:1rem}.mobile-back-btn svg{width:20px;height:20px}}@media (min-width: 769px){.mobile-back-btn{display:none}}.title-row{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem}.title-row #noteTitle{flex:1}.markdown-toolbar{display:flex;gap:.5rem;padding:.5rem;background:var(--bg-secondary, #f9fafb);border:1px solid var(--border-color, #e5e7eb);border-radius:.375rem;margin-bottom:.75rem}.toolbar-btn{padding:.5rem .75rem;background:#fff;border:1px solid var(--border-color, #e5e7eb);border-radius:.375rem;cursor:pointer;transition:all .2s;font-size:.875rem;color:var(--text-secondary)}.toolbar-btn:hover{background:var(--bg-secondary);border-color:var(--accent-color, #3b82f6);color:var(--text-primary)}.toolbar-btn.active{background:var(--accent-color, #3b82f6);color:#fff;border-color:var(--accent-color, #3b82f6)}.toolbar-divider{width:1px;background:var(--border-color, #e5e7eb);margin:0 .25rem}.edit-area,.preview-area{display:flex;flex-direction:column;gap:1rem;flex:1}.markdown-preview{flex:1;padding:1.25rem;border:1px solid var(--border-color, #e5e7eb);border-radius:.5rem;background:var(--bg-primary);overflow-y:auto;line-height:1.7}.markdown-preview h1{font-size:2rem;margin:1.5rem 0 1rem}.markdown-preview h2{font-size:1.5rem;margin:1.25rem 0 .75rem}.markdown-preview h3{font-size:1.25rem;margin:1rem 0 .5rem}.markdown-preview p{margin:.75rem 0}.markdown-preview ul,.markdown-preview ol{margin:.75rem 0;padding-left:2rem}.markdown-preview li{margin:.25rem 0}.markdown-preview code{background:#f3f4f6;padding:.125rem .375rem;border-radius:.25rem;font-family:Courier New,monospace;font-size:.875em}.markdown-preview pre{background:#f3f4f6;padding:1rem;border-radius:.5rem;overflow-x:auto;margin:1rem 0}.markdown-preview pre code{background:none;padding:0}.markdown-preview blockquote{border-left:4px solid var(--accent-color, #10b981);padding-left:1rem;margin:1rem 0;color:var(--text-secondary)}.markdown-preview a{color:var(--accent-color, #10b981);text-decoration:none}.markdown-preview a:hover{text-decoration:underline}.preview-title{font-size:2rem;font-weight:700;margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color, #e5e7eb)}.sync-status-icon{position:relative;cursor:pointer}.sync-status-icon:hover:not(:disabled){background:var(--bg-tertiary);transform:scale(1.05)}.sync-status-icon:disabled{cursor:not-allowed;opacity:.6}.sync-status-icon.cooldown{opacity:.5}.sync-status-icon.synced.cooldown{color:var(--text-secondary);border-color:var(--border-color)}.sync-status-icon.synced{color:#059669;border-color:#d1fae5}.sync-status-icon.syncing{color:#2563eb;border-color:#dbeafe}.sync-status-icon.syncing svg{animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sync-status-icon.offline{color:#dc2626;border-color:#fee2e2}.sync-status-icon.error{color:#d97706;border-color:#fef3c7}.sync-tooltip{position:absolute;bottom:-38px;left:50%;transform:translate(-50%);background:#1a1a1a;color:#fff;padding:6px 12px;border-radius:6px;font-size:13px;white-space:nowrap;z-index:1000;pointer-events:none;box-shadow:0 4px 6px #0003}.sync-tooltip:before{content:"";position:absolute;top:-4px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:4px solid #1a1a1a}.install-prompt{position:fixed;bottom:1rem;left:1rem;right:1rem;z-index:9999;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.install-prompt-content{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem;box-shadow:var(--shadow-xl);display:flex;align-items:center;gap:1rem}.install-prompt-text{flex:1}.install-prompt-text strong{display:block;margin-bottom:.25rem;color:var(--text-primary);font-size:.9375rem}.install-prompt-text p{color:var(--text-secondary);font-size:.8125rem;margin:0;line-height:1.5}.install-prompt-actions{display:flex;gap:.5rem;flex-shrink:0}.install-prompt-install{background:var(--accent-gradient);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:transform .15s,box-shadow .15s}.install-prompt-install:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.install-prompt-install:active{transform:translateY(0)}.install-prompt-dismiss{background:transparent;border:none;color:var(--text-secondary);padding:.5rem;font-size:1.25rem;cursor:pointer;line-height:1;transition:color .15s}.install-prompt-dismiss:hover{color:var(--text-primary)}@media (max-width: 640px){.install-prompt{left:.5rem;right:.5rem}.install-prompt-content{flex-direction:column;align-items:flex-start}.install-prompt-actions{width:100%;justify-content:flex-end}}.year-view-container{display:flex;flex-direction:column;height:100%;padding:1.5rem;overflow-y:auto;position:relative}.year-view-main{padding:0}.year-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-shrink:0}.year-title-container{display:flex;align-items:center;gap:.75rem}.year-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);cursor:pointer;transition:color var(--transition-fast)}.year-title:hover{color:var(--accent-primary)}.year-nav-btn,.config-btn{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.5rem;cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.year-nav-btn:hover,.config-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--text-secondary)}.today-btn{background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-sm);padding:.25rem .75rem;font-size:.75rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.today-btn:hover{background:var(--accent-secondary)}.year-loading,.year-error{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;margin-bottom:1rem;border-radius:var(--radius-md)}.year-loading{background:var(--bg-tertiary);color:var(--text-secondary)}.year-error{background:#fef2f2;color:var(--error)}.spinner{width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.year-calendar-grid{display:flex;flex-direction:column;flex:1;gap:2px}.year-week-row{display:grid;grid-template-columns:50px repeat(7,1fr);gap:2px;min-height:80px}.month-label-cell{display:flex;align-items:flex-start;justify-content:flex-end;padding:.5rem .5rem 0 0}.month-label{font-size:.75rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.year-day-cell{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.25rem;cursor:pointer;transition:all var(--transition-fast);display:flex;flex-direction:column;min-height:70px;overflow:hidden}.year-day-cell:hover{background:var(--bg-tertiary);border-color:var(--text-secondary)}.year-day-cell.today{border-color:var(--accent-primary);border-width:2px}.year-day-cell.today .day-num{background:var(--accent-primary);color:#fff;border-radius:var(--radius-sm);padding:0 4px}.year-day-cell.other-year{opacity:.4}.year-day-cell.past{background:var(--bg-tertiary)}.year-day-cell.past .day-name,.year-day-cell.past .day-num{color:var(--text-secondary)}.day-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem;flex-shrink:0}.day-name{font-size:.6rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase}.day-num{font-size:.75rem;font-weight:600;color:var(--text-primary)}.day-num.first-of-month{font-weight:700;color:var(--accent-primary)}.day-events{display:flex;flex-direction:column;gap:2px;flex:1;overflow:hidden}.event-bar{height:16px;border-radius:3px;padding:0 4px;display:flex;align-items:center;overflow:hidden;cursor:pointer;transition:filter var(--transition-fast)}.event-bar:hover{filter:brightness(1.1)}.event-bar .event-title{font-size:.65rem;font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 1px rgba(0,0,0,.2)}.event-bar.start{border-top-left-radius:3px;border-bottom-left-radius:3px;margin-left:0}.event-bar.end{border-top-right-radius:3px;border-bottom-right-radius:3px;margin-right:0}.event-bar:not(.start){border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-2px}.event-bar:not(.end){border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-2px}.more-events{font-size:.6rem;color:var(--text-secondary);font-weight:500;padding:0 4px}.create-event-btn{display:flex;align-items:center;gap:.5rem;background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-sm);padding:.5rem 1rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.create-event-btn:hover{background:var(--accent-secondary)}.year-nav{display:flex;align-items:center;gap:.75rem}@media (max-width: 768px){.year-week-row{grid-template-columns:40px repeat(7,1fr)}.month-label{font-size:.65rem}.year-day-cell{min-height:60px}.day-name{font-size:.5rem}.event-bar{height:14px}.event-bar .event-title{font-size:.6rem}}@media (max-width: 480px){.year-week-row{grid-template-columns:32px repeat(7,1fr)}.year-day-cell{min-height:50px;padding:.125rem}.day-name{display:none}.day-num{font-size:.65rem}.event-bar{height:12px}.event-bar .event-title{font-size:.55rem}}.day-detail-panel{position:fixed;top:0;right:0;width:400px;max-width:100%;height:100vh;background:var(--bg-secondary);border-left:1px solid var(--border-color);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;z-index:200;animation:slideInRight .2s ease-out}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color)}.panel-header h3{font-size:1rem;font-weight:600;color:var(--text-primary)}.panel-close{background:transparent;border:none;cursor:pointer;color:var(--text-secondary);padding:.25rem;display:flex;transition:color var(--transition-fast)}.panel-close:hover{color:var(--text-primary)}.panel-body{flex:1;overflow-y:auto;padding:1rem 1.5rem}.no-events{text-align:center;padding:2rem;color:var(--text-secondary)}.event-list{list-style:none}.event-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;margin-bottom:.5rem;background:var(--bg-tertiary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.event-item:hover{background:var(--border-color)}.event-time{font-size:.75rem;font-weight:500;color:var(--text-secondary);min-width:60px}.event-info{flex:1;min-width:0}.event-title{font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:.125rem}.event-description{font-size:.75rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-chevron{color:var(--text-secondary);flex-shrink:0}.panel-footer{padding:1rem 1.5rem;border-top:1px solid var(--border-color)}.add-event-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem}.event-modal{max-width:480px}.event-modal .modal-body{padding:1.5rem}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.375rem}.form-input{width:100%;padding:.625rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;color:var(--text-primary);background:var(--bg-secondary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #10b9811a}.form-textarea{resize:vertical;min-height:80px}.form-row{display:flex;gap:1rem}.form-row .form-group{flex:1}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.form-hint{font-size:.75rem;color:var(--text-secondary);margin-top:.5rem}.modal-footer{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-top:1px solid var(--border-color);gap:.75rem}.modal-footer-right{display:flex;gap:.75rem;margin-left:auto}.btn-danger{background:var(--error);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-danger:hover{background:#dc2626}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.config-modal{max-width:440px}.config-modal .modal-body{padding:1.5rem}.config-modal .modal-footer{padding:1rem 1.5rem;justify-content:flex-end}@media (max-width: 480px){.day-detail-panel{width:100%}}
