:root{--bg:#f6f7f9;--surface:#fff;--border:#dde1e6;--text:#1c2128;--muted:#667080;--accent:#1a9b61;--accent-text:#fff;--ok:#1a9b61;--warn:#b7791f;--error:#d1363a;--error-bg:#fdeced;--warn-bg:#fdf6e7;--ok-bg:#e8f6ef;--syn-comment:#8a94a3;--syn-string:#a3501f;--syn-site:#0b5cad;--syn-directive:#7a3fbf;--syn-matcher:#b0275a;--syn-placeholder:#1a7f72;--syn-number:#a35d00;--mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#111418;--surface:#181c21;--border:#2b3139;--text:#e3e7ec;--muted:#8b95a3;--accent:#2fbf7c;--accent-text:#08130d;--ok:#3ecf8e;--warn:#e0a84a;--error:#ff6b6e;--error-bg:#3a1c1e;--warn-bg:#352a17;--ok-bg:#16301f;--syn-comment:#6b7684;--syn-string:#e6a26b;--syn-site:#6cb6ff;--syn-directive:#c599ff;--syn-matcher:#ff7aa8;--syn-placeholder:#5fd4c4;--syn-number:#f0b45c}}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;margin:0}[hidden]{display:none!important}code{font-family:var(--mono);font-size:.85em}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--error);white-space:pre-wrap;min-height:1.2em;margin:0}.icon{stroke-width:2;flex:none;width:1.1em;height:1.1em}.icon.big{width:2rem;height:2rem}.spin{animation:1s linear infinite spin}button{font:inherit;display:inline-flex;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:7px;justify-content:center;align-items: center;gap:.45rem;padding:.45rem .85rem;font-size:.9rem}button:hover:not(:disabled){border-color:var(--muted);background:color-mix(in srgb,var(--text)4%,var(--surface))}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible{outline:2px solid color-mix(in srgb,var(--accent)60%,transparent);outline-offset:2px}input:focus-visible{outline:2px solid color-mix(in srgb,var(--accent)60%,transparent);outline-offset:2px}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent)88%,var(--text));border-color:#0000}button.big{padding:.7rem 1rem;font-size:1rem}.icon-btn{color:var(--muted);background:0 0;border-color:#0000;padding:.4rem}.icon-btn:hover:not(:disabled){color:var(--text)}kbd{font-family:var(--mono);opacity:.55;border:1px solid;border-radius:4px;padding:.05rem .35rem;font-size:.7rem;font-weight:400}button.danger,.icon-btn.danger:hover:not(:disabled){color:var(--error)}button.link{text-decoration:underline;color:inherit;white-space:nowrap;background:0 0;border:none;padding:0 .3rem}input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:7px;width:100%;padding:.5rem .65rem}label{display:grid;gap:.3rem;font-size:.9rem}.center{display:grid;place-items: center;min-height:100%;padding:16px}.card{background:var(--surface);border:1px solid var(--border);display:grid;text-align:center;border-radius:12px;gap:1rem;width:min(420px,100%);padding:1.75rem;box-shadow:0 10px 40px -12px #00000040}.card label{text-align:left}.card-badge{display:grid;color:var(--accent);background:color-mix(in srgb,var(--accent)14%,transparent);border-radius:18px;justify-self:center;place-items: center;width:64px;height:64px}.card-badge .icon{stroke-width:1.6;width:34px;height:34px}.card h1{margin:0;font-size:1.35rem}.snippet{display:block;background:var(--bg);border:1px solid var(--border);user-select:all;border-radius:7px;padding:.5rem .75rem}[data-view=loading] .icon{width:28px;height:28px}.card p{margin:0}.app{display:grid;grid-template-rows:auto auto 1fr auto;height:100%}header{display:flex;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items: center;gap:1rem;padding:.6rem 1rem}header .title{display:flex;flex:1;align-items: center;gap:.75rem;min-width:0}.logo{display:grid;background:var(--accent);color:var(--accent-text);border-radius:8px;align-self: center;place-items: center;width:28px;height:28px}.logo .icon{width:17px;height:17px}header .title code{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}header nav{display:flex;gap:.4rem}.badge{display:inline-flex;background:var(--warn-bg);color:var(--warn);border-radius:99px;align-items: center;gap:.25rem;padding:.1rem .45rem;font-size:.75rem}.pill{display:inline-flex;border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:99px;align-items: center;gap:.35rem;padding:.25rem .65rem;font-size:.8rem}.pill[data-kind=ok]{color:var(--ok);background:var(--ok-bg);border-color:#0000}.pill[data-kind=warn]{color:var(--warn);background:var(--warn-bg);border-color:#0000}.pill[data-kind=error]{color:var(--error);background:var(--error-bg);border-color:#0000}.toolbar{display:flex;border-bottom:1px solid var(--border);gap:.5rem;padding:.5rem 1rem}.spacer{flex:1}#editor{overflow:hidden;background:var(--surface);min-height:0}#editor.locked{opacity:.6}#editor .cm-editor{background:var(--surface);color:var(--text);height:100%;font-size:14px}#editor .cm-scroller{font-family:var(--mono);line-height:1.55}#editor .cm-gutters{background:var(--bg);border-right:1px solid var(--border);color:var(--muted)}#editor .cm-activeLine,#editor .cm-activeLineGutter{background:color-mix(in srgb,var(--accent)7%,transparent)}#editor .cm-error-line{background:var(--error-bg)}#editor .cm-content{caret-color:var(--text)}#editor .cm-cursor{border-left-color:var(--text)}#editor .cm-selectionBackground,#editor .cm-focused .cm-selectionBackground{background:color-mix(in srgb,var(--accent)25%,transparent)!important}footer{border-top:1px solid var(--border);background:var(--surface);overflow:auto;max-height:30vh;padding:.5rem 1rem;font-size:.85rem}.footer-row{display:flex;align-items: flex-start;gap:1rem}#cursor-pos{white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;font-size:.78rem}#validation{display:flex;color:var(--muted);align-items: flex-start;gap:.5rem;min-width:0}#validation .icon{margin-top:.05rem}#validation .msg{white-space:pre-wrap;font-family:var(--mono);font-size:.8rem}#validation[data-kind=ok]{color:var(--ok)}#validation[data-kind=warn]{color:var(--warn)}#validation[data-kind=error],#validation[data-kind=error] .msg{color:var(--error)}#validation-details{color:var(--warn);font-family:var(--mono);margin:.35rem 0 0;padding-left:1.6rem;font-size:.8rem}dialog{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;width:min(620px,100% - 32px);padding:1.5rem}dialog:focus-visible{outline:none}.card .error:empty{display:none}dialog::backdrop{background:#00000073}dialog h2{margin:0;font-size:1.15rem}dialog[open]{animation:.16s ease-out pop}@keyframes pop{0%{opacity:0;transform:translateY(6px)scale(.98)}}.dialog-head{display:flex;align-items: center;gap:.75rem;margin-bottom:.75rem}.dialog-head p{margin:0}.dialog-head .close{margin-left:auto}.head-icon{display:grid;color:var(--accent);background:color-mix(in srgb,var(--accent)14%,transparent);border-radius:10px;flex:none;place-items: center;width:36px;height:36px}.head-icon[data-kind=warn]{color:var(--warn);background:var(--warn-bg)}.head-icon[data-kind=error]{color:var(--error);background:var(--error-bg)}.actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}#ask{width:min(440px,100% - 32px)}#ask p{margin:0 0 1rem}#progress-log{list-style:none;display:grid;gap:.35rem;margin:1rem 0 0;padding:0;font-size:.85rem}#progress-log li{display:flex;align-items: flex-start;gap:.6rem}.step-icon{display:grid;color:var(--ok);background:var(--ok-bg);border-radius:50%;flex:none;place-items: center;width:1.15rem;height:1.15rem;margin-top:.05rem}.step-icon .icon{stroke-width:3;width:.75rem;height:.75rem}.step-icon[data-kind=warn]{color:var(--warn);background:var(--warn-bg)}.step-icon[data-kind=error]{color:var(--error);background:var(--error-bg)}#progress-log li.current .step-icon{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.35}}#progress-log time{color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.connection{display:flex;background:var(--warn-bg);color:var(--warn);border-radius:7px;align-items: flex-start;gap:.5rem;margin:.75rem 0 0;padding:.5rem .75rem;font-size:.85rem}@keyframes spin{to{transform:rotate(360deg)}}#progress-result{display:grid;border-radius:8px;gap:.5rem;margin-top:1rem;padding:.75rem 1rem}#progress-result p{white-space:pre-wrap;margin:0}#progress-result ul{margin:0;font-size:.85rem}#progress-result[data-kind=ok]{background:var(--ok-bg);color:var(--ok)}#progress-result[data-kind=warn]{background:var(--warn-bg);color:var(--warn)}#progress-result[data-kind=error]{background:var(--error-bg);color:var(--error)}.rows{list-style:none;display:grid;overflow:auto;gap:.5rem;max-height:50vh;margin:1rem 0;padding:0}.rows li{display:flex;border:1px solid var(--border);border-radius:8px;align-items: center;gap:.5rem;padding:.5rem .75rem;font-size:.9rem}.rows li>span:not(.row-icon){display:grid;flex:1;gap:.1rem;min-width:0}.rows small{color:var(--muted)}.rows li.empty{color:var(--muted);border-style:dashed;justify-content:center;gap:.5rem;padding:1.25rem}.row-icon{display:grid;color:var(--muted);background:var(--bg);border-radius:8px;flex:none;place-items: center;width:32px;height:32px}form.inline{display:flex;gap:.5rem}form.inline input{flex:1}@media (max-width:640px){header{gap:.6rem}header .title{flex-basis:100%}header .title strong{white-space:nowrap}header .title code{display:none}header nav{margin-left:auto}header nav span,kbd,#cursor-pos{display:none}.toolbar{flex-wrap:wrap}form.inline{flex-direction:column}}
