:root{color:#1f2933;--accent:#1d4ed8;--danger:#b91c1c;--border:#d5dbe1;background:#f4f6f8;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}.shell nav{border-bottom:1px solid var(--border);background:#fff;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex}.shell nav a{color:inherit;border-radius:4px;padding:.25rem .5rem;text-decoration:none}.shell nav a.active{color:var(--accent);background:#e0e7ff}.spacer{flex:1}.user{color:#52606d;font-size:.9rem}main{max-width:1100px;margin:0 auto;padding:1.5rem}.page-header{justify-content:space-between;align-items:center;display:flex}h1{font-size:1.5rem}h2{font-size:1.1rem}table{border-collapse:collapse;border:1px solid var(--border);background:#fff;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.6rem .75rem}th{text-transform:uppercase;letter-spacing:.03em;background:#f9fafb;font-size:.85rem}button{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:4px;padding:.45rem .9rem}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{color:#1f2933;background:#e4e7eb}button.danger{background:var(--danger)}.actions{gap:.5rem;display:flex}.card{border:1px solid var(--border);background:#fff;border-radius:6px;margin:1rem 0;padding:1rem 1.25rem}.card.grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem 1rem;display:grid}.card.grid>h2,.card.grid>.error,.card.grid>.actions,.card.grid>.check{grid-column:1/-1}.field{flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}.field input,.field select{border:1px solid var(--border);font:inherit;border-radius:4px;padding:.45rem}.field-error{color:var(--danger);font-size:.8rem}.check{align-items:center;gap:.5rem;display:flex}.error{background:#fee2e2;border:1px solid #fca5a5;border-radius:4px;margin:1rem 0;padding:.75rem 1rem}.error ul{margin:.5rem 0 0;padding-left:1.25rem}.status{text-align:center;color:#52606d;margin:3rem 0}.pager{align-items:center;gap:1rem;margin-top:1rem;display:flex}dl.card{grid-template-columns:max-content 1fr;gap:.4rem 1.5rem;display:grid}dt{color:#52606d}dd{word-break:break-all;margin:0}.scopes{padding:0;list-style:none}.scopes li{padding:.2rem 0}.scopes .ok{color:#15803d}.scopes .missing{color:var(--danger)}pre.card{font-size:.8rem;overflow:auto}
