:root{--bg-primary:#0a0a0a;--bg-secondary:#111111;--bg-tertiary:#1a1a1a;--bg-hover:#252525;--text-primary:#f5f5f5;--text-secondary:#a0a0a0;--text-muted:#666;--border-color:#222;--accent:#f97316;--accent-hover:#ea580c;--user-bubble:#2563eb;--user-bubble-hover:#1d4ed8}body,html{background:var(--bg-primary);color:var(--text-primary)}.process-tab-bar{overflow:hidden}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.process-tab{transition:color .2s,background .2s}.process-tab:hover{background:var(--bg-hover)}.process-view{max-width:720px;margin:0 auto;width:100%}.process-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;padding:16px;transition:border-color .2s}.process-card:hover{border-color:#333}.process-card-title{font-size:13px;font-weight:600;color:white}.sidebar-resize-handle{width:6px;cursor:col-resize;background:transparent;position:relative;flex-shrink:0;transition:background .2s;z-index:10}.sidebar-resize-handle:after{content:"";position:absolute;top:0;bottom:0;left:2px;width:2px;background:var(--border-color);transition:background .2s}.sidebar-resize-handle:active:after,.sidebar-resize-handle:hover:after{background:var(--accent)}.sidebar-resize-handle:hover{background:rgba(249,115,22,.05)}.canvas-panel{border-left:1px solid var(--border-color);will-change:width}.canvas-resize-handle{width:6px;cursor:col-resize;background:transparent;position:relative;flex-shrink:0;transition:background .2s}.canvas-resize-handle:after{content:"";position:absolute;top:0;bottom:0;left:2px;width:2px;background:var(--border-color);transition:background .2s}.canvas-resize-handle:active:after,.canvas-resize-handle:hover:after{background:var(--accent)}.canvas-resize-handle:hover{background:rgba(249,115,22,.05)}.gantt-split-handle{position:relative;z-index:10;transition:background .15s}.gantt-split-handle:hover{background:rgba(249,115,22,.08)}.gantt-split-handle:active{background:rgba(249,115,22,.12)}.canvas-input{background:transparent;border:none;outline:none}.canvas-input:focus{background:var(--bg-hover);border-radius:4px}.canvas-textarea{background:transparent;border:none;outline:none;resize:vertical}.canvas-textarea:focus{background:var(--bg-hover);border-radius:6px;padding:8px}.canvas-add-btn{font-size:10px;color:var(--accent);transition:color .2s;background:none;border:none;cursor:pointer;padding:0}.canvas-add-btn:hover{color:var(--accent-hover)}table[style*=table-layout] th{position:relative;white-space:nowrap}table[style*=table-layout] td,table[style*=table-layout] th{overflow:hidden;text-overflow:ellipsis}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message-enter{animation:fadeInUp .3s ease-out}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.typing-dot{animation:blink 1.4s infinite both}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}[class*=absolute][class*=z-50]{animation:menuFadeIn .15s ease-out}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(-6px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.export-toast{animation:toastSlideIn .2s ease-out}.drag-over-zone{background:rgba(249,115,22,.08);border-radius:8px;outline:1px dashed rgba(249,115,22,.4);outline-offset:-2px}[draggable=true]{user-select:none;-webkit-user-select:none}[draggable=true]:active{opacity:.6}