:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.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%}.editor-container{display:flex;flex-direction:column;height:100vh;width:100vw;font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei;background:#181818;overflow:hidden;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.top-menu-bar{height:48px;background:#1d1d1d;border-bottom:1px solid #333;display:flex;align-items:center;justify-content:space-between;padding:0 16px;z-index:100;flex-shrink:0}.top-menu-left,.top-menu-right{display:flex;align-items:center;gap:12px}.home-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;color:#a6a6a6}.home-button:hover{background:#3b82f61a;color:#e5e5e5}.home-icon{width:20px;height:20px;color:inherit;filter:brightness(0) saturate(100%) invert(67%) sepia(0%) saturate(0%) hue-rotate(207deg) brightness(96%) contrast(92%)}.home-button:hover .home-icon{filter:brightness(0) saturate(100%) invert(97%) sepia(0%) saturate(2%) hue-rotate(322deg) brightness(106%) contrast(90%)}.search-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;color:#a6a6a6}.search-button:hover{background:#3b82f61a;color:#e5e5e5}.search-icon{width:20px;height:20px;color:inherit;filter:brightness(0) saturate(100%) invert(100%)}.preview-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;color:#a6a6a6}.preview-button:hover{background:#3b82f61a;color:#e5e5e5}.preview-icon{width:20px;height:20px;color:inherit;filter:brightness(0) saturate(100%) invert(100%)}.release-modal-overlay{position:fixed;inset:0;background:#0000009e;display:flex;align-items:center;justify-content:center;z-index:3000}.release-modal{width:min(760px,calc(100vw - 48px));max-height:calc(100vh - 72px);display:flex;flex-direction:column;gap:16px;padding:20px;border:1px solid #343434;border-radius:14px;background:#1b1b1b;box-shadow:0 24px 80px #00000073;overflow:hidden}.release-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.release-modal-header h3{margin:0;color:#f5f5f5;font-size:18px}.release-modal-header p{margin:6px 0 0;color:#9ca3af;font-size:13px}.release-close-button,.release-primary-button,.release-secondary-button{border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.release-close-button{padding:8px 12px;background:#2a2a2a;color:#d1d5db}.release-primary-button{padding:9px 14px;background:#2563eb;color:#fff;font-weight:600}.release-secondary-button{padding:9px 14px;background:#2a2a2a;color:#d1d5db}.release-primary-button:hover,.release-secondary-button:hover,.release-close-button:hover{filter:brightness(1.08)}.release-primary-button:disabled,.release-secondary-button:disabled,.release-close-button:disabled{opacity:.55;cursor:not-allowed}.release-modal-actions{display:flex;align-items:center;gap:12px}.release-error-banner{padding:10px 12px;border:1px solid rgba(248,113,113,.35);border-radius:10px;background:#7f1d1d59;color:#fecaca;font-size:13px}.release-current-summary{color:#d1d5db;font-size:13px}.release-current-summary span{margin-left:8px;color:#fff;font-weight:600}.release-list{display:flex;flex-direction:column;gap:12px;overflow:auto;padding-right:4px}.release-empty-state{padding:24px 12px;border:1px dashed #3a3a3a;border-radius:12px;color:#9ca3af;text-align:center}.release-item{display:flex;justify-content:space-between;gap:16px;padding:14px;border:1px solid #303030;border-radius:12px;background:#202020}.release-item-main{display:flex;flex-direction:column;gap:8px;min-width:0}.release-item-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.release-item-id{color:#f3f4f6;font-size:13px;font-weight:600;word-break:break-all}.release-current-badge{padding:3px 8px;border-radius:999px;background:#2563eb2e;color:#93c5fd;font-size:12px}.release-item-meta{display:flex;gap:16px;flex-wrap:wrap;color:#9ca3af;font-size:12px}.release-item-links{display:flex;gap:14px;flex-wrap:wrap}.release-item-links a{color:#93c5fd;font-size:12px;text-decoration:none}.release-item-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.editor-content{display:flex;flex:1;min-height:0;overflow:hidden}.canvas{flex:1;position:relative;background-color:#202020;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.project-name-container{display:flex;align-items:center;flex-shrink:0}.project-name-display{display:flex;align-items:center;gap:8px;padding:6px 12px;min-width:180px;max-width:280px;cursor:pointer;border-radius:6px;transition:all .2s ease}.project-name-display:hover{background:#2a2a2a4d}.project-icon{width:20px;height:20px;flex-shrink:0}.project-name-text{color:#fff;font-size:14px;font-weight:700;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.project-id-text{color:#888;font-size:13px;font-weight:400;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;margin-left:4px}.project-name-input{padding:6px 12px;border-radius:6px;border:1px solid #3b82f6;background:#2a2a2af2;color:#fff;font-size:14px;font-weight:700;min-width:180px;max-width:280px;outline:none;transition:all .2s ease;box-shadow:0 0 0 3px #3b82f633;user-select:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text}.project-name-input::placeholder{color:#888;font-weight:700}.save-status{display:flex;align-items:center;gap:5px;padding:3px 8px;border-radius:4px;font-size:12px;transition:all .3s ease;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;opacity:.6}.save-status.saving{background:#fbbf240d;color:#b8902d}.save-status.saved{background:#22c55e0d;color:#5a9668}.save-status-icon{font-size:12px;display:flex;align-items:center;justify-content:center}.save-status.saving .save-status-icon{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.save-status-text{font-size:12px;font-weight:400}.left-panel{--left-panel-width: 300px;width:300px;padding:0;background:#1d1d1d;color:#f1f1f1;border-right:1px solid #333;display:flex;flex-direction:column;gap:0;transition:width .3s ease,padding .3s ease;position:relative;height:100%;overflow-y:hidden;overscroll-behavior:contain}.left-panel.collapsed{--left-panel-width: 56px;width:56px;padding:0}.left-panel-two-cols{display:flex;gap:0;flex:1;min-height:0;overflow:hidden}.left-sidenav{display:flex;flex-direction:column;align-items:center;gap:8px;width:56px;background:#181818;border-right:1px solid #2a2a2a;padding:12px 0}.left-sidenav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:56px;padding:10px 6px;background:transparent;border:none;color:#a6a6a6;cursor:pointer;transition:all .15s ease-in-out}.left-sidenav-icon{width:20px;height:20px;display:inline-block}.left-sidenav-icon-svg{width:20px;height:20px;display:block;line-height:0}.left-sidenav-icon-svg svg{width:20px;height:20px;display:block}.left-sidenav-icon-svg svg,.left-sidenav-icon-svg svg *{stroke:currentColor}.left-sidenav-item span{font-size:11px}.left-sidenav-item:hover{color:#e5e5e5}.left-sidenav-item.active{color:#3b82f6}.left-sidenav-item{border:none;outline:none}.left-sidenav-item:focus{outline:none;box-shadow:none}.left-sidenav-item:focus-visible{outline:none;box-shadow:none}.left-sidenav-item:active{outline:none;box-shadow:none}.left-panel-content{flex:1;display:flex;flex-direction:column;gap:12px;min-height:0;overflow-y:auto;padding:12px 16px 12px 12px;background:#1d1d1d}.left-panel-content{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0) transparent}.left-panel-content::-webkit-scrollbar{width:6px}.left-panel-content::-webkit-scrollbar-track{background:transparent}.left-panel-content::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:4px}.left-panel-content::-webkit-scrollbar-thumb:hover{background:#ffffff47}.left-panel-functions-header{font-weight:700;font-size:14px;color:#fff;border-bottom:1px solid #333;padding-bottom:6px;margin-bottom:4px}.left-panel-functions{margin-bottom:12px}.left-panel-functions-toggle{width:100%;background:#2f2f2f;color:#fff;border:none;border-radius:6px;padding:10px 12px;cursor:pointer;font-weight:600;font-size:14px;transition:all .15s ease-in-out;box-shadow:0 2px 6px #0006;display:flex;align-items:center;justify-content:space-between}.left-panel-functions-toggle:hover{background:#3b82f6;transform:translateY(-1px);box-shadow:0 4px 10px #2563eb80}.left-panel-functions-menu{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:8px;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.left-panel-import-btn{background:#2f2f2f;color:#fff;border:none;border-radius:6px;padding:8px 12px;cursor:pointer;font-weight:600;font-size:14px;transition:all .15s ease-in-out;text-align:center;position:relative;overflow:hidden}.left-panel-import-btn:hover{background:#3b82f6;transform:translateY(-1px);box-shadow:0 4px 10px #2563eb80}.left-panel-import-btn input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.left-panel-function-btn{background:#2f2f2f;color:#fff;border:none;border-radius:8px;padding:16px 12px;cursor:pointer;font-weight:500;font-size:13px;transition:all .15s ease-in-out;box-shadow:0 2px 6px #0006;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;aspect-ratio:1 / 1;min-height:80px}.left-panel-function-btn:hover{background:#3b82f6;transform:translateY(-1px);box-shadow:0 4px 10px #2563eb80}.left-panel-function-btn:active{transform:scale(.96);box-shadow:inset 0 0 6px #00000080}.function-btn-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.function-btn-icon svg{width:24px;height:24px;display:block}.function-btn-icon svg path{stroke:#fff}.left-panel-add{display:flex;gap:8px}.left-panel-add input{flex:1;padding:6px 8px;border-radius:4px;border:1px solid #444;background:#2a2a2a;color:#fff}.left-panel-add button{background:#2f2f2f;color:#fff;border:none;border-radius:6px;padding:6px 10px;cursor:pointer;font-weight:600}.left-panel-list{display:flex;flex-direction:column;gap:12px}.left-panel-item{display:flex;flex-direction:column;background:#242424;border:1px solid #333;border-radius:6px;padding:12px;gap:12px}.left-panel-item.active{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f640}.left-panel-item.dragging{opacity:.5;cursor:grabbing!important}.left-panel-item.drag-over{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f666;background:#3b82f61a;transform:scale(1.02)}.chapter-active-dot{width:8px;height:8px;border-radius:50%;background:#3b82f6;box-shadow:0 0 8px #3b82f6bf}.left-panel-item-actions{display:flex;gap:12px;width:100%}.left-panel-item button{background:#3f3f3f;color:#fff;border:none;border-radius:4px;padding:6px 12px;cursor:pointer;flex:1}.left-panel-item button[data-kebab=true],.left-panel-item-actions button[data-kebab=true]{background:transparent;color:#666;border:none;padding:4px 8px;font-size:16px;transition:all .2s ease;flex:none;min-width:auto}.left-panel-item button[data-kebab=true]:hover,.left-panel-item-actions button[data-kebab=true]:hover{background:#ffffff14;color:#a6a6a6}.left-panel-item button[data-kebab=true]:focus,.left-panel-item-actions button[data-kebab=true]:focus{outline:none}.left-panel-item button[data-kebab=true]:active,.left-panel-item-actions button[data-kebab=true]:active{background:#ffffff1f}.left-panel-empty{opacity:.7;font-size:13px;padding:8px 0}.panel{width:400px;padding:20px;background:#1e1e1e;color:#f1f1f1;border-left:1px solid #333;box-shadow:-2px 0 6px #0006;display:flex;flex-direction:column;height:100%;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.panel h3{margin-bottom:12px;font-size:16px;border-bottom:1px solid #444;padding-bottom:4px;color:#fff}.toolbar{position:absolute;top:18px;left:calc(var(--left-panel-width, 220px) + 20px);display:flex;gap:10px;z-index:2000;transition:left .3s ease}.toolbar button,.import-btn{background:#2f2f2f;color:#fff;border:none;border-radius:6px;padding:6px 12px;cursor:pointer;font-weight:600;font-size:14px;transition:all .15s ease-in-out;box-shadow:0 2px 6px #0006}.toolbar button:hover,.import-btn:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 10px #2563eb80}.toolbar button:active{transform:scale(.96);box-shadow:inset 0 0 6px #00000080}.import-btn{position:relative;overflow:hidden}.import-btn input{display:none}.context-menu{position:absolute;background:#2a2a2a;color:#f1f1f1;border-radius:6px;border:1px solid #444;padding:6px;width:160px;box-shadow:0 6px 12px #00000080;z-index:2000}.context-menu div{padding:6px 10px;cursor:pointer;border-radius:4px;transition:background .15s}.context-menu div:hover{background:#3b82f6}.panel label{display:block;margin-bottom:12px;font-size:14px;color:#ccc}.panel input{width:100%;margin-top:4px;padding:6px 8px;border-radius:4px;border:1px solid #444;background:#2a2a2a;color:#fff;outline:none;user-select:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text}.panel input:focus{border-color:#3b82f6;background:#262626}.panel select{width:100%;margin-top:4px;padding:8px 40px 8px 10px;border-radius:6px;border:1px solid #444;background:#2a2a2a;color:#fff;outline:none;font-size:14px;cursor:pointer;transition:all .2s ease;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6,9 12,15 18,9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}.panel select:focus{border-color:#3b82f6;background-color:#262626;box-shadow:0 0 0 2px #3b82f633}.panel select:hover{border-color:#555;background-color:#2f2f2f}.panel select option{background:#2a2a2a;color:#fff;padding:8px 12px}.dialogue-data-block{display:flex;flex-direction:column;gap:12px;margin-bottom:16px;padding:12px 12px 8px;background:#1f1f1f;border:1px solid #333;border-radius:8px}.dialogue-field{display:flex;flex-direction:column;gap:6px}.dialogue-field-title,.dialogue-field-label{font-size:13px;color:#9ca3af;letter-spacing:.2px;white-space:nowrap}.dialogue-field-row{display:flex;gap:12px;align-items:flex-end}.dialogue-field-column{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.dialogue-avatar-wrapper{display:flex;align-items:center;gap:8px;width:100%}.dialogue-avatar-placeholder{padding:6px 8px;background:#1a1a1a;border:1px dashed #444;border-radius:4px;color:#9ca3af;font-size:12px;min-width:0;width:100%;text-align:center;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dialogue-content-textarea{width:100%;padding:8px 12px;margin-top:0;box-sizing:border-box;border-radius:6px;border:1px solid #444;background:#2a2a2a;color:#fff;outline:none;resize:vertical;font-family:inherit;font-size:14px;line-height:1.4;min-height:120px;transition:border-color .2s ease,box-shadow .2s ease}.dialogue-select-wrapper{position:relative;width:100%;border:1px solid #444;border-radius:4px;background:#1a1a1a;padding:6px 12px;box-sizing:border-box;min-height:32px;display:flex;align-items:center;transition:border-color .2s ease,background .2s ease}.dialogue-select-wrapper:after{content:"▾";position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#9ca3af;font-size:12px;pointer-events:none}.dialogue-select-wrapper:focus-within{border-color:#3b82f6;background:#222}.dialogue-select-wrapper select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.dialogue-select-wrapper select:focus{outline:none}.dialogue-select-wrapper .dialogue-select-display{pointer-events:none;color:#fff;font-size:14px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:calc(100% - 24px)}.dialogue-character-select,.dialogue-avatar-select,.dialogue-position-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;background:transparent}.dialogue-character-select option,.dialogue-avatar-select option,.dialogue-position-select option{color:#000}.dialogue-content-container{display:flex;flex-direction:column;border:1px solid transparent;border-radius:6px;background:transparent;overflow:hidden;width:100%;box-sizing:border-box;transition:border-color .2s ease}.dialogue-content-container:focus-within{border-color:#3b82f6}.dialogue-content-toolbar{display:flex;align-items:center;gap:6px;padding:6px 8px;background:#242424;border-bottom:1px solid #333;flex-wrap:nowrap;overflow:hidden;width:100%;box-sizing:border-box}.dialogue-content-toolbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}.dialogue-type-selector-wrapper{position:relative;flex:1 1 0;min-width:0;max-width:100%}.dialogue-content-toolbar .dialogue-type-selector-wrapper.dialogue-select-wrapper{padding:0;border:none;background:transparent;width:100%;min-width:0}.dialogue-type-select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2}.dialogue-content-toolbar .dialogue-type-selector-wrapper.dialogue-select-wrapper:after{content:"▾";position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#9ca3af;font-size:12px;pointer-events:none;z-index:1}.dialogue-content-toolbar .dialogue-type-selector-wrapper.dialogue-select-wrapper .dialogue-select-display{padding:6px 24px 6px 10px;background:transparent;border:none;border-radius:4px;color:#fff;font-size:13px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transition:all .2s ease;width:100%;box-sizing:border-box;height:32px;display:flex;align-items:center;min-width:0;flex:1}.dialogue-content-toolbar .dialogue-type-selector-wrapper.dialogue-select-wrapper:focus-within .dialogue-select-display{background:#222}.dialogue-content-control{flex:1 1 0;position:relative;min-width:0;max-width:100%;overflow:hidden}.dialogue-content-toolbar .dialogue-content-control.dialogue-select-wrapper{padding:0;border:none;background:transparent;height:32px;width:100%;min-width:0}.dialogue-content-toolbar .dialogue-content-control.dialogue-select-wrapper:after{content:"▾";position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#9ca3af;font-size:12px;pointer-events:none;z-index:1}.dialogue-content-select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2}.dialogue-content-toolbar .dialogue-content-control.dialogue-select-wrapper .dialogue-select-display{padding:6px 24px 6px 10px;background:transparent;border:none;border-radius:4px;color:#fff;font-size:13px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transition:all .2s ease;width:100%;box-sizing:border-box;height:32px;display:flex;align-items:center;min-width:0;flex:1}.dialogue-content-toolbar .dialogue-content-control.dialogue-select-wrapper:focus-within .dialogue-select-display{background:#222}.dialogue-content-toolbar .dialogue-content-control.dialogue-select-wrapper .dialogue-select-display.dialogue-select-placeholder{color:#666;opacity:.7}.dialogue-content-select option{white-space:normal}.dialogue-content-btn{padding:6px 12px;background:transparent;border:none;border-radius:4px;color:#fff;font-size:13px;font-weight:400;cursor:pointer;outline:none;transition:all .2s ease;flex-shrink:0;white-space:nowrap}.dialogue-content-btn:hover{background:#222}.dialogue-content-btn:active{background:#2a2a2a}.dialogue-content-btn-close{padding:6px 10px;font-size:18px;line-height:1;font-weight:400;opacity:.5;transition:opacity .2s ease}.dialogue-content-btn-close:hover{opacity:.8}.dialogue-content-textarea-new{width:100%;padding:8px;box-sizing:border-box;border:1px solid #444;border-radius:6px;background:#2a2a2a;color:#fff;outline:none;resize:vertical;font-family:inherit;font-size:14px;line-height:1.5;height:100px;transition:none}.dialogue-content-textarea-new:focus{outline:none}.dialogue-content-container:focus-within .dialogue-content-textarea-new{border-color:transparent}.dialogue-content-textarea-new::placeholder{color:#666}.dialogue-content-char-count{position:absolute;bottom:6px;right:8px;font-size:12px;color:#666;pointer-events:none;-webkit-user-select:none;user-select:none;background:#2a2a2acc;padding:2px 6px;border-radius:4px}.dialogue-insert-variable-btn{position:absolute;bottom:6px;left:8px;padding:4px 10px;font-size:12px;color:#666;background:transparent;border:none;border-radius:4px;cursor:pointer;transition:color .2s ease;-webkit-user-select:none;user-select:none;z-index:10}.dialogue-insert-variable-btn:hover{color:#999}.dialogue-insert-variable-btn:active{color:#aaa}.dialogue-variable-selector{position:fixed;background:#2a2a2a;border:1px solid #444;border-radius:6px;box-shadow:0 4px 12px #0006;z-index:10000;overflow:hidden}.dialogue-variable-selector-title{padding:8px 12px;font-size:12px;color:#999;border-bottom:1px solid #333}.dialogue-variable-selector-list{max-height:160px;overflow-y:auto}.dialogue-variable-selector-group-title{padding:6px 12px;font-size:11px;color:#666;background:#222;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.dialogue-variable-selector-item{padding:8px 12px;cursor:pointer;transition:background .2s ease;display:flex;align-items:center;gap:8px}.dialogue-variable-selector-item:hover{background:#333}.dialogue-variable-name{color:#fff;font-size:13px}.dialogue-variable-type{color:#999;font-size:11px}.dialogue-variable-selector-empty{padding:12px;text-align:center;color:#666;font-size:12px}.role-avatar-preview{margin-top:8px;display:flex;align-items:center;gap:8px}.role-avatar-preview img{width:40px;height:40px;border-radius:50%;border:2px solid #444;object-fit:cover;transition:border-color .2s ease}.role-avatar-preview img:hover{border-color:#3b82f6}.left-panel-item-content{width:100%}.left-panel-item-name{font-weight:600;color:#fff;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.left-panel-item-desc{font-size:12px;color:#aaa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.left-panel-add-form{display:flex;flex-direction:column;gap:12px;padding:12px;background:#242424;border-radius:8px;border:1px solid #333;margin-bottom:12px}.left-panel-edit-form{display:flex;flex-direction:column;gap:12px;width:100%}.left-panel-edit-form input,.left-panel-edit-form select,.left-panel-add-form input,.left-panel-add-form select{padding:6px 8px;border-radius:4px;border:1px solid #444;background:#2a2a2a;color:#fff;outline:none}.left-panel-edit-form input:focus,.left-panel-edit-form select:focus,.left-panel-add-form input:focus,.left-panel-add-form select:focus{border-color:#3b82f6;background:#262626}.left-panel-add-form button{background:#2f2f2f;color:#fff;border:1px solid #444;border-radius:6px;padding:6px 12px;cursor:pointer;font-weight:600;font-size:16px;transition:all .15s ease;min-width:32px;height:32px;display:flex;align-items:center;justify-content:center}.left-panel-add-form button:hover{background:#3a3a3a;border-color:#555}.left-panel-add-form button:active{background:#252525}.react-flow__background{opacity:.4}.react-flow__controls button{background:#2d2d2d!important;color:#fff!important;border:1px solid #444!important}.react-flow__controls button:hover{background:#3b82f6!important;color:#fff!important}.react-flow__minimap{background:#222!important;border:1px solid #333!important}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#1a1a1a}::-webkit-scrollbar-thumb{background:#3b82f6;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#2563eb}.panel::-webkit-scrollbar{width:6px}.panel::-webkit-scrollbar-track{background:transparent}.panel::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.panel::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.panel{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}@keyframes shimmer{0%{left:-100%}to{left:100%}}.search-modal-overlay{position:fixed;inset:0;background:#0009;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.search-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:600px;max-height:80vh;background:#2a2a2a;border:1px solid #444;border-radius:12px;box-shadow:0 8px 32px #00000080;z-index:1001;display:flex;flex-direction:column;overflow:hidden}.search-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #333;background:#252525}.search-modal-header h3{margin:0;font-size:16px;font-weight:600;color:#f1f1f1}.search-modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:#a6a6a6;font-size:20px;cursor:pointer;transition:all .2s ease}.search-modal-close:hover{background:#ffffff1a;color:#fff}.search-modal-controls{padding:16px 20px;display:flex;flex-direction:column;gap:12px;border-bottom:1px solid #333}.search-type-selector{display:flex;gap:8px}.search-type-btn{flex:1;padding:8px 16px;background:#333;border:1px solid #444;border-radius:6px;color:#a6a6a6;font-size:13px;cursor:pointer;transition:all .2s ease}.search-type-btn:hover{background:#3a3a3a;border-color:#555;color:#e5e5e5}.search-type-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.search-input{width:100%;padding:10px 14px;background:#1d1d1d;border:1px solid #444;border-radius:6px;color:#fff;font-size:14px;outline:none;transition:all .2s ease}.search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.search-input::placeholder{color:#666}.search-results{flex:1;overflow-y:auto;padding:12px 0;max-height:50vh}.search-empty{padding:40px 20px;text-align:center;color:#666;font-size:14px}.search-results-list{display:flex;flex-direction:column}.search-result-item{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;cursor:pointer;transition:all .2s ease;border-bottom:1px solid #333}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:#3b82f61a}.search-result-info{display:flex;align-items:center;gap:12px;flex:1}.search-result-id{font-size:12px;color:#888;font-family:Monaco,Courier New,monospace;background:#1d1d1d;padding:4px 8px;border-radius:4px}.search-result-label{font-size:14px;color:#f1f1f1;font-weight:500}.search-result-type{font-size:13px;color:#a6a6a6;white-space:nowrap}.media-type-tabs{display:flex;gap:24px;margin-bottom:16px;padding:0 12px;position:relative;border-bottom:1px solid #333}.media-type-tab{padding:10px 4px;background:transparent;border:none;outline:none;color:#a6a6a6;font-size:13px;font-weight:500;cursor:pointer;transition:color .2s ease;white-space:nowrap;text-align:center;position:relative}.media-type-tab:hover{color:#e5e5e5}.media-type-tab:focus{outline:none}.media-type-tab.active{color:#3b82f6}.media-type-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#3b82f6;border-radius:2px 2px 0 0;animation:slideIn .2s ease-out}@keyframes slideIn{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}.media-content{display:flex;flex-direction:column;gap:12px}.media-type-content{display:flex;flex-direction:column;gap:12px;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.variable-type-tabs{display:flex;gap:4px;margin-bottom:12px;padding:0 8px;position:relative;border-bottom:1px solid #333}.variable-type-tabs .media-type-tab{padding:8px 12px;font-size:12px;flex:0 0 auto}.react-flow__nodesselection-rect{display:none!important}.react-flow__edge.selected path,.react-flow__edge.edge-selected path,.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.edge-selected .react-flow__edge-path{stroke:#3b82f6!important;stroke-width:3!important;stroke-dasharray:8 4!important;animation:edge-dash .5s linear infinite!important;filter:drop-shadow(0 0 3px rgba(59,130,246,.6));transition:stroke .2s ease}@keyframes edge-dash{0%{stroke-dashoffset:12}to{stroke-dashoffset:0}}.react-flow__edge.selected marker path,.react-flow__edge.edge-selected marker path,.react-flow__edge.selected .react-flow__arrowhead,.react-flow__edge.edge-selected .react-flow__arrowhead{fill:#3b82f6!important;stroke:#3b82f6!important}.react-flow__edge.selected path[marker-end]+defs marker path,.react-flow__edge.edge-selected path[marker-end]+defs marker path,svg defs marker[id*=arrowclosed] path{fill:#3b82f6!important;stroke:#3b82f6!important}.react-flow__edge.selected,.react-flow__edge.edge-selected{opacity:1!important;z-index:10}.homepage-container{width:100vw;height:100vh;background:#181818;background-image:radial-gradient(at 20% 30%,rgba(88,28,135,.1) 0px,transparent 50%),radial-gradient(at 80% 70%,rgba(37,99,235,.1) 0px,transparent 50%);overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;margin:0;padding:0;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;scrollbar-width:none;-ms-overflow-style:none}.homepage-container::-webkit-scrollbar{display:none}.homepage-container *,.homepage-container *:before,.homepage-container *:after{box-sizing:border-box}.homepage-header{text-align:center;padding:60px 40px 40px;flex-shrink:0;animation:fadeInDown .6s ease-out}.homepage-title{font-size:48px;font-weight:700;background:linear-gradient(135deg,#fff,#a78bfa,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 12px;letter-spacing:2px}.homepage-subtitle{font-size:18px;color:#94a3b8;margin:0;font-weight:400}.homepage-content{flex:1;width:100%;padding:0 40px 40px;display:flex;flex-direction:column}.homepage-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;flex-shrink:0;animation:fadeIn .8s ease-out;gap:20px}.homepage-section-title-row{display:flex;align-items:center;gap:24px}.homepage-section-header h2{font-size:28px;color:#e2e8f0;margin:0;font-weight:700}.sort-select{background:#14141ecc;border:1px solid rgba(139,92,246,.3);color:#e2e8f0;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;outline:none;transition:all .3s ease;min-width:120px}.sort-select:hover{border-color:#8b5cf680;background:#1e1e2de6}.sort-select:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf626}.sort-select option{background:#1e1e2e;color:#e2e8f0;padding:8px}.homepage-actions{display:flex;gap:12px;align-items:center}.new-project-btn,.import-project-btn{padding:14px 32px;color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:8px}.btn-icon{width:20px;height:20px;filter:brightness(0) invert(1);transition:transform .3s ease}.new-project-btn:hover .btn-icon,.import-project-btn:hover .btn-icon{transform:scale(1.1)}.new-project-btn{background:linear-gradient(135deg,#8b5cf6,#6366f1);box-shadow:0 4px 20px #8b5cf666}.import-project-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 4px 20px #3b82f666}.new-project-btn:before,.import-project-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.new-project-btn:hover{transform:translateY(-2px);box-shadow:0 8px 30px #8b5cf699}.import-project-btn:hover{transform:translateY(-2px);box-shadow:0 8px 30px #3b82f699}.new-project-btn:hover:before,.import-project-btn:hover:before{left:100%}.new-project-btn:active,.import-project-btn:active{transform:translateY(0)}.empty-state{text-align:center;padding:100px 20px;animation:fadeIn 1s ease-out;background:#ffffff05;border-radius:20px;border:1px dashed rgba(255,255,255,.1)}.empty-icon{display:none}.empty-text{font-size:28px;color:#e2e8f0;margin:0 0 12px;font-weight:700}.empty-hint{font-size:18px;color:#94a3b8;margin:0}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;animation:fadeIn .8s ease-out;width:100%}.project-card{background:linear-gradient(135deg,#1e1e28b3,#14141eb3);border:1px solid rgba(139,92,246,.15);border-radius:16px;padding:24px;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:relative;overflow:hidden;box-shadow:0 4px 20px #0000004d}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#8b5cf6,#6366f1,#3b82f6);opacity:0;transition:opacity .4s ease}.project-card:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:radial-gradient(circle,rgba(139,92,246,.1) 0%,transparent 70%);transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.project-card:hover{transform:translateY(-6px);box-shadow:0 12px 40px #8b5cf64d;background:linear-gradient(135deg,#282837e6,#1e1e2de6);border-color:#8b5cf666}.project-card:hover:before{opacity:1}.project-card:hover:after{width:300px;height:300px}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;position:relative;z-index:2}.project-icon{font-size:42px;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.project-delete-btn{background:#f8717126;border:1px solid rgba(248,113,113,.3);color:#f87171;border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);opacity:0;pointer-events:none;font-size:16px;padding:0;font-weight:700}.project-delete-btn.visible{opacity:1;pointer-events:auto}.project-delete-btn:hover{background:#f871714d;border-color:#f87171;transform:scale(1.15);box-shadow:0 4px 12px #f871714d}.project-kebab-btn{background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);color:#a78bfa;border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);opacity:0;pointer-events:none;font-size:18px;padding:0;font-weight:700}.project-kebab-btn.visible{opacity:1;pointer-events:auto}.project-kebab-btn:hover{background:#8b5cf640;border-color:#8b5cf6;transform:scale(1.15);box-shadow:0 4px 12px #8b5cf64d}.project-kebab-menu{position:absolute;right:24px;top:24px;background:#1e1e2e;border:1px solid rgba(139,92,246,.4);border-radius:8px;z-index:9999;min-width:140px;white-space:nowrap;box-shadow:0 8px 24px #000000e6,0 0 0 1px #8b5cf64d;overflow:visible;animation:fadeInScale .2s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.project-kebab-menu-item{padding:14px 20px;cursor:pointer;transition:all .15s ease;color:#e2e8f0;font-size:15px;font-weight:500;background:transparent;-webkit-user-select:none;user-select:none;pointer-events:auto;display:block;width:100%;position:relative;z-index:10000}.project-kebab-menu-item:hover{background:#8b5cf64d;color:#c4b5fd}.project-kebab-menu-item:active{background:#8b5cf673;transform:scale(.98)}.project-kebab-menu-item.delete{color:#f87171;border-top:1px solid rgba(255,255,255,.08)}.project-kebab-menu-item.delete:hover{background:#f871714d;color:#fca5a5}.project-kebab-menu-item.delete:active{background:#f8717173;transform:scale(.98)}.project-rename-form{display:flex;flex-direction:column;gap:12px}.project-rename-input{background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);border-radius:8px;padding:10px 12px;color:#f1f5f9;font-size:16px;font-weight:600;outline:none;transition:all .3s ease;user-select:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text}.project-rename-input:focus{border-color:#8b5cf6;background:#8b5cf626;box-shadow:0 0 0 3px #8b5cf61a}.project-rename-actions{display:flex;gap:8px;justify-content:flex-end}.project-rename-actions button{padding:8px 16px;border-radius:6px;border:none;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.project-rename-actions button:first-child{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff}.project-rename-actions button:first-child:hover{transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.project-rename-actions button:last-child{background:#ffffff0d;color:#94a3b8;border:1px solid rgba(255,255,255,.1)}.project-rename-actions button:last-child:hover{background:#ffffff1a;color:#cbd5e1}.project-card-body{display:flex;flex-direction:column;gap:14px;position:relative;z-index:1;pointer-events:auto}.project-name{font-size:22px;color:#f1f5f9;margin:0;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 2px 4px rgba(0,0,0,.2)}.project-stats{display:flex;gap:20px;flex-wrap:wrap}.project-stat{display:flex;align-items:center;gap:8px;color:#94a3b8;font-size:15px;background:#8b5cf60d;padding:6px 12px;border-radius:8px}.stat-icon{font-size:18px}.stat-value{color:#cbd5e1;font-weight:600}.project-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:16px;border-top:1px solid rgba(139,92,246,.15)}.project-date{display:flex;align-items:center;gap:8px;color:#64748b;font-size:14px}.date-icon{font-size:16px}.project-id{color:#64748b;font-size:13px;font-weight:400;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease-out}.modal-content{background:linear-gradient(135deg,#1e1e28fa,#14141efa);border:1px solid rgba(139,92,246,.4);border-radius:16px;padding:32px;width:90%;max-width:480px;box-shadow:0 20px 60px #000000e6,0 0 0 1px #8b5cf64d;animation:fadeInScale .3s ease-out}.modal-title{font-size:24px;font-weight:700;color:#f1f5f9;margin:0 0 24px;text-align:center;background:linear-gradient(135deg,#fff,#a78bfa,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.modal-input-group{margin-bottom:24px}.modal-input-group label{display:block;font-size:16px;font-weight:600;color:#cbd5e1;margin-bottom:12px}.modal-input{width:100%;background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);border-radius:8px;padding:14px 16px;color:#f1f5f9;font-size:16px;font-weight:500;outline:none;transition:all .3s ease}.modal-input:focus{border-color:#8b5cf6;background:#8b5cf626;box-shadow:0 0 0 3px #8b5cf61a}.modal-input::placeholder{color:#64748b}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.modal-btn{padding:12px 32px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:none;outline:none}.modal-btn-primary{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;box-shadow:0 4px 20px #8b5cf666}.modal-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #8b5cf699}.modal-btn-primary:active{transform:translateY(0)}.modal-btn-secondary{background:#ffffff0d;color:#94a3b8;border:1px solid rgba(255,255,255,.1)}.modal-btn-secondary:hover{background:#ffffff1a;color:#cbd5e1;transform:translateY(-2px)}.modal-btn-secondary:active{transform:translateY(0)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.homepage-header{padding:40px 30px 30px}.homepage-content{padding:0 30px 30px}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}}@media(max-width:768px){.homepage-header{padding:32px 20px 24px}.homepage-title{font-size:36px}.homepage-subtitle{font-size:16px}.homepage-content{padding:0 20px 20px}.homepage-section-header{flex-direction:column;gap:16px;align-items:stretch}.homepage-section-title-row{flex-direction:column;align-items:flex-start;gap:12px}.homepage-section-header h2{font-size:24px}.sort-select{width:100%}.homepage-actions{width:100%;flex-direction:column}.new-project-btn,.import-project-btn{width:100%;justify-content:center}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.project-card{padding:20px}.empty-state{padding:60px 20px}}@media(max-width:480px){.homepage-header{padding:24px 16px 20px}.homepage-title{font-size:28px;letter-spacing:1px}.homepage-subtitle{font-size:14px}.homepage-content{padding:0 16px 16px}.sort-select{font-size:13px;padding:6px 12px;min-width:100px}.projects-grid{grid-template-columns:1fr;gap:16px}.project-name{font-size:18px}.project-stats{gap:12px}.project-stat{font-size:13px;padding:5px 10px}}
