:root{ --bg-1:#011228; --bg-2:#001b2b; --accent:#00BD8A; --accent-2:#00A4FF; --muted:#8B949E; --panel:#011B3B80; --glass: rgba(255,255,255,0.03); } *{box-sizing:border-box} html,body,#app{height:100%} body{ margin:0; font-family:Inter, ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial; background: linear-gradient(135deg, var(--bg-1) 0%, var(--bg-2) 100%); color:#e6f1ff; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; } .app-root{ min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:32px; position:relative; } .canvas-bg{position:absolute;inset:0;opacity:0.18;pointer-events:none;background: radial-gradient(circle at 20% 50%, rgba(157,78,221,0.25) 0%, transparent 40%), radial-gradient(circle at 80% 50%, rgba(0,164,255,0.18) 0%, transparent 40%); filter:blur(20px); } .app-header{width:100%;max-width:980px;display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;z-index:2} .logo-wrap{display:flex;align-items:center;gap:12px} .logo{font-weight:700;font-size:20px;color:var(--accent);text-shadow:0 0 18px rgba(0,189,138,0.35)} .logo-glow{width:48px;height:48px;border-radius:999px;background:radial-gradient(circle, rgba(0,189,138,0.25) 0%, transparent 50%);box-shadow:0 0 20px rgba(0,189,138,0.25)} .status{color:var(--muted);font-size:14px} .chat-panel{width:100%;max-width:980px;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.015));border-radius:18px;border:1px solid rgba(0,189,138,0.08);overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,0.6);z-index:2} .messages{height:520px;overflow-y:auto;padding:28px;display:flex;flex-direction:column;gap:18px} .message{max-width:78%;display:flex;gap:12px;align-items:flex-start} .message.bot{justify-content:flex-start} .message.user{justify-content:flex-end;align-self:flex-end} .bubble{padding:14px 16px;border-radius:12px;line-height:1.35;box-shadow:0 6px 20px rgba(2,6,23,0.6)} .bubble.bot{background:rgba(1,27,59,0.7);border:1px solid rgba(0,189,138,0.12);color:var(--accent-2);} .bubble.user{background:rgba(1,18,40,0.8);border:1px solid rgba(0,164,255,0.09);color:#c9d1d9} .meta{font-size:12px;color:var(--muted);margin-bottom:6px} .typing{display:none;padding:0 28px 18px} .typing .dot{display:inline-block;width:8px;height:8px;border-radius:999px;margin-right:6px;background:var(--accent);opacity:0.85;animation:typing 1s infinite} .typing .dot:nth-child(2){animation-delay:0.12s} .typing .dot:nth-child(3){animation-delay:0.24s} @keyframes typing{0%{transform:translateY(0) scale(1);opacity:0.6}50%{transform:translateY(-6px) scale(1.15);opacity:1}100%{transform:translateY(0) scale(1);opacity:0.6}} .composer{display:flex;gap:12px;padding:18px;border-top:1px solid rgba(255,255,255,0.02);background:var(--panel);align-items:center} .input{flex:1;padding:12px 14px;border-radius:12px;border:1px solid rgba(48,54,61,0.4);background:rgba(255,255,255,0.02);color:#c9d1d9;outline:none} .input:focus{box-shadow:0 0 18px rgba(0,189,138,0.12);border-color:rgba(0,189,138,0.25)} .send{padding:10px 16px;border-radius:10px;border:none;background:var(--accent);color:#011228;font-weight:600;cursor:pointer} .send:disabled{opacity:0.6;cursor:not-allowed} .app-footer{margin-top:16px;color:var(--muted);font-size:13px;z-index:2} /* small screens */ @media (max-width:640px){ .messages{height:60vh;padding:18px} .chat-panel{border-radius:14px} } /* small utilities used by server template: */ .hidden{display:none}