:root{
  --blue:#0d6efd;
  --green:#22b573;
  --bg:#f5f7fb;
  --text:#1f2937;
  --muted:#6b7280;
  --card:#ffffff;
  --border:#e5e7eb;
}
*{box-sizing:border-box}
body{
  margin:0;font-family:Inter,system-ui,Arial,Helvetica,sans-serif;
  color:var(--text);background:var(--bg);
}
.header{
  display:flex;gap:12px;align-items:center;
  padding:14px 18px;border-bottom:1px solid var(--border);background:#fff;position:sticky;top:0;z-index:10;
}
.brand{font-weight:800;letter-spacing:.3px}
.wrap{max-width:1100px;margin:22px auto;padding:0 16px}
.tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.tab-btn{
  border:1px solid var(--border);background:var(--card);padding:10px 14px;border-radius:10px;cursor:pointer;
}
.tab-btn.active{border-color:var(--blue);outline:2px solid rgba(13,110,253,.15)}
.card{
  background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:16px;
}
h2{margin:0 0 12px}
label{display:block;margin:8px 0 4px}
input,select,button,textarea{
  width:100%;padding:10px;border:1px solid var(--border);border-radius:10px;font-size:15px;background:#fff;
}
button{
  background:linear-gradient(135deg,var(--blue),var(--green));color:#fff;border:none;font-weight:600;cursor:pointer;
}
button.secondary{background:#fff;color:var(--text);border:1px solid var(--border)}
.grid{display:grid;gap:12px}
.grid-2{grid-template-columns:1fr 1fr}
.grid-3{grid-template-columns:repeat(3,1fr)}
@media (max-width: 800px){.grid-2,.grid-3{grid-template-columns:1fr}}
.table{width:100%;border-collapse:collapse;font-size:14px}
.table th,.table td{border-bottom:1px solid var(--border);padding:10px;text-align:left}
.badge{display:inline-block;padding:.25rem .5rem;border-radius:999px;background:rgba(34,181,115,.14);color:var(--green);font-weight:600}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace}
.qr-box{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cam{
  position:relative;display:flex;flex-direction:column;align-items:center;gap:8px
}
video{width:100%;max-width:520px;border-radius:12px;border:1px solid var(--border);background:#000}
.notice{color:var(--muted);font-size:14px}
.actions{display:flex;gap:8px;flex-wrap:wrap}
