body.scanner { background: var(--slate); color: #E8EDF1; min-height: 100dvh; }
body.scanner .login { color: var(--slate); }
.bar {
  display: flex; align-items: center; gap: .8rem;
  padding: calc(env(safe-area-inset-top, 0px) + .6rem) 1rem .6rem;
}
.bar strong { font-size: 1.2rem; }
.bar .muted { color: #9FB0BD; flex: 1; }
.bar button { padding: .4em .8em; }

.camera-wrap { padding: 0 1rem; }
#reader {
  width: 100%; max-width: 520px; margin: 0 auto;
  border-radius: var(--r-lg); overflow: hidden; background: #0E151B;
  aspect-ratio: 1 / 1;
}
#reader video { object-fit: cover; }
.cam-hint { text-align: center; color: #9FB0BD; margin: .6rem 0 0; }

.manual { display: flex; gap: .5rem; max-width: 520px; margin: 1rem auto; padding: 0 1rem; }
.manual input { background: #2A3945; border-color: #3A4B58; color: #E8EDF1; }

.recent { max-width: 520px; margin: 1.5rem auto; padding: 0 1rem 2rem; }
.recent h3 { color: #9FB0BD; font-weight: 500; }
.recent td { border-color: #33434F; font-size: .9rem; }

/* Spodní panel s tarify */
.sheet {
  position: fixed; inset: 0; background: rgba(15, 22, 28, .55);
  display: flex; align-items: flex-end; justify-content: center; z-index: 10;
}
.sheet-body {
  width: 100%; max-width: 560px; background: var(--paper); color: var(--slate);
  border-radius: var(--r-lg) var(--r-lg) 0 0;
  padding: 1.2rem 1.2rem calc(env(safe-area-inset-bottom, 0px) + 1.2rem);
  animation: rise .18s ease-out;
}
@keyframes rise { from { transform: translateY(24px); opacity: 0; } }
.who-line { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.who-line h2 { margin: 0; font-size: 1.4rem; }
.balance { font-size: 1.6rem; font-weight: 700; white-space: nowrap; }
.tariffs { margin: .6rem 0 1rem; }
.tariff {
  display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: .6rem;
  padding: .7rem 0; border-bottom: 1px solid var(--line);
}
.tariff .price { color: var(--muted); }
.tariff button { width: 2.8rem; height: 2.8rem; padding: 0; font-size: 1.4rem; line-height: 1; }
.tariff .qty { min-width: 1.6rem; text-align: center; font-size: 1.3rem; font-weight: 700; }
.total-line { display: flex; justify-content: space-between; font-size: 1.2rem; margin-bottom: 1rem; }
.total-line strong { font-size: 1.5rem; }
.actions { display: grid; grid-template-columns: 1fr 2fr; gap: .6rem; }
.actions button { padding: .9em; font-size: 1.1rem; }

/* Celoplošný výsledek – to hlavní, co obsluha na dálku vidí */
.result {
  position: fixed; inset: 0; z-index: 20;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 2rem; color: #fff; cursor: pointer;
}
.result.ok { background: var(--ok); }
.result.fail { background: var(--stop); }
.r-title { font-size: 1.6rem; font-weight: 600; margin: 0; }
.r-amount { font-size: clamp(3.5rem, 18vw, 7rem); font-weight: 700; margin: .1em 0; line-height: 1; }
.r-detail { font-size: 1.2rem; margin: 0; max-width: 30ch; }
.r-tap { position: absolute; bottom: calc(env(safe-area-inset-bottom, 0px) + 1.5rem); opacity: .75; font-size: .9rem; margin: 0; }
