:root{
  --midnight:#0E1A2B; --parchment:#F2E9D8; --brass:#B68A4E; --ink:#1c2733;
  --slate:#6B7687; --line:#ddd2ba; --err:#8a2a2a; --ok:#2d5a3d;
}
*{box-sizing:border-box}
body{margin:0;background:var(--midnight);color:var(--ink);
  font-family:'EB Garamond',Georgia,serif;font-size:18px;line-height:1.5;
  display:flex;min-height:100vh;align-items:center;justify-content:center;padding:1.5rem}
.wrap{background:var(--parchment);border:1px solid var(--line);border-top:4px solid var(--brass);
  border-radius:12px;padding:2rem 2.2rem;width:100%;max-width:430px;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.wrap.wide{max-width:920px}
.mast{display:flex;align-items:baseline;gap:.8rem;margin-bottom:1.4rem;
  padding-bottom:.9rem;border-bottom:1px solid var(--line)}
.mast .b{font-family:'Cinzel',serif;font-weight:700;color:var(--brass);font-size:1.5rem;letter-spacing:.22em}
.mast .s{font-family:'IBM Plex Mono',monospace;color:var(--slate);font-size:.62rem;
  letter-spacing:.26em;text-transform:uppercase}
h1{font-family:'Cinzel',serif;font-size:1.35rem;margin:.2rem 0 1rem}
h2{font-family:'Cinzel',serif;font-size:1.05rem;margin:1.8rem 0 .6rem;border-top:1px solid var(--line);padding-top:1.2rem}
label{display:block;margin:.8rem 0;font-size:.92rem;color:var(--ink)}
input[type=text],input[type=password],input[type=email],input:not([type]){
  width:100%;margin-top:.3rem;padding:.6rem .7rem;font-size:1rem;
  border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-family:inherit}
input:focus{outline:2px solid var(--brass);border-color:var(--brass)}
button{margin-top:1rem;width:100%;padding:.7rem 1rem;background:var(--brass);color:#fff;
  border:0;border-radius:8px;font-family:'Cinzel',serif;font-size:1rem;letter-spacing:.04em;cursor:pointer}
button:hover{filter:brightness(1.06)}
.muted{color:var(--slate);font-size:.9rem}
.muted a,a{color:var(--brass)}
.err{background:#f7e3e1;border:1px solid #e3b7b2;color:var(--err);padding:.6rem .8rem;border-radius:7px;margin:.6rem 0;font-size:.92rem}
.ok{background:#e3f0e7;border:1px solid #bcd9c6;color:var(--ok);padding:.6rem .8rem;border-radius:7px;margin:.6rem 0;font-size:.92rem}
.foot{margin-top:1.6rem;padding-top:.9rem;border-top:1px solid var(--line);
  color:var(--slate);font-size:.72rem;font-family:'IBM Plex Mono',monospace;letter-spacing:.04em}
.qrbox{text-align:center;margin:1rem 0}
.qr{width:210px;height:210px;border:8px solid #fff;border-radius:8px;background:#fff}
details{margin:.4rem 0 1rem}summary{cursor:pointer;color:var(--brass);font-size:.9rem}
code.secret{display:block;margin-top:.4rem;padding:.5rem;background:#fff;border:1px solid var(--line);
  border-radius:6px;font-family:'IBM Plex Mono',monospace;letter-spacing:.12em;word-break:break-all}
ul.codes{list-style:none;padding:0;margin:1rem 0;display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
ul.codes li{background:#fff;border:1px solid var(--line);border-radius:6px;padding:.5rem;
  font-family:'IBM Plex Mono',monospace;letter-spacing:.1em;text-align:center}
.chk{display:flex;align-items:center;gap:.5rem}
.chk input{width:auto;margin:0}
table.users{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.88rem}
table.users th,table.users td{border-bottom:1px solid var(--line);padding:.5rem .4rem;text-align:left;vertical-align:top}
table.users th{font-family:'IBM Plex Mono',monospace;font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--slate)}
.actions{display:flex;flex-wrap:wrap;gap:.4rem}
.actions form{margin:0}
button.link{width:auto;margin:0;padding:.2rem .5rem;background:none;color:var(--brass);
  font-family:inherit;font-size:.82rem;border:1px solid var(--line);border-radius:5px}
button.link.danger{color:var(--err)}
form.create label{margin:.6rem 0}
