:root,:root[data-theme=dark]{--page-bg:#0d1117;--surface:#161b22;--surface-raised:#21262d;--border:#30363d;--text:#e6edf3;--btn-text:#c9d1d9;--muted:#8b949e;--accent:#58a6ff;--accent-soft:#1a2740;--accent-text:#79c0ff;--success:#3fb950;--success-soft:#12261e;--danger:#f85149;--warning:#d29922;--warning-soft:#2b2111;--overlay:#0d1117d9;--hover:#6e76811a;--selection:#388bfd59;--bracket:#3fb95040;--error-line:#f8514926;--window-shadow:0 20px 60px #00000080, 0 1px 0 #ffffff0a;--on-accent:#0d1117;--syntax-keyword:#ff7b72;--syntax-string:#a5d6ff;--syntax-constant:#79c0ff;--syntax-property:#7ee787;--syntax-type:#ffa657;--syntax-function:#d2a8ff;--syntax-comment:#8b949e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--page-bg:#fff;--surface:#f6f8fa;--surface-raised:#eaeef2;--border:#d0d7de;--text:#1f2328;--btn-text:#24292f;--muted:#59636e;--accent:#0969da;--accent-soft:#ddf4ff;--accent-text:#0550ae;--success:#1a7f37;--success-soft:#dafbe1;--danger:#cf222e;--warning:#9a6700;--warning-soft:#fff8c5;--overlay:#ffffffe0;--hover:#afb8c133;--selection:#54aeff66;--bracket:#4ac26b4d;--error-line:#ff818240;--window-shadow:0 8px 24px #8c959f33;--on-accent:#fff;--syntax-keyword:#cf222e;--syntax-string:#0a3069;--syntax-constant:#0550ae;--syntax-property:#116329;--syntax-type:#953800;--syntax-function:#8250df;--syntax-comment:#6e7781;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root[data-theme=system]{--page-bg:#fff;--surface:#f6f8fa;--surface-raised:#eaeef2;--border:#d0d7de;--text:#1f2328;--btn-text:#24292f;--muted:#59636e;--accent:#0969da;--accent-soft:#ddf4ff;--accent-text:#0550ae;--success:#1a7f37;--success-soft:#dafbe1;--danger:#cf222e;--warning:#9a6700;--warning-soft:#fff8c5;--overlay:#ffffffe0;--hover:#afb8c133;--selection:#54aeff66;--bracket:#4ac26b4d;--error-line:#ff818240;--window-shadow:0 8px 24px #8c959f33;--on-accent:#fff;--syntax-keyword:#cf222e;--syntax-string:#0a3069;--syntax-constant:#0550ae;--syntax-property:#116329;--syntax-type:#953800;--syntax-function:#8250df;--syntax-comment:#6e7781;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root{--radius:8px;--sans:system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--mono:"SF Mono", "Fira Code", "Cascadia Code", ui-monospace, monospace;font:16px/1.5 var(--sans);color:var(--text);background:var(--page-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}body{background:var(--page-bg);min-height:100vh;margin:0}h1,h2,h3,p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit}input[type=checkbox]{border:1px solid var(--muted);background:var(--page-bg);cursor:pointer;appearance:none;border-radius:4px;flex-shrink:0;place-content:center;width:15px;height:15px;margin:0;display:inline-grid}input[type=checkbox]:before{content:"";background:var(--on-accent);clip-path:polygon(14% 44%,0 59%,39% 100%,100% 21%,85% 7%,38% 70%);width:9px;height:9px;transform:scale(0)}input[type=checkbox]:checked{border-color:var(--accent);background:var(--accent)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox]:hover:not(:checked){border-color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:24px}.button{border:1px solid var(--border);background:var(--surface-raised);color:var(--btn-text);cursor:pointer;border-radius:8px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;line-height:1.5;transition:background-color .15s,border-color .15s;display:inline-block}.button:hover{text-decoration:none}.button:hover:not(:disabled){border-color:var(--muted);background:var(--border)}.button:disabled{opacity:.6;cursor:default}.button--primary{border-color:var(--accent);background:var(--accent);color:var(--page-bg)}.button--primary:hover:not(:disabled){border-color:var(--accent-text);background:var(--accent-text)}.tag{background:var(--accent-soft);color:var(--accent-text);border:1px solid #0000;border-radius:999px;padding:2px 10px;font-size:.8125rem}button.tag{cursor:pointer}button.tag:hover{border-color:var(--accent)}.tag[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--page-bg)}.app{flex-direction:column;min-height:100vh;display:flex}.app__main{flex:1;width:100%;max-width:1000px;margin:0 auto;padding:24px}.app__main--wide{max-width:1440px}@media (width<=600px){.app__main{padding:16px}}.workspace{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;height:max(520px,100vh - 120px);margin-top:16px;display:grid}.workspace__tabs{display:none}@media (width<=1100px){.workspace__tabs{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:4px;margin-top:16px;padding:4px;display:flex}.workspace__tab{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:6px 8px;font-size:.875rem;font-weight:500;display:flex}.workspace__tab[aria-selected=true]{background:var(--surface-raised);color:var(--text)}.workspace__tab-badge{background:var(--warning-soft);min-width:18px;color:var(--warning);border-radius:999px;padding:0 5px;font-size:.75rem}.workspace{grid-template-columns:minmax(0,1fr);height:max(480px,100vh - 140px);margin-top:8px}.workspace[data-tab]>*{display:none}.workspace[data-tab=input]>:first-child,.workspace[data-tab=structure]>:nth-child(2),.workspace[data-tab=output]>:nth-child(3){display:flex}}.app-footer{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;justify-content:center;gap:8px 24px;padding:16px 24px;font-size:.8125rem;display:flex}.language-switcher{gap:4px;display:flex}.language-switcher__option{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 8px;font-size:.9rem;font-weight:500;transition:color .15s}.language-switcher__option:hover{color:var(--text)}.language-switcher__option[aria-pressed=true]{background:var(--surface-raised);color:var(--text);font-weight:700}.app-header{width:100%;max-width:1000px;margin:0 auto;padding:24px 24px 8px}.app-header--wide{max-width:1440px}.app-header__nav{justify-content:space-between;align-items:center;display:flex}.app-header__controls{flex-wrap:wrap;justify-content:flex-end;gap:4px 16px;display:flex}.app-header__logo{color:var(--text);font-weight:600;transition:opacity .15s}.app-header__logo:hover{opacity:.75;text-decoration:none}@media (width<=600px){.app-header{padding:16px 16px 4px}}.code-editor{height:100%;min-height:0;overflow:hidden}.code-editor .cm-editor{height:100%}.code-editor .cm-editor.cm-focused{outline:none}.pane{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.pane__header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-height:60px;padding:12px 16px;display:flex}.pane__title{font-size:1.125rem;font-weight:600}.pane__actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pane__body{flex:1;min-height:0;overflow:auto}.pane__footer{border-top:1px solid var(--border);padding:8px 16px;font-size:.8125rem}.select{border:1px solid var(--border);background:var(--page-bg);color:var(--text);font:inherit;cursor:pointer;border-radius:6px;padding:8px 10px;font-size:.875rem}.select:disabled{opacity:.7;cursor:default}.generated{flex-direction:column;height:100%;display:flex}.generated__settings{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:12px 16px;padding:12px 16px;font-size:.8125rem;display:flex}.generated__settings>label{color:var(--muted);flex-direction:column;gap:4px;display:flex}.generated__settings>label.generated__check{color:var(--text);cursor:pointer;flex-direction:row;align-items:center;gap:6px;padding-bottom:8px;font-size:.875rem}.generated__check input{margin:0}.generated__files{border-bottom:1px solid var(--border);gap:2px;padding:6px 8px 0;display:flex;overflow-x:auto}.generated__file-tab{color:var(--muted);font-family:var(--mono);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;border-radius:6px 6px 0 0;flex-shrink:0;padding:4px 10px;font-size:.75rem}.generated__file-tab[aria-selected=true]{border-color:var(--border);background:var(--page-bg);color:var(--text)}.generated__editor{flex:1;min-height:0}.generated__usage{border-top:1px solid var(--border);font-size:.8125rem}.generated__usage summary{color:var(--muted);cursor:pointer;padding:8px 16px}.generated__usage pre{max-height:180px;color:var(--text);font-family:var(--mono);margin:0;padding:0 16px 12px;font-size:12px;line-height:1.6;overflow:auto}.generated__footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.generated__info{flex-wrap:wrap;gap:4px 12px;min-width:0;display:flex}.generated__file{color:var(--muted);font-family:var(--mono)}.generated__notes{color:var(--warning);cursor:help}.generated__actions{gap:6px;display:flex}.generated__error{color:var(--danger);flex-basis:100%}.window{border:1px solid var(--border);background:var(--surface);box-shadow:var(--window-shadow);border-radius:14px}.intro{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 32px;margin-top:16px;padding:36px 40px;display:flex}.intro__text{flex-direction:column;flex:1;gap:12px;display:flex}.intro__title{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.intro h1{font-size:2.4rem;line-height:1.15}.intro__badge{border:1px solid var(--success);color:var(--success);border-radius:999px;padding:2px 10px;font-size:.8125rem}.intro__subtitle{color:var(--muted);font-size:1.15rem}.intro__description{color:var(--muted);line-height:1.65}@media (width<=600px){.intro{padding:20px 16px}.intro h1{font-size:1.75rem}}.json-input{min-width:0;min-height:0;display:flex}.json-input>.pane{flex:1}.json-input .pane__body{position:relative}.json-input__drop{border:2px dashed var(--accent);border-radius:var(--radius);background:var(--overlay);color:var(--accent-text);pointer-events:none;justify-content:center;align-items:center;font-weight:500;display:flex;position:absolute;inset:8px}.json-status{color:var(--muted)}.json-status--ok{color:var(--success)}.json-status--error{color:var(--danger)}.links{flex-direction:column;gap:14px;margin-top:16px;padding:36px 40px;display:flex}.links__actions{flex-wrap:wrap;gap:8px;display:flex}.links__note{color:var(--muted);font-size:.85rem;line-height:1.6}@media (width<=600px){.links{padding:20px 16px}}.structure{font-family:var(--mono);padding:12px 12px 16px;font-size:13px;line-height:1.6}.structure__empty,.structure__no-fields{color:var(--muted);padding:16px;font-size:.875rem}.structure__no-fields{font-family:var(--sans);padding:0 0 0 26px;font-size:.8125rem}.structure__list{margin:0;padding:0 0 0 10px;list-style:none}.structure__item>.structure__list{border-left:1px solid var(--border);margin-left:9px}.structure__row{border-radius:4px;flex-wrap:wrap;align-items:center;gap:0 6px;padding:1px 4px;display:flex}.structure__row:hover{background:var(--hover)}.structure__row--root{padding-left:4px;font-weight:600}.structure__toggle{width:14px;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}span.structure__toggle{cursor:default}.structure__key{color:var(--syntax-property)}.structure__colon{color:var(--muted);margin-left:-6px}.structure__type{color:var(--syntax-constant)}.structure__type--class{color:var(--syntax-type)}.structure__badge{background:var(--surface-raised);color:var(--muted);font-family:var(--sans);border-radius:999px;padding:0 6px;font-size:.6875rem;line-height:1.6}.structure__badge--warning{background:var(--warning-soft);color:var(--warning);cursor:help}.structure__summary{color:var(--muted)}.structure__include{cursor:pointer;margin:0}.structure__item--excluded>.structure__row .structure__key,.structure__item--excluded>.structure__row .structure__type,.structure__item--excluded>.structure__row .structure__colon{color:var(--muted);opacity:.7;text-decoration:line-through}.structure__rename{color:var(--text)}.structure__type--edited{text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.structure__edit{color:var(--muted);font-family:var(--sans);cursor:pointer;opacity:0;background:0 0;border:1px solid #0000;border-radius:4px;margin-left:auto;padding:0 6px;font-size:.75rem}.structure__row:hover .structure__edit,.structure__edit:focus-visible,.structure__edit[aria-expanded=true]{opacity:1}.structure__edit:hover,.structure__edit[aria-expanded=true]{border-color:var(--border);color:var(--text)}@media (hover:none){.structure__edit{opacity:1}}.structure__editor{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);font-family:var(--sans);flex-wrap:wrap;gap:10px 14px;margin:4px 0 8px 40px;padding:10px 12px;font-size:.8125rem;display:flex}.structure__editor>label{color:var(--muted);flex-direction:column;gap:4px;display:flex}.structure__editor input[type=text],.structure__editor select{border:1px solid var(--border);background:var(--page-bg);min-width:150px;color:var(--text);font:inherit;font-family:var(--mono);border-radius:6px;padding:8px 10px;font-size:.875rem}.structure__editor select{font-family:inherit}.structure__checks{color:var(--text);align-items:flex-end;gap:12px;display:flex}.structure__checks label{cursor:pointer;align-items:center;gap:4px;display:flex}.structure__root-name{border:1px solid var(--border);background:var(--page-bg);width:18ch;color:var(--syntax-type);font:inherit;border-radius:6px;padding:6px 10px;font-weight:600}.structure__root-name::placeholder{color:var(--syntax-type);opacity:1}.structure__warnings{border:1px solid var(--warning);border-radius:var(--radius);background:var(--warning-soft);color:var(--warning);font-family:var(--sans);margin-bottom:12px;padding:8px 12px;font-size:.8125rem}.structure__warnings summary{cursor:pointer;font-weight:600}.structure__warnings ul{flex-direction:column;gap:4px;margin:8px 0 0;padding-left:18px;display:flex}.structure__warnings code{font-family:var(--mono)}.structure__settings{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px 16px;padding:10px 16px;font-size:.8125rem;display:flex}.structure__settings label{cursor:pointer;align-items:center;gap:6px;display:flex}.structure__settings input{margin:0}
