*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}:root{--node-width:320px;--mode-toolbar-size:55px;--toolbar-icon-size:20px;--color-primary:#6366f1;--color-primary-hover:#818cf8;--color-primary-rgb:99, 102, 241}.mode-toolbar{width:var(--mode-toolbar-size);border-radius:var(--mode-toolbar-size);z-index:10;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px 0;transition:background .3s,box-shadow .3s;display:flex;position:fixed;top:45px;right:10px}.mode-toolbar.dark{background:#000;box-shadow:0 2px 12px #0000004d}.mode-toolbar.dark .mode-toolbar-btn{color:#fff}.mode-toolbar.dark .mode-toolbar-btn:hover{background:#ffffff1a}.mode-toolbar.dark .mode-toolbar-btn.active{background:#ffffff26}.mode-toolbar.dark .mode-toolbar-divider{background:#ffffff1f}.mode-toolbar.light{background:#fff;box-shadow:0 2px 8px #00000014}.mode-toolbar.light .mode-toolbar-btn{color:#000}.mode-toolbar.light .mode-toolbar-btn:hover{background:#0000000f}.mode-toolbar.light .mode-toolbar-btn.active,.mode-toolbar.light .mode-toolbar-divider{background:#00000014}.mode-toolbar-btn{width:calc(var(--mode-toolbar-size) - 11px);height:calc(var(--mode-toolbar-size) - 11px);cursor:pointer;background:0 0;border:none;border-radius:30px;justify-content:center;align-items:center;transition:all .15s;display:flex}.mode-toolbar-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.mode-toolbar-divider{width:32px;height:1px;margin:2px 0}.mode-toolbar-avatar{width:calc(var(--mode-toolbar-size) - 11px);height:calc(var(--mode-toolbar-size) - 11px);background:var(--color-primary);color:#fff;-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.mode-toolbar-avatar.placeholder{background:0 0}.mode-toolbar.dark .mode-toolbar-avatar.placeholder{color:#ffffff4d}.mode-toolbar.light .mode-toolbar-avatar.placeholder{color:#00000040}.selection-toolbar{z-index:5;pointer-events:auto;height:var(--mode-toolbar-size);border-radius:50px;align-items:center;gap:2px;padding:0 8px;transition:background .3s,box-shadow .3s;display:flex}.selection-toolbar.dark{background:#000;box-shadow:0 2px 8px #0003}.selection-toolbar.dark .selection-toolbar-btn{color:#fff}.selection-toolbar.dark .selection-toolbar-btn:hover{background:#ffffff26}.selection-toolbar.dark .selection-toolbar-btn--danger:hover{color:#ef4444;background:#ef444433}.selection-toolbar.light{background:#fff;box-shadow:0 2px 8px #00000014}.selection-toolbar.light .selection-toolbar-btn{color:#000}.selection-toolbar.light .selection-toolbar-btn:hover{background:#0000000f}.selection-toolbar.light .selection-toolbar-btn--danger:hover{color:#ef4444;background:#ef44441a}.selection-toolbar-btn{width:calc(var(--mode-toolbar-size) - 11px);height:calc(var(--mode-toolbar-size) - 11px);cursor:pointer;background:0 0;border:none;border-radius:50px;justify-content:center;align-items:center;transition:all .15s;display:flex}.selection-toolbar-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.ai-modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ai-modal{border-radius:16px;flex-direction:column;gap:16px;width:420px;padding:20px;display:flex}.ai-modal.dark{background:#18181b;border:1px solid #ffffff14;box-shadow:0 8px 32px #0006}.ai-modal.dark .ai-modal-title{color:#fff}.ai-modal.dark .ai-modal-close{color:#ffffff80}.ai-modal.dark .ai-modal-close:hover{color:#fff;background:#ffffff1a}.ai-modal.dark .ai-modal-input{color:#f3f4f6;background:#ffffff0f;border-color:#ffffff1a}.ai-modal.dark .ai-modal-input::placeholder{color:#ffffff80}.ai-modal.light{background:#fff;border:1px solid #0000000f;box-shadow:0 8px 32px #0000001f}.ai-modal.light .ai-modal-title{color:#111827}.ai-modal.light .ai-modal-close{color:#0006}.ai-modal.light .ai-modal-close:hover{color:#111827;background:#0000000f}.ai-modal.light .ai-modal-input{color:#111827;background:#00000008;border-color:#0000001a}.ai-modal.light .ai-modal-input::placeholder{color:#0000008c}.ai-modal-header{justify-content:space-between;align-items:center;display:flex}.ai-modal-title{align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.ai-modal-close{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .15s;display:flex}.ai-modal-input{resize:none;border:1px solid;border-radius:10px;outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:14px;transition:border-color .15s}.ai-modal-input:focus{border-color:#818cf880}.ai-modal-row{gap:10px;display:flex}.model-select{flex:1;min-width:0;position:relative}.model-select-trigger{cursor:pointer;border:1px solid;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s;display:flex}.model-select-trigger:disabled,.model-select.disabled .model-select-trigger{opacity:.5;cursor:not-allowed}.model-select-value{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.model-select-chevron{flex-shrink:0;transition:transform .2s}.model-select-chevron.rotated{transform:rotate(180deg)}.model-select-dropdown{z-index:10;border:1px solid;border-radius:10px;animation:.15s dropdown-in;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.model-select-option{cursor:pointer;text-align:left;border:none;width:100%;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .1s;display:block}.model-select.dark .model-select-trigger{color:#e5e7eb;background:#ffffff0f;border-color:#ffffff1a}.model-select.dark .model-select-trigger:hover:not(:disabled){border-color:#fff3}.model-select.dark .model-select-dropdown{background:#1e1f28;border-color:#ffffff1a;box-shadow:0 8px 24px #0006}.model-select.dark .model-select-option{color:#e5e7eb;background:0 0}.model-select.dark .model-select-option:hover{background:#ffffff14}.model-select.dark .model-select-option.active{color:#a5b4fc;background:rgba(var(--color-primary-rgb), .15)}.model-select.light .model-select-trigger{color:#374151;background:#00000008;border-color:#0000001a}.model-select.light .model-select-trigger:hover:not(:disabled){border-color:#0003}.model-select.light .model-select-dropdown{background:#fff;border-color:#00000014;box-shadow:0 8px 24px #0000001f}.model-select.light .model-select-option{color:#374151;background:0 0}.model-select.light .model-select-option:hover{background:#0000000a}.model-select.light .model-select-option.active{color:#4f46e5;background:rgba(var(--color-primary-rgb), .08)}.ai-modal-generate{color:#fff;background:var(--color-primary);cursor:pointer;white-space:nowrap;border:none;border-radius:10px;align-items:center;gap:6px;padding:8px 18px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.ai-modal-generate:hover:not(:disabled){background:var(--color-primary-hover)}.ai-modal-generate:disabled{opacity:.5;cursor:not-allowed}.spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.settings-modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-modal{border-radius:16px;width:932px;height:576px;animation:.2s settings-in;display:flex;overflow:hidden}@keyframes settings-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.settings-modal.dark{background:#18181b;border:1px solid #ffffff14;box-shadow:0 8px 32px #0006}.settings-modal.dark .settings-sidebar{background:#ffffff08;border-right:1px solid #ffffff0f}.settings-modal.dark .settings-sidebar-title{color:#fff}.settings-modal.dark .settings-sidebar-item{color:#ffffff80}.settings-modal.dark .settings-sidebar-item:hover{color:#fffc;background:#ffffff0d}.settings-modal.dark .settings-sidebar-item.active{color:#a5b4fc;background:rgba(var(--color-primary-rgb), .12)}.settings-modal.dark .settings-content-title{color:#fff}.settings-modal.dark .settings-close-btn:hover{color:#fff;background:#ffffff14}.settings-modal.dark .settings-close-btn,.settings-modal.dark .icon-panel-desc{color:#fff6}.settings-modal.light{background:#fff;border:1px solid #0000000f;box-shadow:0 8px 32px #0000001f}.settings-modal.light .settings-sidebar{background:#00000005;border-right:1px solid #0000000f}.settings-modal.light .settings-sidebar-title{color:#111827}.settings-modal.light .settings-sidebar-item{color:#525252}.settings-modal.light .settings-sidebar-item:hover{color:#000000bf;background:#0000000a}.settings-modal.light .settings-sidebar-item.active{color:#4f46e5;background:rgba(var(--color-primary-rgb), .08)}.settings-modal.light .settings-content-title{color:#111827}.settings-modal.light .settings-close-btn{color:#00000059}.settings-modal.light .settings-close-btn:hover{color:#111827;background:#0000000f}.settings-modal.light .icon-panel-desc{color:#0006}.settings-sidebar{flex-direction:column;flex-shrink:0;gap:4px;width:240px;padding:20px 12px;display:flex}.settings-sidebar-title{margin-bottom:12px;padding:0 10px;font-size:15px;font-weight:600}.settings-sidebar-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;width:100%;padding:8px 10px;font-family:inherit;font-size:13px;transition:all .15s}.settings-content{flex-direction:column;flex:1;min-width:0;display:flex}.settings-content-header{justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.settings-content-title{font-size:15px;font-weight:600}.settings-close-btn{cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:flex}.settings-content-body{flex:1;padding:16px 24px 24px;overflow-y:auto}.icon-panel-desc{margin:0 0 16px;font-size:13px}.icon-set-list{flex-direction:column;gap:12px;display:flex}.icon-set-card{cursor:pointer;text-align:left;border:2px solid #0000;border-radius:12px;padding:16px;font-family:inherit;transition:all .15s}.icon-set-card.dark{background:#ffffff0a;border-color:#ffffff0f}.icon-set-card.dark:hover{border-color:#ffffff1f}.icon-set-card.dark.selected{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb), .08)}.icon-set-card.light{background:#00000005;border-color:#0000000f}.icon-set-card.light:hover{border-color:#0000001f}.icon-set-card.light.selected{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb), .06)}.icon-set-card-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.icon-set-card-name{color:inherit;font-size:14px;font-weight:600}.icon-set-card.dark .icon-set-card-name{color:#f3f4f6}.icon-set-card.light .icon-set-card-name{color:#111827}.icon-set-card-badge{background:var(--color-primary);color:#fff;border-radius:4px;padding:2px 8px;font-size:11px}.icon-set-card-desc{margin:0 0 12px;font-size:12px}.icon-set-card.dark .icon-set-card-desc{color:#fff6}.icon-set-card.light .icon-set-card-desc{color:#0006}.icon-set-card-preview{gap:10px;display:flex}.icon-set-preview-item{border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.icon-set-card.dark .icon-set-preview-item{color:#ffffffb3;background:#ffffff0f}.icon-set-card.light .icon-set-preview-item{color:#0009;background:#0000000a}.auth-modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-modal{border-radius:16px;flex-direction:column;gap:16px;width:380px;padding:20px;display:flex}.auth-modal.dark{background:#18181b;border:1px solid #ffffff14;box-shadow:0 8px 32px #0006}.auth-modal.dark .auth-modal-title{color:#fff}.auth-modal.dark .auth-modal-close{color:#ffffff80}.auth-modal.dark .auth-modal-close:hover{color:#fff;background:#ffffff1a}.auth-modal.dark .auth-modal-input{color:#f3f4f6;background:#ffffff0f;border-color:#ffffff1a}.auth-modal.dark .auth-modal-input::placeholder,.auth-modal.dark .auth-modal-tab{color:#ffffff80}.auth-modal.dark .auth-modal-tab:hover{color:#fffc;background:#ffffff0f}.auth-modal.dark .auth-modal-tab.active{color:#fff;background:#ffffff1a}.auth-modal.light{background:#fff;border:1px solid #0000000f;box-shadow:0 8px 32px #0000001f}.auth-modal.light .auth-modal-title{color:#111827}.auth-modal.light .auth-modal-close{color:#0006}.auth-modal.light .auth-modal-close:hover{color:#111827;background:#0000000f}.auth-modal.light .auth-modal-input{color:#111827;background:#00000008;border-color:#0000001a}.auth-modal.light .auth-modal-input::placeholder{color:#0000008c}.auth-modal.light .auth-modal-tab{color:#525252}.auth-modal.light .auth-modal-tab:hover{color:#000000bf;background:#0000000a}.auth-modal.light .auth-modal-tab.active{color:#111827;background:#0000000f}.auth-modal-header{justify-content:space-between;align-items:center;display:flex}.auth-modal-title{align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.auth-modal-close{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .15s;display:flex}.auth-modal-tabs{border-radius:10px;gap:4px;padding:3px;display:flex}.auth-modal.dark .auth-modal-tabs{background:#ffffff0a}.auth-modal.light .auth-modal-tabs{background:#0000000a}.auth-modal-tab{text-align:center;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:8px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s}.auth-modal-tab.active{font-weight:600}.auth-modal-form{flex-direction:column;gap:12px;display:flex}.auth-modal-input{box-sizing:border-box;border:1px solid;border-radius:10px;outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:14px;transition:border-color .15s}.auth-modal-input:focus{border-color:#818cf880}.auth-modal-submit{color:#fff;background:var(--color-primary);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:6px;width:100%;padding:10px 18px;font-family:inherit;font-size:14px;font-weight:500;transition:all .15s;display:flex}.auth-modal-submit:hover:not(:disabled){background:var(--color-primary-hover)}.auth-modal-submit:disabled{opacity:.5;cursor:not-allowed}.auth-modal-error{color:#ef4444;text-align:center;min-height:18px;font-size:12px}.account-panel{flex-direction:column;gap:24px;display:flex}.account-panel-hint{margin:0;font-size:13px}.account-panel.dark .account-panel-hint{color:#fff6}.account-panel.light .account-panel-hint{color:#0006}.account-profile{border-radius:12px;align-items:center;gap:14px;padding:16px;display:flex}.account-panel.dark .account-profile{background:#ffffff0a;border:1px solid #ffffff0f}.account-panel.light .account-profile{background:#00000005;border:1px solid #0000000f}.account-avatar{color:#fff;background:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;font-weight:700;display:flex}.account-info{flex:1;min-width:0}.account-username{font-size:15px;font-weight:600}.account-panel.dark .account-username{color:#f3f4f6}.account-panel.light .account-username{color:#111827}.account-email{white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.account-panel.dark .account-email{color:#fff6}.account-panel.light .account-email{color:#0006}.account-role-badge{border-radius:6px;flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:500}.account-panel.dark .account-role-badge{color:#a5b4fc;background:rgba(var(--color-primary-rgb), .15)}.account-panel.light .account-role-badge{color:#4f46e5;background:rgba(var(--color-primary-rgb), .08)}.account-logout-btn{cursor:pointer;border:1px solid;border-radius:10px;justify-content:center;align-items:center;gap:6px;width:100%;padding:10px 18px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;display:flex}.account-panel.dark .account-logout-btn{color:#f87171;background:#ef444414;border-color:#ef444426}.account-panel.dark .account-logout-btn:hover{background:#ef444426;border-color:#ef444440}.account-panel.light .account-logout-btn{color:#dc2626;background:#ef44440a;border-color:#ef44441f}.account-panel.light .account-logout-btn:hover{background:#ef444414;border-color:#ef444433}.fullscreen-preview-overlay{z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#000000d9;justify-content:center;align-items:center;animation:.2s fullscreen-fade-in;display:flex;position:fixed;inset:0}@keyframes fullscreen-fade-in{0%{opacity:0}to{opacity:1}}.fullscreen-preview-content{cursor:default;justify-content:center;align-items:center;max-width:90vw;max-height:90vh;display:flex}.fullscreen-preview-content img{object-fit:contain;border-radius:4px;max-width:90vw;max-height:90vh}.fullscreen-preview-content video{border-radius:4px;max-width:90vw;max-height:90vh}.appearance-panel{flex-direction:column;gap:28px;display:flex}.appearance-section-title{justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;font-weight:500;display:flex}.appearance-panel.dark .appearance-section-title{color:#ffffffb3}.appearance-panel.light .appearance-section-title{color:#0009}.appearance-size-value{opacity:.6;font-size:12px;font-weight:400}.appearance-color-grid{flex-wrap:wrap;gap:10px;display:flex}.appearance-color-swatch{cursor:pointer;color:#fff;border:2px solid #0000;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;transition:all .15s;display:flex}.appearance-color-swatch:hover{transform:scale(1.1)}.appearance-color-swatch.active{box-shadow:0 0 0 2px rgba(var(--color-primary-rgb), .3);border-color:currentColor}.appearance-slider{appearance:none;cursor:pointer;border-radius:3px;outline:none;width:100%;height:6px}.appearance-panel.dark .appearance-slider{background:#ffffff1a}.appearance-panel.light .appearance-slider{background:#00000014}.appearance-slider::-webkit-slider-thumb{appearance:none;background:var(--color-primary);cursor:pointer;border:2px solid #fff;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 4px #0003}.appearance-slider::-moz-range-thumb{background:var(--color-primary);cursor:pointer;border:2px solid #fff;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 4px #0003}.appearance-slider-labels{justify-content:space-between;margin-top:4px;font-size:11px;display:flex}.appearance-panel.dark .appearance-slider-labels{color:#ffffff80}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.settings-modal{max-width:calc(100vw - 32px);max-height:calc(100vh - 32px)}.ai-modal,.auth-modal{max-width:calc(100vw - 32px)}@media (prefers-reduced-motion:reduce){.settings-modal,.fullscreen-preview-overlay,.model-select-dropdown{animation:none!important}.mode-toolbar-btn,.selection-toolbar-btn,.upload-progress-bar-fill,.upload-cancel-btn,.settings-close-btn,.auth-modal-close,.ai-modal-close{transition:none!important}}.appearance-panel.light .appearance-slider-labels{color:#0000008c}.url-node{width:var(--node-width);background:#fff;border-radius:6px;flex-direction:column;transition:box-shadow .2s;display:flex;overflow:hidden;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000f}.url-node:hover{box-shadow:0 2px 6px #00000014,0 8px 16px #0000001a}.node-header{align-items:center;gap:8px;padding:10px 14px 8px;display:flex}.node-favicon{border-radius:2px;flex-shrink:0;width:16px;height:16px}.node-favicon-fallback{color:#6b7280;justify-content:center;align-items:center;display:flex}.node-domain{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.node-image-wrapper{width:100%;height:140px;overflow:hidden}.node-image{object-fit:cover;width:100%;height:100%;display:block}.node-body{padding:10px 14px 14px}.node-title{color:#111827;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.node-description{color:#6b7280;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:6px;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.node-url{color:#3b82f6;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;margin-top:8px;font-size:11px;text-decoration:none;display:block;overflow:hidden}.node-url:hover{color:#2563eb;text-decoration:underline}html.dark .url-node{background:#1e1f28;box-shadow:0 1px 3px #0003,0 4px 12px #0000004d}html.dark .url-node:hover{box-shadow:0 2px 6px #00000040,0 8px 16px #0006}html.dark .node-domain{color:#9ca3af}html.dark .node-title{color:#f3f4f6}html.dark .node-description{color:#9ca3af}html.dark .node-url{color:#60a5fa}html.dark .node-url:hover{color:#93bbfd}.doc-node{width:var(--node-width);background:#fff;border-radius:6px;align-items:center;gap:12px;padding:16px;transition:box-shadow .2s;display:flex;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000f}.doc-node:hover{box-shadow:0 2px 6px #00000014,0 8px 16px #0000001a}.doc-node-icon{color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.doc-node-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.doc-node-filename{color:#111827;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.doc-node-size{color:#737373;font-size:11px}html.dark .doc-node{background:#1e1f28;box-shadow:0 1px 3px #0003,0 4px 12px #0000004d}html.dark .doc-node:hover{box-shadow:0 2px 6px #00000040,0 8px 16px #0006}html.dark .doc-node-icon{color:var(--color-primary-hover)}html.dark .doc-node-filename{color:#f3f4f6}html.dark .doc-node-size{color:#9ca3af}.media-node{width:var(--node-width);background:#fff;border-radius:6px;flex-direction:column;transition:box-shadow .2s;display:flex;position:relative;overflow:visible;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000f}.media-node:hover{box-shadow:0 2px 6px #00000014,0 8px 16px #0000001a}.media-image-wrapper{background:#f3f4f6;border-radius:6px;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.media-image{width:100%;height:auto;display:block}.media-video-wrapper{background:#000;border-radius:6px;width:100%;overflow:hidden}.media-video{width:100%;display:block}.media-file-name{color:#737373;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;max-width:100%;font-size:11px;position:absolute;bottom:-22px;left:0;overflow:hidden}html.dark .media-node{background:#1e1f28;box-shadow:0 1px 3px #0003,0 4px 12px #0000004d}html.dark .media-node:hover{box-shadow:0 2px 6px #00000040,0 8px 16px #0006}html.dark .media-image-wrapper{background:#374151}html.dark .media-file-name{color:#9ca3af}.media-node--uploading{width:var(--node-width);height:calc(var(--node-width) / 1.618);background:#fff;border-radius:6px;align-items:center;padding:0 36px 0 16px;transition:box-shadow .2s;display:flex;position:relative;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000f}.media-node--uploading:hover{box-shadow:0 2px 6px #00000014,0 8px 16px #0000001a}.upload-progress-content{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.upload-progress-icon{color:var(--color-primary);align-items:center;display:flex}.upload-progress-filename{color:#111827;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.upload-progress-bar-track{background:#e5e7eb;border-radius:3px;width:100%;height:6px;overflow:hidden}.upload-progress-bar-fill{background:var(--color-primary);transform-origin:0;border-radius:3px;height:100%;transition:transform .2s}.upload-progress-percent{color:#6b7280;font-size:11px}.upload-cancel-btn{color:#737373;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;transition:all .15s;display:flex;position:absolute;top:8px;right:8px}.upload-cancel-btn:hover{color:#ef4444;background:#fee2e2}html.dark .media-node--uploading{background:#1e1f28;box-shadow:0 1px 3px #0003,0 4px 12px #0000004d}html.dark .media-node--uploading:hover{box-shadow:0 2px 6px #00000040,0 8px 16px #0006}html.dark .upload-progress-filename{color:#f3f4f6}html.dark .upload-progress-bar-track{background:#374151}html.dark .upload-progress-bar-fill{background:var(--color-primary-hover)}html.dark .upload-progress-percent,html.dark .upload-cancel-btn{color:#9ca3af}html.dark .upload-cancel-btn:hover{color:#f87171;background:#450a0a}.group-node{background:rgba(var(--color-primary-rgb), .06);border:2px dashed rgba(var(--color-primary-rgb), .4);cursor:grab;border-radius:10px;transition:border-color .15s,background .15s;position:relative}.group-node:active{cursor:grabbing}.group-node--focused{border-style:solid;border-color:var(--color-primary)}.group-node:hover{border-color:rgba(var(--color-primary-rgb), .6);background:rgba(var(--color-primary-rgb), .08)}.group-node-label{color:var(--color-primary);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:#fff;border-radius:3px;max-width:calc(100% - 24px);padding:0 6px;font-size:12px;font-weight:600;line-height:1.3;position:absolute;top:-10px;left:12px;overflow:hidden}html.dark .group-node{background:rgba(var(--color-primary-rgb), .08)}html.dark .group-node:hover{background:rgba(var(--color-primary-rgb), .12)}html.dark .group-node-label{background:#1e1f28}.group-name-input{color:#111827;background:#fff;border:1px solid #0000001a;border-radius:6px;outline:none;width:100%;padding:8px 12px;font-size:14px;transition:border-color .15s}.group-name-input:focus{border-color:var(--color-primary)}.group-name-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.group-name-cancel{color:#6b7280;cursor:pointer;background:0 0;border:1px solid #0000001a;border-radius:6px;padding:6px 16px;font-size:13px;transition:all .15s}.group-name-cancel:hover{background:#0000000a}.group-name-confirm{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:6px 16px;font-size:13px;transition:all .15s}.group-name-confirm:hover{background:var(--color-primary-hover)}.group-name-confirm:disabled{opacity:.5;cursor:not-allowed}html.dark .group-name-input{color:#f3f4f6;background:#2a2b36;border-color:#ffffff1a}html.dark .group-name-input:focus{border-color:var(--color-primary)}html.dark .group-name-cancel{color:#9ca3af;border-color:#ffffff1a}html.dark .group-name-cancel:hover{background:#ffffff0f}.canvas-container{width:100vw;height:100vh;position:relative}.canvas-loading{color:#9ca3af;background:#fafafa;justify-content:center;align-items:center;width:100vw;height:100vh;font-size:14px;display:flex}html.dark .canvas-loading{color:#6b7280;background:#111118}.loading-indicator{z-index:10;color:var(--color-primary);background:#eef2ff;border-radius:6px;padding:6px 14px;font-size:12px;position:fixed;top:16px;left:50%;transform:translate(-50%)}html.dark .loading-indicator{color:#a5b4fc;background:#312e81}.error-toast{z-index:20;color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:10px 20px;font-size:14px;animation:.3s slideUp;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000014}@keyframes slideUp{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}html.dark .error-toast{color:#fca5a5;background:#450a0a;border-color:#7f1d1d}.empty-hint{text-align:center;color:#9ca3af;pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;bottom:50%;left:50%;transform:translate(-50%,50%)}.empty-hint p{margin:4px 0;font-size:16px}.empty-hint-sub{color:#d1d5db;font-size:13px}html.dark .empty-hint,html.dark .empty-hint-sub{color:#6b7280}.react-flow__background{background-color:#fafafa}.react-flow__minimap{background-color:#f0f0f0}html.dark .react-flow__background{background-color:#111118}html.dark .react-flow__minimap{background-color:#1a1a24}html.dark .react-flow__controls{background:#1e1f28;border-color:#ffffff0f;box-shadow:0 2px 8px #0000004d}html.dark .react-flow__controls-button{fill:#fff9;background:#1e1f28;border-color:#ffffff0f}html.dark .react-flow__controls-button:hover{fill:#fff;background:#ffffff0f}html.dark .react-flow__attribution{background:#1e1f28cc}html.dark .react-flow__attribution a{color:#fff6}.error-boundary-node{color:#ef4444;background:#ef444414;border:1px solid #ef444433;border-radius:8px;max-width:300px;padding:12px 16px;font-size:13px}.error-boundary-app{color:#64748b;flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100vh;display:flex}.error-boundary-app p{font-size:16px}.error-boundary-app button{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:8px 24px;font-size:14px}html.dark .error-boundary-node{background:#ef444426;border-color:#ef44444d}html.dark .error-boundary-app{color:#94a3b8}html.dark .error-boundary-app button{color:#e2e8f0;background:#1e293b;border-color:#334155}
