:root{--red-50: #FEF2F3;--red-100: #FDE3E5;--red-200: #FAC5CB;--red-300: #F2929D;--red-400: #E85365;--red-500: #D90429;--red-600: #BA0322;--red-700: #97041F;--red-800: #6F0418;--red-900: #4C0511;--ink-950: #00161E;--ink-900: #002330;--ink-800: #06303D;--ink-700: #103F4C;--ink-600: #1E5160;--ink-500: #356676;--teal-400: #4F8494;--teal-300: #84AEBB;--teal-200: #BFD6DD;--teal-100: #E4EEF1;--n-0: #FFFFFF;--n-25: #FBFCFC;--n-50: #F6F8F9;--n-100: #EDF0F2;--n-200: #DDE3E6;--n-300: #C3CBD0;--n-400: #98A4AB;--n-500: #6C7A82;--n-600: #4E5B62;--n-700: #364248;--n-800: #212B30;--n-900: #121A1E;--green-100: #DCF3E7;--green-500: #1F8A5B;--green-600: #167349;--amber-100: #FCEFCE;--amber-500: #E8A317;--amber-600: #C0850B;--brand: var(--red-500);--brand-hover: var(--red-600);--brand-press: var(--red-700);--brand-subtle: var(--red-50);--brand-on: var(--n-0);--accent-deep: var(--ink-900);--bg: var(--n-0);--bg-subtle: var(--n-50);--bg-deep: var(--ink-900);--bg-deep-2: var(--ink-800);--surface: var(--n-0);--surface-subtle: var(--n-50);--surface-deep: var(--ink-900);--text-strong: var(--ink-900);--text-body: var(--n-700);--text-muted: var(--n-500);--text-faint: var(--n-400);--text-brand: var(--red-500);--text-on-dark: #FFFFFF;--text-on-dark-muted: rgba(255,255,255,.72);--text-on-dark-faint: rgba(255,255,255,.52);--text-on-brand: #FFFFFF;--border: var(--n-200);--border-strong: var(--n-300);--border-on-dark: rgba(255,255,255,.14);--divider: var(--n-100);--success: var(--green-500);--success-bg: var(--green-100);--warning: var(--amber-500);--warning-bg: var(--amber-100);--danger: var(--red-500);--danger-bg: var(--red-50);--focus-ring: rgba(217, 4, 41, .4);--focus-ring-dark: rgba(255, 255, 255, .55)}:root{--font-display: "Poppins", "Segoe UI", system-ui, sans-serif;--font-body: "Figtree", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-extrabold:800;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 1.875rem;--text-3xl: 2.25rem;--text-4xl: 3rem;--text-5xl: 3.75rem;--text-6xl: 4.5rem;--display-1: clamp(2.75rem, 1.6rem + 5.2vw, 4.75rem);--display-2: clamp(2.25rem, 1.5rem + 3.4vw, 3.5rem);--leading-none: 1;--leading-tight: 1.08;--leading-snug: 1.2;--leading-normal: 1.5;--leading-relaxed: 1.65;--tracking-tighter: -.03em;--tracking-tight: -.015em;--tracking-normal: 0;--tracking-wide: .04em;--tracking-wider: .12em}:root{--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-32: 8rem;--container: 1200px;--container-wide: 1320px;--container-prose: 720px;--gutter: clamp(1.25rem, 4vw, 4rem);--section-y: clamp(4rem, 8vw, 7.5rem)}:root{--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-2xl: 32px;--radius-pill: 999px;--radius-card: var(--radius-lg);--shadow-xs: 0 1px 2px rgba(0, 35, 48, .06);--shadow-sm: 0 1px 3px rgba(0, 35, 48, .08), 0 1px 2px rgba(0, 35, 48, .06);--shadow-md: 0 6px 16px rgba(0, 35, 48, .08), 0 2px 6px rgba(0, 35, 48, .06);--shadow-lg: 0 16px 40px rgba(0, 35, 48, .12), 0 4px 12px rgba(0, 35, 48, .07);--shadow-xl: 0 32px 70px rgba(0, 35, 48, .18), 0 8px 20px rgba(0, 35, 48, .08);--shadow-brand: 0 10px 28px rgba(217, 4, 41, .32);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .32s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-body);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--text-strong);font-weight:var(--fw-bold);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);text-wrap:balance}p{text-wrap:pretty}a{color:var(--text-brand);text-decoration:none}a:hover{color:var(--brand-hover)}img,svg,video{display:block;max-width:100%}button,input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}::selection{background:var(--red-500);color:#fff}.pesty-container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.eyebrow{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--text-sm);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--text-brand)}ul,ol{padding:0;list-style:none}html,body,#root{height:100%}body{overflow:hidden;background:var(--n-100);-webkit-tap-highlight-color:transparent}.toolbar{position:fixed;top:0;left:0;right:0;height:58px;z-index:60;display:flex;align-items:center;gap:10px;padding:0 16px;background:#ffffffed;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm)}.tb-brand{display:flex;align-items:center;gap:6px;padding-right:14px;border-right:1px solid var(--border)}.tb-logo{height:28px;width:auto}.tb-mark{font-family:var(--font-display);font-weight:var(--fw-extrabold);font-size:20px;color:var(--brand);letter-spacing:-.03em}.tb-sub{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:12px;color:var(--text-faint);letter-spacing:var(--tracking-wider);text-transform:uppercase}.tb-file{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:13.5px;color:var(--ink-900)}.tb-file .pin{width:20px;height:20px;display:grid;place-items:center;background:var(--brand-subtle);border-radius:6px;font-size:11px;color:var(--brand)}.tb-spacer{flex:1}.tb-div-v{width:1px;height:26px;background:var(--border);margin:0 4px}.ctrl-group{display:flex;align-items:center;gap:2px;background:var(--n-50);border:1px solid var(--border);border-radius:var(--radius-pill);padding:3px}.ctrl-group button{width:30px;height:30px;border:0;background:transparent;border-radius:50%;font-size:16px;color:var(--ink-800);cursor:pointer;display:grid;place-items:center;transition:background var(--dur-fast) var(--ease-standard)}.ctrl-group button:hover:not(:disabled){background:var(--n-100)}.ctrl-group button:disabled{opacity:.3;cursor:default}#zoom-val{min-width:46px;text-align:center;font-family:var(--font-mono);font-size:12px;color:var(--text-body)}.btn{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:13px;cursor:pointer;border-radius:var(--radius-pill);border:1.5px solid transparent;white-space:nowrap;transition:all var(--dur-base) var(--ease-standard)}.btn-ghost{background:transparent;border-color:var(--border-strong);color:var(--ink-800)}.btn-ghost:hover{border-color:var(--ink-900);color:var(--ink-900)}.btn-ghost.active{background:var(--ink-900);border-color:var(--ink-900);color:#fff}.btn-ghost.danger:hover{border-color:var(--danger);color:var(--danger)}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-hover);box-shadow:var(--shadow-brand)}.btn .ico{font-size:13px}.stage{position:fixed;top:58px;right:0;bottom:0;left:0;display:flex}.react-flow{background:var(--n-50)}.live-cursors{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:20}.live-cursor{position:absolute;top:0;left:0;display:flex;align-items:flex-start;gap:3px;transition:transform 90ms linear;will-change:transform}.live-cursor svg{display:block;flex:none;filter:drop-shadow(0 1px 1.5px rgba(0,35,48,.28))}.live-cursor-label{margin-top:11px;margin-left:-3px;padding:1px 7px;border-radius:var(--radius-pill);color:#fff;font-family:var(--font-display);font-size:11px;font-weight:var(--fw-semibold);line-height:1.5;white-space:nowrap;box-shadow:0 1px 3px #00233033}.react-flow svg{max-width:none}.react-flow__edges{width:100%;height:100%}.react-flow__node{font-family:var(--font-body)}.react-flow__handle{opacity:0;pointer-events:none}.react-flow__node.rf-faded{opacity:.22;transition:opacity var(--dur-base) var(--ease-standard)}.react-flow__controls{box-shadow:var(--shadow-md);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border)}.react-flow__controls-button{background:#fff;border-bottom:1px solid var(--divider);color:var(--ink-800);width:30px;height:30px}.react-flow__controls-button:hover{background:var(--n-50)}.react-flow__minimap{border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);background:#fff}.node{position:relative;width:220px;background:var(--surface);border:2px solid var(--accent);border-radius:14px;box-shadow:var(--shadow-sm);padding:7px;font-family:var(--font-body);text-align:left;transition:box-shadow var(--dur-base) var(--ease-standard),opacity var(--dur-base) var(--ease-standard)}.node:hover{box-shadow:var(--shadow-lg)}.node.is-selected{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 26%,transparent),var(--shadow-lg)}.node.is-dim{opacity:.26}.node-struct{display:flex;align-items:center;gap:10px;padding:6px 8px}.struct-glyph{width:30px;height:30px;flex-shrink:0;display:grid;place-items:center;background:var(--accent);color:#fff;border-radius:9px;font-size:13px}.struct-text{display:flex;flex-direction:column;gap:1px;min-width:0}.struct-title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:14.5px;color:var(--accent);letter-spacing:var(--tracking-tight);line-height:1.2}.node--root .struct-title{font-size:16px}.struct-sub{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);line-height:1.35;word-break:break-word}.node-head{position:relative;display:flex;flex-direction:column;align-items:center;gap:1px;padding:3px 24px 6px}.node-dots{position:absolute;top:3px;left:4px;display:flex;gap:3px}.node-dots i{width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.55;display:block}.node-titles{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0}.node-title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:13.5px;color:var(--accent);letter-spacing:var(--tracking-tight);line-height:1.2;text-align:center;word-break:break-word}.node-slug{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);word-break:break-all;line-height:1.35;text-align:center}.node-slug.is-pending{color:var(--danger);background:var(--danger-bg);padding:1px 5px;border-radius:4px}.node-meta{display:flex;align-items:center;gap:5px;margin-top:3px}.node-typechip{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:8.5px;letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:2px 7px;border-radius:var(--radius-pill)}.node-marks{display:flex;gap:3px}.mark{width:14px;height:14px;border-radius:50%;display:grid;place-items:center;font-size:8px;font-style:normal;line-height:1}.mark--flag{background:var(--amber-100);color:var(--amber-600)}.mark--note{background:var(--n-100);color:var(--text-muted)}.mark--stat{background:var(--teal-100);color:var(--ink-600);font-family:var(--font-mono)}.node-menu{position:absolute;top:-16px;right:-16px;z-index:12;width:22px;height:22px;border:2px solid var(--surface);border-radius:50%;background:var(--accent);color:#fff;cursor:pointer;font-size:11px;line-height:1;display:grid;place-items:center;transition:transform var(--dur-fast) var(--ease-standard)}.node-menu:hover{transform:scale(1.12)}.menu{position:absolute;top:12px;right:-6px;z-index:40;width:214px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);padding:6px;text-align:left}.menu-label{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:9.5px;letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--text-faint);padding:6px 8px 4px}.menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:0;background:transparent;cursor:pointer;border-radius:var(--radius-sm);font-size:12.5px;color:var(--ink-800);font-family:var(--font-body);text-align:left}.menu-item:hover{background:var(--n-50)}.menu-item.on{background:var(--n-100);font-weight:var(--fw-semibold)}.menu-item.danger{color:var(--danger)}.menu-item.danger:hover{background:var(--danger-bg)}.menu-sep{height:1px;background:var(--divider);margin:5px 4px}.swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.sec-list{display:flex;flex-direction:column;gap:3px}.sec{position:relative;display:flex;flex-direction:column;gap:5px;padding:5px 7px 6px;border-radius:6px;min-height:40px;justify-content:center;background:var(--src);color:#fff;cursor:pointer;transition:box-shadow var(--dur-fast) var(--ease-standard),opacity var(--dur-base) var(--ease-standard)}.sec:hover{box-shadow:0 0 0 2px color-mix(in srgb,var(--src) 45%,#fff)}.sec.is-selected{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--src)}.sec.is-dim{opacity:.28}.sec-head{display:flex;align-items:flex-start;gap:6px}.sec-title{flex:1;font-size:11px;font-weight:var(--fw-medium);color:#fff;line-height:1.3;word-break:break-word}.sec-chip{font-family:var(--font-mono);font-size:8.5px;font-weight:600;color:#fff;background:#ffffff3d;padding:1px 4px;border-radius:4px;flex-shrink:0;letter-spacing:-.02em}.sec-desc{font-family:var(--font-mono);font-size:9.5px;color:#ffffffc7;line-height:1.35}.skel{display:flex;flex-direction:column;gap:4px;min-height:12px;justify-content:center}.skel-lines{display:flex;flex-direction:column;gap:3px}.skel-line{display:block;height:3px;border-radius:2px;background:#ffffff8c}.skel-line.w90{width:90%}.skel-line.w85{width:85%}.skel-line.w70{width:70%}.skel-line.w60{width:60%}.skel-line.w55{width:55%}.skel-cols{display:grid;grid-template-columns:1fr 1fr;gap:5px}.skel-box{height:24px;border-radius:4px;background:#fff3;border:1px solid rgba(255,255,255,.45)}.skel-list{display:flex;flex-direction:column;gap:4px}.skel-row{display:flex;align-items:center;gap:5px}.skel-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:#ffffff8c}.skel-row .skel-line{flex:1}.skel-img{height:32px;border-radius:4px;background:linear-gradient(135deg,transparent 58%,rgba(255,255,255,.45) 58%,rgba(255,255,255,.45) 72%,transparent 72%),#ffffff2e;border:1px solid rgba(255,255,255,.42)}.sec-add{display:none;width:100%;margin-top:5px;padding:4px;border:1px dashed var(--border-strong);border-radius:7px;background:transparent;color:var(--text-faint);cursor:pointer;font-family:var(--font-mono);font-size:9.5px;transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.node:hover .sec-add,.node.is-selected .sec-add{display:block}.sec-add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.sec-toolbar{position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:3px;padding:4px 5px;background:var(--ink-900);border-radius:var(--radius-pill);box-shadow:var(--shadow-xl);white-space:nowrap}.sec-toolbar:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--ink-900)}.tb-sources{display:flex;gap:2px}.tb-src{min-width:26px;height:24px;padding:0 5px;border:0;cursor:pointer;border-radius:var(--radius-sm);background:#ffffff1a;color:#ffffffb8;font-family:var(--font-mono);font-size:10.5px;font-weight:600;transition:all var(--dur-fast) var(--ease-standard)}.tb-src:hover{background:#fff3;color:#fff}.tb-src.on{background:var(--src);color:#fff;box-shadow:0 0 0 1.5px #ffffff59}.tb-group{display:flex;gap:2px}.tb-btn{width:24px;height:24px;border:0;cursor:pointer;border-radius:var(--radius-sm);background:transparent;color:#ffffffb8;font-size:12px;display:grid;place-items:center;transition:all var(--dur-fast) var(--ease-standard)}.tb-btn:hover{background:#ffffff29;color:#fff}.tb-btn.on{background:#ffffff38;color:#fff}.tb-btn.danger:hover{background:var(--danger);color:#fff}.tb-div{width:1px;height:16px;background:#ffffff29;margin:0 2px}.node-stat{margin-top:5px;padding:5px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-family:var(--font-mono);font-size:9.5px;line-height:1.35}.node-note{margin-top:5px;padding:6px 8px;border:1px dashed var(--border-strong);border-radius:6px;font-size:10px;line-height:1.4;color:var(--text-muted)}.node-flag{display:flex;gap:6px;margin-top:5px;padding:6px 8px;background:var(--amber-100);border-radius:6px;border-left:3px solid var(--warning);font-size:10px;line-height:1.4;color:var(--ink-800)}.flag-ico{color:var(--amber-600);flex-shrink:0;font-size:9px;padding-top:2px}.node-add{position:absolute;bottom:-13px;left:50%;transform:translate(-50%);width:24px;height:24px;border-radius:50%;cursor:pointer;border:2px solid var(--surface);background:var(--accent);color:#fff;font-size:14px;line-height:1;display:grid;place-items:center;opacity:0;z-index:20;transition:all var(--dur-fast) var(--ease-standard)}.node:hover .node-add,.node.is-selected .node-add{opacity:1}.node-add:hover{transform:translate(-50%) scale(1.15)}.inline-edit{width:100%;border:1px solid currentColor;outline:none;border-radius:4px;padding:1px 4px;background:#fff;font:inherit;color:var(--ink-900);resize:vertical}.ph-text{color:currentColor;opacity:.6;font-style:italic}.node [tabindex="0"]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px;border-radius:3px}.ann{position:relative;max-width:260px;min-width:150px;padding:12px 14px;border-radius:3px;background:#fef08a;border:0;box-shadow:var(--shadow-md);font-size:12px;line-height:1.5;color:var(--ink-900)}.ann--flag{background:var(--amber-100);border-left:4px solid var(--warning)}.ann-text{display:flex;gap:6px;white-space:pre-wrap;word-break:break-word}.ann-input{width:100%;border:0;outline:none;background:transparent;font:inherit;color:inherit;resize:vertical}.ann-actions{position:absolute;top:-10px;right:6px;display:flex;gap:3px;opacity:0;transition:opacity var(--dur-fast) var(--ease-standard)}.ann:hover .ann-actions{opacity:1}.ann-actions button{width:20px;height:20px;border-radius:50%;border:1px solid var(--border);background:#fff;cursor:pointer;font-size:9px;color:var(--text-muted);display:grid;place-items:center;box-shadow:var(--shadow-xs)}.ann-actions button:hover{background:var(--ink-900);color:#fff;border-color:var(--ink-900)}.inspector{padding:11px 12px;border-radius:var(--radius-md);background:var(--n-50);border:1px solid var(--border)}.insp-head{display:flex;flex-direction:column;gap:2px;margin-bottom:4px}.insp-head b{font-family:var(--font-display);font-size:13.5px;color:var(--ink-900)}.insp-head code{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);word-break:break-all}.inspector p{font-size:11px;line-height:1.45;margin-top:7px}.insp-tag{display:block;font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:8.5px;letter-spacing:var(--tracking-wider);text-transform:uppercase;margin-bottom:2px}.insp-stat{font-family:var(--font-mono);font-size:10px;color:var(--ink-600);background:var(--teal-100);padding:6px 8px;border-radius:6px}.insp-note{color:var(--text-muted)}.insp-note .insp-tag{color:var(--text-faint)}.insp-flag{color:var(--ink-800);background:var(--amber-100);padding:7px 9px;border-radius:6px;border-left:3px solid var(--warning)}.insp-flag .insp-tag{color:var(--amber-600)}.insp-empty{color:var(--text-faint);font-style:italic}.insp-field{margin-top:8px;border-radius:6px;padding:6px 8px}.insp-field--stat{background:var(--teal-100)}.insp-field--note{background:var(--n-100)}.insp-field--flag{background:var(--amber-100);border-left:3px solid var(--warning)}.insp-field--stat .insp-tag{color:var(--ink-600)}.insp-field--note .insp-tag{color:var(--text-faint)}.insp-field--flag .insp-tag{color:var(--amber-600)}.insp-edit{display:block;width:100%;border:none;background:transparent;resize:vertical;font-family:var(--font-body);font-size:11px;line-height:1.45;color:var(--ink-800);padding:0;margin:0}.insp-field--stat .insp-edit{font-family:var(--font-mono);font-size:10px;color:var(--ink-600)}.insp-edit:focus{outline:none}.insp-edit::placeholder{color:var(--text-faint)}.insp-add{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.insp-add-btn{font-family:var(--font-display);font-size:10.5px;font-weight:var(--fw-semibold);color:var(--text-muted);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-pill);padding:3px 9px;cursor:pointer;transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.insp-add-btn:hover{color:var(--ink-900);border-color:var(--n-400)}.cmt-block{margin-top:12px;padding-top:11px;border-top:1px solid var(--divider)}.cmt-head{display:flex;align-items:center;gap:6px;font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:8.5px;letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.cmt-list{list-style:none;margin:0 0 9px;padding:0;display:flex;flex-direction:column;gap:10px}.cmt{display:flex;gap:8px}.cmt.is-resolved{opacity:.6}.cmt-avatar{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;font-family:var(--font-display);font-weight:var(--fw-bold);font-size:10px}.cmt-main{flex:1;min-width:0}.cmt-meta{display:flex;align-items:baseline;gap:6px}.cmt-meta b{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:11px;color:var(--ink-900)}.cmt-meta time{font-size:9.5px;color:var(--text-faint)}.cmt-done{font-size:8.5px;letter-spacing:var(--tracking-wide);text-transform:uppercase;font-weight:var(--fw-semibold);color:var(--success);background:var(--teal-100);padding:1px 6px;border-radius:var(--radius-pill)}.cmt-body{font-size:11px!important;line-height:1.5!important;color:var(--ink-800);margin:2px 0 0!important;white-space:pre-wrap;word-break:break-word}.cmt-mention{color:var(--brand-press);font-weight:var(--fw-semibold)}.cmt-actions{display:flex;gap:10px;margin-top:4px}.cmt-act{display:inline-flex;align-items:center;gap:3px;background:none;border:none;padding:0;cursor:pointer;font-family:var(--font-display);font-size:10px;font-weight:var(--fw-medium);color:var(--text-muted);transition:color var(--dur-fast) var(--ease-standard)}.cmt-act:hover{color:var(--ink-900)}.cmt-act--danger:hover{color:var(--danger)}.cmt-composer{position:relative}.cmt-input{display:block;width:100%;resize:vertical;min-height:44px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);padding:7px 9px;font-family:var(--font-body);font-size:11px;line-height:1.45;color:var(--ink-800);transition:border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast)}.cmt-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}.cmt-input::placeholder{color:var(--text-faint)}.cmt-mentions{position:absolute;left:0;right:0;bottom:calc(100% + 4px);z-index:5;list-style:none;margin:0;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md, 0 8px 24px rgba(0,35,48,.14));max-height:190px;overflow-y:auto}.cmt-mention-item{display:flex;align-items:center;gap:7px;width:100%;background:none;border:none;border-radius:6px;padding:6px 8px;cursor:pointer;text-align:left}.cmt-mention-item.on,.cmt-mention-item:hover{background:var(--n-100)}.cmt-mention-dot{flex:none;width:8px;height:8px;border-radius:50%}.cmt-mention-item b{font-family:var(--font-display);font-size:11px;font-weight:var(--fw-semibold);color:var(--ink-900)}.cmt-mention-item em{font-style:normal;font-size:10px;color:var(--text-faint);margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px}.cmt-composer-foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px}.cmt-hint{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;color:var(--text-faint)}.cmt-send{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:11px;color:var(--brand-on);background:var(--brand);border:none;border-radius:var(--radius-pill);padding:4px 12px;cursor:pointer;transition:background var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast)}.cmt-send:hover:not(:disabled){background:var(--brand-hover);box-shadow:var(--shadow-brand)}.cmt-send:disabled{opacity:.5;cursor:default}.node-comments{display:inline-flex;align-items:center;gap:3px;background:var(--brand-subtle, var(--n-100));color:var(--brand-press);border:none;border-radius:var(--radius-pill);padding:1px 7px 1px 6px;cursor:pointer;font-family:var(--font-display);font-weight:var(--fw-bold);font-size:10px;line-height:1.4;transition:background var(--dur-fast) var(--ease-standard)}.node-comments:hover{background:var(--brand);color:var(--brand-on)}.side{position:absolute;top:12px;right:12px;bottom:12px;width:292px;z-index:30;background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:16px;overflow-y:auto;display:none;flex-direction:column;gap:18px}.side.is-open{display:flex}.side-close{position:absolute;top:10px;right:10px;width:24px;height:24px;border:0;border-radius:50%;background:var(--n-50);color:var(--text-muted);cursor:pointer;font-size:11px;display:grid;place-items:center}.side-close:hover{background:var(--ink-900);color:#fff}.side-block{display:flex;flex-direction:column;gap:8px}.side-label{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:9.5px;letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--text-faint)}.side-search{width:100%;padding:8px 11px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--n-50);font-size:13px;outline:none}.side-search:focus{border-color:var(--brand);background:#fff}.legend{display:flex;flex-direction:column;gap:3px}.legend-row{display:flex;align-items:center;gap:9px;width:100%;padding:6px 7px;border:0;background:transparent;cursor:pointer;border-radius:var(--radius-sm);text-align:left;transition:background var(--dur-fast) var(--ease-standard)}.legend-row:hover{background:var(--n-50)}.legend-row.on{background:var(--n-100);box-shadow:inset 0 0 0 1px var(--border-strong)}.legend-row.static-row{cursor:default}.legend-row.static-row:hover{background:transparent}.legend-bar{width:4px;height:26px;border-radius:2px;flex-shrink:0}.legend-chip{font-family:var(--font-mono);font-size:10px;font-weight:600;padding:3px 6px;border-radius:5px;flex-shrink:0;min-width:26px;text-align:center}.legend-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.legend-text b{font-family:var(--font-display);font-size:12.5px;font-weight:var(--fw-semibold);color:var(--ink-900)}.legend-text em{font-style:normal;font-size:10.5px;color:var(--text-muted);line-height:1.3}.legend-count{font-family:var(--font-mono);font-size:11px;color:var(--text-faint);background:var(--n-50);padding:2px 7px;border-radius:var(--radius-pill)}.spotlight-toggle{display:grid;grid-template-columns:auto 1fr;gap:4px 9px;align-items:center;width:100%;padding:11px 12px;cursor:pointer;text-align:left;border:1.5px solid var(--border-strong);border-radius:var(--radius-md);background:transparent;font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:13px;color:var(--ink-800);transition:all var(--dur-base) var(--ease-standard)}.spotlight-toggle em{grid-column:2;font-style:normal;font-size:10.5px;font-weight:var(--fw-regular);color:var(--text-muted)}.st-dot{width:11px;height:11px;border-radius:50%;border:2px solid var(--border-strong);grid-row:1}.spotlight-toggle.on{background:var(--ink-900);border-color:var(--ink-900);color:#fff}.spotlight-toggle.on em{color:#ffffff9e}.spotlight-toggle.on .st-dot{background:var(--amber-500);border-color:var(--amber-500)}.side-counter{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:11px 8px;border-radius:var(--radius-md);background:var(--n-50);border:1px solid var(--border)}.side-counter>div{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}.side-counter b{font-family:var(--font-display);font-weight:var(--fw-extrabold);font-size:20px;color:var(--ink-900);line-height:1}.side-counter span{font-size:9.5px;color:var(--text-muted);line-height:1.25}.side-keys dl{display:flex;flex-direction:column;gap:4px}.side-keys dl>div{display:flex;align-items:center;gap:9px;font-size:11px}.side-keys dt{font-family:var(--font-mono);font-size:10px;color:var(--ink-800);background:var(--n-50);border:1px solid var(--border);padding:2px 7px;border-radius:5px;min-width:72px;text-align:center}.side-keys dd{color:var(--text-muted)}.stage.is-spotlight .react-flow{background:var(--n-100)}.stage.panel-open .react-flow__minimap{right:320px}.react-flow__minimap{transition:right var(--dur-base) var(--ease-standard)}.toolbar>*{flex-shrink:0}@media (max-width: 1500px){.tb-file,.tb-sub{display:none}}@media (max-width: 1240px){.toolbar{gap:7px;padding:0 12px}.btn{padding:0 11px}}@media (max-width: 1080px){.side{left:12px;width:auto}.toolbar{gap:6px;padding:0 10px}.btn{padding:0 10px;gap:0}.btn-label,.tb-back span,#zoom-val{display:none}}@media (max-width: 640px){.toolbar{gap:5px;padding:0 8px}.tb-brand,.ctrl-group[aria-label=Zoom],.ctrl-group[aria-label=History]{display:none}.tb-back{padding:0 8px}}.dd-panel{max-height:calc(100vh - 74px);overflow-y:auto;overscroll-behavior:contain}.shell-center{min-height:100vh;display:grid;place-items:center;padding:var(--space-6);background:radial-gradient(1200px 600px at 50% -10%,var(--teal-100),transparent 60%),var(--bg-subtle)}.shell-splash{min-height:100vh;display:grid;place-items:center;color:var(--text-muted);font-size:var(--text-sm)}.shell-brand{display:flex;align-items:baseline;gap:.4ch;justify-content:center;margin-bottom:var(--space-6)}.shell-brand .brand-mark{font-family:var(--font-display);font-weight:var(--fw-extrabold);font-size:var(--text-3xl);color:var(--brand);letter-spacing:var(--tracking-tight);line-height:1}.shell-brand .brand-sub{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--text-lg);color:var(--text-strong);line-height:1}.brand-logo{height:36px;width:auto}.dash-head .brand-logo{height:40px}.dash-brand{align-items:center;margin-bottom:0}.dash-brand .brand-app{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--text-md);color:var(--text-strong);line-height:1}.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-8)}.auth-card h1{font-size:var(--text-xl);margin-bottom:var(--space-1)}.auth-card .lede{color:var(--text-muted);font-size:var(--text-sm);margin-bottom:var(--space-6)}.field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.field label{font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--text-body)}.field input{padding:.65rem .8rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--text-base);transition:border-color var(--dur-fast) var(--ease-standard)}.field input:focus{outline:none;border-color:var(--brand)}.btn-block{width:100%;padding:.7rem 1rem;border:none;border-radius:var(--radius-pill);background:var(--brand);color:var(--brand-on);font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--text-base);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard)}.btn-block:hover:not(:disabled){background:var(--brand-hover)}.btn-block:disabled{opacity:.55;cursor:default}.btn-oauth{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:.7rem 1rem;border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-body);font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--text-base);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.btn-oauth:hover:not(:disabled){background:var(--surface-subtle);border-color:var(--brand)}.btn-oauth:disabled{opacity:.55;cursor:default}.auth-divider{display:flex;align-items:center;margin:var(--space-4) 0;color:var(--text-muted);font-size:var(--text-sm)}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid var(--border)}.auth-divider span{padding:0 var(--space-3)}.auth-toggle{margin-top:var(--space-5);text-align:center;font-size:var(--text-sm);color:var(--text-muted)}.auth-toggle button{background:none;border:none;cursor:pointer;color:var(--text-brand);font-weight:var(--fw-semibold);font:inherit}.auth-error{background:var(--danger-bg);color:var(--brand-press);border:1px solid var(--red-200);border-radius:var(--radius-sm);padding:var(--space-3);font-size:var(--text-sm);margin-bottom:var(--space-4)}.auth-note{background:var(--success-bg);color:var(--green-600);border-radius:var(--radius-sm);padding:var(--space-3);font-size:var(--text-sm);margin-bottom:var(--space-4)}.setup-card{max-width:560px}.setup-card pre{background:var(--ink-900);color:var(--teal-100);padding:var(--space-4);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);overflow-x:auto;margin:var(--space-3) 0}.dash{height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;background:radial-gradient(900px 420px at 15% -8%,var(--teal-100),transparent 60%),radial-gradient(760px 380px at 100% -12%,var(--red-50),transparent 55%),var(--bg-subtle)}.dash-head{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--gutter);background:#ffffffd1;-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--border);box-shadow:var(--shadow-xs);position:sticky;top:0;z-index:10}.dash-head .shell-brand{margin:0}.dash-head .spacer{flex:1}.dash-user{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.dash-user__avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-pill);background:linear-gradient(135deg,var(--red-500),var(--red-700));color:var(--text-on-brand);font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--text-sm);box-shadow:0 2px 8px #d9042947;flex:none}.dash-user__email{color:var(--text-body);font-weight:var(--fw-medium)}@media (max-width: 640px){.dash-head{gap:var(--space-3);padding:var(--space-3) var(--space-4)}.dash-user{gap:var(--space-2)}.dash-user__email{display:none}.dash-body{padding:var(--space-6) var(--space-4) var(--space-12)}}.dash-body{max-width:var(--container);margin-inline:auto;padding:var(--space-10) var(--gutter) var(--space-16)}.dash-section-title{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:var(--space-6)}.dash-section-title h2{font-size:var(--text-2xl);display:flex;align-items:center;gap:var(--space-3)}.dash-section-lede{color:var(--text-muted);font-size:var(--text-sm);margin-top:4px}.dash-section-title:not(:first-child){margin-top:var(--space-12)}.count-pill{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-muted);background:var(--n-100);border:1px solid var(--border);min-width:26px;height:26px;padding:0 8px;border-radius:var(--radius-pill);display:inline-grid;place-items:center;letter-spacing:0}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:var(--space-5)}.sm-card{position:relative;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:0;cursor:pointer;overflow:visible;box-shadow:var(--shadow-sm);transition:box-shadow var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard),border-color var(--dur-base);display:flex;flex-direction:column;min-height:180px}.sm-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:var(--border-strong)}.sm-card:active{transform:translateY(-1px)}.sm-thumb{position:relative;height:96px;display:grid;place-items:center;color:var(--red-500);background:radial-gradient(120% 120% at 50% -20%,var(--red-50),transparent 70%),linear-gradient(160deg,var(--n-25),var(--n-50));border-bottom:1px solid var(--divider);border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow:hidden}.sm-thumb:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:20px 20px;opacity:.35;-webkit-mask-image:radial-gradient(100% 100% at 50% 0%,#000,transparent 75%);mask-image:radial-gradient(100% 100% at 50% 0%,#000,transparent 75%)}.sm-thumb--shared{color:var(--ink-600)}.sm-thumb--shared{background:radial-gradient(120% 120% at 50% -20%,var(--teal-100),transparent 70%),linear-gradient(160deg,var(--n-25),var(--n-50))}.sm-thumb__art{position:relative;width:108px;height:auto;transition:transform var(--dur-base) var(--ease-out)}.sm-card:hover .sm-thumb__art{transform:scale(1.06)}.sm-body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-5);flex:1}.sm-card .name{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--text-md);color:var(--text-strong);line-height:var(--leading-snug)}.sm-card .meta{font-size:var(--text-xs);color:var(--text-muted)}.sm-card .row{display:flex;align-items:flex-start;gap:var(--space-2);justify-content:space-between}.sm-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-top:auto}.sm-action{align-items:flex-start;justify-content:center;gap:var(--space-2);padding:var(--space-6) var(--space-5);border-style:dashed;background:linear-gradient(160deg,var(--red-50),transparent 60%),var(--surface)}.sm-action--template{background:linear-gradient(160deg,var(--teal-100),transparent 60%),var(--surface)}.sm-action__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-md);background:var(--brand);color:var(--text-on-brand);box-shadow:var(--shadow-brand);margin-bottom:var(--space-2);transition:transform var(--dur-base) var(--ease-out)}.sm-action--template .sm-action__icon{background:var(--ink-900);box-shadow:0 10px 24px #00233047}.sm-card:hover .sm-action__icon{transform:translateY(-2px) rotate(-3deg)}.sm-action__label{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--text-md);color:var(--text-strong)}.sm-action__hint{font-size:var(--text-xs);color:var(--text-muted)}.sm-action:hover{border-color:var(--brand)}.sm-action--template:hover{border-color:var(--ink-600)}.dash-signout{display:inline-flex;align-items:center;gap:5px}.dash-signout svg{display:block}.sm-card .del{opacity:0;background:none;border:none;cursor:pointer;flex:none;color:var(--text-faint);font-size:var(--text-base);padding:4px 6px;border-radius:var(--radius-xs);transition:opacity var(--dur-fast),color var(--dur-fast),background var(--dur-fast)}.sm-card:hover .del{opacity:1}.sm-card .del:hover{color:var(--danger);background:var(--danger-bg)}.badge{display:inline-block;align-self:flex-start;font-size:.68rem;font-weight:var(--fw-bold);padding:3px 9px;border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.badge.owner{background:var(--brand-subtle);color:var(--brand-press)}.badge.editor{background:var(--teal-100);color:var(--ink-700)}.badge.viewer{background:var(--n-100);color:var(--text-muted)}.dash-empty{color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-6) 0;grid-column:1 / -1}.dash-blank{display:flex;align-items:center;gap:var(--space-3);color:var(--text-muted);font-size:var(--text-sm);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-6);margin-top:var(--space-5)}.dash-blank__icon{display:grid;place-items:center;color:var(--text-faint)}.sm-card__menu{position:absolute;top:10px;right:10px;z-index:6}.sm-menu-btn{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-sm);background:#ffffffe6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;box-shadow:var(--shadow-xs);opacity:0;transform:translateY(-2px);transition:opacity var(--dur-fast),transform var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.sm-menu-btn svg{display:block}.sm-card:hover .sm-menu-btn,.sm-menu-btn.is-open,.sm-menu-btn:focus-visible{opacity:1;transform:translateY(0)}.sm-menu-btn:hover,.sm-menu-btn.is-open{color:var(--text-strong);border-color:var(--border-strong)}.sm-tag{position:absolute;top:10px;left:10px;z-index:4;font-family:var(--font-display);font-size:.62rem;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);padding:3px 8px;border-radius:var(--radius-pill);background:var(--ink-900);color:var(--text-on-dark);box-shadow:var(--shadow-sm)}.sm-thumb--template{color:var(--ink-700);background:radial-gradient(120% 120% at 50% -20%,var(--amber-100),transparent 72%),linear-gradient(160deg,var(--n-25),var(--n-50))}.sm-skeleton{cursor:default;box-shadow:var(--shadow-sm)}.sm-skeleton:hover{transform:none;box-shadow:var(--shadow-sm);border-color:var(--border)}.sk-thumb{height:96px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.sk-line{height:14px;border-radius:var(--radius-pill)}.sk-line--sm{height:11px}.sk-badge{width:62px;height:20px;border-radius:var(--radius-pill)}.sk-shimmer{background:linear-gradient(100deg,var(--n-100) 30%,var(--n-50) 50%,var(--n-100) 70%);background-size:220% 100%;animation:sk-shimmer 1.25s ease-in-out infinite}@keyframes sk-shimmer{0%{background-position:180% 0}to{background-position:-80% 0}}@media (prefers-reduced-motion: reduce){.sk-shimmer{animation:none}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:var(--space-6);background:#00161e6b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;transition:opacity var(--dur-base) var(--ease-standard)}.modal-overlay.is-visible{opacity:1}.modal{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);transform:translateY(10px) scale(.97);opacity:0;transition:transform var(--dur-base) var(--ease-out),opacity var(--dur-base) var(--ease-out)}.modal--wide{max-width:560px}.modal-overlay.is-visible .modal{transform:translateY(0) scale(1);opacity:1}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-3)}.modal-title{font-size:var(--text-lg)}.modal-close{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.modal-close:hover{background:var(--n-100);color:var(--text-strong)}.modal-body{padding:0 var(--space-5) var(--space-5)}.modal-head+.modal-body{padding-top:0}.modal-foot{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--divider)}.m-field-label{display:block;font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--text-body);margin-bottom:var(--space-2)}.m-input{width:100%;padding:.65rem .8rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--text-base);color:var(--text-strong);transition:border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast)}.m-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}.m-input:disabled{background:var(--n-50);color:var(--text-muted)}.m-text{color:var(--text-body);font-size:var(--text-base);line-height:var(--leading-normal)}.m-text strong{color:var(--text-strong)}.m-error{margin-top:var(--space-3);color:var(--brand-press);font-size:var(--text-sm)}.m-btn{display:inline-flex;align-items:center;gap:6px;padding:.6rem 1.1rem;border-radius:var(--radius-pill);font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--text-sm);border:1px solid transparent;cursor:pointer;transition:background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast),color var(--dur-fast),box-shadow var(--dur-fast)}.m-btn:disabled{opacity:.55;cursor:default}.m-btn .spin{animation:dd-spin .8s linear infinite}.m-btn--ghost{background:transparent;border-color:var(--border-strong);color:var(--text-body)}.m-btn--ghost:hover:not(:disabled){border-color:var(--ink-900);color:var(--ink-900)}.m-btn--primary{background:var(--brand);color:var(--brand-on)}.m-btn--primary:hover:not(:disabled){background:var(--brand-hover);box-shadow:var(--shadow-brand)}.m-btn--danger{background:var(--danger);color:#fff}.m-btn--danger:hover:not(:disabled){background:var(--brand-hover);box-shadow:var(--shadow-brand)}.spin{animation:dd-spin .8s linear infinite}@media (prefers-reduced-motion: reduce){.modal-overlay,.modal{transition:none}}.toolbar svg{display:block}.tb-back{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 13px 0 10px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-body);font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:13px;cursor:pointer;transition:all var(--dur-fast) var(--ease-standard)}.tb-back:hover{border-color:var(--border-strong);color:var(--ink-900);background:var(--n-50)}.tb-file-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tb-icon-btn{width:36px;height:36px;display:grid;place-items:center;border:1.5px solid var(--border-strong);border-radius:var(--radius-pill);background:transparent;color:var(--ink-800);cursor:pointer;transition:all var(--dur-fast) var(--ease-standard)}.tb-icon-btn:hover,.tb-icon-btn.is-open{border-color:var(--ink-900);color:var(--ink-900);background:var(--n-50)}.presence-stack{display:inline-flex;align-items:center;padding-left:6px}.presence-avatar{width:30px;height:30px;margin-left:-8px;display:grid;place-items:center;border-radius:50%;border:2px solid var(--surface);background:var(--pc, var(--n-400));color:#fff;font-family:var(--font-display);font-weight:var(--fw-bold);font-size:11px;letter-spacing:.2px;line-height:1;cursor:pointer;padding:0;box-shadow:var(--shadow-sm);transition:transform var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast)}.presence-avatar:first-child{margin-left:0}.presence-avatar:hover{transform:translateY(-1px) scale(1.08);z-index:1;box-shadow:0 0 0 3px color-mix(in srgb,var(--pc, var(--n-400)) 28%,transparent)}.presence-avatar:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring);z-index:1}.presence-more{background:var(--n-200);color:var(--text-body);cursor:default}.presence-more:hover{transform:none;box-shadow:var(--shadow-sm)}@media (prefers-reduced-motion: reduce){.presence-avatar{transition:none}.presence-avatar:hover{transform:none}}.save-state{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);white-space:nowrap}.save-state.idle{width:4px}.save-state.saved{color:var(--success)}.save-state.saving{color:var(--amber-600)}.save-state.error{color:var(--danger)}.save-state .spin{animation:dd-spin .8s linear infinite}@keyframes dd-spin{to{transform:rotate(360deg)}}.dd{position:relative;display:inline-flex}.dd-panel{position:absolute;top:calc(100% + 8px);min-width:228px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-6px) scale(.985);transform-origin:top right;transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),visibility var(--dur-base);z-index:80}.dd-panel.dd-right{right:0}.dd-panel.dd-left{left:0;transform-origin:top left}.dd-panel.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}.dd-item{width:100%;display:flex;align-items:center;gap:10px;padding:9px 10px;border:0;border-radius:var(--radius-sm);background:transparent;cursor:pointer;text-align:left;font-family:var(--font-body);font-size:13.5px;color:var(--text-body);transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast)}.dd-item:hover{background:var(--n-50);color:var(--ink-900)}.dd-item.is-active{color:var(--brand);background:var(--brand-subtle)}.dd-item.is-danger:hover{background:var(--danger-bg);color:var(--danger)}.dd-item svg{flex-shrink:0}.dd-label{flex:1}.dd-meta{font-size:11px;color:var(--text-faint);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-sep{height:1px;background:var(--divider);margin:5px 6px}.dialog-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#00161e73;display:grid;place-items:center;padding:var(--space-4)}.dialog{width:100%;max-width:560px;max-height:85vh;overflow:hidden;background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);display:flex;flex-direction:column}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border)}.dialog-head h2{font-size:var(--text-lg)}.dialog-head .x{background:none;border:none;cursor:pointer;font-size:var(--text-xl);color:var(--text-muted);line-height:1}.dialog-tabs{display:flex;gap:var(--space-1);padding:0 var(--space-6);border-bottom:1px solid var(--border)}.dialog-tabs button{background:none;border:none;cursor:pointer;padding:var(--space-3) var(--space-2);font-weight:var(--fw-medium);color:var(--text-muted);border-bottom:2px solid transparent;font:inherit}.dialog-tabs button.active{color:var(--text-strong);border-bottom-color:var(--brand)}.dialog-body{padding:var(--space-6);overflow-y:auto}.invite-row{display:flex;gap:var(--space-2);margin-bottom:var(--space-5)}.invite-row input{flex:1;padding:.55rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.invite-row select{padding:.55rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.invite-row button{padding:.55rem 1rem;border:none;border-radius:var(--radius-sm);background:var(--brand);color:#fff;font-weight:var(--fw-semibold);cursor:pointer}.invite-row button:disabled{opacity:.5;cursor:default}.collab-list,.audit-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-1)}.collab-list li,.audit-list li{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm)}.collab-list li:hover{background:var(--surface-subtle)}.collab-list .email{flex:1;font-size:var(--text-sm);color:var(--text-body)}.collab-list .rm{background:none;border:none;cursor:pointer;color:var(--text-faint)}.collab-list .rm:hover{color:var(--danger)}.audit-list li{flex-direction:column;align-items:flex-start;gap:2px;border-bottom:1px solid var(--divider);border-radius:0}.audit-list .who{font-size:var(--text-sm);color:var(--text-strong);font-weight:var(--fw-medium)}.audit-list .what{font-size:var(--text-sm);color:var(--text-body)}.audit-list .when{font-size:var(--text-xs);color:var(--text-faint)}.dialog-err{color:var(--danger);font-size:var(--text-sm);margin-bottom:var(--space-3)}.dialog-muted{color:var(--text-muted);font-size:var(--text-sm)}.linklike{background:none;border:none;cursor:pointer;color:var(--text-brand);font:inherit;font-weight:var(--fw-semibold);padding:0}.btn-ai{background:transparent;border-color:var(--border-strong);color:var(--ink-800)}.btn-ai svg{color:var(--brand)}.btn-ai:hover{border-color:var(--brand);color:var(--brand)}.btn-ai.active{background:var(--brand-subtle);border-color:var(--brand);color:var(--brand-press)}.ai-panel{position:fixed;top:58px;right:0;bottom:0;width:384px;max-width:92vw;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-xl);z-index:70;display:flex;flex-direction:column;transform:translate(100%);opacity:0;visibility:hidden;transition:transform var(--dur-base) var(--ease-out),opacity var(--dur-base),visibility var(--dur-base)}.ai-panel.is-open{transform:translate(0);opacity:1;visibility:visible}.ai-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}.ai-title{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--text-md);color:var(--text-strong)}.ai-title svg{color:var(--brand)}.ai-head .x{background:none;border:0;cursor:pointer;color:var(--text-muted);display:grid;place-items:center}.ai-head .x:hover{color:var(--ink-900)}.ai-body{padding:var(--space-5);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-6)}.ai-sec h4{font-family:var(--font-display);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-muted);margin-bottom:var(--space-3)}.ai-hint{font-size:var(--text-xs);color:var(--text-muted);line-height:var(--leading-normal);margin-bottom:var(--space-3)}.ai-keyrow{display:flex;gap:6px;margin-bottom:var(--space-3)}.ai-keyrow input{flex:1;padding:.55rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs)}.ai-keyrow input:focus{outline:none;border-color:var(--brand)}.ai-eye{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);width:38px;display:grid;place-items:center;cursor:pointer;color:var(--text-muted)}.ai-eye:hover{color:var(--ink-900)}.ai-connected{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--success);font-weight:var(--fw-medium);margin-bottom:var(--space-3)}.ai-clear{margin-left:auto;background:none;border:0;cursor:pointer;color:var(--text-faint)}.ai-clear:hover{color:var(--danger)}.ai-modelrow{display:flex;gap:6px}.ai-modelrow select{flex:1;padding:.5rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--text-sm)}.ai-sec textarea{width:100%;padding:.7rem .8rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-sm);resize:vertical;margin-bottom:var(--space-3)}.ai-sec textarea:focus{outline:none;border-color:var(--brand)}.ai-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:.6rem 1rem;border-radius:var(--radius-pill);border:1.5px solid transparent;font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--text-sm);cursor:pointer;transition:all var(--dur-fast) var(--ease-standard)}.ai-btn.primary{background:var(--brand);color:#fff}.ai-btn.primary:hover:not(:disabled){background:var(--brand-hover)}.ai-btn.ghost{background:transparent;border-color:var(--border-strong);color:var(--ink-800);width:auto;padding:.5rem .7rem}.ai-btn.ghost:hover:not(:disabled){border-color:var(--ink-900)}.ai-btn:disabled{opacity:.5;cursor:default}.ai-error{background:var(--danger-bg);color:var(--brand-press);border:1px solid var(--red-200);border-radius:var(--radius-sm);padding:var(--space-3);font-size:var(--text-sm)}.ai-proposal{border:1px solid var(--border);background:var(--surface-subtle);border-radius:var(--radius-md);padding:var(--space-4)}.ai-summary{font-size:var(--text-sm);color:var(--text-body);margin-bottom:var(--space-2)}.ai-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.ai-actions .ai-btn{width:auto;flex:1}@keyframes preview-pop{0%{opacity:0;transform:scale(.94)}60%{opacity:1}to{opacity:1;transform:scale(1)}}@keyframes preview-pulse-added{0%,to{box-shadow:0 0 0 2px var(--green-500),0 0 0 6px #1f8a5b2e}50%{box-shadow:0 0 0 2px var(--green-500),0 0 0 11px #1f8a5b0d}}@keyframes preview-pulse-modified{0%,to{box-shadow:0 0 0 2px var(--amber-500),0 0 0 6px #e8a3172e}50%{box-shadow:0 0 0 2px var(--amber-500),0 0 0 11px #e8a3170d}}.stage.is-previewing .node:not(.is-preview){opacity:.4;transition:opacity var(--dur-base)}.stage.is-previewing .react-flow__edge{opacity:.35}.node.is-preview{animation:preview-pop var(--dur-slow) var(--ease-out) both;border-radius:var(--radius-md)}.node.is-preview-added{animation:preview-pop var(--dur-slow) var(--ease-out) both,preview-pulse-added 2s var(--ease-in-out) infinite}.node.is-preview-modified{animation:preview-pop var(--dur-slow) var(--ease-out) both,preview-pulse-modified 2s var(--ease-in-out) infinite}.preview-badge{position:absolute;top:-10px;right:-8px;z-index:5;font-family:var(--font-display);font-weight:var(--fw-bold);font-size:9.5px;letter-spacing:var(--tracking-wide);padding:3px 7px;border-radius:var(--radius-pill);color:#fff;box-shadow:var(--shadow-sm);pointer-events:none}.preview-badge--added{background:var(--green-500)}.preview-badge--modified{background:var(--amber-500);color:#3a2a00}.preview-bar{position:fixed;top:70px;left:20px;z-index:65;display:flex;align-items:center;gap:var(--space-4);max-width:min(720px,calc(100vw - 40px));padding:10px 12px 10px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);box-shadow:var(--shadow-lg);animation:preview-pop var(--dur-base) var(--ease-out) both}.stage.ai-open .preview-bar{max-width:min(680px,calc(100vw - 430px))}.preview-bar-dot{width:9px;height:9px;border-radius:50%;background:var(--brand);flex-shrink:0;box-shadow:0 0 0 4px var(--brand-subtle)}.preview-bar-text{display:flex;flex-direction:column;min-width:0}.preview-bar-text strong{font-family:var(--font-display);font-size:var(--text-sm);color:var(--text-strong)}.preview-bar-summary{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:340px}.preview-bar-counts{display:flex;gap:6px;flex-shrink:0}.pc{font-size:var(--text-xs);font-weight:var(--fw-semibold);padding:2px 8px;border-radius:var(--radius-pill);white-space:nowrap}.pc-added{background:var(--green-100);color:var(--green-600)}.pc-modified{background:var(--amber-100);color:var(--amber-600)}.pc-removed{background:var(--danger-bg);color:var(--brand-press)}.preview-bar-actions{display:flex;gap:8px;flex-shrink:0}.preview-bar-actions .btn{height:34px}.ai-cost{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);background:var(--surface-subtle)}.ai-cost-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.ai-cost-head h4{margin:0}.ai-cost-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-body);padding:3px 0}.ai-cost-row strong{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-strong)}.ai-cost-detail{font-family:var(--font-mono);font-size:11px;color:var(--text-faint);margin:2px 0 var(--space-3)}.ai-cost .ai-hint{margin:var(--space-2) 0 0}.pc-cost{background:var(--ink-900);color:#fff;font-family:var(--font-mono)}.figma-toast{position:fixed;bottom:24px;left:50%;z-index:120;display:flex;align-items:center;gap:var(--space-3);max-width:440px;padding:12px 14px 12px 13px;background:var(--surface-deep);color:var(--text-on-dark);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);transform:translate(-50%,12px);opacity:0;transition:opacity .3s var(--ease-standard),transform .3s var(--ease-standard);pointer-events:none}.figma-toast.is-shown{opacity:1;transform:translate(-50%);pointer-events:auto}.figma-toast--error{background:var(--red-700)}.figma-toast-ico{flex-shrink:0;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#ffffff24;color:#fff}.figma-toast--ready .figma-toast-ico{background:#1f8a5b47;color:#7be0ab}.figma-toast-text{display:flex;flex-direction:column;gap:1px;min-width:0}.figma-toast-text strong{font-size:var(--text-sm);font-weight:var(--fw-semibold);line-height:1.25}.figma-toast-text span{font-size:12px;color:var(--text-on-dark-muted);line-height:1.3}.figma-toast-x{flex-shrink:0;background:none;border:none;cursor:pointer;color:var(--text-on-dark-faint);display:grid;place-items:center;padding:2px;border-radius:6px;transition:color var(--dur-fast) var(--ease-standard)}.figma-toast-x:hover{color:var(--text-on-dark)}.figma-toast .spin{animation:dd-spin .8s linear infinite}.ai-head-actions{display:flex;align-items:center;gap:4px}.ai-icon-btn{background:none;border:0;cursor:pointer;color:var(--text-muted);display:grid;place-items:center;padding:5px;border-radius:var(--radius-sm);transition:color var(--dur-fast),background var(--dur-fast)}.ai-icon-btn:hover:not(:disabled){color:var(--ink-900);background:var(--n-100)}.ai-icon-btn:disabled{opacity:.5;cursor:default}.ai-subbar{display:flex;align-items:center;gap:6px;padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border)}.ai-subbar .ai-conn{color:var(--success);display:grid;place-items:center}.ai-subbar select{flex:1;min-width:0;padding:.35rem .5rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--text-xs)}.ai-chat{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.ai-empty{margin:auto 0;text-align:center;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-5)}.ai-empty svg{color:var(--brand);opacity:.8}.ai-empty p{font-size:var(--text-sm)}.ai-empty ul{list-style:none;display:flex;flex-direction:column;gap:6px;width:100%}.ai-empty li{font-size:var(--text-xs);color:var(--text-body);background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px}.ai-msg{display:flex}.ai-msg--user{justify-content:flex-end}.ai-msg--ai{justify-content:flex-start}.ai-bubble{max-width:88%;padding:8px 11px;border-radius:14px;font-size:var(--text-sm);line-height:var(--leading-normal);white-space:pre-wrap;word-break:break-word}.ai-msg--user .ai-bubble{background:var(--ink-900);color:#fff;border-bottom-right-radius:4px}.ai-msg--ai .ai-bubble{background:var(--surface-subtle);border:1px solid var(--border);border-bottom-left-radius:4px}.ai-bubble--error{display:flex;align-items:flex-start;gap:6px;background:var(--danger-bg);border-color:var(--red-200);color:var(--brand-press)}.ai-summary{margin:0}.ai-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.ai-chip{font-family:var(--font-mono);font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:var(--radius-pill);white-space:nowrap}.ai-chip.added{background:var(--green-100);color:var(--green-600)}.ai-chip.modified{background:var(--amber-100);color:var(--amber-600)}.ai-chip.removed{background:var(--red-100);color:var(--brand-press)}.ai-chip.cost{background:var(--n-100);color:var(--text-muted)}.ai-turn-actions{display:flex;align-items:center;gap:6px;margin-top:9px}.ai-preview-note{flex:1;font-size:var(--text-xs);color:var(--text-muted)}.ai-mini{padding:3px 11px;border-radius:var(--radius-pill);border:1.5px solid transparent;font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--text-xs);cursor:pointer}.ai-mini.primary{background:var(--brand);color:#fff}.ai-mini.primary:hover{background:var(--brand-hover)}.ai-mini.ghost{background:transparent;border-color:var(--border-strong);color:var(--ink-800)}.ai-mini.ghost:hover{border-color:var(--ink-900)}.ai-turn-status{display:inline-flex;align-items:center;gap:4px;margin-top:8px;font-size:var(--text-xs);font-weight:var(--fw-medium)}.ai-turn-status.applied{color:var(--success)}.ai-turn-status.discarded{color:var(--text-faint)}.ai-typing{display:flex;gap:4px;padding:11px 12px}.ai-typing span{width:6px;height:6px;border-radius:50%;background:var(--n-400);animation:ai-blink 1.2s infinite ease-in-out}.ai-typing span:nth-child(2){animation-delay:.2s}.ai-typing span:nth-child(3){animation-delay:.4s}@keyframes ai-blink{0%,80%,to{opacity:.25}40%{opacity:1}}.ai-composer{border-top:1px solid var(--border);padding:var(--space-3) var(--space-4);background:var(--surface)}.ai-composer-lock{font-size:var(--text-xs);color:var(--amber-600);background:var(--amber-100);border-radius:var(--radius-sm);padding:5px 8px;margin-bottom:7px}.ai-composer-row{display:flex;gap:7px;align-items:flex-end}.ai-composer-row textarea{flex:1;padding:.6rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);font:inherit;font-size:var(--text-sm);resize:none;line-height:1.4}.ai-composer-row textarea:focus{outline:none;border-color:var(--brand)}.ai-composer-row textarea:disabled{background:var(--surface-subtle);color:var(--text-faint)}.ai-send{flex-shrink:0;width:40px;height:40px;border-radius:var(--radius-md);border:0;background:var(--brand);color:#fff;cursor:pointer;display:grid;place-items:center;transition:background var(--dur-fast)}.ai-send:hover:not(:disabled){background:var(--brand-hover)}.ai-send:disabled{opacity:.45;cursor:default}.ai-session{display:flex;align-items:center;gap:8px;margin-top:7px;font-size:11px;color:var(--text-faint)}.ai-session .linklike{margin-left:auto}.ai-error--float{margin:0 var(--space-4) var(--space-3)}.auth2{display:flex;height:100%;width:100%;overflow-y:auto}.auth2__art{position:relative;flex:1 1 54%;min-height:100vh;background:var(--ink-900);overflow:hidden}.auth2__art-glow{position:absolute;top:-140px;right:-120px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,#d904294d,#d9042900 70%);pointer-events:none}.auth2__art-dots{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(circle,rgba(255,255,255,.1) 1px,transparent 1px);background-size:26px 26px}.auth2__art-inner{position:relative;display:flex;flex-direction:column;height:100%;padding:44px 48px}.auth2__brand{display:flex;align-items:center;gap:11px}.auth2__brand-badge{width:38px;height:38px;border-radius:10px;background:var(--red-500);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 6px 16px #d9042959;flex:none}.auth2__brand-mark{height:21px;width:auto;display:block}.auth2__brand-word{font-family:var(--font-display);font-weight:700;font-size:18px;color:#fff;letter-spacing:-.01em}.auth2__brand-word span{opacity:.55;font-weight:500}.auth2__pitch{margin-top:38px;max-width:430px}.auth2__eyebrow{font-family:var(--font-display);font-weight:600;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--red-400)}.auth2__headline{font-family:var(--font-display);font-weight:800;font-size:40px;line-height:1.05;letter-spacing:-.028em;color:#fff;margin:12px 0 0;text-wrap:pretty}.auth2__headline span{color:var(--red-400)}.auth2__lede{font-size:15px;line-height:1.6;color:#ffffffad;margin:14px 0 0;max-width:390px;text-wrap:pretty}.auth2__diagram{flex:1;min-height:280px;margin-top:26px;display:flex;align-items:flex-start;justify-content:center}.auth2__diagram-stage{position:relative;width:470px;height:262px;flex:none}.auth2__wires{position:absolute;left:0;top:0;overflow:visible}.auth2__wire-live{animation:auth-dash 1.1s linear infinite}.auth2__legend{display:flex;flex-wrap:wrap;gap:14px;padding-top:20px;margin-top:8px;border-top:1px solid rgba(255,255,255,.14)}.auth2__legend-item{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#ffffff9e}.auth2__float{animation:auth-floaty 7s ease-in-out infinite}.auth2__form{flex:1 1 46%;display:flex;padding:48px 56px;background:var(--n-0)}.auth2__form-inner{width:100%;max-width:392px;margin:auto}.auth2__title{font-family:var(--font-display);font-weight:800;font-size:29px;line-height:1.1;letter-spacing:-.025em;margin:0;color:var(--text-strong)}.auth2__subtitle{font-size:14.5px;color:var(--text-muted);margin:9px 0 26px}.auth2__oauth{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;height:44px;padding:0 14px;border-radius:12px;border:1.5px solid var(--border);background:var(--n-0);color:var(--text-strong);font-family:var(--font-body);font-size:13.5px;font-weight:600;cursor:pointer;transition:border-color .12s var(--ease-standard),box-shadow .12s var(--ease-standard)}.auth2__oauth:hover:not(:disabled){border-color:var(--border-strong);box-shadow:0 1px #00161e0a,0 4px 14px #00161e0f}.auth2__oauth:disabled{opacity:.55;cursor:default}.auth2__divider{display:flex;align-items:center;gap:12px;margin:22px 0}.auth2__divider span:first-child,.auth2__divider span:last-child{flex:1;height:1px;background:var(--divider)}.auth2__divider em{font-family:var(--font-mono);font-size:10.5px;font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.auth2__fields{display:flex;flex-direction:column;gap:15px}.auth2__label{display:block;font-size:12.5px;font-weight:600;color:var(--text-body);margin-bottom:6px}.auth2__input{width:100%;height:44px;padding:0 14px;border-radius:12px;border:1.5px solid var(--border);background:var(--n-0);font-family:var(--font-body);font-size:14px;color:var(--text-strong);outline:none;transition:border-color .12s var(--ease-standard),box-shadow .12s var(--ease-standard)}.auth2__input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #d904291f}.auth2__input.has-error{border-color:var(--red-500);box-shadow:0 0 0 3px #d904291f}.auth2__pw-wrap{position:relative;display:flex;align-items:center}.auth2__pw-wrap .auth2__input{padding-right:64px}.auth2__pw-toggle{position:absolute;right:8px;height:28px;padding:0 9px;border:none;background:transparent;color:var(--text-faint);font-family:var(--font-mono);font-size:11.5px;cursor:pointer}.auth2__pw-toggle:hover{color:var(--text-body)}.auth2__field-err{font-size:11.5px;color:var(--red-600);margin-top:5px}.auth2__submit{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;height:48px;margin-top:4px;border:none;border-radius:999px;background:var(--brand);color:#fff;font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:-.01em;cursor:pointer;box-shadow:0 8px 22px #d9042952;transition:background .12s var(--ease-standard)}.auth2__submit:hover:not(:disabled){background:var(--brand-hover)}.auth2__submit:disabled{background:#a80320;cursor:progress}.auth2__spinner{width:15px;height:15px;flex:none;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:auth-spin .7s linear infinite}.auth2__error{background:var(--danger-bg);color:var(--brand-press);border:1px solid var(--red-200);border-radius:10px;padding:11px 13px;font-size:13px;margin-bottom:18px}.auth2__note{background:var(--success-bg);color:var(--green-600);border-radius:10px;padding:11px 13px;font-size:13px;margin-bottom:18px}.auth2__switch{font-size:13px;color:var(--text-muted);margin:22px 0 0;text-align:center}.auth2__switch button{background:none;border:none;cursor:pointer;color:var(--red-500);font:inherit;font-weight:600}.auth2__switch button:hover{color:var(--red-600);text-decoration:underline}@media (max-width: 960px){.auth2{flex-direction:column}.auth2__art{display:none}.auth2__form{flex:1;min-height:100%;padding:40px 24px}}@media (prefers-reduced-motion: reduce){.auth2__wire-live,.auth2__float,.auth2__spinner{animation:none!important}}@keyframes auth-dash{to{stroke-dashoffset:-28}}@keyframes auth-floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes auth-spin{to{transform:rotate(360deg)}}.tip{position:fixed;z-index:1000;max-width:260px;padding:6px 9px;background:var(--ink-900);color:var(--text-on-dark);font-family:var(--font-body);font-size:12px;font-weight:var(--fw-medium);line-height:1.35;text-align:center;border-radius:7px;box-shadow:0 6px 20px #00161e47;pointer-events:none;white-space:normal;overflow-wrap:break-word;opacity:0;transform:translateY(2px)}.tip.is-ready{opacity:1;transform:none;transition:opacity var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard)}.tip__arrow{position:absolute;width:8px;height:8px;background:inherit;transform:translate(-50%) rotate(45deg);border-radius:1px}.tip--top .tip__arrow{bottom:-3px}.tip--bottom .tip__arrow{top:-3px}@media (prefers-reduced-motion: reduce){.tip.is-ready{transition:none}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.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__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray: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.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.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:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{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:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.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.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@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;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.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-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.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:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.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-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.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:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));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:var(--xy-resize-background-color, var(--xy-resize-background-color-default));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%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}
