.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--canvas);color:var(--ink)}.auth-card{width:min(400px,100%);display:flex;flex-direction:column;gap:16px}.auth-card h1{margin:0;font-size:22px;font-weight:500}.auth-card .form{display:flex;flex-direction:column;gap:14px}.auth-card .btn{width:100%;justify-content:center}.auth-links{display:flex;gap:16px;justify-content:center;font-size:13px}.auth-links a{color:var(--muted)}:root{--canvas: #e0e0e0;--ash: #e5e5e5;--card: #ffffff;--ink: #09352e;--hairline: #cad3d2;--muted: #6c7a79;--moss: #85c093;--fern: #007010;--emerald: #008023;--charcoal: #29211e;--sage: #77aa83;--indigo: #433787;--dot: #cad3d2;--logo-filter: none;--field: #e5e5e5;--chip-ink: #ffffff;--scrim: rgba(9, 53, 45, .42);--error: #9c3b28;--shade: rgba(9, 53, 45, .06);--t-image: #008023;--t-video: #6c7a79;--t-audio: #77aa83;--t-text: #007010;--t-3d: #433787;--t-json: #a67c1e;--t-any: #09352e;--marquee: rgba(0, 128, 35, .1);--marquee-line: #008023;--tint: 0%;--on-accent: #09352e;--role-input: #2f5f8f;--role-model: #6b4a9e;--role-tool: #a67c1e;--role-output: #b3467c;--panel: #eceded;--edge-l: rgba(9,53,45,.07) 10px 0px 18px -12px;--edge-r: rgba(9,53,45,.07) -10px 0px 18px -12px;--lift: var(--edge-l), var(--edge-r), rgba(9,53,45,.1) 0 12px 22px -12px;--button-shadow: #91aaa4;--button-active: var(--emerald)}[data-theme=studio]{--canvas: #d9d5c8;--ash: #e3dfd2;--card: #efece2;--ink: #191917;--hairline: rgba(25, 25, 23, .24);--muted: #8b887f;--moss: #f4d941;--fern: #b85432;--emerald: #00c9cf;--charcoal: #1a2742;--sage: #c8c2e8;--indigo: #4a5d3a;--dot: rgba(25, 25, 23, .26);--logo-filter: none;--field: #e3dfd2;--chip-ink: #efece2;--scrim: rgba(25, 25, 23, .5);--error: #c53a24;--shade: rgba(25, 25, 23, .07);--t-image: #00c9cf;--t-video: #ff5c45;--t-audio: #b85432;--t-text: #4a5d3a;--t-3d: #8a6bc4;--t-json: #8a7a2e;--t-any: #1a2742;--marquee: rgba(255, 92, 69, .12);--marquee-line: #ff5c45;--tint: 14%;--on-accent: #191917;--role-input: #3d6fa8;--role-model: #8a6bc4;--role-tool: #8a7a2e;--role-output: #b3467c;--panel: #eae6da;--edge-l: rgba(25,25,23,.1) 10px 0px 18px -12px;--edge-r: rgba(25,25,23,.1) -10px 0px 18px -12px;--lift: var(--edge-l), var(--edge-r), rgba(25,25,23,.14) 0 12px 22px -12px;--button-shadow: #a89f7d;--button-active: var(--moss)}[data-theme=dark]{--canvas: #1b1a19;--ash: #211f1d;--card: #282422;--ink: #e9efec;--hairline: #3d4341;--muted: #98a3a1;--moss: #85c093;--fern: #8ed3a0;--emerald: #7cc98f;--charcoal: #0e0d0d;--sage: #5d7d66;--indigo: #a79ce8;--dot: #373d3b;--logo-filter: invert(1);--field: #1f1d1b;--chip-ink: #12100f;--scrim: rgba(0, 0, 0, .6);--error: #d98b78;--shade: rgba(255, 255, 255, .06);--t-image: #7cc98f;--t-video: #98a3a1;--t-audio: #85c093;--t-text: #8ed3a0;--t-3d: #c9a8f0;--t-json: #e0b559;--t-any: #e9efec;--marquee: rgba(124, 201, 143, .14);--marquee-line: #7cc98f;--tint: 0%;--on-accent: #09352e;--role-input: #7fb0e0;--role-model: #c9a8f0;--role-tool: #e0b559;--role-output: #d888c2;--panel: #232120;--edge-l: rgba(0,0,0,.45) 10px 0px 20px -12px;--edge-r: rgba(0,0,0,.45) -10px 0px 20px -12px;--lift: var(--edge-l), var(--edge-r), rgba(0,0,0,.55) 0 14px 28px -12px;--button-shadow: #4c5d56;--button-active: var(--emerald)}[data-theme=keycaps]{--canvas: #edf6f8;--ash: #e4eef1;--card: #fbfdfd;--ink: #071a3b;--hairline: #758096;--muted: #6f7b8d;--moss: #8cf29f;--fern: #23b866;--emerald: #8e9df4;--charcoal: #071a3b;--sage: #aab7f7;--indigo: #8e9df4;--dot: #b9c7cf;--logo-filter: none;--field: #dce9ee;--chip-ink: #f8fbff;--scrim: rgba(7, 26, 59, .42);--error: #b34d52;--shade: rgba(7, 26, 59, .08);--t-image: #23b866;--t-video: #758096;--t-audio: #8e9df4;--t-text: #071a3b;--t-3d: #6575dc;--t-json: #a67c1e;--t-any: #071a3b;--marquee: rgba(142, 157, 244, .16);--marquee-line: #6575dc;--tint: 0%;--on-accent: #071a3b;--role-input: #4e8b9e;--role-model: #6575dc;--role-tool: #a67c1e;--role-output: #ad568a;--panel: #e7f0f3;--edge-l: rgba(7,26,59,.1) 10px 0px 18px -12px;--edge-r: rgba(7,26,59,.1) -10px 0px 18px -12px;--lift: var(--edge-l), var(--edge-r), rgba(7,26,59,.18) 0 12px 22px -12px;--button-shadow: #7181c4;--button-active: var(--indigo)}html,body{margin:0;padding:0;height:100%}*{box-sizing:border-box}body{background-color:var(--canvas);color:var(--ink);background-image:radial-gradient(var(--dot) .9px,transparent .9px);background-size:26px 26px;font-family:IBM Plex Sans,system-ui,sans-serif;font-size:14px;letter-spacing:.012em;-webkit-font-smoothing:antialiased;overflow:hidden}input,textarea,button,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}::placeholder{color:var(--muted)}[hidden]{display:none!important}.mono{font-family:IBM Plex Mono,monospace}.muted{color:var(--muted)}.ink{color:var(--ink)}.err{color:var(--error)}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.row{display:flex;align-items:center;gap:8px;min-width:0}.col{display:flex;flex-direction:column;gap:8px;min-width:0}.spacer{flex:1 1 auto}.wrap{flex-wrap:wrap}@keyframes bnb-pulse{0%,to{opacity:1}50%{opacity:.2}}@keyframes bnb-flow{to{stroke-dashoffset:-22}}@keyframes bnb-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes bnb-slide{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes bnb-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes bnb-err{0%,to{box-shadow:var(--error) 0 0 0 1px inset}50%{box-shadow:var(--error) 0 0 0 2px inset}}.app{height:100vh;display:grid;grid-template-rows:56px 1fr;grid-template-columns:216px 1fr}.app.no-side{grid-template-columns:1fr}.hdr{grid-column:1 / -1;position:relative;z-index:40;display:flex;align-items:center;gap:14px;padding:0 16px;background:var(--card);box-shadow:var(--moss) 0 -2px 0 0 inset,var(--hairline) 0 -.5px 0 0 inset}.hdr-logo{height:18px;width:auto;display:block;cursor:pointer;filter:var(--logo-filter)}.hdr-crumbs{display:flex;align-items:center;gap:8px;min-width:0;font-family:IBM Plex Mono,monospace;font-size:12px}.hdr-crumbs a{color:var(--muted)}.hdr-crumbs a:hover{color:var(--ink)}.hdr-crumbs .sep{color:var(--hairline)}.hdr-crumbs strong{font-weight:500}.search-trigger{min-width:240px;height:36px;display:flex;align-items:center;gap:10px;padding:0 10px;background:var(--field);border:none;border-radius:4px;cursor:pointer;color:var(--muted);box-shadow:var(--hairline) 0 0 0 .5px inset;font-size:13px}.search-trigger kbd,kbd{font-family:IBM Plex Mono,monospace;font-size:10px;padding:2px 5px;border-radius:3px;background:var(--card);box-shadow:var(--hairline) 0 0 0 .5px inset;color:var(--muted)}.search-trigger kbd{margin-left:auto}.avatar{width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;flex:none;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500;color:var(--chip-ink)}.avatar.sm{width:20px;height:20px;font-size:9px}.ws-switch{position:relative}.ws-btn{min-height:40px;max-width:230px;display:flex;align-items:center;gap:8px;background:transparent;border:none;padding:7px 10px;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:11px;text-align:left;box-shadow:var(--hairline) 0 0 0 .5px inset;border-radius:4px}.ws-btn:hover{background:var(--shade)}.menu{position:absolute;top:calc(100% + 6px);left:0;min-width:260px;z-index:60;padding:6px;background:var(--card);border-radius:8px;box-shadow:var(--hairline) 0 0 0 .5px inset,var(--lift);animation:bnb-pop .12s ease}.menu.right{left:auto;right:0}.menu-label{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px}.menu-item{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border:none;background:transparent;border-radius:4px;cursor:pointer;text-align:left;font-size:13px}.menu-item:hover,.menu-item.active{background:var(--shade)}.menu-item .check{margin-left:auto;color:var(--emerald)}.menu-sep{height:.5px;background:var(--hairline);margin:6px 4px}.side{background:var(--panel);padding:14px 10px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;box-shadow:var(--hairline) -.5px 0 0 0 inset}.side-label{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:14px 10px 6px}.side-link{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:4px;font-size:13px;color:var(--ink)}.side-link:hover{background:var(--shade)}.side-link.active{background:var(--card);box-shadow:var(--hairline) 0 0 0 .5px inset;font-weight:500}.side-link.active .ico{color:var(--emerald)}.side-link .count{margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--muted)}.side-link .live{width:6px;height:6px;border-radius:50%;background:var(--emerald);margin-left:auto;animation:bnb-pulse 1.4s infinite}.ico{width:16px;height:16px;display:inline-block;flex:none}.side-foot{margin-top:auto;padding-top:12px}.main{overflow-y:auto;position:relative;min-width:0;background-color:var(--canvas);background-image:radial-gradient(var(--dot) .9px,transparent .9px);background-size:26px 26px}.page{max-width:1320px;margin:0 auto;padding:28px 32px 64px;display:flex;flex-direction:column;gap:24px}.page.narrow{max-width:1040px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}.eyebrow{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}h1{margin:4px 0 0;font-size:30px;line-height:1.12;font-weight:400;letter-spacing:-.01em}h2{margin:0;font-size:18px;font-weight:500;letter-spacing:0}h3{margin:0;font-size:14px;font-weight:500}p{margin:0;line-height:1.5}.lede{color:var(--muted);max-width:720px;margin-top:8px}.section{display:flex;flex-direction:column;gap:12px;min-width:0}.section-head{display:flex;align-items:center;gap:12px}.section-head .link{margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--fern)}.section-head .link:hover{text-decoration:underline}.btn{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;border-radius:4px;font-weight:500;font-size:13px;white-space:nowrap;cursor:pointer;background:var(--card);color:var(--ink);border:1px solid var(--button-shadow);box-shadow:2px 2px 0 var(--button-shadow);transition:transform .08s ease,border-color .08s ease,box-shadow .08s ease,background .12s ease}.btn:active{transform:translate(1px,1px);border-color:var(--button-active);box-shadow:1px 1px 0 var(--button-active)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--emerald);color:var(--on-accent)}.btn.accent{background:var(--moss);color:var(--on-accent)}.btn.danger{background:color-mix(in srgb,var(--error) 12%,var(--card));color:var(--error);border-color:var(--error);box-shadow:2px 2px 0 var(--error)}.btn.sm{min-height:30px;padding:5px 10px;font-size:12px}.btn.lg{min-height:44px;padding:10px 20px;font-size:14px}.btn.ghost{border:none;box-shadow:none;background:transparent}.btn.ghost:hover{background:var(--shade)}.btn.ghost:active{transform:none}.btn.square{width:36px;padding:0}.icon-btn{width:36px;height:36px;display:inline-grid;place-items:center;border:none;background:transparent;border-radius:4px;cursor:pointer;color:var(--ink)}.icon-btn:hover{background:var(--shade)}.fav{color:var(--muted)}.fav.on{color:var(--fern)}.card{background:var(--card);border-radius:8px;box-shadow:var(--hairline) 0 0 0 .5px inset;min-width:0}.card.pad{padding:16px}.card.pad-lg{padding:22px}.card.hover{cursor:pointer;transition:box-shadow .12s ease,transform .12s ease}.card.hover:hover{box-shadow:var(--ink) 0 0 0 .5px inset,var(--lift)}.grid{display:grid;gap:14px}.grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.auto{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.grid.auto-sm{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}.kpi{padding:16px;display:flex;flex-direction:column;gap:6px}.kpi .v{font-size:26px;font-weight:400;letter-spacing:-.01em}.kpi .d{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--muted)}.entity-card{display:flex;flex-direction:column;overflow:hidden}.entity-card .thumb{aspect-ratio:16 / 10;border-radius:8px 8px 0 0}.entity-card .body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px}.entity-card .title{font-weight:500}.entity-card .meta{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.thumb{position:relative;overflow:hidden;background:var(--ash);display:block}.thumb svg{width:100%;height:100%;display:block}.thumb.fill{height:100%;min-height:110px}.thumb.hero{aspect-ratio:16 / 10;border-radius:10px;width:100%}.swatches{display:flex;gap:6px}.swatch{width:28px;height:28px;border-radius:6px;box-shadow:var(--hairline) 0 0 0 .5px inset}.settings-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;align-items:start}.settings-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:0}.form{display:flex;flex-direction:column;gap:16px;max-width:620px}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:820px){.settings-layout{grid-template-columns:1fr}.settings-nav{flex-direction:row;overflow-x:auto;position:static}}.list-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:6px;cursor:pointer;min-width:0}.list-row:hover{background:var(--shade)}.list-row .thumb{width:40px;height:40px;border-radius:6px;flex:none}.list-row .t{font-size:13px;font-weight:500}.list-row .s{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--muted)}.chip{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:999px;white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.02em;background:var(--shade);color:var(--ink);box-shadow:var(--hairline) 0 0 0 .5px inset}.chip.solid{background:var(--ink);color:var(--chip-ink);box-shadow:none}.chip .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.type-tag{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.status{display:inline-flex;align-items:center;gap:6px;font-family:IBM Plex Mono,monospace;font-size:11px;white-space:nowrap}.status .dot{width:7px;height:7px;border-radius:50%;background:var(--muted);flex:none}.status.completed .dot,.status.approved .dot,.status.active .dot,.status.healthy .dot,.status.published .dot,.status.enabled .dot{background:var(--emerald)}.status.running .dot,.status.busy .dot,.status.active-job .dot{background:var(--moss);animation:bnb-pulse 1.2s infinite}.status.failed .dot,.status.unavailable .dot,.status.offline .dot,.status.suspended .dot,.status.error .dot{background:var(--error)}.status.failed,.status.unavailable{color:var(--error)}.status.review .dot,.status.partial .dot,.status.in-production .dot,.status.delayed .dot,.status.trial .dot,.status.waiting .dot{background:var(--t-json)}.status.queued .dot,.status.draft .dot{background:transparent;box-shadow:var(--muted) 0 0 0 1px inset}.status.cancelled .dot,.status.deprecated .dot,.status.archived .dot,.status.skipped .dot,.status.disabled .dot{background:var(--hairline)}.status.cancelled,.status.archived,.status.skipped{color:var(--muted)}.seg{display:inline-flex;padding:2px;border-radius:6px;background:var(--field);box-shadow:var(--hairline) 0 0 0 .5px inset}.seg button{border:none;background:transparent;padding:5px 10px;border-radius:4px;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--muted)}.seg button.on{background:var(--card);color:var(--ink);box-shadow:var(--hairline) 0 0 0 .5px inset}.tabs{display:flex;gap:2px;overflow-x:auto;box-shadow:var(--hairline) 0 -.5px 0 0 inset;scrollbar-width:none}.tab{padding:10px 12px;border:none;background:transparent;cursor:pointer;white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--muted)}.tab:hover{color:var(--ink)}.tab.on{color:var(--ink);box-shadow:var(--moss) 0 -2px 0 0 inset}.tab .n{margin-left:6px;font-size:10px;color:var(--muted)}.input,.select,.textarea{height:36px;padding:0 10px;border:none;border-radius:4px;background:var(--field);color:var(--ink);box-shadow:var(--hairline) 0 0 0 .5px inset;outline:none;min-width:0}.textarea{height:auto;padding:8px 10px;resize:vertical;line-height:1.45}.input:focus,.select:focus,.textarea:focus{box-shadow:var(--emerald) 0 0 0 1px inset}.select{padding-right:26px;appearance:none;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 13px) 15px,calc(100% - 9px) 15px;background-size:4px 4px;background-repeat:no-repeat}.select.sm,.input.sm{height:30px;font-size:12px}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.field .hint{font-size:12px;color:var(--muted)}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search{position:relative;flex:1 1 260px;max-width:420px}.search .input{width:100%;padding-left:32px}.search .ico{position:absolute;left:10px;top:10px;color:var(--muted)}.type-chips{display:flex;gap:6px;flex-wrap:wrap}.type-chips button{height:30px;padding:0 12px;border-radius:999px;border:none;cursor:pointer;background:transparent;font-family:IBM Plex Mono,monospace;font-size:11px;box-shadow:var(--hairline) 0 0 0 .5px inset;color:var(--ink)}.type-chips button.on{background:var(--ink);color:var(--chip-ink);box-shadow:none}.type-chips button .n{opacity:.6;margin-left:4px}.toggle{position:relative;width:34px;height:20px;border-radius:999px;background:var(--hairline);border:none;cursor:pointer;flex:none}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--card);transition:left .12s ease}.toggle.on{background:var(--emerald)}.toggle.on:after{left:16px}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:10px 12px;box-shadow:var(--hairline) 0 -.5px 0 0 inset;white-space:nowrap}.table td{padding:10px 12px;box-shadow:var(--hairline) 0 -.5px 0 0 inset;vertical-align:middle}.table tr:last-child td{box-shadow:none}.table tbody tr.click{cursor:pointer}.table tbody tr.click:hover td{background:var(--shade)}.table td.num,.table th.num{text-align:right;font-family:IBM Plex Mono,monospace;font-size:12px}.table td.mono{font-family:IBM Plex Mono,monospace;font-size:12px}.table .cell-entity{display:flex;align-items:center;gap:10px;min-width:0}.table .cell-entity .thumb{width:32px;height:32px;border-radius:5px;flex:none}.kv{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px 12px;font-size:13px}.kv dt{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--muted);padding-top:1px}.kv dd{margin:0;min-width:0}.code{font-family:JetBrains Mono,IBM Plex Mono,monospace;font-size:11.5px;line-height:1.55;white-space:pre;overflow:auto;background:var(--field);border-radius:6px;padding:10px 12px;box-shadow:var(--hairline) 0 0 0 .5px inset;max-height:320px}.tree{font-family:IBM Plex Mono,monospace;font-size:12px;line-height:1.9}.tree .l1{padding-left:0}.tree .l2{padding-left:18px;color:var(--ink)}.tree .l3{padding-left:36px;color:var(--muted)}.tree a:hover{color:var(--fern);text-decoration:underline}.banner{padding:12px 14px;border-radius:6px;font-size:13px;display:flex;gap:10px;align-items:flex-start}.banner.error{background:color-mix(in srgb,var(--error) 10%,var(--card));box-shadow:var(--error) 0 0 0 .5px inset}.banner.ok{background:color-mix(in srgb,var(--moss) 14%,var(--card));box-shadow:var(--moss) 0 0 0 .5px inset}.banner.info{background:var(--shade);box-shadow:var(--hairline) 0 0 0 .5px inset}.empty{padding:36px 20px;text-align:center;color:var(--muted);font-size:13px}.bar{height:6px;border-radius:999px;background:var(--field);overflow:hidden;box-shadow:var(--hairline) 0 0 0 .5px inset}.bar>span{display:block;height:100%;background:var(--emerald)}.scrim{position:fixed;inset:0;background:var(--scrim);z-index:90;display:grid;place-items:start center;padding-top:10vh;animation:bnb-pop .12s ease}.modal{width:min(560px,94vw);max-height:80vh;display:flex;flex-direction:column;background:var(--card);border-radius:10px;box-shadow:var(--lift),var(--hairline) 0 0 0 .5px inset;overflow:hidden;animation:bnb-in .14s ease}.modal.wide{width:min(920px,96vw)}.modal-head{display:flex;align-items:center;gap:10px;padding:16px 18px;box-shadow:var(--hairline) 0 -.5px 0 0 inset}.modal-body{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.modal-foot{display:flex;gap:8px;justify-content:flex-end;padding:14px 18px;box-shadow:var(--hairline) 0 .5px 0 0 inset;flex-wrap:wrap}.palette-input{width:100%;height:52px;border:none;outline:none;background:transparent;padding:0 18px;font-size:16px;box-shadow:var(--hairline) 0 -.5px 0 0 inset}.palette-list{overflow-y:auto;padding:6px;max-height:56vh}.palette-item{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:6px;cursor:pointer}.palette-item.sel{background:var(--shade);box-shadow:var(--hairline) 0 0 0 .5px inset}.palette-item .thumb{width:28px;height:28px;border-radius:5px;flex:none}.drawer{position:fixed;right:0;top:56px;bottom:0;width:min(460px,94vw);background:var(--card);z-index:80;box-shadow:var(--lift),var(--hairline) .5px 0 0 0 inset;display:flex;flex-direction:column;animation:bnb-slide .16s ease}.toast-host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:120;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{background:var(--ink);color:var(--chip-ink);padding:10px 14px;border-radius:6px;font-size:13px;box-shadow:var(--lift);animation:bnb-pop .14s ease}:root{--chart-1: var(--fern)}[data-theme=keycaps]{--chart-1: #6575dc}[data-theme=dark]{--chart-1: #4f9d66}.chart .cbar path,.chart .cbar rect:not([fill]){fill:var(--chart-1)}.chart .cbar{cursor:default;outline:none}.chart .cbar.on path{filter:brightness(1.15)}.chart .cbar:focus-visible path{stroke:var(--ink);stroke-width:1.5}.chart .cgrid{stroke:var(--hairline);stroke-width:1;vector-effect:non-scaling-stroke}.chart .ctick{fill:var(--muted);font-family:IBM Plex Mono,monospace;font-size:10px;font-variant-numeric:tabular-nums}.ctip{position:absolute;transform:translate(-50%,-100%);pointer-events:none;background:var(--card);padding:6px 10px;border-radius:6px;box-shadow:var(--hairline) 0 0 0 .5px inset,var(--lift);display:flex;flex-direction:column;gap:1px;white-space:nowrap;z-index:5}.ctip strong{font-weight:500;font-size:13px;color:var(--ink)}.ctip span{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--muted)}.hdr-nav{display:flex;align-self:stretch;gap:2px;margin-left:4px;overflow-x:auto;scrollbar-width:none;flex:none}.hdr-nav-link{position:relative;display:flex;align-items:center;padding:0 12px;font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--muted);white-space:nowrap}.hdr-nav-link:hover{color:var(--ink)}.hdr-nav-link.on{color:var(--ink);font-weight:500}.hdr-nav-link.on:after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:2px;border-radius:2px 2px 0 0;background:var(--ink)}.masonry{columns:4 230px;column-gap:14px}.masonry.compact{columns:3 180px}.masonry>*{break-inside:avoid;margin-bottom:14px}.work-card{display:block;overflow:hidden}.work-thumb{position:relative;overflow:hidden;border-radius:8px 8px 0 0;background:var(--ash)}.work-thumb .thumb{width:100%;height:100%}.work-card .body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:8px}.work-card .title{font-weight:500;font-size:13.5px}.creator-line{font-size:12px}.kind-badge{position:absolute;right:10px;bottom:10px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#0000008c;color:#fff}.corner-badge{position:absolute;left:10px;top:10px;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;border-radius:4px;background:var(--moss);color:var(--on-accent)}.corner-badge.dark{background:var(--ink);color:var(--chip-ink)}.made-with{display:flex;align-items:center;gap:8px;padding-top:8px;box-shadow:var(--hairline) 0 .5px 0 0 inset;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--muted)}.made-with>span:first-child{display:inline-flex;align-items:center;gap:5px;flex:1;min-width:0}.made-with .ico{width:12px;height:12px;flex:none}.price{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:4px;font-family:IBM Plex Mono,monospace;font-size:11.5px;font-weight:500;background:var(--ink);color:var(--chip-ink);white-space:nowrap;flex:none}.price.free{background:var(--moss);color:var(--on-accent)}.btn .price{height:18px;padding:0 6px}.stars{color:var(--t-json);letter-spacing:1px;font-size:12px;white-space:nowrap}.stars .off{opacity:.25}.verified{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;background:var(--emerald);color:var(--on-accent);flex:none}.verified .ico{width:10px;height:10px}.like-btn{display:inline-flex;align-items:center;gap:5px;border:none;background:transparent;padding:3px 6px;border-radius:999px;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--muted)}.like-btn:hover{background:var(--shade);color:var(--ink)}.like-btn.on{color:var(--error)}.like-btn .ico{width:14px;height:14px}.listing-cover{position:relative}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.work-detail{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:28px;align-items:start}.work-media{position:relative;overflow:hidden;border-radius:12px;box-shadow:var(--hairline) 0 0 0 .5px inset;background:var(--ash)}.work-media .thumb{width:100%;height:100%}.work-media .kind-badge{width:56px;height:56px;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.work-media .kind-badge .ico{width:22px;height:22px}.chain{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.chain-step{position:relative;display:flex;flex-direction:column;gap:1px;padding:9px 10px 7px;border-radius:6px;background:var(--card);box-shadow:var(--hairline) 0 0 0 .5px inset;overflow:hidden}.chain-step:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--role)}.chain-name{font-size:12.5px;font-weight:500}.chain-type{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--muted)}.chain-arrow{color:var(--muted);font-family:IBM Plex Mono,monospace}.buy-price{font-size:32px;letter-spacing:-.01em}.buy-points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13px}.buy-points li{display:flex;gap:8px;align-items:flex-start}.buy-points .ico{color:var(--muted);margin-top:2px}.thumb.mini{width:60px;height:60px;border-radius:8px;flex:none}.review{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;padding:14px 0;box-shadow:var(--hairline) 0 -.5px 0 0 inset}.review:last-child{box-shadow:none}.pick-grid .card.picked{box-shadow:var(--emerald) 0 0 0 2px inset,var(--lift)}@media(max-width:1100px){.work-detail{grid-template-columns:1fr}}.app.admin .hdr{box-shadow:var(--indigo) 0 -2px 0 0 inset,var(--hairline) 0 -.5px 0 0 inset}.admin-badge{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.1em;padding:3px 7px;border-radius:3px;background:var(--indigo);color:var(--chip-ink)}@media(max-width:1100px){.grid.c4,.grid.c3{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}@media(max-width:820px){.app{grid-template-columns:1fr}.side{display:none}.page{padding:20px 16px 48px}.grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}.search-trigger{min-width:0}.search-trigger span{display:none}}.main.flow-main{overflow:hidden;display:flex}.flow{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;width:100%;min-width:0}.flow-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;min-height:60px;flex-wrap:wrap;background:var(--card);box-shadow:var(--hairline) 0 -.5px 0 0 inset;z-index:20}.flow-bar .sep{color:var(--hairline);font-family:IBM Plex Mono,monospace}.flow-title{font-size:18px;font-weight:500;margin:0;letter-spacing:0;white-space:nowrap}.run-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:var(--shade);box-shadow:var(--hairline) 0 0 0 .5px inset}.flow-body{position:relative;display:flex;min-height:0}.canvas{flex:1 1 auto;position:relative;overflow:hidden;cursor:grab;touch-action:none;background-color:var(--canvas);background-image:radial-gradient(var(--dot) 1.1px,transparent 1.1px);background-size:20px 20px}.canvas.panning{cursor:grabbing}.viewport{position:absolute;left:0;top:0;transform-origin:0 0}.edges{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}.edge{fill:none;stroke:var(--ink);stroke-opacity:.35;stroke-width:2}.edge.done{stroke:var(--emerald);stroke-opacity:.9}.edge.live{stroke:var(--emerald);stroke-opacity:1;stroke-dasharray:6 5;animation:bnb-flow .7s linear infinite}.edge.bad{stroke:var(--error);stroke-opacity:.9}.edge.dim{stroke-opacity:.12}.fnode{position:absolute;width:212px;height:104px;display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:var(--card);border-radius:8px;cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:var(--hairline) 0 0 0 .5px inset,var(--lift);transition:box-shadow .12s ease,opacity .2s ease}.fnode:before{content:"";position:absolute;left:10px;right:10px;top:0;height:3px;border-radius:0 0 3px 3px;background:var(--role)}.fnode:hover{box-shadow:var(--ink) 0 0 0 .5px inset,var(--lift)}.fnode.sel{box-shadow:var(--ink) 0 0 0 1.5px inset,var(--lift);z-index:3}.fnode.disabled{opacity:.45}.fnode.disabled .fnode-name{text-decoration:line-through}.fnode.hidden-by-group{display:none}.fnode-head{display:flex;align-items:center;gap:6px;min-width:0;font-family:IBM Plex Mono,monospace;font-size:10px}.fnode-role{color:var(--role);letter-spacing:.08em;text-transform:uppercase;flex:none}.fnode-type{color:var(--muted)}.fnode-name{font-size:14px;font-weight:500}.fnode-foot{display:flex;align-items:center;gap:6px;min-width:0;margin-top:auto;font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--ink)}.fnode-foot .thumb{width:22px;height:22px;border-radius:4px;flex:none}.fnode-st{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:4px}.fnode-st:empty{display:none}.port{position:absolute;top:47px;width:11px;height:11px;border-radius:50%;background:var(--card);box-shadow:var(--c, var(--ink)) 0 0 0 2.5px inset}.port.in{left:-5px}.port.out{right:-5px}.fnode[data-st=queued],.fnode[data-st=waiting]{opacity:.78}.fnode[data-st=running]{box-shadow:var(--emerald) 0 0 0 2px inset,var(--lift)}.fnode[data-st=running]:after{content:"";position:absolute;left:12px;right:12px;bottom:5px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--emerald),transparent);background-size:200% 100%;animation:cf-scan 1s linear infinite}.fnode[data-st=completed]{box-shadow:color-mix(in srgb,var(--emerald) 70%,transparent) 0 0 0 1px inset,var(--lift)}.fnode[data-st=failed]{animation:bnb-err 1.2s ease 2;box-shadow:var(--error) 0 0 0 1.5px inset,var(--lift)}.fnode[data-st=skipped],.fnode[data-st=cancelled]{opacity:.45}.fnode[data-st=cached]{box-shadow:var(--muted) 0 0 0 1px inset,var(--lift);opacity:.7}@keyframes cf-scan{0%{background-position:100% 0}to{background-position:-100% 0}}.st-glyph{font-family:IBM Plex Mono,monospace;font-size:10px;padding:1px 6px;border-radius:999px;background:var(--shade);color:var(--ink)}.st-glyph.completed{background:color-mix(in srgb,var(--emerald) 18%,var(--card))}.st-glyph.failed{background:color-mix(in srgb,var(--error) 16%,var(--card));color:var(--error)}.st-glyph.running{background:var(--moss);color:var(--on-accent)}.group-box{position:absolute;border-radius:14px;background:color-mix(in srgb,var(--moss) 9%,transparent);outline:1.5px dashed color-mix(in srgb,var(--moss) 80%,var(--ink));outline-offset:-1px}.group-box.sel{outline-style:solid;outline-color:var(--ink)}.group-box.collapsed{background:var(--card);box-shadow:var(--lift)}.group-title{position:absolute;left:12px;top:8px;right:12px;display:flex;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:11px;cursor:pointer;white-space:nowrap}.group-title .gname{font-weight:500;text-transform:uppercase;letter-spacing:.06em}.group-actions{display:none;gap:4px;margin-left:auto}.group-box:hover .group-actions,.group-box.sel .group-actions{display:flex}.node-bar{position:absolute;display:flex;gap:4px;padding:4px;border-radius:8px;background:var(--card);box-shadow:var(--hairline) 0 0 0 .5px inset,var(--lift);z-index:6;white-space:nowrap;animation:bnb-pop .12s ease}.node-bar .btn{min-height:28px;padding:4px 9px;font-size:11.5px}.canvas-hud{position:absolute;left:50%;bottom:14px;transform:translate(-50%);display:flex;align-items:center;gap:2px;padding:4px 8px;box-shadow:var(--hairline) 0 0 0 .5px inset,var(--lift);z-index:8}.canvas-hud .icon-btn{width:30px;height:30px}.canvas-hud .mono{font-size:11px;min-width:42px;text-align:center}.canvas-hud .div{width:.5px;height:18px;background:var(--hairline);margin:0 6px}.viewing-banner{position:absolute;left:50%;top:14px;transform:translate(-50%);z-index:9;display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-radius:8px;background:var(--ink);color:var(--chip-ink);box-shadow:var(--lift);font-size:13px;white-space:nowrap}.viewing-banner .btn{min-height:28px;padding:4px 10px;font-size:12px}.viewing-banner a{color:var(--moss)}.inspector{width:344px;flex:none;background:var(--panel);overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--hairline) .5px 0 0 0 inset;animation:bnb-slide .16s ease;z-index:10}.insp-head{display:flex;align-items:flex-start;gap:8px}.insp-name{font-size:15px;font-weight:500;background:transparent;box-shadow:none;padding:0 4px;margin-left:-4px;height:30px;width:100%}.insp-name:hover{box-shadow:var(--hairline) 0 0 0 .5px inset}.insp-sec{display:flex;flex-direction:column;gap:10px}.insp-sec+.insp-sec{padding-top:14px;box-shadow:var(--hairline) 0 .5px 0 0 inset}.insp-sec .field>label{font-size:10px}.insp-sec .select,.insp-sec .input{width:100%}.asset-ref{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center;padding:8px;border-radius:8px;background:var(--card);box-shadow:var(--hairline) 0 0 0 .5px inset}.asset-ref .thumb{width:44px;height:44px;border-radius:6px}.port-list{display:flex;flex-wrap:wrap;gap:6px}.port-chip{display:inline-flex;align-items:center;gap:6px;font-family:IBM Plex Mono,monospace;font-size:11px;padding:3px 8px;border-radius:999px;background:var(--card);box-shadow:var(--hairline) 0 0 0 .5px inset}.port-chip i{width:8px;height:8px;border-radius:50%;background:var(--c)}.flow-panel{background:var(--card);box-shadow:var(--hairline) 0 .5px 0 0 inset;z-index:15}.panel-tabs{display:flex;align-items:center;gap:2px;padding:0 10px;height:38px}.panel-tabs .tab{padding:9px 10px}.panel-body{height:210px;overflow:auto;padding:0 10px 10px}.log{font-family:JetBrains Mono,IBM Plex Mono,monospace;font-size:11.5px;line-height:1.7;white-space:pre}.log .t{color:var(--muted)}.log .ok{color:var(--emerald)}.log .bad{color:var(--error)}.tl{display:flex;flex-direction:column}.tl-row{display:grid;grid-template-columns:22px minmax(140px,1.2fr) minmax(120px,2fr) 70px 64px;gap:12px;align-items:center;padding:9px 10px;border:none;background:transparent;border-radius:6px;cursor:pointer;text-align:left;font-size:13px}.tl-row:hover{background:var(--shade)}.tl-row.on{background:var(--card);box-shadow:var(--ink) 0 0 0 .5px inset}.tl-icon{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-family:IBM Plex Mono,monospace;background:var(--shade)}.tl-icon.completed{background:var(--emerald);color:var(--on-accent)}.tl-icon.failed{background:var(--error);color:#fff}.tl-icon.running{background:var(--moss);color:var(--on-accent);animation:bnb-pulse 1.2s infinite}.tl-icon.cached{box-shadow:var(--muted) 0 0 0 1px inset;background:transparent}.tl-track{position:relative;height:8px;border-radius:999px;background:var(--field)}.tl-bar{position:absolute;top:0;height:8px;border-radius:999px;background:var(--emerald);min-width:4px}.tl-bar.failed{background:var(--error)}.tl-bar.running{background:var(--moss)}.tl-bar.cached{background:var(--hairline)}@media(max-width:1024px){.inspector{position:absolute;right:0;top:0;bottom:0}.search-trigger{min-width:0}}.diagram-canvas{position:relative;overflow:auto;max-height:74vh;border-radius:10px;background-color:var(--canvas);background-image:radial-gradient(var(--dot) 1.1px,transparent 1.1px);background-size:20px 20px;box-shadow:var(--hairline) 0 0 0 .5px inset}.diagram-edges{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}.diagram-edge{fill:none;stroke:var(--ink);stroke-opacity:.4;stroke-width:2}.diagram-edge.dashed{stroke-dasharray:5 5;stroke-opacity:.55}.diagram-box{position:absolute;display:flex;flex-direction:column;gap:3px;justify-content:center;padding:10px 14px;background:var(--card);border-radius:8px;box-shadow:var(--hairline) 0 0 0 .5px inset,var(--lift);text-decoration:none;color:var(--ink);transition:box-shadow .12s ease}.diagram-box:before{content:"";position:absolute;left:10px;right:10px;top:0;height:3px;border-radius:0 0 3px 3px;background:var(--tone)}a.diagram-box{cursor:pointer}a.diagram-box:hover{box-shadow:var(--ink) 0 0 0 .5px inset,var(--lift)}.diagram-box-ico{color:var(--tone)}.diagram-box-title{font-size:13px;font-weight:500;line-height:1.25}.diagram-box-sub{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--muted);line-height:1.4}.diagram-group-label{position:absolute;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.diagram-legend{display:flex;flex-wrap:wrap;gap:18px;padding-top:2px;font-size:12px;color:var(--muted)}.diagram-legend-item{display:inline-flex;align-items:center;gap:7px}.diagram-legend-item .sw{width:10px;height:10px;border-radius:3px;flex:none}.diagram-legend-item .ln{width:22px;height:0;border-top:2px solid var(--ink);flex:none;opacity:.6}.diagram-legend-item .ln.dashed{border-top-style:dashed}
