*{
  box-sizing:border-box;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial;
}

body{
  margin:0;
  background:#f4f6f9;
  color:#333;
}

/* ===== TOP BAR ===== */
.topbar{
  background:#0a2a66;
  color:#fff;
  padding:14px 20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.logo{
  font-size:18px;
  font-weight:600;
}

.tag{
  font-size:12px;
  opacity:0.9;
}

/* ===== LAYOUT ===== */
.container{
  max-width:900px;
  margin:auto;
  padding:20px;
}

.info-box{
  background:#ffffff;
  padding:20px;
  border-radius:8px;
  margin-bottom:20px;
}

.info-box h2{
  margin-top:0;
  color:#0a2a66;
}

.info-box ul{
  padding-left:18px;
}

/* ===== CARD ===== */
.card{
  background:#ffffff;
  padding:20px;
  border-radius:8px;
  box-shadow:0 4px 12px rgba(0,0,0,0.08);
}

.card h3{
  margin-top:0;
}

/* ===== BUTTONS ===== */
button{
  width:100%;
  padding:12px;
  margin-top:10px;
  font-size:15px;
  border-radius:6px;
  border:none;
  cursor:pointer;
}

button.primary{
  background:#0a2a66;
  color:#fff;
}

button.secondary{
  background:#e0e0e0;
}

button:hover{
  opacity:0.95;
}

/* ===== STATUS ===== */
.status{
  margin-top:10px;
  font-size:13px;
}

.status.ok{ color:green; }
.status.err{ color:#b00020; }

/* ===== SCANNER ===== */
.scanner{
  margin-top:15px;
  position:relative;
  height:260px;
  background:#000;
  border-radius:8px;
  overflow:hidden;
}

#cam{
  width:100%;
  height:100%;
  object-fit:cover;
}

.scan-line{
  position:absolute;
  left:0;
  right:0;
  height:3px;
  background:#00ff99;
  animation:scan 2.5s linear infinite;
  box-shadow:0 0 10px #00ff99;
}

@keyframes scan{
  0%{ top:0 }
  50%{ top:95% }
  100%{ top:0 }
}

/* ===== DETAILS ===== */
.details{
  margin-top:12px;
  font-size:13px;
  color:#444;
}

.details div{
  margin-bottom:4px;
}

/* ===== FOOTER ===== */
.footer{
  text-align:center;
  padding:20px;
  font-size:12px;
  color:#666;
}

.footer .small{
  opacity:0.7;
}
