@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&family=Inter:wght@400;500;600&display=swap";:root,[data-theme=dark]{--bg: #09090b;--bg-2: #111113;--bg-3: #18181b;--bg-4: #27272a;--border: #3f3f46;--green: #22c55e;--green-glow: #22c55e30;--amber: #f59e0b;--red: #ef4444;--text: #fafafa;--text-muted: #a1a1aa;--text-dim: #71717a;--bubble-me-bg: #22c55e;--bubble-me-text: #000;--bubble-peer-bg: #18181b;--bubble-peer-border: #3f3f46;--sas-warn-bg: #451a03;--sas-warn-border: #78350f;--sas-ok-bg: #052e16;--sas-ok-border: #14532d;--error-bg: #450a0a;--error-border: #7f1d1d;--error-text: #fca5a5}[data-theme=light]{--bg: #f8fafc;--bg-2: #ffffff;--bg-3: #f1f5f9;--bg-4: #e2e8f0;--border: #cbd5e1;--green: #16a34a;--green-glow: #16a34a20;--amber: #d97706;--red: #dc2626;--text: #0f172a;--text-muted: #475569;--text-dim: #94a3b8;--bubble-me-bg: #16a34a;--bubble-me-text: #fff;--bubble-peer-bg: #f1f5f9;--bubble-peer-border: #cbd5e1;--sas-warn-bg: #fffbeb;--sas-warn-border: #fcd34d;--sas-ok-bg: #f0fdf4;--sas-ok-border: #86efac;--error-bg: #fef2f2;--error-border: #fca5a5;--error-text: #dc2626}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:Inter,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;transition:background .2s,color .2s}.app{height:100%;display:flex;align-items:center;justify-content:center;position:relative}.theme-toggle{position:fixed;top:14px;right:16px;z-index:100;background:var(--bg-3);border:1px solid var(--border);border-radius:8px;width:36px;height:36px;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.theme-toggle:hover{border-color:var(--green)}.lobby{width:100%;max-width:700px;padding:40px 24px;display:flex;flex-direction:column;gap:40px;align-items:center}.lobby-header{text-align:center}.logo{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:12px}.logo-icon{font-size:2rem}.logo-text{font-family:JetBrains Mono,monospace;font-size:2rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,var(--green) 0%,#86efac 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.lobby-subtitle{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.lobby-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;width:100%}@media (max-width: 560px){.lobby-cards{grid-template-columns:1fr}}.lobby-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:32px 28px;display:flex;flex-direction:column;gap:12px;transition:border-color .2s,box-shadow .2s}.lobby-card.active,.lobby-card:hover{border-color:var(--green);box-shadow:0 0 24px var(--green-glow)}.card-icon{font-size:1.8rem}.lobby-card h2{font-size:1.1rem;font-weight:600}.lobby-card p{color:var(--text-muted);font-size:.875rem;flex:1}.btn{padding:10px 20px;border-radius:8px;border:1px solid transparent;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s;width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--green);color:#000;border-color:var(--green)}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-secondary{background:transparent;color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--green);color:var(--green)}.btn-ghost{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:6px 10px;border-radius:6px;transition:color .15s}.btn-ghost:hover{color:var(--text)}.join-form{width:100%;display:flex;flex-direction:column;gap:10px}.code-input{background:var(--bg-3);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:JetBrains Mono,monospace;font-size:1rem;letter-spacing:.1em;padding:12px 16px;width:100%;text-transform:uppercase;transition:border-color .15s}.code-input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-glow)}.error-banner{background:var(--error-bg);border:1px solid var(--error-border);border-radius:8px;color:var(--error-text);padding:12px 16px;font-size:.875rem;width:100%;text-align:center}.chat-container{width:100%;max-width:800px;height:100%;max-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-2);gap:12px;flex-shrink:0}.chat-header-left{display:flex;align-items:center;gap:8px}.chat-header-center{display:flex;align-items:center;gap:8px;flex:1;justify-content:center}.chat-header-right{display:flex;align-items:center}.room-code-wrap{display:flex;align-items:center;gap:4px}.room-code-display{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--green);background:var(--green-glow);border:1px solid var(--green);border-radius:6px;padding:4px 10px;cursor:pointer;letter-spacing:.05em;transition:background .15s}.room-code-display:hover{filter:brightness(1.1)}.btn-copy{background:var(--bg-3);border:1px solid var(--border);border-radius:6px;color:var(--text-muted);cursor:pointer;font-size:.85rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.btn-copy:hover{border-color:var(--green);color:var(--green)}.btn-copy.copied{border-color:var(--green);color:var(--green);background:var(--green-glow)}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.waiting{background:var(--amber);animation:pulse 2s infinite}.status-dot.connected{background:var(--green)}.status-dot.disconnected{background:var(--red)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.status-label{font-size:.8rem;color:var(--text-muted)}.room-timer{font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--text-muted);padding:4px 10px;background:var(--bg-3);border-radius:6px;border:1px solid var(--border)}.timer-urgent{color:var(--amber);border-color:var(--amber);animation:pulse 1s infinite}.sas-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:var(--sas-warn-bg);border-bottom:1px solid var(--sas-warn-border);flex-shrink:0;flex-wrap:wrap}.sas-panel.sas-verified{background:var(--sas-ok-bg);border-bottom-color:var(--sas-ok-border)}.sas-content{display:flex;flex-direction:column;gap:2px}.sas-label{font-size:.78rem;color:var(--text-muted)}.sas-emojis{font-size:1.3rem;letter-spacing:4px}.btn-verify{background:var(--green);color:#000;border:none;border-radius:6px;padding:8px 16px;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:700;cursor:pointer;white-space:nowrap}.btn-verify:hover{filter:brightness(1.1)}.qr-panel{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:var(--bg-2);border-bottom:1px solid var(--border);flex-shrink:0}.qr-canvas{border-radius:8px}.qr-hint{font-size:.75rem;color:var(--text-muted)}.messages{flex:1;overflow-y:auto;padding:20px 16px;display:flex;flex-direction:column;gap:4px;position:relative;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.messages-blurred .message{filter:blur(8px);pointer-events:none;-webkit-user-select:none;user-select:none}.blur-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#09090bb3;z-index:10;cursor:pointer;font-size:1rem;color:var(--text-muted)}.blur-overlay small{font-size:.8rem;color:var(--text-dim)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100%;color:var(--text-dim);font-size:.875rem}.empty-icon{font-size:2.5rem}.message{display:flex;flex-direction:column;max-width:72%;animation:msgIn .15s ease-out}@keyframes msgIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.message-me{align-self:flex-end;align-items:flex-end}.message-peer{align-self:flex-start;align-items:flex-start}.message-system{align-self:center;align-items:center}.message-bubble{padding:10px 14px;border-radius:16px;font-size:.9rem;line-height:1.5;word-break:break-word}.message-me .message-bubble{background:var(--bubble-me-bg);color:var(--bubble-me-text);border-bottom-right-radius:4px}.message-peer .message-bubble{background:var(--bubble-peer-bg);border:1px solid var(--bubble-peer-border);border-bottom-left-radius:4px}.message-meta{display:flex;gap:4px;align-items:center;margin-top:2px}.message-time{font-size:.68rem;color:var(--text-dim)}.read-receipt{font-size:.68rem;color:var(--green)}.system-msg{font-size:.75rem;color:var(--text-dim);background:var(--bg-3);border:1px solid var(--border);border-radius:20px;padding:4px 12px}.typing-bubble{display:flex;gap:4px;align-items:center;padding:12px 16px}.dot{width:6px;height:6px;background:var(--text-muted);border-radius:50%;animation:typing 1.4s infinite}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-6px);opacity:1}}.input-area{border-top:1px solid var(--border);background:var(--bg-2);padding:12px 16px;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.crypto-pending{font-size:.75rem;color:var(--amber);text-align:center;font-family:JetBrains Mono,monospace}.input-row{display:flex;gap:8px;align-items:center;position:relative}.message-input{flex:1;background:var(--bg-3);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:Inter,sans-serif;font-size:.9rem;padding:10px 14px;transition:border-color .15s}.message-input:focus{outline:none;border-color:var(--green)}.message-input:disabled{opacity:.4}.message-input::placeholder{color:var(--text-dim)}.btn-send{background:var(--green);border:none;border-radius:8px;color:#000;font-size:1rem;width:42px;height:42px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:filter .15s;flex-shrink:0}.btn-send:hover:not(:disabled){filter:brightness(1.1)}.btn-send:disabled{opacity:.3;cursor:not-allowed}.btn-emoji{background:var(--bg-3);border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:1rem;width:42px;height:42px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.btn-emoji:hover:not(:disabled){border-color:var(--green)}.btn-emoji.active{border-color:var(--green);background:var(--green-glow)}.btn-emoji:disabled{opacity:.3;cursor:not-allowed}.emoji-picker{position:absolute;bottom:calc(100% + 8px);left:0;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:10px;display:grid;grid-template-columns:repeat(10,1fr);gap:4px;box-shadow:0 8px 24px #0000004d;z-index:50;animation:fadeUp .12s ease-out}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.emoji-btn{background:none;border:none;border-radius:6px;cursor:pointer;font-size:1.2rem;width:34px;height:34px;display:flex;align-items:center;justify-content:center;transition:background .1s}.emoji-btn:hover{background:var(--bg-4)}
