:root{color-scheme:dark;--surface: #070333;--surface-raised: #12123e;--scrim: #070333b8;--line: #1f234a;--line-strong: #686d87;--ink: #f5f6fc;--ink-muted: #b6b9cc;--ink-faint: #8c91a7;--accent: #3cb8fc;--accent-fill: var(--accent);--on-accent: #070333;--accent-soft: #0e1c4f;--highlight: #bc93ff;--success: #2dd4bf;--warning: #f7c24a;--danger: #ff7a85;--brand-cyan: #3cb8fc;--brand-blue: #3185fc;--brand-indigo: #4a33f6;--brand-violet: #8738fa;--brand-night: #070333;--nuit-50: #f5f6fc;--nuit-100: #eaecf5;--nuit-200: #d6d8e5;--nuit-300: #b6b9cc;--nuit-400: #8c91a7;--nuit-500: #686d87;--nuit-600: #4b506e;--nuit-700: #33375a;--nuit-800: #1f234a;--nuit-900: #12123e;--nuit-950: #070333;--font-sans: "Recursive Sans", ui-sans-serif, system-ui, sans-serif;--font-mono: "Recursive Mono", ui-monospace, monospace;--type-display: 800 64px/68px var(--font-sans);--type-display-tracking: -.02em;--type-h1: 750 44px/50px var(--font-sans);--type-h1-tracking: -.015em;--type-h2: 700 30px/36px var(--font-sans);--type-h2-tracking: -.01em;--type-h3: 650 21px/28px var(--font-sans);--type-body-lg: 400 19px/30px var(--font-sans);--type-body: 400 16px/26px var(--font-sans);--type-small: 400 14px/22px var(--font-sans);--type-label: 600 12px/16px var(--font-mono);--type-label-tracking: .08em;--type-code: 400 14px/22px var(--font-mono);--type-value: 500 13px/20px var(--font-mono);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 1px 2px #00000066;--shadow-lg: 0 12px 32px -4px #000000b3;--focus-ring: 0 0 0 2px #070333, 0 0 0 4px #3cb8fc;--duration-fast: .15s;--duration-base: .24s;--duration-slow: .4s;--duration-video: .6s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1)}@media print{:root{color-scheme:light;--surface: #f5f6fc;--surface-raised: #ffffff;--scrim: #070333b8;--line: #d6d8e5;--line-strong: #7f849b;--ink: #070333;--ink-muted: #4b506e;--ink-faint: #686d87;--accent: #4a33f6;--accent-fill: var(--accent);--on-accent: #ffffff;--accent-soft: #e7e6fc;--highlight: #8738fa;--success: #0f766e;--warning: #8a5300;--danger: #c0283f;--shadow-sm: 0 1px 2px #07033314, 0 1px 3px #0703331f;--shadow-lg: 0 4px 8px #07033314, 0 16px 32px -4px #07033329;--focus-ring: 0 0 0 2px #f5f6fc, 0 0 0 4px #4a33f6}}.tb-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}:root{--tb-bg-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b6b9cc' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='18,9.5 12,15.5 6,9.5'/%3E%3C/svg%3E");--tb-mask-interface: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7.5L6.5 7.5'/%3E%3Ccircle cx='9.5' cy='7.5' r='3'/%3E%3Cpath d='M12.5 7.5L21 7.5'/%3E%3Cpath d='M3 16.5L11.5 16.5'/%3E%3Ccircle cx='14.5' cy='16.5' r='3'/%3E%3Cpath d='M17.5 16.5L21 16.5'/%3E%3C/svg%3E");--tb-mask-send-to: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12L16.5 12'/%3E%3Cpolyline points='13.67,14.83 16.5,12 13.67,9.17'/%3E%3Cpath d='M20.5 4.5L20.5 19.5'/%3E%3C/svg%3E")}@font-face{font-family:Recursive Sans;font-display:swap;font-weight:300 1000;font-style:oblique 0deg 15deg;src:url(/assets/recursive-sans-latin-ext-BzvFXhdn.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Recursive Sans;font-display:swap;font-weight:300 1000;font-style:oblique 0deg 15deg;src:url(/assets/recursive-sans-latin-5ksQ4jaB.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Recursive Mono;font-display:swap;font-weight:300 1000;src:url(/assets/recursive-mono-latin-ext-D_burNsr.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Recursive Mono;font-display:swap;font-weight:300 1000;src:url(/assets/recursive-mono-latin-ynXb6xWY.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Recursive;font-display:swap;font-weight:300 1000;font-style:oblique 0deg 15deg;src:url(/assets/recursive-full-latin-ext-Ced8ljaz.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Recursive;font-display:swap;font-weight:300 1000;font-style:oblique 0deg 15deg;src:url(/assets/recursive-full-latin-Bbk0y8ID.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--bg-primary: var(--surface);--bg-secondary: var(--surface-raised);--bg-tertiary: var(--surface);--bg-surface: var(--surface-raised);--bg-elevated: var(--nuit-800);--bg-hover: var(--nuit-800);--bg-hover-elevated: var(--nuit-700);--bg-input: var(--surface);--text-primary: var(--ink);--text-secondary: var(--ink-muted);--text-muted: var(--ink-faint);--text-inverse: var(--on-accent);--ui-accent: #46c8b4;--ui-accent-ink: var(--on-accent);--host-accent: #e0a23a;--accent-hover: color-mix(in srgb, var(--accent) 82%, var(--ink));--accent-subtle: color-mix(in srgb, var(--accent) 6%, transparent);--accent-light: color-mix(in srgb, var(--accent) 12%, transparent);--accent-muted: color-mix(in srgb, var(--accent) 15%, transparent);--accent-moderate: color-mix(in srgb, var(--accent) 25%, transparent);--accent-glow: color-mix(in srgb, var(--accent) 30%, transparent);--ge-computing: var(--highlight);--ge-computing-glow: color-mix(in srgb, var(--highlight) 55%, transparent);--ge-computing-glow-soft: color-mix(in srgb, var(--highlight) 40%, transparent);--ge-computing-glow-strong: color-mix(in srgb, var(--highlight) 75%, transparent);--ge-computing-glow-none: color-mix(in srgb, var(--highlight) 0%, transparent);--success-muted: color-mix(in srgb, var(--success) 15%, transparent);--success-light: color-mix(in srgb, var(--success) 20%, transparent);--success-glow: color-mix(in srgb, var(--success) 30%, transparent);--warning-muted: color-mix(in srgb, var(--warning) 15%, transparent);--warning-light: color-mix(in srgb, var(--warning) 20%, transparent);--warning-glow: color-mix(in srgb, var(--warning) 30%, transparent);--danger-hover: color-mix(in srgb, var(--danger) 82%, var(--ink));--danger-muted: color-mix(in srgb, var(--danger) 15%, transparent);--danger-glow: color-mix(in srgb, var(--danger) 30%, transparent);--log-level-trace: #83899e;--log-level-debug: #828db7;--log-level-info: #5d97fb;--log-level-warn: #de963f;--log-level-error: #ff7b6b;--log-level-fatal: #ff8cc5;--log-cat-app: #858d9b;--log-cat-engine: #717fff;--log-cat-perf: #9577f3;--log-cat-gpu: #279b9b;--log-cat-raster: #2b9f6d;--log-cat-bake: #b08530;--log-cat-csg: #b5833c;--log-cat-volume: #408fe5;--log-cat-uv: #46a0b4;--log-cat-core: #868ba8;--log-cat-worker: #a080b6;--log-cat-graph: #678dc5;--log-cat-project: #3f9d5c;--log-cat-media: #c370b1;--log-cat-export: #749655;--log-cat-net: #5493b5;--log-cat-auth: #be7978;--log-cat-interface: #46c8b4;--log-cat-console: #858d9b;--log-cat-copilot: #9c70ff;--log-cat-learn: #419a91;--log-cat-bridge: #db48ee;--log-cat-host: #d47033;--console-row-h: 26px;--border: var(--line);--border-light: var(--line-strong);--border-on-elevated: var(--ink-faint);--separator-on-elevated: var(--nuit-700);--surface-hover-xs: color-mix(in srgb, var(--ink) 3%, transparent);--surface-hover: color-mix(in srgb, var(--ink) 5%, transparent);--surface-hover-md: color-mix(in srgb, var(--ink) 8%, transparent);--surface-hover-lg: color-mix(in srgb, var(--ink) 12%, transparent);--overlay-sm: color-mix(in srgb, var(--surface) 35%, transparent);--overlay-md: color-mix(in srgb, var(--surface) 45%, transparent);--overlay-lg: color-mix(in srgb, var(--surface) 55%, transparent);--overlay-dark: color-mix(in srgb, var(--surface) 75%, transparent);--overlay-panel: color-mix(in srgb, var(--surface-raised) 72%, transparent);--on-scrim: var(--nuit-50);--shade: #000;--axis-x: #d8636e;--axis-y: #6fcf86;--axis-z: #5b8cff;--axis-w: var(--ink-muted);--comment-slate: #8a93a6;--comment-blue: #5b8cff;--comment-green: #6fcf86;--comment-amber: #e0a64a;--comment-red: #d8636e;--comment-violet: #9b7bff;--heat-0: rgb(41, 61, 191);--heat-1: rgb(33, 158, 209);--heat-2: rgb(46, 191, 89);--heat-3: rgb(242, 209, 41);--heat-4: rgb(230, 31, 26);--tg-state-new: var(--ink-faint);--tg-state-feedback: #f0a13a;--tg-state-in-progress: #4aa3f0;--tg-state-fix-proposed: #a77bf0;--tg-state-validated: #6fcf86;--tg-state-wont-fix: #868ba8;--export-accent: #5ec8ff;--checker-a: var(--nuit-800);--checker-b: var(--nuit-700);--shadow-md: 0 6px 20px -4px #0000008c;--transition-fast: var(--duration-fast) var(--ease-out);--transition-normal: var(--duration-base) var(--ease-out);--transition-slow: var(--duration-slow) var(--ease-out);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .875rem;--font-size-lg: 1rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--learn-curtain: color-mix(in srgb, var(--surface) 62%, transparent);--learn-ring: var(--accent);--learn-ring-glow: color-mix(in srgb, var(--accent) 35%, transparent);--learn-coach-bg: var(--surface-raised);--learn-coach-fg: var(--ink);--learn-cursor: var(--accent);--z-learn: 1200;--z-learn-overlay: 1201;--z-learn-coach: 1202;--z-bridge: 1250;--bridge-accent: #c026d3;--bridge-accent-text: #d441e7;--console-fab-lane: 50px;--z-header: 100;--z-modal: 500;--z-toast: 700;--code-comment: #83839d;--code-string: #dc548b;--code-number: #339751;--code-keyword: #b957f6;--code-type: #3391a0;--code-func: #ae7c33;--code-attr: #4380fd;--code-global: #329493;--code-channel: #9b66ff}.boot-screen{position:fixed;inset:0;z-index:calc(var(--z-toast) + 100);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);background:var(--bg-primary);opacity:1;transition:opacity .18s ease-out}.boot-screen.boot-screen-lift{opacity:0;pointer-events:none}body.access-gate .boot-screen{display:none}.boot-mark{display:block;--boot-cycle: 3.2s}.boot-tri,.boot-mark-detach,.boot-mark-to{animation-duration:var(--boot-cycle);animation-iteration-count:infinite;animation-fill-mode:both;animation-delay:calc(var(--i, 0) * 70ms)}.boot-tri{animation-name:boot-converge}.boot-tri-0{--i: 0;--ox: 9px;--oy: -15.59px}.boot-mark-detach{--i: 1;animation-name:boot-detach}.boot-mark-to{--i: 1;animation-name:boot-turn-cyan}.boot-tri-2{--i: 2;--ox: 9px;--oy: 15.59px}.boot-tri-3{--i: 3;--ox: -9px;--oy: 15.59px}.boot-tri-4{--i: 4;--ox: -18px;--oy: 0px}.boot-tri-5{--i: 5;--ox: -9px;--oy: -15.59px}.boot-label{margin:0;font-size:var(--font-size-sm);color:var(--text-muted)}.boot-spinner{width:34px;height:34px;border:3px solid var(--accent-light);border-top-color:var(--accent);border-radius:50%;animation:boot-spin .7s linear infinite}@keyframes boot-spin{to{transform:rotate(360deg)}}@keyframes boot-converge{0%{transform:translate(var(--ox),var(--oy));opacity:.35;animation-timing-function:var(--ease-out)}18.75%,78.125%{transform:none;opacity:1;animation-timing-function:var(--ease-in-out)}96.875%,to{transform:translate(var(--ox),var(--oy));opacity:.35}}@keyframes boot-detach{0%{transform:none;opacity:.35;animation-timing-function:var(--ease-out)}18.75%,31.25%{transform:translate(-18px);opacity:1;animation-timing-function:var(--ease-in-out)}50%,78.125%{transform:none;opacity:1;animation-timing-function:var(--ease-in-out)}96.875%,to{transform:none;opacity:.35}}@keyframes boot-turn-cyan{0%,31.25%{opacity:0;animation-timing-function:var(--ease-in-out)}50%,78.125%{opacity:1;animation-timing-function:var(--ease-in-out)}96.875%,to{opacity:0}}@keyframes boot-breathe{0%,to{opacity:1}50%{opacity:.4}}@media(prefers-reduced-motion:reduce){.boot-screen{transition:none}.boot-tri,.boot-mark-detach,.boot-spinner{animation:none}.boot-mark-to{animation:boot-breathe 2.4s var(--ease-in-out) infinite}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{height:100%}body{font-family:var(--font-sans);font-weight:400;font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-primary);line-height:1.6;overflow:hidden}[hidden]{display:none!important}button,input,select,textarea,optgroup{font-family:inherit}select:not([multiple]):not([size]){appearance:none;padding-right:var(--select-pad-end, 26px)!important;background-image:var(--tb-bg-chevron-down)!important;background-repeat:no-repeat!important;background-position:right var(--select-chevron-inset, 7px) center!important;background-size:var(--select-chevron-size, 14px) var(--select-chevron-size, 14px)!important}h1,h2,h3{font-weight:600;line-height:1.3}h2{font-size:var(--font-size-lg);color:var(--text-primary)}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}code{font-family:var(--font-mono);font-size:var(--font-size-sm);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);color:var(--accent)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--accent-soft);color:var(--ink)}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none!important}.icon-inline{vertical-align:-3px;margin-right:5px}.graph-host-fill{position:absolute;inset:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:10px 20px;font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:500;border:1px solid transparent;border-radius:10px;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);white-space:nowrap;-webkit-user-select:none;user-select:none;text-decoration:none;line-height:1}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent-fill);color:var(--text-inverse);border-color:var(--accent);box-shadow:none}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 0 0 1px var(--ink)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:var(--danger);color:var(--text-inverse);border-color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-ghost.btn-danger{background:transparent;color:var(--danger);border-color:transparent}.btn-ghost.btn-danger:hover:not(:disabled){background:var(--danger-muted)}.btn-full{width:100%}.btn-sm{padding:6px 12px;font-size:var(--font-size-xs)}.btn-icon{padding:8px;width:36px;height:36px}.btn-icon.btn-sm{width:30px;height:30px;padding:6px}.input,.select,.textarea{width:100%;padding:10px 14px;font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-light);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.input::placeholder,.textarea::placeholder{color:var(--text-muted)}.select{--select-pad-end: 36px;--select-chevron-inset: 10px;--select-chevron-size: 16px;cursor:pointer}.input-group{display:flex;flex-direction:column;gap:var(--space-xs)}.input-group label{font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.session-expired-banner{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:950;display:flex;align-items:center;gap:10px;max-width:min(640px,calc(100vw - 32px));padding:10px 12px;border:1px solid var(--warning);border-radius:8px;background:var(--bg-elevated);background-image:linear-gradient(var(--warning-muted),var(--warning-muted));color:var(--text-primary);box-shadow:0 6px 24px color-mix(in srgb,var(--shade) 70%,transparent)}.session-expired-text{flex:1;font-size:13px}.desktop-update-banner{position:fixed;right:16px;bottom:16px;z-index:900;display:flex;align-items:center;gap:8px;max-width:min(560px,calc(100vw - 32px));padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-elevated);color:var(--text-primary);box-shadow:0 6px 24px color-mix(in srgb,var(--shade) 70%,transparent)}.desktop-update-text{flex:1;font-size:13px}.tb-icon{display:inline-block;flex:none;vertical-align:middle}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}summary.tb-disclosure{display:flex;align-items:center;gap:6px;list-style:none;cursor:pointer}summary.tb-disclosure::-webkit-details-marker{display:none}details>summary.tb-disclosure>.tb-disclosure-open,details[open]>summary.tb-disclosure>.tb-disclosure-closed{display:none}details[open]>summary.tb-disclosure>.tb-disclosure-open{display:inline-block}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border);z-index:var(--z-header);flex-shrink:0}.header-left{display:flex;align-items:center;gap:var(--space-md);min-width:0;flex:1 1 auto;overflow:hidden}.header-title{flex:0 100 auto;min-width:0;display:flex;align-items:center;margin:0;padding:0 7px;line-height:0}.header-logo{display:block;flex:none}.header-logo-compact{display:none}@media(max-width:1365px){.header-logo-full{display:none}.header-logo-compact{display:block}}.header-right{display:flex;align-items:center;gap:var(--space-xs);flex:0 0 auto}.project-bar{display:flex;align-items:center;gap:var(--space-sm);margin-left:var(--space-md);min-width:0;flex:0 1 auto}.project-name{background:none;border:none;cursor:pointer;font:inherit;font-weight:600;font-size:.85rem;color:var(--text-primary);padding:2px 6px;border-radius:var(--radius-sm);max-width:26ch;min-width:7ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-name:hover{background:var(--surface-hover)}.project-status{font-size:var(--font-size-xs);color:var(--text-muted);background:var(--surface-hover);padding:2px 8px;border-radius:999px;white-space:nowrap}.project-status[data-tone=ok]{color:var(--success);background:var(--success-muted)}.project-status[data-tone=busy]{color:var(--accent);background:var(--accent-light)}.project-status[data-tone=warn]{color:var(--warning);background:var(--warning-muted)}.project-status[data-tone=error]{color:var(--danger);background:var(--danger-muted)}.project-status[data-tone=muted]{color:var(--text-muted);background:var(--surface-hover)}.project-state{display:inline-flex;align-items:stretch;min-width:0}.project-state:has(.project-cloud:not(.hidden)) .project-status{border-top-right-radius:0;border-bottom-right-radius:0;padding-right:6px}.project-cloud{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border:none;border-left:1px solid var(--success-muted);border-radius:0 999px 999px 0;background:var(--success-muted);color:var(--success);cursor:pointer;transition:background var(--transition-fast)}.project-cloud:hover,.project-cloud:focus-visible{background:var(--success);color:var(--text-inverse)}.project-cloud:disabled{cursor:default;opacity:.5}.modal-products{width:min(860px,92vw);max-height:86vh;display:flex;flex-direction:column}.products-body{display:flex;flex-direction:column;gap:12px;padding:14px 16px 16px;overflow:auto}.products-intro{margin:0;color:var(--text-muted);font-size:var(--font-size-sm)}.products-section{margin:8px 0 0;font-size:var(--font-size-xs);font-weight:600;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.products-section:first-child{margin-top:0}.products-rows{display:flex;flex-direction:column;gap:6px}.products-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main actions" "age actions" "error error";align-items:center;gap:2px 12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated)}.products-row.is-open{border-color:var(--accent)}.products-row-main{grid-area:main;display:flex;align-items:baseline;gap:10px;min-width:0}.products-name{font-size:var(--font-size-sm);font-weight:600}.products-chip{font-size:var(--font-size-xs);padding:1px 7px;border-radius:999px;background:var(--bg-hover);color:var(--text-muted)}.products-chip.is-running{color:var(--text-primary)}.products-chip.is-failed{color:var(--danger);background:var(--danger-muted)}.products-clock{font-variant-numeric:tabular-nums;font-size:var(--font-size-sm);color:var(--text-muted);font-family:var(--font-mono);font-weight:500}.products-age{grid-area:age;color:var(--text-muted);font-size:var(--font-size-xs)}.products-row-actions{grid-area:actions;display:flex;gap:6px;align-items:center}.products-row-error{grid-area:error;margin-top:6px;color:var(--danger);font-size:var(--font-size-xs);font-family:var(--font-mono);overflow-wrap:anywhere}.products-log-wrap{display:flex;flex-direction:column;gap:6px}.products-log-head{display:flex;gap:10px;align-items:baseline;font-size:var(--font-size-xs);color:var(--text-muted)}.products-log-name{font-weight:600;color:var(--text-primary)}.products-log-exit{color:var(--danger);font-variant-numeric:tabular-nums}.products-log{margin:0;height:320px;overflow:auto;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.editor{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;display:flex}.pane{position:relative;height:100%;overflow:hidden}.pane-outputs{flex:0 0 auto;width:288px;min-width:160px;border-right:1px solid var(--border);background:var(--bg-surface)}.pane-outputs.hidden,.splitter-outputs.hidden{display:none}.pane-outputs{display:flex;flex-direction:column;overflow:hidden}.side-tabs-bar{display:flex;align-items:stretch;gap:2px;flex:0 0 auto;padding:4px 4px 0;border-bottom:1px solid var(--border)}.side-tabs-buttons{display:flex;flex:1 1 auto;gap:1px;min-width:0;overflow-x:auto;scrollbar-width:none}.side-tabs-buttons[data-single=true]{visibility:hidden}.side-tabs-tab{flex:0 0 auto;padding:4px 6px;white-space:nowrap;border:1px solid transparent;border-bottom:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:none;color:var(--text-secondary);font-size:11.5px;cursor:pointer}.side-tabs-tab[hidden]{display:none}.side-tabs-tab[aria-selected=true]{border-color:var(--border);background:var(--bg-elevated);color:var(--text-primary);font-weight:600}.side-tabs-fold{display:flex;flex:0 0 auto;align-items:center;justify-content:center;align-self:center;width:22px;height:22px;padding:0;margin-bottom:4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer}.side-tabs-body{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.side-tab{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:auto}.side-tab[hidden]{display:none}.side-tabs-expand{position:absolute;top:50%;left:0;z-index:6;display:flex;align-items:center;justify-content:center;width:18px;height:48px;padding:0;transform:translateY(-50%);border:1px solid var(--border);border-left:none;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer}.side-tabs-expand[hidden]{display:none}.pane-viewport{flex:1 1 auto;min-width:0}.pane-graph{flex:0 0 auto;width:42%;min-width:240px;border-left:1px solid var(--border)}.splitter{flex:0 0 6px;cursor:col-resize;background:var(--border);transition:background var(--transition-fast);z-index:10}.splitter:hover,.splitter.dragging{background:var(--accent)}.editor-topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:flex-start;gap:var(--space-md);padding:var(--space-md);pointer-events:none;z-index:20}.editor-topbar>*{pointer-events:auto}.viewport-toolbar{display:flex;align-items:center;gap:2px;padding:4px;background:var(--overlay-panel);border:1px solid var(--border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.tool-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.tool-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.tool-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tool-btn[aria-pressed=true]{background:var(--accent);color:var(--text-inverse)}.tool-btn svg{width:18px;height:18px;display:block}.tool-btn[aria-expanded=true]{background:var(--bg-hover);color:var(--text-primary)}.tool-btn[aria-expanded=true][aria-pressed=true]{background:var(--accent);color:var(--text-inverse)}.tool-menu{position:fixed;z-index:60;min-width:190px;padding:4px;display:flex;flex-direction:column;gap:2px;background:var(--overlay-panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.tool-menu-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:6px 8px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:inherit;font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.tool-menu-item:hover{background:var(--bg-hover);color:var(--text-primary)}.tool-menu-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tool-menu-item[aria-checked=true]{background:var(--accent);color:var(--text-inverse)}.tool-menu-icon{display:inline-flex;flex:0 0 auto}.tool-menu-icon svg{width:16px;height:16px;display:block}.tool-menu-label{flex:1 1 auto}.tool-panel{min-width:248px;padding:8px 10px 10px;gap:8px}.tool-panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding-bottom:6px;border-bottom:1px solid var(--border);font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer}.tool-panel-switch{accent-color:var(--accent);width:16px;height:16px;margin:0;cursor:pointer}.tool-params{display:flex;flex-direction:column;gap:6px}.tool-param{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:var(--space-sm);row-gap:2px;font-size:var(--font-size-sm);color:var(--text-secondary)}.tool-param-label{min-width:0}.tool-param-value{font-variant-numeric:tabular-nums;color:var(--text-primary);font-family:var(--font-mono);font-weight:500}.tool-param-slider{grid-column:1 / -1;width:100%;margin:0;accent-color:var(--accent);cursor:pointer}.tool-param.is-choice{grid-template-columns:1fr}.tool-param-choice{display:flex;gap:2px;padding:2px;border-radius:var(--radius-sm);background:var(--bg-hover)}.tool-param-option{flex:1 1 0;padding:3px 6px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:inherit;font-size:var(--font-size-sm);cursor:pointer}.tool-param-option:hover{color:var(--text-primary)}.tool-param-option[aria-checked=true]{background:var(--accent);color:var(--text-inverse)}.tool-param-option:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tool-panel-reset{align-self:flex-end;padding:3px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:inherit;font-size:var(--font-size-sm);cursor:pointer}.tool-panel-reset:hover{background:var(--bg-hover);color:var(--text-primary)}.viewport{position:absolute;inset:0}.viewport canvas{display:block}.graph-actions{position:absolute;top:var(--space-md);right:var(--space-md);display:flex;gap:var(--space-sm);z-index:20}.graph-actions .btn{background:var(--bg-surface);color:var(--text-secondary);border-color:var(--border);box-shadow:var(--shadow-sm)}.graph-actions .btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.inputs-panel{--ip-accent: var(--ui-accent);--ip-ink: var(--ui-accent-ink);--ip-tint: color-mix(in srgb, var(--ip-accent) 16%, transparent);--ip-tint-strong: color-mix(in srgb, var(--ip-accent) 30%, transparent);--ip-well: color-mix(in srgb, var(--ink) 5.5%, transparent);--ip-well-hover: color-mix(in srgb, var(--ink) 9%, transparent);--ip-track: color-mix(in srgb, var(--ink) 12%, transparent);--ip-hairline: var(--line);--ip-hairline-strong: var(--line-strong);--ip-surface: color-mix(in srgb, var(--surface-raised) 92%, transparent);--ip-ctl-h: 30px;--ip-ctl-radius: 8px;--ip-pad: 14px;--ip-ease: cubic-bezier(.2, .8, .2, 1);position:absolute;top:60px;left:var(--space-md);width:var(--inputs-panel-w, 288px);max-width:calc(100% - 2 * var(--space-md));max-height:calc(100% - 60px - var(--space-md));display:flex;flex-direction:column;background:var(--ip-surface);border:1px solid var(--border);border-radius:16px;-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);box-shadow:0 18px 48px -18px color-mix(in srgb,var(--shade) 70%,transparent),0 2px 8px color-mix(in srgb,var(--shade) 16%,transparent),0 0 0 1px color-mix(in srgb,var(--shade) 10%,transparent);color:var(--text-primary);z-index:18;overflow:hidden}.inputs-panel.hidden{display:none}.inputs-panel-resizing{-webkit-user-select:none;user-select:none}.inputs-panel-head{position:relative;z-index:3;display:flex;align-items:center;gap:8px;padding:12px var(--ip-pad) 10px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:box-shadow .2s ease}.inputs-panel-more-above .inputs-panel-head{box-shadow:0 10px 14px -12px color-mix(in srgb,var(--shade) 80%,transparent)}.inputs-panel-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;border-radius:50%;background:var(--ip-well);color:var(--text-secondary);cursor:pointer;transition:background .15s ease}.inputs-panel-head:hover .inputs-panel-toggle{background:var(--ip-well-hover);color:var(--text-primary)}.inputs-panel-toggle:before,.inputs-panel-chevron{content:"";display:inline-block;flex:0 0 auto;width:6px;height:6px;margin-top:-3px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg);transition:transform .2s var(--ip-ease),margin .2s var(--ip-ease)}.inputs-panel-collapsed .inputs-panel-toggle:before,.inputs-panel-section-head[aria-expanded=false] .inputs-panel-chevron{margin-top:0;transform:rotate(-45deg)}.inputs-panel-title{flex:1 1 auto;min-width:0;font-size:.875rem;font-weight:650;letter-spacing:-.005em;color:var(--text-primary)}.inputs-panel-count{flex:0 0 auto;min-width:22px;padding:2px 8px;border-radius:999px;background:var(--ip-well);color:var(--text-secondary);font-size:.7rem;font-weight:600;font-variant-numeric:tabular-nums;text-align:center;font-family:var(--font-mono)}.inputs-panel-body{position:relative;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--ip-hairline-strong) transparent;padding:0 0 10px;--ip-fade-bottom: 0px;-webkit-mask-image:linear-gradient(to bottom,var(--shade) calc(100% - var(--ip-fade-bottom)),transparent 100%);mask-image:linear-gradient(to bottom,var(--shade) calc(100% - var(--ip-fade-bottom)),transparent 100%)}.inputs-panel-more-below .inputs-panel-body{--ip-fade-bottom: 36px}.inputs-panel-description{margin:-4px 0 0;padding:0 var(--ip-pad) 10px;font-size:.78rem;line-height:1.45;color:var(--text-muted)}.inputs-panel-description.hidden,.inputs-panel-collapsed .inputs-panel-description{display:none}.inputs-panel-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,236px),1fr));grid-auto-rows:max-content;align-items:start;align-content:start}.inputs-panel-list>.inputs-panel-section,.inputs-panel-list>.inputs-panel-tabs,.inputs-panel-list>.inputs-panel-presets,.inputs-panel-list>.inputs-panel-note,.inputs-panel-list>.inputs-panel-separator,.inputs-panel-list>.inputs-panel-list{grid-column:1 / -1}.inputs-panel-grip{position:absolute;top:12px;right:0;bottom:12px;width:10px;z-index:4;cursor:ew-resize;touch-action:none}.inputs-panel-grip:after{content:"";position:absolute;top:50%;right:3px;width:4px;height:40px;border-radius:2px;background:var(--ip-hairline-strong);opacity:0;transform:translateY(-50%);transition:opacity .15s ease,height .2s var(--ip-ease),background .15s ease}.inputs-panel:hover .inputs-panel-grip:after{opacity:1}.inputs-panel-grip:hover:after,.inputs-panel-grip:focus-visible:after,.inputs-panel-resizing .inputs-panel-grip:after{opacity:1;height:64px;background:var(--ip-accent)}.inputs-panel-collapsed .inputs-panel-grip{display:none}.inputs-panel-row{position:relative;margin:0 6px;padding:8px 8px 9px;display:flex;flex-direction:column;gap:7px;min-width:0;border-radius:10px;transition:background .15s ease}.inputs-panel-row:hover{background:color-mix(in srgb,var(--ink) 3%,transparent)}.inputs-panel-row:focus-within{background:color-mix(in srgb,var(--ip-accent) 7%,transparent)}.inputs-panel-row-inline{flex-direction:row;align-items:center;gap:10px}.inputs-panel-row-inline .inputs-panel-row-head{flex:1 1 auto}.inputs-panel-row-inline .inputs-panel-field{flex:0 0 auto}.inputs-panel-row-inline .inputs-panel-field .ge-field{width:auto}.inputs-panel-row-head{display:flex;align-items:center;gap:6px;min-width:0;min-height:20px}.inputs-panel-label{flex:0 1 auto;min-width:0;font-size:.8125rem;font-weight:500;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .15s ease}.inputs-panel-row:hover .inputs-panel-label,.inputs-panel-row-modified .inputs-panel-label{color:var(--text-primary)}.inputs-panel-modified-dot{display:none;flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:var(--ip-accent);box-shadow:0 0 0 3px var(--ip-tint)}.inputs-panel-row-modified .inputs-panel-modified-dot{display:inline-block}.inputs-panel-reset-one{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;margin-left:auto;width:22px;height:22px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--text-muted);font-size:.875rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,transform .25s var(--ip-ease)}.inputs-panel-reset-one[hidden]{display:none}.inputs-panel-reset-one:hover{background:var(--ip-tint);color:var(--text-primary);transform:rotate(-90deg)}.inputs-panel-field{min-width:0}.inputs-panel-field .ge-field{width:100%;margin-left:0}.inputs-panel-row-disabled{opacity:.45}.inputs-panel-row-disabled .inputs-panel-field{pointer-events:none}@keyframes inputs-panel-flash{0%{background:var(--ip-tint-strong)}to{background:transparent}}.inputs-panel-flash{animation:inputs-panel-flash .9s ease-out}.inputs-panel .ge-field-number,.inputs-panel .ge-field-text{height:var(--ip-ctl-h);padding:0 9px;border:1px solid transparent;border-radius:var(--ip-ctl-radius);background:var(--ip-well);color:var(--text-primary);font:inherit;font-size:.8125rem;font-variant-numeric:tabular-nums;appearance:textfield;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.inputs-panel .ge-field-text{flex:1 1 auto;width:100%;min-width:0}.inputs-panel .ge-field-number{font-family:var(--font-mono);font-weight:500}.inputs-panel .ge-field-number::-webkit-inner-spin-button,.inputs-panel .ge-field-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.inputs-panel .ge-field-number:hover,.inputs-panel .ge-field-text:hover{background:var(--ip-well-hover)}.inputs-panel .ge-field-number:focus,.inputs-panel .ge-field-text:focus,.inputs-panel .ge-field-number.ge-scrubbing{outline:none;background:var(--bg-input);border-color:var(--ip-accent);box-shadow:0 0 0 3px var(--ip-tint)}.inputs-panel .ge-field-vec3 .ge-field-number{flex:1 1 auto;width:auto;min-width:0}.inputs-panel .ge-field-slider{gap:10px}.inputs-panel .ge-field-slider .ge-field-number{width:62px;text-align:right}.inputs-panel .ge-slider-range{-webkit-appearance:none;appearance:none;flex:1 1 auto;min-width:0;height:22px;margin:0;background:transparent;cursor:pointer}.inputs-panel .ge-slider-range:focus-visible{outline:none}.inputs-panel .ge-slider-range::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(to right,var(--ip-accent) 0,var(--ip-accent) var(--fill, 0%),var(--ip-track) var(--fill, 0%),var(--ip-track) 100%)}.inputs-panel .ge-slider-range::-moz-range-track{height:6px;border-radius:999px;background:var(--ip-track)}.inputs-panel .ge-slider-range::-moz-range-progress{height:6px;border-radius:999px;background:var(--ip-accent)}.inputs-panel .ge-slider-range::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-6px;border:2px solid var(--ip-accent);border-radius:50%;background:var(--ink);box-shadow:0 1px 4px color-mix(in srgb,var(--shade) 50%,transparent);transition:transform .15s var(--ip-ease),box-shadow .15s ease}.inputs-panel .ge-slider-range::-moz-range-thumb{box-sizing:border-box;width:18px;height:18px;border:2px solid var(--ip-accent);border-radius:50%;background:var(--ink);box-shadow:0 1px 4px color-mix(in srgb,var(--shade) 50%,transparent);transition:transform .15s var(--ip-ease),box-shadow .15s ease}.inputs-panel .ge-slider-range:hover::-webkit-slider-thumb{transform:scale(1.12);box-shadow:0 1px 4px color-mix(in srgb,var(--shade) 50%,transparent),0 0 0 5px var(--ip-tint)}.inputs-panel .ge-slider-range:hover::-moz-range-thumb{transform:scale(1.12);box-shadow:0 1px 4px color-mix(in srgb,var(--shade) 50%,transparent),0 0 0 5px var(--ip-tint)}.inputs-panel .ge-slider-range:active::-webkit-slider-thumb,.inputs-panel .ge-slider-range:focus-visible::-webkit-slider-thumb{transform:scale(1.2);box-shadow:0 1px 4px color-mix(in srgb,var(--shade) 50%,transparent),0 0 0 7px var(--ip-tint-strong)}.inputs-panel .ge-slider-range:active::-moz-range-thumb,.inputs-panel .ge-slider-range:focus-visible::-moz-range-thumb{transform:scale(1.2);box-shadow:0 1px 4px color-mix(in srgb,var(--shade) 50%,transparent),0 0 0 7px var(--ip-tint-strong)}.inputs-panel .ge-field-stepper{gap:6px}.inputs-panel .ge-stepper-btn{width:var(--ip-ctl-h);height:var(--ip-ctl-h);border:none;border-radius:var(--ip-ctl-radius);background:var(--ip-well);color:var(--text-primary);font-size:1rem;transition:background .15s ease,color .15s ease,transform .08s ease}.inputs-panel .ge-stepper-btn:hover:not(:disabled){background:var(--ip-tint)}.inputs-panel .ge-stepper-btn:active:not(:disabled){transform:scale(.92)}.inputs-panel .ge-stepper-btn:disabled{opacity:.3}.inputs-panel .ge-field-stepper .ge-field-number{text-align:center}.inputs-panel .ge-field-segmented{gap:2px;padding:3px;border-radius:10px;background:var(--ip-well)}.inputs-panel .ge-segmented-btn{min-height:28px;padding:0 10px;border:none;border-radius:7px;background:transparent;color:var(--text-secondary);font-weight:500;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.inputs-panel .ge-segmented-btn:hover{color:var(--text-primary);background:var(--surface-hover)}.inputs-panel .ge-segmented-btn.is-on{background:var(--bg-elevated);color:var(--text-primary);font-weight:600;box-shadow:0 1px 3px color-mix(in srgb,var(--shade) 28%,transparent),inset 0 -2px 0 var(--ip-accent)}.inputs-panel .ge-field-select{flex:1 1 auto;width:100%;min-width:0;height:var(--ip-ctl-h);padding:0 30px 0 10px;--select-pad-end: 30px;--select-chevron-inset: 9px;--select-chevron-size: 16px;border:1px solid transparent;border-radius:var(--ip-ctl-radius);background:var(--ip-well);color:var(--text-primary);font-weight:500;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.inputs-panel .ge-field-select:hover{background-color:var(--ip-well-hover)}.inputs-panel .ge-field-select:focus{outline:none;border-color:var(--ip-accent);box-shadow:0 0 0 3px var(--ip-tint)}.inputs-panel .ge-field>input[type=checkbox]{-webkit-appearance:none;appearance:none;position:relative;flex:0 0 auto;width:38px;height:22px;margin:0;border-radius:999px;background:var(--ip-track);cursor:pointer;transition:background .2s ease}.inputs-panel .ge-field>input[type=checkbox]:before{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--ink);box-shadow:0 1px 3px color-mix(in srgb,var(--shade) 60%,transparent);transition:transform var(--duration-base) var(--ease-in-out)}.inputs-panel .ge-field>input[type=checkbox]:hover{background:color-mix(in srgb,var(--ink) 20%,transparent)}.inputs-panel .ge-field>input[type=checkbox]:checked{background:var(--ip-accent)}.inputs-panel .ge-field>input[type=checkbox]:checked:before{transform:translate(16px)}.inputs-panel .ge-field>input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ip-tint-strong)}.inputs-panel .ge-color-swatch{flex:0 0 auto;width:46px;min-width:0;height:26px;padding:0;border:none;border-radius:999px;background:none;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--shade) 24%,transparent),0 1px 2px color-mix(in srgb,var(--shade) 20%,transparent);cursor:pointer;transition:transform .15s var(--ip-ease)}.inputs-panel .ge-color-swatch:hover{transform:scale(1.06)}.inputs-panel .ge-color-swatch::-webkit-color-swatch-wrapper{padding:0}.inputs-panel .ge-color-swatch::-webkit-color-swatch{border:none;border-radius:999px}.inputs-panel .ge-color-swatch::-moz-color-swatch{border:none;border-radius:999px}.inputs-panel-row-action{padding:4px 8px}.inputs-panel-row-action:hover,.inputs-panel-row-action:focus-within{background:transparent}.inputs-panel-action{width:100%;min-height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--ip-hairline-strong);background:var(--bg-elevated);color:var(--text-primary);font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;box-shadow:0 1px 2px color-mix(in srgb,var(--shade) 12%,transparent);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .08s ease}.inputs-panel-action:hover:not(:disabled){border-color:var(--ip-accent);box-shadow:0 3px 10px -4px color-mix(in srgb,var(--shade) 60%,transparent)}.inputs-panel-action:active:not(:disabled){transform:scale(.98)}.inputs-panel-action-primary{background:var(--ip-accent);border-color:var(--ip-accent);color:var(--ip-ink)}.inputs-panel-action-primary:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 4px 14px -4px var(--ip-accent)}.inputs-panel-action-danger{border-color:color-mix(in srgb,var(--danger) 50%,transparent);color:var(--danger)}.inputs-panel-action-danger:hover:not(:disabled){border-color:var(--danger);background:var(--danger);color:var(--text-inverse)}.inputs-panel-action:disabled{opacity:.45;cursor:default;box-shadow:none}.inputs-panel-section{margin:4px 8px 6px;border:1px solid var(--ip-hairline);border-radius:12px;background:var(--surface-hover-xs)}.inputs-panel-section .inputs-panel-section{margin:2px 0 0;border:none;border-top:1px solid var(--ip-hairline);border-radius:0;background:transparent}.inputs-panel-section-head{display:flex;align-items:center;gap:9px;width:100%;min-height:40px;padding:8px 12px;border:none;border-radius:11px;background:transparent;color:var(--text-primary);font:inherit;font-size:.8125rem;font-weight:600;text-align:left;cursor:pointer;transition:background .15s ease}.inputs-panel-section-head:hover{background:var(--ip-well)}.inputs-panel-section-head .inputs-panel-chevron{color:var(--text-muted)}.inputs-panel-section-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inputs-panel-section-count{flex:0 0 auto;padding:1px 7px;border-radius:999px;background:var(--ip-well);color:var(--text-muted);font-size:.68rem;font-weight:600;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.inputs-panel-section-body{padding:0 0 6px}.inputs-panel-section .inputs-panel-row{margin:0 4px}.inputs-panel-tabs{margin:2px 0 4px}.inputs-panel-tabs-title{display:block;padding:6px var(--ip-pad) 2px;font-size:.7rem;font-weight:600;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.inputs-panel-tablist{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:5px;padding:6px var(--ip-pad) 10px;background:linear-gradient(to bottom,var(--ip-surface) 85%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.inputs-panel-tab{flex:0 1 auto;min-width:0;max-width:100%;height:30px;padding:0 11px;border:1px solid transparent;border-radius:999px;background:var(--ip-well);color:var(--text-secondary);font:inherit;font-size:.8rem;font-weight:500;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.inputs-panel-tab:hover{background:var(--ip-well-hover);color:var(--text-primary)}.inputs-panel-tab-active,.inputs-panel-tab-active:hover{background:var(--ip-accent);color:var(--ip-ink);font-weight:600;box-shadow:0 3px 10px -4px var(--ip-accent)}.inputs-panel-tabpanel{padding-top:0}.inputs-panel-presets{display:flex;flex-wrap:wrap;gap:6px;padding:6px var(--ip-pad) 8px}.inputs-panel-preset{max-width:100%;min-height:30px;padding:0 13px;border:1px solid var(--ip-hairline-strong);border-radius:999px;background:var(--bg-elevated);color:var(--text-secondary);font:inherit;font-size:.8rem;font-weight:500;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s var(--ip-ease)}.inputs-panel-preset:hover{color:var(--text-primary);border-color:var(--ip-accent);transform:translateY(-1px)}.inputs-panel-preset-active,.inputs-panel-preset-active:hover{background:var(--ip-accent);border-color:var(--ip-accent);color:var(--ip-ink);font-weight:600}.inputs-panel-preset-check{display:none;margin-right:6px}.inputs-panel-preset-active .inputs-panel-preset-check{display:inline-block}.inputs-panel-readout{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;margin:0 6px;padding:8px;border-radius:10px;font-size:.8125rem}.inputs-panel-readout-label{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inputs-panel-readout-value{flex:0 0 auto;max-width:60%;padding:3px 10px;border-radius:999px;background:var(--ip-tint);color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono)}.inputs-panel-row:focus-within .inputs-panel-label,.inputs-panel-section-head:focus-visible .inputs-panel-section-title,.inputs-panel-action:focus-visible,.inputs-panel-tab:focus-visible,.inputs-panel-preset:focus-visible{white-space:normal;overflow-wrap:anywhere}.inputs-panel-tab:focus-visible,.inputs-panel-preset:focus-visible{height:auto}.inputs-panel-note{margin:0;padding:6px var(--ip-pad);font-size:.78rem;line-height:1.45;color:var(--text-muted)}.inputs-panel-separator{height:1px;margin:6px var(--ip-pad);background:var(--ip-hairline)}.inputs-panel :focus-visible{outline:2px solid var(--ip-accent);outline-offset:-2px}@media(prefers-reduced-motion:reduce){.inputs-panel,.inputs-panel *,.inputs-panel *:before,.inputs-panel *:after{transition:none!important;animation:none!important}}.state-inspector{position:absolute;right:12px;bottom:12px;width:280px;max-height:45%;display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);font-size:.72rem;overflow:hidden;z-index:4}.state-inspector.hidden{display:none}.state-inspector-head{display:flex;align-items:center;gap:6px;padding:6px 8px;cursor:pointer;color:var(--text-secondary);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none}.state-inspector-count{margin-left:auto;color:var(--text-muted)}.state-inspector-clear-all{display:inline-flex;align-items:center;border:none;background:transparent;color:var(--text-muted);cursor:pointer;padding:0 2px}.state-inspector-clear-all:hover{color:var(--text-primary)}.state-inspector.collapsed .state-inspector-body{display:none}.state-inspector-body{overflow-y:auto}.state-inspector-row{display:flex;align-items:center;gap:6px;padding:3px 8px;border-bottom:1px solid var(--border)}.state-inspector-key{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.state-inspector-slug{color:var(--text-muted);font-size:.66rem}.state-inspector-origin{flex:0 0 auto;color:var(--text-muted);font-size:.66rem}.state-inspector-row-orphan .state-inspector-origin{color:var(--danger)}.state-inspector-value{flex:0 0 auto;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent);font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-weight:500}.state-inspector-clear{display:inline-flex;align-items:center;flex:0 0 auto;border:none;background:transparent;color:var(--text-muted);cursor:pointer;padding:0 2px}.state-inspector-clear:hover{color:var(--danger)}.inputs-reset{position:absolute;top:60px;left:50%;transform:translate(-50%);z-index:19;display:inline-flex;align-items:center;gap:4px;padding:5px 12px;font-size:.78rem;color:var(--text-inverse);background:var(--accent);border:none;border-radius:999px;box-shadow:var(--shadow-sm);cursor:pointer}.inputs-reset:hover{filter:brightness(1.07)}.inputs-reset.hidden{display:none}.graph-hint{position:absolute;bottom:var(--space-md);left:var(--space-md);margin:0;padding:var(--space-sm) var(--space-md);font-size:.8125rem;color:var(--text-muted);background:var(--overlay-panel);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;z-index:20}body.public-view .header,body.public-view .pane-graph,body.public-view #splitter{display:none!important}body.public-view .pane-viewport{flex:1 1 auto;width:100%}.public-brand{position:absolute;right:var(--space-md);bottom:var(--space-md);z-index:15;padding:6px;line-height:0;background:var(--scrim);border-radius:var(--radius-md);pointer-events:none}.public-brand img{display:block}.public-title{position:absolute;bottom:var(--space-md);left:50%;transform:translate(-50%);padding:6px 14px;background:var(--overlay-panel);border:1px solid var(--border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);pointer-events:none;z-index:15}.public-actions{position:absolute;top:var(--space-md);right:var(--space-md);z-index:19;display:flex;align-items:stretch;gap:var(--space-sm)}.public-action{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;color:var(--text-primary);background:var(--overlay-panel);border:1px solid var(--border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer}.public-action-icon{display:block;line-height:0}.public-action:hover{border-color:var(--ui-accent)}.public-action:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}.public-action-done{color:var(--ui-accent-ink);background:var(--ui-accent);border-color:transparent}.public-action-tip{position:absolute;top:calc(100% + 6px);right:0;z-index:1;display:flex;flex-direction:column;gap:2px;width:max-content;max-width:220px;padding:6px 9px;text-align:left;background:var(--overlay-panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition-fast),visibility var(--transition-fast)}.public-action:hover .public-action-tip,.public-action:focus-visible .public-action-tip{opacity:1;visibility:visible}.public-action-tip-name{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);white-space:nowrap}.public-action-tip-hint{font-size:.72rem;line-height:1.35;color:var(--text-muted)}.public-action-tip-hint.hidden{display:none}.public-action[disabled]{cursor:progress;opacity:.75}.public-export-blocked{color:var(--danger);border-color:currentColor}.public-export-overlay .modal-content{max-width:420px}.public-export-desc{margin:var(--space-sm) 0 0;font-size:var(--font-size-sm);line-height:1.5;color:var(--text-secondary);white-space:pre-wrap}.public-message{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);text-align:center;z-index:30}.public-message p{max-width:420px;margin:0;font-size:var(--font-size-sm);line-height:1.5;color:var(--text-secondary)}@media(max-width:640px){.inputs-panel{inset:auto 0 0;width:auto;max-width:none;max-height:min(48dvh,420px);border-radius:16px 16px 0 0;border-right:none;border-bottom:none;border-left:none;-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3)}.inputs-panel-grip{display:none}.inputs-panel-tablist,.inputs-panel-presets{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;overscroll-behavior-x:contain}.inputs-panel-tablist::-webkit-scrollbar,.inputs-panel-presets::-webkit-scrollbar{display:none}.inputs-panel-tab,.inputs-panel-preset{flex:0 0 auto;scroll-snap-align:start}body.public-view .inputs-panel{max-height:33.333dvh}.inputs-reset{top:auto;bottom:calc(var(--inputs-h, 0px) + var(--space-sm));left:50%}.inputs-panel-preset,.inputs-panel-action,.inputs-panel-tab,.inputs-panel-section-head{min-height:44px}.inputs-panel-field input[type=number],.inputs-panel-field select{min-height:36px}.inputs-panel-field input[type=range]{height:32px}body.public-view .viewport{bottom:var(--inputs-h, 0px)}body.public-view .public-title,body.public-view .public-brand{bottom:calc(var(--inputs-h, 0px) + var(--space-md))}body.public-view .drag-hud{bottom:calc(var(--inputs-h, 0px) + var(--space-md) + 44px)}.public-action{width:44px;height:44px}}.drag-hud{position:absolute;bottom:calc(var(--space-md) + 44px);left:50%;transform:translate(-50%);z-index:21;display:flex;align-items:baseline;gap:10px;padding:5px 12px;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;color:var(--text-primary);background:var(--overlay-panel);border:1px solid var(--border);border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow-sm);pointer-events:none;white-space:nowrap}.drag-hud.hidden{display:none}.drag-hud-name{color:var(--text-muted)}.drag-hud-value{font-weight:600}.drag-hud-delta{color:var(--ui-accent)}.drag-hud-step{color:var(--text-muted)}.drag-hud-delta:empty,.drag-hud-step:empty{display:none}@media(max-width:640px){.drag-hud{bottom:calc(min(48dvh,420px) + var(--space-sm) + 44px);max-width:calc(100vw - 2 * var(--space-md));overflow:hidden;text-overflow:ellipsis}}.attr-panel{position:absolute;left:var(--space-md);bottom:var(--space-md);z-index:15;display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:280px;padding:8px 10px;background:var(--overlay-panel);border:1px solid var(--border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-user-select:none;user-select:none}.attr-panel.hidden{display:none}.attr-panel-head{display:flex;align-items:center;gap:6px;width:100%;font-size:.72rem;font-family:var(--font-mono);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.attr-panel-title:before{content:"";display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:var(--accent);vertical-align:middle}.attr-panel-source{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none;letter-spacing:0;color:var(--text-secondary)}.attr-panel-close{display:inline-flex;align-items:center;flex:0 0 auto;background:none;border:none;color:var(--text-muted);font-size:1rem;line-height:1;padding:0 2px;cursor:pointer}.attr-panel-close:hover{color:var(--text-primary)}.attr-panel-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 9px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;color:var(--text-primary);font:inherit;font-size:.78rem;cursor:pointer}.attr-panel-chip:hover{border-color:var(--accent)}.attr-panel-chip-domain{flex:0 0 auto;padding:1px 6px;border-radius:999px;background:var(--accent);color:var(--text-inverse);font-size:.66rem;font-family:var(--font-mono);font-weight:600;text-transform:uppercase;letter-spacing:.08em}.attr-panel-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono)}.attr-panel-modes{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.attr-panel-modes.hidden{display:none}.attr-panel-modes button{background:var(--bg-elevated);border:none;border-right:1px solid var(--border);color:var(--text-secondary);font:inherit;font-size:.75rem;padding:3px 9px;cursor:pointer}.attr-panel-modes button:last-child{border-right:none}.attr-panel-modes button:hover{color:var(--text-primary)}.attr-panel-modes button.active{background:var(--accent);color:var(--text-inverse)}.attr-panel-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;width:100%;font-size:.7rem;color:var(--text-secondary);font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-weight:500}.attr-panel-legend:empty{display:none}.attr-panel-ramp{flex:1 1 auto;height:9px;min-width:96px;border-radius:5px;background:linear-gradient(to right,var(--heat-0),var(--heat-1),var(--heat-2),var(--heat-3),var(--heat-4))}.attr-panel-detail{font-family:var(--font-mono);color:var(--text-primary);overflow-wrap:anywhere}.attr-panel-bounds{display:flex;align-items:center;gap:4px;width:100%;font-size:.7rem;color:var(--text-secondary)}.attr-panel-bounds.hidden{display:none}.attr-panel-bounds-toggle{flex:0 0 auto;accent-color:var(--accent)}.attr-panel-bounds-input{flex:1 1 0;min-width:0;width:100%;font:inherit;font-family:var(--font-mono);font-weight:500;font-variant-numeric:tabular-nums;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border);border-radius:3px;padding:1px 4px}.attr-panel-bounds-input:disabled{opacity:.5}.attr-panel-bounds-sep{flex:0 0 auto;color:var(--text-muted)}.attr-panel-cat{display:inline-flex;align-items:center;gap:4px;max-width:100%}.attr-panel-cat>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:96px}.attr-panel-swatch{width:9px;height:9px;border-radius:2px;flex:0 0 auto}.attr-panel-absent,.attr-panel-more{color:var(--text-muted);font-style:italic}.attr-picker{position:fixed;z-index:200;display:flex;flex-direction:column;width:268px;max-height:340px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 12px 32px color-mix(in srgb,var(--shade) 80%,transparent);overflow:hidden}.attr-picker-search{flex:0 0 auto;margin:0;padding:7px 10px;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--text-primary);font:inherit;font-size:.82rem;outline:none}.attr-picker-list{flex:1 1 auto;overflow-y:auto;padding:4px 0}.attr-picker-group{padding:6px 10px 2px;font-size:.66rem;font-family:var(--font-mono);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.attr-picker-row{display:flex;align-items:baseline;gap:8px;padding:4px 10px;cursor:pointer}.attr-picker-row.active{background:var(--bg-hover)}.attr-picker-row.selected .attr-picker-name{color:var(--accent)}.attr-picker-row.provisional .attr-picker-name,.attr-picker-row.virtual .attr-picker-name{opacity:.65}.attr-picker-row.virtual .attr-picker-detail{font-style:italic}.attr-picker-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:.8rem;color:var(--text-primary)}.attr-picker-detail{flex:0 0 auto;font-size:.68rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.attr-picker-none .attr-picker-name{font-family:inherit;color:var(--text-secondary);font-style:italic}.attr-picker-empty{padding:10px;font-size:.75rem;color:var(--text-muted);text-align:center}.viewport-banner{position:absolute;top:14px;left:50%;transform:translate(-50%);max-width:80%;padding:8px 14px;border-radius:6px;background:color-mix(in srgb,var(--danger) 94%,transparent);color:var(--on-accent);font-size:13px;line-height:1.4;text-align:center;z-index:20;pointer-events:none;box-shadow:0 4px 16px color-mix(in srgb,var(--shade) 60%,transparent)}.viewport-banner-action{pointer-events:auto;margin-left:10px;padding:2px 8px;border:1px solid color-mix(in srgb,var(--on-accent) 65%,transparent);border-radius:4px;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer}.viewport-banner-action:hover{background:color-mix(in srgb,var(--on-accent) 15%,transparent)}.viewport-flight-hint{position:absolute;bottom:14px;left:50%;transform:translate(-50%);max-width:90%;padding:6px 14px;border-radius:999px;background:var(--scrim);color:var(--on-scrim);font-size:12px;line-height:1.4;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:20;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 16px color-mix(in srgb,var(--shade) 60%,transparent)}.output-tree{padding:8px 6px;-webkit-user-select:none;user-select:none;font-size:.8rem}.output-tree.hidden{display:none}.ot-head{font-size:.7rem;font-family:var(--font-mono);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:2px 4px 6px}.ot-collection{display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:4px;cursor:pointer;color:var(--text-secondary)}.ot-collection:hover{background:var(--bg-hover);color:var(--text-primary)}.ot-collection.active{background:var(--accent);color:var(--text-inverse)}.ot-caret{border:none;background:transparent;color:inherit;cursor:pointer;width:12px;padding:0;line-height:1;display:inline-flex;align-items:center;justify-content:center}.ot-collection-name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-collection-count{font-size:.7rem;opacity:.75;background:var(--surface-hover-lg);border-radius:9px;padding:0 6px}.ot-items{padding:2px 0 4px 16px;display:flex;flex-direction:column;gap:1px}.ot-item{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:4px;color:var(--text-secondary)}.ot-item.openable{cursor:pointer}.ot-item.openable:hover{background:var(--bg-hover);color:var(--text-primary)}.ot-item-icon{display:inline-flex;color:var(--text-muted);flex:0 0 auto}.ot-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-item.navigable{cursor:pointer}.ot-item.navigable:hover{background:var(--bg-hover);color:var(--text-primary)}.ot-item.is-export{opacity:.6}.ot-item.is-export:hover{opacity:1}.ot-life{flex:0 1 auto;margin-left:4px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid color-mix(in srgb,var(--host-accent) 45%,var(--border));border-radius:9px;color:var(--host-accent);font-size:.65rem;line-height:1.4;padding:0 6px}.ot-life .tb-icon{margin-right:3px;vertical-align:-2px}.ot-life[data-life=replace],.ot-life[data-life=update]{color:var(--text-inverse);background:var(--host-accent)}.ot-item.is-reaction .ot-item-name,.ot-item.is-reaction .ot-item-icon{opacity:.55;font-style:italic}.ot-dest{margin-left:auto;flex:0 0 auto;border:1px solid var(--border);border-radius:9px;background:transparent;color:inherit;font:inherit;font-size:.65rem;line-height:1.4;padding:0 6px;cursor:pointer;white-space:nowrap}span.ot-dest{cursor:default}.ot-dest.is-empty{opacity:0;border-color:transparent}span.ot-dest.is-empty{display:none}.ot-item:hover .ot-dest.is-empty,.ot-collection:hover .ot-dest.is-empty,.ot-dest.is-empty:focus-visible{opacity:.7;border-color:var(--border)}.ot-dest.is-export{border-color:var(--export-accent);color:var(--export-accent)}.ot-collection.active .ot-dest.is-export{color:var(--text-inverse)}.ot-dest.is-viewport{border-style:dashed}.ot-dest-menu{position:fixed;z-index:60;min-width:220px;max-width:320px;padding:4px;display:flex;flex-direction:column;gap:2px;background:var(--overlay-panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ot-dest-option,.ot-dest-goto{width:100%;padding:6px 8px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:inherit;font-size:var(--font-size-sm);text-align:left;cursor:pointer}.ot-dest-option:hover:not(:disabled),.ot-dest-goto:hover{background:var(--bg-hover);color:var(--text-primary)}.ot-dest-option[aria-checked=true]{background:var(--accent);color:var(--text-inverse)}.ot-dest-option:disabled{opacity:.45;cursor:not-allowed}.ot-dest-reason{margin:4px 8px;font-size:var(--font-size-sm);color:var(--text-muted)}.ot-dest-goto{color:var(--accent)}.collection-mosaic{position:absolute;inset:0;z-index:14;overflow-y:auto;padding:60px 16px 16px 240px;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;align-content:start;background-color:var(--checker-a);background-image:linear-gradient(45deg,var(--checker-b) 25%,transparent 25%),linear-gradient(-45deg,var(--checker-b) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--checker-b) 75%),linear-gradient(-45deg,transparent 75%,var(--checker-b) 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0}.collection-mosaic.hidden{display:none}.collection-side{position:absolute;top:60px;right:var(--space-md);bottom:var(--space-md);z-index:16;width:154px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:8px;background:var(--overlay-panel);border:1px solid var(--border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.collection-side.hidden{display:none}.ct-thumb{display:flex;flex-direction:column;gap:4px}.ct-thumb.clickable{cursor:zoom-in}.ct-thumb-img,.ct-thumb-pending{width:100%;aspect-ratio:1 / 1;object-fit:contain;border-radius:6px;background:color-mix(in srgb,var(--shade) 25%,transparent);border:1px solid var(--border);box-shadow:0 2px 8px color-mix(in srgb,var(--shade) 60%,transparent);display:block}.ct-thumb-pending{display:flex;align-items:center;justify-content:center}.ct-thumb-range{align-self:center;padding:1px 6px;border-radius:3px;background:var(--bg-input);border:1px solid var(--border);color:var(--text-muted);font-size:.65rem;font-variant-numeric:tabular-nums;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono);font-weight:500}.ct-thumb-name{font-size:.78rem;font-weight:500;color:var(--on-scrim);text-align:center;text-shadow:0 1px 3px color-mix(in srgb,var(--shade) 90%,transparent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ct-spinner{width:22px;height:22px;border-radius:50%;border:2px solid var(--surface-hover-lg);border-top-color:var(--accent);animation:ct-spin .8s linear infinite}@keyframes ct-spin{to{transform:rotate(360deg)}}.play-bar{position:absolute;left:12px;bottom:12px;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:4px;max-width:calc(100% - 24px);padding:4px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:var(--shadow-sm);color:var(--text-primary);font-size:12px}.play-bar-btn,.play-bar-speed{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:28px;height:26px;padding:0 8px;white-space:nowrap;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--bg-elevated);color:inherit;cursor:pointer}.play-force{display:inline-flex;align-items:center;gap:6px;font-size:12px}.play-force[hidden]{display:none}.play-force input{width:96px}.play-force-value{min-width:54px;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-weight:500}.play-bar-btn:hover:not(:disabled){background:var(--bg-hover)}.play-bar-btn:disabled{opacity:.45;cursor:default}.play-bar[data-phase=idle] .play-bar-btn[data-play=enter]{background:var(--accent);color:var(--text-inverse)}.play-bar-status{padding:0 6px;color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.play-bar-status:empty{display:none}.play-tools{display:flex;align-items:center;gap:2px;padding-left:6px;margin-left:2px;border-left:1px solid var(--border)}.play-tool[aria-pressed=true]{background:var(--accent-light);border-color:var(--accent)}.play-form-host{position:absolute;left:0;bottom:calc(100% + 6px)}.play-form-host:empty,.play-form:empty{display:none}.play-form{display:flex;flex-direction:column;gap:4px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.play-form-row{display:flex;align-items:center;gap:4px}.play-form-name{min-width:64px;color:var(--text-secondary)}.play-form-row input{width:64px}.play-overlay-host{position:relative;display:inline-flex}.play-overlay-menu{position:absolute;left:0;bottom:calc(100% + 10px);white-space:nowrap}.play-overlay-menu[hidden]{display:none}.play-panels{position:absolute;inset:12px 12px 56px;z-index:4;pointer-events:none}.play-panels[hidden]{display:none}.play-panel{position:absolute;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:var(--shadow-sm);color:var(--text-primary);font-size:12px;pointer-events:auto}.play-chronicle{left:0;right:0;bottom:0;max-height:34%}.play-lineage{top:0;right:0;width:300px;max-height:calc(66% - 12px)}.play-panel-header{display:flex;align-items:center;gap:6px;padding:4px 6px;border-bottom:1px solid var(--border)}.play-panel[data-collapsed=true]>:not(.play-panel-header){display:none}.play-panel[data-collapsed=true] .play-panel-header{border-bottom:none}.play-panel-title{flex:1;padding:2px 4px;border:none;background:none;color:inherit;font-weight:600;text-align:left;cursor:pointer}.play-panel-scroll{overflow:auto;min-height:0}.play-panel-note{margin:0;padding:4px 8px;color:var(--text-secondary)}.play-panel-note:empty{display:none}.play-gauge{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;font-family:var(--font-mono);font-weight:500}.play-gauge[data-full=true]{color:var(--warning)}.play-chronicle-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.play-chronicle-table th,.play-chronicle-table td{padding:2px 8px;text-align:right;white-space:nowrap}.play-chronicle-table th:nth-child(2),.play-chronicle-table td:nth-child(2),.play-chronicle-table th:nth-child(3),.play-chronicle-table td:nth-child(3){text-align:left}.play-chronicle-table th{position:sticky;top:0;background:var(--bg-surface);color:var(--text-secondary);font-weight:500}.play-chronicle-table tbody tr:hover{background:var(--bg-hover)}.play-row-btn{display:inline-flex;align-items:center;padding:0 4px;border:none;border-radius:var(--radius-sm);background:none;color:var(--text-secondary);cursor:pointer}.play-row-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.play-tree,.play-tree ul{margin:0;padding-left:14px;list-style:none}.play-tree{padding:4px 6px}.play-tree-node{padding:1px 4px;border:1px solid transparent;border-radius:var(--radius-sm);background:none;color:inherit;font-family:var(--font-mono);font-size:11px;cursor:pointer}.play-tree-node:hover{background:var(--bg-hover)}.play-tree-node[aria-selected=true]{border-color:var(--accent);background:var(--accent-light)}.play-tree-node[data-dead=true]{color:var(--text-muted);text-decoration:line-through}.play-lineage-detail{padding:4px 8px 8px;border-top:1px solid var(--border)}.play-lineage-detail dl{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;margin:0 0 6px}.play-lineage-detail dt{color:var(--text-secondary)}.play-lineage-detail dd{margin:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.play-lineage-actions{display:flex;flex-wrap:wrap;gap:4px}.play-banner{position:absolute;top:12px;left:50%;z-index:6;display:flex;align-items:center;gap:8px;padding:4px 6px 4px 10px;transform:translate(-50%);border:1px solid var(--warning);border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:var(--shadow-sm);color:var(--text-primary);font-size:12px}.play-banner[hidden]{display:none}.side-tab .play-panel-header{flex-wrap:wrap}.side-tab>.play-panel{position:static;flex:1 1 auto;width:auto;max-height:none;min-height:0;border:none;border-radius:0;box-shadow:none}.contract-panel{display:flex;flex-direction:column;gap:6px;padding:8px;color:var(--text-primary);font-size:12px}.contract-panel[hidden]{display:none}.contract-panel-title{padding:2px 0;border:none;background:none;color:var(--host-accent);font-weight:600;text-align:left;cursor:pointer}.contract-section h4{margin:4px 0 2px;color:var(--text-secondary);font-size:11px;font-weight:600;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em}.contract-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;padding:1px 0}.contract-name{padding:0 4px;border:none;border-radius:var(--radius-sm);background:none;color:inherit;font-family:var(--font-mono);cursor:pointer}.contract-name:hover{background:var(--bg-hover)}.contract-detail{color:var(--text-secondary)}.contract-chip{padding:0 6px;border:1px solid var(--border);border-radius:999px;color:var(--text-secondary);font-size:11px}.contract-chip[data-state=trial]{border-color:var(--host-accent);color:var(--host-accent)}.contract-section[data-section=issues] .contract-detail{color:var(--warning)}.contract-trial [aria-pressed=true]{background:var(--accent-light);border-color:var(--accent)}.viewport-perf-lens{position:absolute;left:8px;bottom:26px;z-index:7;min-width:240px;max-width:min(420px,calc(100% - 16px));padding:8px 10px;border:1px solid var(--border-light);border-radius:6px;background:var(--bg-surface);color:var(--text-primary);font:500 12px/1.4 var(--font-mono);font-variant-numeric:tabular-nums;box-shadow:0 2px 10px color-mix(in srgb,var(--shade) 24%,transparent)}.viewport-perf-lens[hidden]{display:none}.viewport-perf-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;font-weight:600}.viewport-perf-close{display:inline-flex;align-items:center;border:none;background:transparent;color:var(--text-muted);font:inherit;font-size:14px;line-height:1;cursor:pointer}.viewport-perf-close:hover{color:var(--text-primary)}.viewport-perf-grid{display:grid;grid-template-columns:auto 1fr;gap:1px 10px;margin:0}.viewport-perf-grid dt{color:var(--text-muted)}.viewport-perf-grid dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-weight:500}.viewport-perf-grid dd.over{color:var(--danger);font-weight:600}.viewport-perf-grid dd.unmeasurable{color:var(--text-muted);font-style:italic}.viewport-perf-kinds{margin-top:2px;color:var(--text-secondary);text-align:right}.viewport-perf-budget{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;padding-top:6px;border-top:1px solid var(--border)}.viewport-perf-budget label{display:flex;align-items:center;gap:4px;color:var(--text-muted)}.viewport-perf-budget input{width:76px;padding:1px 4px;border:1px solid var(--border-light);border-radius:3px;background:var(--bg-input);color:var(--text-primary);font:inherit}.viewport-perf-record{margin-left:auto;padding:2px 8px;border:1px solid var(--accent);border-radius:4px;background:transparent;color:var(--accent);font:inherit;cursor:pointer}.viewport-perf-record:hover{background:var(--accent-subtle)}.ge-root{position:relative;width:100%;height:100%;overflow:hidden;background:var(--bg-primary);background-image:radial-gradient(var(--border) 1px,transparent 1px);background-size:24px 24px;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.ge-world{position:absolute;top:0;left:0;transform-origin:0 0}.ge-links{position:absolute;top:0;left:0;overflow:visible;pointer-events:none;width:1px;height:1px}.ge-link{fill:none;stroke-width:2.5;pointer-events:stroke;cursor:pointer}.ge-link-dragging{pointer-events:none;stroke-dasharray:6 4;opacity:.85}.ge-zones{position:absolute;top:0;left:0;overflow:visible;pointer-events:none;width:1px;height:1px}.ge-zone{stroke-width:1.5;stroke-linejoin:round;pointer-events:none}.ge-return-arcs{position:absolute;top:0;left:0;overflow:visible;pointer-events:none;width:1px;height:1px}.ge-return-arc{cursor:pointer}.ge-return-arc-path{fill:none;stroke:var(--host-accent);stroke-width:1.5;stroke-dasharray:6 5;opacity:.8;pointer-events:none}.ge-return-arc-hit{fill:none;stroke:transparent;stroke-width:12;pointer-events:stroke}.ge-return-arc:hover .ge-return-arc-path{opacity:1;stroke-width:2.5}.ge-return-arc-icon{color:var(--host-accent);overflow:visible;pointer-events:all}.ge-return-arc-label{fill:var(--host-accent);font-size:12px;font-weight:600;text-anchor:middle;pointer-events:all}.ge-nodes,.ge-comments{position:absolute;top:0;left:0}.ge-comment{--cc: var(--comment-slate);position:absolute;display:flex;flex-direction:column;min-width:140px;min-height:80px;border:1px solid color-mix(in srgb,var(--cc) 55%,var(--border));border-radius:var(--radius-md);background:color-mix(in srgb,var(--cc) 9%,var(--bg-surface));box-shadow:var(--shadow-sm);overflow:hidden}.ge-comment-c-slate{--cc: var(--comment-slate)}.ge-comment-c-blue{--cc: var(--comment-blue)}.ge-comment-c-green{--cc: var(--comment-green)}.ge-comment-c-amber{--cc: var(--comment-amber)}.ge-comment-c-red{--cc: var(--comment-red)}.ge-comment-c-violet{--cc: var(--comment-violet)}.ge-comment-header{display:flex;align-items:center;gap:6px;height:22px;padding:0 6px;background:color-mix(in srgb,var(--cc) 24%,var(--bg-elevated));border-bottom:1px solid color-mix(in srgb,var(--cc) 35%,transparent);cursor:grab;flex:0 0 auto}.ge-comment-grip{display:inline-flex;align-items:center;color:color-mix(in srgb,var(--cc) 70%,var(--text-muted))}.ge-comment-spacer{flex:1 1 auto}.ge-comment-color,.ge-comment-delete{border:none;background:transparent;color:var(--text-muted);line-height:1;cursor:pointer;padding:0 2px;flex:0 0 auto;display:inline-flex;align-items:center}.ge-comment-color{color:var(--cc)}.ge-comment-color:hover{filter:brightness(1.25)}.ge-comment-delete:hover{color:var(--danger)}.ge-comment-text{flex:1 1 auto;width:100%;box-sizing:border-box;resize:none;border:none;outline:none;background:transparent;color:var(--text-primary);padding:7px 9px;font:inherit;font-size:.8125rem;line-height:1.4;white-space:pre-wrap;overflow:auto}.ge-comment-text::placeholder{color:var(--text-muted)}.ge-comment-resize{position:absolute;right:1px;bottom:1px;width:14px;height:14px;cursor:nwse-resize;background-image:linear-gradient(135deg,transparent 0 40%,var(--text-muted) 40% 50%,transparent 50% 65%,var(--text-muted) 65% 75%,transparent 75%);opacity:.6}.ge-comment-resize:hover{opacity:1}.ge-node{position:absolute;min-width:180px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--font-size-base);cursor:default}.ge-node.ge-node-zoned{border-color:var(--ge-zone-color, var(--border));box-shadow:0 0 0 1.5px var(--ge-zone-color, transparent),var(--shadow-md)}.ge-node.ge-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 6px 20px var(--accent-light)}.ge-node.ge-node--computing{border-color:var(--ge-computing);box-shadow:0 0 0 2px var(--ge-computing),0 0 16px 2px var(--ge-computing-glow),var(--shadow-md);animation:ge-computing-breathe 1.1s ease-in-out infinite}@keyframes ge-computing-breathe{0%,to{box-shadow:0 0 0 2px var(--ge-computing),0 0 10px 1px var(--ge-computing-glow-soft),var(--shadow-md)}50%{box-shadow:0 0 0 2px var(--ge-computing),0 0 22px 5px var(--ge-computing-glow-strong),var(--shadow-md)}}.ge-node.ge-node--ran{animation:ge-ran-pulse .45s ease-out}@keyframes ge-ran-pulse{0%{border-color:var(--ge-computing);box-shadow:0 0 0 2px var(--ge-computing),0 0 18px 3px var(--ge-computing-glow),var(--shadow-md)}to{border-color:var(--border);box-shadow:0 0 0 0 var(--ge-computing-glow-none),0 0 0 0 var(--ge-computing-glow-none),var(--shadow-md)}}.ge-node.ge-node--computing.ge-node--ran{animation:ge-computing-breathe 1.1s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.ge-node.ge-node--computing,.ge-node.ge-node--computing.ge-node--ran{animation:none}.ge-node.ge-node--ran{animation:ge-ran-pulse .45s linear}}.ge-rubberband{position:absolute;border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent);pointer-events:none;z-index:50}.ge-root.ge-panning{cursor:grabbing}.ge-root.ge-drop-files:after{content:"";position:absolute;inset:4px;pointer-events:none;border:2px dashed var(--accent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--accent) 8%,transparent);z-index:60}.ge-node-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--bg-elevated);border-radius:var(--radius-md) var(--radius-md) 0 0;cursor:grab}.ge-node-title{font-weight:600;color:var(--text-primary);flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ge-node-title-editable:hover{cursor:text;text-decoration:underline dotted currentcolor;text-underline-offset:3px}.ge-node-title-input{flex:1 1 auto;min-width:0;cursor:text;font:inherit;font-weight:600;color:var(--text-primary);background:var(--bg-surface);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:0 4px;margin:-1px 0;outline:none}.ge-node-title-input::placeholder{color:var(--text-muted);font-weight:400}.ge-node-backend{flex:0 0 auto;margin:0 6px;padding:1px 5px;border-radius:4px;font-size:.6rem;font-weight:700;letter-spacing:.04em;line-height:1.35;-webkit-user-select:none;user-select:none}.ge-node-backend-wasm{background:var(--success-muted);color:var(--success)}.ge-node-backend-ts{background:var(--warning-muted);color:var(--warning)}.ge-node-backend-gpu{background:color-mix(in srgb,var(--highlight) 16%,transparent);color:var(--highlight)}.ge-node-backend-cpu{background:var(--surface-hover-md);color:var(--text-secondary)}.ge-node-lobes{flex:0 0 auto;margin-left:4px;padding:1px 5px;border-radius:999px;font-size:.6rem;font-variant-numeric:tabular-nums;background:var(--success-muted);color:var(--success);-webkit-user-select:none;user-select:none;white-space:nowrap;font-family:var(--font-mono);font-weight:500}.ge-node-timing{flex:0 0 auto;margin-left:4px;font-size:.6rem;font-variant-numeric:tabular-nums;color:var(--text-secondary);opacity:.75;-webkit-user-select:none;user-select:none;white-space:nowrap;font-family:var(--font-mono);font-weight:500}.ge-node-timing.ge-timing-pending{width:9px;height:9px;align-self:center;border-radius:50%;border:1.5px solid var(--accent);border-top-color:transparent;opacity:.9;animation:spin .7s linear infinite}@media(prefers-reduced-motion:reduce){.ge-node-timing.ge-timing-pending{animation:none}}.ge-node-warnings{flex:0 0 auto;display:inline-flex;align-items:center;gap:3px;margin-left:4px;border:none;border-radius:4px;padding:1px 5px;background:var(--warning-muted);color:var(--warning);font-size:.62rem;font-weight:600;line-height:1.3;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.ge-node-warnings[hidden]{display:none}.ge-node-warnings:hover{background:color-mix(in srgb,var(--warning) 30%,transparent)}.ge-node-warnings-panel{position:absolute;left:0;top:calc(100% + 4px);z-index:30;min-width:220px;max-width:340px;max-height:220px;overflow-y:auto;padding:6px;border:1px solid color-mix(in srgb,var(--warning) 55%,transparent);border-radius:6px;background:var(--bg-elevated);box-shadow:var(--shadow-lg);font-size:.68rem;line-height:1.35;color:var(--text-primary)}.ge-node-warnings-row{padding:3px 4px;border-radius:4px}.ge-node-warnings-row+.ge-node-warnings-row{border-top:1px solid var(--separator-on-elevated)}.ge-node-preview{border:none;background:transparent;color:var(--text-muted);line-height:1;cursor:pointer;padding:0 2px;flex:0 0 auto;display:inline-flex;align-items:center}.ge-node-preview:hover{color:var(--text-primary)}.ge-node-preview.ge-node-preview-active{color:var(--accent);filter:drop-shadow(0 0 4px var(--accent))}.ge-node-values{border:none;background:transparent;color:var(--text-muted);line-height:1;cursor:pointer;padding:0 2px;flex:0 0 auto;display:inline-flex;align-items:center}.ge-node-values:hover{color:var(--text-primary)}.ge-node-values.ge-node-preview-active{color:var(--accent);filter:drop-shadow(0 0 4px var(--accent))}.ge-node-delete{border:none;background:transparent;color:var(--text-muted);line-height:1;cursor:pointer;padding:0 2px;display:inline-flex;align-items:center}.ge-node-delete:hover{color:var(--danger)}.ge-node-settings{border:none;background:transparent;color:var(--text-muted);line-height:1;cursor:pointer;padding:0 2px;flex:0 0 auto;display:inline-flex;align-items:center}.ge-node-docs,.ge-palette-docs{display:inline-flex;align-items:center;justify-content:center}.ge-node-settings:hover{color:var(--text-primary)}.ge-node-commit-stale{color:var(--warning)}.ge-node-commit-stale:hover{color:var(--warning);filter:brightness(1.25)}.ge-node-commit:disabled{opacity:.4;cursor:default}.ge-settings-title{font-size:.7rem;font-family:var(--font-mono);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:4px 10px 6px}.ge-flags-item{display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-base);cursor:pointer;white-space:nowrap}.ge-flags-item:hover{background:var(--bg-surface)}.ge-flags-item input{accent-color:var(--accent);cursor:pointer}.ge-settings-panel{min-width:250px;max-width:340px;max-height:60vh;overflow-y:auto;padding-bottom:6px}.ge-settings-group+.ge-settings-group,.ge-settings-panel .ge-param-row:first-of-type{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}.ge-settings-group-title{font-size:.68rem;font-family:var(--font-mono);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:2px 10px 4px}.ge-settings-panel .ge-param-row{padding:3px 10px}.ge-settings-panel .ge-param-label{min-width:96px}.ge-floorplan-panel{position:fixed;z-index:1000;display:flex;flex-direction:column;width:440px;height:360px;min-width:260px;min-height:220px;max-width:92vw;max-height:82vh;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;resize:both;-webkit-user-select:none;user-select:none}.ge-fp-header{display:flex;align-items:center;justify-content:space-between;padding:6px 6px 6px 12px;border-bottom:1px solid var(--border);flex:0 0 auto;cursor:move;touch-action:none}.ge-fp-title{font-size:var(--font-size-sm);font-weight:600;letter-spacing:.02em;color:var(--text-primary)}.ge-fp-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:7px 10px;border-bottom:1px solid var(--border);flex:0 0 auto}.ge-fp-toggle{padding:3px 10px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.ge-fp-toggle:hover{background:var(--bg-hover)}.ge-fp-toggle.is-on{background:var(--accent);border-color:var(--accent);color:var(--text-inverse)}.ge-fp-close{border:none;background:transparent;color:var(--text-muted);line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0;width:24px;height:24px;border-radius:var(--radius-sm);cursor:pointer}.ge-fp-close:hover{background:var(--surface-hover);color:var(--text-primary)}.ge-fp-chips{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:7px 10px;max-height:96px;overflow-y:auto;border-bottom:1px solid var(--border);flex:0 0 auto}.ge-fp-chip{display:inline-flex;flex-direction:column;align-items:center;line-height:1.15;padding:3px 9px;border:1px solid var(--border-light);border-radius:999px;background:var(--bg-surface);color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.ge-fp-chip:hover{background:var(--bg-hover)}.ge-fp-chip.is-on{background:var(--accent);border-color:var(--accent);color:var(--text-inverse)}.ge-fp-chip-label{font-weight:600}.ge-fp-chip-sub{font-size:.62rem;opacity:.72}.ge-fp-chip-sep{width:1px;align-self:stretch;margin:2px 3px;background:var(--border)}.ge-fp-canvas-wrap{position:relative;flex:1 1 auto;min-height:0;background:var(--bg-input)}.ge-fp-canvas{display:block;width:100%;height:100%}.ge-fp-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:var(--font-size-sm);pointer-events:none}.ge-node-body{padding:6px 0}.ge-param-row{display:flex;flex-direction:row;align-items:center;gap:12px;padding:5px 10px}.ge-param-label{font-size:.7rem;font-family:var(--font-mono);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);white-space:nowrap;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.ge-field-select{width:auto;min-width:104px;flex:0 0 auto;background:var(--bg-input);border:1px solid var(--border-light);border-radius:4px;color:var(--text-primary);padding:3px 6px;font:inherit;font-size:.8125rem;cursor:pointer}.ge-field-select:focus{outline:1px solid var(--accent)}.ge-field-text{width:auto;min-width:104px;flex:0 0 auto;background:var(--bg-input);border:1px solid var(--border-light);border-radius:4px;color:var(--text-primary);padding:3px 6px;font:inherit;font-size:.8125rem}.ge-field-text:focus{outline:1px solid var(--accent)}.ge-field-attr-wrap{display:flex;flex-direction:column;gap:3px;min-width:0}.ge-field-attr{display:inline-flex;align-items:stretch;gap:0}.ge-field-attr-hint{color:var(--text-muted);font-size:.68rem;line-height:1.35;white-space:normal}.ge-field-attr-input{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none;font-family:var(--font-mono)}.ge-field-attr-browse{flex:0 0 auto;background:var(--bg-input);border:1px solid var(--border-light);border-radius:0 4px 4px 0;color:var(--text-muted);font:inherit;line-height:1;padding:0 4px;cursor:pointer;display:inline-flex;align-items:center}.ge-field-attr-browse:hover{color:var(--text-primary);border-color:var(--accent)}.ge-param-row-expr,.ge-param-row-rules{flex-direction:column;align-items:stretch;gap:4px}.ge-rules-editor{display:flex;flex-direction:column;gap:4px;width:100%}.ge-rules-list{display:flex;flex-direction:column;gap:4px}.ge-rules-row{display:flex;align-items:center;gap:4px}.ge-rules-target{flex:1;min-width:0}.ge-rules-policy{background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:.7rem;padding:2px 4px}.ge-rules-policy:focus{outline:1px solid var(--accent)}.ge-rules-remove{background:none;border:1px solid transparent;border-radius:4px;color:var(--text-muted);line-height:1;padding:2px 4px;display:inline-flex;align-items:center;cursor:pointer}.ge-rules-remove:hover{color:var(--text-primary);border-color:var(--border)}.ge-rules-add{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;background:var(--bg-input);border:1px dashed var(--border);border-radius:4px;color:var(--text-muted);font-size:.7rem;padding:2px 8px;cursor:pointer}.ge-rules-add:hover{color:var(--text-primary);border-color:var(--accent)}.ge-expr-editor{position:relative;display:flex;width:100%;height:108px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;background:var(--bg-input);overflow:hidden}.ge-expr-editor:focus-within{outline:1px solid var(--accent)}.ge-expr-gutter{flex:0 0 auto;overflow:hidden;box-sizing:border-box;padding:6px 6px 6px 8px;text-align:right;background:color-mix(in srgb,var(--text-muted) 7%,transparent);border-right:1px solid var(--border);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--ge-code-font, .78rem);line-height:1.45;-webkit-user-select:none;user-select:none}.ge-expr-lineno{white-space:pre;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-weight:500}.ge-expr-lineno-error{color:var(--danger);font-weight:700}.ge-expr-lineno-warn{color:var(--warning);font-weight:700}.ge-expr-lineno-active{color:var(--text-secondary);font-weight:600}.ge-expr-viewport{position:relative;flex:1 1 auto;min-width:0;overflow:hidden}.ge-expr-activeline{position:absolute;left:0;right:0;z-index:0;pointer-events:none;background:color-mix(in srgb,var(--accent) 6%,transparent)}.ge-expr-highlight,.ge-expr-input{position:absolute;inset:0;margin:0;box-sizing:border-box;padding:6px 8px;border:0;font-family:var(--font-mono);font-size:var(--ge-code-font, .78rem);line-height:1.45;letter-spacing:normal;tab-size:2;white-space:pre;overflow-wrap:normal;word-break:normal}.ge-expr-highlight{z-index:1;overflow:hidden;pointer-events:none;color:var(--text-primary);background:transparent}.ge-expr-highlight code{font:inherit;white-space:inherit;tab-size:inherit;display:inline;margin:0;padding:0;border:0;border-radius:0;background:none;color:inherit;letter-spacing:inherit;word-spacing:inherit;vertical-align:baseline}.ge-expr-input{z-index:2;resize:none;color:transparent;background:transparent;caret-color:var(--text-primary);overflow:auto;scrollbar-width:thin}.ge-expr-input::placeholder{color:var(--text-muted)}.ge-expr-input:focus{outline:none}.ge-has-minimap .ge-expr-highlight,.ge-has-minimap .ge-expr-input,.ge-has-minimap .ge-expr-activeline{right:44px}.ge-expr-minimap{position:absolute;top:0;right:0;bottom:0;width:44px;z-index:3;cursor:pointer;background:color-mix(in srgb,var(--bg-input) 90%,var(--text-primary));border-left:1px solid var(--border-light)}.ge-expr-minimap[hidden]{display:none}.ge-expr-minimap-canvas{display:block;width:100%;height:100%}.ge-expr-minimap-thumb{position:absolute;left:0;right:0;background:color-mix(in srgb,var(--accent) 16%,transparent);border-top:1px solid color-mix(in srgb,var(--accent) 32%,transparent);border-bottom:1px solid color-mix(in srgb,var(--accent) 32%,transparent);pointer-events:none}.ge-expr-status{position:absolute;right:4px;bottom:3px;z-index:3;pointer-events:none;padding:0 5px;border-radius:999px;font-size:.62rem;font-weight:700;line-height:1.55;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:3px}.ge-expr-status[hidden]{display:none}.ge-expr-fix{position:absolute;right:8px;bottom:28px;padding:1px 8px;font-size:11px;line-height:16px;border:1px solid var(--border);border-radius:9px;background:var(--bg-input);color:var(--text-primary);cursor:pointer}.ge-expr-fix:hover{border-color:var(--accent);color:var(--accent)}.ge-expr-status-ok{color:var(--success);background:color-mix(in srgb,var(--success) 15%,var(--bg-input))}.ge-expr-status-error{color:var(--danger);background:color-mix(in srgb,var(--danger) 15%,var(--bg-input))}.ge-expr-status-warn{color:var(--warning);background:color-mix(in srgb,var(--warning) 15%,var(--bg-input))}.ge-tok-error{text-decoration-line:underline;text-decoration-style:wavy;text-decoration-color:var(--danger);text-decoration-skip-ink:none;text-underline-offset:2px}.ge-tok-warn{text-decoration-line:underline;text-decoration-style:wavy;text-decoration-color:var(--warning);text-decoration-skip-ink:none;text-underline-offset:2px}.ge-tok-match{background:color-mix(in srgb,var(--accent) 22%,transparent);border-radius:2px}.ge-tok-occurrence{background:color-mix(in srgb,var(--warning) 26%,transparent);border-radius:2px}.ge-tok-find{background:color-mix(in srgb,var(--warning) 32%,transparent);border-radius:2px}.ge-tok-find-current{background:color-mix(in srgb,var(--warning) 62%,transparent);font-weight:700}.ge-expr-find{position:absolute;top:3px;right:3px;z-index:4;display:flex;flex-wrap:wrap;align-items:center;gap:2px;max-width:calc(100% - 6px);padding:3px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:6px;box-shadow:var(--shadow-md)}.ge-expr-find[hidden]{display:none}.ge-expr-find-input{width:96px;min-width:0;box-sizing:border-box;padding:2px 5px;border:1px solid var(--border);border-radius:4px;background:var(--bg-input);color:var(--text-primary);font-family:var(--font-mono);font-size:.72rem}.ge-expr-find-input:focus{outline:1px solid var(--accent)}.ge-expr-find-count{min-width:32px;text-align:center;font-size:.66rem;color:var(--text-muted);font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-weight:500}.ge-expr-find-btn{border:0;background:transparent;cursor:pointer;color:var(--text-secondary);border-radius:4px;padding:2px 4px;line-height:1;display:inline-flex;align-items:center}.ge-expr-find-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.ge-expr-complete{position:fixed;z-index:var(--z-toast);max-width:360px;max-height:240px;overflow-y:auto;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:6px;box-shadow:var(--shadow-lg);font-size:.78rem;scrollbar-width:thin}.ge-expr-complete ul{list-style:none;margin:0;padding:3px}.ge-expr-ci{display:flex;align-items:center;gap:7px;padding:3px 6px;border-radius:4px;cursor:pointer;white-space:nowrap}.ge-expr-ci-sel{background:var(--accent-light)}.ge-expr-ci:hover{background:var(--surface-hover)}.ge-expr-ci-kind{flex:0 0 auto;width:15px;height:15px;display:grid;place-items:center;border-radius:3px;font-family:var(--font-mono);font-size:.66rem;font-weight:700;color:var(--text-inverse)}.ge-expr-ci-function{background:var(--code-func)}.ge-expr-ci-keyword{background:var(--code-keyword)}.ge-expr-ci-type{background:var(--code-type)}.ge-expr-ci-global,.ge-expr-ci-attribute{background:var(--code-attr)}.ge-expr-ci-constant{background:var(--code-number)}.ge-expr-ci-variable{background:var(--text-muted)}.ge-expr-ci-snippet{background:var(--success)}.ge-expr-ci-label{flex:0 1 auto;color:var(--text-primary);font-family:var(--font-mono)}.ge-expr-ci-detail{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;color:var(--text-muted);font-family:var(--font-mono);text-align:right}.ge-expr-sig{position:fixed;z-index:var(--z-toast);max-width:380px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:6px;box-shadow:var(--shadow-md);padding:5px 8px;font-size:.76rem;pointer-events:none}.ge-expr-sig-line{font-family:var(--font-mono);color:var(--text-primary);white-space:pre-wrap}.ge-expr-sig-active{color:var(--accent);font-weight:700}.ge-expr-sig-doc{margin-top:3px;color:var(--text-secondary)}.ge-expr-ramp-preview{margin-top:5px;padding-top:5px;border-top:1px solid var(--border-light)}.ge-expr-ramp-label{font-size:.68rem;color:var(--text-secondary);margin-bottom:3px}.ge-expr-ramp-canvas{display:block;border:1px solid var(--border-light);border-radius:4px;background:var(--bg-input)}@keyframes ge-flash-pulse{0%{box-shadow:0 0 0 0 var(--accent-glow)}to{box-shadow:0 0 0 7px transparent}}.ge-flash{animation:ge-flash-pulse 1s ease-out}.ge-expr-headline{display:flex;align-items:center;gap:6px;min-height:18px}.ge-expr-headline .ge-param-label{margin:0}.ge-expr-tools{display:flex;gap:2px;flex:0 0 auto;margin-left:auto}.ge-expr-tool{min-width:20px;height:18px;display:grid;place-items:center;padding:0 3px;border:0;border-radius:4px;background:color-mix(in srgb,var(--bg-input) 72%,transparent);color:var(--text-muted);line-height:1;cursor:pointer}.ge-expr-tool[hidden]{display:none}.ge-expr-tool:hover{color:var(--text-primary);background:var(--surface-hover)}.ge-expr-tool-active{color:var(--accent);background:var(--accent-light)}.ge-expr-wrap .ge-expr-highlight,.ge-expr-wrap .ge-expr-input{white-space:pre-wrap;overflow-wrap:anywhere;overflow-x:hidden}.ge-expr-wrap .ge-expr-gutter,.ge-expr-wrap .ge-expr-activeline{display:none}.ge-expr-modal-backdrop{position:fixed;inset:0;z-index:var(--z-modal);background:var(--overlay-md);display:grid;place-items:center}.ge-expr-modal{display:flex;flex-direction:column;width:min(880px,86vw);height:min(620px,82vh);background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);overflow:hidden}.ge-expr-modal-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-elevated);border-bottom:1px solid var(--border)}.ge-expr-modal-title{font-weight:600;color:var(--text-primary)}.ge-expr-modal-close{border:0;background:transparent;cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0;color:var(--text-muted);width:26px;height:26px;border-radius:6px}.ge-expr-modal-close:hover{background:var(--surface-hover);color:var(--text-primary)}.ge-expr-modal-body{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;padding:12px;min-height:0}.ge-expr-diff-btn{margin-right:auto;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;padding:2px 10px;border-radius:5px;font-size:.82rem}.ge-expr-diff-btn:hover{background:var(--surface-hover)}.ge-expr-diff{flex:0 0 auto;max-height:30%;overflow-y:auto;border-top:1px solid var(--border);padding:8px 2px 2px;font-size:.82rem;color:var(--text-muted);display:flex;flex-direction:column;gap:6px}.ge-expr-diff-note{color:var(--text-primary)}.ge-expr-diff-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.ge-expr-diff-name{color:var(--text-primary);font-weight:600;font-family:var(--font-mono)}.ge-expr-diff-domain{opacity:.75}.ge-expr-diff-what{font-variant-numeric:tabular-nums}.ge-expr-diff-worst{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:4px}.ge-expr-diff-chip{border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-family:var(--font-mono);font-size:.76rem;white-space:nowrap}.ge-modules-body{flex-direction:row;gap:12px}.ge-modules-side{flex:0 0 200px;display:flex;flex-direction:column;gap:8px;min-height:0}.ge-modules-list{flex:1 1 auto;overflow-y:auto;border:1px solid var(--border);border-radius:8px;padding:4px}.ge-modules-row{display:flex;align-items:center;gap:4px;border-radius:6px;padding:2px 2px 2px 6px}.ge-modules-row:hover{background:var(--surface-hover)}.ge-modules-row.is-selected{background:var(--accent-light)}.ge-modules-name{flex:1 1 auto;border:0;background:transparent;cursor:pointer;text-align:left;padding:4px 2px;font-family:var(--font-mono);font-size:.85rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ge-modules-name-edit{width:100%;font-family:var(--font-mono);font-size:.85rem;padding:3px 4px;border:1px solid var(--border-light);border-radius:4px;background:var(--bg-surface);color:var(--text-primary)}.ge-modules-del{flex:0 0 auto;border:0;background:transparent;cursor:pointer;color:var(--text-muted);width:20px;height:20px;border-radius:4px;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0}.ge-modules-del:hover{background:var(--surface-hover);color:var(--text-primary)}.ge-modules-main{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;min-width:0;min-height:0}.ge-modules-empty{margin:auto;max-width:46ch;text-align:center;color:var(--text-muted);font-size:.85rem;line-height:1.5}.ge-expr-editor-fill{flex:1 1 auto;height:auto;min-height:0}.ge-tok-comment{color:var(--code-comment);font-style:italic}.ge-tok-string{color:var(--code-string)}.ge-tok-number{color:var(--code-number)}.ge-tok-keyword{color:var(--code-keyword);font-weight:600}.ge-tok-type{color:var(--code-type)}.ge-tok-func{color:var(--code-func)}.ge-tok-attr{color:var(--code-attr);font-weight:600}.ge-tok-global{color:var(--code-global)}.ge-tok-channel{color:var(--code-channel)}.ge-socket-row{display:flex;align-items:center;gap:8px;padding:3px 10px;position:relative;min-height:24px}.ge-output-row{justify-content:flex-end;text-align:right}.ge-socket-label{color:var(--text-secondary);white-space:nowrap}.ge-socket-label-preview{cursor:pointer}.ge-socket-label-preview:hover{color:var(--accent);text-decoration:underline dotted;text-underline-offset:2px}.ge-socket-label-renamable{cursor:text}.ge-socket-label-renamable:hover{text-decoration:underline dotted;text-underline-offset:3px;text-decoration-color:var(--text-muted)}.ge-socket-rename{font:inherit;color:var(--text-primary);background:transparent;border:none;border-bottom:1px solid var(--accent);border-radius:0;padding:0;outline:none;min-width:40px;max-width:140px}.ge-pin{width:12px;height:12px;border-radius:50%;border:2px solid var(--bg-surface);box-shadow:0 0 0 1px var(--border);cursor:crosshair;flex:0 0 auto}.ge-pin-input{margin-left:-16px}.ge-pin-output{margin-right:-16px}.ge-pin:hover{transform:scale(1.25)}.ge-pin-multi{position:relative;border:none;box-shadow:none;background:transparent;align-self:center}.ge-pin-multi:hover{transform:none}.ge-pin-multi:before{content:"";position:absolute;inset:-8px -3px}.ge-pin-fill{position:absolute;inset:-2px;border-radius:8px;background:color-mix(in srgb,var(--shade) 30%,transparent);border:2px solid var(--bg-surface);box-shadow:0 0 0 1px var(--border);pointer-events:none}.ge-pin-bead{position:absolute;left:0;width:12px;height:12px;border-radius:50%;background:var(--ge-pin-color, currentColor);box-shadow:0 0 0 1px color-mix(in srgb,var(--shade) 45%,transparent);transition:top .11s ease}.ge-pin-hole{position:absolute;left:0;width:12px;height:12px;border-radius:50%;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--ink) 30%,transparent);transition:top .11s ease;pointer-events:none}.ge-pin-multi-empty .ge-pin-bead{pointer-events:none}.ge-pin-multi:not(.ge-pin-multi-empty) .ge-pin-bead:hover{box-shadow:0 0 0 2px var(--bg-surface),0 0 0 3px color-mix(in srgb,var(--ink) 55%,transparent)}.ge-pin-bead-replace{box-shadow:0 0 0 2px var(--bg-surface),0 0 0 4px var(--accent)}.ge-field{margin-left:auto;display:flex;gap:4px}.ge-field-vec3{flex-direction:row;align-items:center;gap:3px;flex:1 1 auto;min-width:0;justify-content:flex-end}.ge-field-vec3 .ge-axis{flex:1 1 0;min-width:0;gap:0}.ge-node .ge-field-vec3 .ge-axis-tag{align-self:stretch;width:3px;flex:0 0 3px;font-size:0;border-radius:4px 0 0 4px}.ge-field-vec3 .ge-field-number{width:100%;min-width:48px;padding:2px 4px;-moz-appearance:textfield;appearance:textfield}.ge-node .ge-field-vec3 .ge-field-number{border-left:none;border-radius:0 4px 4px 0}.ge-field-vec3 .ge-field-number::-webkit-inner-spin-button,.ge-field-vec3 .ge-field-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ge-axis{display:flex;align-items:center;gap:4px}.ge-axis-tag{font-size:.7rem;width:14px;text-align:center;border-radius:3px;color:var(--text-inverse);font-weight:700}.ge-axis-x{background:var(--axis-x)}.ge-axis-y{background:var(--axis-y)}.ge-axis-z{background:var(--axis-z)}.ge-axis-w,.ge-axis-a{background:var(--axis-w)}.ge-field-number{width:70px;background:var(--bg-input);border:1px solid var(--border-light);border-radius:4px;color:var(--text-primary);padding:2px 6px;font:inherit;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500;font-size:.8125rem}.ge-field-number{cursor:ew-resize}.ge-field-number:focus{outline:1px solid var(--accent);cursor:text}.ge-field-number.ge-scrubbing{outline:1px solid var(--accent)}.ge-field-slider{align-items:center;gap:6px;width:100%}.ge-slider-range{flex:1 1 auto;min-width:70px;height:14px;accent-color:var(--accent);cursor:ew-resize}.ge-field-slider .ge-field-number{flex:0 0 auto}.ge-field-stepper{align-items:center;gap:4px;width:100%}.ge-stepper-btn{flex:0 0 auto;width:22px;height:22px;padding:0;border:1px solid var(--border-light);border-radius:4px;background:var(--bg-input);color:var(--text-primary);font:inherit;font-size:.875rem;line-height:1;cursor:pointer}.ge-stepper-btn:hover:not(:disabled){border-color:var(--accent)}.ge-stepper-btn:disabled{opacity:.35;cursor:default}.ge-field-stepper .ge-field-number{flex:1 1 auto;min-width:0;text-align:center}.ge-field-segmented{display:flex;flex-wrap:wrap;gap:3px;width:100%}.ge-segmented-btn{flex:1 1 auto;min-width:0;padding:3px 8px;overflow:hidden;border:1px solid var(--border-light);border-radius:4px;background:var(--bg-input);color:var(--text-muted);font:inherit;font-size:.8125rem;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.ge-segmented-btn:hover{border-color:var(--accent)}.ge-segmented-btn.is-on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--text-primary)}.ge-field-color{align-items:center;width:100%}.ge-field-color4{align-items:center;gap:4px;width:100%}.ge-field-color4 .ge-field-color{flex:1 1 auto}.ge-color-swatch{flex:1 1 auto;min-width:64px;height:24px;padding:1px;border:1px solid var(--border);border-radius:4px;background:var(--bg-input);cursor:pointer}.ge-color-swatch:focus{outline:1px solid var(--accent)}.ge-input-connected .ge-socket-label{color:var(--text-muted)}.ge-menu{position:fixed;z-index:1000;min-width:150px;padding:4px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);-webkit-user-select:none;user-select:none}.ge-menu-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 10px;border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-base);cursor:pointer;white-space:nowrap}.ge-menu-item:hover,.ge-menu-item.ge-submenu-open{background:var(--accent);color:var(--text-inverse)}.ge-menu-caret{display:inline-flex;align-items:center;opacity:.7}.ge-field-curve{flex-direction:column;align-items:stretch;gap:4px;width:100%;margin-top:2px}.ge-field-curve{min-width:168px}.ge-field-curves{flex-direction:column;align-items:stretch;gap:4px;width:100%;min-width:184px;margin-top:2px}.ge-curve-canvas{display:block;width:100%;height:auto;aspect-ratio:21 / 13;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;cursor:crosshair}.ge-plot-canvas{touch-action:none}.ge-plot-canvas:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.ge-curve-interp{align-self:flex-end;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);font:inherit;font-size:.72rem;padding:1px 8px;cursor:pointer}.ge-curve-interp:hover{color:var(--text-primary);border-color:var(--accent)}.ge-field-profile{flex-direction:column;align-items:stretch;gap:4px;width:100%;margin-top:2px;min-width:168px}.ge-profile-canvas{display:block;width:100%;height:auto;aspect-ratio:1 / 1;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;cursor:crosshair}.ge-field-levels,.ge-field-gradient{flex-direction:column;align-items:stretch;gap:4px;width:100%;margin-top:2px}.ge-field-levels{min-width:184px}.ge-field-gradient{min-width:224px}.ge-channel-tabs{display:flex;gap:3px}.ge-channel-tab{flex:1;background:var(--bg-input);border:1px solid var(--border);border-radius:3px;color:var(--text-secondary);font:inherit;font-size:.7rem;padding:1px 0;cursor:pointer}.ge-channel-tab.active{color:var(--text-primary);border-color:var(--ch, var(--accent));box-shadow:inset 0 -2px 0 var(--ch, var(--accent))}.ge-levels-canvas,.ge-gradient-canvas{display:block;width:100%;height:70px;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;cursor:pointer;touch-action:none}.ge-gradient-canvas{height:54px}.ge-gradient-controls{display:flex;align-items:center;gap:4px}.ge-gradient-color{width:26px;height:20px;padding:0;border:1px solid var(--border);border-radius:3px;background:none;cursor:pointer}.ge-gradient-alpha{flex:1;min-width:0}.ge-gradient-preset{flex:1.2;min-width:0}.ge-gradient-blend{display:flex;align-items:center;gap:4px;margin-top:4px}.ge-gradient-blend select{flex:1;min-width:0}.ge-node-widget{padding:4px 10px 6px}.ge-image-node{display:flex;flex-direction:column;gap:6px;width:100%}.ge-image-canvas{display:block;width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:4px}.ge-image-empty{display:flex;align-items:center;justify-content:center;min-height:96px;background:var(--bg-input);border:1px dashed var(--border);border-radius:4px;color:var(--text-muted);font-size:.75rem}.ge-image-range{align-self:center;padding:1px 6px;border-radius:3px;background:var(--bg-input);border:1px solid var(--border);color:var(--text-muted);font-size:.65rem;font-variant-numeric:tabular-nums;white-space:nowrap;font-family:var(--font-mono);font-weight:500}.ge-image-name{font-size:.7rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:.9rem}.ge-image-actions{display:flex;gap:6px}.ge-image-actions .btn{flex:1}.ge-shader-preview{display:flex;justify-content:center;width:100%}.ge-shader-preview-canvas{display:block;width:100%;aspect-ratio:1;background:var(--bg-input);border:1px solid var(--border);border-radius:50%}.ge-uv-view{position:relative;width:100%}.ge-uv-canvas{display:block;width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;touch-action:none;cursor:grab}.ge-uv-canvas.ge-uv-panning{cursor:grabbing}.ge-uv-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.75rem;pointer-events:none}.ge-uv-recenter{position:absolute;top:6px;right:6px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;padding:0;background:color-mix(in srgb,var(--bg-elevated) 70%,transparent);border:1px solid var(--border);border-radius:4px;color:var(--text-muted);line-height:1;cursor:pointer;opacity:.5}.ge-uv-recenter:hover{opacity:1;color:var(--text-primary);border-color:var(--accent)}.ge-ramp-editor{display:flex;flex-direction:column;gap:8px;width:100%}.ge-ramp-empty{display:flex;align-items:center;justify-content:center;min-height:60px;background:var(--bg-input);border:1px dashed var(--border);border-radius:4px;color:var(--text-muted);font-size:.75rem}.ge-ramp-block{display:flex;flex-direction:column;gap:4px}.ge-ramp-head{display:flex;align-items:center;gap:6px}.ge-ramp-name{flex:1;font-size:.72rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ge-ramp-interp{display:inline-flex;gap:2px}.ge-ramp-interp-btn{display:inline-flex;align-items:center;padding:1px 3px;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text-muted);cursor:pointer}.ge-ramp-interp-btn:hover{color:var(--text-primary)}.ge-ramp-interp-btn.is-on{border-color:var(--accent);color:var(--accent)}.ge-ramp-interp-btn:focus-visible{outline:1px solid var(--accent)}.ge-ramp-canvas{display:block;width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;cursor:crosshair}.ge-node-resize{position:absolute;right:2px;bottom:2px;width:14px;height:14px;cursor:nwse-resize;background-image:linear-gradient(135deg,transparent 0 40%,var(--text-muted) 40% 50%,transparent 50% 65%,var(--text-muted) 65% 75%,transparent 75%);opacity:.7}.ge-node-resize:hover{opacity:1}.ge-pin-optional{box-shadow:0 0 0 1px var(--border),inset 0 0 0 1px var(--bg-surface)}.ge-link-refused,.ge-link-refused *{cursor:not-allowed!important}.ge-link-warning{pointer-events:auto;cursor:pointer}.ge-link-warning circle{fill:var(--warning);stroke:var(--surface);stroke-width:1.5}.ge-link-warning:hover circle{fill:color-mix(in srgb,var(--warning) 75%,var(--ink))}.ge-link-warning text{fill:var(--on-accent);font-weight:700;font-size:13px;pointer-events:none;-webkit-user-select:none;user-select:none}.ge-link-warning.ge-link-mistyped circle{fill:var(--danger)}.ge-link-warning.ge-link-mistyped:hover circle{fill:color-mix(in srgb,var(--danger) 75%,var(--ink))}.ge-link-warning.ge-link-mistyped text{fill:var(--on-accent)}.ge-link.ge-link-mistyped{stroke:var(--danger)!important;stroke-dasharray:6 4;opacity:.9}.ge-node.ge-node-group{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent),var(--shadow-md)}.ge-node.ge-node-group>.ge-node-header{background:color-mix(in srgb,var(--accent) 8%,var(--bg-elevated))}.ge-node-ui:after{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 2px 2px 0;background:color-mix(in srgb,var(--ui-accent) 85%,transparent);pointer-events:none}.ge-node-ui>.ge-node-header{background:linear-gradient(90deg,color-mix(in srgb,var(--ui-accent) 16%,var(--bg-elevated)),var(--bg-elevated) 62%)}.ge-node-ui>.ge-node-header:before{content:"";flex:0 0 auto;width:13px;height:13px;margin-right:6px;background-color:var(--ui-accent);-webkit-mask:var(--tb-mask-interface) center / contain no-repeat;mask:var(--tb-mask-interface) center / contain no-repeat}.ge-node-host:after{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 2px 2px 0;background:color-mix(in srgb,var(--host-accent) 85%,transparent);pointer-events:none}.ge-node-host>.ge-node-header{background:linear-gradient(90deg,color-mix(in srgb,var(--host-accent) 18%,var(--bg-elevated)),var(--bg-elevated) 62%)}.ge-node-host>.ge-node-header:before{content:"";flex:0 0 auto;width:13px;height:13px;margin-right:6px;background-color:var(--host-accent);-webkit-mask:var(--tb-mask-send-to) center / contain no-repeat;mask:var(--tb-mask-send-to) center / contain no-repeat}.ge-host-badge{flex:0 0 auto;margin-left:auto;padding:0 6px;border-radius:8px;font-size:10px;line-height:16px;color:var(--text-muted);border:1px solid color-mix(in srgb,var(--host-accent) 35%,var(--border))}.ge-host-badge[data-state=trial],.ge-host-badge[data-state=game]{color:var(--text-inverse);background:var(--host-accent);border-color:var(--host-accent)}.ge-host-badge[data-state=info]{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ge-life-badge{flex:0 1 auto;margin-left:auto;padding:0 6px;border-radius:8px;font-size:10px;line-height:16px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--host-accent);border:1px solid color-mix(in srgb,var(--host-accent) 45%,var(--border))}.ge-life-badge.is-empty{display:none}.ge-life-badge[data-life=replace],.ge-life-badge[data-life=update]{color:var(--text-inverse);background:var(--host-accent)}.ge-node.ge-node-unpulled{opacity:.45}.ge-node-ui-holder>.ge-node-header:after{content:"";flex:0 0 auto;width:7px;height:7px;margin-left:6px;border-radius:50%;background:var(--ui-accent);opacity:.85}.ge-crumbs{position:absolute;top:var(--space-md);left:var(--space-md);display:flex;align-items:center;gap:6px;padding:var(--space-sm) var(--space-md);background:var(--overlay-panel);border:1px solid var(--border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:var(--font-size-sm);color:var(--text-muted);z-index:20;-webkit-user-select:none;user-select:none}.ge-crumbs.hidden{display:none}.ge-crumb{cursor:pointer}.ge-crumb:hover{color:var(--text-primary);text-decoration:underline}.ge-crumb-current{color:var(--text-primary);font-weight:600}.ge-crumb-sep{display:inline-flex;align-items:center;opacity:.6}.ge-host-badge .tb-icon,.ge-life-badge .tb-icon{margin-right:3px;vertical-align:-2px}.ge-param-mixed-badge{display:inline-flex;align-items:center;margin-left:4px}.ge-palette{position:fixed;z-index:1000;width:320px;display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);-webkit-user-select:none;user-select:none}.ge-palette-search-wrap{padding:8px;border-bottom:1px solid var(--border)}.ge-palette-search{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:6px 8px;font:inherit;font-size:var(--font-size-base)}.ge-palette-search:focus{outline:1px solid var(--accent)}.ge-palette-crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:6px 12px 0;font-size:var(--font-size-xs);color:var(--text-muted)}.ge-palette-crumb{cursor:pointer}.ge-palette-crumb:hover{color:var(--text-primary);text-decoration:underline}.ge-palette-crumb-current{color:var(--text-primary);font-weight:600}.ge-palette-crumb-sep{display:inline-flex;align-items:center;opacity:.6}.ge-palette-list{overflow-y:auto;max-height:min(52vh,420px);padding:6px}.ge-palette-section{font-size:.7rem;font-family:var(--font-mono);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:8px 8px 4px}.ge-palette-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-base);cursor:pointer;white-space:nowrap}.ge-palette-row-active{background:var(--accent);color:var(--text-inverse)}.ge-palette-row-active .ge-palette-icon{color:inherit!important}.ge-palette-icon{flex:0 0 auto;display:inline-flex;align-items:center;color:var(--text-muted)}.ge-palette-icon svg{display:block}.ge-palette-row-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.ge-palette-row-hint{flex:0 0 auto;font-size:var(--font-size-xs);color:var(--text-muted)}.ge-palette-row-active .ge-palette-row-hint{color:inherit;opacity:.85}.ge-palette-caret{display:inline-flex;align-items:center;opacity:.7}.ge-palette-empty{padding:16px;text-align:center;color:var(--text-muted);font-size:var(--font-size-sm)}.ge-palette-preview{position:absolute;top:0;left:calc(100% + 12px);display:flex;flex-direction:column;gap:10px;width:max-content;max-width:340px;pointer-events:none}.ge-palette-preview-left{left:auto;right:calc(100% + 12px)}.ge-palette-preview .ge-node{box-shadow:var(--shadow-lg)}.ge-palette-preview-desc{background:var(--overlay-panel);border:1px solid var(--border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:8px 10px;font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.45;white-space:normal}.ge-palette-preview.hidden,.ge-palette-crumbs.hidden{display:none}.ge-node.ge-node-has-error{outline:1px solid var(--danger);box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 28%,transparent)}.ge-node.ge-node-has-error .ge-node-header:after{content:"!";margin-left:6px;width:15px;height:15px;border-radius:50%;background:var(--danger);color:var(--on-accent);font-weight:700;font-size:11px;line-height:15px;text-align:center;flex:0 0 auto}.ge-node-inert :disabled{opacity:1;color:var(--text-primary);cursor:inherit;-webkit-text-fill-color:var(--text-primary)}.ge-node-inert .ge-expr-input:disabled{color:transparent;-webkit-text-fill-color:transparent}.ge-node-inert .ge-field,.ge-node-inert .ge-field-select,.ge-node-inert .ge-field-number{pointer-events:none}.ge-node-inert .ge-field-select{background-image:none}.ge-inspector-backdrop{position:fixed;inset:0;z-index:var(--z-modal);background:var(--overlay-md);display:grid;place-items:center}.ge-inspector{display:flex;flex-direction:column;width:min(760px,86vw);height:min(560px,80vh);background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);overflow:hidden}.ge-inspector:focus{outline:none}.ge-inspector-head{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-elevated);border-bottom:1px solid var(--border)}.ge-inspector-title{font-weight:600;color:var(--text-primary);flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ge-inspector-picker{display:flex;align-items:center;gap:4px;color:var(--text-muted);font-size:.85rem}.ge-inspector-picker button{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;width:22px;height:22px;border-radius:5px;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0}.ge-inspector-picker button:hover{background:var(--surface-hover)}.ge-inspector-picker input{width:64px;padding:2px 6px;border:1px solid var(--border);border-radius:5px;background:var(--bg-surface);color:var(--text-primary);font-variant-numeric:tabular-nums}.ge-inspector-why{display:flex;align-items:center;gap:4px;color:var(--text-muted);font-size:.85rem}.ge-inspector-why select{max-width:140px;padding:2px 6px;border:1px solid var(--border);border-radius:5px;background:var(--bg-surface);color:var(--text-primary)}.ge-inspector-close{border:0;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1;color:var(--text-muted);width:26px;height:26px;border-radius:6px}.ge-inspector-close:hover{background:var(--surface-hover);color:var(--text-primary)}.ge-inspector-body{flex:1 1 auto;display:flex;min-height:0}.ge-inspector-steps{flex:0 0 240px;overflow-y:auto;border-right:1px solid var(--border);padding:6px;display:flex;flex-direction:column;gap:2px}.ge-inspector-step{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;border:0;background:transparent;cursor:pointer;padding:3px 8px;border-radius:5px;color:var(--text-primary);font-size:.85rem}.ge-inspector-step:hover{background:var(--surface-hover)}.ge-inspector-step.is-current{background:var(--accent-soft);font-weight:600}.ge-inspector-step-n{color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:2.2em;text-align:right;font-family:var(--font-mono);font-weight:500}.ge-inspector-step-role{margin-left:auto;font-size:.72rem;color:var(--text-muted);white-space:nowrap}.ge-inspector-step-role.is-decided{color:var(--accent)}.ge-inspector-values{flex:1 1 auto;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:14px}.ge-inspector-section-head{font-size:.75rem;font-family:var(--font-mono);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:4px}.ge-inspector-row{display:flex;gap:10px;padding:2px 0;font-size:.85rem;align-items:baseline}.ge-inspector-key{flex:0 0 34%;color:var(--text-primary);font-family:var(--font-mono);overflow-wrap:anywhere}.ge-inspector-val{flex:1 1 auto;color:var(--text-secondary);font-family:var(--font-mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.ge-inspector-foot{padding:6px 12px;border-top:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);font-size:.8rem}@keyframes ge-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 65%,transparent)}to{box-shadow:0 0 0 16px transparent}}.ge-node.ge-pulse{animation:ge-pulse .7s ease-out 2}.ge-field-font{display:flex;align-items:center;gap:6px;width:100%;padding:3px 6px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font:inherit;font-size:.78rem;text-align:left;cursor:pointer}.ge-field-font:hover{border-color:var(--accent)}.ge-field-font-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ge-field-font-caret{flex:0 0 auto;display:inline-flex;align-items:center;color:var(--text-muted)}.font-picker{position:fixed;z-index:200;display:flex;flex-direction:column;width:288px;max-height:360px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden}.font-picker-search{flex:0 0 auto;padding:7px 10px;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--text-primary);font:inherit;font-size:.82rem;outline:none}.font-picker-list{flex:1 1 auto;overflow-y:auto;padding:4px 0}.font-picker-group{padding:6px 10px 2px;font-size:.66rem;font-family:var(--font-mono);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.font-picker-row{display:flex;align-items:baseline;gap:8px;padding:5px 10px;cursor:pointer}.font-picker-row.active{background:var(--bg-hover)}.font-picker-row.selected .font-picker-name{color:var(--accent)}.font-picker-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;color:var(--text-primary)}.font-picker-detail{flex:0 0 auto;font-size:.68rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.font-picker-import .font-picker-name{font-size:.8rem;color:var(--accent)}.font-picker-empty{padding:10px;font-size:.75rem;color:var(--text-muted);text-align:center}.ge-stack-modal{width:min(460px,92vw);height:min(640px,84vh)}.ge-stack-verdict{margin-left:auto;margin-right:10px;font-size:.72rem;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--text-muted);white-space:nowrap}.ge-stack-verdict.is-stack{color:var(--success);border-color:currentColor}.ge-stack-verdict.is-partial{color:var(--warning);border-color:currentColor}.ge-stack-list{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:6px}.ge-stack-row{display:flex;gap:10px;align-items:center;padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--bg-surface)}.ge-stack-row.is-background{background:var(--bg-elevated);border-style:dashed}.ge-stack-thumb{width:72px;height:72px;flex:0 0 auto;border-radius:6px;overflow:hidden;background:var(--bg-elevated);border:1px solid var(--border);display:grid;place-items:center}.ge-stack-thumb>*{max-width:100%;max-height:100%}.ge-stack-body{min-width:0;display:flex;flex-direction:column;gap:4px}.ge-stack-name{font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ge-stack-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.72rem;color:var(--text-muted)}.ge-stack-badge{padding:1px 6px;border-radius:999px;border:1px solid currentColor;font-size:.68rem}.ge-stack-badge.is-shared{color:var(--warning)}.ge-stack-badge.is-loop{color:var(--accent)}.ge-stack-badge.is-background{color:var(--text-muted);border-color:var(--border)}.ge-stack-note,.ge-stack-empty{padding:8px 6px;font-size:.75rem;color:var(--text-muted)}.ge-stack-empty{text-align:center}.ge-palette-row-unavailable{color:var(--text-muted);cursor:not-allowed}.ge-palette-row-unavailable .ge-palette-icon{filter:grayscale(1);opacity:.55}.ge-palette-row-unavailable .ge-palette-row-label{text-decoration:line-through;text-decoration-color:var(--text-muted);text-decoration-thickness:1px}.ge-palette-row-unavailable-flag{flex:0 0 auto;margin-left:auto;padding:1px 6px;border-radius:999px;background:var(--warning-muted);color:var(--log-level-warn);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.02em}.ge-palette-row-unavailable-admin{cursor:pointer}.ge-palette-row-unavailable-admin .ge-palette-row-label{text-decoration:none}.ge-palette-row-active .ge-palette-row-unavailable-flag{background:var(--surface-hover-lg);color:inherit}.modal{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;animation:fadeIn var(--transition-fast)}.modal-backdrop{position:absolute;inset:0;background:var(--overlay-md);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{position:relative;width:90%;max-width:560px;max-height:85vh;max-height:85dvh;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:slideUp var(--transition-normal)}.modal-content:focus{outline:none}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--border);flex-shrink:0}.modal-header h2{font-size:var(--font-size-lg)}.modal-body{padding:var(--space-lg);overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border);flex-shrink:0}.modal-history{max-width:480px;width:92vw}.pv-body{display:flex;flex-direction:column;gap:var(--space-md)}.pv-note{margin:0;font-size:var(--font-size-xs);color:var(--text-muted)}.pv-actions{display:flex;justify-content:flex-end}.pv-list{display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow-y:auto}.pv-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface)}.pv-row-info{display:flex;flex-direction:column;gap:2px;min-width:0}.pv-row-date{font-size:.85rem;color:var(--text-primary)}.pv-row-size{font-size:var(--font-size-xs);color:var(--text-muted)}.pv-empty{margin:0;padding:var(--space-lg);text-align:center;color:var(--text-muted)}.pv-overlay,.gs-overlay{z-index:520}.export-overlay{z-index:530}.modal-graph-settings{max-width:520px;width:92vw}.gs-body{display:flex;flex-direction:column;gap:var(--space-lg)}.gs-section{display:flex;flex-direction:column;gap:var(--space-sm)}.gs-section-title{margin:0;padding-bottom:6px;border-bottom:1px solid var(--border);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.gs-note{margin:0;font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.45}.gs-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.gs-row-label{font-size:var(--font-size-sm);color:var(--text-primary)}.gs-select{min-width:160px;padding:6px 10px;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer}.gs-footer{align-items:center;justify-content:space-between}.gs-status{font-size:var(--font-size-xs);color:var(--text-muted)}.gs-status.is-saved{color:var(--success)}.gs-status.is-error{color:var(--danger)}.gs-share{display:flex;flex-direction:column;gap:var(--space-sm)}.gs-url-row{display:flex;align-items:center;gap:6px;transition:opacity var(--transition-fast)}.gs-url-row.gs-disabled{opacity:.5}.gs-url-input{flex:1;min-width:0;padding:7px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--font-size-xs)}.gs-assets{display:flex;flex-direction:column;gap:6px;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface)}.gs-assets.gs-assets-live{border-color:var(--warning)}.gs-assets-title{font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary)}.gs-assets-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}.gs-asset{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);font-size:var(--font-size-xs)}.gs-asset-name{color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs-asset-meta{flex:none;color:var(--text-muted);font-variant-numeric:tabular-nums}.gs-assets-none,.gs-assets-error{font-size:var(--font-size-xs);color:var(--text-muted)}.gs-assets-error{color:var(--danger)}.gs-display{display:flex;flex-direction:column;gap:var(--space-sm)}.gs-switch-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);cursor:pointer;font-size:var(--font-size-sm);color:var(--text-primary)}.gs-switch{position:relative;display:inline-flex;width:38px;height:22px;flex:none}.gs-switch-input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer;z-index:1}.gs-switch-track{position:absolute;inset:0;border-radius:999px;background:var(--border);transition:background var(--transition-fast)}.gs-switch-track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--ink);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.gs-switch-input:checked+.gs-switch-track{background:var(--accent)}.gs-switch-input:checked+.gs-switch-track:after{transform:translate(16px)}.gs-switch-input:focus-visible+.gs-switch-track{outline:2px solid var(--accent);outline-offset:2px}.gs-presets{display:flex;flex-direction:column;gap:var(--space-sm)}.gs-preset{display:flex;flex-direction:column;gap:6px;padding:var(--space-sm);background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-md)}.gs-preset-head{display:flex;align-items:center;gap:6px}.gs-preset-name{flex:1 1 auto;min-width:0;padding:6px 10px;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:600}.gs-preset-format{flex:0 1 auto;max-width:45%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;border:1px solid var(--border)}.gs-preset-unknown{color:var(--danger);border-color:currentColor}.gs-preset-desc{width:100%;padding:6px 10px;background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--font-size-xs);line-height:1.45;resize:vertical}.gs-preset-add{align-self:flex-start;display:inline-flex;align-items:center;gap:6px}.gs-presets-blocked{font-style:italic}.gs-toolbar{display:flex;flex-direction:column;gap:2px}.gs-toolbar-head,.gs-toolbar-row{display:grid;grid-template-columns:1fr 60px 130px;gap:var(--space-sm);align-items:center}.gs-toolbar-head{padding:0 8px 4px;font-size:var(--font-size-xs);color:var(--text-muted)}.gs-toolbar-head span:not(:first-child){text-align:center}.gs-toolbar-row{padding:6px 8px;border-radius:var(--radius-sm)}.gs-toolbar-row:hover{background:var(--bg-hover)}.gs-toolbar-name{display:flex;align-items:center;gap:8px;min-width:0;font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer}.gs-toolbar-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:none;color:var(--text-secondary)}.gs-toolbar-icon svg{width:18px;height:18px}.gs-toolbar-cell{display:flex;justify-content:center}.gs-check{width:16px;height:16px;cursor:pointer;accent-color:var(--accent)}.gs-toolbar-params{margin:0 8px 6px 34px;font-size:var(--font-size-sm);color:var(--text-secondary)}.gs-toolbar-params>summary{cursor:pointer;padding:2px 0}.gs-toolbar-params>.tool-params{padding:6px 0 2px;max-width:320px}.gs-mode-select{width:100%;padding:4px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);font:inherit;font-size:var(--font-size-xs);cursor:pointer}.gs-mode-select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.modal-export{max-width:460px}.export-body{display:flex;flex-direction:column;gap:var(--space-lg)}.export-section h3{margin:0 0 var(--space-sm);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.export-format{width:100%;padding:var(--space-sm);background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-md)}.export-hint{margin:var(--space-xs) 0 0;font-size:var(--text-xs);color:var(--text-muted);line-height:1.4}.export-row{display:flex;align-items:center;gap:var(--space-sm);padding:2px 0;cursor:pointer;font-size:var(--text-sm)}.export-row.disabled{cursor:default;color:var(--text-muted)}.export-footer{align-items:center;justify-content:space-between}.export-note{margin:0;flex:1;font-size:var(--text-xs);color:var(--warning);line-height:1.3}.gs-select-sm{min-width:130px;padding:3px 6px;font-size:var(--font-size-xs)}.gs-input{width:110px;padding:6px 10px;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.gs-details{margin:var(--space-sm) 0}.gs-details>summary{cursor:pointer;font-size:var(--font-size-sm);color:var(--text-secondary);padding:4px 0}.gs-details>summary:hover{color:var(--text-primary)}.gs-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:4px 16px;margin-top:var(--space-xs)}.gs-cat-row{display:flex;align-items:center;gap:6px}.gs-cat-dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%}.gs-cat-name{flex:1 1 auto;min-width:0;font-size:var(--font-size-sm);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs-row-check{gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer}.gs-check{accent-color:var(--accent)}.modal-file-preview{max-width:min(1100px,92vw);height:82vh;height:82dvh}.file-preview-bar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--border);flex-shrink:0}.file-preview-status{margin-left:auto;font-size:var(--font-size-sm);color:var(--text-secondary);font-variant-numeric:tabular-nums}.file-preview-scroll{position:relative;flex:1;overflow:auto;background:var(--bg-primary)}.file-preview-track{width:1px}.file-preview-layer{position:absolute;inset-inline:0;top:0;will-change:transform}.file-preview-text{margin:0;padding:var(--space-md) var(--space-lg);font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:1.45;color:var(--text-primary);white-space:pre;tab-size:4}.file-preview-text.is-midline{white-space:pre-wrap;overflow-wrap:anywhere}.file-preview-text.is-binary{color:var(--text-secondary)}.ge-field-file{flex:1;min-width:0;padding:2px 8px;font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.ge-field-file:disabled{color:var(--text-secondary);cursor:default}.modal-node-availability{width:min(860px,94vw);max-height:88vh}.na-body{display:flex;flex-direction:column;gap:10px;min-height:0}.na-summary{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.5}.na-error{margin:0;padding:8px 10px;border:1px solid var(--danger);border-radius:var(--radius-sm);background:var(--danger-muted);color:var(--text-primary);font-size:var(--font-size-sm)}.na-toolbar{display:flex;align-items:center;gap:8px}.na-search{flex:1 1 auto;min-width:0;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-primary);font-size:var(--font-size-base)}.na-list{flex:1 1 auto;overflow-y:auto;min-height:0;padding-right:4px}.na-family{margin-bottom:14px}.na-family-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:8px;padding:6px 2px;background:var(--bg-primary);border-bottom:1px solid var(--border)}.na-family-name{font-weight:600;color:var(--text-primary)}.na-family-count{padding:1px 7px;border-radius:999px;background:var(--bg-secondary);color:var(--text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-weight:500}.na-family-count.is-off{background:var(--warning-muted);color:var(--log-level-warn);font-weight:600}.na-family-toggle{margin-left:auto}.na-family-rows{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2px 14px;padding-top:4px}.na-row{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-base)}.na-row:hover{background:var(--bg-secondary)}.na-row-label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.na-row-type{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs)}.na-row-docs{margin-left:auto;opacity:0}.na-row:hover .na-row-docs,.na-row-docs:focus-visible{opacity:1}.na-row.is-off .na-row-label{color:var(--log-level-warn);text-decoration:line-through;text-decoration-thickness:1px}.na-note,.na-empty{margin:12px 2px 0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.5}.na-row-warn{flex:0 0 auto;padding:1px 6px;border-radius:999px;background:var(--warning-muted);color:var(--log-level-warn);font-size:var(--font-size-xs);font-weight:600;cursor:help}.modal-content.modal-account{max-width:520px;width:94%;max-height:85vh}.modal-content.modal-account .modal-body{display:flex;flex-direction:column;gap:var(--space-lg);overflow-y:auto}.account-section{padding:var(--space-md);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md)}.account-section-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;margin:0 0 var(--space-md) 0}.account-section-hint{font-size:var(--font-size-sm);color:var(--text-muted);margin:0 0 var(--space-md) 0}.account-identity{display:flex;flex-direction:column;gap:var(--space-sm)}.account-field{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-md);font-size:var(--font-size-sm)}.account-field-label{color:var(--text-muted)}.account-field-value{color:var(--text-primary);font-weight:500;word-break:break-all;text-align:right}.account-role-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:var(--font-size-xs);font-weight:600;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;background:var(--accent-light);color:var(--accent)}.account-tabs{display:flex;flex-wrap:wrap;gap:2px;margin-bottom:var(--space-md);border-bottom:1px solid var(--border)}.account-tab-btn{background:transparent;border:none;border-bottom:2px solid transparent;padding:var(--space-sm) var(--space-md);font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.account-tab-btn:hover{color:var(--text-primary)}.account-tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.account-tab-panel{display:flex;flex-direction:column;gap:var(--space-lg)}.account-tab-panel.hidden{display:none}.account-tab-empty{padding:var(--space-2xl) var(--space-md);text-align:center;color:var(--text-muted);font-size:var(--font-size-sm)}.agent-token-create{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}.agent-token-label-input{flex:1;min-width:0;padding:var(--space-sm);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--font-size-sm)}.agent-token-label-input:focus{outline:none;border-color:var(--accent)}.agent-token-list{display:flex;flex-direction:column;gap:var(--space-sm)}.agent-token-empty{margin:0;color:var(--text-muted);font-size:var(--font-size-sm)}.agent-token-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm)}.agent-token-info{min-width:0}.agent-token-title{display:flex;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap}.agent-token-name{font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary)}.agent-token-hint{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-muted)}.agent-token-meta{margin-top:2px;font-size:var(--font-size-xs);color:var(--text-muted)}.agent-token-revoke{flex:none}.agent-token-reveal{margin-bottom:var(--space-md);padding:var(--space-md);background:var(--accent-light);border:1px solid var(--accent);border-radius:var(--radius-sm)}.agent-token-reveal.hidden{display:none}.agent-token-warn{margin:0 0 var(--space-sm) 0;font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary)}.agent-token-secret{width:100%;padding:var(--space-sm);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-xs)}.agent-token-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.agent-session-badge{padding:2px 10px;border:1px solid var(--warning);border-radius:999px;background:transparent;color:var(--warning);font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;white-space:nowrap}.agent-session-badge:hover{background:var(--warning);color:var(--bg-primary)}.agent-connect-pickers{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.agent-connect-label{display:flex;align-items:center;gap:var(--space-sm);flex:1;min-width:12rem;font-size:var(--font-size-sm);color:var(--text-muted)}.agent-connect-label .select{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-sm)}.agent-connect-shells{display:flex;gap:2px}.agent-connect-shell.active{border-color:var(--accent);color:var(--text-primary)}.agent-connect-command{width:100%;padding:var(--space-sm);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.5;resize:none;word-break:break-all;field-sizing:content}.agent-connect-steps{margin:var(--space-md) 0 0 0;padding-left:1.25rem;display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--text-secondary)}body.access-gate .editor,body.access-gate .header-right .btn:not(#btn-settings),body.access-gate #project-bar{display:none!important}body.access-gate .header{position:relative;z-index:calc(var(--z-header) + 1)}.access-gate-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);background:var(--bg-primary);z-index:var(--z-header);animation:fadeIn var(--transition-normal)}.access-gate-card{width:100%;max-width:460px;padding:var(--space-xl);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);text-align:center}.access-gate-logo{display:block;margin:0 auto calc(var(--space-lg) + 7px)}.access-gate-title{margin:0 0 var(--space-md);font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary)}.access-gate-text{margin:0 0 var(--space-sm);font-size:var(--font-size-base);line-height:1.55;color:var(--text-secondary)}.access-gate-actions{display:flex;gap:var(--space-sm);justify-content:center;margin-top:var(--space-lg)}.access-gate-footer{margin:var(--space-lg) 0 0;font-size:var(--font-size-xs);color:var(--text-muted)}.access-gate-spinner{width:22px;height:22px;margin:var(--space-lg) auto 0;border:2px solid var(--accent-light);border-top-color:var(--accent);border-radius:50%;animation:access-gate-spin .7s linear infinite}@keyframes access-gate-spin{to{transform:rotate(360deg)}}.modal-users{max-width:720px}.users-toolbar{padding:var(--space-md) var(--space-lg) 0}.users-search{width:100%;padding:8px 12px;font-family:inherit;font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md)}.users-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.users-body{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md) var(--space-lg) var(--space-lg);overflow-y:auto}.users-hint,.users-empty,.users-error{margin:0;font-size:var(--font-size-sm);color:var(--text-muted)}.users-error{color:var(--danger)}.users-empty{padding:var(--space-lg) 0;text-align:center}.users-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-xs) var(--space-md);align-items:center;padding:var(--space-sm) var(--space-md);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md)}.users-identity{display:flex;flex-direction:column;gap:2px;min-width:0}.users-name{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary)}.users-id,.users-seen{font-size:var(--font-size-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.users-id{font-family:var(--font-mono)}.users-email{display:flex;align-items:baseline;gap:var(--space-xs);min-width:0;font-size:var(--font-size-xs);color:var(--text-secondary)}.users-email-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.users-email.is-missing{color:var(--text-muted);font-style:italic}.users-email-unverified{flex:none;padding:0 4px;border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-muted);font-size:var(--font-size-xs)}.users-email-note{margin:0 0 var(--space-sm);font-size:var(--font-size-xs);color:var(--text-muted)}.users-row-actions{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.users-reset{grid-column:1 / -1;display:flex;flex-direction:column;gap:4px;margin-top:var(--space-sm);padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);font-size:var(--font-size-xs)}.users-reset.is-error{color:var(--danger)}.users-reset-once,.users-reset-replaces,.users-reset-meta{margin:0;color:var(--text-muted)}.users-reset-replaces{color:var(--text-secondary);font-weight:600}.users-reset-line{display:flex;align-items:center;gap:var(--space-sm)}.users-reset-url{flex:1 1 auto;min-width:0;padding:4px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-xs)}.users-reset-toggle{padding:0;border:0;background:none;color:var(--text-muted);font-size:var(--font-size-xs);text-decoration:underline;cursor:pointer}.users-reset-toggle:hover{color:var(--text-primary)}.users-state{display:flex;align-items:center;gap:var(--space-sm)}.users-badge{padding:2px 8px;font-size:var(--font-size-xs);font-weight:600;border-radius:var(--radius-sm);white-space:nowrap}.users-badge-admin{color:var(--accent);background:var(--accent-light)}.users-badge-tester{color:var(--success);background:var(--success-muted)}.users-badge-none{color:var(--text-muted);background:var(--surface-hover)}.users-toggle{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.users-toggle input{accent-color:var(--accent);cursor:pointer}.users-admin-note{font-size:var(--font-size-xs);color:var(--text-muted)}.users-note{grid-column:1 / -1;padding:5px 8px;font-family:inherit;font-size:var(--font-size-xs);color:var(--text-secondary);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm)}.users-note:focus{outline:none;border-color:var(--accent)}.users-quota-wrap{grid-column:1 / -1;display:flex;align-items:center;gap:6px;font-size:var(--font-size-xs);color:var(--text-muted)}.users-quota{width:110px;padding:3px 6px;font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-secondary);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm)}.users-quota:focus{outline:none;border-color:var(--accent)}.modal-patterns{width:min(980px,94vw);max-height:88vh}.patterns-body{display:grid;grid-template-columns:300px 1fr;gap:14px;overflow:hidden;min-height:380px}.patterns-list{overflow-y:auto;border-right:1px solid var(--border-light);padding-right:10px;display:flex;flex-direction:column;gap:4px}.patterns-actions{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.patterns-row{display:flex;flex-direction:column;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer}.patterns-row:hover{background:var(--bg-hover)}.patterns-row-title{font-size:var(--font-size-sm);color:var(--text-primary)}.patterns-row-meta{font-size:var(--font-size-xs);color:var(--text-muted)}.patterns-status-broken .patterns-row-meta{color:var(--danger)}.patterns-row-top{display:flex;align-items:center;gap:6px}.patterns-row-top .patterns-row-title{flex:1}.patterns-form{overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px}.patterns-field{display:flex;flex-direction:column;gap:3px}.patterns-field-label{font-size:var(--font-size-xs);color:var(--text-muted)}.patterns-field input,.patterns-field textarea,.patterns-field select{font-family:inherit;font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px}.patterns-regions{display:flex;flex-direction:column;gap:4px}.patterns-region{display:flex;align-items:center;justify-content:space-between;font-size:var(--font-size-xs);color:var(--text-secondary);background:var(--bg-input);border-radius:var(--radius-sm);padding:3px 8px}.patterns-replace{display:flex;align-items:center;gap:6px;font-size:var(--font-size-xs);color:var(--text-secondary)}.patterns-buttons{display:flex;gap:8px;margin-top:6px}.patterns-danger{color:var(--danger)}.patterns-empty{color:var(--text-muted);font-size:var(--font-size-sm)}.users-tabs{display:flex;gap:var(--space-xs);padding:var(--space-md) var(--space-lg) 0;border-bottom:1px solid var(--border)}.users-tab{padding:8px 14px;font-family:inherit;font-size:var(--font-size-sm);font-weight:600;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}.users-tab:hover{color:var(--text-primary)}.users-tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.invites{display:flex;flex-direction:column;gap:var(--space-md)}.invites-form,.invites-minted,.invites-item{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md)}.invites-field{display:flex;flex-direction:column;gap:4px}.invites-field-inline{flex:0 0 auto}.invites-label{font-size:var(--font-size-xs);font-weight:600;color:var(--text-muted)}.invites-emails,.invites-message{width:100%;padding:8px 12px;font-family:inherit;font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);resize:vertical}.invites-emails:focus,.invites-message:focus,.invites-level:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.invites-level{padding:8px 12px;font-family:inherit;font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md)}.invites-row{display:flex;flex-wrap:wrap;gap:var(--space-md);align-items:flex-end}.invites-check{display:flex;gap:var(--space-xs);align-items:center;font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer}.invites-actions{display:flex;gap:var(--space-sm)}.invites-minted{border-color:var(--accent)}.invites-once{margin:0;font-size:var(--font-size-sm);font-weight:600;color:var(--accent)}.invites-minted-row{display:flex;flex-direction:column;gap:4px;padding-bottom:var(--space-sm);border-bottom:1px solid var(--border)}.invites-minted-head{display:flex;gap:var(--space-sm);align-items:center}.invites-url{padding:6px 8px;font-size:var(--font-size-xs);color:var(--text-primary);background:var(--bg-input);border-radius:var(--radius-sm);overflow-wrap:anywhere}.invites-refused{margin:0;font-size:var(--font-size-sm);color:var(--warning)}.invites-list{display:flex;flex-direction:column;gap:var(--space-sm)}.invites-item-head{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center}.invites-badges{display:flex;flex-wrap:wrap;gap:4px}.invites-badge{padding:2px 8px;font-size:var(--font-size-xs);font-weight:600;color:var(--text-muted);background:var(--surface-hover);border-radius:var(--radius-sm);white-space:nowrap}.invites-badge-visited{color:var(--accent);background:var(--accent-light)}.invites-badge-redeemed,.invites-badge-sent{color:var(--success);background:var(--success-muted)}.invites-badge-revoked,.invites-badge-failed{color:var(--danger);background:var(--danger-muted)}.invites-meta{font-size:var(--font-size-xs);color:var(--text-muted)}.invites-row-actions{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.invites-revoke{color:var(--danger)}.users-row:has(.users-sessions){align-items:start}.users-identity-line{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.users-presence{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap}.users-dot{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--text-muted)}.users-presence.is-online{color:var(--success);font-weight:600}.users-presence.is-online .users-dot{background:var(--success);border-color:var(--success);box-shadow:0 0 0 3px var(--success-glow)}.users-sessions-toggle{align-self:flex-start;padding:0;font-size:var(--font-size-xs);color:var(--text-muted);text-decoration:underline;background:none;border:none;cursor:pointer}.users-sessions-toggle:hover{color:var(--text-primary)}.users-sessions{grid-column:1 / -1;margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--border)}.users-sessions-msg{margin:0;font-size:var(--font-size-xs);color:var(--text-muted)}.users-sessions-day{margin-top:var(--space-xs);font-size:var(--font-size-xs);font-weight:600;color:var(--text-primary)}.users-sessions-day:first-child{margin-top:0}.users-session{display:flex;gap:var(--space-md);padding-left:var(--space-sm);font-size:var(--font-size-xs);color:var(--text-muted)}.users-session-span{font-family:var(--font-mono)}.users-session.is-live .users-session-span{color:var(--success);font-weight:600}.users-online-count{margin:0 0 var(--space-sm);font-size:var(--font-size-xs);color:var(--text-muted)}.users-online-count.is-some{color:var(--success);font-weight:600}.media-modal{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-md)}.media-modal.hidden{display:none}.media-modal-backdrop{position:absolute;inset:0;background:var(--overlay-md);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.media-modal-panel{position:relative;width:min(1400px,96vw);height:min(900px,94vh);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.media-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border);flex-shrink:0}.media-modal-title{margin:0;font-size:var(--font-size-lg);font-weight:700;color:var(--text-primary)}.media-modal-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:var(--space-md) var(--space-lg) var(--space-lg);overflow:hidden}.umd{display:flex;flex-direction:column;gap:var(--space-md);position:relative;flex:1 1 auto;min-height:0}.umd-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap;flex-shrink:0}.umd-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:2px;font-size:var(--font-size-sm);min-width:0}.umd-crumb{background:transparent;border:1px solid transparent;color:var(--text-secondary);cursor:pointer;padding:4px 10px;border-radius:var(--radius-sm);font:inherit;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.umd-crumb:hover{background:var(--bg-hover);color:var(--text-primary)}.umd-crumb.active{color:var(--text-primary);font-weight:600;pointer-events:none}.umd-crumb.drop-target{background:var(--accent-light);color:var(--text-primary);border-color:var(--accent)}.umd-crumb-sep{display:inline-flex;align-items:center;color:var(--text-muted);-webkit-user-select:none;user-select:none}.umd-action-btn{display:inline-flex;align-items:center;gap:6px}.umd-header-actions{display:inline-flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.umd-quota{display:inline-flex;flex-direction:column;gap:4px;min-width:160px;font-size:var(--font-size-xs);color:var(--text-muted)}.umd-quota-label{font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-weight:500}.umd-quota-bar{width:100%;height:4px;background:var(--bg-tertiary);border-radius:999px;overflow:hidden}.umd-quota-fill{height:100%;background:var(--accent);transition:width var(--transition-normal),background var(--transition-fast)}.umd-quota-fill.near-full{background:var(--danger)}.umd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-auto-rows:max-content;gap:var(--space-md);align-content:start;flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--space-xs)}.umd-grid-empty{border:1px dashed var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);display:flex;align-items:center;justify-content:center;padding:var(--space-xl)}.umd-grid.drop-files{outline:2px dashed var(--accent);outline-offset:4px;background:var(--accent-light);border-radius:var(--radius-lg)}.umd-drag-preview{position:fixed;top:0;left:0;z-index:var(--z-modal);pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 8px 16px color-mix(in srgb,var(--shade) 70%,transparent));transform:translate(-50%,-50%);will-change:top,left}.umd-drag-preview .umd-tile{margin:0;cursor:grabbing}.umd-drag-preview-count{position:absolute;top:-8px;right:-8px;min-width:24px;height:24px;padding:0 8px;border-radius:999px;background:var(--accent);color:var(--text-inverse);font-size:var(--font-size-xs);font-weight:700;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 6px color-mix(in srgb,var(--shade) 80%,transparent)}.umd-empty{text-align:center;color:var(--text-muted);font-size:var(--font-size-sm);display:flex;flex-direction:column;gap:var(--space-xs)}.umd-empty-hint{color:var(--text-muted);font-size:var(--font-size-xs)}.umd-tile{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-surface);border:1px solid var(--border);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast);display:flex;flex-direction:column;aspect-ratio:1 / 1;user-select:none;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-webkit-user-drag:none}.umd-tile img,.umd-tile svg{pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.umd-tile:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.umd-tile.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent),var(--shadow-sm)}.umd-tile.drop-into{border-color:var(--accent);background:var(--accent-light);transform:scale(1.02)}.umd-tile.drop-before-edge{transform:translate(8px);box-shadow:-3px 0 0 0 var(--accent),var(--shadow-sm)}.umd-tile.drop-after-edge{transform:translate(-8px);box-shadow:3px 0 0 0 var(--accent),var(--shadow-sm)}.umd-dragging .umd-tile{cursor:grabbing}.umd-tile.is-dragging-source{opacity:.45;transform:scale(.97);box-shadow:0 0 0 2px var(--accent),var(--shadow-lg)}.umd-folder-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-md);text-align:center;gap:6px;background:linear-gradient(135deg,var(--bg-surface) 0%,var(--bg-elevated) 100%)}.umd-folder-icon{color:var(--accent);display:flex;align-items:center;justify-content:center}.umd-folder-name{font-weight:600;color:var(--text-primary);font-size:var(--font-size-base);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.umd-folder-meta{font-size:var(--font-size-xs);color:var(--text-muted)}.umd-tile-menu{position:absolute;top:8px;right:8px;display:flex;gap:4px;opacity:0;transition:opacity var(--transition-fast);z-index:3}.umd-tile:hover .umd-tile-menu{opacity:1}.umd-tile-menu .btn.is-shared{color:var(--accent)}.umd-tile-menu .btn-ghost{background:var(--scrim);color:var(--on-scrim);border:1px solid var(--surface-hover-lg)}.umd-tile-menu .btn-ghost:hover{background:var(--surface)}.umd-item-body{display:flex;flex-direction:column;flex:1;min-height:0}.umd-preview{position:relative;flex:1;overflow:hidden;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;min-height:0}.umd-preview-img{width:100%;height:100%;object-fit:cover;display:block}.umd-preview-empty{color:var(--text-muted);display:flex;align-items:center;justify-content:center}.umd-3d-badge{position:absolute;bottom:6px;left:6px;background:var(--scrim);color:var(--on-scrim);padding:2px 8px;border-radius:999px;font-size:var(--font-size-xs);font-weight:600;pointer-events:none}.umd-usage-badge{position:absolute;top:6px;right:6px;min-width:18px;height:18px;padding:0 5px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--text-inverse);border-radius:999px;font-size:var(--font-size-xs);font-weight:700;font-variant-numeric:tabular-nums;pointer-events:none;font-family:var(--font-mono)}.umd-item-info{padding:var(--space-sm);display:flex;flex-direction:column;gap:2px;background:var(--bg-surface)}.umd-item-name{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.umd-item-meta{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-xs);color:var(--text-muted)}.umd-item-process{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.umd-selection-bar{position:fixed;bottom:var(--space-lg);left:50%;transform:translate(-50%) translateY(120%);display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow-lg);z-index:var(--z-modal);transition:transform var(--transition-normal);pointer-events:none}.umd-selection-bar.visible{transform:translate(-50%) translateY(0);pointer-events:auto}.umd-selection-count{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.umd-pick-bar{max-width:min(560px,92vw)}.umd-pick-bar .umd-selection-count{font-weight:500;color:var(--text-secondary)}.umd-tile-disabled{opacity:.4;filter:grayscale(.6);cursor:not-allowed}.umd-picking .umd-tile:not(.umd-tile-disabled):not(.umd-tile-folder){cursor:copy}.umd-context-menu{position:fixed;z-index:var(--z-toast);min-width:180px;padding:4px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.umd-context-menu-item{display:flex;align-items:center;gap:var(--space-sm);padding:6px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font:inherit;font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.umd-context-menu-item:hover{background:var(--bg-hover)}.umd-context-menu-item.danger{color:var(--danger)}.umd-context-menu-item.danger:hover{background:var(--danger-muted)}.umd-context-menu-icon{display:inline-flex;align-items:center;color:inherit;flex-shrink:0}.umd-context-menu-sep{height:1px;background:var(--border);margin:4px 2px}.media-lightbox{position:fixed;inset:0;z-index:var(--z-toast);display:flex;align-items:center;justify-content:center;padding:var(--space-xl);background:var(--overlay-dark);opacity:0;transition:opacity var(--transition-fast);cursor:zoom-out}.media-lightbox.visible{opacity:1}.media-lightbox img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.media-lightbox.has-caption{flex-direction:column;gap:var(--space-sm)}.media-lightbox.has-caption img{min-height:0}.media-lightbox-caption{padding:2px 10px;border-radius:var(--radius-sm);background:var(--bg-input);border:1px solid var(--border);color:var(--text-muted);font-size:.78rem;font-variant-numeric:tabular-nums;white-space:nowrap}.text-lightbox{display:flex;flex-direction:column;max-width:min(900px,100%);max-height:100%;min-width:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);cursor:auto;overflow:hidden}.text-lightbox-title{flex:0 0 auto;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border);font-weight:600;font-size:var(--font-size-sm);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-lightbox-body{flex:1 1 auto;margin:0;padding:var(--space-md);overflow:auto;font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:1.5;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text}.popup-overlay{position:fixed;inset:0;z-index:var(--z-toast);display:flex;align-items:center;justify-content:center;padding:var(--space-md);background:var(--overlay-md);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity var(--transition-fast)}.popup-overlay.popup-visible{opacity:1}.popup-dialog{width:min(420px,100%);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.popup-dialog-danger{border-top:3px solid var(--danger)}.popup-dialog-warning{border-top:3px solid var(--warning)}.popup-title{margin:0;font-size:var(--font-size-lg);font-weight:700;color:var(--text-primary)}.popup-message{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5;white-space:pre-line;max-height:40vh;overflow-y:auto}.popup-input{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);font:inherit;font-size:var(--font-size-base)}.popup-input:focus{outline:none;border-color:var(--accent)}.popup-footer{display:flex;justify-content:flex-end;gap:var(--space-sm)}.popup-dialog-choose{width:min(560px,100%)}.popup-footer-wrap{flex-wrap:wrap}.popup-busy{cursor:progress}.popup-busy-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.tsb-toast-container{position:fixed;bottom:calc(var(--space-lg) + var(--console-fab-lane));right:var(--space-lg);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-sm);pointer-events:none}.tsb-toast{pointer-events:auto;min-width:220px;max-width:360px;padding:10px 14px;border-radius:var(--radius-md);background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-lg);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer;opacity:0;transform:translateY(8px);transition:opacity var(--transition-fast),transform var(--transition-fast)}.tsb-toast.visible{opacity:1;transform:translateY(0)}.tsb-toast-success{border-left:3px solid var(--success)}.tsb-toast-info{border-left:3px solid var(--accent)}.tsb-toast-warning{border-left:3px solid var(--warning)}.tsb-toast-error{border-left:3px solid var(--danger)}@media(max-width:768px){.umd-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-sm)}.umd-folder-icon svg{width:36px;height:36px}.media-modal{padding:0}.media-modal-panel{width:100vw;height:100vh;border-radius:0}}@media(max-width:480px){.umd-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.umd-item-info{padding:6px}.umd-item-name{font-size:var(--font-size-xs)}.umd-folder-name{font-size:var(--font-size-sm)}}.umd-project-badge{position:absolute;top:6px;left:6px;font-size:.65rem;font-weight:600;letter-spacing:.02em;padding:1px 6px;border-radius:999px;background:var(--accent);color:var(--text-inverse)}.umd-tile-project .umd-preview-empty{color:var(--accent)}.tg-menu{position:fixed;z-index:1100;width:584px;max-width:calc(100vw - 16px);display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);-webkit-user-select:none;user-select:none;overflow:hidden}.tg-menu{--tg-new: var(--tg-state-new);--tg-feedback: var(--tg-state-feedback);--tg-in_progress: var(--tg-state-in-progress);--tg-fix_proposed: var(--tg-state-fix-proposed);--tg-validated: var(--tg-state-validated);--tg-wont_fix: var(--tg-state-wont-fix)}.tg-menu-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:10px 12px 6px}.tg-menu-title{font-weight:700;color:var(--text-primary)}.tg-menu-progress{font-size:var(--font-size-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-weight:500}.tg-menu-progress-done{color:var(--tg-validated);font-weight:700}.tg-menu-search-wrap{padding:0 10px 8px}.tg-menu-search{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:6px 8px;font:inherit;font-size:var(--font-size-base)}.tg-menu-search:focus{outline:1px solid var(--accent)}.tg-filters{display:flex;flex-wrap:wrap;gap:4px;padding:0 10px 8px}.tg-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-secondary);font:inherit;font-size:var(--font-size-xs);cursor:pointer}.tg-chip:hover{background:var(--surface-hover)}.tg-chip-count{font-variant-numeric:tabular-nums;color:var(--text-muted);font-family:var(--font-mono);font-weight:500}.tg-chip-on{border-color:var(--accent);background:var(--accent-light);color:var(--text-primary);font-weight:600}.tg-chip-on>.tg-chip-count{color:var(--text-secondary)}.tg-chip[data-status=new]{border-left:3px solid var(--tg-new)}.tg-chip[data-status=feedback]{border-left:3px solid var(--tg-feedback)}.tg-chip[data-status=in_progress]{border-left:3px solid var(--tg-in_progress)}.tg-chip[data-status=fix_proposed]{border-left:3px solid var(--tg-fix_proposed)}.tg-chip[data-status=validated]{border-left:3px solid var(--tg-validated)}.tg-chip[data-status=wont_fix]{border-left:3px solid var(--tg-wont_fix)}.tg-tabs{display:flex;gap:2px;overflow-x:auto;overflow-y:hidden;padding:0 8px;border-bottom:1px solid var(--border);scrollbar-width:thin;-webkit-mask-image:linear-gradient(to right,transparent 0,var(--shade) 14px,var(--shade) calc(100% - 22px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,var(--shade) 14px,var(--shade) calc(100% - 22px),transparent 100%)}.tg-tab{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;padding:6px 9px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--text-secondary);font:inherit;font-size:var(--font-size-xs);white-space:nowrap;cursor:pointer}.tg-tab:hover{color:var(--text-primary);background:var(--surface-hover-xs)}.tg-tab-count{font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:.68rem;font-family:var(--font-mono);font-weight:500}.tg-tab-on{color:var(--text-primary);border-bottom-color:var(--accent);font-weight:600}.tg-tab-empty{opacity:.45}.tg-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid var(--border);font-size:var(--font-size-xs)}.tg-tool-group{display:flex;gap:4px}.tg-tool-btn{padding:3px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:inherit;font-size:var(--font-size-xs);cursor:pointer}.tg-tool-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.tg-tool-btn:disabled{opacity:.4;cursor:default}.tg-tool-count{display:flex;align-items:baseline;gap:6px;color:var(--text-secondary);font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-weight:500}.tg-tool-hidden{color:var(--warning)}.tg-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:4px;width:100%}.tg-bulk-label{color:var(--text-muted)}.tg-bulk-btn{padding:3px 8px;border:1px solid var(--border);border-left-width:3px;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:inherit;font-size:var(--font-size-xs);cursor:pointer}.tg-bulk-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.tg-bulk-btn[data-status=new]{border-left-color:var(--tg-new)}.tg-bulk-btn[data-status=feedback]{border-left-color:var(--tg-feedback)}.tg-bulk-btn[data-status=in_progress]{border-left-color:var(--tg-in_progress)}.tg-bulk-btn[data-status=fix_proposed]{border-left-color:var(--tg-fix_proposed)}.tg-bulk-btn[data-status=validated]{border-left-color:var(--tg-validated)}.tg-bulk-btn[data-status=wont_fix]{border-left-color:var(--tg-wont_fix)}.tg-notice{padding:6px 10px;font-size:var(--font-size-xs);color:var(--text-muted);border-bottom:1px solid var(--border)}.tg-notice-warn{color:var(--warning);background:var(--warning-muted)}.tg-menu-list{overflow-y:auto;max-height:min(60vh,520px);padding:4px}.tg-item{border-radius:var(--radius-sm);border-left:3px solid var(--tg-new);margin-bottom:1px}.tg-item[data-status=feedback]{border-left-color:var(--tg-feedback)}.tg-item[data-status=in_progress]{border-left-color:var(--tg-in_progress)}.tg-item[data-status=fix_proposed]{border-left-color:var(--tg-fix_proposed)}.tg-item[data-status=validated]{border-left-color:var(--tg-validated);background:color-mix(in srgb,var(--tg-validated) 8%,transparent)}.tg-item[data-status=wont_fix]{border-left-color:var(--tg-wont_fix);opacity:.7}.tg-item-selected{background:var(--accent-light)}.tg-item-last{outline:1px dashed var(--accent);outline-offset:-1px}.tg-menu-row{display:flex;align-items:center;gap:8px;padding:5px 8px;cursor:pointer}.tg-menu-row:hover{background:var(--surface-hover)}.tg-menu-check{flex:0 0 auto;width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.tg-menu-row-body{flex:1 1 auto;min-width:0}.tg-menu-row-title{color:var(--text-primary);font-size:var(--font-size-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tg-item[data-status=validated] .tg-menu-row-title{color:var(--text-secondary)}.tg-menu-row-hint{font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tg-status{flex:0 0 auto;max-width:130px;padding:2px 4px;--select-pad-end: 18px;--select-chevron-inset: 4px;--select-chevron-size: 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-secondary);font:inherit;font-size:var(--font-size-xs);cursor:pointer}.tg-status[data-status=validated]{color:var(--tg-validated)}.tg-status[data-status=feedback]{color:var(--tg-feedback)}.tg-status[data-status=in_progress]{color:var(--tg-in_progress)}.tg-status[data-status=fix_proposed]{color:var(--tg-fix_proposed)}.tg-comment-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:3px;padding:2px 5px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font:inherit;font-size:.68rem;cursor:pointer}.tg-comment-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.tg-comment-btn-some{color:var(--tg-feedback);border-color:var(--tg-feedback)}.tg-comment-btn-open{background:var(--accent-light);color:var(--text-primary)}.tg-comment-count{font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-weight:500}.tg-thread{padding:6px 10px 9px 31px;border-top:1px solid var(--border);-webkit-user-select:text;user-select:text}.tg-thread-empty{font-size:var(--font-size-xs);color:var(--text-muted);padding-bottom:6px}.tg-thread-list{display:flex;flex-direction:column;gap:6px;padding-bottom:7px}.tg-comment{border-left:2px solid var(--border-light);padding-left:7px}.tg-comment[data-author=human]{border-left-color:var(--tg-feedback)}.tg-comment[data-author=agent]{border-left-color:var(--tg-in_progress)}.tg-comment-head{display:flex;align-items:baseline;gap:6px;font-size:.68rem}.tg-comment-author{font-weight:700;color:var(--text-secondary);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em}.tg-comment-date{color:var(--text-muted)}.tg-comment-del{margin-left:auto;border:none;background:transparent;color:var(--text-muted);font:inherit;font-size:var(--font-size-sm);line-height:1;cursor:pointer;padding:0 3px}.tg-comment-del:hover{color:var(--danger)}.tg-comment-body{font-size:var(--font-size-xs);color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.tg-thread-compose{display:flex;flex-direction:column;gap:5px;align-items:flex-start}.tg-comment-input{width:100%;resize:vertical;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:5px 7px;font:inherit;font-size:var(--font-size-xs)}.tg-comment-input:focus{outline:1px solid var(--accent)}.tg-comment-add{padding:3px 9px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent-light);color:var(--text-primary);font:inherit;font-size:var(--font-size-xs);cursor:pointer}.tg-comment-add:hover{background:var(--accent-muted)}.tg-menu-empty{padding:16px;text-align:center;color:var(--text-muted);font-size:var(--font-size-sm)}.tg-menu-empty-hint{margin-top:6px;font-size:var(--font-size-xs);display:flex;flex-direction:column;align-items:center;gap:3px}.tg-link-btn{border:none;background:transparent;color:var(--accent);font:inherit;font-size:var(--font-size-xs);text-decoration:underline;cursor:pointer}.nd-panel{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center}.nd-backdrop{position:absolute;inset:0;background:var(--overlay-md);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.nd-shell{position:relative;display:flex;flex-direction:column;width:min(1180px,94vw);height:min(860px,92vh);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.nd-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--bg-elevated)}.nd-panel-title{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.nd-panel-close{flex:0 0 auto;width:28px;height:28px;border:none;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;padding:0;background:transparent;color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.nd-panel-close:hover{background:var(--surface-hover);color:var(--text-primary)}.nd-panel-body{flex:1 1 auto;display:flex;min-height:0}.nd-index{flex:0 0 250px;display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border);background:var(--bg-elevated)}.nd-index-search{margin:12px;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-family:inherit;font-size:var(--font-size-sm)}.nd-index-search:focus{outline:none;border-color:var(--accent)}.nd-index-list{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 8px 8px}.nd-index-section{position:sticky;top:0;z-index:1;display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:10px 0 4px;padding:4px 10px;background:var(--bg-elevated);font-size:var(--font-size-xs);font-weight:650;letter-spacing:.08em;font-family:var(--font-mono);text-transform:uppercase;color:var(--text-muted)}.nd-index-section:first-child{margin-top:0}.nd-index-section-count{font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:0;opacity:.75;font-family:var(--font-mono)}.nd-index-row{display:flex;flex-direction:column;gap:1px;width:100%;padding:7px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-family:inherit;font-size:var(--font-size-sm);text-align:left;cursor:pointer}.nd-index-row:hover{background:var(--surface-hover)}.nd-index-row.is-active{background:var(--accent-light);color:var(--accent)}.nd-index-label{font-weight:500}.nd-index-cat{font-size:var(--font-size-xs);color:var(--text-muted)}.nd-index-count,.nd-index-empty{padding:10px 14px;border-top:1px solid var(--border);color:var(--text-muted);font-size:var(--font-size-xs)}.nd-index-empty{border-top:none}.nd-content{flex:1 1 auto;min-width:0;overflow-y:auto}.nd-sheet{max-width:820px;margin:0 auto;padding:26px 30px 40px}.nd-head{display:flex;align-items:flex-start;gap:24px;padding-bottom:20px;border-bottom:1px solid var(--border)}.nd-head-text{flex:1 1 auto;min-width:0}.nd-card{flex:0 0 auto;max-width:300px;pointer-events:none}.nd-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}.nd-title{margin:0 0 10px;font-size:var(--font-size-2xl);font-weight:650;letter-spacing:-.01em;color:var(--text-primary)}.nd-notice{margin:0 0 10px;padding:8px 11px;border-left:3px solid var(--warning);background:var(--warning-muted);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:var(--font-size-sm);color:var(--text-secondary)}.nd-p{margin:0 0 10px;font-size:var(--font-size-base);line-height:1.62;color:var(--text-secondary)}.nd-p:last-child{margin-bottom:0}.nd-p-tight{margin-bottom:6px;font-size:var(--font-size-sm);line-height:1.55}.nd-lead{font-size:var(--font-size-lg);line-height:1.55;color:var(--text-primary)}.nd-sheet code{padding:1px 5px;border-radius:3px;background:var(--bg-tertiary);font-family:var(--font-mono);font-size:.9em;color:var(--text-primary)}.nd-sheet strong{font-weight:600;color:var(--text-primary)}.nd-callout{margin:0 0 14px;padding:11px 14px;border-left:3px solid var(--accent);background:var(--accent-subtle);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.nd-section{margin-top:26px}.nd-detail{margin-top:20px}.nd-section-title{margin:0 0 14px;font-size:var(--font-size-xs);font-weight:650;letter-spacing:.08em;font-family:var(--font-mono);text-transform:uppercase;color:var(--text-muted);position:relative;z-index:1}.nd-row{padding:11px 0;border-top:1px solid var(--border)}.nd-row:first-of-type{border-top:none;padding-top:0}.nd-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:5px}.nd-row-dot{flex:0 0 auto;width:9px;height:9px;border-radius:50%}.nd-row-name{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary)}.nd-attr-name{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:600}.nd-row-body{padding-left:16px}.nd-xref{padding:0;border:none;background:none;font:inherit;color:var(--accent);cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-underline-offset:2px}.nd-xref:hover{text-decoration-color:var(--accent)}.nd-pager{display:flex;gap:12px;margin-top:34px;padding-top:18px;border-top:1px solid var(--border)}.nd-pager-btn{flex:1 1 0;display:flex;flex-direction:column;gap:2px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.nd-pager-btn.is-next{text-align:right}.nd-pager-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-subtle)}.nd-pager-btn.is-empty{border-color:transparent;background:none;cursor:default}.nd-pager-dir{font-size:var(--font-size-xs);letter-spacing:.08em;font-family:var(--font-mono);font-weight:600;text-transform:uppercase;color:var(--text-muted)}.nd-pager-label{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary)}.nd-code-block{margin:0 0 16px}.nd-code{margin:0;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-tertiary);overflow-x:auto;font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:1.5;color:var(--text-primary)}.nd-code-caption{margin:6px 2px 0;color:var(--text-secondary)}.nd-code-module-name{margin:0 2px 4px;font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-secondary)}.nd-code-module{margin:0 0 10px;background:transparent;border-style:dashed;color:var(--text-secondary)}.nd-fn{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:7px 0;border-top:1px solid var(--border);scroll-margin-top:60px}.nd-fn:first-of-type{border-top:none}.nd-fn-sig{flex:0 0 auto;font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.nd-fn-doc{flex:1 1 240px;font-size:var(--font-size-sm);color:var(--text-secondary)}.nd-fn:target .nd-fn-sig{color:var(--accent)}.nd-article-heading{margin-top:26px;scroll-margin-top:12px}.nd-chip{display:inline-block;padding:2px 7px;border:1px solid var(--border);border-radius:100px;background:var(--bg-tertiary);font-size:var(--font-size-xs);line-height:1.5;color:var(--text-muted);white-space:nowrap}.nd-chip-type{font-family:var(--font-mono);font-size:.7rem}.nd-chip-id{font-family:var(--font-mono)}.nd-chip-cat{border-color:var(--accent-muted);background:var(--accent-subtle);color:var(--accent)}.nd-chip-io.is-read{border-color:var(--success-muted);background:var(--success-muted);color:var(--success)}.nd-chip-io.is-write{border-color:var(--warning-muted);background:var(--warning-muted);color:var(--warning)}.nd-chip-prec{border-color:var(--accent-muted);color:var(--accent)}.nd-chip-coverage.is-complete,.nd-chip-coverage.is-extended{border-color:var(--success-muted);background:var(--success-muted);color:var(--success)}.nd-chip-coverage.is-partial{border-color:var(--warning-muted);background:var(--warning-muted);color:var(--warning)}.nd-missing{font-size:var(--font-size-xs);font-style:italic;color:var(--text-muted)}.nd-options{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:8px 0 0;padding:9px 12px;border-radius:var(--radius-sm);background:var(--bg-elevated)}.nd-options dt{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);white-space:nowrap}.nd-options dt.is-default:after{content:" •";color:var(--accent)}.nd-options dd{margin:0}.nd-options dd .nd-p{margin-bottom:0}.nd-example{margin-bottom:26px}.nd-example-head{display:flex;align-items:center;gap:12px;margin-bottom:6px}.nd-example-title{flex:1 1 auto;margin:0;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary)}.nd-example-open{flex:0 0 auto}.nd-graph{position:relative;height:420px;margin-top:10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);background-image:radial-gradient(circle,var(--border) 1px,transparent 1px);background-size:22px 22px;overflow:hidden;pointer-events:none}.nd-graph-world{position:absolute;left:0;top:0;width:0;height:0;transform-origin:0 0}.nd-graph-thumb{position:absolute;top:10px;right:10px;width:150px;height:150px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);box-shadow:var(--shadow-md);z-index:3}.nd-graph-origin{position:absolute;left:0;top:0;width:0;height:0}.nd-graph-links{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible}.nd-graph-link{fill:none;stroke-width:2;opacity:.85}.nd-graph-note{--cc: var(--comment-blue);position:absolute;border:1px solid color-mix(in srgb,var(--cc) 55%,var(--border));border-radius:var(--radius-md);background:color-mix(in srgb,var(--cc) 9%,var(--bg-surface));overflow:hidden}.nd-graph-note[data-color=slate]{--cc: var(--comment-slate)}.nd-graph-note[data-color=green]{--cc: var(--comment-green)}.nd-graph-note[data-color=amber]{--cc: var(--comment-amber)}.nd-graph-note[data-color=red]{--cc: var(--comment-red)}.nd-graph-note[data-color=violet]{--cc: var(--comment-violet)}.nd-graph-note-body{padding:9px 11px;font-size:12px;line-height:1.5;color:var(--text-secondary);white-space:pre-wrap}.nd-see-also{display:flex;flex-wrap:wrap;gap:7px}.nd-link{padding:5px 11px;border:1px solid var(--border);border-radius:100px;background:var(--bg-elevated);color:var(--accent);font-family:inherit;font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.nd-link:hover{background:var(--accent-subtle);border-color:var(--accent-muted)}.nd-card-link{pointer-events:auto;cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.nd-card-link:hover{background:var(--accent-light)}.nd-row.is-doc-linked{background:var(--accent-subtle);box-shadow:inset 3px 0 0 var(--accent);border-radius:7px}.is-doc-flash{animation:nd-flash 1.2s ease-out;border-radius:7px}@keyframes nd-flash{0%,30%{background:var(--accent-light);box-shadow:inset 3px 0 0 var(--accent)}to{background:transparent;box-shadow:inset 3px 0 0 transparent}}@media(prefers-reduced-motion:reduce){.is-doc-flash{animation:none;background:var(--accent-light)}}.ge-node-docs{flex:0 0 auto;width:18px;height:18px;margin-left:2px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:12px;font-weight:700;line-height:1;cursor:pointer;opacity:.55;transition:opacity var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.ge-node-docs:hover{opacity:1;background:var(--accent-light);color:var(--accent)}.ge-palette-docs{flex:0 0 auto;width:18px;height:18px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:11px;font-weight:700;line-height:1;cursor:pointer;opacity:0;transition:opacity var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.ge-palette-row:hover .ge-palette-docs,.ge-palette-row-active .ge-palette-docs{opacity:.6}.ge-palette-docs:hover{opacity:1;background:var(--accent-light);color:var(--accent)}@media(max-width:860px){.nd-index{flex-basis:190px}.nd-sheet{padding:20px 18px 32px}.nd-head{flex-direction:column;gap:16px}.nd-card{max-width:100%}}.nd-figure{margin:14px 0 18px}.nd-diagram{width:100%;height:auto;max-width:560px;display:block;margin:0 auto 6px}.nd-dia-shape{fill:var(--bg-hover);stroke:var(--border);stroke-width:1.5}.nd-dia-line{stroke:var(--border);stroke-width:1.5;fill:none}.nd-dia-head{fill:var(--border)}.nd-dia-text{font-family:var(--font-mono);font-size:11px;fill:var(--text-primary)}.nd-dia-accent.nd-dia-shape{fill:var(--accent-light);stroke:var(--accent)}.nd-dia-accent.nd-dia-line{stroke:var(--accent)}.nd-dia-accent.nd-dia-text{fill:var(--accent)}.nd-dia-muted.nd-dia-shape{fill:transparent;stroke:var(--border);stroke-dasharray:4 3}.nd-dia-muted.nd-dia-text{fill:var(--text-muted)}.nd-dia-error.nd-dia-shape{fill:var(--danger-muted);stroke:var(--danger)}.nd-dia-error.nd-dia-text{fill:var(--danger)}.nd-unavailable{display:flex;align-items:flex-start;gap:12px;margin:0 0 18px;padding:12px 14px;border:1px solid var(--warning);border-left-width:4px;border-radius:var(--radius-md);background:var(--warning-muted);color:var(--text-primary);font-size:var(--font-size-base);line-height:1.5}.nd-unavailable-icon{display:flex;flex:0 0 auto;padding-top:1px}.nd-unavailable-text{display:flex;flex-direction:column;gap:3px}.nd-unavailable-text strong{color:var(--log-level-warn);font-size:var(--font-size-md, 1rem);letter-spacing:.01em}.nd-unavailable-admin{border-color:var(--accent);background:var(--accent-light)}.nd-unavailable-admin .nd-unavailable-text strong{color:var(--accent-hover)}.nd-index-row.is-unavailable .nd-index-label{color:var(--text-muted);text-decoration:line-through;text-decoration-thickness:1px}.console{position:relative;flex:0 0 auto;display:flex;flex-direction:column;min-height:0;background:var(--bg-secondary);border-top:1px solid var(--border);font-size:12px;z-index:var(--z-header)}.console.hidden{display:none}.console[data-mode=full]{position:absolute;inset:var(--console-top, 0) 0 0 0;height:auto}.console-grip{position:absolute;top:-3px;left:0;right:0;height:7px;cursor:ns-resize;touch-action:none}.console-grip.hidden{display:none}.console-grip:hover{background:var(--accent-light)}.console-bar{display:flex;align-items:center;gap:var(--space-sm);padding:0 var(--space-sm);height:28px;flex:0 0 auto;background:var(--bg-surface)}.console-bar-line{flex:1 1 auto;min-width:0;text-align:left;background:none;border:0;padding:0;color:var(--text-secondary);font-family:var(--font-mono);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.console-counts{display:flex;gap:4px;flex:0 0 auto}.console-badge{padding:1px 6px;border-radius:var(--radius-sm);font-weight:600;font-size:11px;color:var(--text-inverse)}.console-icon-btn{display:inline-flex;align-items:center;background:none;border:0;color:var(--text-muted);cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);line-height:1}.console-icon-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.console-caret .console-caret-down,.console[data-mode=drawer] .console-caret .console-caret-up,.console[data-mode=full] .console-caret .console-caret-up{display:none}.console[data-mode=drawer] .console-caret .console-caret-down,.console[data-mode=full] .console-caret .console-caret-down{display:inline-block}.console-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.console-body.hidden{display:none}.console-toolbar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex:0 0 auto;flex-wrap:wrap}.console-toolbar-actions{margin-left:auto;display:flex;gap:var(--space-xs);align-items:center}.console-levels{display:flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.console-level-btn{background:var(--bg-input);border:0;border-right:1px solid var(--border);padding:2px 8px;font-size:11px;color:var(--text-muted);cursor:pointer}.console-level-btn:last-child{border-right:0}.console-level-btn[aria-pressed=true]{background:var(--accent);color:var(--text-inverse)}.console-cats{display:flex;gap:3px;flex-wrap:wrap}.console-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);background:var(--bg-input);border-radius:999px;padding:1px 8px 1px 6px;font-size:11px;cursor:pointer;color:var(--text-secondary)}.console-chip:hover{background:var(--surface-hover)}.console-chip.muted{opacity:.45;text-decoration:line-through}.console-chip-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}.console-chip-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:10px;font-family:var(--font-mono);font-weight:500}.console-search{flex:0 1 220px;min-width:120px;padding:2px 8px;font-size:11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary)}.console-tail{border:1px solid var(--accent);background:var(--accent-subtle);color:var(--accent);border-radius:var(--radius-sm);padding:2px 8px;font-size:11px;cursor:pointer}.console-tail.hidden{display:none}.console-scroller{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;background:var(--bg-secondary)}.console-spacer{position:relative;width:100%}.console-rows{position:absolute;inset:0}.console-row{position:absolute;left:0;right:0;height:var(--console-row-h);display:flex;align-items:center;gap:var(--space-sm);padding:0 var(--space-sm);border-bottom:1px solid var(--surface-hover-xs);border-left:3px solid transparent;cursor:pointer;white-space:nowrap;font-family:var(--font-mono);font-size:11px}.console-row:hover{background:var(--surface-hover-xs)}.console-row.expanded{background:var(--surface-hover)}.console-time{color:var(--text-muted);flex:0 0 auto}.console-level{flex:0 0 14px;text-align:center;font-weight:700}.console-cat{flex:0 0 auto;color:var(--text-secondary);padding:0 5px;border-radius:var(--radius-sm);background:var(--surface-hover);font-size:10px;text-transform:lowercase}.console-msg{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary);font-family:var(--font-sans);font-size:12px}.console-count,.console-src{flex:0 0 auto;color:var(--text-muted);font-size:10px}.console-src{padding:0 5px;border:1px solid var(--border);border-radius:var(--radius-sm)}.console-goto{flex:0 0 auto;border:1px solid var(--accent-muted);background:none;color:var(--accent);border-radius:var(--radius-sm);font-size:10px;padding:0 6px;cursor:pointer}.console-row.console-l-trace{border-left-color:var(--log-level-trace)}.console-row.console-l-debug{border-left-color:var(--log-level-debug)}.console-row.console-l-info{border-left-color:var(--log-level-info)}.console-row.console-l-warn{border-left-color:var(--log-level-warn)}.console-row.console-l-error{border-left-color:var(--log-level-error)}.console-row.console-l-fatal{border-left-color:var(--log-level-fatal)}.console-l-trace .console-level{color:var(--log-level-trace)}.console-l-debug .console-level{color:var(--log-level-debug)}.console-l-info .console-level{color:var(--log-level-info)}.console-l-warn .console-level{color:var(--log-level-warn)}.console-l-error .console-level{color:var(--log-level-error)}.console-l-fatal .console-level{color:var(--log-level-fatal)}.console-badge.console-l-warn{background:var(--log-level-warn)}.console-badge.console-l-error{background:var(--log-level-error)}.console-badge.console-l-fatal{background:var(--log-level-fatal)}.console-detail{position:absolute;left:0;right:0;background:var(--bg-tertiary);border-bottom:1px solid var(--border);padding:var(--space-sm);display:flex;gap:var(--space-sm);align-items:flex-start}.console-detail-text{flex:1 1 auto;margin:0;max-height:220px;overflow:auto;font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}.console-fab{position:fixed;right:14px;bottom:14px;height:36px;z-index:var(--z-toast);background:var(--bg-secondary);border:1px solid var(--border);box-shadow:0 2px 10px color-mix(in srgb,var(--shade) 28%,transparent);border-radius:var(--radius-md)}.console-fab-folded{display:none}.console-fab:hover{background:var(--bg-hover)}.console-fab[data-tone=error],.console-fab[data-tone=warn]{border-color:currentColor}.console-header-badge{width:auto;min-width:36px;gap:5px;font-variant-numeric:tabular-nums;font-weight:600;font-family:var(--font-mono)}.console-header-badge>svg{flex:none}.console-header-badge .console-badge-count{font-size:11px}.console-header-badge .console-badge-count:empty{display:none}.console-header-badge[data-tone=error]{color:var(--log-level-error)}.console-header-badge[data-tone=warn]{color:var(--log-level-warn)}.console-header-badge[data-tone=quiet]{color:var(--text-muted)}.console-record{display:inline-flex;align-items:center;border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);border-radius:var(--radius-sm);padding:1px 7px;font-size:12px;line-height:18px;cursor:pointer}.console-record:hover{color:var(--text-primary)}.console-record.active{border-color:var(--log-level-error);color:var(--log-level-error);background:color-mix(in srgb,var(--log-level-error) 14%,transparent);animation:console-recording 1.6s ease-in-out infinite}@keyframes console-recording{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.console-record.active{animation:none}}.console-banner{display:flex;align-items:center;gap:var(--space-sm);padding:4px 10px;font-size:11px;color:var(--text-secondary);background:var(--accent-subtle);border-bottom:1px solid var(--border)}.console-banner.hidden{display:none}.console-banner-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.console-banner-warn{color:var(--log-level-warn)}.console.reading .console-scroller{border-left:2px solid var(--accent)}.console.drop-target{outline:2px dashed var(--accent);outline-offset:-3px}.console-menu{position:fixed;z-index:60;min-width:180px;display:flex;flex-direction:column;padding:4px;gap:1px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md)}.console-menu-item{text-align:left;background:none;border:0;border-radius:var(--radius-sm);padding:5px 8px;font-size:11px;color:var(--text-primary);cursor:pointer}.console-menu-item:hover{background:var(--bg-hover)}.console-menu-empty{padding:6px 8px;font-size:11px;color:var(--text-secondary)}.console-filter-notice{padding:3px 10px;font-size:11px;color:var(--text-secondary);border-bottom:1px solid var(--border)}.console-filter-notice.hidden{display:none}.console-filter-notice.bad{color:var(--log-level-warn)}.console-search.bad{border-color:var(--log-level-warn)}.console-group{position:absolute;left:0;right:0;height:var(--console-row-h);display:flex;align-items:center;gap:var(--space-xs);padding:0 10px;font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--text-secondary);background:var(--surface-hover-xs);border-top:1px solid var(--border)}.console-group-count{color:var(--text-muted);font-weight:400}.console-pin{display:inline-flex;align-items:center;flex:0 0 auto;border:0;background:none;color:var(--text-muted);font-size:12px;line-height:1;padding:0 2px;cursor:pointer;opacity:0}.console-row:hover .console-pin,.console-pin.on,.console-pin:focus-visible{opacity:1}.console-pin.on{color:var(--accent)}.console-row.pinned{background:var(--accent-subtle)}.console-menu-row{display:flex;align-items:center}.console-menu-row .console-menu-item{flex:1 1 auto;min-width:0}.console-menu-del{display:inline-flex;align-items:center;flex:0 0 auto;border:0;background:none;color:var(--text-muted);cursor:pointer;padding:0 6px;font-size:12px}.console-menu-del:hover{color:var(--log-level-error)}.console-menu-add{display:flex;align-items:center;gap:6px;border-top:1px solid var(--border);margin-top:2px;color:var(--text-secondary)}.pane-copilot{flex:0 0 320px;min-width:260px;max-width:40vw;display:flex;flex-direction:column;background:var(--bg-secondary);border-left:1px solid var(--border)}.pane-copilot.hidden{display:none}.cp-head{display:flex;align-items:center;gap:var(--space-2);padding:8px 10px;border-bottom:1px solid var(--border-light);min-width:0}.cp-head .btn{flex-shrink:0;white-space:nowrap}.cp-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-title{font-weight:600;color:var(--text-primary)}.cp-spacer{flex:1}.cp-close{font-size:16px;line-height:1}.cp-capture-badge{display:inline-flex;align-items:center;flex-shrink:0;font-size:11px;color:var(--text-muted);white-space:nowrap}.cp-msgs{flex:1 1 auto;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px}.cp-empty{color:var(--text-muted);font-size:13px;padding:12px 4px}.cp-msg{max-width:92%;padding:8px 10px;border-radius:var(--radius-md);font-size:13px;line-height:1.45;white-space:pre-wrap;overflow-wrap:break-word}.cp-user{align-self:flex-end;background:var(--accent-subtle);color:var(--text-primary)}.cp-assistant{align-self:flex-start;background:var(--bg-tertiary);color:var(--text-primary)}.cp-note{align-self:center;color:var(--text-muted);font-size:12px;padding:2px 6px}.cp-note-error{color:var(--danger)}.cp-card{align-self:stretch;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);padding:8px 10px;display:flex;flex-direction:column;gap:6px}.cp-card-title{font-weight:600;font-size:13px;color:var(--text-primary)}.cp-card-lines{display:flex;flex-direction:column;gap:2px;font-family:var(--font-mono);font-size:11.5px;color:var(--text-secondary);overflow-x:auto}.cp-card-actions{display:flex;gap:6px}.cp-watch{display:flex;flex-direction:column;gap:2px;padding:4px 8px;border-top:1px solid var(--border-light)}.cp-watch.hidden{display:none}.cp-watch-row{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary)}.cp-watch-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-watch-paused{opacity:.5}.cp-watch-btn{font-size:11px;line-height:1;padding:2px 5px}#btn-copilot.cp-alert{color:var(--accent);position:relative}#btn-copilot.cp-alert:after{content:"";position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--danger)}.cp-status{padding:4px 10px;color:var(--text-muted);font-size:12px}.cp-input{display:flex;gap:6px;padding:8px;border-top:1px solid var(--border-light);align-items:flex-end}.cp-text{flex:1 1 auto;resize:none;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;font:inherit;font-size:13px}.cp-text:focus{outline:none;border-color:var(--accent)}.cp-usage-title{font-weight:600;color:var(--text-primary);margin-bottom:4px}.cp-usage-line{display:flex;justify-content:space-between;gap:8px}.cp-usage-value{font-family:var(--font-mono);font-size:11.5px}.cp-usage-sub{margin-top:8px;font-weight:600;color:var(--text-primary)}.cp-usage-model,.cp-usage-cascade,.cp-usage-user{font-family:var(--font-mono);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cp-usage-empty{margin-top:6px;color:var(--text-muted)}.cp-autonomy-act{color:var(--accent);font-weight:600}#pane-copilot.cp-mode-act .cp-head{box-shadow:inset 0 2px 0 var(--accent)}.cp-autonomy-teach{color:var(--accent);font-weight:600}#pane-copilot.cp-mode-teach .cp-head{box-shadow:inset 0 2px 0 var(--accent)}.cp-focus{border-left:2px solid var(--accent)}.cp-plan .cp-plan-step{display:flex;align-items:center;gap:4px;transition:color .2s ease}.cp-plan-mark{display:inline-flex;flex:none}.cp-plan-mark:empty{display:none}.cp-step-running{color:var(--accent)}.cp-step-done{color:var(--text-muted)}.cp-step-failed{color:var(--danger)}.cp-msg p{margin:0 0 6px}.cp-msg p:last-child{margin-bottom:0}.cp-msg ul,.cp-msg ol{margin:0 0 6px;padding-left:18px}.cp-msg li{margin:2px 0}.cp-msg code{font-family:var(--font-mono);font-size:.92em;background:color-mix(in srgb,currentColor 8%,transparent);border-radius:3px;padding:0 4px}.cp-msg pre{font-family:var(--font-mono);font-size:11.5px;background:color-mix(in srgb,currentColor 7%,transparent);border-radius:var(--radius-sm);padding:6px 8px;margin:0 0 6px;overflow-x:auto;white-space:pre}.modal-cp-usage{width:min(680px,92vw);max-height:82vh}.cp-usage-body{display:flex;flex-direction:column;gap:6px;overflow-y:auto;font-size:var(--font-size-sm);color:var(--text-secondary)}.cp-usage-body .cp-usage-title{color:var(--text-muted);font-size:var(--font-size-xs)}.cp-usage-body .cp-usage-totals{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px;margin:4px 0 6px}.cp-usage-body .cp-usage-line{display:flex;justify-content:space-between;gap:12px}.cp-usage-body .cp-usage-value{font-family:var(--font-mono)}.cp-usage-body .cp-usage-sub{margin-top:10px;font-weight:600;color:var(--text-primary)}.cp-usage-body .cp-usage-model,.cp-usage-body .cp-usage-cascade,.cp-usage-body .cp-usage-user{font-family:var(--font-mono);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmdp-backdrop{position:fixed;inset:0;background:var(--overlay-md);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;z-index:var(--z-header)}.cmdp-panel{width:min(520px,92vw);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.cmdp-input{width:100%;border:none;border-bottom:1px solid var(--border-light);background:var(--bg-input);color:var(--text-primary);font:inherit;font-size:14px;padding:10px 12px;outline:none;box-sizing:border-box}.cmdp-list{max-height:40vh;overflow-y:auto;padding:4px}.cmdp-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 10px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;color:var(--text-primary)}.cmdp-row.active{background:var(--accent-subtle)}.cmdp-id{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.modal-report{max-width:640px}.report-body{display:flex;flex-direction:column;gap:var(--space-md)}.report-lead{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.5}.report-field{display:flex;flex-direction:column;gap:var(--space-xs)}.report-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.report-hint-inline{font-size:var(--font-size-xs);color:var(--text-muted)}.report-input,.report-textarea{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);font-family:inherit}.report-textarea{resize:vertical;min-height:80px;line-height:1.5}.report-input:focus,.report-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.report-link{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;background:none;border:none;padding:0;color:var(--accent);font-size:var(--font-size-sm);font-family:inherit;cursor:pointer}.report-link:hover{text-decoration:underline}.report-chips{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.report-chip{padding:5px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:999px;color:var(--text-secondary);font-size:var(--font-size-sm);font-family:inherit;cursor:pointer;transition:all var(--transition-fast)}.report-chip:hover{background:var(--bg-hover);color:var(--text-primary)}.report-chip.is-on{background:var(--accent);border-color:var(--accent);color:var(--text-inverse)}.report-chip.report-impact-blocking.is-on{background:var(--danger);border-color:var(--danger)}.report-chip.report-impact-severe.is-on{background:var(--warning);border-color:var(--warning);color:var(--text-primary)}.report-section{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg)}.report-section-title{margin:0;font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.report-section-note{margin:0;font-size:var(--font-size-xs);color:var(--text-muted)}.report-pieces{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.report-piece{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md)}.report-piece.is-refused{border-color:var(--danger-muted);opacity:.75}.report-piece-check{flex-shrink:0;accent-color:var(--accent)}.report-piece-thumb{flex-shrink:0;width:36px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:var(--radius-sm);overflow:hidden;color:var(--text-muted)}.report-piece-thumb img{width:100%;height:100%;object-fit:cover}.report-piece-text{display:flex;flex-direction:column;min-width:0;flex:1}.report-piece-name{font-size:var(--font-size-sm);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-piece-meta{font-size:var(--font-size-xs);color:var(--text-muted)}.report-piece-warn{flex-shrink:0;font-size:var(--font-size-xs);color:var(--danger)}.report-piece-drop{flex-shrink:0}.report-drop{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);border:1px dashed var(--border-light);border-radius:var(--radius-md);transition:all var(--transition-fast)}.report-drop.is-over{border-color:var(--accent);background:var(--accent-subtle)}.report-env{padding:var(--space-sm) var(--space-md);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg)}.report-env summary{display:flex;align-items:baseline;gap:var(--space-sm);cursor:pointer;list-style:revert}.report-env-summary{font-size:var(--font-size-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-env-grid{display:flex;flex-direction:column;gap:2px;margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border)}.report-env-row{display:flex;gap:var(--space-sm);font-size:var(--font-size-xs)}.report-env-key{flex:0 0 110px;color:var(--text-muted)}.report-env-value{flex:1;color:var(--text-secondary);word-break:break-word;font-family:var(--font-mono)}.report-footer{align-items:center}.report-hint{margin-right:auto;font-size:var(--font-size-xs);color:var(--text-muted)}.report-error{margin:0;padding:var(--space-sm) var(--space-md);background:var(--danger-muted);border-radius:var(--radius-md);color:var(--danger);font-size:var(--font-size-sm)}.report-done{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-lg) 0;text-align:center}.report-done-mark{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--success-muted);color:var(--success)}.report-done-lead{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.report-done-ref{margin:0;padding:4px 12px;background:var(--bg-tertiary);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--font-size-lg);color:var(--text-primary);-webkit-user-select:all;user-select:all}.report-done-note{margin:0;max-width:42ch;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.5}.nm-root{position:fixed;inset:0;z-index:1300;display:flex;flex-direction:column;background:var(--bg-primary)}.nm-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);font-size:var(--font-size-base)}.nm-title{font-weight:600;color:var(--text-primary);margin-right:4px}.nm-search{flex:0 1 240px;min-width:140px;padding:5px 9px;background:var(--bg-input);border:1px solid var(--border-light);border-radius:var(--radius-md);color:var(--text-primary);font:inherit}.nm-search:focus{outline:none;border-color:var(--accent)}.nm-select{max-width:220px;padding:5px 7px;background:var(--bg-input);border:1px solid var(--border-light);border-radius:var(--radius-md);color:var(--text-primary);font:inherit}.nm-check{display:inline-flex;align-items:center;gap:5px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.nm-btn{padding:5px 10px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-md);color:var(--text-secondary);font:inherit;cursor:pointer}.nm-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.nm-close{display:inline-flex;align-items:center}.nm-btn-icon{width:28px;padding:5px 0;text-align:center}.nm-count{margin-left:auto;color:var(--text-muted);font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-weight:500}.nm-count-filtered{color:var(--accent);font-weight:600}.nm-zoom{display:inline-flex;align-items:center;gap:4px}.nm-zoom-label{min-width:48px;text-align:center;color:var(--text-muted);font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-weight:500}.nm-canvas{position:relative;flex:1;overflow:hidden;cursor:grab;background-image:radial-gradient(circle,var(--border) 1px,transparent 1px);background-size:24px 24px}.nm-canvas.nm-panning{cursor:grabbing}.nm-world{position:absolute;top:0;left:0;transform-origin:0 0;visibility:hidden}.nm-world-ready{visibility:visible}.nm-card,.nm-card *{cursor:inherit!important}.nm-status{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:10px 16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:var(--text-secondary);font-variant-numeric:tabular-nums}.nm-status.hidden{display:none}.learn-layer{position:fixed;inset:0;z-index:var(--z-learn);pointer-events:none}.learn-layer-top{position:fixed;inset:0;z-index:var(--z-learn-coach);pointer-events:none}.learn-spotlight{position:fixed;inset:0;pointer-events:none}.learn-curtain{position:fixed;left:0;top:0;background:var(--learn-curtain);pointer-events:none;transition:opacity var(--transition-normal)}.learn-spotlight.learn-withdrawn .learn-curtain{opacity:0;pointer-events:none!important}.learn-spotlight.learn-settled .learn-curtain,.learn-spotlight.learn-settled .learn-ring{opacity:0;transition:opacity .22s ease-out}.learn-spotlight.learn-locked:after{content:"";position:fixed;inset:0;pointer-events:auto;cursor:progress}.learn-rings{position:fixed;inset:0;pointer-events:none}.learn-spotlight.learn-rings-only .learn-curtain{display:none}.stage-narration{position:fixed;left:0;top:0;max-width:min(420px,calc(100vw - 24px));background:var(--learn-coach-bg);color:var(--learn-coach-fg);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:10px 14px;font-family:var(--font-sans);font-size:var(--font-size-base);line-height:1.45;white-space:pre-wrap;pointer-events:none}.stage-narration[data-position=bottom]{left:50%;top:auto;bottom:7vh;max-width:min(720px,calc(100vw - 48px));transform:translate(-50%);text-align:center;font-size:calc(var(--font-size-base) * 1.15)}.learn-ring{position:fixed;left:0;top:0;border:2px solid var(--learn-ring);border-radius:var(--radius-md);box-shadow:0 0 0 4px var(--learn-ring-glow);animation:learn-ring-breathe 1.6s ease-in-out infinite;pointer-events:none}@keyframes learn-ring-breathe{0%,to{box-shadow:0 0 0 4px var(--learn-ring-glow)}50%{box-shadow:0 0 0 9px transparent}}.learn-coach{position:fixed;left:0;top:0;width:min(380px,calc(100vw - 24px));background:var(--learn-coach-bg);color:var(--learn-coach-fg);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:14px 16px 12px;font-family:var(--font-sans);font-size:var(--font-size-base);line-height:1.45;pointer-events:auto;transition:transform var(--transition-normal)}.learn-coach[data-mode=finished]{width:min(460px,calc(100vw - 24px))}.learn-btn-next-workshop{min-width:0}.learn-btn-next-workshop .learn-btn-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.learn-coach[data-mode=finished] .learn-coach-buttons{flex-wrap:nowrap}.learn-coach-arrow{position:absolute;width:12px;height:12px;background:var(--learn-coach-bg);border-left:1px solid var(--border-light);border-top:1px solid var(--border-light);transform:rotate(45deg);display:none}.learn-coach[data-side=below] .learn-coach-arrow{display:block;top:-7px;left:calc(50% - 6px)}.learn-coach[data-side=above] .learn-coach-arrow{display:block;bottom:-7px;left:calc(50% - 6px);transform:rotate(225deg)}.learn-coach[data-side=right] .learn-coach-arrow{display:block;left:-7px;top:calc(50% - 6px);transform:rotate(-45deg)}.learn-coach[data-side=left] .learn-coach-arrow{display:block;right:-7px;top:calc(50% - 6px);transform:rotate(135deg)}.learn-coach-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px}.learn-coach-title{font-weight:600}.learn-coach-title[hidden]{display:none}.learn-coach-counter{font-size:var(--font-size-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-family:var(--font-mono);font-weight:500}.learn-coach-text{margin:0;min-height:1.45em;white-space:pre-wrap;cursor:default}.learn-coach-text.learn-typing:after{content:"▍";color:var(--learn-ring);animation:learn-caret .9s steps(2) infinite}@keyframes learn-caret{50%{opacity:0}}.learn-coach-hint{margin:8px 0 0;padding:8px 10px;border-left:3px solid var(--learn-ring);background:var(--surface-hover);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.learn-coach-hint[hidden]{display:none}.learn-coach-buttons{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;justify-content:flex-end}@media(prefers-reduced-motion:reduce){.learn-ring{animation:none}.learn-coach{transition:none}.learn-coach-text.learn-typing:after{animation:none}}.modal-learn-panel{max-width:900px;width:min(900px,92vw)}.learn-panel-body{display:flex;flex-direction:column;gap:20px;max-height:min(70vh,720px);overflow-y:auto}.learn-panel-suggest{border:1px solid var(--learn-ring);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.learn-panel-suggest-empty{border-style:dashed}.learn-panel-suggest-kicker{margin:0;font-size:11px;letter-spacing:.08em;font-family:var(--font-mono);font-weight:600;text-transform:uppercase;opacity:.7}.learn-panel-suggest h3,.learn-panel-track-title{margin:0;font-size:15px}.learn-panel-summary{margin:0;font-size:12px;opacity:.75}.learn-panel-rows{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px}.learn-panel-row{border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.learn-panel-row[data-state=locked]{opacity:.68}.learn-panel-row[data-state=done] .learn-panel-row-state{color:var(--success)}.learn-panel-row-head{display:flex;gap:10px;align-items:baseline;width:100%}.learn-panel-row-title{font-weight:600}.learn-panel-row-minutes{margin-left:auto;font-size:11px;opacity:.6}.learn-panel-row-state{font-size:11px;opacity:.8}.learn-panel-missing{margin:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px}.learn-panel-prereq{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font:inherit;text-decoration:underline}.learn-panel-error{margin:0;font-size:12px;color:var(--warning)}.learn-welcome{margin:0 0 8px;padding:10px 12px;border:1px solid var(--learn-ring);border-radius:8px;display:flex;flex-direction:column;gap:6px}.learn-welcome-title{margin:0;font-weight:600}.learn-welcome-body{margin:0;font-size:12px;opacity:.8}.learn-welcome-actions{display:flex;gap:8px}.learn-panel-reset{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.learn-cursor{position:fixed;left:0;top:0;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--learn-cursor);border:2px solid var(--surface);box-shadow:0 2px 6px color-mix(in srgb,var(--shade) 80%,transparent);pointer-events:none;z-index:calc(var(--z-learn) + 2);will-change:transform}.learn-cursor:after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--learn-ring);opacity:0;transform:scale(.6)}.learn-cursor.learn-cursor-click:after{animation:learn-cursor-ripple .42s ease-out}@keyframes learn-cursor-ripple{0%{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(2.2)}}@media(prefers-reduced-motion:reduce){.learn-cursor.learn-cursor-click:after{animation:none}}.learn-keycap{position:fixed;left:0;top:0;max-width:22em;padding:3px 8px;border-radius:6px;background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-on-elevated);box-shadow:0 2px 6px color-mix(in srgb,var(--shade) 80%,transparent);font:600 12px/1.4 var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none;z-index:calc(var(--z-learn) + 2);will-change:transform}.learn-cursor.learn-cursor-down{background:var(--learn-ring);border-color:var(--ink);transform-origin:center;box-shadow:0 0 0 4px var(--learn-ring-glow),0 2px 6px color-mix(in srgb,var(--shade) 80%,transparent)}.learn-drag-trail{position:fixed;left:0;top:0;height:0;width:0;transform-origin:0 50%;border-top:2px dashed var(--learn-ring);opacity:.75;pointer-events:none;z-index:calc(var(--z-learn) + 1);will-change:transform,width}.learn-suggest{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1201;overflow:visible}.learn-suggest-path{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:7 6;opacity:.85;animation:learn-suggest-flow .9s linear infinite}.learn-suggest-dot{fill:none;stroke:var(--accent);stroke-width:2.5;opacity:.5;transition:opacity .16s ease-out,r .16s ease-out}.learn-suggest-dot.learn-suggest-lit{opacity:1;r:13}@keyframes learn-suggest-flow{to{stroke-dashoffset:-26}}@media(prefers-reduced-motion:reduce){.learn-suggest-path{animation:none}}body.learn-running .modal:not(.hidden),body.learn-running .nd-panel,body.learn-running .popup-overlay,body.learn-running .media-modal,body.learn-running .cmdp-backdrop,body.learn-running .tg-menu,body.learn-running .ge-palette,body.learn-running .ge-menu{z-index:var(--z-learn-overlay)}.bridge-badge{position:fixed;left:12px;bottom:40px;z-index:var(--z-bridge);display:flex;align-items:center;gap:8px;max-width:calc(100vw - 24px);padding:6px 8px 6px 12px;border:1px solid var(--bridge-accent);border-radius:999px;background:var(--bg-surface);color:var(--text-primary);box-shadow:0 2px 12px color-mix(in srgb,var(--shade) 36%,transparent);font-family:var(--font-sans);font-size:var(--font-size-xs)}.bridge-badge-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--warning)}.bridge-badge[data-state=ready] .bridge-badge-dot{background:var(--bridge-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--bridge-accent) 20%,transparent)}.bridge-badge[data-state=refused] .bridge-badge-dot,.bridge-badge[data-state=superseded] .bridge-badge-dot{background:var(--danger)}.bridge-badge-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.bridge-badge-mode{flex:none;padding:1px 6px;border-radius:999px;background:var(--bg-tertiary);color:var(--text-secondary);font-family:var(--font-mono);font-weight:600;text-transform:uppercase;letter-spacing:.08em}.bridge-badge button{flex:none;padding:2px 10px;border:1px solid var(--border-light);border-radius:999px;background:transparent;color:var(--text-secondary);font:inherit;cursor:pointer}.bridge-badge button:hover,.bridge-badge button:focus-visible{border-color:var(--bridge-accent);color:var(--text-primary)}.bridge-badge button[aria-pressed=true]{border-color:var(--bridge-accent);background:var(--bridge-accent);color:var(--text-inverse)}html.bridge-recording .bridge-badge,html.bridge-rec-hide-cursor .learn-cursor,html.bridge-rec-hide-cursor .learn-keycap,html.bridge-rec-hide-hints #graph-hint{visibility:hidden}body.marketplace-view{overflow:auto;height:auto;background:var(--bg-primary)}body.marketplace-view #app,body.marketplace-view #btn-console{display:none}.mkt-page{min-height:100vh;color:var(--text-primary);font-family:var(--font-sans);font-size:var(--font-size-base)}.mkt-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.mkt-header{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-md) var(--space-xl);background:var(--bg-secondary);border-bottom:1px solid var(--border)}.mkt-brand{display:block;flex:none;padding:7px;line-height:0;border-radius:var(--radius-sm)}.mkt-brand img{display:block}.mkt-brand:focus-visible{outline:none;box-shadow:var(--focus-ring)}.mkt-heading{flex:1;min-width:0}.mkt-title{margin:0;font-size:var(--font-size-2xl);line-height:1.2}.mkt-tagline{margin:2px 0 0;color:var(--text-secondary)}.mkt-header-actions{display:flex;align-items:center;gap:var(--space-md)}.mkt-lang-select,.mkt-sort,.mkt-search{font:inherit;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.mkt-editor-link{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--accent);color:var(--text-inverse);text-decoration:none;font-weight:600;white-space:nowrap}.mkt-editor-link:hover{background:var(--accent-hover)}.mkt-toolbar{display:flex;gap:var(--space-md);padding:var(--space-md) var(--space-xl)}.mkt-search-wrap{flex:1}.mkt-search{width:100%;box-sizing:border-box}.mkt-body{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--space-xl);padding:0 var(--space-xl) var(--space-2xl);align-items:start}.mkt-filters{position:sticky;top:var(--space-md);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-md)}.mkt-filters-summary{font-weight:600;cursor:pointer}.mkt-facets{display:flex;flex-direction:column;gap:var(--space-md);margin-top:var(--space-md)}.mkt-facet{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-xs)}.mkt-facet legend{padding:0;margin-bottom:var(--space-xs);font-size:var(--font-size-xs);font-weight:600;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.mkt-chip{font:inherit;font-size:var(--font-size-sm);border:1px solid var(--border-light);background:var(--bg-surface);color:var(--text-secondary);border-radius:999px;padding:3px 10px;cursor:pointer}.mkt-chip:hover{background:var(--bg-hover)}.mkt-chip.is-on{background:var(--accent);border-color:var(--accent);color:var(--text-inverse)}.mkt-clear{margin-top:var(--space-md);font:inherit;background:none;border:0;color:var(--accent);cursor:pointer;padding:0}.mkt-clear:disabled{color:var(--text-muted);cursor:default}.mkt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-lg)}.mkt-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .12s ease,transform .12s ease}.mkt-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.mkt-card-link{display:block;color:inherit;text-decoration:none}.mkt-card-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.mkt-card-img{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover;background:var(--bg-tertiary)}.mkt-card-noimg{display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.mkt-card-body{padding:var(--space-md)}.mkt-card-title{margin:0;font-size:var(--font-size-lg);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mkt-card-author,.mkt-card-opens{margin:var(--space-xs) 0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.mkt-card-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs);list-style:none;margin:var(--space-sm) 0 0;padding:0}.mkt-tag{font-size:var(--font-size-xs);background:var(--accent-subtle);color:var(--accent);border-radius:999px;padding:2px 8px}.mkt-status{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-xl) 0;color:var(--text-secondary)}.mkt-status:empty{padding:0}.mkt-status-text{margin:0}.mkt-retry{font:inherit;border:1px solid var(--border-light);background:var(--bg-surface);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-md);cursor:pointer}.mkt-sentinel{height:1px}@media(max-width:720px){.mkt-header{flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-md)}.mkt-heading{flex-basis:100%;order:2}.mkt-header-actions{margin-left:auto}.mkt-toolbar{flex-direction:column;padding:var(--space-md)}.mkt-body{grid-template-columns:minmax(0,1fr);gap:var(--space-md);padding:0 var(--space-md) var(--space-xl)}.mkt-filters{position:static}.mkt-grid{grid-template-columns:minmax(0,1fr)}}.mkt-modal{width:min(960px,calc(100vw - 32px));max-height:calc(100vh - 32px);display:flex;flex-direction:column}.mkt-modal-body{overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md)}.mkt-carousel-stage{position:relative;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-tertiary);touch-action:pan-y}.mkt-carousel-img{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover;cursor:zoom-in;-webkit-user-select:none;user-select:none}.mkt-carousel-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;display:flex;align-items:center;justify-content:center;padding:0;background:var(--overlay-dark);color:var(--text-inverse);cursor:pointer}.mkt-carousel-nav[hidden]{display:none}.mkt-carousel-prev{left:var(--space-sm)}.mkt-carousel-next{right:var(--space-sm)}.mkt-carousel-foot{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-top:var(--space-sm)}.mkt-carousel-dots{display:flex;gap:var(--space-xs)}.mkt-carousel-dot{width:10px;height:10px;padding:0;border-radius:50%;border:0;background:var(--border-light);cursor:pointer}.mkt-carousel-dot[aria-selected=true]{background:var(--accent)}.mkt-carousel-counter{font-size:var(--font-size-xs);color:var(--text-muted)}.mkt-modal-meta{margin:0;color:var(--text-muted)}.mkt-modal-description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}.mkt-modal-description:empty{display:none}.mkt-modal-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs);list-style:none;margin:0;padding:0}.mkt-tag-btn{font:inherit;font-size:var(--font-size-sm);border:0;cursor:pointer}.mkt-tag-btn:hover{background:var(--accent-light)}.mkt-modal-licence{margin:0;font-size:var(--font-size-sm)}.mkt-modal-licence-label{color:var(--text-muted)}.mkt-modal-message:empty{display:none}.mkt-modal-actions{display:flex;justify-content:space-between;gap:var(--space-md)}.mkt-modal-actions .mkt-open{margin-left:auto}.mkt-modal-actions .mkt-remove-btn{color:var(--danger)}.mkt-prompt,.mkt-report{width:min(480px,calc(100vw - 32px))}.mkt-prompt-body{margin:0 0 var(--space-md);line-height:1.5}.mkt-prompt-signin{color:var(--accent);font-size:var(--font-size-sm)}.mkt-prompt-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.mkt-report-form{display:flex;flex-direction:column;gap:var(--space-md)}.mkt-report-intro{margin:0}.mkt-report-reasons{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.mkt-report-reasons legend{font-weight:600;margin-bottom:var(--space-xs)}.mkt-report-reason{display:flex;gap:var(--space-sm);align-items:center}.mkt-report-field{display:flex;flex-direction:column;gap:var(--space-xs)}.mkt-report-message{font:inherit;resize:vertical;border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--space-sm)}.mkt-report-error{margin:0;color:var(--danger)}.mkt-report-done{margin:0;color:var(--success)}.mkt-report-error:empty,.mkt-report-done:empty{display:none}.mkt-report-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.mkt-page [hidden],.mkt-modal [hidden],.mkt-report [hidden]{display:none!important}.mkt-pub,.mkt-mine{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 32px);display:flex;flex-direction:column}.mkt-pub-body,.mkt-mine .modal-body{overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md)}.mkt-pub-steps{display:flex;gap:var(--space-sm);list-style:none;margin:0;padding:0;counter-reset:step}.mkt-pub-steps li{counter-increment:step;flex:1;font-size:var(--font-size-sm);color:var(--text-muted);padding-top:var(--space-xs);border-top:3px solid var(--border-light)}.mkt-pub-steps li:before{content:counter(step) ". "}.mkt-pub-steps li.is-done{border-top-color:var(--accent-moderate)}.mkt-pub-steps li.is-current{color:var(--text-primary);font-weight:600;border-top-color:var(--accent)}.mkt-pub-field{display:flex;flex-direction:column;gap:var(--space-xs);border:0;margin:0;padding:0}.mkt-pub-field>span:first-child,.mkt-pub-field legend{font-weight:600;padding:0}.mkt-pub-title,.mkt-pub-description,.mkt-pub-locale{font:inherit;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--space-sm)}.mkt-pub-description{resize:vertical}.mkt-pub-counter{font-size:var(--font-size-xs);color:var(--text-muted);font-weight:400}.mkt-pub-licence{display:flex;gap:var(--space-sm);align-items:flex-start}.mkt-pub-licence>span{display:flex;flex-direction:column}.mkt-pub-licence-explain{font-size:var(--font-size-sm);color:var(--text-secondary)}.mkt-pub-tags{gap:var(--space-sm)}.mkt-pub-note{margin:0;color:var(--text-secondary);line-height:1.5}.mkt-pub-subtitle{margin:0;font-size:var(--font-size-base)}.mkt-pub-assets{margin:0;padding:0;list-style:none;border:1px solid var(--border);border-radius:var(--radius-md)}.mkt-pub-assets li{display:flex;justify-content:space-between;padding:var(--space-xs) var(--space-sm)}.mkt-pub-assets li+li{border-top:1px solid var(--border)}.mkt-pub-size{color:var(--text-muted)}.mkt-pub-warning{margin:0;color:var(--warning)}.mkt-pub-rights-row{display:flex;gap:var(--space-sm);align-items:flex-start}.mkt-pub-pictures{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-sm)}.mkt-pub-picture{margin:0;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-surface)}.mkt-pub-picture.is-cover{border-color:var(--accent)}.mkt-pub-picture img,.mkt-pub-picture-placeholder{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;background:var(--bg-tertiary)}.mkt-pub-picture figcaption{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs)}.mkt-pub-cover{font-size:var(--font-size-xs);color:var(--accent);margin-right:auto}.mkt-pub-icon{display:inline-flex;align-items:center;justify-content:center;padding:0;font:inherit;border:1px solid var(--border-light);background:var(--bg-surface);border-radius:var(--radius-sm);width:26px;height:26px;cursor:pointer}.mkt-pub-picture figcaption .mkt-pub-icon:first-of-type:not(:only-child){margin-left:auto}.mkt-pub-icon:disabled{opacity:.4;cursor:default}.mkt-pub-picture-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.mkt-pub-error{margin:0;color:var(--danger)}.mkt-pub-error:empty{display:none}.mkt-pub-success{margin:0;font-weight:600;color:var(--success)}.mkt-pub-actions,.mkt-crop-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.mkt-crop{width:min(780px,calc(100vw - 32px))}.mkt-crop-body{display:flex;flex-direction:column;gap:var(--space-sm);align-items:center}.mkt-crop-canvas{max-width:100%;border-radius:var(--radius-md);cursor:grab;touch-action:none;background:var(--bg-tertiary)}.mkt-crop-zoom-row{display:flex;gap:var(--space-sm);align-items:center;width:100%}.mkt-crop-zoom{flex:1}.mkt-crop-hint{margin:0;color:var(--text-secondary)}.mkt-crop-warning{margin:0;color:var(--danger)}.mkt-crop-warning:empty{display:none}.mkt-mine-status{margin:0;color:var(--text-secondary)}.mkt-mine-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.mkt-mine-row{display:flex;gap:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm)}.mkt-mine-cover{width:160px;flex:none;align-self:flex-start;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--radius-sm);background:var(--bg-tertiary)}.mkt-mine-info{display:flex;flex-direction:column;gap:2px;min-width:0}.mkt-mine-badge{align-self:flex-start;font-size:var(--font-size-xs);border-radius:999px;padding:1px 8px;background:var(--bg-tertiary);color:var(--text-secondary)}.mkt-mine-badge.is-published{background:var(--success-muted);color:var(--success)}.mkt-mine-badge.is-removed{background:var(--danger-muted);color:var(--danger)}.mkt-mine-meta,.mkt-mine-reason{font-size:var(--font-size-sm);color:var(--text-muted)}.mkt-mine-actions{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-xs)}.mkt-mine-delete{color:var(--danger)}@media(max-width:720px){.mkt-mine-row{flex-direction:column}.mkt-mine-cover{width:100%}}.mkt-pub [hidden],.mkt-mine [hidden]{display:none!important}.mkt-mine-bulk{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.mkt-mine-bulk:empty{display:none}.mkt-mine-badge.is-anonymous{background:var(--bg-tertiary);color:var(--text-muted)}.mkt-tags{width:min(860px,calc(100vw - 32px));max-height:calc(100vh - 32px);display:flex;flex-direction:column}.mkt-tags .modal-body{overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md)}.mkt-tags [hidden]{display:none!important}.mkt-tags-toolbar{display:flex;gap:var(--space-sm);align-items:center}.mkt-tags-search{flex:1;min-width:0}.mkt-tags-status,.mkt-tags-empty,.mkt-tags-hint{margin:0;font-size:var(--font-size-sm);color:var(--text-muted)}.mkt-tags-editor{display:flex;flex-direction:column;gap:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);background:var(--bg-secondary)}.mkt-tags-editor h3,.mkt-tags-facet h3{margin:0;font-size:var(--font-size-base)}.mkt-tags-field{display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--font-size-sm)}.mkt-tags-label-input.is-invalid{border-color:var(--danger)}.mkt-tags-problems{margin:0;min-height:1.2em;font-size:var(--font-size-sm);color:var(--danger)}.mkt-tags-editor-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.mkt-tags-facet{display:flex;flex-direction:column;gap:var(--space-xs)}.mkt-tags-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.mkt-tags-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-sm);background:var(--bg-primary)}.mkt-tags-row[draggable=true]{cursor:grab}.mkt-tags-row.is-dragging{opacity:.5}.mkt-tags-row.is-inactive .mkt-tags-labels{opacity:.6}.mkt-tags-id{font-size:var(--font-size-xs);color:var(--text-secondary);min-width:9em}.mkt-tags-labels{flex:1;display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md);min-width:12em}.mkt-tags-label.is-missing{color:var(--danger)}.mkt-tags-uses{font-size:var(--font-size-xs);color:var(--text-muted)}.mkt-tags-badge{font-size:var(--font-size-xs);border-radius:999px;padding:1px 8px;background:var(--bg-tertiary);color:var(--text-secondary)}.mkt-tags-badge.is-missing{background:var(--danger-muted);color:var(--danger)}.mkt-tags-actions{display:flex;gap:var(--space-xs);margin-left:auto}@media(max-width:600px){.mkt-tags-actions{margin-left:0;width:100%;justify-content:flex-end}}.mkt-removed{width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 32px);display:flex;flex-direction:column}.mkt-removed .modal-body{overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md)}.mkt-removed-status{margin:0;font-size:var(--font-size-sm);color:var(--text-muted)}.mkt-removed-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.mkt-removed-row{display:flex;align-items:flex-start;gap:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm)}.mkt-removed-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-xs);overflow-wrap:anywhere}.mkt-removed-meta,.mkt-removed-reason{font-size:var(--font-size-sm);color:var(--text-secondary)}.mkt-removed-reason{white-space:pre-wrap}
