:root{ --bg-dark: #071029; --panel-dark: #0b1220; --glass: rgba(255,255,255,0.04); --muted: #9aa6b2; --accent: #7c3aed; --accent-2:#5b21b6; --success: #22c55e; --danger: #ef4444; --text: #e6eef8; --glass-border: rgba(255,255,255,0.06); } /* Reset */ *{box-sizing:border-box} html,body{height:100%;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;} body{background:linear-gradient(180deg,#071029 0%, #081226 100%);color:var(--text);-webkit-font-smoothing:antialiased} /* Theme wrapper */ #root{max-width:1200px;margin:18px auto;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;min-height:calc(100vh - 36px);} /* glass base */ .glass{ background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); border: 1px solid var(--glass-border); backdrop-filter: blur(8px) saturate(120%); border-radius:12px; box-shadow: 0 8px 28px rgba(2,6,23,0.6); } /* Topbar */ .topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 18px} .brand{display:flex;gap:12px;align-items:center} .logo{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700} .titles .title{font-weight:700;font-size:16px} .titles .subtitle{font-size:12px;color:var(--muted)} .actions{display:flex;gap:12px;align-items:center} .status{padding:8px 10px;border-radius:10px;font-weight:700} .status.connected{background:rgba(34,197,94,0.08);color:var(--success)} .status.disconnected{background:rgba(239,68,68,0.06);color:var(--danger)} /* Layout */ .main{display:flex;gap:16px;padding:18px;flex:1;min-height:0} .side{width:300px;padding:14px;display:flex;flex-direction:column;gap:12px} .chat{flex:1;display:flex;flex-direction:column;padding:14px;min-width:0} /* panels */ .panel{padding:12px;border-radius:12px} .panel-head{display:flex;justify-content:space-between;gap:12px} .panel-body{margin-top:12px} .quick-title{font-weight:700;margin-bottom:6px} .rows{display:flex;flex-direction:column;gap:8px;margin-top:8px} .controls-vertical{display:flex;flex-direction:column;gap:8px;margin-top:12px} /* messages */ .messages{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:10px;background-image: linear-gradient(180deg, rgba(255,255,255,0.007) 1px, transparent 1px);background-size: 100% 56px} .msg{max-width:78%;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,0.02);font-size:14px;line-height:1.35;word-break:break-word} .msg.system{color:var(--muted);font-weight:600;background:transparent} .msg.me{margin-left:auto;background:linear-gradient(90deg, rgba(124,58,237,0.12), rgba(59,130,246,0.06));border:1px solid rgba(124,58,237,0.06)} .meta{font-size:12px;color:var(--muted);margin-bottom:8px} .msg .img-wrap{display:block;border-radius:8px;overflow:hidden;max-width:360px} .msg img{display:block;max-width:100%;height:auto;border-radius:8px} /* composer */ .composer{display:flex;gap:8px;align-items:center;padding-top:12px} .input{flex:1;padding:12px;border-radius:12px;border:0;background:rgba(255,255,255,0.02);color:var(--text);font-size:15px} .btn{padding:10px 14px;border-radius:12px;border:0;cursor:pointer;font-weight:700;background:rgba(255,255,255,0.03);color:var(--text)} .btn.primary{background:linear-gradient(90deg,var(--accent),var(--accent-2));box-shadow:0 8px 20px rgba(124,58,237,0.12)} .btn.ghost{background:transparent;border:1px solid rgba(255,255,255,0.03)} .icon-btn{padding:10px;border-radius:10px;background:rgba(255,255,255,0.02);border:0;cursor:pointer;font-size:18px} /* footer */ .footer{padding:12px;text-align:center;font-size:13px} /* login overlay */ .overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg, rgba(3,6,12,0.45), rgba(3,6,12,0.55));z-index:60} .login-card{width:92%;max-width:420px;padding:18px;border-radius:14px} .login-header{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:10px} .login-logo{width:64px;height:64px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:28px;background:linear-gradient(135deg,var(--accent),var(--accent-2))} .login-form .field{display:flex;flex-direction:column;margin:8px 0} .login-form input{padding:12px;border-radius:10px;border:0;background:rgba(255,255,255,0.02);color:var(--text)} .login-row{display:flex;gap:8px;justify-content:space-between;margin-top:10px} .login-foot{margin-top:12px;text-align:center} /* small */ .small{font-size:13px} .muted{color:var(--muted)} .mono{font-family:ui-monospace,monospace;background:rgba(255,255,255,0.02);padding:6px;border-radius:8px;display:inline-block} /* responsive */ @media (max-width:900px){ .side{display:none} .login-card{max-width:92%} .msg{max-width:92%} }