* { box-sizing: border-box; }
html, body { margin: 0; background: #fff; color: #1a1a1a; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; font-size: 16px; }
body { padding-bottom: 76px; }
main { max-width: 640px; margin: 0 auto; padding: 12px 16px; }
h1 { font-size: 20px; margin: 8px 0 12px; }
h2 { font-size: 15px; margin: 18px 0 6px; color: #444; text-transform: uppercase; letter-spacing: .04em; }
input, select, button, textarea { font: inherit; font-size: 16px; }
input[type=text], input[type=number], input[type=password], select { width: 100%; padding: 12px; border: 1px solid #bbb; border-radius: 8px; background: #fff; color: inherit; }
button { padding: 12px 16px; border: 1px solid #1f4e79; background: #1f4e79; color: #fff; border-radius: 8px; cursor: pointer; }
button.alt { background: #fff; color: #1f4e79; }
button.small { padding: 6px 10px; font-size: 14px; }
button.danger { border-color: #a33; color: #a33; background: #fff; }
button:disabled { opacity: .5; }
.row { display: flex; gap: 8px; align-items: center; }
.row > * { flex: 1; min-width: 0; }
.row > .fit { flex: 0 0 auto; }
.card { border: 1px solid #ddd; border-radius: 10px; padding: 10px 12px; margin: 8px 0; }
.card.conflict { border-color: #d9a400; background: #fff9e0; }
.muted { color: #666; font-size: 14px; }
.badge { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 12px; background: #eee; margin-left: 6px; }
.badge.warn { background: #ffe58a; }
.badge.ok { background: #d6f0d6; }
.banner { background: #eef4fb; border: 1px solid #c9dcf0; border-radius: 8px; padding: 8px 12px; margin: 8px 0; font-size: 14px; }
.banner.warn { background: #fff4d6; border-color: #e8cf86; }
nav { position: fixed; bottom: 0; left: 0; right: 0; display: flex; background: #fff; border-top: 1px solid #ddd; padding-bottom: env(safe-area-inset-bottom); }
nav button { flex: 1; border: 0; border-radius: 0; background: #fff; color: #555; padding: 16px 4px; }
nav button.on { color: #1f4e79; font-weight: 700; box-shadow: inset 0 3px #1f4e79; }
.big { font-size: 22px; font-weight: 700; }
.qty { width: 84px !important; flex: 0 0 84px !important; text-align: center; }
.mic { width: 60px; padding: 12px 0; }
.mic.live { background: #b00020; border-color: #b00020; }
.line { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid #eee; }
.line:last-child { border-bottom: 0; }
.right { text-align: right; white-space: nowrap; }
a { color: #1f4e79; }
