:root{--blue:#1e2a78;--violet:#6d3fd6;--bg:#f5f6fa}
body{background:var(--bg);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#1f2433}
.side{position:fixed;inset:0 auto 0 0;width:240px;background:linear-gradient(180deg,var(--blue),#3b2a8f);padding:1.25rem;z-index:1040;transition:transform .2s;overflow-y:auto}
.side a{display:flex;gap:.6rem;align-items:center;color:#cfd3ff;text-decoration:none;padding:.6rem .8rem;border-radius:.6rem;margin-bottom:.2rem}
.side a:hover,.side a.on{background:rgba(255,255,255,.14);color:#fff}
.brand{font-weight:800;letter-spacing:.08em;font-size:1.25rem;margin-bottom:1.5rem;color:#fff}
.brand small{display:block;font-weight:400;font-size:.7rem;opacity:.7;letter-spacing:0}
.main{margin-left:240px;padding:1.5rem;max-width:1400px}
.card{border:0;border-radius:1rem;box-shadow:0 2px 12px rgba(30,42,120,.07)}
.stat{padding:1rem 1.1rem}.stat span{color:#6b7280;font-size:.8rem}.stat b{font-size:1.9rem;color:var(--blue)}
.btn-primary{background:linear-gradient(135deg,var(--blue),var(--violet));border:0}
.login-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--violet));padding:1rem}
.sc-wrap{max-width:460px;margin:auto;padding:1rem}
#reader{width:100%;max-width:420px;margin:auto;border-radius:1rem;overflow:hidden;background:#111}
.res{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;padding:1.5rem}
.res h2{font-weight:800}#r-name{font-size:1.8rem;font-weight:700}
.sc-ok{background:#15803d}.sc-warn{background:#b45309}.sc-bad{background:#b91c1c}
@media(max-width:991px){.side{transform:translateX(-100%)}.side.open{transform:none}.main{margin-left:0;padding:1rem}}
