:root{--bg:#f7f7f9;--panel:#ffffff;--ink:#1a1a1a;--muted:#6b7280;--border:#e5e7eb;--accent:#2563eb;--accent-dark:#1d4ed8;--danger:#dc2626;--ok:#16a34a;--radius:10px;--shadow:0 1px 3px rgba(0,0,0,0.08)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5}a{color:var(--accent);text-decoration:none}h1,h2,h3{margin:0 0 .5rem;font-weight:650}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--ink);padding:.5rem .9rem;border-radius:8px;transition:.15s ease}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.primary:hover:not(:disabled){background:var(--accent-dark);color:#fff}button.danger{color:var(--danger);border-color:var(--danger)}input,select,textarea{font:inherit;padding:.5rem .7rem;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--ink);width:100%}.container{max-width:1100px;margin:0 auto;padding:2rem 1.25rem}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;margin-bottom:1.25rem}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.row>*{flex:0 0 auto}.grid{display:grid;grid-gap:1rem;gap:1rem}.grid.cols-3{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.card{border:1px solid var(--border);border-radius:var(--radius);padding:1rem;background:#fff;display:block}.card:hover{border-color:var(--accent)}.muted{color:var(--muted);font-size:.85rem}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;background:#eef2ff;color:var(--accent)}svg.canvas{background:#fff;border:1px solid var(--border);border-radius:var(--radius);max-width:100%}.status-ok{color:var(--ok)}.status-err{color:var(--danger)}code,pre{font-size:.85rem;background:#f3f4f6;border-radius:6px}pre{padding:.75rem;overflow:auto}