:root{--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--bg:#f8fafc;--accent:#0f172a}*{box-sizing:border-box}body{color:var(--ink);background:var(--bg);margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.brand{letter-spacing:-.01em;font-size:.95rem}.nav{gap:1rem;font-size:.875rem;display:flex}.nav a{color:var(--muted);text-decoration:none}.nav a.router-link-active{color:var(--ink);font-weight:600}.page{flex:1;width:100%;max-width:72rem;margin:0 auto;padding:1.5rem 1.25rem 3rem}.foot{border-top:1px solid var(--line);color:var(--muted);padding:.75rem 1.25rem;font-size:.75rem}h1{margin:0 0 .25rem;font-size:1.25rem}h2{margin:0 0 .5rem;font-size:1rem}.hint,p.hint{color:var(--muted);font-size:.8125rem}.card{border:1px solid var(--line);background:#fff;border-radius:.5rem;margin-bottom:1rem;padding:1rem}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.grid{gap:1rem;display:grid}.btn,button.btn{font:inherit;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:.375rem;padding:.35rem .7rem;font-size:.8125rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-danger{color:#b91c1c;border-color:#fecaca}.input{font:inherit;border:1px solid var(--line);background:#fff;border-radius:.375rem;min-width:12rem;padding:.35rem .5rem;font-size:.8125rem}label.field{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:.5rem;font-size:.75rem;display:block}table.table{border-collapse:collapse;background:#fff;width:100%;font-size:.8125rem}table.table td,table.table th{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.5rem .6rem}table.table th{text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.badge,.mono,table.table th{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.badge{border:1px solid var(--line);border-radius:999px;padding:.1rem .4rem;font-size:.7rem;display:inline-block}.badge-ok{color:#15803d;border-color:#bbf7d0}.badge-warn{color:#b45309;border-color:#fed7aa}.badge-bad{color:#b91c1c;border-color:#fecaca}.alert{border-radius:.375rem;margin-bottom:.75rem;padding:.6rem .75rem;font-size:.8125rem}.alert-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.alert-note{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.alert-ok{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.stack>*+*{margin-top:.5rem}
