:root{--primary:#dc2626;--bg:#0f0a0a;--surface:#1a1414;--text:#fff;--text-muted:#9ca3af;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-height:100svh;margin:0}#root{min-height:100svh}.screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100svh;padding:24px;display:flex}.logo{border-radius:22px;width:96px;height:96px;box-shadow:0 0 60px #dc262659}.brand{letter-spacing:-.5px;color:var(--text);margin:0;font-size:34px;font-weight:700}.tagline{color:var(--text-muted);max-width:320px;margin:0;font-size:15px}.card{background:var(--surface);border:1px solid #2a2020;border-radius:16px;flex-direction:column;gap:14px;width:100%;max-width:360px;padding:24px;display:flex}.input{color:var(--text);background:#14100f;border:1px solid #2a2020;border-radius:10px;outline:none;padding:12px 14px;font-size:15px}.input:focus{border-color:var(--primary)}.btn-primary{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:13px 16px;font-size:15px;font-weight:600;transition:opacity .15s}.btn-primary:hover{opacity:.9}.footnote{color:var(--text-muted);font-size:12px}.error{color:var(--primary);margin:0;font-size:13px}.app-layout{width:100%;height:100svh;display:flex}.sidebar{background:var(--surface);border-right:1px solid #2a2020;flex-direction:column;gap:12px;width:280px;min-width:280px;padding:16px;display:flex}.sidebar-header{align-items:center;gap:10px;display:flex}.logout-btn{cursor:pointer;color:var(--text-muted,#888);background:0 0;border:none;border-radius:6px;margin-left:auto;padding:4px 8px;font-size:18px}.logout-btn:hover{color:#e5484d;background:#ffffff14}.logo-small{border-radius:8px;width:32px;height:32px}.brand-small{font-size:18px;font-weight:700}.add-contact{flex-direction:column;gap:8px;display:flex}.contact-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.contact{cursor:pointer;color:var(--text-muted);border-radius:10px;padding:10px 12px}.contact:hover{background:#211a1a}.contact.active{background:var(--primary);color:#fff}.unread-badge{background:var(--primary);color:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex}.contact.active .unread-badge{color:var(--primary);background:#fff}.chat-panel{flex-direction:column;flex:1;display:flex}.chat-header{border-bottom:1px solid #2a2020;align-items:center;gap:10px;padding:16px 20px;font-weight:600;display:flex}.back-btn{color:var(--text);cursor:pointer;background:0 0;border:none;padding:0 4px 0 0;font-size:26px;line-height:1;display:none}.chat-messages{flex-direction:column;flex:1;gap:8px;padding:20px;display:flex;overflow-y:auto}.bubble-wrap{flex-direction:column;max-width:60%;display:flex}.wrap-theirs{align-self:flex-start}.wrap-mine{align-self:flex-end}.bubble{cursor:pointer;border-radius:14px;padding:10px 14px;font-size:14px;line-height:140%}.msg-menu{gap:6px;margin-top:4px;display:flex}.msg-menu.menu-mine{justify-content:flex-end}.msg-menu button{background:var(--surface);color:var(--text);cursor:pointer;border:1px solid #2a2020;border-radius:8px;padding:4px 8px;font-size:12px}.msg-menu button:hover{border-color:var(--primary)}.bubble.mine{background:var(--primary);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.bubble.theirs{background:var(--surface);border:1px solid #2a2020;border-bottom-left-radius:4px;align-self:flex-start}.chat-input-row{border-top:1px solid #2a2020;gap:10px;padding:16px 20px;display:flex}.chat-input-row .input{flex:1}.empty-state{color:var(--text-muted);flex:1;justify-content:center;align-items:center;display:flex}@media (width<=768px){.app-layout{height:100dvh}.sidebar{border-right:none;width:100%;min-width:0}.chat-panel,.app-layout.chat-open .sidebar{display:none}.app-layout.chat-open .chat-panel{display:flex}.back-btn{display:inline-block}.input{font-size:16px}.bubble-wrap{max-width:82%}.chat-messages{padding:14px}.chat-input-row{padding:12px 14px}}
