:root{--bg:#0b1220;--panel:#111a2c;--card:#18233a;--text:#e2e8f0;--muted:#94a3b8;--left:#38bdf8;--right:#f59e0b;--danger:#f43f5e;--ok:#10b981;--warn:#f59e0b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}.app{position:fixed;inset:0}.camera{object-fit:contain;background:#000;width:100%;height:100%;position:absolute;inset:0}.camera.mirrored{transform:scaleX(-1)}.overlay{pointer-events:none;position:absolute;inset:0}.face{border:2px solid var(--seat);border-radius:16px;transition:box-shadow .12s,border-width .12s;position:absolute}.face-left{--seat:var(--left)}.face-right{--seat:var(--right)}.face.speaking{box-shadow:0 0 24px var(--seat);border-width:4px}.face-label{background:var(--seat);color:#0b1220;white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:15px;font-weight:700;position:absolute;bottom:100%;left:50%;transform:translate(-50%,-6px)}.topbar{padding:calc(env(safe-area-inset-top) + 10px) 14px 10px;background:linear-gradient(#0000008c,#0000);justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:absolute;top:0;left:0;right:0}.topbar-info{flex-direction:column;gap:6px;min-width:0;display:flex}.hint{color:var(--text);text-shadow:0 1px 2px #000;font-size:14px}.hint:empty{display:none}.status{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--chip,#475569);background:#0f172abf;border-radius:999px;align-items:center;gap:5px;height:30px;padding:0 10px;font-size:14px;display:inline-flex}.chip-granted{--chip:var(--ok)}.chip-denied{--chip:var(--danger);background:#f43f5e40}.chip-prompt{--chip:var(--warn)}.chip-mark{color:var(--chip,var(--muted));font-weight:700}.signal{align-items:flex-end;gap:2px;height:16px;margin-left:2px;display:inline-flex}.signal i{background:var(--ok);transform-origin:bottom;border-radius:2px;width:3px;height:100%;transition:transform .15s,background .15s;transform:scaleY(.2)}.signal-off i{background:#475569}.signal-silent i{transform:scaleY(.25)}.signal-sound i,.signal-speech i{animation:.9s ease-in-out infinite bar-dance}.signal-sound i{--lo:.2;--hi:.55}.signal-speech i{--lo:.3;--hi:1;animation-duration:.55s}.signal i:nth-child(2){animation-delay:-.2s}.signal i:nth-child(3){animation-delay:-.35s}.signal i:nth-child(4){animation-delay:-.1s}@keyframes bar-dance{0%,to{transform:scaleY(var(--lo))}50%{transform:scaleY(var(--hi))}}@media (prefers-reduced-motion:reduce){.signal-sound i,.signal-speech i{transform:scaleY(var(--hi));animation:none}}.icon-button{background:#0f172ab3;border:none;border-radius:50%;flex:none;width:44px;height:44px;font-size:20px}.intro{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.intro h1{margin:0 0 8px;font-size:28px}.intro p{max-width:26rem;color:var(--muted);margin:0;line-height:1.5}.bottombar{padding:16px 14px calc(env(safe-area-inset-bottom) + 18px);background:linear-gradient(#0000,#0009);flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;bottom:0;left:0;right:0}.toasts{flex-direction:column;align-items:center;gap:6px;width:100%;display:flex}.toast{color:#052e1c;background:#10b981eb;border-radius:999px;max-width:100%;padding:6px 14px;font-size:14px;font-weight:600;animation:.2s ease-out toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}.error{background:#f43f5ee6;border:none;border-radius:12px;max-width:100%;padding:8px 14px;font-size:14px}.live-transcript{scrollbar-width:none;background:#0f172ab8;border-radius:14px;width:min(36rem,100%);max-height:9.5em;margin:0;padding:8px 12px;font-size:15px;line-height:1.45;list-style:none;overflow-y:auto}.live-transcript.overflowing{-webkit-mask-image:linear-gradient(#0000,#000 2.2em);mask-image:linear-gradient(#0000,#000 2.2em)}.live-transcript li{padding:1px 0}.live-empty,.live-interim{color:var(--muted);font-style:italic}.listening{white-space:nowrap;text-overflow:ellipsis;max-width:100%;color:var(--muted);font-size:13px;overflow:hidden}.dot{background:var(--danger);border-radius:50%;width:8px;height:8px;animation:1.4s infinite pulse;display:inline-block}@keyframes pulse{50%{opacity:.3}}.main-button{color:#052e1c;background:#10b981;border:none;border-radius:999px;min-width:150px;padding:14px 28px;font-size:18px;font-weight:700}.main-button.stop{color:var(--text);background:#0f172acc;border:1px solid #334155}.main-button:disabled{opacity:.6}.panel-backdrop{z-index:10;background:#00000080;position:fixed;inset:0}.panel{width:min(26rem,100%);padding:calc(env(safe-area-inset-top) + 12px) 16px calc(env(safe-area-inset-bottom) + 24px);background:var(--panel);position:absolute;top:0;bottom:0;right:0;overflow-y:auto}.panel-head{justify-content:space-between;align-items:center;display:flex}.panel h2{margin:0;font-size:22px}.panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:22px 0 8px;font-size:14px}.panel section>*+*{margin-top:8px}.card{background:var(--card);border-left:4px solid #475569;border-radius:14px;padding:12px}.card-left{border-left-color:var(--left)}.card-right{border-left-color:var(--right)}.card-head{justify-content:space-between;align-items:center;font-size:17px;display:flex}.badge{background:#334155;border-radius:999px;padding:2px 8px;font-size:12px}.fact-group{margin-top:8px}.fact-kind{color:var(--muted);font-size:12px}.fact-group ul{margin:2px 0 0;padding-left:18px}.fact-group li{line-height:1.6}.transcript{margin:0;padding:0;font-size:14px;list-style:none}.transcript li{border-bottom:1px solid #1e293b;padding:4px 0}.who{font-weight:700}.said-left .who{color:var(--left)}.said-right .who{color:var(--right)}.said-unclear{color:var(--muted)}.muted{color:var(--muted);margin:0}.small{font-size:12px}.secondary,.danger{text-align:left;background:0 0;border:1px solid #334155;border-radius:10px;width:100%;padding:10px 12px;display:block}.danger{background:var(--danger);border-color:var(--danger);text-align:center}.row{gap:8px;display:flex}.row>*{flex:1}.link{color:var(--muted);background:0 0;border:none;padding:0 6px}.check{align-items:flex-start;gap:10px;line-height:1.4;display:flex}.check input{margin-top:3px}.text{background:var(--card);width:100%;color:var(--text);font:inherit;border:1px solid #334155;border-radius:10px;padding:10px 12px}
