:root{--ink:#060a14;--night:#0c1324;--panel:#111a30;--line:#22304f;--text:#eef2fb;--muted:#9aa8c4;--blue:#2f6bff;--signal:#f2b544;--ok:#34c38f;--danger:#ff6b6b;--radius:14px}*{box-sizing:border-box}html,body{background:var(--ink);color:var(--text);margin:0}body{font-family:Instrument Sans,system-ui,sans-serif;line-height:1.55}a{color:inherit}h1,h2,h3{margin:0 0 .5em;font-family:Sora,system-ui,sans-serif;line-height:1.2}.shell{max-width:1080px;margin:0 auto;padding:24px 16px 64px}.top{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;margin-bottom:32px;padding-bottom:24px;display:flex}.brand{font-family:Sora,sans-serif;font-weight:700;text-decoration:none}.brand span{color:var(--blue)}.top nav{flex-wrap:wrap;gap:16px;display:flex}.top nav a{color:var(--muted);text-decoration:none}.top nav a:hover{color:var(--text)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.muted{color:var(--muted)}.btn{border:1px solid var(--line);color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--blue);border-color:var(--blue)}.btn:disabled{opacity:.5;cursor:not-allowed}label{margin:16px 0 6px;font-weight:600;display:block}input,select,textarea{border:1px solid var(--line);background:var(--night);width:100%;color:var(--text);font:inherit;border-radius:10px;padding:10px 12px}textarea{resize:vertical;min-height:140px}.error{color:var(--danger)}.tag{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:2px 10px;font-size:.8rem;display:inline-block}.tag.ok{color:var(--ok);border-color:var(--ok)}.tag.warn{color:var(--signal);border-color:var(--signal)}.locked{opacity:.55}.meter{background:var(--night);border-radius:999px;height:8px;overflow:hidden}.meter>div{background:var(--blue);height:100%}.output{white-space:pre-wrap;background:var(--night);border:1px solid var(--line);border-radius:var(--radius);min-height:120px;padding:20px}.stack>*+*{margin-top:16px}
