/* Merchant app additions on top of the shared app styles */
/* The staff app keeps its own teal so nobody mistakes it for the customer app */
body.merchant { --brand: #0d9488; --brand-dark: #0f766e; --brand-text: #0d9488; --brand-soft: #e3f5f3; --accent: #0d9488; --accent-dark: #0f766e; --accent-ink: #ffffff; --accent-soft: #e3f5f3; --accent-text: #0f766e; }
@media (prefers-color-scheme: dark) {
    body.merchant { --brand-text: #2dd4bf; --brand-soft: #10302d; --accent-soft: #10302d; --accent-text: #2dd4bf; }
}
/* menus sit inside a card in this app */
.card.menu { margin-inline: 0; padding: 4px 0; border-top: 0; }

.stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.stat { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 14px; }
.stat strong { display: block; font-size: 1.6rem; line-height: 1.2; }
.btn.big { min-height: 64px; font-size: 1.15rem; }

/* scanner */
.scanner { position: relative; width: 100%; aspect-ratio: 1 / 1; border-radius: 20px; overflow: hidden; background: #000; }
.scanner video { width: 100%; height: 100%; object-fit: cover; }
.scanner .frame { position: absolute; inset: 14%; border: 3px solid rgba(255, 255, 255, 0.9); border-radius: 20px; box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.35); pointer-events: none; }
.scanner .torch { position: absolute; bottom: 12px; inset-inline-end: 12px; }
.code-input { text-transform: uppercase; font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; letter-spacing: 1px; direction: ltr; text-align: center; }

/* check result */
.verdict { border-radius: 20px; padding: 20px 16px; text-align: center; color: #fff; }
.verdict h2 { font-size: 1.6rem; }
.verdict.valid { background: #15803d; }
.verdict.invalid { background: #b91c1c; }
.verdict.done { background: var(--brand); }
