:root { color-scheme: dark; font-family: Inter, system-ui, -apple-system, Segoe UI, sans-serif; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: #0b1120; color: #e5e7eb; }
.shell { width: min(900px, calc(100% - 32px)); margin: 0 auto; padding: 28px 0 48px; }
header { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:22px; }
h1 { margin:0 0 6px; font-size:clamp(26px,4vw,40px); }
p { margin:0; color:#9ca3af; }
.admin-link { color:#cbd5e1; text-decoration:none; border:1px solid #334155; padding:8px 12px; border-radius:10px; }
.voice-card,.manual-card,.result-card { border:1px solid #263449; background:#111827; border-radius:18px; padding:22px; margin-bottom:18px; box-shadow:0 14px 40px rgba(0,0,0,.18); }
.voice-card { text-align:center; }
.mic-button { width:108px; height:108px; border-radius:999px; border:0; font-size:48px; cursor:pointer; background:#2563eb; color:white; box-shadow:0 0 0 0 rgba(37,99,235,.5); transition:.2s; }
.mic-button.listening { animation:pulse 1.4s infinite; background:#dc2626; }
@keyframes pulse { 0%{box-shadow:0 0 0 0 rgba(220,38,38,.55)} 70%{box-shadow:0 0 0 22px rgba(220,38,38,0)} 100%{box-shadow:0 0 0 0 rgba(220,38,38,0)} }
.listen-state { margin-top:14px; font-size:20px; font-weight:700; }
.heard { min-height:26px; margin-top:8px; color:#94a3b8; font-style:italic; }
.auto-row { display:flex; justify-content:center; align-items:center; gap:8px; margin-top:12px; color:#cbd5e1; }
.result-card { text-align:center; border-width:2px; }
.result-card.member-ok { border-color:#16a34a; background:#0e1f17; }
.result-card.not-member { border-color:#eab308; background:#211c0b; }
.result-card.not-found { border-color:#dc2626; background:#241012; }
.callsign { font-size:clamp(48px,10vw,92px); line-height:1; font-weight:900; letter-spacing:.04em; }
.member { font-size:clamp(24px,4vw,38px); font-weight:800; margin-top:14px; }
.route { font-size:clamp(22px,4vw,34px); margin-top:8px; }
.note { margin-top:12px; color:#94a3b8; }
.manual-card label { display:block; margin-bottom:8px; font-weight:700; }
.manual-row { display:flex; gap:10px; }
.manual-row input { flex:1; min-width:0; border:1px solid #334155; background:#0f172a; color:#fff; border-radius:10px; padding:13px 14px; font-size:20px; text-transform:uppercase; }
.manual-row button { border:0; border-radius:10px; background:#2563eb; color:#fff; font-weight:800; padding:0 20px; cursor:pointer; }
.warning { border:1px solid #b45309; background:#2b1908; color:#fde68a; border-radius:12px; padding:14px; }
.hidden { display:none; }
@media(max-width:600px){ header{align-items:center}.manual-row{flex-direction:column}.manual-row button{padding:13px}.auto-row{align-items:flex-start;text-align:left}.shell{width:min(100% - 20px,900px)} }
