:root{--bg: #0a0a0a;--bg-elevated: #141414;--bg-input: #1c1c1c;--border: #2a2a2a;--red: #e0122a;--red-dark: #a30d1f;--red-glow: rgba(224, 18, 42, .35);--text: #f2f2f2;--text-muted: #9a9a9a;--bubble-mine: linear-gradient(135deg, #b5101f, #7a0a15);--bubble-theirs: #1e1e1e;--radius: 16px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,textarea{font-family:inherit;color:var(--text)}.btn-primary{background:var(--red);color:#fff;border:none;border-radius:12px;padding:12px 20px;font-weight:600;font-size:15px;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.btn-primary:hover{background:var(--red-dark);box-shadow:0 0 0 4px var(--red-glow)}.btn-primary:active{transform:scale(.97)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:12px;padding:10px 16px;font-size:14px;transition:border-color .12s ease,background .12s ease}.btn-ghost:hover{border-color:var(--red);background:#e0122a14}.btn-danger{background:transparent;border:1px solid var(--red);color:var(--red);border-radius:12px;padding:10px 16px;font-weight:600}.btn-danger:hover{background:var(--red);color:#fff}input[type=text],input[type=password]{background:var(--bg-input);border:1px solid var(--border);border-radius:12px;padding:13px 14px;font-size:15px;outline:none;width:100%;transition:border-color .12s ease}input[type=text]:focus,input[type=password]:focus{border-color:var(--red);box-shadow:0 0 0 3px var(--red-glow)}.auth-shell{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(circle at 20% -10%,rgba(224,18,42,.15),transparent 40%),var(--bg)}.auth-card{width:100%;max-width:380px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:20px;padding:32px 28px;animation:rise .25s ease}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.brand{font-weight:800;font-size:22px;letter-spacing:.5px;margin-bottom:4px}.brand span{color:var(--red)}.subtitle{color:var(--text-muted);font-size:14px;margin-bottom:24px}.field{margin-bottom:14px}.field label{display:block;font-size:13px;color:var(--text-muted);margin-bottom:6px}.error-text{color:var(--red);font-size:13px;margin:8px 0 0}.switch-link{color:var(--text-muted);font-size:14px;margin-top:20px;text-align:center}.switch-link a{color:var(--red);text-decoration:none;font-weight:600}.app-shell{height:100dvh;display:flex;background:var(--bg)}.sidebar{width:100%;max-width:380px;border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--bg-elevated)}.sidebar-header{padding:16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.conversation-list{flex:1;overflow-y:auto}.conversation-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);transition:background .12s ease}.conversation-item:hover,.conversation-item.active{background:#e0122a14}.avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--red),#4a0710);display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;flex-shrink:0}.chat-area{flex:1;display:flex;flex-direction:column;min-width:0}.chat-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;justify-content:space-between}.messages-scroll{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}.bubble-row{display:flex}.bubble-row.mine{justify-content:flex-end}.bubble{max-width:72%;padding:10px 14px;border-radius:var(--radius);font-size:15px;line-height:1.4;animation:pop .15s ease;word-wrap:break-word}.bubble.mine{background:var(--bubble-mine);color:#fff;border-bottom-right-radius:4px}.bubble.theirs{background:var(--bubble-theirs);border:1px solid var(--border);border-bottom-left-radius:4px}@keyframes pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.bubble-meta{font-size:11px;opacity:.65;margin-top:4px}.composer{border-top:1px solid var(--border);padding:10px 12px;display:flex;align-items:flex-end;gap:8px}.composer textarea{flex:1;resize:none;background:var(--bg-input);border:1px solid var(--border);border-radius:18px;padding:11px 16px;max-height:120px;font-size:15px;outline:none}.composer textarea:focus{border-color:var(--red)}.icon-btn{width:42px;height:42px;border-radius:50%;background:var(--bg-input);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s ease,border-color .12s ease}.icon-btn:hover{border-color:var(--red)}.icon-btn.send{background:var(--red);border-color:var(--red)}.icon-btn.send:hover{background:var(--red-dark)}.icon-btn.recording{background:var(--red);animation:pulse 1s infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--red-glow)}50%{box-shadow:0 0 0 8px transparent}}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);text-align:center;padding:20px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:18px;padding:24px;max-width:380px;width:100%;animation:rise .2s ease}.modal-card h3{margin:0 0 8px;color:var(--red)}.modal-card p{color:var(--text-muted);font-size:14px;line-height:1.5}.modal-actions{display:flex;gap:10px;margin-top:20px;justify-content:flex-end}.media-thumb{max-width:240px;border-radius:12px;display:block}.upload-progress{height:4px;background:var(--border);border-radius:2px;overflow:hidden;margin-top:6px}.upload-progress-bar{height:100%;background:var(--red);transition:width .15s ease}@media (max-width: 760px){.sidebar{max-width:100%}.app-shell.chat-open .sidebar{display:none}.app-shell:not(.chat-open) .chat-area{display:none}}
