:root{--bg: #000;--fg: #f1f5f9;--muted: #94a3b8;--panel: rgba(15, 23, 42, .72);--accent: #3b82f6;--bad: #f87171}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--fg);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}main{position:fixed;inset:0}.screen{display:none;position:absolute;inset:0}main[data-screen=camera] #camera,main[data-screen=message] #message,main[data-screen=loading] #message{display:block}video,#overlay{position:absolute;inset:0;width:100%;height:100%}video{object-fit:contain;background:#000}video.mirrored{transform:scaleX(-1)}.bar{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px max(16px,env(safe-area-inset-left));background:var(--panel);font-size:13px}.bar.top{top:0;padding-top:max(10px,env(safe-area-inset-top))}.bar.bottom{bottom:0;padding-bottom:max(10px,env(safe-area-inset-bottom))}#status,#outbox{color:var(--muted);overflow-wrap:anywhere}button{font:inherit;min-height:44px;min-width:44px;padding:0 16px;border:0;border-radius:22px;background:var(--accent);color:#fff}.panel{padding:48px 16px;max-width:520px;margin:0 auto}.panel h1{font-size:24px;margin:0 0 12px}#message-text[data-error=true]{color:var(--bad)}progress{width:100%;height:8px;margin:16px 0}.sheet{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;flex-direction:column;gap:8px;padding:16px max(16px,env(safe-area-inset-left)) max(16px,env(safe-area-inset-bottom));background:#000000d9}.sheet[hidden]{display:none}.sheet input{font:inherit;font-size:16px;min-height:44px;padding:0 12px;border:1px solid var(--muted);border-radius:8px;background:#111;color:#fff}.sheet .hint,#enroll-status{margin:0;font-size:13px;color:var(--muted)}#enroll-status[data-error=true]{color:var(--bad)}.thumbs{display:flex;gap:8px;min-height:64px;overflow-x:auto}.thumbs button{padding:0;min-width:0;border-radius:8px;background:none}.thumbs img{display:block;height:64px;border-radius:8px}.sheet .row{display:flex;gap:8px;justify-content:space-between}button.secondary{background:#333}button:disabled{opacity:.5}
