:root{font-family:Pretendard,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;--c-bg: #ffffff;--c-surface: #f8fafc;--c-surface-alt: #f1f5f9;--c-surface-highlight: #e2e8f0;--c-border: #e2e8f0;--c-border-light: #cbd5e1;--c-grid-line: #e2e8f0;--c-text: #1e293b;--c-text-sec: #475569;--c-text-muted: #94a3b8;--c-primary: #2563eb;--c-primary-hover: #1d4ed8;--c-primary-soft: rgba(37, 99, 235, .1);--c-header-bg: #ffffff;--c-success: #10b981;--c-warning: #f59e0b;--c-danger: #ef4444;color-scheme:light;color:var(--c-text);background-color:var(--c-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--c-bg);color:var(--c-text)}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;color:var(--c-text)}p{margin:0;color:var(--c-text-sec)}ul{list-style:none;padding:0;margin:0}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--c-bg)}.app-header{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--c-surface);border-bottom:1px solid var(--c-border);flex-shrink:0;z-index:10}.brand{display:flex;align-items:center;gap:12px}.brand-mark{font-weight:700;font-size:18px;letter-spacing:-.02em;color:var(--c-primary);display:flex;align-items:center;gap:8px}.brand-caption{color:var(--c-text-muted);font-size:12px;padding-left:8px;border-left:1px solid var(--c-border)}.header-actions{display:flex;align-items:center;gap:12px}.app-body{display:flex;flex:1;overflow:hidden}.app-sidebar{width:240px;background:var(--c-surface);border-right:1px solid var(--c-border);display:flex;flex-direction:column;padding:16px 12px;gap:4px;flex-shrink:0}.nav-link{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;color:var(--c-text-sec);font-size:14px;font-weight:500;transition:all .2s ease}.nav-link:hover{background:var(--c-surface-alt);color:var(--c-text)}.nav-link.active{background:var(--c-primary-soft);color:var(--c-primary);font-weight:600;border:1px solid rgba(14,165,233,.2)}.app-content{flex:1;padding:24px;overflow-y:auto;background:var(--c-bg)}.page{display:flex;flex-direction:column;gap:20px;max-width:1600px;margin:0 auto;height:100%}.page-header{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--c-border)}.eyebrow{text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600;color:var(--c-text-muted);margin-bottom:4px}.muted{color:var(--c-text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;border:1px solid var(--c-border);background:#fff;color:var(--c-text);line-height:1;box-shadow:0 1px 2px #0000000d}.btn:hover{background:var(--c-surface);border-color:var(--c-border-light);box-shadow:0 2px 4px #00000014}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.primary{background:var(--c-primary);color:#fff}.btn.primary:hover{background:var(--c-primary-hover)}.btn.ghost{background:transparent;color:var(--c-text-sec);border-color:transparent;box-shadow:none}.btn.ghost:hover{background:var(--c-surface);color:var(--c-text);border-color:var(--c-border);box-shadow:0 1px 2px #0000000d}.btn.ghost.danger{color:var(--c-danger);background:#ef44441a}.btn.ghost.danger:hover{background:#ef444433}.btn.block{width:100%}.btn.sm{padding:6px 12px;font-size:12px}.card,.panel{background:#fff;border:1px solid var(--c-border);border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000000a,0 1px 2px #00000008}.panel-header,.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}.panel.tall{min-height:320px;display:flex;flex-direction:column}.table-wrap{width:100%;overflow:auto;border:1px solid var(--c-border);border-radius:6px;background:#fff;box-shadow:0 1px 2px #00000008}.table{width:100%;border-collapse:collapse;font-size:13px;color:var(--c-text);table-layout:fixed}.table th,.table td{border-right:1px solid var(--c-grid-line);border-bottom:1px solid var(--c-grid-line);padding:8px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table th:last-child,.table td:last-child{border-right:none}.table thead th{background:var(--c-surface);color:var(--c-text);font-weight:600;text-align:left;-webkit-user-select:none;user-select:none;position:sticky;top:0;z-index:2;height:36px;border-bottom:2px solid var(--c-border)}.table tbody tr{background:#fff;transition:background .1s}.table.excel-table tbody tr:nth-child(2n){background:#f8fafc}.table tbody tr:hover{background:#f1f5f9!important}.table tbody tr.selected{background:var(--c-primary-soft)!important;outline:1px solid var(--c-primary)}.table-header{display:flex;align-items:center;justify-content:space-between;width:100%}.table-title{font-weight:600;color:var(--c-text)}.table-actions{display:flex;gap:8px;align-items:center}.column-resizer{position:absolute;right:0;top:0;bottom:0;width:4px;cursor:col-resize;background:transparent}.column-resizer:hover{background:var(--c-primary)}.sort-indicator{font-size:10px;color:var(--c-primary);margin-left:4px}.form{display:flex;flex-direction:column;gap:16px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.form-grid.compact{gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--c-text-sec)}input,select,textarea{background:#fff;border:1px solid var(--c-border);color:var(--c-text);padding:8px 12px;border-radius:6px;font-family:inherit;font-size:13px;transition:all .15s;box-shadow:0 1px 2px #00000005}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-soft),0 1px 2px #0000000d}.form-section{border:1px solid var(--c-border);background:var(--c-surface);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px}.form-section h4{font-size:14px;margin-bottom:8px;color:var(--c-text)}.wbs-panel{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;flex:1;min-height:0}.wbs-detail{border:1px solid var(--c-border);border-radius:8px;padding:16px;background:#fff;display:flex;flex-direction:column;gap:16px;overflow-y:auto;box-shadow:0 1px 2px #00000008}.tree{overflow-y:auto;padding-right:8px}.tree ul{padding-left:0}.node-row{display:grid;grid-template-columns:80px 1fr;gap:12px;padding:6px 8px;border-radius:4px;cursor:pointer;align-items:center;border-bottom:1px solid transparent}.node-row:hover{background:#f1f5f9}.node-row.selected{background:var(--c-primary-soft);border:1px solid var(--c-primary);border-radius:6px}.node-title{font-weight:600;font-size:13px;color:var(--c-text-sec);display:flex;align-items:center;gap:4px}.node-meta{display:flex;gap:12px;font-size:12px;color:var(--c-text-muted);margin-top:2px}.node-children{padding-left:20px;margin-top:4px;border-left:1px dashed var(--c-border)}.tree-toggle{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--c-border);background:#fff;color:var(--c-text-sec);border-radius:4px;font-size:12px;padding:0;cursor:pointer;box-shadow:0 1px 2px #00000008}.tree-toggle:hover{border-color:var(--c-primary);color:var(--c-primary);background:var(--c-surface)}.placeholder{border:2px dashed var(--c-border);border-radius:8px;padding:32px;text-align:center;color:var(--c-text-muted);background:var(--c-surface)}.gantt-wrap{flex:1;min-height:0;overflow:hidden;border:1px solid var(--c-border);border-radius:8px;background:#fff;box-shadow:0 1px 2px #00000008}.date-row{display:flex;align-items:center;gap:8px}.assignee-field{display:flex;flex-direction:column;gap:8px}.dialog-backdrop{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.dialog{background:#fff;border:1px solid var(--c-border);border-radius:12px;padding:24px;width:min(600px,90vw);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;gap:20px;max-height:90vh;overflow-y:auto}.dialog.large{width:min(1200px,95vw);height:90vh}.dialog.graph-editor-modal{width:min(1520px,98vw);height:min(94vh,980px);max-height:94vh}.dialog-header{display:flex;align-items:center;justify-content:space-between}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.graph-editor{display:grid;grid-template-columns:1fr 300px;gap:16px;height:100%;min-height:0;min-width:0}.graph-pane{background:#fff;border:1px solid var(--c-border);border-radius:8px;overflow:hidden;position:relative;box-shadow:0 1px 2px #00000008;min-width:0}.graph-sidepanel{background:#fff;border:1px solid var(--c-border);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;box-shadow:0 1px 2px #00000008;min-width:320px}@media(max-width:1280px){.dialog.graph-editor-modal{width:min(1320px,98vw)}}@media(max-width:960px){.dialog.graph-editor-modal{width:min(100vw,100vw);height:100vh;max-height:100vh;border-radius:0;padding:16px}.graph-editor{grid-template-columns:1fr}.graph-sidepanel{min-width:0;max-height:40vh}}.wbs-node{padding:8px 12px;border:2px solid var(--c-primary);background:#fff;border-radius:6px;color:var(--c-text);font-weight:600;font-size:12px;min-width:120px;text-align:center;box-shadow:0 2px 4px #00000014,0 1px 2px #0000000a;display:flex;align-items:center;justify-content:center}.pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border)}.pill.muted{background:#f8fafc;color:var(--c-text-muted);border:1px solid var(--c-border-light)}.pill.subtle{background:#fff;border:1px solid var(--c-border)}.user-chip{padding:5px 12px;border-radius:100px;background:#f8fafc;border:1px solid var(--c-border);font-size:13px;font-weight:500;box-shadow:0 1px 2px #00000008}.grid{display:grid;gap:16px}.grid.two-columns{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid.four-columns{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{display:flex;flex-direction:column;gap:4px}.stat-card h2{font-size:28px;font-weight:700;color:var(--c-primary)}.toast{position:fixed;bottom:24px;right:24px;background:#fff;border:1px solid var(--c-border);color:var(--c-text);padding:12px 16px;border-radius:8px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;z-index:200;font-weight:500;display:flex;align-items:center;gap:10px}.toast.error{border-color:var(--c-danger);color:var(--c-danger)}.legend{display:flex;gap:8px;flex-wrap:wrap}.template-list{display:flex;flex-direction:column;gap:12px}.template-card{display:grid;grid-template-columns:1fr auto;gap:16px;padding:16px;border:1px solid var(--c-border);background:#fff;border-radius:8px;cursor:pointer;transition:all .15s;box-shadow:0 1px 2px #00000008}.template-card:hover{border-color:var(--c-primary);box-shadow:0 2px 4px #00000014,0 0 0 1px var(--c-primary-soft)}.template-card.selected{border-color:var(--c-primary);background:var(--c-primary-soft);box-shadow:0 2px 4px #00000014}.template-card__main{display:flex;flex-direction:column;gap:4px}.template-card__title{font-weight:600;font-size:15px;display:flex;align-items:center;gap:8px}.template-card__meta{display:flex;gap:12px;font-size:12px;color:var(--c-text-muted)}.dropdown{position:relative;display:inline-block}.dropdown-menu{position:absolute;top:calc(100% + 4px);background:#fff;border:1px solid var(--c-border);border-radius:8px;padding:4px;min-width:160px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;z-index:50}.dropdown-menu.right{right:0}.dropdown-menu.left{left:0}.dropdown-item{padding:8px 12px;cursor:pointer;border-radius:6px;transition:background .15s;font-size:14px}.dropdown-item:hover{background:var(--c-surface)}.dropdown-item.danger{color:var(--c-danger)}.dropdown-item.danger:hover{background:#ef44441a}.user-chip.clickable{cursor:pointer;transition:background .2s}.user-chip.clickable:hover{background:#e2e8f0;box-shadow:0 2px 4px #0000000f}.selected-users-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.user-tag{display:flex;align-items:center;gap:6px;padding:5px 10px;background-color:#f8fafc;border:1px solid var(--c-border);border-radius:6px;font-size:.875rem;box-shadow:0 1px 2px #00000008}.user-tag .muted{color:var(--c-text-muted)}.user-tag .remove-btn{padding:0 4px;min-width:auto;line-height:1;font-size:1.2rem;color:var(--c-text-muted);cursor:pointer;background:none;border:none;transition:color .2s}.user-tag .remove-btn:hover{color:var(--c-danger)}.dropdown-list{position:absolute;z-index:100;margin-top:4px;max-height:200px;overflow-y:auto;background:#fff;border:1px solid var(--c-border);border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;list-style:none;padding:4px;width:100%}.dropdown-list li{padding:8px 12px;cursor:pointer;transition:background .15s;border-radius:6px}.dropdown-list li:hover{background-color:var(--c-surface)}.dropdown-list li .muted{color:var(--c-text-muted);font-size:.875rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.workflow-state-badge{display:inline-flex;align-items:center;justify-content:center;font-family:inherit;border-radius:4px;font-weight:500;white-space:nowrap;position:relative;cursor:default;transition:transform .15s ease,box-shadow .15s ease;-webkit-user-select:none;user-select:none;outline:none}.workflow-state-badge:hover{transform:translateY(-1px);box-shadow:0 2px 8px #2563eb26}.workflow-state-badge:focus{transform:translateY(-1px);box-shadow:0 0 0 3px #2563eb33}.workflow-state-badge:focus:not(:focus-visible){box-shadow:none}.workflow-state-badge--small{font-size:12px;padding:2px 6px;border-radius:3px}.workflow-state-badge--small .workflow-state-badge__text{line-height:1.4}.workflow-state-badge--medium{font-size:14px;padding:4px 8px;border-radius:4px}.workflow-state-badge--medium .workflow-state-badge__text{line-height:1.5}.workflow-state-badge--large{font-size:16px;padding:6px 12px;border-radius:5px}.workflow-state-badge--large .workflow-state-badge__text{line-height:1.6}.workflow-state-badge__text{display:block;font-family:inherit;font-weight:500}.workflow-state-badge__tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);padding:12px;background:#fff;color:#1e293b;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 16px #0000001a;min-width:220px;max-width:320px;z-index:1000;font-size:13px;line-height:1.5;animation:tooltipFadeIn .2s ease}@media(max-width:768px){.workflow-state-badge__tooltip{left:auto;right:0;transform:none;min-width:200px;max-width:280px}}.workflow-state-badge .tooltip-arrow{position:absolute;top:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #ffffff;filter:drop-shadow(0 2px 2px rgba(0,0,0,.05))}@media(max-width:768px){.workflow-state-badge .tooltip-arrow{left:auto;right:12px;transform:none}}.workflow-state-badge .tooltip-section{margin-bottom:12px}.workflow-state-badge .tooltip-section:last-child{margin-bottom:0}.workflow-state-badge .tooltip-label{display:block;margin-bottom:6px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#94a3b8;font-weight:600}.workflow-state-badge .tooltip-value{font-size:14px;font-weight:500;color:#1e293b;margin-bottom:2px}.workflow-state-badge .tooltip-meta{font-size:12px;color:#475569}.workflow-state-badge .state-flag{font-size:11px;color:#94a3b8;font-weight:400}.workflow-state-badge .transitions-list{margin:0;padding:0;list-style:none}.workflow-state-badge .transition-item{padding:6px 0;border-bottom:1px solid #e2e8f0;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.workflow-state-badge .transition-item:last-child{border-bottom:none;padding-bottom:0}.workflow-state-badge .transition-item:first-child{padding-top:0}.workflow-state-badge .transition-name{font-weight:500;color:#1e293b;flex-shrink:0}.workflow-state-badge .transition-arrow{color:#94a3b8;flex-shrink:0}.workflow-state-badge .transition-to-state{font-weight:500;color:#1e293b;flex-shrink:0}.workflow-state-badge .transition-roles{width:100%;font-size:11px;color:#475569;margin-top:2px;padding-left:16px}.workflow-state-badge .tooltip-loading{display:flex;align-items:center;gap:8px;color:#475569}.workflow-state-badge .loading-spinner{display:inline-block;width:14px;height:14px;border:2px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin .6s linear infinite}.workflow-state-badge .tooltip-error{color:#ef4444;font-size:12px}.workflow-state-badge .tooltip-empty{color:#94a3b8;font-style:italic}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%) translateY(-4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(max-width:768px){.workflow-state-badge--small{font-size:11px;padding:2px 5px}.workflow-state-badge--medium{font-size:13px;padding:3px 7px}.workflow-state-badge--large{font-size:15px;padding:5px 10px}.workflow-state-badge__tooltip{font-size:12px;padding:10px}.workflow-state-badge .tooltip-value{font-size:13px}}@media(prefers-color-scheme:dark){.workflow-state-badge__tooltip{background:#1e293b;color:#f8fafc;border-color:#334155;box-shadow:0 4px 16px #0000004d}.workflow-state-badge .tooltip-arrow{border-top-color:#1e293b}.workflow-state-badge .tooltip-label{color:#cbd5e1}.workflow-state-badge .tooltip-value{color:#f8fafc}.workflow-state-badge .tooltip-meta{color:#94a3b8}.workflow-state-badge .transition-item{border-bottom-color:#334155}.workflow-state-badge .loading-spinner{border-color:#334155;border-top-color:#2563eb}}@media(prefers-contrast:high){.workflow-state-badge{border:2px solid currentColor}.workflow-state-badge:focus{outline:3px solid;outline-offset:2px}.workflow-state-badge__tooltip{border:2px solid #1e293b}}@media(prefers-reduced-motion:reduce){.workflow-state-badge{transition:none}.workflow-state-badge:hover,.workflow-state-badge:focus{transform:none}.workflow-state-badge__tooltip{animation:none}.workflow-state-badge .loading-spinner{animation:none;border-top-color:#e2e8f0}}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.add-node-modal-backdrop{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.add-node-modal{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:600px;width:90%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.add-node-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e2e8f0}.add-node-header h2{margin:0;font-size:20px;font-weight:600;color:#1e293b}.add-node-body{padding:24px;overflow-y:auto;flex:1}.field-group{margin-bottom:20px}.field-label{display:block;font-size:14px;font-weight:500;color:#475569;margin-bottom:8px}.field-label.required:after{content:" *";color:#ef4444}.field-input,.field-textarea{width:100%;padding:10px 12px;font-size:14px;border:1px solid #e2e8f0;border-radius:6px;transition:border-color .2s;font-family:inherit;box-sizing:border-box}.field-input:focus,.field-textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.field-textarea{resize:vertical;min-height:80px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.add-node-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e2e8f0;background-color:#f8fafc}.btn-primary,.btn-secondary,.btn-close{padding:10px 20px;font-size:14px;font-weight:500;border-radius:6px;border:none;cursor:pointer;transition:all .2s}.btn-primary{background-color:#2563eb;color:#fff}.btn-primary:hover:not(:disabled){background-color:#1d4ed8}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background-color:#fff;color:#475569;border:1px solid #e2e8f0}.btn-secondary:hover:not(:disabled){background-color:#f8fafc}.btn-close{background:transparent;color:#64748b;font-size:24px;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px}.btn-close:hover{background-color:#f1f5f9}.error-banner{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:6px;margin:16px 24px;display:flex;justify-content:space-between;align-items:center;font-size:14px}.error-banner button{background:none;border:none;color:#dc2626;font-size:20px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.wbs-modal-backdrop{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:backdropFadeIn .25s ease;padding:20px}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}.wbs-modal{background:#fff;border-radius:16px;width:100%;max-width:1400px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040;animation:modalSlideUp .3s cubic-bezier(.16,1,.3,1);overflow:hidden}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.project-breadcrumb{display:flex;align-items:center;gap:8px;padding:12px 36px;background:#f1f5f9;border-bottom:1px solid #e2e8f0;font-size:13px;color:#64748b}.project-breadcrumb svg{flex-shrink:0;color:#94a3b8}.project-name-link{font-weight:600;color:#475569}.wbs-modal-header{display:flex;align-items:center;justify-content:space-between;padding:28px 36px;border-bottom:2px solid #e2e8f0;background:linear-gradient(to bottom,#fff,#f8fafc);gap:24px}.header-left{display:flex;align-items:center;gap:16px;flex:1;min-width:0}.node-type-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;flex-shrink:0;box-shadow:0 2px 4px #00000014}.badge-stage{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.badge-step{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff}.badge-event{background:linear-gradient(135deg,#a855f7,#9333ea);color:#fff}.badge-activity{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.node-name{margin:0;font-size:28px;font-weight:700;color:#0f172a;letter-spacing:-.5px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-name-input{flex:1;font-size:28px;font-weight:700;color:#0f172a;letter-spacing:-.5px;padding:8px 12px;border:2px solid #2563eb;border-radius:8px;background:#fff;outline:none;transition:all .2s ease}.node-name-input:focus{border-color:#1d4ed8;box-shadow:0 0 0 4px #2563eb1a}.header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.btn-primary{padding:10px 20px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #2563eb4d}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #2563eb66}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:10px 20px;background:#fff;color:#475569;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1;color:#1e293b}.btn-close{width:40px;height:40px;border:none;background:#f1f5f9;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:24px;color:#64748b;transition:all .2s ease;line-height:1}.btn-close:hover{background:#ef4444;color:#fff;transform:rotate(90deg)}.error-banner{display:flex;align-items:center;gap:12px;padding:16px 36px;background:linear-gradient(135deg,#fef2f2,#fee2e2);border-bottom:2px solid #fecaca;color:#991b1b;font-size:14px;font-weight:500;animation:slideDown .3s ease}@keyframes slideDown{0%{max-height:0;opacity:0}to{max-height:100px;opacity:1}}.error-icon{font-size:18px}.error-close{margin-left:auto;width:24px;height:24px;border:none;background:#b91c1c1a;border-radius:50%;cursor:pointer;color:#991b1b;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.error-close:hover{background:#b91c1c33}.wbs-modal-body{display:grid;grid-template-columns:1fr 380px;gap:0;overflow:hidden;flex:1;min-height:0}.modal-column{overflow-y:auto;padding:32px 36px}.modal-column-main{background:#fff;border-right:2px solid #e2e8f0}.modal-column-sidebar{background:#f8fafc}.modal-section{margin-bottom:40px}.modal-section:last-child{margin-bottom:0}.section-title{margin:0 0 20px;font-size:16px;font-weight:700;color:#0f172a;text-transform:uppercase;letter-spacing:1px;padding-bottom:12px;border-bottom:3px solid #2563eb;display:inline-block}.section-header-with-action{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-content{display:flex;flex-direction:column;gap:20px}.field-group{display:flex;flex-direction:column;gap:8px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field-label{font-size:12px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.6px}.field-value{font-size:15px;color:#1e293b;line-height:1.6;margin:0}.field-value-mono{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-weight:600;color:#2563eb;font-size:16px}.text-muted{color:#94a3b8;font-style:italic}.text-warning{color:#f59e0b;font-weight:600}.field-input,.field-textarea,.field-select{padding:12px 16px;border:2px solid #e2e8f0;border-radius:8px;font-size:15px;color:#1e293b;background:#fff;transition:all .2s ease;outline:none;font-family:inherit}.field-input:focus,.field-textarea:focus,.field-select:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1a}.field-textarea{resize:vertical;min-height:100px;line-height:1.6}.field-select{cursor:pointer;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 fill='%2364748b' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:40px}.status-badge{display:inline-flex;align-items:center;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;background:#2563eb1a;box-shadow:inset 0 0 0 2px currentColor}.progress-container{display:flex;align-items:center;gap:16px}.progress-bar-bg{flex:1;height:12px;background:#e2e8f0;border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 3px #0000001a}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#2563eb,#3b82f6);border-radius:999px;transition:width .3s cubic-bezier(.16,1,.3,1);box-shadow:0 0 8px #2563eb80}.progress-value{font-size:16px;font-weight:700;color:#2563eb;min-width:50px;text-align:right;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace}.progress-input{width:80px;padding:6px 12px;border:2px solid #e2e8f0;border-radius:6px;font-size:16px;font-weight:700;color:#2563eb;text-align:right;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;outline:none;transition:all .2s ease}.progress-input:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1a}.workflow-status-banner{padding:16px 20px;border-radius:10px;margin-bottom:16px;border:2px solid;box-shadow:0 2px 8px #00000014;animation:slideInDown .3s ease}@keyframes slideInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.workflow-active{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#6ee7b7}.workflow-inactive{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fbbf24}.workflow-status-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.workflow-status-icon{font-size:20px;line-height:1}.workflow-status-text{font-size:16px;font-weight:700;letter-spacing:-.3px}.workflow-active .workflow-status-text{color:#065f46}.workflow-inactive .workflow-status-text{color:#92400e}.workflow-status-message{margin:0 0 0 30px;font-size:14px;color:#78350f;line-height:1.5}.workflow-name-display{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f8fafc;border-radius:8px;border:2px solid #e2e8f0;font-size:15px;font-weight:600;color:#334155}.workflow-icon{font-size:18px;line-height:1}.workflow-name{color:#0f172a;font-weight:600}.workflow-loading,.workflow-default{color:#94a3b8;font-size:14px;font-weight:500}.workflow-info-note{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:8px;border:2px solid #93c5fd;margin-top:12px}.info-icon{font-size:18px;line-height:1;flex-shrink:0}.info-content{flex:1}.info-content strong{display:block;font-size:14px;font-weight:700;color:#1e40af;margin-bottom:4px}.info-content p{margin:0;font-size:13px;color:#1e40af;line-height:1.5;opacity:.9}.workflow-state-container{display:flex;align-items:center;gap:12px;padding:16px;background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px}.workflow-current-state{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px}.workflow-transitions{display:flex;flex-direction:column;gap:8px}.workflow-transition-button{position:relative;text-align:left;font-family:inherit}.workflow-transition-button:hover:not(:disabled){transform:translate(4px)}.workflow-transition-button:active:not(:disabled){transform:translate(2px)}.workflow-transition-button:disabled{cursor:not-allowed;opacity:.6}.spinner{width:20px;height:20px;border:3px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.btn-upload{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px #2563eb4d}.btn-upload:hover{transform:translateY(-1px);box-shadow:0 4px 10px #2563eb66}.btn-upload-primary{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #2563eb4d}.btn-upload-primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #2563eb66}.artifacts-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px;gap:12px;color:#64748b}.artifacts-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px;text-align:center;background:#fff;border:2px dashed #cbd5e1;border-radius:12px}.empty-icon{font-size:48px;margin-bottom:12px;opacity:.5}.artifacts-empty p{color:#64748b;margin:0 0 20px;font-size:15px}.artifacts-list{display:flex;flex-direction:column;gap:12px}.artifact-item{background:#fff;border:2px solid #e2e8f0;border-radius:12px;overflow:hidden;transition:all .2s ease;box-shadow:0 2px 4px #0000000d}.artifact-item:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.artifact-required{border-left:4px solid #f59e0b}.artifact-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(to bottom,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0}.artifact-icon{font-size:24px}.artifact-required-badge{font-size:10px;font-weight:800;letter-spacing:.8px;padding:4px 8px;background:#f59e0b;color:#fff;border-radius:4px}.artifact-body{padding:16px}.artifact-name{margin:0 0 8px;font-size:15px;font-weight:700;color:#0f172a;line-height:1.4;word-break:break-word}.artifact-description{margin:0 0 12px;font-size:13px;color:#475569;line-height:1.6}.artifact-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:#94a3b8}.meta-item{display:flex;align-items:center;gap:4px}.artifact-actions{display:flex;border-top:1px solid #e2e8f0}.artifact-action-btn{flex:1;padding:12px;background:none;border:none;cursor:pointer;font-size:16px;transition:all .2s ease;color:#64748b}.artifact-action-btn:not(:last-child){border-right:1px solid #e2e8f0}.artifact-action-btn:hover{background:#f8fafc;color:#2563eb}.artifact-action-delete:hover{background:#ef44441a;color:#ef4444}.spinner{width:28px;height:28px;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}@media(max-width:1200px){.wbs-modal-body{grid-template-columns:1fr 320px}}@media(max-width:968px){.wbs-modal-body{grid-template-columns:1fr}.modal-column-main{border-right:none;border-bottom:2px solid #e2e8f0}.modal-column-sidebar{background:#fff}}@media(max-width:768px){.wbs-modal-header{flex-direction:column;align-items:flex-start;padding:20px 24px}.header-left{width:100%}.header-actions{width:100%;justify-content:flex-end}.node-name,.node-name-input{font-size:22px}.modal-column{padding:24px}.field-row{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.dependency-group{margin-bottom:16px}.dependency-group:last-child{margin-bottom:0}.dependency-picker{margin:8px 0}.dependency-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.dependency-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;transition:background-color .15s ease,box-shadow .15s ease}.dependency-item:hover{background:#f1f5f9;box-shadow:0 1px 3px #0000000f}.dependency-item-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.dependency-item-name{font-size:13px;font-weight:500;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dependency-item-state{font-size:11px;padding:2px 8px;border-radius:4px;background:#e2e8f0;color:#475569;font-weight:500;white-space:nowrap}.dependency-delete-btn{background:none;border:none;color:#94a3b8;font-size:18px;cursor:pointer;padding:0 4px;line-height:1;border-radius:4px;transition:color .15s ease,background-color .15s ease;flex-shrink:0}.dependency-delete-btn:hover{color:#ef4444;background:#fee2e2}.dependencies-loading{display:flex;align-items:center;gap:8px;padding:12px;color:#94a3b8;font-size:13px}@media(prefers-color-scheme:dark){.wbs-modal{background:#1e293b}.wbs-modal-header{background:linear-gradient(to bottom,#1e293b,#0f172a);border-bottom-color:#334155}.node-name,.field-value{color:#f8fafc}.field-label{color:#94a3b8}.field-input,.field-textarea,.field-select{background:#0f172a;border-color:#334155;color:#f8fafc}.modal-column-main{background:#1e293b;border-right-color:#334155}.modal-column-sidebar{background:#0f172a}.artifact-item{background:#1e293b;border-color:#334155}.artifact-header{background:linear-gradient(to bottom,#0f172a,#020617);border-bottom-color:#334155}.artifact-name{color:#f8fafc}.artifact-description{color:#cbd5e1}}.gantt-container{width:100%;min-height:500px;height:100%;overflow:hidden;position:relative;background:#fff;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0;border-radius:6px}.gantt-scroll-area{width:100%;height:100%;min-height:500px;overflow:auto;position:relative}.gantt-header{position:sticky;top:0;z-index:10;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;flex-direction:column}.gantt-header-months,.gantt-header-days{position:relative;flex:1;width:100%}.gantt-header-month{position:absolute;top:0;height:100%;border-right:1px solid #e2e8f0;display:flex;align-items:center;padding-left:8px;font-size:12px;font-weight:600;color:#1e293b;overflow:hidden;white-space:nowrap}.gantt-header-cell{position:absolute;top:0;height:100%;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;color:#475569}.gantt-header-cell.weekend{background:#94a3b80d;color:#94a3b8}.day-name{font-weight:500;margin-bottom:2px}.day-num{font-weight:600;color:#1e293b}.gantt-body{position:relative;min-height:400px}.gantt-grid{position:absolute;top:0;left:0;pointer-events:none}.gantt-grid-col{position:absolute;top:0;bottom:0;border-right:1px solid #e2e8f0;height:100%}.gantt-grid-col.weekend{background:#94a3b808}.gantt-grid-row{position:absolute;left:0;right:0;border-bottom:1px solid #e2e8f0}.gantt-arrows{position:absolute;top:0;left:0;pointer-events:none;z-index:4}.gantt-bars{position:absolute;top:0;left:0;width:100%;height:100%;z-index:5}.gantt-bar-wrapper{position:absolute;cursor:grab;transition:box-shadow .2s}.gantt-bar-wrapper:active{cursor:grabbing}.gantt-bar-wrapper.dragging{opacity:.8;cursor:grabbing}.gantt-bar{width:100%;height:100%;border-radius:4px;position:relative;display:flex;align-items:center;justify-content:space-between;padding:0 8px;overflow:hidden;box-shadow:0 1px 2px #0000001a;z-index:1;pointer-events:none}.gantt-bar-progress{position:absolute;top:0;left:0;bottom:0;background:#0000001a;z-index:1}.gantt-bar-label{position:relative;z-index:2;font-size:11px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.2);pointer-events:auto;flex:1;min-width:0}.gantt-bar-progress-label{position:relative;z-index:2;font-size:10px;font-weight:600;color:#ffffffe6;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.2);pointer-events:auto;margin-left:8px;flex-shrink:0}.bar-stage{background:#22c55e;border:1px solid #16a34a}.bar-step{background:#f97316;border:1px solid #ea580c}.bar-event{background:#a855f7;border:1px solid #9333ea}.bar-activity{background:#2563eb;border:1px solid #1e40af}.gantt-plan-bar-wrapper{position:absolute;z-index:5;cursor:default;display:flex;align-items:center}.gantt-plan-bar-wrapper.editable{cursor:grab}.gantt-plan-bar-wrapper.editable:active,.gantt-plan-bar-wrapper.dragging{cursor:grabbing;opacity:.85}.gantt-plan-bar{height:10px;border-radius:3px;background:#cbd5e1;border:1px solid #94a3b8;pointer-events:none;z-index:3}.gantt-actual-bar-wrapper{position:absolute;cursor:default;z-index:4;transition:filter .15s ease}.gantt-actual-bar{position:relative;width:100%;height:100%;border-radius:5px;display:flex;align-items:center;padding:0 8px;overflow:hidden;box-shadow:0 2px 4px #00000026;pointer-events:none}.gantt-actual-bar-progress{position:absolute;top:0;left:0;bottom:0;background:#0000001f;z-index:1}.gantt-actual-bar-text{position:relative;z-index:2;font-size:10px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px rgba(0,0,0,.3);letter-spacing:.2px;pointer-events:auto}.gantt-task-name-label{position:absolute;font-size:10px;font-weight:600;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;z-index:6;max-width:200px}.gantt-legend{display:flex;align-items:center;gap:16px;padding:8px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;flex-wrap:wrap;position:sticky;top:0;z-index:20;margin-bottom:8px}.gantt-legend-title{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-right:4px}.gantt-legend-item{display:flex;align-items:center;gap:5px;font-size:11px;color:#475569;font-weight:500;white-space:nowrap}.gantt-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.gantt-legend-plan-bar{width:18px;height:5px;border-radius:3px;background:#cbd5e1;border:1px solid #94a3b8;flex-shrink:0}.handle{position:absolute;top:0;bottom:0;width:8px;cursor:ew-resize!important;z-index:20;background:transparent;touch-action:none;pointer-events:auto}.handle:hover{cursor:ew-resize!important}.handle:after{content:"";position:absolute;top:6px;bottom:6px;width:3px;background:#ffffffe6;border-radius:2px;opacity:0;transition:opacity .2s;pointer-events:none;left:50%;transform:translate(-50%)}.handle.left{left:-4px}.handle.right{right:-4px}.gantt-bar-wrapper:hover .handle:after{opacity:1}.gantt-tooltip{position:fixed;background:#1e293b;color:#fff;padding:12px 16px;border-radius:6px;font-size:12px;z-index:1000;pointer-events:none;box-shadow:0 4px 12px #00000026;max-width:300px}.tooltip-title{font-weight:600;margin-bottom:6px;font-size:13px}.tooltip-date{color:#cbd5e1;margin-bottom:4px;font-size:11px}.tooltip-meta{color:#94a3b8;font-size:11px}.gantt-container.gantt-edit-mode{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.gantt-edit-mode .gantt-bar-wrapper.editable{cursor:grab}.gantt-edit-mode .gantt-bar-wrapper.editable .gantt-bar{box-shadow:0 2px 4px #3b82f633}.gantt-edit-mode .gantt-bar-wrapper.editable:hover .gantt-bar{box-shadow:0 4px 8px #3b82f64d;transform:translateY(-1px);transition:all .2s ease}.gantt-edit-mode .gantt-bar-wrapper.editable .gantt-bar:before{content:"";position:absolute;inset:0;border:2px solid rgba(59,130,246,.4);border-radius:4px;opacity:0;transition:opacity .2s;pointer-events:none}.gantt-edit-mode .gantt-bar-wrapper.editable:hover .gantt-bar:before{opacity:1}.gantt-edit-mode .gantt-bar-wrapper:not(.editable){cursor:not-allowed;opacity:.6}.gantt-edit-mode .gantt-bar-wrapper:not(.editable) .handle{cursor:not-allowed!important;pointer-events:none}.gantt-today-marker{position:absolute;top:0;z-index:15;pointer-events:none}.gantt-today-line{position:absolute;top:0;width:2px;background:linear-gradient(180deg,#ef4444e6,#ef4444b3,#ef4444e6);box-shadow:0 0 8px #ef444466;animation:todayPulse 2s ease-in-out infinite}.gantt-today-label{position:absolute;top:-28px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:11px;font-weight:700;padding:4px 10px;border-radius:12px;white-space:nowrap;box-shadow:0 2px 8px #ef44444d;letter-spacing:.5px;text-transform:uppercase}.gantt-today-label:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #dc2626}@keyframes todayPulse{0%,to{opacity:1;box-shadow:0 0 8px #ef444466}50%{opacity:.8;box-shadow:0 0 16px #ef444499}}.activity-card{background:linear-gradient(135deg,#fff,#fefefe);border:1px solid #e2e8f0;border-radius:10px;padding:14px;margin-bottom:10px;cursor:grab;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 2px #0000000a,0 2px 4px #0000000a}.activity-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000014,0 8px 16px #0000000f,0 0 0 1px #2563eb1a;border-color:#2563eb33}.activity-card:hover .activity-card__actions{opacity:1;pointer-events:all}.activity-card:active{cursor:grabbing;transform:translateY(-1px)}.activity-card--dragging{opacity:.6;transform:rotate(3deg);box-shadow:0 8px 16px #0000001f,0 16px 32px #0000001a;cursor:grabbing}.activity-card--blocked{border-left:4px solid #ef4444;background:linear-gradient(135deg,#fef2f2,#fff);cursor:not-allowed}.activity-card--blocked:hover{border-left-color:#dc2626;transform:none}.activity-card--blocked:active{cursor:not-allowed}.activity-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.activity-card__header-left{display:flex;align-items:center;gap:8px;flex:1}.activity-card__id{font-size:11px;font-weight:600;color:#94a3b8;font-family:SF Mono,Monaco,Consolas,monospace;letter-spacing:.3px}.activity-card__blocked-badge{display:flex;align-items:center;color:#ef4444;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.activity-card__blocked-badge svg{filter:drop-shadow(0 1px 2px rgba(239,68,68,.3))}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.activity-card__title{font-size:15px;font-weight:600;color:#1e293b;margin:0 0 6px;line-height:1.4;letter-spacing:-.01em}.activity-card__description{font-size:13px;color:#64748b;margin:0 0 12px;line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.activity-card__progress{display:flex;align-items:center;gap:8px;margin-bottom:12px}.activity-card__progress-bar{flex:1;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden;position:relative}.activity-card__progress-bar:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.activity-card__progress-fill{height:100%;background:linear-gradient(90deg,#2563eb,#3b82f6);border-radius:3px;transition:width .3s ease;box-shadow:0 0 6px #2563eb66}.activity-card__progress-text{font-size:11px;font-weight:600;color:#475569;font-family:SF Mono,Monaco,Consolas,monospace;min-width:32px;text-align:right}.activity-card__footer{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:12px}.activity-card__assignees{display:flex;align-items:center}.activity-card__avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;color:#fff;border:2px solid #ffffff;box-shadow:0 2px 4px #0000001a;transition:transform .2s ease;cursor:pointer}.activity-card__avatar:hover{transform:translateY(-2px) scale(1.1);z-index:100!important;box-shadow:0 4px 8px #00000026}.activity-card__avatar--more{background:#94a3b8;font-size:8px}.activity-card__due-date{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:500;padding:4px 8px;border-radius:6px;transition:all .2s ease}.activity-card__due-date svg{flex-shrink:0}.activity-card__due-date--normal{color:#475569;background:#f1f5f9}.activity-card__due-date--normal:hover{background:#e2e8f0}.activity-card__due-date--urgent{color:#ea580c;background:#fff7ed;box-shadow:0 0 0 1px #fed7aa}.activity-card__due-date--urgent:hover{background:#ffedd5}.activity-card__due-date--overdue{color:#dc2626;background:#fef2f2;box-shadow:0 0 0 1px #fecaca;font-weight:600}.activity-card__due-date--overdue:hover{background:#fee2e2}.activity-card__blockers{border-top:1px solid rgba(239,68,68,.15);background:linear-gradient(180deg,rgba(254,242,242,.5) 0%,transparent 100%);border-radius:6px;padding:8px;margin:12px -14px -14px}.activity-card__blocker{display:flex;align-items:flex-start;gap:6px;margin-bottom:6px;font-size:12px;color:#dc2626;line-height:1.4}.activity-card__blocker:last-child{margin-bottom:0}.activity-card__blocker-icon{flex-shrink:0;color:#ef4444;display:flex;align-items:center;margin-top:1px}.activity-card__blocker-icon svg{filter:drop-shadow(0 1px 2px rgba(239,68,68,.2))}.activity-card__blocker-message{flex:1;line-height:1.5;word-break:break-word;font-weight:500}.activity-card__actions{position:absolute;top:10px;right:10px;display:flex;gap:4px;opacity:0;pointer-events:none;transition:opacity .2s ease}.activity-card__action-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#fffffff2;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;color:#475569;transition:all .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 2px 4px #0000000f}.activity-card__action-btn:hover{background:#2563eb;color:#fff;border-color:#2563eb;transform:scale(1.05);box-shadow:0 4px 8px #2563eb40}.activity-card__action-btn:active{transform:scale(.95)}.activity-card__action-btn svg{transition:transform .2s ease}@media(max-width:768px){.activity-card__title{font-size:14px}.activity-card__description{font-size:12px;-webkit-line-clamp:1}.activity-card__avatar{width:22px;height:22px;font-size:8px}.activity-card__actions{opacity:1;pointer-events:all}}@media(prefers-reduced-motion:reduce){.activity-card{transition:none}.activity-card:hover,.activity-card--dragging{transform:none}.activity-card__blocked-badge{animation:none}.activity-card__progress-bar:before{animation:none}.activity-card__avatar:hover{transform:none}}@media(prefers-contrast:high){.activity-card{border-width:2px}.activity-card--blocked{border-left-width:6px}}.activity-detail-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;animation:modalFadeIn .3s cubic-bezier(.4,0,.2,1)}.activity-detail-modal__backdrop{position:absolute;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.activity-detail-modal__container{position:relative;background:#fff;border-radius:16px;width:100%;max-width:800px;max-height:90vh;overflow:hidden;box-shadow:0 20px 60px #00000026,0 0 0 1px #0000000d;display:flex;flex-direction:column;animation:modalSlideIn .4s cubic-bezier(.16,1,.3,1)}.activity-detail-modal__header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#f8fafc,#fff);flex-shrink:0}.activity-detail-modal__header-left{display:flex;align-items:center;gap:12px}.activity-detail-modal__header-right{display:flex;align-items:center;gap:8px}.activity-detail-modal__id{font-size:13px;font-weight:700;color:#94a3b8;font-family:SF Mono,Monaco,Consolas,monospace;letter-spacing:.5px;padding:4px 8px;background:#94a3b81a;border-radius:6px}.activity-detail-modal__blocked-badge{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#ef4444;padding:4px 10px;background:#fef2f2;border-radius:6px;border:1px solid #fecaca}.activity-detail-modal__edit-btn{padding:8px 16px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.activity-detail-modal__edit-btn:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.activity-detail-modal__edit-btn:active{transform:translateY(0)}.activity-detail-modal__close-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:8px;color:#64748b;cursor:pointer;transition:all .2s ease}.activity-detail-modal__close-btn:hover{background:#f1f5f9;color:#1e293b}.activity-detail-modal__close-btn:active{transform:scale(.95)}.activity-detail-modal__title-section{padding:20px 24px;border-bottom:1px solid #e2e8f0;flex-shrink:0}.activity-detail-modal__title{font-size:24px;font-weight:700;color:#1e293b;margin:0;line-height:1.3;letter-spacing:-.02em}.activity-detail-modal__title-input{width:100%;font-size:24px;font-weight:700;color:#1e293b;border:2px solid #e2e8f0;border-radius:8px;padding:8px 12px;outline:none;transition:all .2s ease}.activity-detail-modal__title-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.activity-detail-modal__tabs{display:flex;gap:4px;padding:0 24px;border-bottom:2px solid #e2e8f0;flex-shrink:0;background:#fafbfc}.activity-detail-modal__tab{position:relative;padding:12px 16px;background:transparent;border:none;font-size:14px;font-weight:600;color:#64748b;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.activity-detail-modal__tab:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:#2563eb;transform:scaleX(0);transition:transform .2s ease}.activity-detail-modal__tab:hover{color:#1e293b;background:#2563eb0d}.activity-detail-modal__tab.active{color:#2563eb}.activity-detail-modal__tab.active:after{transform:scaleX(1)}.activity-detail-modal__tab-badge{display:flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:#e2e8f0;color:#475569;border-radius:10px;font-size:11px;font-weight:700}.activity-detail-modal__tab.active .activity-detail-modal__tab-badge{background:#2563eb;color:#fff}.activity-detail-modal__content{flex:1;overflow-y:auto;padding:24px}.activity-detail-modal__details{display:flex;flex-direction:column;gap:24px}.activity-detail-modal__field{display:flex;flex-direction:column;gap:8px}.activity-detail-modal__label{font-size:13px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.5px}.activity-detail-modal__value{font-size:15px;color:#1e293b;line-height:1.6}.activity-detail-modal__input,.activity-detail-modal__textarea{width:100%;padding:10px 12px;border:2px solid #e2e8f0;border-radius:8px;font-size:15px;color:#1e293b;outline:none;transition:all .2s ease;font-family:inherit}.activity-detail-modal__input:focus,.activity-detail-modal__textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.activity-detail-modal__textarea{resize:vertical;line-height:1.6}.activity-detail-modal__range{width:100%;height:8px;border-radius:4px;background:#e2e8f0;outline:none;appearance:none}.activity-detail-modal__range::-webkit-slider-thumb{appearance:none;width:20px;height:20px;border-radius:50%;background:#2563eb;cursor:pointer;box-shadow:0 2px 6px #2563eb66;transition:all .2s ease}.activity-detail-modal__range::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 4px 12px #2563eb80}.activity-detail-modal__range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#2563eb;cursor:pointer;box-shadow:0 2px 6px #2563eb66;border:none}.activity-detail-modal__transitions{display:flex;flex-direction:column;gap:8px}.activity-detail-modal__transition-btn{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:14px}.activity-detail-modal__transition-btn:hover{border-color:currentColor;background:#2563eb05;transform:translate(4px)}.activity-detail-modal__transition-name{font-weight:600;color:#1e293b}.activity-detail-modal__transition-state{font-weight:600}.activity-detail-modal__progress-display{display:flex;align-items:center;gap:12px}.activity-detail-modal__progress-bar{flex:1;height:10px;background:#e2e8f0;border-radius:5px;overflow:hidden}.activity-detail-modal__progress-fill{height:100%;background:linear-gradient(90deg,#2563eb,#3b82f6);border-radius:5px;transition:width .3s ease;box-shadow:0 0 8px #2563eb66}.activity-detail-modal__progress-text{font-size:14px;font-weight:700;color:#2563eb;font-family:SF Mono,Monaco,Consolas,monospace;min-width:42px;text-align:right}.activity-detail-modal__users{display:flex;flex-wrap:wrap;gap:8px}.activity-detail-modal__user{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#f1f5f9;border-radius:8px;border:1px solid #e2e8f0}.activity-detail-modal__user-avatar{width:28px;height:28px;border-radius:50%;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.activity-detail-modal__user-name{font-size:14px;font-weight:600;color:#1e293b}.activity-detail-modal__comments{display:flex;flex-direction:column;gap:20px}.activity-detail-modal__comment-input{display:flex;flex-direction:column;gap:12px}.activity-detail-modal__submit-btn{align-self:flex-end;padding:10px 20px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.activity-detail-modal__submit-btn:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.activity-detail-modal__submit-btn:disabled{opacity:.5;cursor:not-allowed}.activity-detail-modal__comments-list{display:flex;flex-direction:column;gap:16px}.activity-detail-modal__comment{padding:16px;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}.activity-detail-modal__comment-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.activity-detail-modal__comment-meta{display:flex;flex-direction:column;gap:2px}.activity-detail-modal__comment-author{font-size:14px;font-weight:600;color:#1e293b}.activity-detail-modal__comment-time{font-size:12px;color:#94a3b8}.activity-detail-modal__comment-content{font-size:14px;color:#475569;line-height:1.6;margin:0}.activity-detail-modal__artifacts{display:flex;flex-direction:column;gap:16px}.activity-detail-modal__upload-btn{align-self:flex-start;display:flex;align-items:center;gap:8px;padding:10px 16px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.activity-detail-modal__upload-btn:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.activity-detail-modal__artifacts-list{display:flex;flex-direction:column;gap:12px}.activity-detail-modal__artifact{display:flex;align-items:center;gap:12px;padding:12px;background:#f8fafc;border-radius:10px;border:1px solid #e2e8f0;transition:all .2s ease}.activity-detail-modal__artifact:hover{border-color:#2563eb;background:#f1f5f9}.activity-detail-modal__artifact-icon{flex-shrink:0;color:#64748b}.activity-detail-modal__artifact-info{flex:1}.activity-detail-modal__artifact-name{font-size:14px;font-weight:600;color:#1e293b;margin:0 0 4px}.activity-detail-modal__artifact-meta{font-size:12px;color:#94a3b8;margin:0}.activity-detail-modal__artifact-download{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#2563eb;color:#fff;border-radius:8px;cursor:pointer;transition:all .2s ease}.activity-detail-modal__artifact-download:hover{background:#1d4ed8;transform:scale(1.05)}.activity-detail-modal__history{padding:0}.activity-detail-modal__timeline{display:flex;flex-direction:column;gap:0}.activity-detail-modal__timeline-item{display:flex;gap:16px;padding:16px 0;position:relative}.activity-detail-modal__timeline-item:not(:last-child):before{content:"";position:absolute;left:9px;top:32px;bottom:-16px;width:2px;background:#e2e8f0}.activity-detail-modal__timeline-marker{width:20px;height:20px;border-radius:50%;background:#2563eb;border:3px solid #dbeafe;flex-shrink:0;margin-top:2px}.activity-detail-modal__timeline-content{flex:1}.activity-detail-modal__timeline-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.activity-detail-modal__timeline-user{font-size:14px;font-weight:700;color:#1e293b}.activity-detail-modal__timeline-action{font-size:14px;color:#475569}.activity-detail-modal__timeline-time{font-size:12px;color:#94a3b8;margin-left:auto}.activity-detail-modal__timeline-details{font-size:13px;color:#64748b;margin:4px 0 0;line-height:1.5}.activity-detail-modal__empty{text-align:center;color:#94a3b8;font-size:14px;padding:40px 20px;font-style:italic}.activity-detail-modal__footer{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid #e2e8f0;background:#f8fafc;flex-shrink:0}.activity-detail-modal__cancel-btn{padding:10px 20px;background:transparent;color:#475569;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.activity-detail-modal__cancel-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.activity-detail-modal__save-btn{padding:10px 20px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.activity-detail-modal__save-btn:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:768px){.activity-detail-modal{padding:0;align-items:flex-end}.activity-detail-modal__container{max-width:100%;max-height:95vh;border-radius:16px 16px 0 0;animation:modalSlideUp .4s cubic-bezier(.16,1,.3,1)}.activity-detail-modal__title{font-size:20px}.activity-detail-modal__tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}@keyframes modalSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}}@media(prefers-reduced-motion:reduce){.activity-detail-modal,.activity-detail-modal__container{animation:none}}.activity-list-view{display:flex;flex-direction:column;gap:0;background:#fff;border-radius:12px;border:1px solid #e2e8f0;overflow:hidden}.activity-list-view__toolbar{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#f8fafc,#fff);border-bottom:1px solid #e2e8f0;gap:16px;flex-wrap:wrap}.activity-list-view__toolbar-left{display:flex;align-items:center;gap:12px;flex:1;flex-wrap:wrap}.activity-list-view__toolbar-right{display:flex;align-items:center;gap:12px}.activity-list-view__search{position:relative;display:flex;align-items:center;min-width:280px;background:#fff;border:2px solid #e2e8f0;border-radius:8px;padding:8px 12px;gap:8px;transition:all .2s ease}.activity-list-view__search:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.activity-list-view__search svg{flex-shrink:0;color:#94a3b8}.activity-list-view__search input{flex:1;border:none;outline:none;font-size:14px;color:#1e293b;background:transparent}.activity-list-view__search input::placeholder{color:#94a3b8}.activity-list-view__clear-btn{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:#e2e8f0;border:none;border-radius:50%;cursor:pointer;color:#64748b;transition:all .2s ease}.activity-list-view__clear-btn:hover{background:#cbd5e1;color:#1e293b}.activity-list-view__filter{padding:8px 12px;background:#fff;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;color:#1e293b;cursor:pointer;outline:none;transition:all .2s ease;min-width:150px}.activity-list-view__filter:hover{border-color:#cbd5e1}.activity-list-view__filter:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.activity-list-view__view-toggle{display:flex;gap:4px;background:#f1f5f9;padding:4px;border-radius:8px}.activity-list-view__view-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:#64748b;cursor:pointer;transition:all .2s ease}.activity-list-view__view-btn:hover{background:#ffffff80;color:#1e293b}.activity-list-view__view-btn.active{background:#fff;color:#2563eb;box-shadow:0 1px 2px #0000000f}.activity-list-view__count{font-size:13px;font-weight:600;color:#64748b;padding:8px 12px;background:#f1f5f9;border-radius:6px}.activity-list-view__bulk-actions{display:flex;align-items:center;gap:8px;padding:12px 20px;background:linear-gradient(135deg,#dbeafe,#eff6ff);border-bottom:1px solid #93c5fd}.activity-list-view__bulk-count{font-size:14px;font-weight:700;color:#1e40af;margin-right:8px}.activity-list-view__bulk-btn{padding:6px 12px;background:#fff;border:1px solid #bfdbfe;border-radius:6px;font-size:13px;font-weight:600;color:#1e40af;cursor:pointer;transition:all .2s ease}.activity-list-view__bulk-btn:hover{background:#f0f9ff;border-color:#60a5fa}.activity-list-view__bulk-btn--danger{color:#dc2626;border-color:#fecaca}.activity-list-view__bulk-btn--danger:hover{background:#fef2f2;border-color:#f87171}.activity-list-view__sort-bar{display:grid;grid-template-columns:40px 2fr 1.5fr 1.2fr 1.5fr 1fr;gap:8px;padding:12px 20px;background:#f8fafc;border-bottom:2px solid #e2e8f0}.activity-list-view__select-col{display:flex;align-items:center;justify-content:center}.activity-list-view__select-col input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#2563eb}.activity-list-view__sort-btn{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 8px;background:transparent;border:none;border-radius:6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#64748b;cursor:pointer;transition:all .2s ease}.activity-list-view__sort-btn:hover{background:#2563eb0d;color:#2563eb}.activity-list-view__sort-btn.active{color:#2563eb;background:#2563eb1a}.activity-list-view__sort-btn svg{flex-shrink:0}.activity-list-view__content{padding:16px 20px;overflow-y:auto;max-height:calc(100vh - 300px)}.activity-list-view__content--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.activity-list-view__content--list{display:flex;flex-direction:column;gap:8px}.activity-list-view__item{display:flex;align-items:flex-start;gap:12px}.activity-list-view__content--list .activity-list-view__item .activity-card{margin-bottom:0}.activity-list-view__select{flex-shrink:0;padding-top:16px}.activity-list-view__select input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#2563eb}.activity-list-view__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:12px;text-align:center}.activity-list-view__empty svg{color:#cbd5e1}.activity-list-view__empty p{font-size:16px;font-weight:600;color:#475569;margin:0}.activity-list-view__empty span{font-size:14px;color:#94a3b8}@media(max-width:1024px){.activity-list-view__sort-bar{grid-template-columns:40px 2fr 1fr 1fr 1fr 80px;font-size:11px}.activity-list-view__content--grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media(max-width:768px){.activity-list-view__toolbar{flex-direction:column;align-items:stretch}.activity-list-view__toolbar-left,.activity-list-view__toolbar-right{width:100%;justify-content:space-between}.activity-list-view__search{min-width:0;flex:1}.activity-list-view__sort-bar{display:none}.activity-list-view__content{padding:12px}.activity-list-view__content--grid{grid-template-columns:1fr}.activity-list-view__bulk-actions{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.activity-list-view__search,.activity-list-view__filter,.activity-list-view__view-btn,.activity-list-view__sort-btn,.activity-list-view__bulk-btn{transition:none}}.quick-add-activity{background:#fff;border:2px solid #e2e8f0;border-radius:12px;padding:16px;transition:all .3s cubic-bezier(.4,0,.2,1)}.quick-add-activity:focus-within{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1a}.quick-add-activity__form{display:flex;flex-direction:column;gap:16px}.quick-add-activity__main{display:flex;align-items:center;gap:12px}.quick-add-activity__icon{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;border-radius:8px;box-shadow:0 2px 6px #2563eb4d}.quick-add-activity__input{flex:1;border:none;outline:none;font-size:15px;font-weight:500;color:#1e293b;background:transparent}.quick-add-activity__input::placeholder{color:#94a3b8;font-weight:400}.quick-add-activity__expand-btn{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border:none;border-radius:6px;color:#64748b;cursor:pointer;transition:all .2s ease}.quick-add-activity__expand-btn:hover{background:#e2e8f0;color:#1e293b}.quick-add-activity__expand-btn.active{background:#2563eb;color:#fff}.quick-add-activity__expand-btn.active svg{transform:rotate(180deg)}.quick-add-activity__expand-btn svg{transition:transform .2s ease}.quick-add-activity__expanded{display:flex;flex-direction:column;gap:16px;padding-top:8px;animation:expandIn .3s cubic-bezier(.4,0,.2,1)}@keyframes expandIn{0%{opacity:0;transform:translateY(-8px);max-height:0}to{opacity:1;transform:translateY(0);max-height:500px}}.quick-add-activity__field{display:flex;flex-direction:column;gap:8px}.quick-add-activity__label{font-size:12px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.quick-add-activity__textarea{width:100%;padding:10px 12px;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;color:#1e293b;outline:none;transition:all .2s ease;resize:vertical;font-family:inherit;line-height:1.5}.quick-add-activity__textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.quick-add-activity__textarea::placeholder{color:#94a3b8}.quick-add-activity__date-input{width:100%;padding:10px 12px;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;color:#1e293b;outline:none;transition:all .2s ease;cursor:pointer}.quick-add-activity__date-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.quick-add-activity__assignees{display:flex;flex-wrap:wrap;gap:8px}.quick-add-activity__assignee{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .2s ease}.quick-add-activity__assignee:hover{border-color:#cbd5e1;background:#f1f5f9}.quick-add-activity__assignee.selected{background:linear-gradient(135deg,#dbeafe,#eff6ff);border-color:#2563eb;box-shadow:0 0 0 1px #2563eb1a}.quick-add-activity__assignee.selected .quick-add-activity__assignee-name{color:#1e40af;font-weight:600}.quick-add-activity__assignee-avatar{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;box-shadow:0 2px 4px #2563eb33}.quick-add-activity__assignee-name{font-size:13px;color:#475569;transition:all .2s ease}.quick-add-activity__actions{display:flex;align-items:center;gap:12px;padding-top:8px;border-top:1px solid #e2e8f0}.quick-add-activity__submit-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px #2563eb4d}.quick-add-activity__submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#2563eb);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb66}.quick-add-activity__submit-btn:active:not(:disabled){transform:translateY(0)}.quick-add-activity__submit-btn:disabled{opacity:.5;cursor:not-allowed}.quick-add-activity__cancel-btn{padding:10px 16px;background:transparent;color:#64748b;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.quick-add-activity__cancel-btn:hover{background:#f1f5f9;color:#1e293b}.quick-add-activity__hint{margin-left:auto;font-size:12px;color:#94a3b8;font-family:SF Mono,Monaco,Consolas,monospace}@media(max-width:768px){.quick-add-activity{padding:12px}.quick-add-activity__hint{display:none}.quick-add-activity__actions{flex-wrap:wrap}.quick-add-activity__submit-btn{flex:1}}@media(prefers-reduced-motion:reduce){.quick-add-activity__expanded{animation:none}.quick-add-activity__expand-btn svg,.quick-add-activity__submit-btn{transition:none}}@media(prefers-color-scheme:dark){.quick-add-activity{background:#1e293b;border-color:#334155}.quick-add-activity:focus-within{border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f633}.quick-add-activity__input,.quick-add-activity__textarea,.quick-add-activity__date-input{color:#f1f5f9;background:transparent}.quick-add-activity__input::placeholder,.quick-add-activity__textarea::placeholder,.quick-add-activity__date-input::placeholder{color:#64748b}.quick-add-activity__textarea,.quick-add-activity__date-input{border-color:#334155;background:#0f172a}.quick-add-activity__textarea:focus,.quick-add-activity__date-input:focus{border-color:#3b82f6}.quick-add-activity__expand-btn{background:#334155;color:#cbd5e1}.quick-add-activity__expand-btn:hover{background:#475569;color:#f1f5f9}.quick-add-activity__expand-btn.active{background:#3b82f6;color:#fff}.quick-add-activity__label{color:#94a3b8}.quick-add-activity__assignee{background:#0f172a;border-color:#334155}.quick-add-activity__assignee:hover{background:#1e293b;border-color:#475569}.quick-add-activity__assignee.selected{background:#3b82f61a;border-color:#3b82f6}.quick-add-activity__assignee.selected .quick-add-activity__assignee-name{color:#60a5fa}.quick-add-activity__assignee-name{color:#cbd5e1}.quick-add-activity__actions{border-top-color:#334155}.quick-add-activity__cancel-btn{color:#94a3b8}.quick-add-activity__cancel-btn:hover{background:#334155;color:#f1f5f9}.quick-add-activity__hint{color:#64748b}}.kanban-column{background:#f8fafc;border-radius:8px;padding:16px;min-width:300px;max-width:350px;height:fit-content;max-height:calc(100vh - 250px);display:flex;flex-direction:column;transition:background-color .2s ease;border:1px solid #e2e8f0}.kanban-column--over{background-color:#eff6ff;box-shadow:0 0 0 2px #2563eb}.kanban-column__header{margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #e2e8f0}.kanban-column__title{font-size:16px;font-weight:600;color:#1e293b;margin:0 0 4px;display:flex;align-items:center;gap:8px}.kanban-column__count{font-size:14px;color:#94a3b8;font-weight:500}.kanban-column__count--bottleneck{color:#dc2626;font-weight:700}.kanban-column__workflow-state{display:inline-block;font-size:12px;color:#475569;background:#fff;padding:4px 8px;border-radius:4px;border:1px solid #e2e8f0}.kanban-column__cards{flex:1;overflow-y:auto;overflow-x:hidden;padding-right:4px}.kanban-column__cards::-webkit-scrollbar{width:6px}.kanban-column__cards::-webkit-scrollbar-track{background:transparent}.kanban-column__cards::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.kanban-column__cards::-webkit-scrollbar-thumb:hover{background:#94a3b8}.kanban-column__empty{text-align:center;color:#94a3b8;font-size:14px;padding:32px 16px;font-style:italic}.kanban-board{width:100%;height:100%;padding:20px;overflow-x:auto;overflow-y:hidden;background:#fff}.kanban-board--loading,.kanban-board--error,.kanban-board--empty{display:flex;align-items:center;justify-content:center;min-height:400px}.kanban-board__spinner{font-size:18px;color:#94a3b8}.kanban-board__error-message{text-align:center;color:#dc2626}.kanban-board__error-message h3{margin:0 0 8px;font-size:20px;color:#1e293b}.kanban-board__error-message p{margin:0 0 16px;font-size:14px;color:#475569}.kanban-board__retry-button{padding:8px 16px;background:#2563eb;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;box-shadow:0 1px 3px #0000001a}.kanban-board__retry-button:hover{background:#1d4ed8;box-shadow:0 2px 6px #2563eb4d}.kanban-board__retry-button:active{transform:translateY(1px);box-shadow:0 1px 2px #0000001a}.kanban-board__header{margin-bottom:24px}.kanban-board__title{font-size:24px;font-weight:600;color:#1e293b;margin:0 0 8px}.kanban-board__description{font-size:14px;color:#475569;margin:0;line-height:1.5}.kanban-board__columns{display:flex;gap:16px;align-items:flex-start;min-height:500px;padding-bottom:20px}.kanban-board__drag-overlay{cursor:grabbing;transform:rotate(-5deg);opacity:.9}.kanban-board::-webkit-scrollbar{height:8px}.kanban-board::-webkit-scrollbar-track{background:#f1f5f9}.kanban-board::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.kanban-board::-webkit-scrollbar-thumb:hover{background:#94a3b8}.template-controls{display:flex;align-items:center;gap:16px;margin-bottom:24px;background:#fff;border:1px solid var(--c-border);border-radius:8px;padding:16px 20px;box-shadow:0 1px 3px #0000000a}.template-search{flex:1;max-width:480px;position:relative;display:flex;align-items:center;gap:10px}.template-search svg{position:absolute;left:14px;color:var(--c-text-muted);pointer-events:none}.template-search input{width:100%;padding:10px 40px;border:1px solid var(--c-border);border-radius:8px;font-size:14px;background:var(--c-surface);transition:all .2s}.template-search input:focus{outline:none;border-color:var(--c-primary);background:#fff;box-shadow:0 0 0 3px var(--c-primary-soft)}.template-search .clear-search{position:absolute;right:10px;width:24px;height:24px;border:none;background:var(--c-surface-highlight);color:var(--c-text-muted);border-radius:50%;cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .2s}.template-search .clear-search:hover{background:var(--c-border);color:var(--c-text)}.template-sort{display:flex;align-items:center;gap:8px}.template-sort label{font-size:13px;font-weight:600;color:var(--c-text-sec)}.template-sort select{padding:8px 12px;border:1px solid var(--c-border);border-radius:6px;font-size:13px;background:#fff;color:var(--c-text);cursor:pointer;transition:all .2s}.template-sort select:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-soft)}.template-stats{margin-left:auto;font-size:13px}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.template-card{background:#fff;border:1px solid var(--c-border);border-radius:12px;padding:20px;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #0000000a,0 1px 2px #00000008;position:relative;overflow:hidden}.template-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--c-primary),#3b82f6);opacity:0;transition:opacity .25s}.template-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #00000014,0 4px 8px #0000000a;border-color:var(--c-primary)}.template-card:hover:before{opacity:1}.template-card:active{transform:translateY(-2px)}.template-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.template-icon{width:48px;height:48px;border-radius:10px;background:linear-gradient(135deg,var(--c-primary-soft),rgba(37,99,235,.05));display:flex;align-items:center;justify-content:center;color:var(--c-primary);flex-shrink:0}.template-meta{display:flex;align-items:center;gap:6px;font-size:12px}.template-id{color:var(--c-text-muted);font-weight:600}.template-version{background:var(--c-surface-alt);color:var(--c-text-sec);padding:2px 8px;border-radius:4px;font-weight:600}.template-card-body{margin-bottom:16px}.template-name{font-size:18px;font-weight:600;color:var(--c-text);margin-bottom:12px;line-height:1.3}.template-info{display:flex;flex-direction:column;gap:6px}.info-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--c-text-sec)}.info-item svg{color:var(--c-text-muted);flex-shrink:0}.template-card-actions{display:flex;align-items:center;gap:6px;padding-top:16px;border-top:1px solid var(--c-border);opacity:0;transition:opacity .25s}.template-card:hover .template-card-actions{opacity:1}.btn-icon{width:32px;height:32px;border:1px solid var(--c-border);border-radius:6px;background:#fff;color:var(--c-text-sec);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-icon:hover{background:var(--c-surface);border-color:var(--c-primary);color:var(--c-primary);transform:scale(1.05)}.btn-icon.danger:hover{border-color:var(--c-danger);color:var(--c-danger);background:#ef444414}.empty-state{text-align:center;padding:80px 40px;background:#fff;border:2px dashed var(--c-border);border-radius:12px;animation:fadeIn .3s ease}.empty-icon{width:80px;height:80px;margin:0 auto 20px;border-radius:50%;background:linear-gradient(135deg,var(--c-surface-alt),var(--c-surface));display:flex;align-items:center;justify-content:center;color:var(--c-text-muted)}.empty-state h3{font-size:20px;margin-bottom:8px;color:var(--c-text)}.empty-state p{font-size:14px;color:var(--c-text-muted);max-width:400px;margin:0 auto}.preview-modal{max-width:900px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.preview-modal .dialog-header{align-items:flex-start;gap:16px;flex-wrap:wrap;flex-shrink:0;padding-bottom:16px;border-bottom:1px solid var(--c-border)}.preview-modal .dialog-header>:first-child{flex:1 1 320px;min-width:0}.preview-modal .dialog-header .actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto;flex-wrap:nowrap;white-space:nowrap;margin-left:auto}@media(max-width:720px){.preview-modal .dialog-header .actions{width:100%}}.preview-content{flex:1;overflow-y:auto;padding:20px 0}.preview-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:24px}.info-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:8px;padding:12px 16px}.info-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:var(--c-text-muted);margin-bottom:4px}.info-value{font-size:14px;font-weight:600;color:var(--c-text)}.preview-section{margin-bottom:28px}.preview-section h4{font-size:15px;font-weight:600;color:var(--c-text);margin-bottom:14px;display:flex;align-items:center;gap:8px}.structure-stats{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.stat-badge{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:8px;font-size:13px}.stat-badge.stage{background:#8b5cf61a;border:1px solid rgba(139,92,246,.2);color:#7c3aed}.stat-badge.step{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);color:#2563eb}.stat-badge.activity{background:#10b9811a;border:1px solid rgba(16,185,129,.2);color:#059669}.stat-badge.event{background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);color:#d97706}.stat-label{font-weight:600}.stat-value{font-weight:700;font-size:16px}.node-tree{background:var(--c-surface);border:1px solid var(--c-border);border-radius:8px;padding:16px}.tree-node{margin-bottom:12px;padding-left:0}.tree-node:last-child{margin-bottom:0}.stage-node{background:#fff;border:1px solid rgba(139,92,246,.2);border-left:3px solid #8b5cf6;border-radius:6px;padding:12px}.step-node{background:#fff;border:1px solid rgba(59,130,246,.2);border-left:3px solid #3b82f6;border-radius:6px;padding:10px;margin-left:20px;margin-top:8px}.activity-node{background:#fff;border:1px solid rgba(16,185,129,.2);border-left:3px solid #10b981;border-radius:6px;padding:8px;margin-left:20px;margin-top:6px}.event-node{background:#fff;border:1px solid rgba(245,158,11,.2);border-left:3px solid #f59e0b;border-radius:6px;padding:10px;margin-left:20px;margin-top:8px}.node-header{display:flex;align-items:center;gap:10px}.node-badge{padding:3px 8px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.node-badge.stage{background:#8b5cf626;color:#7c3aed}.node-badge.step{background:#3b82f626;color:#2563eb}.node-badge.activity{background:#10b98126;color:#059669}.node-badge.event{background:#f59e0b26;color:#d97706}.node-name{font-size:14px;font-weight:600;color:var(--c-text);flex:1}.node-duration{font-size:12px;color:var(--c-text-muted);background:var(--c-surface-alt);padding:2px 8px;border-radius:4px}.node-deliverables{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px;padding-left:28px}.deliverable{font-size:12px;padding:3px 8px;background:var(--c-surface-alt);border:1px solid var(--c-border);border-radius:4px;color:var(--c-text-sec)}.deliverable.required{background:#ef44441a;border-color:#ef444433;color:var(--c-danger);font-weight:600}.dependency-list{display:flex;flex-direction:column;gap:8px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:8px;padding:16px}.dependency-item{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#fff;border:1px solid var(--c-border);border-radius:6px;font-size:13px}.dependency-item svg{color:var(--c-text-muted);flex-shrink:0}.dep-node{font-weight:600;color:var(--c-text)}@media(max-width:768px){.template-controls{flex-direction:column;align-items:stretch}.template-search{max-width:none}.template-sort{justify-content:space-between}.template-stats{margin-left:0}.template-grid,.preview-info-grid{grid-template-columns:1fr}}.workflow-list-page{max-width:1600px;margin:0 auto}.workflow-list-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.workflow-list-page .page-header h1{margin:0;font-size:2rem;color:#1e293b;font-weight:600}.workflow-list-page .error-banner{background-color:#fef2f2;color:#ef4444;padding:16px;border-radius:8px;border:1px solid #fecaca;border-left:4px solid #ef4444;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}.workflow-list-page .error-banner .btn-close-error{background:none;border:none;font-size:1.5rem;color:#ef4444;cursor:pointer;padding:0 8px;line-height:1}.workflow-list-page .error-banner .btn-close-error:hover{opacity:.7}.workflow-list-page .filters{margin-bottom:24px;padding:16px;background-color:#fff;border:1px solid #e2e8f0;border-radius:8px}.workflow-list-page .filters label{display:flex;align-items:center;gap:8px;font-weight:500;color:#334155}.workflow-list-page .filters select{padding:8px 16px;border:1px solid #e2e8f0;border-radius:4px;font-size:.95rem;cursor:pointer;background-color:#fff;color:#334155}.workflow-list-page .filters select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #dbeafe}.workflow-list-page .workflow-section{margin-bottom:24px}.workflow-list-page .workflow-section .section-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:1.1rem;color:#334155;font-weight:600}.workflow-list-page .workflow-section .section-title .section-icon{color:#f59e0b}.workflow-list-page .panel{background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;box-shadow:0 1px 2px #0000000d}.workflow-list-page .workflow-name-link{color:#2563eb;font-weight:500;cursor:pointer}.workflow-list-page .workflow-name-link:hover{text-decoration:underline}.workflow-list-page .entity-type-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.workflow-list-page .entity-type-badge.entity-type-project{background-color:#2563eb1a;color:#2563eb;border:1px solid rgba(37,99,235,.2)}.workflow-list-page .entity-type-badge.entity-type-stage{background-color:#8b5cf61a;color:#8b5cf6;border:1px solid rgba(139,92,246,.2)}.workflow-list-page .entity-type-badge.entity-type-step{background-color:#06b6d41a;color:#0891b2;border:1px solid rgba(6,182,212,.2)}.workflow-list-page .entity-type-badge.entity-type-event{background-color:#f59e0b1a;color:#ac6f07;border:1px solid rgba(245,158,11,.2)}.workflow-list-page .entity-type-badge.entity-type-activity{background-color:#22c55e1a;color:#1a9a49;border:1px solid rgba(34,197,94,.2)}.workflow-list-page .badge-default-table{display:inline-block;padding:3px 10px;border-radius:12px;font-size:.75rem;font-weight:600;background-color:#22c55e;color:#fff}.workflow-list-page .badge-not-default{color:#94a3b8}.workflow-list-page .table-actions,.workflow-list-page .table-actions .delete-confirm-inline{display:flex;gap:8px;align-items:center}.workflow-list-page .empty-state{text-align:center;padding:48px}.workflow-list-page .empty-state p{color:#64748b;margin-bottom:16px;line-height:1.6}.workflow-list-page .loading-spinner{text-align:center;padding:48px;color:#64748b}.workflow-create-page{padding:24px;max-width:700px;margin:0 auto;background-color:#f8fafc}.workflow-create-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.workflow-create-page .page-header h1{margin:0;font-size:1.75rem;color:#1e293b;font-weight:600}.workflow-create-page .access-denied{text-align:center;padding:48px;background-color:#fff;border-radius:8px;border:1px solid #e2e8f0;box-shadow:0 1px 2px #0000000d}.workflow-create-page .access-denied h2{color:#ef4444;margin-bottom:16px;font-weight:600}.workflow-create-page .access-denied p{color:#475569;margin-bottom:24px;line-height:1.5}.workflow-create-page .error-banner{background-color:#fef2f2;color:#ef4444;padding:16px;border-radius:8px;border:1px solid #fecaca;border-left:4px solid #ef4444;margin-bottom:16px}.workflow-editor-page{padding:24px;max-width:1800px;margin:0 auto;background-color:#f8fafc}.workflow-editor-page .page-header{margin-bottom:24px;display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.workflow-editor-page .page-header .header-left{display:flex;gap:16px;align-items:center}.workflow-editor-page .page-header .header-left .btn-back{background:none;border:none;color:#2563eb;font-size:1rem;cursor:pointer;padding:8px;border-radius:4px;transition:all .2s ease}.workflow-editor-page .page-header .header-left .btn-back:hover{color:#1d4ed8;background-color:#dbeafe}.workflow-editor-page .page-header .header-left h1{margin:0;font-size:1.75rem;color:#1e293b;font-weight:600}.workflow-editor-page .page-header .header-left .workflow-meta{color:#475569;font-size:.9rem;display:flex;gap:8px;align-items:center}.workflow-editor-page .page-header .header-left .workflow-meta .badge-default{background-color:#22c55e;color:#fff;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600}.workflow-editor-page .page-header .header-right .toggle-default-label{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .2s ease}.workflow-editor-page .page-header .header-right .toggle-default-label:hover{border-color:#dbeafe;background-color:#f8fafc}.workflow-editor-page .page-header .header-right .toggle-default-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#2563eb}.workflow-editor-page .page-header .header-right .toggle-default-label span{font-size:.9rem;color:#334155;font-weight:500}.workflow-editor-page .error-banner{background-color:#fef2f2;color:#ef4444;padding:16px;border-radius:8px;border:1px solid #fecaca;border-left:4px solid #ef4444;margin-bottom:16px}.workflow-editor-page .editor-layout{display:grid;grid-template-columns:1fr auto;gap:24px}.workflow-editor-page .editor-main{min-width:0}.workflow-editor-page .diagram-section{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:24px;margin-bottom:24px;box-shadow:0 1px 2px #0000000d}.workflow-editor-page .diagram-section h2{margin:0 0 16px;font-size:1.25rem;color:#1e293b;font-weight:600}.workflow-editor-page .diagram-section .workflow-diagram{border:1px solid #e2e8f0;border-radius:4px;overflow:hidden;background-color:#fff}.workflow-editor-page .diagram-section .workflow-diagram-empty{padding:48px;text-align:center;color:#64748b;background-color:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px}.workflow-editor-page .editor-lists{display:grid;grid-template-columns:1fr 1fr;gap:24px}.workflow-editor-page .states-section,.workflow-editor-page .transitions-section{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:24px;box-shadow:0 1px 2px #0000000d}.workflow-editor-page .states-section .section-header,.workflow-editor-page .transitions-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.workflow-editor-page .states-section .section-header h2,.workflow-editor-page .transitions-section .section-header h2{margin:0;font-size:1.1rem;color:#1e293b;font-weight:600}.workflow-editor-page .details-panel{width:350px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:24px;position:sticky;top:24px;max-height:calc(100vh - 100px);overflow-y:auto;box-shadow:0 1px 2px #0000000d}.workflow-editor-page .details-panel .panel-close{float:right;background:none;border:none;font-size:1.25rem;color:#94a3b8;cursor:pointer;padding:0;width:30px;height:30px;border-radius:4px;transition:all .2s ease}.workflow-editor-page .details-panel .panel-close:hover{color:#1e293b;background-color:#f1f5f9}.workflow-editor-page .details-panel .details-panel-content{clear:both}.workflow-editor-page .details-panel .details-panel-content h3{margin:0 0 24px;color:#1e293b;font-size:1.25rem;font-weight:600}.workflow-editor-page .details-panel .details-panel-content .detail-group{margin-bottom:16px}.workflow-editor-page .details-panel .details-panel-content .detail-group label{display:block;font-size:.85rem;font-weight:600;color:#64748b;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.workflow-editor-page .details-panel .details-panel-content .detail-group p{margin:0;color:#334155;line-height:1.5}.workflow-editor-page .details-panel .details-panel-content .detail-group .text-muted{color:#94a3b8;font-style:italic}.workflow-editor-page .details-panel .details-panel-content .detail-group .color-display{display:flex;align-items:center;gap:8px}.workflow-editor-page .details-panel .details-panel-content .detail-group .color-display .color-swatch{width:40px;height:40px;border-radius:4px;border:1px solid #e2e8f0;box-shadow:0 1px 2px #0000000d}.workflow-editor-page .details-panel .details-panel-content .detail-group .state-type-badges,.workflow-editor-page .details-panel .details-panel-content .detail-group .role-badges{display:flex;gap:8px;flex-wrap:wrap}.workflow-editor-page .details-panel .details-panel-content .detail-group .badge-initial,.workflow-editor-page .details-panel .details-panel-content .detail-group .badge-final,.workflow-editor-page .details-panel .details-panel-content .detail-group .badge-normal,.workflow-editor-page .details-panel .details-panel-content .detail-group .badge-role{padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:600}.workflow-editor-page .details-panel .details-panel-content .detail-group .badge-initial{background-color:#22c55e1a;color:#1a9a49;border:1px solid rgba(34,197,94,.2)}.workflow-editor-page .details-panel .details-panel-content .detail-group .badge-final{background-color:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.workflow-editor-page .details-panel .details-panel-content .detail-group .badge-normal{background-color:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.workflow-editor-page .details-panel .details-panel-content .detail-group .badge-role{background-color:#dbeafe;color:#2563eb;border:1px solid rgba(37,99,235,.2)}.workflow-editor-page .details-panel .details-panel-content .detail-group .state-name{font-weight:500;color:#2563eb}.workflow-editor-page .loading-spinner,.workflow-editor-page .error-state{text-align:center;padding:48px;color:#64748b}.state-list .state-item{display:flex;align-items:center;gap:16px;padding:16px;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:8px;background-color:#fff;transition:all .2s ease}.state-list .state-item:hover{background-color:#f8fafc;border-color:#dbeafe;box-shadow:0 1px 3px #2563eb1a}.state-list .state-item .state-icon{font-size:1.25rem;width:24px;text-align:center;color:#64748b}.state-list .state-item .state-info{flex:1}.state-list .state-item .state-info h4{margin:0 0 4px;font-size:1rem;color:#1e293b;font-weight:600}.state-list .state-item .state-info .state-badges{display:flex;gap:8px;flex-wrap:wrap}.state-list .state-item .state-info .state-badges .badge-initial,.state-list .state-item .state-info .state-badges .badge-final,.state-list .state-item .state-info .state-badges .badge-order{padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600}.state-list .state-item .state-info .state-badges .badge-initial{background-color:#22c55e1a;color:#1a9a49;border:1px solid rgba(34,197,94,.2)}.state-list .state-item .state-info .state-badges .badge-final{background-color:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.state-list .state-item .state-info .state-badges .badge-order{background-color:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.state-list .state-item .state-color{width:32px;height:32px;border-radius:4px;border:1px solid #e2e8f0;box-shadow:0 1px 2px #0000000d}.state-list .state-item .state-actions,.state-list .state-item .state-actions .delete-confirm-inline{display:flex;gap:8px;align-items:center}.state-list .empty-list{padding:24px;text-align:center;color:#64748b;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:4px}.transition-list .transition-item{display:flex;align-items:center;gap:16px;padding:16px;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:8px;background-color:#fff;transition:all .2s ease}.transition-list .transition-item:hover{background-color:#f8fafc;border-color:#dbeafe;box-shadow:0 1px 3px #2563eb1a}.transition-list .transition-item .transition-info{flex:1}.transition-list .transition-item .transition-info h4{margin:0 0 8px;font-size:1rem;color:#1e293b;font-weight:600}.transition-list .transition-item .transition-info .transition-path{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:.9rem}.transition-list .transition-item .transition-info .transition-path .from-state,.transition-list .transition-item .transition-info .transition-path .to-state{font-weight:500;color:#2563eb}.transition-list .transition-item .transition-info .transition-path .arrow{color:#94a3b8}.transition-list .transition-item .transition-info .transition-meta{display:flex;gap:8px;flex-wrap:wrap}.transition-list .transition-item .transition-info .transition-meta .badge-roles,.transition-list .transition-item .transition-info .transition-meta .badge-artifacts{padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600}.transition-list .transition-item .transition-info .transition-meta .badge-roles{background-color:#dbeafe;color:#2563eb;border:1px solid rgba(37,99,235,.2)}.transition-list .transition-item .transition-info .transition-meta .badge-artifacts{background-color:#f59e0b1a;color:#c57f08;border:1px solid rgba(245,158,11,.2)}.transition-list .transition-item .transition-actions,.transition-list .transition-item .transition-actions .delete-confirm-inline{display:flex;gap:8px;align-items:center}.transition-list .empty-list{padding:24px;text-align:center;color:#64748b;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:4px}.workflow-form,.state-form,.transition-form{background:#fff;padding:24px}.workflow-form h3,.state-form h3,.transition-form h3{margin:0 0 24px;font-size:1.5rem;color:#1e293b;font-weight:600}.workflow-form .error-message,.state-form .error-message,.transition-form .error-message{background-color:#fef2f2;color:#ef4444;padding:16px;border-radius:8px;border:1px solid #fecaca;border-left:4px solid #ef4444;margin-bottom:16px}.workflow-form .form-group,.state-form .form-group,.transition-form .form-group{margin-bottom:24px}.workflow-form .form-group label,.state-form .form-group label,.transition-form .form-group label{display:block;font-weight:500;color:#334155;margin-bottom:8px}.workflow-form .form-group label .required,.state-form .form-group label .required,.transition-form .form-group label .required{color:#ef4444}.workflow-form .form-group input[type=text],.workflow-form .form-group input[type=number],.workflow-form .form-group select,.state-form .form-group input[type=text],.state-form .form-group input[type=number],.state-form .form-group select,.transition-form .form-group input[type=text],.transition-form .form-group input[type=number],.transition-form .form-group select{width:100%;padding:8px 16px;border:1px solid #e2e8f0;border-radius:4px;font-size:1rem;background-color:#fff;color:#1e293b;transition:all .2s ease}.workflow-form .form-group input[type=text]:focus,.workflow-form .form-group input[type=number]:focus,.workflow-form .form-group select:focus,.state-form .form-group input[type=text]:focus,.state-form .form-group input[type=number]:focus,.state-form .form-group select:focus,.transition-form .form-group input[type=text]:focus,.transition-form .form-group input[type=number]:focus,.transition-form .form-group select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #dbeafe}.workflow-form .form-group input[type=text]:hover:not(:focus),.workflow-form .form-group input[type=number]:hover:not(:focus),.workflow-form .form-group select:hover:not(:focus),.state-form .form-group input[type=text]:hover:not(:focus),.state-form .form-group input[type=number]:hover:not(:focus),.state-form .form-group select:hover:not(:focus),.transition-form .form-group input[type=text]:hover:not(:focus),.transition-form .form-group input[type=number]:hover:not(:focus),.transition-form .form-group select:hover:not(:focus){border-color:#cbd5e1}.workflow-form .form-group input[type=color],.state-form .form-group input[type=color],.transition-form .form-group input[type=color]{width:80px;height:40px;border:1px solid #e2e8f0;border-radius:4px;cursor:pointer}.workflow-form .form-group .color-picker-wrapper,.state-form .form-group .color-picker-wrapper,.transition-form .form-group .color-picker-wrapper{display:flex;align-items:center;gap:16px}.workflow-form .form-group .color-picker-wrapper .color-preview,.state-form .form-group .color-picker-wrapper .color-preview,.transition-form .form-group .color-picker-wrapper .color-preview{padding:8px 16px;border:1px solid #e2e8f0;border-radius:4px;font-family:monospace;color:#334155;background-color:#f8fafc}.workflow-form .form-group .checkbox-label,.state-form .form-group .checkbox-label,.transition-form .form-group .checkbox-label{display:flex;align-items:center;gap:8px;font-weight:400;cursor:pointer;color:#334155}.workflow-form .form-group .checkbox-label input[type=checkbox],.state-form .form-group .checkbox-label input[type=checkbox],.transition-form .form-group .checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#2563eb}.workflow-form .form-group .checkbox-group,.state-form .form-group .checkbox-group,.transition-form .form-group .checkbox-group{display:flex;flex-direction:column;gap:16px}.workflow-form .form-group .checkbox-group .role-section,.state-form .form-group .checkbox-group .role-section,.transition-form .form-group .checkbox-group .role-section{padding:16px;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:4px}.workflow-form .form-group .checkbox-group .role-section .role-section-label,.state-form .form-group .checkbox-group .role-section .role-section-label,.transition-form .form-group .checkbox-group .role-section .role-section-label{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #cbd5e1}.workflow-form .form-group .checkbox-group .role-section .checkbox-label,.state-form .form-group .checkbox-group .role-section .checkbox-label,.transition-form .form-group .checkbox-group .role-section .checkbox-label{margin-top:8px}.workflow-form .form-group .checkbox-group .role-section .checkbox-label:first-of-type,.state-form .form-group .checkbox-group .role-section .checkbox-label:first-of-type,.transition-form .form-group .checkbox-group .role-section .checkbox-label:first-of-type{margin-top:0}.workflow-form .form-group .form-help,.state-form .form-group .form-help,.transition-form .form-group .form-help{display:block;margin-top:4px;font-size:.85rem;color:#64748b}.workflow-form .form-actions,.state-form .form-actions,.transition-form .form-actions{display:flex;gap:16px;margin-top:24px}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.modal-overlay .modal-content{background:#fff;border-radius:8px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.btn-primary,.btn-primary-sm,.btn-secondary,.btn-secondary-sm,.btn-danger,.btn-danger-sm,.btn-icon,.btn-icon-danger{border:none;border-radius:4px;cursor:pointer;font-weight:500;transition:all .2s}.btn-primary:disabled,.btn-primary-sm:disabled,.btn-secondary:disabled,.btn-secondary-sm:disabled,.btn-danger:disabled,.btn-danger-sm:disabled,.btn-icon:disabled,.btn-icon-danger:disabled{opacity:.6;cursor:not-allowed}.btn-primary,.btn-primary-sm{background-color:#2563eb;color:#fff;padding:8px 24px;font-size:1rem;box-shadow:0 1px 2px #2563eb1a}.btn-primary:hover:not(:disabled),.btn-primary-sm:hover:not(:disabled){background-color:#1d4ed8;box-shadow:0 2px 4px #2563eb33}.btn-primary-sm{padding:6px 16px;font-size:.9rem}.btn-secondary,.btn-secondary-sm{background-color:#fff;color:#334155;padding:8px 24px;font-size:1rem;border:1px solid #e2e8f0;box-shadow:0 1px 2px #0000000d}.btn-secondary:hover:not(:disabled),.btn-secondary-sm:hover:not(:disabled){background-color:#f8fafc;border-color:#cbd5e1}.btn-secondary-sm{padding:6px 16px;font-size:.9rem}.btn-danger,.btn-danger-sm{background-color:#ef4444;color:#fff;padding:8px 24px;font-size:1rem;box-shadow:0 1px 2px #ef44441a}.btn-danger:hover:not(:disabled),.btn-danger-sm:hover:not(:disabled){background-color:#dc2626;box-shadow:0 2px 4px #ef444433}.btn-danger-sm{padding:6px 16px;font-size:.85rem}.btn-icon,.btn-icon-danger{background:none;padding:6px;font-size:1rem;color:#64748b}.btn-icon:hover:not(:disabled),.btn-icon-danger:hover:not(:disabled){color:#1e293b;background-color:#f1f5f9}.btn-icon-danger{color:#ef4444}.btn-icon-danger:hover:not(:disabled){color:#fff;background-color:#ef4444}@media(max-width:1200px){.workflow-editor-page .editor-layout{grid-template-columns:1fr}.workflow-editor-page .details-panel{width:100%;position:relative;top:0;max-height:none}.workflow-editor-page .editor-lists{grid-template-columns:1fr}}@media(max-width:768px){.workflow-list-page .workflow-cards{grid-template-columns:1fr}.workflow-create-page,.workflow-editor-page{padding:16px}.workflow-editor-page .page-header .header-left{flex-direction:column;align-items:flex-start}}.dependency-graph-container{width:100%;height:100%;min-height:600px;background:#f8fafc;border-radius:8px;overflow:hidden}.dependency-node{background:#fff;border:2px solid #2563eb;border-radius:8px;min-width:180px;box-shadow:0 2px 8px #2563eb1a;transition:box-shadow .2s ease}.dependency-node:hover{box-shadow:0 4px 16px #2563eb33}.dependency-node .node-header{padding:8px 12px;border-radius:6px 6px 0 0;display:flex;justify-content:space-between;align-items:center}.dependency-node .node-header .node-type{color:#fff;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.dependency-node .node-header .blocked-icon{font-size:12px;color:#fff}.dependency-node .node-body{padding:12px}.dependency-node .node-body .node-name{font-weight:600;font-size:14px;color:#1e293b;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.dependency-node .node-body .node-state{font-size:12px;color:#475569;margin-bottom:8px}.dependency-node .node-body .node-deps{display:flex;gap:8px;font-size:11px}.dependency-node .node-body .node-deps .dep-count{padding:2px 6px;border-radius:4px;background:#f1f5f9;color:#475569}.dependency-node .node-body .node-deps .dep-count.predecessors{color:#ef4444;background:#fee2e2}.dependency-node .node-body .node-deps .dep-count.successors{color:#2563eb;background:#dbeafe}.graph-panel{background:#fff;border-radius:8px;padding:12px;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d}.graph-panel .direction-toggle{display:flex;gap:4px;margin-bottom:12px}.graph-panel .direction-toggle button{padding:8px 12px;border:1px solid #e2e8f0;background:#fff;border-radius:6px;cursor:pointer;font-size:16px;color:#475569;transition:all .2s ease}.graph-panel .direction-toggle button:hover{background:#f8fafc;border-color:#2563eb;color:#2563eb}.graph-panel .direction-toggle button.active{background:#2563eb;color:#fff;border-color:#2563eb}.graph-stats{display:flex;flex-direction:column;gap:8px}.graph-stats .stat-item{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #f1f5f9}.graph-stats .stat-item:last-child{border-bottom:none}.graph-stats .stat-item .stat-value{font-weight:600;font-size:16px;color:#1e293b}.graph-stats .stat-item .stat-label{font-size:12px;color:#475569}.graph-stats .stat-item.blocked .stat-value{color:#ef4444}.graph-stats .stat-item.completed .stat-value{color:#10b981}.graph-stats .stat-item.in-progress .stat-value{color:#f59e0b}.dependency-graph-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;color:#475569}.dependency-graph-loading .spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}.dependency-graph-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;color:#475569;text-align:center}.dependency-graph-empty p{margin:4px 0}.export-panel .export-dropdown{position:relative}.export-panel .export-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:14px;color:#1e293b;transition:all .2s ease;box-shadow:0 1px 3px #0000000d}.export-panel .export-btn:hover:not(:disabled){background:#f8fafc;border-color:#2563eb;color:#2563eb}.export-panel .export-btn:disabled{opacity:.5;cursor:not-allowed;background:#f1f5f9}.export-panel .export-btn .export-icon{font-size:16px}.export-panel .export-btn .export-spinner{width:14px;height:14px;border:2px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}.export-panel .export-menu{position:absolute;top:100%;left:0;margin-top:4px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 12px #0000001a;overflow:hidden;z-index:100;min-width:160px}.export-panel .export-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:none;border:none;cursor:pointer;font-size:14px;color:#1e293b;text-align:left;transition:background .2s ease}.export-panel .export-menu button:hover{background:#f8fafc}.export-panel .export-menu button:not(:last-child){border-bottom:1px solid #f1f5f9}.export-panel .export-menu button .format-icon{font-size:16px;color:#475569}.export-overlay{position:absolute;inset:0;background:#fffffff2;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.export-overlay .export-progress{text-align:center;color:#1e293b}.export-overlay .export-progress .spinner{width:48px;height:48px;border:4px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}.export-overlay .export-progress p{margin:0;font-size:16px;font-weight:500}.export-overlay .export-progress p.export-hint{margin-top:8px;font-size:13px;font-weight:400;color:#475569}.node-details-panel{position:absolute;right:0;top:0;bottom:0;width:320px;background:#fff;border-left:1px solid #e2e8f0;box-shadow:-4px 0 16px #00000014;padding:20px;overflow-y:auto;z-index:10}.node-details-panel .panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.node-details-panel .panel-header h3{margin:0;font-size:18px;color:#1e293b}.node-details-panel .panel-header .close-btn{background:none;border:none;font-size:20px;color:#94a3b8;cursor:pointer;transition:color .2s ease}.node-details-panel .panel-header .close-btn:hover{color:#1e293b}.node-details-panel .panel-section{margin-bottom:20px}.node-details-panel .panel-section h4{font-size:12px;text-transform:uppercase;color:#94a3b8;margin:0 0 8px;letter-spacing:.5px;font-weight:600}.node-details-panel .panel-section .section-content{background:#f8fafc;padding:12px;border-radius:6px;font-size:14px;color:#1e293b}.node-details-panel .dependency-list{list-style:none;padding:0;margin:0}.node-details-panel .dependency-list li{padding:8px 12px;background:#f8fafc;border-radius:6px;margin-bottom:6px;font-size:13px}.node-details-panel .dependency-list li .dep-type{font-size:10px;color:#94a3b8;text-transform:uppercase}.node-details-panel .dependency-list li .dep-name{font-weight:500;color:#1e293b}.node-details-panel .dependency-list li .dep-state{font-size:12px;color:#475569}.node-details-panel .dependency-list li.blocking{border-left:3px solid #ef4444}.node-details-panel .dependency-list li.completed{border-left:3px solid #10b981}.dependency-graph-page{display:flex;flex-direction:column;height:100%;padding:20px;background:#f8fafc}.dependency-graph-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-shrink:0}.dependency-graph-page .page-header h1{margin:0;font-size:24px;color:#1e293b}.dependency-graph-page .page-header .project-selector{display:flex;align-items:center;gap:12px}.dependency-graph-page .page-header .project-selector label{font-weight:500;color:#475569}.dependency-graph-page .page-header .project-selector select{padding:8px 16px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;font-size:14px;color:#1e293b;min-width:250px;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.dependency-graph-page .page-header .project-selector select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.dependency-graph-page .page-header .project-selector select:disabled{background:#f1f5f9;color:#94a3b8;cursor:not-allowed}.dependency-graph-page .error-message{background:#fef2f2;color:#ef4444;padding:12px 16px;border-radius:6px;margin-bottom:16px;border:1px solid #fee2e2}.dependency-graph-page .graph-wrapper{flex:1;min-height:0;position:relative;background:#fff;border-radius:8px;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d;overflow:hidden}.dependency-graph-page .loading-state,.dependency-graph-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#475569}.dependency-graph-page .loading-state .spinner,.dependency-graph-page .empty-state .spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.dependency-graph-page .loading-state p,.dependency-graph-page .empty-state p{margin:0;font-size:16px}.dependency-graph-page .node-details-panel{position:absolute;right:0;top:0;bottom:0;width:360px;background:#fff;border-left:1px solid #e2e8f0;box-shadow:-4px 0 16px #00000014;padding:20px;overflow-y:auto;z-index:10;animation:slideIn .2s ease-out}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.dependency-graph-page .node-details-panel .panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e2e8f0}.dependency-graph-page .node-details-panel .panel-header h3{margin:0;font-size:18px;color:#1e293b}.dependency-graph-page .node-details-panel .panel-header .close-btn{background:none;border:none;font-size:24px;color:#94a3b8;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.dependency-graph-page .node-details-panel .panel-header .close-btn:hover{background:#f1f5f9;color:#1e293b}.dependency-graph-page .node-details-panel .panel-section{margin-bottom:20px}.dependency-graph-page .node-details-panel .panel-section h4{font-size:12px;text-transform:uppercase;color:#94a3b8;margin:0 0 8px;letter-spacing:.5px;font-weight:600}.dependency-graph-page .node-details-panel .panel-section .section-content{background:#f8fafc;padding:12px;border-radius:6px;font-size:14px;color:#1e293b}.dependency-graph-page .node-details-panel .panel-section .info-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0}.dependency-graph-page .node-details-panel .panel-section .info-row:not(:last-child){border-bottom:1px solid #e2e8f0}.dependency-graph-page .node-details-panel .panel-section .info-row .label{color:#475569;font-size:13px}.dependency-graph-page .node-details-panel .panel-section .info-row .value{font-weight:500;color:#1e293b}.dependency-graph-page .node-details-panel .panel-section .info-row .value.type-badge{background:#2563eb;color:#fff;padding:2px 8px;border-radius:4px;font-size:11px;text-transform:uppercase}.dependency-graph-page .node-details-panel .panel-section .info-row .value.status-badge{padding:2px 8px;border-radius:4px;font-size:12px}.dependency-graph-page .node-details-panel .panel-section .info-row .value.status-badge.valid{background:#dcfce7;color:#16a34a}.dependency-graph-page .node-details-panel .panel-section .info-row .value.status-badge.blocked{background:#fee2e2;color:#ef4444}.dependency-graph-page .node-details-panel .panel-section .info-row .value.status-badge.unknown{background:#f1f5f9;color:#94a3b8}.dependency-graph-page .node-details-panel .panel-section .dependency-counts{display:flex;gap:12px}.dependency-graph-page .node-details-panel .panel-section .dependency-counts .count-item{flex:1;text-align:center;padding:12px;border-radius:6px}.dependency-graph-page .node-details-panel .panel-section .dependency-counts .count-item .count{display:block;font-size:24px;font-weight:700;margin-bottom:4px}.dependency-graph-page .node-details-panel .panel-section .dependency-counts .count-item .label{font-size:11px;color:#475569}.dependency-graph-page .node-details-panel .panel-section .dependency-counts .count-item.predecessors{background:#fef2f2}.dependency-graph-page .node-details-panel .panel-section .dependency-counts .count-item.predecessors .count{color:#ef4444}.dependency-graph-page .node-details-panel .panel-section .dependency-counts .count-item.successors{background:#eff6ff}.dependency-graph-page .node-details-panel .panel-section .dependency-counts .count-item.successors .count{color:#2563eb}
