@import url(https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&display=swap);@import url(https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;800;900&display=swap);@import url(https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap);*{box-sizing:border-box;padding:0}*,body{margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#faf9f6;color:#000;font-family:IBM Plex Mono,JetBrains Mono,monospace;letter-spacing:-.01em}code{font-family:JetBrains Mono,Cascadia Code,SF Mono,Fira Code,monospace}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#faf9f6;--canvas:#fff;--secondary:#e5e5e0;--ink:#000;--ink-soft:#52525b;--steel:#71717a;--blue:#1d4ed8;--blue-dark:#1e40af;--green:#15803d;--red:#dc2626;--orange:#f97316;--paper-tint:#00000008;--sw-sm:2px 2px 0 #000;--sw-md:3px 3px 0 #000;--sw-lg:4px 4px 0 #000;--sw-xl:6px 6px 0 #000;--font-mono:"IBM Plex Mono","JetBrains Mono",monospace;--font-serif:"Playfair Display",Georgia,serif}.app{background:#faf9f6;background:var(--bg);color:#000;color:var(--ink);display:flex;flex-direction:column;min-height:100vh}.header{background:#fff;background:var(--canvas);border-bottom:2px solid #000;border-bottom:2px solid var(--ink);gap:1.5rem;height:56px;padding:0 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header,.header-logo{align-items:center;display:flex}.header-logo{gap:.5rem}.header-logo h1{color:#000;color:var(--ink);font-family:Playfair Display,Georgia,serif;font-family:var(--font-serif);font-size:1.6rem;font-weight:900;letter-spacing:-.02em;text-transform:uppercase}.header-logo .accent{color:#1d4ed8;color:var(--blue)}.header-divider{background:#000;background:var(--ink);height:24px;width:2px}.subtitle{color:#1d4ed8;color:var(--blue);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.content-area{background-image:linear-gradient(#1d4ed812 1px,#0000 0),linear-gradient(90deg,#1d4ed812 1px,#0000 0);background-size:40px 40px;display:flex;flex:1 1;justify-content:center;padding:1.5rem}.left-panel{background:#fff;background:var(--canvas);border:2px solid #000;border:2px solid var(--ink);box-shadow:6px 6px 0 #000;box-shadow:var(--sw-xl);display:flex;flex-direction:column;height:calc(100vh - 56px - 3rem);max-width:86rem;min-width:0}.left-panel,.workspace{flex:1 1;overflow:hidden}.workspace{display:grid;grid-template-columns:260px 1fr;min-height:0}.sidebar{background:#fff;background:var(--canvas);border-right:2px solid #000;border-right:2px solid var(--ink);display:flex;flex-direction:column;overflow-y:auto}.sidebar h2{border-bottom:1px solid #000;border-bottom:1px solid var(--ink);color:#1d4ed8;color:var(--blue);font-size:.65rem;font-weight:700;letter-spacing:.12em;padding:1.25rem 1.25rem .75rem;text-transform:uppercase}.page-list{list-style:none}.page-item{align-items:center;border-bottom:1px solid #00000014;color:#52525b;color:var(--ink-soft);cursor:pointer;display:flex;font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.82rem;font-weight:500;gap:.6rem;padding:.75rem 1.25rem;position:relative;transition:all .1s}.page-item:hover{background:#00000008;background:var(--paper-tint);color:#000;color:var(--ink)}.page-item.active{background:#1d4ed8;background:var(--blue);color:#fff;font-weight:700}.page-icon{font-size:1rem}.page-label{flex:1 1}.page-badges{display:flex;gap:4px}.dot{border:1px solid #0000004d;border-radius:50%;display:inline-block;height:7px;width:7px}.dot.green{background:#15803d;background:var(--green);border-color:#15803d;border-color:var(--green)}.dot.blue{background:#1d4ed8;background:var(--blue);border-color:#1d4ed8;border-color:var(--blue)}.dot.orange{background:#f97316;background:var(--orange);border-color:#f97316;border-color:var(--orange)}.rm{background:none;border:none;color:#71717a;color:var(--steel);cursor:pointer;font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.75rem;padding:2px 4px;transition:all .1s}.rm:hover{color:#dc2626;color:var(--red)}.regen-btn{background:none;border:none;cursor:pointer;font-size:.8rem;opacity:.5;padding:2px 4px;transition:opacity .1s}.regen-btn:hover{opacity:1}.add-btn{align-items:center;background:#fff;background:var(--canvas);border:2px solid #000;border:2px solid var(--ink);box-shadow:2px 2px 0 #000;box-shadow:var(--sw-sm);color:#000;color:var(--ink);cursor:pointer;display:flex;font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.78rem;font-weight:700;gap:.4rem;justify-content:center;letter-spacing:.04em;margin:1rem;padding:.7rem 1rem;text-transform:uppercase;transition:all .1s ease-out}.add-btn:hover{background:#e5e5e0;background:var(--secondary);box-shadow:none;translate:1px 1px}.editor{background:#fff;background:var(--canvas);border-right:2px solid #000;border-right:2px solid var(--ink);overflow-y:auto;padding:2rem 2.5rem}.field{margin-bottom:1.5rem}.field label{color:#1d4ed8;color:var(--blue);display:block;font-size:.65rem;font-weight:700;letter-spacing:.1em;margin-bottom:.4rem;text-transform:uppercase}.field input,.field label,.field select,.field textarea{font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono)}.field input,.field select,.field textarea{background:#0000;border:1px solid #000;border:1px solid var(--ink);color:#000;color:var(--ink);font-size:.88rem;padding:.65rem .75rem;transition:all .15s;width:100%}.field input:focus,.field select:focus,.field textarea:focus{box-shadow:0 0 0 2px #1d4ed8;box-shadow:0 0 0 2px var(--blue);outline:none}.field textarea{line-height:1.65;min-height:110px;resize:vertical}.opt{color:#71717a;color:var(--steel);font-size:.6rem;font-weight:400;letter-spacing:0;margin-left:.3rem;text-transform:none}.type-row{display:flex;gap:0}.type-btn{background:#fff;background:var(--canvas);border:1px solid #000;border:1px solid var(--ink);color:#52525b;color:var(--ink-soft);cursor:pointer;flex:1 1;font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.78rem;font-weight:700;letter-spacing:.04em;padding:.7rem .75rem;text-align:center;text-transform:uppercase;transition:all .1s}.type-btn+.type-btn{border-left:none}.type-btn:hover{background:#00000008;background:var(--paper-tint);color:#000;color:var(--ink)}.type-btn.on{background:#1d4ed8;background:var(--blue);color:#fff;font-weight:700}.chip{align-items:center;background:#e5e5e0;background:var(--secondary);border:1px solid #000;border:1px solid var(--ink);color:#000;color:var(--ink);display:inline-flex;font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.82rem;gap:.5rem;padding:.4rem .8rem}.chip button{background:none;border:none;color:#71717a;color:var(--steel);cursor:pointer;font-size:.8rem;padding:0;transition:color .1s}.chip button:hover{color:#dc2626;color:var(--red)}.field-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.4rem}.field-header label{margin-bottom:0}.mode-toggle{display:flex;gap:0}.mt{background:#e5e5e0;background:var(--secondary);border:1px solid #000;border:1px solid var(--ink);color:#52525b;color:var(--ink-soft);cursor:pointer;font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.65rem;font-weight:700;letter-spacing:.04em;padding:.35rem .7rem;text-transform:uppercase;transition:all .1s}.mt+.mt{border-left:none}.mt.on{background:#fff;background:var(--canvas);border-bottom-color:#fff;border-bottom-color:var(--canvas);color:#000;color:var(--ink)}.bottom-bar{align-items:flex-end;background:#e5e5e0;background:var(--secondary);border-top:2px solid #000;border-top:2px solid var(--ink);display:flex;flex-wrap:wrap;gap:1rem;padding:1rem 1.5rem}.gen-row{display:flex;gap:.5rem;margin-left:auto}.gen-btn{background:#1d4ed8;background:var(--blue);border:2px solid #000;border:2px solid var(--ink);box-shadow:3px 3px 0 #000;box-shadow:var(--sw-md);color:#fff;cursor:pointer;font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.92rem;font-weight:700;letter-spacing:.04em;padding:.85rem 2rem;text-transform:uppercase;transition:all .1s ease-out}.gen-btn:hover:not(:disabled){background:#1e40af;background:var(--blue-dark);box-shadow:none;translate:2px 2px}.gen-btn:disabled{cursor:not-allowed;opacity:.5}.cancel-btn{background:#fff;background:var(--canvas);border:2px solid #000;border:2px solid var(--ink);box-shadow:2px 2px 0 #000;box-shadow:var(--sw-sm);color:#dc2626;color:var(--red);cursor:pointer;font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.82rem;font-weight:700;letter-spacing:.04em;padding:.85rem 1.5rem;text-transform:uppercase;transition:all .1s}.cancel-btn:hover{background:#dc26260d;box-shadow:none;translate:1px 1px}.pipeline-section{background:#fff;background:var(--canvas);border-left:2px solid #000;border-left:2px solid var(--ink);min-width:380px;overflow-y:auto;padding:1.5rem;width:440px}.pipeline-section>h2{color:#1d4ed8;color:var(--blue);font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.65rem;font-weight:700;letter-spacing:.12em;margin-bottom:1rem;text-transform:uppercase}.pipeline-steps{display:flex;flex-direction:column;gap:0;margin-bottom:1rem}.p-step{align-items:flex-start;border-bottom:1px solid #00000014;display:flex;font-size:.82rem;gap:.7rem;padding:.7rem .85rem;transition:background .1s}.p-step.done{background:#15803d0a}.p-step.thinking{background:#1d4ed80a}.p-step.running{background:#1d4ed80f}.p-step.error{background:#dc26260a}.p-icon{flex-shrink:0;font-size:1rem}.p-body{flex:1 1;min-width:0}.p-msg{color:#000;color:var(--ink);font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.82rem;font-weight:500;word-break:break-word}.p-files{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.4rem}.file-chip{background:#e5e5e0;background:var(--secondary);border:1px solid #000;border:1px solid var(--ink);color:#1d4ed8;color:var(--blue);font-size:.68rem;font-weight:600;padding:.15rem .5rem}.file-chip,.p-errors{font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono)}.p-errors{background:#dc26260d;border:1px solid #dc2626;border:1px solid var(--red);color:#dc2626;color:var(--red);font-size:.72rem;margin-top:.4rem;max-height:150px;overflow-y:auto;padding:.5rem;white-space:pre-wrap}.code-details{border:2px solid #000;border:2px solid var(--ink);margin-top:.85rem;overflow:hidden}.code-details summary{align-items:center;background:#e5e5e0;background:var(--secondary);border-bottom:1px solid #000;border-bottom:1px solid var(--ink);color:#1d4ed8;color:var(--blue);cursor:pointer;display:flex;font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.68rem;font-weight:700;gap:.4rem;letter-spacing:.06em;list-style:none;padding:.7rem 1rem;text-transform:uppercase}.code-details summary::-webkit-details-marker{display:none}.code-stream{background:#fff;background:var(--canvas);color:#52525b;color:var(--ink-soft);font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.72rem;line-height:1.6;max-height:300px;overflow-y:auto;padding:1rem;white-space:pre-wrap}.build-log{border-bottom:1px solid #000;border-bottom:1px solid var(--ink);margin:0}.build-log-header{color:#000;color:var(--ink);font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.82rem;font-weight:600;padding:.6rem 1rem}.build-log.done .build-log-header{color:#15803d;color:var(--green)}.build-log.warning .build-log-header{color:#f97316;color:var(--orange)}.build-log.error .build-log-header{color:#dc2626;color:var(--red)}.build-stdout{color:#52525b;color:var(--ink-soft)}.build-stderr,.build-stdout{background:#fff;background:var(--canvas);font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.72rem;max-height:200px;overflow-y:auto;padding:.5rem 1rem;white-space:pre-wrap}.build-stderr{color:#71717a;color:var(--steel)}.build-stderr.warning{color:#f97316;color:var(--orange)}.build-stderr.error{color:#dc2626;color:var(--red)}.deployed-preview{margin-top:1rem}.preview-bar{align-items:center;display:flex;gap:.75rem;margin-bottom:.6rem}.preview-bar h3{font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.preview-bar a{color:#1d4ed8;color:var(--blue);font-size:.78rem}.download-btn,.preview-bar a{font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-weight:700;letter-spacing:.04em;text-decoration:none;text-transform:uppercase}.download-btn{align-items:center;background:#15803d;background:var(--green);border:2px solid #000;border:2px solid var(--ink);box-shadow:2px 2px 0 #000;box-shadow:var(--sw-sm);color:#fff;display:inline-flex;font-size:.75rem;gap:.35rem;margin-left:auto;padding:.5rem 1.25rem;transition:all .1s}.download-btn:hover{box-shadow:none;translate:1px 1px}.preview-frame{background:#fff;background:var(--canvas);border:2px solid #000;border:2px solid var(--ink);height:500px;width:100%}.code-editor-section{margin-top:1.25rem}.code-editor-section h3{font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.82rem;font-weight:700;letter-spacing:.06em;margin-bottom:.6rem;text-transform:uppercase}.editor-layout{border:2px solid #000;border:2px solid var(--ink);display:flex;max-height:420px;overflow:hidden}.file-tree{background:#fff;background:var(--canvas);border-right:1px solid #000;border-right:1px solid var(--ink);font-size:.78rem;min-width:160px;overflow-y:auto;padding:0;width:200px}.file-item{align-items:center;border-bottom:1px solid #0000000f;color:#52525b;color:var(--ink-soft);cursor:pointer;display:flex;font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);gap:.4rem;padding:.4rem .8rem;transition:all .1s}.file-item:hover{background:#00000008;background:var(--paper-tint);color:#000;color:var(--ink)}.file-item.active{background:#1d4ed8;background:var(--blue);color:#fff;font-weight:600}.file-icon{font-size:.9rem}.editor-pane{background:#fff;background:var(--canvas);display:flex;flex:1 1;flex-direction:column}.editor-header{align-items:center;background:#e5e5e0;background:var(--secondary);border-bottom:1px solid #000;border-bottom:1px solid var(--ink);display:flex;justify-content:space-between;padding:.5rem .8rem}.editor-title{color:#52525b;color:var(--ink-soft);font-size:.78rem;font-weight:600}.editor-title,.save-btn{font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono)}.save-btn{background:#15803d;background:var(--green);border:1px solid #000;border:1px solid var(--ink);box-shadow:1px 1px 0 #000;box-shadow:1px 1px 0 var(--ink);color:#fff;cursor:pointer;font-size:.75rem;font-weight:700;padding:.4rem .9rem;text-transform:uppercase;transition:all .1s}.save-btn:hover{box-shadow:none;translate:1px 1px}.save-btn:disabled{cursor:not-allowed;opacity:.5}.code-editor{background:#fff;background:var(--canvas);border:none;color:#000;color:var(--ink);flex:1 1;font-size:.78rem;line-height:1.6;outline:none;padding:1rem;resize:none}.code-editor,.file-upload,.upload-zone{font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono)}.file-upload,.upload-zone{border:2px dashed #000;border:2px dashed var(--ink);color:#71717a;color:var(--steel);cursor:pointer;font-size:.82rem;font-weight:500;letter-spacing:.04em;padding:1.75rem;text-align:center;text-transform:uppercase;transition:all .15s}.file-upload:hover,.upload-zone:hover{background:#1d4ed80a;border-style:solid;color:#1d4ed8;color:var(--blue)}.model-selector{align-items:flex-end;display:flex;flex-wrap:wrap;gap:.75rem}.model-selector .group{display:flex;flex-direction:column;gap:.3rem}.model-selector .group label{color:#1d4ed8;color:var(--blue);font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.model-selector .group label,.model-selector select{font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono)}.model-selector select{background:#fff;background:var(--canvas);border:1px solid #000;border:1px solid var(--ink);color:#000;color:var(--ink);cursor:pointer;font-size:.78rem;padding:.45rem .5rem}.model-selector select:focus{box-shadow:0 0 0 2px #1d4ed8;box-shadow:0 0 0 2px var(--blue);outline:none}.tab-health{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.6rem}.tab-badge{border:1px solid #000;border:1px solid var(--ink);font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.68rem;font-weight:700;padding:.25rem .6rem;text-transform:uppercase}.svg-editor canvas{border:2px solid #000;border:2px solid var(--ink)}.footer,.svg-editor canvas{background:#fff;background:var(--canvas)}.footer{border-top:2px solid #000;border-top:2px solid var(--ink);color:#1d4ed8;color:var(--blue);font-family:IBM Plex Mono,JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.06em;padding:.65rem 1.5rem;text-align:center;text-transform:uppercase}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#e5e5e0;background:var(--secondary);border:1px solid #000;border:1px solid var(--ink)}::-webkit-scrollbar-thumb:hover{background:#d8d8d2}.fu-zone{align-items:center;border:2px dashed #d2d2d7;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:.3rem;padding:1.25rem;text-align:center;transition:border-color .2s,background .2s}.fu-zone.drag,.fu-zone:hover{background:#f0f6ff;border-color:#007aff}.fu-icon{font-size:1.5rem}.fu-text{color:#86868b;font-size:.82rem}.fu-err{color:#ff3b30;font-size:.8rem;margin-top:.25rem}.sve{background:#fff;border:1px solid #d2d2d7;border-radius:10px;overflow:hidden}.sve-bar{background:#f5f5f7;border-bottom:1px solid #e5e5e7;flex-wrap:wrap;gap:4px;padding:.4rem .6rem}.sve-bar,.sve-tool{align-items:center;display:flex}.sve-tool{background:#fff;border:1px solid #0000;border-radius:6px;cursor:pointer;font-size:1rem;height:32px;justify-content:center;transition:all .15s;width:32px}.sve-tool:hover{border-color:#d2d2d7}.sve-tool.on{background:#007aff;border-color:#007aff;color:#fff}.sve-sep{background:#d2d2d7;height:20px;margin:0 4px;width:1px}.sve-color{align-items:center;cursor:pointer;display:flex}.sve-color input[type=color]{background:none;border:1px solid #d2d2d7;border-radius:4px;cursor:pointer;height:24px;padding:0;width:24px}.sve-color input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.sve-color input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.sve-act{background:#fff;border:1px solid #d2d2d7;border-radius:6px;cursor:pointer;font-size:.75rem;font-weight:600;padding:.3rem .6rem;transition:all .15s;white-space:nowrap}.sve-act:hover:not(:disabled){background:#f0f0f0}.sve-act:disabled{cursor:default;opacity:.35}.sve-save{background:#34c759;border-color:#34c759;color:#fff}.sve-save:hover:not(:disabled){background:#2db84d}.sve-canvas{background:#fff;cursor:crosshair;height:320px;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;width:100%}.sve-hint{color:#c7c7cc;font-size:.85rem;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%)}.ms{align-items:center;display:flex;flex-wrap:wrap;gap:.6rem}.ms-providers{background:#e5e5e7;border-radius:8px;display:flex;gap:0;padding:3px}.ms-prov{align-items:center;background:#0000;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:.82rem;font-weight:600;gap:.35rem;padding:.45rem .9rem;transition:all .15s;white-space:nowrap}.ms-prov.on{background:#fff;box-shadow:0 1px 3px #0000001a;color:#007aff}.ms-dot{border-radius:50%;display:inline-block;height:6px;width:6px}.ms-dot.green{background:#34c759}.ms-dot.red{background:#ff3b30}.ms-dot.gray{background:#86868b}.ms-pair{align-items:center;background:#f5f5f7;border:1px solid #d2d2d7;border-radius:10px;display:flex;gap:.5rem;padding:.4rem .65rem}.ms-role{display:flex;flex-direction:column;gap:.2rem}.ms-role-label{color:#666;font-size:.68rem;font-weight:700;letter-spacing:.04em;padding-left:2px;text-transform:uppercase}.ms-pair-arrow{color:#86868b;font-size:1.1rem;margin:.8rem .15rem 0}.ms-select{background:#fff;border:1px solid #d2d2d7;border-radius:8px;cursor:pointer;font-size:.82rem;min-width:150px;padding:.4rem .65rem}.ms-select:focus{border-color:#007aff;outline:none}
/*# sourceMappingURL=main.f07bab3a.css.map*/