@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-vietnamese-400-normal-B7xT_GF5.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-400-normal-BIWiOVfw.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-ext-400-normal-CfP_5XZW.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-400-normal-DRPE3kg4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2)format("woff2"),url(/assets/space-grotesk-latin-400-normal-BnQMeOim.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-vietnamese-500-normal-BmEvtly_.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-500-normal-BTqKIpxg.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2)format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-vietnamese-600-normal-DUi7WF5p.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-600-normal-D6zpsUhD.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-ext-600-normal-DxxdqCpr.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-600-normal-VcznFIpX.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2)format("woff2"),url(/assets/space-grotesk-latin-600-normal-BflQw4A9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-vietnamese-700-normal-DMty7AZE.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-700-normal-Duxec5Rn.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2)format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-cyrillic-ext-400-normal-XB2BPmDK.woff2)format("woff2"),url(/assets/geist-mono-cyrillic-ext-400-normal-CkxHOdCb.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-cyrillic-400-normal-C51Di1Mf.woff2)format("woff2"),url(/assets/geist-mono-cyrillic-400-normal-CPJFfJgk.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-symbols2-400-normal-BS9BGVxz.woff2)format("woff2"),url(/assets/geist-mono-symbols2-400-normal-DjbiTEEA.woff)format("woff");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-vietnamese-400-normal-CKEaXIlx.woff2)format("woff2"),url(/assets/geist-mono-vietnamese-400-normal-CZEPLOgu.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-latin-ext-400-normal-DI-rJ0UV.woff2)format("woff2"),url(/assets/geist-mono-latin-ext-400-normal-CfzLURNc.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-latin-400-normal-DTRLJnHl.woff2)format("woff2"),url(/assets/geist-mono-latin-400-normal-B2yvC1Cq.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#fff;--surface:#fff;--panel:#f6f7f9;--subtle:#fafbfc;--fg:#111827;--muted:#64748b;--line:#e5e7eb;--line-strong:#d1d5db;--accent:#0d9488;--accent-deep:#0f766e;--tint:#e7f6f4;--tint-line:#b7e2dc;--primary-bg:#0f766e;--primary-hover:#115e59;--primary-fg:#fff;--err:#b42318;--err-bg:#fef3f2;--err-line:#fecdca;--warn:#8a5a00;--ok:#067647;--focus:#fff3c4;--edge:#0f766e;--grid-dot:#d5d9e0;--scrim:#0f172a73;--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 4px 16px #10182814;--shadow-lg:0 16px 40px #10182829;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b0f14;--surface:#11161d;--panel:#0e131a;--subtle:#131922;--fg:#e6edf3;--muted:#8b98a8;--line:#222b36;--line-strong:#2f3a47;--accent:#2dd4bf;--accent-deep:#5eead4;--tint:#0f2d2b;--tint-line:#155e57;--primary-bg:#2dd4bf;--primary-hover:#5eead4;--primary-fg:#042f2e;--err:#fda29b;--err-bg:#2a1215;--err-line:#5c1d1f;--warn:#f5b54a;--ok:#6ce9a6;--focus:#3a3212;--edge:#5eead4;--grid-dot:#253041;--scrim:#0009;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 16px #0006;--shadow-lg:0 16px 40px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0b0f14;--surface:#11161d;--panel:#0e131a;--subtle:#131922;--fg:#e6edf3;--muted:#8b98a8;--line:#222b36;--line-strong:#2f3a47;--accent:#2dd4bf;--accent-deep:#5eead4;--tint:#0f2d2b;--tint-line:#155e57;--primary-bg:#2dd4bf;--primary-hover:#5eead4;--primary-fg:#042f2e;--err:#fda29b;--err-bg:#2a1215;--err-line:#5c1d1f;--warn:#f5b54a;--ok:#6ce9a6;--focus:#3a3212;--edge:#5eead4;--grid-dot:#253041;--scrim:#0009;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 16px #0006;--shadow-lg:0 16px 40px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;margin:0;font:14px/1.5 Space Grotesk,system-ui,sans-serif}button,input,select,textarea{font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-md);padding:7px 10px}button{cursor:pointer;transition:background-color .12s,border-color .12s,color .12s}button:hover{background:var(--tint);border-color:var(--tint-line)}button:disabled{opacity:.5;cursor:not-allowed}input:focus,select:focus,textarea:focus{border-color:var(--accent)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}code{font-family:var(--mono);font-size:.92em}a.button{border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--fg);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:7px 14px;font-weight:500;text-decoration:none;transition:background-color .12s,border-color .12s;display:inline-flex}a.button:hover{background:var(--tint);border-color:var(--tint-line)}[hidden]{display:none!important}.site-shell{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.site-header{background:var(--surface);border-bottom:1px solid var(--line);z-index:20;flex:0 0 60px;justify-content:space-between;align-items:center;gap:16px;height:60px;padding:0 20px;display:flex}.brand{color:var(--accent-deep);letter-spacing:-.01em;align-items:center;gap:10px;font-size:20px;font-weight:700;line-height:1.1;text-decoration:none;display:flex}.brand>span{color:var(--fg)}.brand-caption{color:var(--muted);letter-spacing:0;margin-top:3px;font-size:10px;font-weight:400;display:block}.header-account{align-items:center;gap:10px;min-width:0;display:flex}.header-link{border-radius:var(--radius-md);color:var(--muted);padding:6px 10px;font-weight:500;text-decoration:none}.header-link:hover{color:var(--fg);background:var(--panel)}.language-menu{position:relative}.language-list{z-index:40;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);min-width:160px;box-shadow:var(--shadow-lg);flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.language-list button{text-align:left;border-radius:var(--radius-md);background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.language-list button:hover,.language-list button:focus-visible{background:var(--panel);outline:none}.language-list button[aria-checked=true]{color:var(--accent-deep);font-weight:600}.theme-toggle{color:var(--muted);background:0 0;border-color:#0000}.theme-toggle:hover{color:var(--fg)}.workspace-label{color:var(--muted);border:1px solid var(--line);background:var(--subtle);border-radius:999px;align-items:center;gap:7px;padding:4px 10px;font-size:12px;display:flex}.workspace-label i{background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 3px var(--tint);border-radius:50%}.app{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex:0 0 280px;width:280px;min-height:0;display:flex}.sidebar-content{flex-direction:column;flex:1;min-height:0;display:flex}.sidebar-tabs{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);flex-shrink:0;gap:4px;margin:12px 12px 0;padding:3px;display:flex}.sidebar-tabs button{border-radius:var(--radius-sm);color:var(--muted);background:0 0;border:0;flex:1;padding:6px 0;font-weight:500}.sidebar-tabs button:hover{color:var(--fg);background:0 0}.sidebar-tabs button[aria-selected=true]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-sm)}.view-tabs{border-bottom:1px solid var(--line);background:var(--surface);flex-shrink:0;align-items:center;gap:4px;padding:8px 24px;display:flex}.view-tabs button{border-radius:var(--radius-sm);color:var(--muted);background:0 0;border:1px solid #0000;padding:5px 14px;font-weight:500}.view-tabs button:hover{background:var(--panel);color:var(--fg);border-color:#0000}.view-tabs button[aria-selected=true]{background:var(--tint);border-color:var(--tint-line);color:var(--accent-deep)}.schema-list-panel{flex-direction:column;flex:1;min-height:0;display:flex}.toolbar{border-bottom:1px solid var(--line);gap:8px;padding:12px;display:flex}.toolbar button{flex:1}.schema-list-panel>form{padding:12px 16px}.schema-list-panel>form input{width:100%}.search-wrap{padding:12px 12px 0;position:relative}.search-wrap .search{border:1px solid var(--line-strong);background:var(--subtle);appearance:none;width:100%;padding:8px 30px 8px 12px;font-size:13px}.search-wrap .search::-webkit-search-cancel-button{display:none}.search-wrap .search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--tint);background:var(--surface);outline:none}.clear-search{width:20px;height:20px;color:var(--muted);background:0 0;border:none;border-radius:999px;padding:0;line-height:1;position:absolute;top:calc(50% + 6px);right:18px;transform:translateY(-50%)}.clear-search:hover{background:var(--tint);color:var(--accent-deep)}.files{flex:1;margin:0;padding:8px 12px 12px;list-style:none;overflow:auto}.files li{min-width:0;margin:2px 0}.file{text-align:left;white-space:nowrap;text-overflow:ellipsis;border-radius:var(--radius-md);background:0 0;border-color:#0000;width:100%;padding:8px 12px;font-size:13px;overflow:hidden}.file:hover{background:var(--panel);border-color:#0000}.file.active{background:var(--tint);color:var(--accent-deep);border-color:var(--tint-line);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.files .dot{padding-left:10px;font-size:10px}.sidebar-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:12px 16px;font-size:11px;display:flex}.schema-list-panel>.hint,.empty-files{padding:0 16px}.import-form{padding:16px;overflow:auto}#import-content{min-height:0;overflow:auto}.import-form h2{margin:0 0 6px;font-size:17px}.import-form .tabs{flex-wrap:nowrap;padding:0}.import-form .field{margin:18px 0}.import-form textarea{resize:vertical;min-width:0;font-family:var(--mono);font-size:12px}.import-form footer button{width:100%}.dot,.hint{color:var(--warn);font-size:12px}.editor{background:var(--panel);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.workspace-toolbar{border-bottom:1px solid var(--line);background:var(--surface);align-items:center;gap:12px;min-height:76px;padding:14px 24px;display:flex}.schema-title{flex:1;min-width:0}.schema-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:18px;font-weight:600;display:block;overflow:hidden}.eyebrow{letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:10px;font-weight:600;display:block}.unsaved-mark{color:var(--warn)}.schema-name{align-items:center;gap:6px;min-width:0;display:flex}.schema-name input{border-radius:var(--radius-sm);min-width:0;color:inherit;font:inherit;background:0 0;border:1px solid #0000;flex:0 360px;margin-left:-6px;padding:2px 6px;font-size:18px;font-weight:600}.schema-name input:hover{border-color:var(--line)}.schema-name input:focus{border-color:var(--accent);background:var(--subtle);outline:none}.schema-name input::placeholder{color:var(--muted)}.save-schema{flex:none;padding:4px 12px;font-size:12px}.open-generation{white-space:nowrap;box-shadow:var(--shadow-sm);align-items:center;gap:10px;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.view-hint{color:var(--muted);margin-left:auto;font-size:11px}.schema-surface{background:var(--surface);flex:1;min-height:0;overflow:hidden}.schema-surface>div{height:100%}.schema-surface:not([hidden]):has(>.template-picker){flex-direction:column;display:flex}.schema-surface>.template-picker+div{flex:1;height:auto;min-height:0}.template-picker{border-bottom:1px solid var(--line);background:var(--subtle);max-height:55%;padding:20px 24px 16px;overflow-y:auto}.template-picker h2{margin:0 0 4px;font-size:16px}.template-picker>p{margin:0 0 14px;font-size:13px}.template-picker ul{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.template-card{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);width:100%;height:100%;box-shadow:var(--shadow-sm);cursor:pointer;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.template-card:hover{border-color:var(--tint-line);background:var(--tint)}.template-card strong{color:var(--fg);font-size:14px}.template-card span{font-size:12px;line-height:1.4}.cm-editor,.cm-scroller{height:100%}.cm-editor .cm-scroller{font-family:var(--mono);font-size:13px}.cm-editor .cm-gutters{border-right-color:var(--line)}.workspace-empty{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex}.workspace-empty h2{color:var(--fg);font-size:18px}.status{border-top:1px solid var(--line);background:var(--surface);overflow-wrap:anywhere;flex-wrap:wrap;gap:6px 16px;padding:8px 16px;font-size:12px;display:flex}.status .order{color:var(--muted);font-family:var(--mono);font-size:11px}.status .error,.banner.error{color:var(--err)}.status .note{color:var(--warn)}.banner{background:var(--panel);border-bottom:1px solid var(--line);padding:8px 10px}.banner.error{z-index:40;background:var(--err-bg);border:1px solid var(--err-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);justify-content:space-between;gap:16px;padding:12px 16px;display:flex;position:absolute;bottom:16px;left:16px;right:16px}.preview{flex-direction:column;display:flex;overflow:hidden}.generation-panel{background:var(--surface);border-left:1px solid var(--line);flex:0 0 420px;width:420px;min-height:0;box-shadow:-8px 0 24px #1018280d}.panel-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.panel-header h2{margin:0;font-size:17px}.icon-button{justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:inline-flex}.generate-bar{background:var(--subtle)}.generation-panel .generate-bar{border:1px solid var(--line);border-radius:var(--radius-lg);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin:16px;padding:16px;display:grid}.generation-panel .generate-bar label{flex-direction:column;gap:5px;font-size:12px;font-weight:500;display:flex}.generation-panel .generate-bar input[type=number]{width:100%}.generation-panel .generate-bar label:has(input[type=checkbox]){color:var(--muted);flex-flow:wrap;grid-column:1/-1;align-items:center;font-weight:400}.generate-bar input[type=checkbox]{accent-color:var(--accent-deep);margin:0 3px 0 0}.generation-panel .generate-bar>button,.generation-panel .progress{grid-column:1/-1}.generation-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.generation-empty h3{margin:16px 0 8px;font-size:17px}.generation-empty p{margin:4px 0;font-size:12px}.empty-symbol{color:var(--accent-deep);border-radius:var(--radius-xl);background:var(--tint);border:1px solid var(--tint-line);place-items:center;width:64px;height:64px;font-size:32px;display:grid}.generation-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 20px;font-size:11px;display:flex}.running-dot{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1s infinite alternate pulse}@keyframes pulse{to{opacity:.35}}.mobile-navigation,.sidebar-close,.drawer-scrim{display:none}.diagram-canvas{position:relative}.diagram-canvas .react-flow{--xy-background-color:var(--subtle);--xy-controls-button-background-color:var(--surface);--xy-controls-button-color:var(--fg);--xy-controls-button-border-color:var(--line)}.diagram-table{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-lg);width:290px;box-shadow:var(--shadow-md);color:var(--fg);overflow:visible}.diagram-table header{border-bottom:1px solid var(--line);background:var(--tint);border-radius:var(--radius-lg) var(--radius-lg) 0 0;justify-content:space-between;align-items:center;gap:8px;height:48px;padding:0 14px;display:flex}.diagram-table header strong{text-overflow:ellipsis;font-size:14px;overflow:hidden}.diagram-table header span{white-space:nowrap;color:var(--muted);font-size:10px}.diagram-column{border-bottom:1px solid var(--line);height:32px;font-family:var(--mono);align-items:center;gap:8px;padding:0 12px;font-size:11px;display:flex;position:relative}.diagram-column:last-child{border-bottom:0}.column-key{color:var(--accent-deep);flex-shrink:0;width:38px;font-size:9px}.column-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.column-type{color:var(--muted);margin-left:auto;font-size:10px}.diagram-column .react-flow__handle{background:var(--accent);border:1px solid var(--surface);width:6px;height:6px}.react-flow__edge-path{stroke:var(--edge);stroke-width:1.5px}.react-flow__edge-text{font-family:var(--mono);font-size:10px}.diagram-toolbar{z-index:5;pointer-events:none;flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.diagram-toolbar>*{pointer-events:auto}.diagram-engine{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--muted);align-items:center;gap:6px;padding:3px 3px 3px 10px;font-size:11px;font-weight:500;display:flex}.diagram-engine select{border-radius:var(--radius-sm);padding:3px 6px;font-size:11px}.diagram-direction{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);gap:2px;padding:3px;display:flex}.diagram-direction button:disabled{opacity:.45;cursor:not-allowed}.diagram-layout-note{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--muted);padding:4px 10px;font-size:11px}.diagram-direction button{border-radius:var(--radius-sm);color:var(--muted);background:0 0;border:1px solid #0000;padding:4px 10px;font-size:11px;font-weight:500}.diagram-direction button:hover:not(:disabled){background:var(--panel);color:var(--fg)}.diagram-direction button[aria-pressed=true]{background:var(--tint);border-color:var(--tint-line);color:var(--accent-deep)}.diagram-legend{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--muted);pointer-events:none;box-shadow:var(--shadow-sm);gap:12px;padding:8px 12px;font-size:10px;display:flex;position:absolute;bottom:16px;right:16px}@media (width<=1099px){.generation-panel{z-index:31;max-width:calc(100% - 24px);box-shadow:var(--shadow-lg);position:absolute;top:0;bottom:0;right:0}.drawer-scrim{background:var(--scrim);z-index:30;border:0;border-radius:0;display:block;position:absolute;inset:0}.drawer-scrim:hover{background:var(--scrim)}}@media (width<=767px){.template-picker{padding:14px 12px 12px}.template-picker ul{grid-template-columns:1fr;gap:8px}.site-header{gap:8px;padding:0 12px}.brand-caption{display:none}.brand{font-size:18px}.workspace-label{font-size:11px}.sidebar{display:none}.sidebar-open .sidebar{z-index:31;width:min(320px,100% - 24px);box-shadow:var(--shadow-lg);display:flex;position:absolute;top:0;bottom:0;left:0}.sidebar-close{align-self:flex-end;margin:10px 12px;display:flex}.mobile-navigation{flex-shrink:0;display:inline-flex}.workspace-toolbar{min-height:68px;padding:12px}.schema-title strong,.schema-name input{font-size:14px}.schema-title .eyebrow{letter-spacing:.7px;font-size:8px}.open-generation{gap:5px;padding:7px 8px;font-size:11px}.view-tabs{padding:6px 12px}.view-hint{display:none}.status{font-size:11px}.diagram-legend{flex-wrap:wrap;gap:4px 10px;font-size:9px;left:66px}.diagram-canvas .react-flow__controls-button{width:44px;height:44px}button,.sidebar-tabs button,.view-tabs button,.tab,a.button{min-height:44px}.icon-button{width:44px;height:44px}input:not([type=checkbox]),select{min-height:44px}.generation-panel .generate-bar label:has(input[type=checkbox]){min-height:44px}.generation-panel .generate-bar{margin:12px;padding:12px}.panel-header,.generation-footer{padding:12px 16px}.banner.error{bottom:8px;left:8px;right:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.generate-bar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;display:flex}.generate-bar input[type=number]{width:90px}.primary,a.button.primary{background:var(--primary-bg);color:var(--primary-fg);border-color:var(--primary-bg);font-weight:600}.primary:hover,a.button.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:var(--primary-fg)}.progress{color:var(--muted)}.preview-body{flex-direction:column;flex:1;min-height:0;display:flex}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:2px;padding:6px 10px 0;display:flex}.tab{border-radius:var(--radius-sm) var(--radius-sm) 0 0;border-bottom-color:#0000}.tab.active{background:var(--surface);border-bottom-color:var(--surface);font-weight:600}.tab-raw{margin-left:auto}.preview-toolbar{border-bottom:1px solid var(--line);align-items:center;gap:8px;min-width:0;padding:0 12px;display:flex}.preview-toolbar .tabs{border:0;flex-wrap:nowrap;flex:1;gap:4px;min-width:0;padding:6px 0 0;overflow-x:auto}.preview-toolbar .tab{white-space:nowrap;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex-shrink:0;padding:10px 8px;font-size:12px}.preview-toolbar .tab:hover{color:var(--fg)}.preview-toolbar .tab.active{border-bottom-color:var(--accent);color:var(--accent-deep)}.preview-toolbar .tab small{background:var(--panel);border:1px solid var(--line);font-family:var(--mono);border-radius:999px;margin-left:4px;padding:0 6px;font-size:10px;display:inline-block}.preview-toolbar .tab-raw{flex-shrink:0;padding:6px 8px;font-size:11px}.muted{color:var(--muted)}.pad{padding:10px}.preview-body>.muted,.preview-body>.note{padding:8px 16px;font-size:11px}.grid{flex:1;overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;max-width:260px;font-family:var(--mono);padding:9px 12px;font-size:11px;overflow:hidden}th{background:var(--panel);color:var(--muted);z-index:1;font-weight:500;position:sticky;top:0}tbody tr:nth-child(2n) td{background:var(--subtle)}tbody tr:hover td{background:var(--tint)}tr.focus td{background:var(--focus)}.fk{color:var(--accent-deep);text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.fk:hover{background:0 0}.pending{color:var(--muted);font-style:italic}.raw{font-family:var(--mono);background:var(--subtle);flex:1;margin:0;padding:12px;font-size:12px;overflow:auto}.overlay{background:var(--scrim);z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);width:min(560px,100%);max-height:90vh;box-shadow:var(--shadow-lg);padding:20px 24px;overflow:auto}.modal header{justify-content:space-between;align-items:center;display:flex}.modal h2{margin:0;font-size:17px}.modal footer{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.field{flex-direction:column;gap:4px;margin:10px 0;display:flex}.warnings{max-height:120px;color:var(--warn);border-top:1px solid var(--line);margin:0;padding:6px 10px 6px 28px;overflow:auto}.error{color:var(--err)}.note{color:var(--warn)}.react-flow__node.selected .diagram-table,.react-flow__node:focus-visible .diagram-table{border-color:var(--accent);box-shadow:0 0 0 3px var(--tint), var(--shadow-md)}.react-flow__node:focus-visible{outline:none}.react-flow__node-table{cursor:context-menu}.context-menu{z-index:70;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);min-width:190px;box-shadow:var(--shadow-lg);flex-direction:column;padding:4px;display:flex;position:fixed}.context-menu button{text-align:left;border-radius:var(--radius-sm);background:0 0;border-color:#0000;padding:7px 10px;font-size:13px}.context-menu button:hover,.context-menu button:focus-visible{background:var(--tint);outline:none}.context-menu-title{color:var(--muted);text-overflow:ellipsis;padding:6px 10px 2px;font-size:11px;font-weight:600;overflow:hidden}.context-menu-group{color:var(--muted);padding:6px 10px 2px;font-size:11px}.context-menu-group~button{padding-left:18px}.context-menu-group~button:last-child{padding-left:10px}.context-menu-sep{background:var(--line);height:1px;margin:4px 0}.ddl-bar{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0;font-size:12px;display:flex}.ddl-text{background:var(--subtle);border:1px solid var(--line);border-radius:var(--radius-md);font:12px/1.5 var(--mono);white-space:pre;-webkit-user-select:text;user-select:text;max-height:50vh;margin:0;padding:12px;overflow:auto}.context-menu button[aria-disabled=true]{color:var(--muted);opacity:.55;cursor:not-allowed}.context-menu button[aria-disabled=true]:hover{background:0 0}.context-menu button[aria-disabled=true]:focus-visible{background:var(--panel)}.error-boundary{min-height:100dvh;padding:24px}.error-boundary p{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.language-placeholder{visibility:hidden;display:inline-block}.auth-screen{background:radial-gradient(60rem 30rem at 50% -10%, var(--tint), transparent 70%), var(--panel);flex:1;min-height:0;overflow:auto}.login{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);width:min(400px,100% - 32px);box-shadow:var(--shadow-md);flex-direction:column;gap:14px;margin:8vh auto;padding:28px;display:flex}.login-intro p{color:var(--muted);margin:4px 0 0;font-size:13px}.login h1{letter-spacing:-.01em;margin:0;font-size:22px}.login h2{margin:0;font-size:16px}.login form{flex-direction:column;gap:12px;display:flex}.login label,.stack label{flex-direction:column;gap:4px;font-size:13px;font-weight:500;display:flex}.login a.button{text-align:center;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:inherit;padding:7px 10px;text-decoration:none}.login .links{justify-content:space-between;margin:0;display:flex}.login .hint,.stack .hint{color:var(--muted);margin:0;font-size:12px}.login .error,.stack .error{color:var(--err);margin:0}.login .note,.stack .note{margin:0}.back-home{color:var(--muted);align-self:center;font-size:12px;text-decoration:none}.back-home:hover{color:var(--accent-deep)}.login-loading{padding:24px}button.link{min-height:32px;color:var(--accent-deep);background:0 0;border:0;padding:0;text-decoration:underline}.stack{flex-direction:column;gap:10px;display:flex}.user-menu{font-size:12px;position:relative}.user-menu summary{cursor:pointer;border:1px solid var(--line);border-radius:999px;align-items:center;gap:8px;padding:4px 8px 4px 4px;list-style:none;display:flex}.user-menu summary:hover{background:var(--panel)}.user-menu summary::-webkit-details-marker{display:none}.user-menu summary>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.avatar{background:var(--tint);width:28px;height:28px;color:var(--accent-deep);border-radius:50%;place-items:center;font-weight:600;display:grid}.account-actions{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);min-width:200px;box-shadow:var(--shadow-lg);z-index:50;flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.account-actions button{text-align:left;background:0 0;border:0}.account-actions button:hover{background:var(--panel)}.user-menu summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (width<=767px){.user-menu summary>span:nth-child(2){max-width:100px}}.api-keys code{font-family:var(--mono);font-size:12px}.new-key{border:1px solid var(--tint-line);border-radius:var(--radius-md);background:var(--tint);flex-direction:column;gap:8px;padding:12px;display:flex}.new-key .secret{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;padding:8px 10px;display:block}.new-key .row{gap:8px;display:flex}.key-form{align-items:flex-end;gap:8px;display:flex}.key-form label{flex-direction:column;flex:1;gap:4px;font-size:13px;font-weight:500;display:flex}.key-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.key-list li{border:1px solid var(--line);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.key-list li>div{flex-wrap:wrap;align-items:baseline;gap:4px 8px;min-width:0;display:flex}.key-list .muted{flex-basis:100%;font-size:11px}.api-keys pre.ddl-text{white-space:pre-wrap;overflow-wrap:anywhere}.password-field{flex-direction:column;gap:4px;display:flex;position:relative}.password-field .reveal{min-height:0;color:var(--accent-deep);background:0 0;border:0;padding:0 2px;font-size:12px;position:absolute;top:0;right:0}.password-field .reveal:hover{text-decoration:underline}button.danger{color:var(--err);border-color:var(--err-line);background:var(--err-bg)}.key-list .row{flex-shrink:0;gap:6px;display:flex}.command-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.command-head p{margin:0}.model-library .model-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.model-library .tag{border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:12px}.model-library .model-form{border-top:1px solid var(--line);gap:8px;padding-top:12px;display:grid}.model-library .row{flex-wrap:wrap;gap:6px;display:flex}
