*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #050510;--bg2: #0a0a18;--bg-card: rgba(255, 255, 255, .02);--bg-card-hover: rgba(167, 139, 250, .02);--accent: #a78bfa;--accent-dim: rgba(167, 139, 250, .12);--accent-border: rgba(167, 139, 250, .3);--accent-glow: rgba(167, 139, 250, .15);--text: #ffffff;--text-mid: rgba(255, 255, 255, .7);--text-muted: rgba(255, 255, 255, .4);--border: rgba(255, 255, 255, .06);--border-hover: rgba(167, 139, 250, .15);--danger: #ff4d4d;--danger-dim: rgba(255, 77, 77, .08);--danger-border: rgba(255, 77, 77, .25);--user-bg: rgba(167, 139, 250, .06);--ai-bg: rgba(255, 255, 255, .02);--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-ui: "Rajdhani", "Inter", sans-serif;--font-mono: "Courier New", Courier, monospace;--radius: 6px;--input-bg: rgba(255, 255, 255, .03)}html{font-size:16px;height:100%}body{font-family:var(--font-body);background:radial-gradient(ellipse at 15% 20%,rgba(88,28,135,.18) 0%,transparent 50%),radial-gradient(ellipse at 85% 75%,rgba(30,58,138,.14) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(15,23,42,.6) 0%,transparent 80%),#050510;color:var(--text);height:100dvh;display:flex;flex-direction:column;overflow:hidden;position:relative;line-height:1.5;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;background-image:radial-gradient(1.2px 1.2px at 20px 30px,rgba(255,255,255,.7),transparent),radial-gradient(1px 1px at 40px 70px,rgba(255,255,255,.5),transparent),radial-gradient(1.5px 1.5px at 90px 40px,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 130px 80px,rgba(255,255,255,.4),transparent),radial-gradient(1.3px 1.3px at 160px 30px,rgba(255,255,255,.55),transparent),radial-gradient(1px 1px at 200px 60px,rgba(167,139,250,.5),transparent),radial-gradient(1.2px 1.2px at 250px 20px,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 280px 90px,rgba(255,255,255,.35),transparent),radial-gradient(1.4px 1.4px at 320px 50px,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 360px 75px,rgba(167,139,250,.4),transparent),radial-gradient(1.1px 1.1px at 50px 150px,rgba(255,255,255,.45),transparent),radial-gradient(1px 1px at 100px 180px,rgba(255,255,255,.5),transparent),radial-gradient(1.3px 1.3px at 150px 130px,rgba(255,255,255,.55),transparent),radial-gradient(1px 1px at 210px 170px,rgba(167,139,250,.35),transparent),radial-gradient(1.2px 1.2px at 270px 140px,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 330px 160px,rgba(255,255,255,.4),transparent),radial-gradient(1.5px 1.5px at 380px 120px,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 420px 190px,rgba(167,139,250,.3),transparent),radial-gradient(1.1px 1.1px at 460px 145px,rgba(255,255,255,.45),transparent),radial-gradient(1px 1px at 70px 250px,rgba(255,255,255,.5),transparent),radial-gradient(1.3px 1.3px at 180px 280px,rgba(255,255,255,.55),transparent),radial-gradient(1px 1px at 300px 230px,rgba(167,139,250,.4),transparent),radial-gradient(1.2px 1.2px at 400px 270px,rgba(255,255,255,.5),transparent);background-size:500px 300px}.header{flex-shrink:0;padding:0 24px;height:60px;border-bottom:1px solid rgba(255,255,255,.05);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050510b3}.header-left{display:flex;align-items:center;gap:12px}.header-title{display:flex;align-items:center;gap:8px;text-transform:uppercase}.header-brand{font-family:Inter,sans-serif;font-size:20px;font-weight:700;color:var(--text);letter-spacing:.5px}.header-tag{font-family:var(--font-ui);border-radius:2px;border:1px solid var(--accent);background:radial-gradient(102.32% 202.22% at 50% 50%,var(--accent) 0%,#4c1d95 100%);box-shadow:0 4px 15px #a78bfa33;color:#000c;font-size:14px;font-weight:600;letter-spacing:-.4px;padding:0 4px;line-height:1.5}.header-subtitle{font-family:var(--font-ui);font-size:11px;color:var(--text-muted);letter-spacing:.2em;text-transform:uppercase;font-weight:500}.header-right{display:flex;align-items:center;gap:12px}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:4px;border:1px solid var(--border);background:var(--bg-card);font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:pulse 2s ease-in-out infinite}.status-dot.online{background:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.status-dot.offline{background:var(--danger);animation:none}.status-label{font-size:12px}.status-model{font-family:var(--font-ui);font-size:11px;color:var(--text-muted);opacity:.6;letter-spacing:.1em;text-transform:uppercase}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.main{flex:1;overflow:hidden;display:flex;flex-direction:column;position:relative;z-index:5}.chat-container{flex:1;overflow-y:auto;padding:24px;scroll-behavior:smooth;max-width:900px;width:100%;margin:0 auto}.chat-container::-webkit-scrollbar{width:4px}.chat-container::-webkit-scrollbar-track{background:transparent}.chat-container::-webkit-scrollbar-thumb{background:#a78bfa40;border-radius:4px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;gap:12px;animation:fadeIn .5s ease}.empty-icon{font-size:56px;opacity:.3;margin-bottom:8px}.empty-title{font-family:var(--font-ui);font-size:24px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:1px}.empty-sub{font-family:var(--font-ui);font-size:16px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.5px}.empty-hint{font-size:14px;color:var(--text-muted);max-width:400px}.empty-badges{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:8px}.badge{font-family:var(--font-ui);font-size:12px;font-weight:600;padding:4px 12px;border-radius:4px;letter-spacing:.5px;text-transform:uppercase;background:var(--accent-dim);border:1px solid var(--accent-border);color:var(--accent)}.message{max-width:85%;margin:12px auto;padding:14px 18px;border-radius:var(--radius);animation:msgSlide .3s ease;position:relative;word-wrap:break-word;overflow-wrap:break-word;border:1px solid var(--border);background:var(--bg-card);transition:border-color .15s}.message:hover{border-color:var(--border-hover)}@keyframes msgSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{background:var(--user-bg);border-left:3px solid var(--accent);margin-left:auto;margin-right:0}.message.assistant{background:var(--ai-bg);border-right:3px solid rgba(167,139,250,.4);margin-right:auto;margin-left:0}.message.error{background:var(--danger-dim);border:1px solid var(--danger-border);border-left:3px solid var(--danger);color:#f88}.message-role{font-family:var(--font-ui);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;color:var(--text-muted)}.message.user .message-role{color:var(--accent)}.message.assistant .message-role{color:#a78bfab3}.message-content{font-size:14px;line-height:1.7;color:var(--text-mid)}.message-content p{margin-bottom:8px}.message-content p:last-child{margin-bottom:0}.message-content pre{background:#00000059;border:1px solid var(--border);border-radius:4px;padding:14px;margin:10px 0;overflow-x:auto;position:relative;font-family:var(--font-mono);font-size:13px;line-height:1.5}.message-content code{font-family:var(--font-mono);font-size:13px}.message-content :not(pre)>code{background:#a78bfa1a;padding:2px 6px;border-radius:3px;color:var(--accent)}.code-copy-btn{position:absolute;top:6px;right:6px;background:#ffffff0f;border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-ui);font-size:12px;font-weight:600;padding:4px 10px;border-radius:4px;cursor:pointer;transition:all .15s;text-transform:uppercase;letter-spacing:.3px;min-width:44px;min-height:28px}.code-copy-btn:hover{background:var(--accent-dim);border-color:var(--accent-border);color:var(--accent)}.code-copy-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.message-content h1,.message-content h2,.message-content h3{font-family:var(--font-ui);color:var(--text);margin:14px 0 8px;text-transform:uppercase;letter-spacing:.3px}.message-content h1{font-size:18px;font-weight:700}.message-content h2{font-size:16px;font-weight:600}.message-content h3{font-size:14px;font-weight:600}.message-content ul,.message-content ol{margin:8px 0;padding-left:20px}.message-content li{margin-bottom:4px;color:var(--text-mid)}.message-content blockquote{border-left:3px solid var(--accent);padding-left:14px;margin:10px 0;color:var(--text-muted);font-style:italic}.message-content table{border-collapse:collapse;margin:10px 0;width:100%;font-size:13px}.message-content th,.message-content td{border:1px solid var(--border);padding:8px 12px;text-align:left}.message-content th{background:#a78bfa0f;color:var(--accent);font-family:var(--font-ui);font-weight:600;text-transform:uppercase;font-size:12px;letter-spacing:.3px}.message-content a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent-border);transition:.15s}.message-content a:hover{border-bottom-color:var(--accent)}.thinking-indicator{display:flex;align-items:center;gap:10px;padding:10px 24px;flex-shrink:0;max-width:900px;width:100%;margin:0 auto}.thinking-dots{display:flex;gap:4px}.thinking-dots span{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:dotBounce 1.4s ease-in-out infinite}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes dotBounce{0%,80%,to{transform:scale(.6);opacity:.3}40%{transform:scale(1);opacity:1}}.thinking-text{font-family:var(--font-ui);font-size:12px;font-weight:600;color:var(--accent);opacity:.5;letter-spacing:.5px;text-transform:uppercase}.streaming-cursor{display:inline;color:var(--accent);animation:cursorBlink .8s step-end infinite;font-weight:700}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.message.streaming{border-left:2px solid var(--accent)}@media(prefers-reduced-motion:reduce){.streaming-cursor{animation:none;opacity:1}.message.streaming{animation:none}.thinking-dots span{animation:none;opacity:.5}.status-dot,.message{animation:none}}.input-area{flex-shrink:0;padding:14px 24px;position:relative;z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050510b3;border-top:1px solid rgba(255,255,255,.05)}.input-container{max-width:900px;margin:0 auto}.input-wrapper{display:flex;gap:8px;align-items:flex-end;background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius);padding:8px;transition:border-color .15s,background .15s}.input-wrapper:focus-within{border-color:var(--accent-border);background:var(--bg-card-hover)}.message-input{flex:1;background:transparent;border:none;color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.5;resize:none;outline:none;max-height:120px;min-height:24px;padding:4px 8px}.message-input::placeholder{color:var(--text-muted)}.input-actions{display:flex;gap:4px;flex-shrink:0}.send-btn,.cancel-btn{width:38px;height:38px;border-radius:4px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.send-btn{background:radial-gradient(78.09% 78.1% at 50% 50%,#a78bfa00,#a78bfa2e);border:1px solid var(--accent-border);color:var(--accent)}.send-btn:disabled{background:#a78bfa0d;border-color:var(--border);color:var(--text-muted);cursor:not-allowed}.send-btn:not(:disabled):hover{background:radial-gradient(78.09% 78.1% at 50% 50%,#a78bfa00,#a78bfa47);box-shadow:0 4px 20px #a78bfa26}.send-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cancel-btn{background:var(--danger-dim);border:1px solid var(--danger-border);color:var(--danger)}.cancel-btn:hover{background:#ff4d4d26;border-color:var(--danger)}.cancel-btn:focus-visible{outline:2px solid var(--danger);outline-offset:2px}.input-footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding:0 4px}.new-chat-btn{background:transparent;border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-ui);font-size:13px;font-weight:600;padding:6px 14px;border-radius:4px;cursor:pointer;letter-spacing:.3px;text-transform:uppercase;transition:all .15s;min-height:32px}.new-chat-btn:hover{border-color:var(--border-hover);color:var(--text);background:var(--bg-card)}.new-chat-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.char-count{font-family:var(--font-ui);font-size:12px;color:var(--text-muted);opacity:.5}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.hljs{background:transparent!important;color:var(--text-mid)}.hljs-keyword{color:#c084fc}.hljs-string{color:#86efac}.hljs-number{color:#fdba74}.hljs-comment{color:var(--text-muted);font-style:italic}.hljs-function,.hljs-title{color:#7dd3fc}.hljs-built_in{color:#fde68a}.hljs-params{color:var(--text-mid)}.hljs-attr{color:#fdba74}.hljs-variable{color:#86efac}.hljs-type{color:#fde68a}.hljs-literal{color:#fdba74}.hljs-meta{color:var(--text-muted)}.hljs-tag,.hljs-name{color:#f0abfc}.hljs-attribute{color:#fdba74}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#a78bfa40;border-radius:4px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:#a78bfa4d;color:#fff}@media(max-width:768px){.header{padding:0 16px;height:54px}.header-brand{font-size:16px}.header-tag{font-size:12px}.header-subtitle,.status-model{display:none}.chat-container{padding:16px}.message{max-width:95%;margin:8px auto;padding:12px 14px}.message.user{margin-right:0}.message.assistant{margin-left:0}.input-area{padding:10px 16px}.empty-icon{font-size:40px}.empty-title{font-size:20px}.empty-sub{font-size:14px}.empty-hint{font-size:13px}}@media(max-width:480px){.header{padding:0 12px;height:50px}.header-brand{font-size:14px}.header-tag{font-size:11px;padding:0 3px}.chat-container{padding:12px}.message{padding:10px 12px;font-size:13px}.message-content{font-size:13px}.message-content pre{padding:10px;font-size:12px}.input-area{padding:8px 12px}.send-btn,.cancel-btn{width:36px;height:36px}.empty-badges{gap:6px}.badge{font-size:10px;padding:3px 8px}}
