@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&family=Space+Grotesk:wght@500;700&display=swap");:root{color-scheme:light;--bg:#fff;--bg-accent:#f5f9fc;--bg-deep:#edf2f7;--panel:#fff;--panel-header:#f4f7fb;--ink:#1d1b17;--ink-muted:#596476;--accent:#24577a;--accent-soft:#e3f2ee;--accent-strong:#b84d34;--border:#dde6ef;--shadow:0 20px 50px rgba(31,25,18,.08);--console-bg:#fbfdff;--banner-bg:#edf7ff;--banner-border:#bfd8ee;--banner-text:#214761;--error:#8a2a1f;--editor-bg:#fffdf8;--editor-gutter:#f7f1e6;--editor-font-size:15px;--tooltip-bg:#2a3548;--tooltip-ink:#f8fbff;--tooltip-border:#1b2535;--run-btn-bg:#e7f4ec;--run-btn-border:#b9d9c4;--run-btn-ink:#2f6f49;--run-btn-bg-hover:#dcf0e5}html[data-theme=dark]{color-scheme:dark;--bg:#141821;--bg-accent:#1c2230;--bg-deep:#0f1218;--panel:#1b202b;--panel-header:#202735;--ink:#f2f4f8;--ink-muted:#a4adba;--accent:#8fb2ff;--accent-soft:#2a3b52;--accent-strong:#ff9b79;--border:#2d3646;--shadow:0 20px 50px rgba(0,0,0,.35);--console-bg:#151b24;--banner-bg:#2a2430;--banner-border:#4a3c52;--banner-text:#f3d9a7;--error:#ffb4a0;--editor-bg:#1b1f27;--editor-gutter:#171c25;--tooltip-bg:#e9effc;--tooltip-ink:#0f172a;--tooltip-border:#c2cfeb;--run-btn-bg:#1f3a2f;--run-btn-border:#335947;--run-btn-ink:#b8e7cb;--run-btn-bg-hover:#264436}*{box-sizing:border-box}body,html{height:100%}body{margin:0;font-family:Space Grotesk,Trebuchet MS,Segoe UI,sans-serif;color:var(--ink);background:radial-gradient(circle at top left,var(--bg-accent) 0,var(--bg) 62%,var(--bg-deep) 100%);min-height:100%;overflow:hidden}h1,h2,h3{margin:0;font-weight:700}p{margin:0}button,input,select{font-family:inherit}.app-shell{width:100%;overflow:hidden;padding:6px 8px 8px;display:flex;flex-direction:column;gap:8px;height:100dvh;min-height:100vh}.splash-screen{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:20px;background:color-mix(in srgb,var(--bg) 84%,var(--bg-deep) 16%);opacity:1;transition:opacity .24s ease}.splash-screen.is-hiding{opacity:0;pointer-events:none}.splash-card{min-width:min(280px,88vw);padding:14px 18px;border-radius:14px;border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow);display:grid;grid-gap:6px;gap:6px;justify-items:center;text-align:center}.splash-card h2{font-size:1rem;font-weight:600;line-height:1.1}.splash-card p{font-size:.78rem;color:var(--ink-muted)}.splash-loader{width:18px;height:18px;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent) 35%,transparent);border-top-color:var(--accent);animation:splash-spin .9s linear infinite}@keyframes splash-spin{to{transform:rotate(1turn)}}.toolbar{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:space-between;padding:4px 6px;border-radius:12px;background:var(--panel);box-shadow:var(--shadow);border:1px solid var(--border);min-height:40px;min-width:0}.toolbar h1{font-size:clamp(.98rem,.95rem + .18vw,1.08rem);line-height:1;margin:0}.toolbar-brand{gap:6px;min-height:30px}.toolbar-brand,.toolbar-left{display:flex;align-items:center}.toolbar-left{gap:8px;min-width:0;flex:0 1 auto}.toolbar-meta{display:flex;flex-direction:column;gap:2px;font-size:.75rem;color:color-mix(in srgb,var(--ink-muted) 70%,var(--border) 30%)}.toolbar-status{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.status-pill{padding:2px 6px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.65rem;font-weight:600}.status-ready{background:#e2efe9}.status-error{background:#f4d2c8;color:#7a2a1b}.status-error-text{font-size:.8rem;color:var(--error)}.toolbar-actions{display:flex;flex-wrap:nowrap;gap:4px;align-items:center}.toolbar-actions-main{flex:1 1;justify-content:flex-end;min-width:0;overflow:visible;scrollbar-width:none}.toolbar-actions-main::-webkit-scrollbar{display:none}.btn{border:1px solid transparent;border-radius:6px;padding:3px 6px;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;display:inline-flex;align-items:center;gap:6px;font-size:.75rem;line-height:1.1}.btn-icon-only{width:30px;height:30px;padding:0;gap:0;justify-content:center}.btn-icon-only .btn-icon{width:20px;height:20px}.tooltip-trigger{position:relative}.tooltip-trigger:after{content:attr(data-tooltip);position:absolute;left:50%;top:calc(100% + 6px);transform:translate(-50%,-2px);opacity:0;visibility:hidden;pointer-events:none;z-index:80;padding:3px 6px;border-radius:6px;border:1px solid var(--tooltip-border);background:var(--tooltip-bg);color:var(--tooltip-ink);font-size:.66rem;font-weight:400;line-height:1;white-space:nowrap;box-shadow:0 6px 16px rgba(0,0,0,.14);transition:opacity .08s ease,transform .08s ease,visibility 0s linear .08s}.tooltip-trigger:focus-visible:after,.tooltip-trigger:hover:after{opacity:1;visibility:visible;transform:translate(-50%);transition-delay:0s}.tooltip-trigger:disabled:after{display:none}.btn:disabled{cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}.btn-primary{background:var(--accent);box-shadow:0 10px 20px rgba(31,59,91,.2)}.btn-primary,.btn-primary .btn-icon{color:#fdfbf6}.btn-primary:hover:not(:disabled){transform:translateY(-1px)}.btn-secondary{background:color-mix(in srgb,var(--panel) 80%,var(--bg) 20%);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:color-mix(in srgb,var(--panel) 70%,var(--bg) 30%)}.btn-run{background:var(--run-btn-bg);border-color:var(--run-btn-border)}.btn-run .btn-icon{color:var(--run-btn-ink)}.btn-run:hover:not(:disabled){background:var(--run-btn-bg-hover)}.toolbar-run-btn{min-width:94px;justify-content:center;padding-inline:8px}.toolbar-run-btn .btn-icon{width:19px;height:19px}.btn-ghost{background:transparent;border:1px dashed var(--border)}.btn-ghost,.btn-ghost .btn-icon{color:var(--ink-muted)}.btn-compact{padding:1px 4px}.btn-icon{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;color:var(--accent)}.btn-icon svg{width:100%;height:100%}.fluent-icon{display:block}.example-selector{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--ink-muted)}.example-selector select{border-radius:6px;border:1px solid var(--border);height:30px;padding:0 6px;font-size:.75rem;background:color-mix(in srgb,var(--panel) 92%,var(--bg) 8%);color:var(--ink)}.restore-banner{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:12px;background:var(--banner-bg);border:1px solid var(--banner-border);color:var(--banner-text);font-size:.75rem}.restore-banner p{flex:1 1}.quickstart-panel{min-width:0;display:grid;grid-template-columns:minmax(160px,.75fr) auto minmax(360px,1.7fr);grid-gap:10px;gap:10px;align-items:stretch;padding:8px;border-radius:12px;border:1px solid var(--border);background:linear-gradient(135deg,color-mix(in srgb,var(--accent-soft) 64%,var(--panel) 36%),transparent 58%),var(--panel);box-shadow:var(--shadow)}.quickstart-copy{display:grid;align-content:center;grid-gap:3px;gap:3px;min-width:0}.quickstart-copy h2{font-size:.92rem;line-height:1.05}.quickstart-copy p{font-size:.72rem;line-height:1.25;color:var(--ink-muted)}.quickstart-actions{display:flex;align-items:center;gap:6px}.quickstart-run{min-height:34px;white-space:nowrap}.quickstart-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:6px;gap:6px;min-width:0}.quickstart-card{min-width:0;display:grid;grid-gap:3px;gap:3px;padding:7px 8px;border-radius:8px;border:1px solid color-mix(in srgb,var(--border) 86%,var(--accent) 14%);background:color-mix(in srgb,var(--panel) 90%,var(--bg) 10%);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .15s ease,transform .15s ease,background .15s ease}.quickstart-card:focus-visible:not(:disabled),.quickstart-card:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 45%,var(--border) 55%);background:color-mix(in srgb,var(--panel) 78%,var(--accent-soft) 22%);transform:translateY(-1px)}.quickstart-card:disabled{cursor:not-allowed;opacity:.64}.quickstart-card-meta{font-size:.62rem;line-height:1;font-weight:700;color:var(--accent);text-transform:uppercase}.quickstart-card-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;line-height:1.08;font-weight:700}.quickstart-card-description{display:-webkit-box;min-height:2.2em;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:.68rem;line-height:1.1;color:var(--ink-muted)}.app-main{grid-gap:8px;grid-template-columns:1fr;grid-auto-rows:minmax(0,1fr);flex:1 1;align-items:stretch}.app-main,.side-panel-column{display:grid;gap:8px;min-height:0}.side-panel-column{grid-gap:8px;min-width:0;grid-template-rows:minmax(0,1fr) auto auto auto}.panel-header{display:flex;align-items:center;justify-content:space-between;min-height:30px;padding:2px 6px;border-bottom:1px solid var(--border);background:var(--panel-header)}.panel-header h2{font-size:.9rem;line-height:1;font-weight:500}.panel-header-actions{display:inline-flex;align-items:center;gap:4px}.panel-header .btn.btn-compact{height:20px;padding:0 6px;line-height:1}.panel-header .btn-collapse-small{width:20px;height:20px;font-size:.82rem}.panel-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}.panel-label{color:var(--ink-muted);font-weight:500}.panel-file{color:var(--ink);font-weight:500}.panel-unsaved{margin-left:4px;color:var(--accent-strong);font-weight:700}.monaco-editor .margin{background:var(--monaco-editor-gutter,var(--editor-gutter))!important;box-shadow:inset -10px 0 0 var(--monaco-editor-bg,var(--editor-bg))}.editor-panel .monaco-editor .margin .line-numbers{font-size:max(10px,calc(var(--editor-font-size, 15px) - 1px))!important}.assistant-panel,.console-panel,.editor-panel,.stdin-panel,.terminal-panel{background:var(--panel);border-radius:12px;border:1px solid var(--border);box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:0;min-width:0;height:100%;overflow:hidden}.console-body,.editor-body{flex:1 1;min-height:0}.console-body{padding:6px;overflow:auto;font-family:IBM Plex Mono,Courier New,monospace;font-size:var(--editor-font-size,15px);background:var(--console-bg)}.workspace-files-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 6px;border-bottom:1px solid var(--border);background:var(--panel-header)}.workspace-files-title{display:flex;align-items:center;gap:6px;font-size:.74rem;color:var(--ink-muted);flex-wrap:wrap}.workspace-files-label{color:var(--ink);font-weight:600;font-size:.72rem}.workspace-files-count{padding:1px 6px;border-radius:999px;border:1px solid var(--border);font-size:.68rem;color:var(--ink);background:color-mix(in srgb,var(--panel) 70%,var(--bg) 30%)}.workspace-files-actions{display:flex;align-items:center;gap:6px}.btn-compact{padding:2px 6px;font-size:.7rem;line-height:1.1}.workspace-files-body{max-height:120px;overflow:auto;padding:6px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--panel) 80%,var(--bg) 20%)}.workspace-files-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:4px;gap:4px;font-size:.74rem;color:var(--ink);font-family:IBM Plex Mono,Courier New,monospace}.workspace-file-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.workspace-file-name{flex:1 1;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-align:left}.workspace-file-name.is-openable{cursor:pointer}.workspace-file-name.is-openable:hover{text-decoration:underline}.workspace-file-delete{padding:2px 4px}.workspace-files-empty{margin:0;font-size:.72rem;color:var(--ink-muted)}.btn-collapse-small{width:22px;height:22px;font-size:.8rem}.console-placeholder{display:grid;place-items:center;min-height:100%;padding:24px 12px;text-align:center;color:color-mix(in srgb,var(--ink-muted) 60%,var(--border) 40%);font-family:Space Grotesk,Trebuchet MS,Segoe UI,sans-serif;font-size:.84rem}.console-output{margin:0 0 8px;white-space:pre-wrap}.console-error{color:var(--error)}.console-image-block{margin:6px 0}.console-latex{margin:6px 0;padding:4px 6px;border-radius:6px;background:color-mix(in srgb,var(--panel) 70%,transparent);overflow-x:auto}.console-images{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border);display:grid;grid-gap:6px;gap:6px}.console-images-title{font-size:.7rem;color:var(--ink-muted);letter-spacing:.02em;text-transform:uppercase}.console-image-grid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.console-image{width:100%;height:auto;max-height:360px;object-fit:contain;border-radius:8px;border:1px solid var(--border);background:var(--panel)}.assistant-body{display:grid;grid-gap:8px;gap:8px;padding:6px;background:color-mix(in srgb,var(--panel) 78%,var(--bg) 22%);border-top:1px solid var(--border)}.assistant-form,.assistant-grid{display:grid;grid-gap:6px;gap:6px}.assistant-grid{grid-template-columns:1fr}.assistant-field{display:grid;grid-gap:3px;gap:3px;font-size:.72rem;color:var(--ink-muted)}.assistant-input,.assistant-select,.assistant-textarea{width:100%;border:1px solid var(--border);border-radius:6px;padding:4px 6px;background:var(--panel);color:var(--ink);font-size:.78rem}.assistant-textarea{resize:vertical;min-height:74px;font-family:IBM Plex Mono,Courier New,monospace}.assistant-checkbox{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;color:var(--ink-muted)}.assistant-actions{display:flex;gap:6px;flex-wrap:wrap}.assistant-response{margin:0;padding:6px;border-radius:8px;border:1px solid var(--border);background:var(--console-bg);max-height:180px;overflow:auto;white-space:pre-wrap;font-size:.74rem;font-family:IBM Plex Mono,Courier New,monospace}.assistant-error{color:var(--error);font-size:.74rem}.assistant-note{font-size:.68rem;color:color-mix(in srgb,var(--ink-muted) 80%,var(--border) 20%)}.stdin-body{display:grid;grid-gap:6px;gap:6px;padding:6px;background:color-mix(in srgb,var(--panel) 78%,var(--bg) 22%);border-top:1px solid var(--border)}.stdin-header-actions,.terminal-header-actions{display:flex;align-items:center;gap:6px}.terminal-body{display:grid;grid-gap:6px;gap:6px;padding:6px;background:color-mix(in srgb,var(--panel) 78%,var(--bg) 22%);border-top:1px solid var(--border)}.terminal-input-row{display:flex;align-items:center;gap:6px}.terminal-prompt{width:14px;text-align:center;font-size:.8rem;color:var(--ink-muted);font-family:IBM Plex Mono,Courier New,monospace}.terminal-input{flex:1 1;min-width:0;border:1px solid var(--border);padding:5px 7px;font-size:.78rem}.terminal-history,.terminal-input{border-radius:8px;background:var(--console-bg);color:var(--ink);font-family:IBM Plex Mono,Courier New,monospace}.terminal-history{margin:0;padding:6px;border:1px solid var(--border);font-size:.74rem;white-space:pre-wrap;max-height:120px;overflow:auto}.terminal-note{font-size:.68rem;color:color-mix(in srgb,var(--ink-muted) 80%,var(--border) 20%)}.terminal-note code{font-family:IBM Plex Mono,Courier New,monospace;font-size:.95em;font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0,none}.stdin-textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:6px;background:var(--console-bg);color:var(--ink);font-size:var(--editor-font-size,15px);resize:vertical;min-height:74px;font-family:IBM Plex Mono,Courier New,monospace}.stdin-note{font-size:.68rem;color:color-mix(in srgb,var(--ink-muted) 80%,var(--border) 20%)}.stdin-note code{font-family:IBM Plex Mono,Courier New,monospace;font-size:.95em;font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0,none}.stdin-modal{width:min(460px,92vw)}.stdin-dialog-input{width:100%;border:1px solid var(--border);border-radius:8px;padding:6px 8px;background:var(--panel);color:var(--ink);font-size:.86rem;font-family:IBM Plex Mono,Courier New,monospace}.stdin-dialog-actions{display:flex;gap:6px;justify-content:flex-end}.btn-collapse{border:1px solid color-mix(in srgb,var(--border) 70%,transparent);background:color-mix(in srgb,var(--panel) 70%,var(--bg) 30%);color:var(--ink);width:26px;height:26px;border-radius:999px;font-size:.96rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.btn-collapse:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--panel) 80%,var(--bg) 20%);box-shadow:0 6px 14px rgba(0,0,0,.12)}.btn-collapse:active{transform:translateY(0)}.modal-backdrop{position:fixed;inset:0;background:rgba(15,17,24,.35);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal{width:min(520px,92vw);border-radius:12px;background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--panel-header);border-bottom:1px solid var(--border)}.modal-header h3{font-size:.86rem;font-weight:500;line-height:1.1}.modal-header .modal-close-btn{width:22px;height:22px;padding:0}.modal-header .modal-close-btn .btn-icon{width:14px;height:14px}.modal-body{padding:10px 12px 12px;display:grid;grid-gap:8px;gap:8px;font-size:.82rem;color:var(--ink-muted)}.modal-body strong{color:var(--ink)}.modal-body hr{width:100%;border:none;border-top:1px solid var(--border);margin:2px 0}.settings-modal{width:min(520px,92vw)}.settings-body{display:grid;grid-gap:10px;gap:10px}.settings-field{display:grid;grid-gap:6px;gap:6px;font-size:.8rem;color:var(--ink)}.settings-range-row{display:flex;align-items:center;gap:10px}.settings-range{flex:1 1;accent-color:var(--accent)}.settings-value{min-width:44px;text-align:right;font-family:IBM Plex Mono,Courier New,monospace;font-size:.76rem;color:var(--ink-muted)}.settings-note{font-size:.72rem;color:color-mix(in srgb,var(--ink-muted) 80%,var(--border) 20%)}@media (min-width:980px){.app-main{grid-template-columns:1.35fr 1fr}.assistant-grid{grid-template-columns:1fr 1fr}}@media (max-width:1040px){.quickstart-panel{grid-template-columns:1fr auto}.quickstart-cards{grid-column:1/-1}}@media (max-width:720px){.app-shell{padding:4px 6px 6px}.toolbar{flex-wrap:wrap;align-items:center}.toolbar-actions-main,.toolbar-left{width:100%}.toolbar-actions-main{justify-content:flex-start;overflow-x:auto;overflow-y:hidden}.quickstart-panel{grid-template-columns:1fr}.quickstart-actions{justify-content:space-between}.quickstart-cards{grid-template-columns:1fr}.quickstart-card-description{min-height:0}}