*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #1a1d23;--bg-secondary: #23272e;--bg-tertiary: #2b303b;--bg-hover: #333842;--text-primary: #e4e6eb;--text-secondary: #a0a4ab;--text-muted: #6b7280;--accent: #5b7ff5;--accent-hover: #4a6cf7;--accent-light: rgba(91, 127, 245, .15);--danger: #ef4444;--success: #22c55e;--border: #363b44;--radius: 8px;--radius-lg: 12px;--shadow: 0 2px 8px rgba(0, 0, 0, .3);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--text-primary);background:var(--bg-primary)}body{height:100vh;height:100dvh;overflow:hidden}#root{height:100%}.app-container{height:100%;display:flex}.app-container.login-page{align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-primary) 0%,#12141a 100%)}.login-page form{background:var(--bg-secondary);padding:40px;border-radius:var(--radius-lg);box-shadow:var(--shadow);width:100%;max-width:400px}.login-page form h2{text-align:center;margin-bottom:24px;font-size:1.5rem;color:var(--text-primary)}.login-page form div{margin-bottom:16px}.login-page form label{display:block;margin-bottom:6px;font-size:.85rem;color:var(--text-secondary);font-weight:500}.login-page form input{width:100%;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:.95rem;outline:none;transition:border-color .2s}.login-page form input:focus{border-color:var(--accent)}.login-page form button[type=submit]{width:100%;padding:10px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;margin-top:8px}.login-page form button[type=submit]:hover{background:var(--accent-hover)}.login-page form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.login-page form p{text-align:center;margin-top:16px;color:var(--text-secondary);font-size:.85rem}.login-page form p button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:.85rem;text-decoration:underline}.chat-layout{display:flex;height:100%;width:100%}.sidebar{width:260px;min-width:260px;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.app-title{font-size:1.1rem;font-weight:700;color:var(--text-primary)}.btn-logout{background:none;border:1px solid var(--border);color:var(--text-secondary);padding:4px 10px;border-radius:var(--radius);font-size:.75rem;cursor:pointer;transition:all .2s}.btn-logout:hover{color:var(--danger);border-color:var(--danger)}.sidebar-rooms{flex:1;overflow-y:auto;padding:8px 0}.sidebar-section-title{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.btn-icon{background:none;border:none;color:var(--text-secondary);font-size:1.1rem;cursor:pointer;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.room-list{list-style:none}.room-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 16px;background:none;border:none;color:var(--text-secondary);font-size:.9rem;cursor:pointer;text-align:left;transition:all .15s}.room-item:hover{background:var(--bg-hover);color:var(--text-primary)}.room-item.active{background:var(--accent-light);color:var(--accent)}.room-icon{font-weight:700;opacity:.5}.room-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-text{padding:16px;color:var(--text-muted);font-size:.85rem;text-align:center}.error-text{padding:8px 16px;color:var(--danger);font-size:.85rem}.chat-main{flex:1;display:flex;flex-direction:column;background:var(--bg-primary);overflow:hidden}.no-room-selected{flex:1;display:flex;align-items:center;justify-content:center}.no-room-content{text-align:center;color:var(--text-muted)}.no-room-icon{font-size:3rem;display:block;margin-bottom:16px}.no-room-content h2{font-size:1.3rem;color:var(--text-secondary);margin-bottom:8px}.no-room-content p{font-size:.9rem;margin-bottom:4px}.no-room-content .hint{margin-top:12px}.no-room-content code{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-size:.85rem;color:var(--accent)}section[aria-label^="Chat room"]{display:flex;flex-direction:column;height:100%}div[role=status]{padding:6px 16px;font-size:.8rem;text-align:center;font-weight:500}div[role=log]{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:2px}article[aria-label^="Message from"]{padding:10px 14px!important;margin-bottom:2px!important;border-radius:var(--radius)!important;background:var(--bg-secondary)!important;border-left:3px solid transparent!important;max-width:80%}article[aria-label^="Message from AI"]{background:var(--accent-light)!important;border-left-color:var(--accent)!important}article[aria-label^="Message from"] p{color:var(--text-primary);line-height:1.5}article[aria-label^="Message from"] span{color:var(--text-secondary)!important}article[aria-label^="Message from"] time{color:var(--text-muted)!important}span[aria-label="AI mode active"]{color:var(--accent)!important}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.sidebar-nav{display:flex;gap:2px;padding:8px;border-bottom:1px solid var(--border)}.nav-item{flex:1;padding:8px;background:none;border:none;color:var(--text-secondary);font-size:.85rem;cursor:pointer;border-radius:var(--radius);transition:all .15s;text-align:center}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--accent-light);color:var(--accent);font-weight:600}.admin-dashboard h1{font-size:1.3rem;margin-bottom:16px;color:var(--text-primary)}.admin-dashboard h2{font-size:1.1rem;margin-bottom:12px;color:var(--text-primary)}.admin-tabs{display:flex;gap:4px;margin-bottom:16px}.admin-tabs .tab{padding:8px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:.85rem;transition:all .15s}.admin-tabs .tab:hover{background:var(--bg-hover)}.admin-tabs .tab.active{background:var(--accent-light);color:var(--accent);border-color:var(--accent)}.admin-dashboard table{width:100%;border-collapse:collapse;margin-top:12px}.admin-dashboard th,.admin-dashboard td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border);font-size:.85rem}.admin-dashboard th{color:var(--text-muted);font-weight:600;text-transform:uppercase;font-size:.75rem}.admin-dashboard td{color:var(--text-primary)}.admin-dashboard button{padding:4px 10px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:.8rem;margin-right:4px;transition:all .15s}.admin-dashboard button:hover{background:var(--bg-hover);color:var(--text-primary)}.admin-dashboard input{padding:6px 10px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:.85rem;outline:none}.admin-dashboard input:focus{border-color:var(--accent)}.admin-dashboard .error{color:var(--danger);font-size:.85rem;margin-bottom:8px}.admin-dashboard .invite-token{background:var(--bg-tertiary);padding:8px;border-radius:var(--radius);margin-top:8px}.admin-dashboard .invite-token code{color:var(--accent);word-break:break-all}.admin-dashboard .health-status{background:var(--bg-tertiary);padding:8px 12px;border-radius:var(--radius);margin-bottom:16px;font-size:.85rem;color:var(--text-secondary)}.admin-dashboard .actions{display:flex;gap:4px}.msg-item{position:relative}.msg-item .msg-actions{position:absolute;top:4px;right:4px;display:flex;gap:2px;opacity:0;transition:opacity .15s}.msg-item:hover .msg-actions{opacity:1}.msg-action-btn{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;cursor:pointer;font-size:.75rem;padding:2px 6px;color:var(--text-secondary);transition:all .15s;line-height:1}.msg-action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.msg-action-delete:hover{color:var(--danger);border-color:var(--danger)}.image-preview{display:inline-flex;align-items:flex-start;gap:4px;padding:4px;background:var(--bg-tertiary);border-radius:var(--radius);border:1px solid var(--border)}.image-preview-remove{background:var(--bg-hover);border:none;color:var(--text-secondary);cursor:pointer;font-size:.85rem;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;transition:all .15s}.image-preview-remove:hover{color:var(--danger)}.msg-input-form{position:relative}.msg-input-form.drag-over{outline:2px dashed var(--accent);outline-offset:-2px;border-radius:var(--radius)}.drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#5b7ff51f;border-radius:var(--radius);color:var(--accent);font-weight:600;font-size:.9rem;pointer-events:none;z-index:10}.room-list-item{display:flex;align-items:center}.room-list-item .room-item{flex:1}.btn-share{background:none;border:none;cursor:pointer;font-size:.75rem;padding:4px 6px;opacity:0;transition:opacity .15s;color:var(--text-muted)}.room-list-item:hover .btn-share{opacity:1}.btn-share:hover{color:var(--accent)}.mobile-menu-btn{display:none;position:fixed;top:8px;left:8px;z-index:100;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);font-size:1.3rem;width:40px;height:40px;border-radius:var(--radius);cursor:pointer;align-items:center;justify-content:center}.sidebar-overlay{display:none}@media(max-width:768px){.mobile-menu-btn{display:flex}.sidebar{position:fixed;left:-280px;top:0;bottom:0;z-index:50;transition:left .25s ease;box-shadow:none}.sidebar.open{left:0;box-shadow:4px 0 20px #00000080}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:40}.chat-main{width:100%}.chat-layout{position:relative}.no-room-content h2{font-size:1.1rem}.no-room-content p{font-size:.85rem}.chat-main{padding-top:48px;height:100%;overflow:hidden}section[aria-label^="Chat room"]{height:calc(100dvh - 48px);max-height:calc(100dvh - 48px)}.msg-input-form{padding-bottom:max(8px,env(safe-area-inset-bottom))!important;flex-shrink:0}}.msg-input-form{display:flex;flex-direction:column;gap:4px;padding:6px 8px;background:var(--bg-secondary);border-top:1px solid var(--border);position:relative;flex-shrink:0}.ai-toolbar{display:flex;align-items:center;gap:4px;position:relative}.ai-toggle{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-muted);padding:3px 10px;border-radius:14px;font-size:.75rem;cursor:pointer;transition:all .15s}.ai-toggle.active{background:var(--accent-light);color:var(--accent);border-color:var(--accent)}.ai-opts-btn{background:none;border:none;color:var(--text-muted);font-size:.75rem;cursor:pointer;padding:3px 6px}.ai-opts-btn:hover{color:var(--text-primary)}.ai-opts-menu{position:absolute;bottom:100%;left:0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;display:flex;flex-direction:column;gap:6px;z-index:20;box-shadow:var(--shadow);margin-bottom:4px}.ai-opts-menu label{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.ai-opts-menu input[type=checkbox]{accent-color:var(--accent)}.msg-input-row{display:flex;gap:6px;align-items:flex-end}.msg-input-row textarea{flex:1;resize:none;padding:8px 10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);font-family:inherit;font-size:.9rem;outline:none;min-height:38px;max-height:120px}.msg-input-row textarea:focus{border-color:var(--accent)}.msg-input-row button[type=submit]{background:var(--accent);color:#fff;border:none;border-radius:50%;width:38px;height:38px;font-size:1.1rem;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .15s}.msg-input-row button[type=submit]:hover{background:var(--accent-hover)}.msg-input-row button[type=submit]:disabled{opacity:.4;cursor:not-allowed}.upload-status{font-size:.8rem;color:var(--text-muted)}@media(max-width:768px){.msg-input-row textarea{font-size:16px}}
