:root {
  --ink: #1d2433;
  --muted: #5a6475;
  --line: #c9cfd8;
  --accent: #1f5f8b;
  --paper: #ffffff;
  color-scheme: light;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.5 system-ui, sans-serif; }
main { max-width: 26rem; margin: 3rem auto; padding: 0 1rem; }
h1 { font-size: 1.5rem; }
form, section { display: grid; gap: 0.75rem; }
label { font-weight: 600; }
input { font: inherit; padding: 0.6rem; border: 1px solid var(--line); border-radius: 6px; }
button { font: inherit; padding: 0.6rem; border: 0; border-radius: 6px; background: var(--accent); color: #fff; cursor: pointer; }
button:disabled { opacity: 0.6; cursor: wait; }
#message { color: var(--muted); min-height: 1.5em; }
#qr { width: 12rem; height: 12rem; }
code { word-break: break-all; }
main.wide { max-width: 60rem; }
select, textarea { font: inherit; padding: 0.6rem; border: 1px solid var(--line); border-radius: 6px; }
textarea { min-height: 4rem; }
table { border-collapse: collapse; width: 100%; display: block; overflow-x: auto; }
th, td { text-align: left; padding: 0.4rem 0.6rem; border-bottom: 1px solid var(--line); white-space: nowrap; }
#grants { list-style: none; padding: 0; display: grid; gap: 0.75rem; }
#grants li { border: 1px solid var(--line); border-radius: 6px; padding: 0.75rem; display: grid; gap: 0.5rem; }
#grants .actions { display: flex; gap: 0.5rem; }
button.quiet { background: transparent; color: var(--accent); border: 1px solid var(--accent); }
