  body{ overflow:hidden; }
  .nc-wrap{ height:calc(100vh - 104px); min-height:520px; display:flex; flex-direction:column; gap:10px; }
  .nc-board-home{ flex:1; min-height:0; padding:2px; display:flex; flex-direction:column; gap:20px; }
  .nc-wrap.editing .nc-board-home{ display:none; }
  .nc-editor-view{ display:none; position:relative; flex:1; min-height:0; flex-direction:column; gap:10px; }
  .nc-wrap.editing .nc-editor-view{ display:flex; }
  .nc-board-head{ flex:none; display:flex; align-items:center; justify-content:space-between; gap:16px; }
  .nc-tabs{ display:inline-flex; align-items:center; gap:4px; padding:4px; border-radius:22px; background:rgba(148,164,187,.08); }
  .nc-tab{ min-height:34px; padding:7px 16px; border:0; border-radius:18px; background:transparent; color:#94a4bb; font:inherit; font-size:13px; font-weight:800; cursor:pointer; }
  .nc-tab.on{ color:#fff; background:rgba(255,255,255,.1); }
  .nc-board-tools{ display:flex; align-items:center; gap:8px; margin-left:auto; }
  .nc-board-search{ width:270px; }
  .nc-board-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,240px)); align-content:start; gap:12px; overflow:auto; padding-bottom:24px; scrollbar-width:none; }
  .nc-board-grid::-webkit-scrollbar{ display:none; width:0; height:0; }
  .nc-board-card{ position:relative; height:228px; overflow:hidden; border:1px solid rgba(148,164,187,.1); border-radius:8px; background:rgba(20,24,31,.92); cursor:pointer; color:#eaf1fa; text-align:left; text-decoration:none; font:inherit; transition:.16s; }
  .nc-board-card:hover{ transform:translateY(-2px); border-color:rgba(231,178,76,.36); box-shadow:0 18px 42px -28px rgba(0,0,0,.9); }
  .nc-board-actions{ position:absolute; top:7px; right:7px; z-index:2; display:flex; gap:5px; opacity:0; transition:.16s; }
  .nc-board-card:hover .nc-board-actions,.nc-board-card:focus-within .nc-board-actions{ opacity:1; }
  .nc-board-action{ width:24px; height:24px; display:grid; place-items:center; border:1px solid rgba(148,164,187,.18); border-radius:50%; background:rgba(7,11,19,.72); color:#dbe7f5; font:inherit; font-size:12px; line-height:1; cursor:pointer; padding:0; }
  .nc-board-action:hover{ color:#fff; background:rgba(231,178,76,.18); border-color:rgba(231,178,76,.34); }
  .nc-board-action.danger:hover{ color:#f4708a; background:rgba(244,112,138,.12); border-color:rgba(244,112,138,.34); }
  .nc-board-new{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; border-style:dashed; }
  .nc-board-plus{ width:42px; height:42px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#ef4444; font-size:24px; line-height:1; }
  .nc-board-new strong{ font-size:13px; }
  .nc-board-thumb{ height:137px; background:linear-gradient(145deg,rgba(148,164,187,.22),rgba(47,55,69,.56)); background-size:cover; background-position:center; }
  .nc-board-thumb.placeholder{ display:grid; place-items:center; color:rgba(234,241,250,.1); font-size:30px; font-weight:900; }
  .nc-board-info{ padding:10px 8px; }
  .nc-board-title{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; font-weight:800; color:#fff; }
  .nc-board-time{ display:block; margin-top:8px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; color:#5c6b82; }
  .nc-board-badges{ display:flex; align-items:center; gap:6px; margin-top:7px; min-width:0; }
  .nc-board-badge{ max-width:92px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:2px 6px; border:1px solid rgba(148,164,187,.14); border-radius:999px; background:rgba(148,164,187,.06); color:#94a4bb; font-size:11px; line-height:1.3; }
  .nc-board-badge.gold{ border-color:rgba(231,178,76,.28); background:rgba(231,178,76,.1); color:#e7b24c; }
  .nc-board-action.wide{ width:auto; min-width:34px; padding:0 7px; border-radius:999px; }
  .nc-board-empty{ grid-column:1/-1; padding:40px 16px; color:#5c6b82; font-size:13px; text-align:center; }
  .nc-template-card{ display:flex; flex-direction:column; justify-content:space-between; padding:14px; }
  .nc-template-icon{ width:38px; height:38px; display:grid; place-items:center; border-radius:10px; color:#1a1206; background:linear-gradient(135deg,#f4cd72,#e7b24c); font-size:18px; font-weight:900; }
  .nc-template-meta{ display:flex; flex-direction:column; gap:7px; min-width:0; }
  .nc-template-name{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; font-weight:800; color:#fff; }
  .nc-template-detail{ color:#5c6b82; font-size:12px; line-height:1.5; }
  .nc-template-actions{ display:flex; gap:7px; flex-wrap:wrap; margin-top:10px; }
  .nc-template-btn{ min-height:28px; padding:5px 9px; border:1px solid rgba(148,164,187,.16); border-radius:7px; background:rgba(148,164,187,.06); color:#cbd6e4; font:inherit; font-size:12px; cursor:pointer; }
  .nc-template-btn:hover{ color:#fff; border-color:rgba(231,178,76,.32); background:rgba(231,178,76,.12); }
  .nc-template-btn.danger:hover{ color:#f4708a; border-color:rgba(244,112,138,.34); background:rgba(244,112,138,.12); }
  body.nc-local-fullscreen{ overflow:hidden; }
  body.nc-local-fullscreen .nc-wrap{ position:fixed; inset:0; z-index:70; height:100vh; min-height:0; box-sizing:border-box; padding:12px; background:#070b13; }
  .nc-wrap:fullscreen{ width:100vw; height:100vh; min-height:0; box-sizing:border-box; padding:12px; background:#070b13; }
  .nc-wrap:-webkit-full-screen{ width:100vw; height:100vh; min-height:0; box-sizing:border-box; padding:12px; background:#070b13; }
  .nc-hero{ flex:none; display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:10px 14px; border:1px solid rgba(148,164,187,.08); border-radius:14px; background:rgba(8,13,22,.42); }
  .nc-title{ display:flex; align-items:center; gap:10px; min-width:0; }
  .nc-title strong{ display:block; font-size:16px; line-height:1.2; }
  .nc-title span:last-child{ display:block; margin-top:4px; font-size:12px; color:#94a4bb; }
  .nc-stats{ display:grid; grid-template-columns:.8fr .8fr 1.35fr; gap:8px; min-width:340px; }
  .nc-stat{ padding:7px 10px; border:1px solid rgba(148,164,187,.09); border-radius:10px; background:rgba(148,164,187,.03); }
  .nc-stat b{ display:block; font-family:var(--mono,ui-monospace,monospace); font-size:16px; color:#eaf1fa; line-height:1.1; }
  #ncRunState{ font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .nc-stat span{ display:block; margin-top:3px; font-size:10.5px; color:#5c6b82; }
  .nc-bar{ flex:none; display:flex; align-items:center; gap:9px; flex-wrap:wrap; padding:8px; border:1px solid rgba(148,164,187,.1); border-radius:14px; background:rgba(7,11,19,.34); }
  .nc-wrap.editing .nc-bar{ display:none; }
  .nc-group{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
  .nc-group-label{ display:none; flex:0 0 100%; font-size:10px; font-weight:800; color:#5c6b82; letter-spacing:0; }
  .nc-add,.nc-ghost{ display:inline-flex; align-items:center; gap:6px; min-height:34px; padding:8px 12px; font-size:12.5px; font-weight:650; color:#e7b24c; background:rgba(231,178,76,.09); border:1px solid rgba(231,178,76,.28); border-radius:10px; cursor:pointer; font-family:inherit; transition:.16s; user-select:none; -webkit-user-select:none; }
  .nc-add:hover,.nc-ghost:hover{ background:rgba(231,178,76,.15); transform:translateY(-1px); }
  .nc-ghost{ color:#94a4bb; background:rgba(148,164,187,.05); border-color:rgba(148,164,187,.14); }
  .nc-select{ min-height:34px; max-width:150px; padding:7px 9px; color:#94a4bb; background:rgba(148,164,187,.05); border:1px solid rgba(148,164,187,.14); border-radius:10px; outline:none; font:inherit; font-size:12.5px; }
  .nc-name{ min-height:34px; width:116px; box-sizing:border-box; padding:7px 9px; color:#eaf1fa; background:rgba(148,164,187,.05); border:1px solid rgba(148,164,187,.14); border-radius:10px; outline:none; font:inherit; font-size:12.5px; }
  .nc-file{ display:none; }
  .nc-run{ margin-left:auto; min-height:36px; padding:8px 16px; font-size:13px; font-weight:800; color:#1a1206; background:linear-gradient(135deg,#f4cd72,#e7b24c); border:none; border-radius:10px; cursor:pointer; font-family:inherit; box-shadow:0 12px 28px -16px rgba(231,178,76,.8); }
  .nc-run:disabled{ opacity:.65; cursor:wait; }
  .nc-zoom{ width:58px; min-width:58px; justify-content:center; color:#eaf1fa; font-family:var(--mono,ui-monospace,monospace); text-align:center; }
  input.nc-zoom{ box-sizing:border-box; outline:none; }
  .nc-help{ display:flex; align-items:center; gap:8px; min-width:180px; font-size:11.5px; color:#5c6b82; }
  .nc-help i{ width:6px; height:6px; border-radius:50%; background:#2dd4bf; box-shadow:0 0 8px rgba(45,212,191,.8); flex:none; }
  .nc-canvas-shell{ position:relative; flex:1; min-height:0; }
  body.nc-local-fullscreen .nc-canvas-shell{ min-height:0; }
  .nc-wrap:fullscreen .nc-canvas-shell,
  .nc-wrap:-webkit-full-screen .nc-canvas-shell{ min-height:0; }
  body.nc-local-fullscreen .nc-hero,
  .nc-wrap:fullscreen .nc-hero,
  .nc-wrap:-webkit-full-screen .nc-hero{ display:none; }
  body.nc-local-fullscreen .nc-canvas-shell,
  .nc-wrap:fullscreen .nc-canvas-shell,
  .nc-wrap:-webkit-full-screen .nc-canvas-shell{ order:1; }
  body.nc-local-fullscreen .nc-bar,
  .nc-wrap:fullscreen .nc-bar,
  .nc-wrap:-webkit-full-screen .nc-bar{ display:none; }
  body.nc-local-fullscreen .nc-group,
  .nc-wrap:fullscreen .nc-group,
  .nc-wrap:-webkit-full-screen .nc-group{ align-content:flex-start; gap:6px; padding:8px; border:1px solid rgba(148,164,187,.12); border-radius:10px; background:rgba(148,164,187,.04); }
  body.nc-local-fullscreen .nc-group-label,
  .nc-wrap:fullscreen .nc-group-label,
  .nc-wrap:-webkit-full-screen .nc-group-label{ display:block; }
  body.nc-local-fullscreen .nc-add,
  body.nc-local-fullscreen .nc-ghost,
  body.nc-local-fullscreen .nc-run,
  .nc-wrap:fullscreen .nc-add,
  .nc-wrap:fullscreen .nc-ghost,
  .nc-wrap:fullscreen .nc-run,
  .nc-wrap:-webkit-full-screen .nc-add,
  .nc-wrap:-webkit-full-screen .nc-ghost,
  .nc-wrap:-webkit-full-screen .nc-run{ min-height:30px; padding:6px 10px; font-size:12px; border-radius:8px; }
  body.nc-local-fullscreen .nc-run,
  .nc-wrap:fullscreen .nc-run,
  .nc-wrap:-webkit-full-screen .nc-run{ margin-left:0; align-self:flex-end; }
  body.nc-local-fullscreen .nc-help,
  .nc-wrap:fullscreen .nc-help,
  .nc-wrap:-webkit-full-screen .nc-help{ display:none; }
  .nc-fs-dock{ display:none; position:absolute; left:50%; bottom:16px; z-index:12; transform:translateX(-50%); max-width:calc(100% - 32px); padding:6px 8px; border:1px solid rgba(148,164,187,.11); border-radius:14px; background:rgba(8,12,20,.76); box-shadow:0 18px 48px -28px rgba(0,0,0,.82); backdrop-filter:blur(18px); }
  .nc-wrap.editing .nc-fs-dock{ display:flex; }
  body.nc-local-fullscreen .nc-fs-dock,
  .nc-wrap:fullscreen .nc-fs-dock,
  .nc-wrap:-webkit-full-screen .nc-fs-dock{ display:flex; }
  .nc-fs-row{ display:flex; align-items:center; justify-content:center; gap:8px; flex-wrap:wrap; }
  .nc-fs-dock,.nc-fs-dock *{ pointer-events:auto; }
  .nc-fs-group{ display:flex; align-items:center; gap:3px; padding-right:7px; border-right:1px solid rgba(148,164,187,.1); }
  .nc-fs-group:last-child{ padding-right:0; border-right:0; }
  .nc-fs-btn{ min-width:30px; min-height:30px; padding:6px 9px; border:1px solid transparent; border-radius:8px; background:transparent; color:#b8c5d6; font:inherit; font-size:12px; font-weight:650; cursor:pointer; }
  .nc-fs-btn.icon{ width:30px; padding:6px 0; font-size:15px; line-height:1; }
  .nc-fs-btn:hover{ background:rgba(148,164,187,.09); color:#fff; border-color:rgba(148,164,187,.11); }
  .nc-fs-btn.primary{ border-color:rgba(231,178,76,.34); background:linear-gradient(135deg,#f1c768,#e5ae43); color:#1a1206; box-shadow:0 10px 24px -18px rgba(231,178,76,.8); }
  .nc-fs-btn:disabled{ opacity:.5; cursor:not-allowed; }
  .nc-fs-zoom{ width:56px; min-width:56px; justify-content:center; color:#eaf1fa; font-family:var(--mono,ui-monospace,monospace); text-align:center; cursor:text; background:rgba(148,164,187,.07); border-color:rgba(148,164,187,.12); }
  .nc-fs-side-moved{ display:none!important; }
  .nc-save-state{ min-width:58px; padding:0 4px; color:#5c6b82; font-size:12px; text-align:center; white-space:nowrap; }
  .nc-save-state.saving{ color:#e7b24c; }
  .nc-save-state.saved{ color:#2bd576; }
  .nc-save-state.error{ color:#f4708a; }
  .nc-online-state{ min-width:52px; color:#7f8fa7; font-size:12px; white-space:nowrap; }
  body.nc-local-fullscreen .nc-float,
  body.nc-local-fullscreen .nc-legend,
  .nc-wrap:fullscreen .nc-float,
  .nc-wrap:fullscreen .nc-legend,
  .nc-wrap:-webkit-full-screen .nc-float,
  .nc-wrap:-webkit-full-screen .nc-legend{ display:none; }
  .nc-canvas{ position:relative; flex:1; min-height:0; border:1px solid rgba(148,164,187,.09); border-radius:14px; overflow:hidden; scrollbar-width:none; cursor:grab;
    height:100%; background:radial-gradient(rgba(148,164,187,.052) 1px, transparent 1px) 0 0/24px 24px, linear-gradient(165deg, rgba(9,14,23,.72), rgba(5,8,14,.82)); box-shadow:inset 0 1px 0 rgba(255,255,255,.025); }
  .nc-canvas::-webkit-scrollbar{ display:none; width:0; height:0; }
  .nc-canvas.panning{ cursor:grabbing; user-select:none; }
  .nc-canvas.connecting{ cursor:crosshair; }
  .nc-canvas.selecting{ cursor:crosshair; user-select:none; }
  .nc-canvas.connecting,.nc-canvas.connecting *{ user-select:none; -webkit-user-select:none; }
  .nc-canvas.connecting input,.nc-canvas.connecting textarea{ user-select:text; -webkit-user-select:text; }
  .nc-inner{ position:relative; width:8000px; height:5000px; transform-origin:0 0; }
  .nc-selection-box{ position:absolute; z-index:4; display:none; pointer-events:none; border:1px dashed rgba(70,180,255,.9); background:rgba(70,180,255,.13); border-radius:6px; box-shadow:0 0 0 1px rgba(70,180,255,.1) inset; }
  .nc-selected-region{ position:absolute; z-index:3; display:none; pointer-events:auto; cursor:move; border:1px solid rgba(45,212,191,.85); background:rgba(45,212,191,.06); border-radius:10px; box-shadow:0 0 0 1px rgba(45,212,191,.12) inset,0 0 18px rgba(45,212,191,.18); }
  .nc-selected-region.dragging{ background:rgba(45,212,191,.11); border-color:#2dd4bf; box-shadow:0 0 0 1px rgba(45,212,191,.18) inset,0 0 24px rgba(45,212,191,.26); }
  .nc-selected-region::after{ content:"已选区域"; position:absolute; left:8px; top:-22px; padding:2px 6px; border:1px solid rgba(45,212,191,.22); border-radius:6px; background:rgba(8,12,20,.9); color:#9be7dc; font-size:11px; white-space:nowrap; }
  .nc-edges{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:1; }
  .nc-edge-hit{ pointer-events:stroke; cursor:pointer; }
  .nc-edge-sel{ stroke:#2dd4bf; stroke-width:3; filter:drop-shadow(0 0 6px rgba(45,212,191,.45)); }
  .nc-node{ position:absolute; z-index:2; width:250px; border:1px solid rgba(148,164,187,.12); border-radius:12px; background:rgba(11,16,24,.94); box-shadow:0 14px 34px -24px rgba(0,0,0,.85); font-size:12.5px; transition:border-color .16s, box-shadow .16s, transform .16s; user-select:none; -webkit-user-select:none; }
  .nc-node.sel{ border-color:rgba(231,178,76,.54); box-shadow:0 16px 36px -24px rgba(231,178,76,.38),0 14px 34px -24px rgba(0,0,0,.85); }
  .nc-node[data-state="running"]{ border-color:rgba(45,212,191,.55); }
  .nc-node[data-state="done"]{ border-color:rgba(43,213,118,.45); }
  .nc-node[data-state="error"]{ border-color:rgba(244,112,138,.55); }
  .nc-node.collapsed{ width:220px; }
  .nc-node.collapsed .nc-body{ display:none; }
  .nc-node.collapsed .nc-port{ top:50%!important; transform:translateY(-50%); }
  .nc-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 10px; border-bottom:1px solid rgba(148,164,187,.08); cursor:move; border-radius:12px 12px 0 0; font-weight:700; user-select:none; -webkit-user-select:none; }
  .nc-node.collapsed .nc-head{ border-bottom:0; border-radius:13px; }
  .nc-head .dot{ width:8px; height:8px; border-radius:50%; flex:none; }
  .nc-actions{ display:flex; align-items:center; gap:7px; flex:none; }
  .nc-fold{ cursor:pointer; color:#94a4bb; font-size:14px; line-height:1; }
  .nc-fold:hover{ color:#e7b24c; }
  .nc-x{ cursor:pointer; color:#5c6b82; font-size:15px; line-height:1; }
  .nc-x:hover{ color:#f4708a; }
  .nc-body{ padding:10px; display:flex; flex-direction:column; gap:8px; }
  .nc-lab{ font-size:10.5px; color:#5c6b82; user-select:none; -webkit-user-select:none; }
  .nc-node-title{ font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .nc-node-title[contenteditable="true"]{ min-width:54px; max-width:160px; padding:2px 5px; margin:-3px -6px; border:1px solid rgba(70,180,255,.5); border-radius:5px; background:rgba(70,180,255,.08); outline:none; overflow:visible; text-overflow:clip; cursor:text; user-select:text; -webkit-user-select:text; }
  .nc-remark-mark{ display:none; flex:0 0 auto; align-items:center; justify-content:center; height:17px; min-width:17px; padding:0 4px; border-radius:4px; background:#fff1c2; color:#8a5d00; font-size:11px; font-weight:700; }
  .nc-node.has-remark .nc-remark-mark{ display:inline-flex; }
  .nc-in{ width:100%; box-sizing:border-box; padding:7px 9px; font-size:12px; color:#eaf1fa; background:rgba(6,10,17,.56); border:1px solid rgba(148,164,187,.12); border-radius:8px; outline:none; font-family:inherit; resize:none; user-select:text; -webkit-user-select:text; }
  .nc-in:focus{ border-color:rgba(231,178,76,.4); }
  .nc-seg{ display:flex; gap:5px; flex-wrap:wrap; }
  .nc-chip{ padding:4px 8px; font-size:11px; border-radius:7px; cursor:pointer; color:#94a4bb; background:rgba(148,164,187,.045); border:1px solid rgba(148,164,187,.11); user-select:none; -webkit-user-select:none; }
  .nc-chip.on{ color:#e7b24c; background:rgba(231,178,76,.1); border-color:rgba(231,178,76,.32); }
  .nc-go{ width:100%; padding:8px; font-size:12.5px; font-weight:700; color:#1a1206; background:linear-gradient(135deg,#f1c768,#e5ae43); border:none; border-radius:8px; cursor:pointer; font-family:inherit; user-select:none; -webkit-user-select:none; }
  .nc-go:disabled{ opacity:.6; cursor:wait; }
  .nc-video-submit{ display:flex; align-items:center; gap:9px; }
  .nc-video-submit .nc-go{ display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-width:0; }
  .nc-video-cost{ flex:none; color:rgba(26,18,6,.7); font-size:11px; font-weight:700; white-space:nowrap; }
  .nc-video-avatars{ padding:7px; border:1px solid rgba(244,114,182,.18); border-radius:8px; background:rgba(244,114,182,.045); }
  .nc-avatar-head{ display:flex; align-items:center; gap:7px; margin-bottom:6px; color:#94a4bb; font-size:10.5px; }
  .nc-avatar-head span:first-child{ flex:1; }
  .nc-avatar-head button{ padding:2px 6px; border:1px solid rgba(148,164,187,.14); border-radius:5px; background:rgba(148,164,187,.06); color:#94a4bb; font:inherit; cursor:pointer; }
  .nc-avatar-list{ display:flex; gap:5px; max-height:68px; overflow:auto; flex-wrap:wrap; }
  .nc-avatar-choice{ max-width:100%; padding:4px 7px; overflow:hidden; border:1px solid rgba(148,164,187,.13); border-radius:6px; background:rgba(6,10,17,.45); color:#94a4bb; font:inherit; font-size:10.5px; text-overflow:ellipsis; white-space:nowrap; cursor:pointer; }
  .nc-avatar-choice.on{ border-color:rgba(231,178,76,.45); background:rgba(231,178,76,.12); color:#e7b24c; }
  .nc-avatar-empty{ color:#6f8198; font-size:10.5px; line-height:1.5; }
  .nc-avatar-empty.error{ color:#f4708a; }
  .nc-note{ font-size:10.5px; color:#5c6b82; min-height:15px; line-height:1.45; }
  .nc-refbar{ display:flex; align-items:center; gap:6px; min-height:26px; padding:5px 6px; border:1px solid rgba(70,180,255,.14); border-radius:8px; background:rgba(70,180,255,.05); color:#6f8198; font-size:10.5px; }
  .nc-refbar.has-ref{ color:#cbd6e4; border-color:rgba(70,180,255,.25); }
  .nc-refbar span{ white-space:nowrap; }
  .nc-refthumbs{ display:flex; align-items:center; gap:4px; min-width:0; }
  .nc-refthumb{ width:22px; height:22px; border-radius:5px; border:1px solid rgba(148,164,187,.18); background-size:cover; background-position:center; flex:none; }
  .nc-refmore{ min-width:22px; height:22px; display:grid; place-items:center; padding:0 4px; border-radius:5px; background:rgba(148,164,187,.1); color:#94a4bb; font-size:10px; flex:none; }
  .nc-thumb{ width:100%; border-radius:8px; display:block; border:1px solid rgba(148,164,187,.12); }
  .nc-drop{ width:100%; aspect-ratio:1; display:flex; align-items:center; justify-content:center; text-align:center; font-size:11px; color:#5c6b82; border:1.4px dashed rgba(148,164,187,.26); border-radius:9px; cursor:pointer; background-size:cover; background-position:center; }
  .nc-drop:hover{ border-color:rgba(231,178,76,.42); color:#94a4bb; }
  .nc-video-result{ width:100%; aspect-ratio:16/9; display:none; border:1px solid rgba(148,164,187,.16); border-radius:9px; overflow:hidden; background:#05070c; }
  .nc-video-result video{ width:100%; height:100%; display:block; object-fit:contain; background:#05070c; }
  .nc-mini{ display:inline-flex; align-items:center; gap:5px; padding:3px 7px; border-radius:7px; font-size:10.5px; color:#94a4bb; background:rgba(148,164,187,.06); border:1px solid rgba(148,164,187,.12); }
  .nc-float{ position:absolute; z-index:5; left:16px; bottom:16px; display:flex; align-items:center; gap:9px; padding:10px 12px; border:1px solid rgba(148,164,187,.12); border-radius:12px; background:rgba(9,14,24,.88); backdrop-filter:blur(10px); color:#94a4bb; font-size:11.5px; box-shadow:0 16px 38px -22px rgba(0,0,0,.9); }
  .nc-legend{ position:absolute; z-index:5; right:16px; bottom:16px; display:flex; align-items:center; gap:8px; padding:9px 11px; border:1px solid rgba(148,164,187,.12); border-radius:12px; background:rgba(9,14,24,.88); backdrop-filter:blur(10px); font-size:11px; color:#5c6b82; }
  .nc-legend span{ display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
  .nc-legend i{ width:9px; height:9px; border-radius:50%; border:2px solid #94a4bb; }
  .nc-legend .img i{ border-color:#46b4ff; }
  .nc-map{ position:absolute; z-index:6; right:16px; top:16px; width:164px; height:104px; border:1px solid rgba(148,164,187,.16); border-radius:10px; background:rgba(9,14,24,.82); backdrop-filter:blur(10px); overflow:hidden; cursor:pointer; box-shadow:0 16px 38px -24px rgba(0,0,0,.9); }
  .nc-map svg{ width:100%; height:100%; display:block; }
  .nc-map-node{ fill:rgba(231,178,76,.72); stroke:rgba(255,255,255,.24); stroke-width:.7; }
  .nc-map-node.img{ fill:rgba(70,180,255,.72); }
  .nc-map-view{ fill:rgba(45,212,191,.08); stroke:#2dd4bf; stroke-width:1.4; }
  .nc-menu{ position:fixed; z-index:30; display:none; min-width:126px; padding:5px; border:1px solid rgba(148,164,187,.12); border-radius:10px; background:rgba(8,12,20,.94); box-shadow:0 18px 42px -24px rgba(0,0,0,.9); backdrop-filter:blur(16px); }
  .nc-menu.on{ display:block; }
  .nc-menu button{ display:flex; align-items:center; gap:8px; width:100%; min-height:28px; padding:5px 8px; border:0; border-radius:7px; background:transparent; color:#94a4bb; text-align:left; cursor:pointer; font:inherit; font-size:12px; user-select:none; -webkit-user-select:none; }
  .nc-menu button:hover{ color:#eaf1fa; background:rgba(148,164,187,.075); }
  .nc-menu-k{ width:19px; height:19px; display:grid; place-items:center; flex:none; border-radius:6px; background:rgba(148,164,187,.06); color:#cbd6e4; font-size:10.5px; font-weight:800; }
  .nc-menu-t{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .nc-side-tools{ position:absolute; right:14px; top:50%; z-index:13; transform:translateY(-50%); display:flex; flex-direction:column; gap:8px; padding:6px; border:1px solid rgba(148,164,187,.11); border-radius:14px; background:rgba(8,12,20,.72); box-shadow:0 18px 48px -28px rgba(0,0,0,.82); backdrop-filter:blur(18px); }
  .nc-side-tool{ width:42px; height:42px; display:grid; place-items:center; border:1px solid transparent; border-radius:11px; background:transparent; color:#94a4bb; cursor:pointer; font:inherit; }
  .nc-side-tool b{ display:none; }
  .nc-side-tool span{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .nc-side-tool svg{ width:19px; height:19px; display:block; stroke:currentColor; }
  .nc-side-tool:hover,.nc-side-tool.on{ color:#fff; border-color:rgba(231,178,76,.24); background:rgba(231,178,76,.1); }
  .nc-side-panel{ position:absolute; right:68px; top:16px; bottom:76px; z-index:13; display:none; width:292px; border:1px solid rgba(148,164,187,.12); border-radius:14px; background:rgba(8,12,20,.9); box-shadow:0 24px 58px -30px rgba(0,0,0,.9); backdrop-filter:blur(18px); overflow:hidden; }
  .nc-side-panel.on{ display:flex; flex-direction:column; }
  .nc-side-head{ height:46px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 12px 0 14px; border-bottom:1px solid rgba(148,164,187,.09); }
  .nc-side-head strong{ color:#eaf1fa; font-size:13px; }
  .nc-side-close{ width:28px; height:28px; border:0; border-radius:8px; background:transparent; color:#94a4bb; cursor:pointer; font:inherit; font-size:18px; line-height:1; }
  .nc-side-close:hover{ color:#fff; background:rgba(148,164,187,.08); }
  .nc-side-body{ flex:1; min-height:0; overflow:auto; padding:10px; scrollbar-width:none; }
  .nc-side-body::-webkit-scrollbar{ display:none; width:0; height:0; }
  .nc-side-empty{ padding:28px 12px; color:#5c6b82; font-size:12px; line-height:1.7; text-align:center; }
  .nc-side-list{ display:flex; flex-direction:column; gap:7px; }
  .nc-side-item{ width:100%; box-sizing:border-box; display:flex; align-items:center; gap:9px; min-height:46px; padding:8px; border:1px solid rgba(148,164,187,.1); border-radius:10px; background:rgba(148,164,187,.035); color:#cbd6e4; text-align:left; cursor:pointer; font:inherit; }
  .nc-side-item:hover{ border-color:rgba(231,178,76,.24); background:rgba(231,178,76,.08); }
  .nc-side-dot{ width:8px; height:8px; border-radius:50%; flex:none; background:#94a4bb; }
  .nc-side-main{ min-width:0; flex:1; }
  .nc-side-title{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#eaf1fa; font-size:12.5px; font-weight:800; }
  .nc-side-meta{ display:block; margin-top:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#5c6b82; font-size:11px; }
  .nc-asset-grid{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .nc-asset-card{ min-width:0; border:1px solid rgba(148,164,187,.1); border-radius:10px; background:rgba(148,164,187,.035); overflow:hidden; cursor:pointer; color:#cbd6e4; text-align:left; font:inherit; }
  .nc-asset-card:hover{ border-color:rgba(231,178,76,.24); background:rgba(231,178,76,.07); }
  .nc-asset-thumb{ height:88px; display:grid; place-items:center; background:rgba(7,11,19,.46); background-size:cover; background-position:center; color:#5c6b82; font-size:12px; }
  .nc-asset-card.video .nc-asset-thumb{ background:linear-gradient(145deg,rgba(244,114,182,.14),rgba(70,180,255,.07)); }
  .nc-asset-info{ padding:7px; }
  .nc-asset-info b{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#eaf1fa; font-size:11.5px; }
  .nc-asset-info span{ display:block; margin-top:3px; color:#5c6b82; font-size:10.5px; }
  .nc-export-box{ display:flex; flex-direction:column; gap:10px; padding:2px; }
  .nc-export-preview{ min-height:150px; display:grid; place-items:center; border:1px dashed rgba(148,164,187,.16); border-radius:12px; background:rgba(148,164,187,.025); color:#5c6b82; font-size:12px; line-height:1.6; text-align:center; }
  .nc-export-btn{ width:100%; min-height:36px; border:1px solid rgba(231,178,76,.34); border-radius:10px; background:linear-gradient(135deg,#f1c768,#e5ae43); color:#1a1206; cursor:pointer; font:inherit; font-size:12.5px; font-weight:800; }
  .nc-dialog-mask{ position:fixed; inset:0; z-index:80; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(4,8,15,.48); }
  .nc-dialog{ width:min(420px,100%); padding:16px; border:1px solid rgba(148,164,187,.2); border-radius:8px; background:#111827; box-shadow:0 24px 60px rgba(0,0,0,.42); color:#eaf1fa; }
  .nc-dialog.nc-asset-picker{ width:min(680px,100%); }
  .nc-dialog.nc-collab-dialog{ width:min(560px,100%); }
  .nc-asset-picker-body{ max-height:min(520px,65vh); overflow:auto; padding:2px; scrollbar-width:thin; }
  .nc-asset-picker-body .nc-asset-grid{ grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); }
  .nc-dialog h3{ margin:0 0 12px; font-size:15px; }
  .nc-dialog input,.nc-dialog textarea{ width:100%; box-sizing:border-box; border:1px solid rgba(148,164,187,.24); border-radius:7px; background:#0b1220; color:#eaf1fa; padding:9px 10px; outline:none; font:inherit; resize:vertical; }
  .nc-dialog textarea{ min-height:110px; }
  .nc-dialog p{ margin:0; white-space:pre-wrap; line-height:1.55; color:#cbd6e4; }
  .nc-dialog-actions{ display:flex; justify-content:flex-end; gap:8px; margin-top:14px; }
  .nc-dialog-actions button{ border:1px solid rgba(148,164,187,.25); background:#172033; color:#dbe7f5; border-radius:7px; padding:7px 13px; cursor:pointer; }
  .nc-dialog-actions button.primary{ border-color:#1677ff; background:#1677ff; color:#fff; }
  .nc-collab-form{ display:grid; grid-template-columns:minmax(0,1fr) 104px auto; gap:8px; margin-top:12px; }
  .nc-collab-form select{ min-height:38px; border:1px solid rgba(148,164,187,.24); border-radius:7px; background:#0b1220; color:#eaf1fa; padding:8px 10px; outline:none; font:inherit; }
  .nc-collab-form button{ min-height:38px; border:1px solid rgba(231,178,76,.32); border-radius:7px; background:#e7b24c; color:#1a1206; font:inherit; font-weight:800; cursor:pointer; }
  .nc-collab-members{ display:flex; flex-direction:column; gap:8px; margin-top:14px; max-height:260px; overflow:auto; }
  .nc-collab-member{ display:grid; grid-template-columns:38px minmax(0,1fr) auto auto; align-items:center; gap:10px; padding:9px; border:1px solid rgba(148,164,187,.14); border-radius:8px; background:rgba(148,164,187,.05); }
  .nc-collab-avatar{ width:34px; height:34px; display:grid; place-items:center; border-radius:8px; background:rgba(231,178,76,.16); color:#e7b24c; font-weight:900; }
  .nc-collab-name{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:800; }
  .nc-collab-meta{ display:block; margin-top:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#7f8fa7; font-size:12px; }
  .nc-collab-role{ color:#cbd6e4; font-size:12px; }
  .nc-collab-remove{ border:1px solid rgba(244,112,138,.3); border-radius:7px; background:rgba(244,112,138,.1); color:#f4708a; padding:6px 9px; cursor:pointer; font:inherit; font-size:12px; }
  .nc-collab-status{ min-height:18px; margin-top:10px; color:#e7b24c; font-size:12px; }
  .nc-collab-status.error{ color:#f4708a; }
  .nc-empty{ position:absolute; inset:0; display:none; align-items:center; justify-content:center; pointer-events:none; z-index:4; }
  .nc-empty.on{ display:flex; }
  .nc-empty-card{ width:min(420px, calc(100% - 32px)); padding:22px; border:1px dashed rgba(148,164,187,.22); border-radius:16px; background:rgba(9,14,24,.72); text-align:center; color:#94a4bb; pointer-events:auto; }
  .nc-empty-card b{ display:block; margin-bottom:7px; color:#eaf1fa; font-size:16px; }
  .nc-empty-card p{ margin-bottom:14px; color:#5c6b82; font-size:12.5px; }
  /* ports */
  .nc-port{ position:absolute; width:13px; height:13px; border-radius:50%; background:#0d131c; border:2px solid #94a4bb; cursor:crosshair; z-index:3; user-select:none; -webkit-user-select:none; touch-action:none; }
  .nc-port:hover{ border-color:#e7b24c; }
  .nc-port.can-connect{ border-color:#2bd576; box-shadow:0 0 0 4px rgba(43,213,118,.12),0 0 14px rgba(43,213,118,.45); }
  .nc-port.dragging{ border-color:#e7b24c; box-shadow:0 0 0 4px rgba(231,178,76,.13),0 0 14px rgba(231,178,76,.5); }
  .nc-port.pin{ left:-7px; }
  .nc-port.pout{ right:-7px; }
  .nc-port.img{ border-color:#46b4ff; }
  .nc-port.img:hover{ border-color:#e7b24c; }
  @media (max-width:900px){
    body{ overflow:auto; }
    .nc-wrap{ height:auto; min-height:0; }
    .nc-board-head{ align-items:stretch; flex-direction:column; }
    .nc-board-tools{ width:100%; margin-left:0; }
    .nc-board-search{ width:100%; }
    .nc-board-grid{ grid-template-columns:1fr; }
    .nc-board-card{ width:100%; }
    .nc-board-actions{ opacity:1; }
    .nc-collab-form{ grid-template-columns:1fr; }
    .nc-collab-member{ grid-template-columns:34px minmax(0,1fr) auto; }
    .nc-collab-remove{ grid-column:2/4; }
    .nc-hero{ flex-direction:column; }
    .nc-stats{ width:100%; min-width:0; }
    .nc-run{ margin-left:0; width:100%; justify-content:center; }
    .nc-help{ width:100%; }
    .nc-canvas-shell{ height:68vh; min-height:520px; max-height:620px; overflow:hidden; display:flex; flex-direction:column; gap:8px; }
    .nc-canvas{ flex:1; height:auto; min-height:0; }
    .nc-float,.nc-legend{ position:static; margin-top:8px; flex-wrap:wrap; }
    .nc-map{ width:132px; height:84px; right:12px; top:12px; }
  }
