:root{
  --bg:#1b1b1b; --panel:#252526; --panel2:#2d2d2d; --line:#3c3c3c;
  --teal:#4ec9b0; --label:#d4d4d4; --muted:#808080; --gold:#f0c000;
  --goldh:#ffd42a; --black:#141414; --err:#f14c4c; --frame:#3b6ea5;
}
*{box-sizing:border-box;}
body{
  margin:0; padding:0; background:#0d0d0d;
  font-family:Consolas,"Courier New",monospace; color:var(--label);
  font-size:14px; line-height:1.4;
}
.wrap{max-width:1180px; margin:0 auto; border:2px solid var(--frame); background:var(--bg); min-height:100vh;}
.wrap.narrow{max-width:460px; margin:70px auto; min-height:0;}
.topbar{display:flex; justify-content:space-between; align-items:center; background:#111; padding:10px 16px; border-bottom:1px solid var(--line);}
.topbar .brand{color:var(--teal); font-weight:bold; letter-spacing:.5px;}
.topbar .right{color:var(--muted);}
.topbar a{color:var(--label); text-decoration:none; margin-left:14px;}
.topbar a:hover{color:var(--teal);}
.section{margin:16px; border:1px solid var(--line); background:var(--panel); padding:14px 16px 18px;}
.section > h2{margin:0 0 14px; font-size:14px; color:var(--teal); font-weight:bold; letter-spacing:.5px;}
.grid{display:flex; flex-wrap:wrap; gap:14px 22px;}
.field{display:flex; flex-direction:column; min-width:170px; flex:0 0 auto;}
.field.wide{min-width:320px;}
label{color:var(--label); margin-bottom:4px; white-space:nowrap;}
label .req{color:var(--err);}
input,select{
  background:var(--panel2); border:1px solid var(--line); color:var(--teal);
  padding:6px 8px; font-family:inherit; font-size:14px; outline:none;
}
input:focus,select:focus{border-color:var(--teal);}
input.miss{border-color:var(--err);}
.hint{color:var(--muted); font-size:12px; margin-top:3px; max-width:300px; white-space:normal;}
button{
  background:var(--gold); color:#111; border:none; padding:9px 18px; font-family:inherit;
  font-weight:bold; font-size:13px; cursor:pointer; letter-spacing:.5px;
}
button:hover{background:var(--goldh);}
button.ghost{background:#3a3a3a; color:var(--label);}
button.ghost:hover{background:#484848;}
button.danger{background:#5a1f1f; color:#ffb3b3;}
button.danger:hover{background:#7a2626;}
.msg{margin-top:12px; color:var(--err); white-space:pre-wrap;}
.msg.ok{color:var(--teal);}
.note{color:var(--muted); font-size:12px;}
.cards{display:flex; flex-wrap:wrap; gap:14px;}
.card{border:1px solid var(--line); background:var(--panel2); padding:14px 16px; min-width:240px; text-decoration:none; display:block;}
.card:hover{border-color:var(--teal);}
.card .name{color:var(--teal); font-weight:bold;}
.card .slug{color:var(--muted); font-size:12px;}
.empty{color:#555;}
table{border-collapse:collapse; width:100%;}
th,td{text-align:left; padding:6px 8px; border-bottom:1px solid var(--line); vertical-align:top;}
th{color:var(--teal); font-weight:bold;}
td.muted{color:var(--muted);}
pre.box{background:var(--black); border:1px solid var(--line); color:#cfe8df; padding:12px; overflow:auto; white-space:pre-wrap; word-break:break-all;}
.qr{background:#fff; padding:10px; display:inline-block;}
.actions{display:flex; gap:14px; align-items:center; flex-wrap:wrap;}
