:root { --bg:#0b1220; --card:#111a2e; --text:#e9eefc; --muted:#a8b3d6; --border:#273354; --btn:#2d5bff; --btn2:#1a2646; }
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--text)}
a{color:var(--text);text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:16px}
.topbar{position:sticky;top:0;background:rgba(11,18,32,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand a{font-weight:700}
.nav a{margin-left:12px;color:var(--muted)}
.nav a:hover{color:var(--text)}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;margin:12px 0}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width: 900px){ .grid{grid-template-columns:repeat(2,1fr)} .grid-2{grid-template-columns:1fr} }
h1{margin:10px 0 4px}
h2{margin:0 0 10px}
h3{margin:0}
.big{font-size:34px;font-weight:800;margin-top:8px}
.muted{color:var(--muted);font-size:12px}
.input, input, select{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#0d1528;color:var(--text);outline:none;margin:6px 0 12px}
label{display:block;color:var(--muted);font-size:12px;margin-top:6px}
.btn{background:var(--btn);border:0;color:white;padding:10px 12px;border-radius:10px;cursor:pointer;font-weight:600}
.btn.secondary{background:var(--btn2);border:1px solid var(--border);color:var(--text)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.row{display:flex;gap:10px;flex-wrap:wrap}
.hint{color:var(--muted);font-size:12px;margin-top:10px}
.scanner-box{border:1px dashed var(--border);border-radius:14px;overflow:hidden;background:#0d1528}
.video{width:100%;height:260px;object-fit:cover}
.result{margin-top:10px;min-height:22px}
.msg{padding:10px 12px;border-radius:10px;margin:8px 0;border:1px solid var(--border)}
.msg.error{background:#2a0f1b}
.msg.success{background:#0f2a1e}
.table-wrap{overflow:auto}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px;border-bottom:1px solid var(--border);vertical-align:top}
.filters{display:grid;grid-template-columns:2fr 1fr 2fr 1fr auto auto;gap:10px;align-items:center}
@media (max-width: 900px){ .filters{grid-template-columns:1fr; } }
.footer{border-top:1px solid var(--border);margin-top:20px}
