:root{--bg-gradient:linear-gradient(135deg, #e0f2fe 0%, #bae6fd 100%);--surface:#ffffff;--surface-border:#cbd5e1;--text-main:#0f172a;--text-muted:#64748b;--header-bg:linear-gradient(135deg, #0284c7 0%, #0369a1 100%);--header-text:#ffffff;--chat-box-bg:#f8fafc;--chat-box-border:#e2e8f0;--user-msg-bg:linear-gradient(135deg, #0284c7 0%, #0369a1 100%);--user-msg-text:#ffffff;--bot-msg-bg:#f0f9ff;--bot-msg-text:#0f172a;--bot-msg-border:#bae6fd;--input-bg:#ffffff;--input-border:#cbd5e1;--input-text:#0f172a;--input-focus:#0284c7;--dot-color:#0284c7;--shadow:0 10px 25px -5px rgba(2, 132, 199, 0.15), 0 8px 10px -6px rgba(0, 0, 0, 0.05)}[data-theme="dark"]{--bg-gradient:linear-gradient(135deg, #0b132b 0%, #1c2541 100%);--surface:#1e293b;--surface-border:#334155;--text-main:#f8fafc;--text-muted:#94a3b8;--header-bg:linear-gradient(135deg, #0369a1 0%, #0f4c81 100%);--header-text:#ffffff;--chat-box-bg:#0f172a;--chat-box-border:#334155;--user-msg-bg:linear-gradient(135deg, #0284c7 0%, #0369a1 100%);--user-msg-text:#ffffff;--bot-msg-bg:#334155;--bot-msg-text:#f8fafc;--bot-msg-border:#475569;--input-bg:#0f172a;--input-border:#334155;--input-text:#f8fafc;--input-focus:#38bdf8;--dot-color:#38bdf8;--shadow:0 10px 25px -5px rgba(0, 0, 0, 0.5), 0 8px 10px -6px rgba(0, 0, 0, 0.3)}*{box-sizing:border-box;margin:0;padding:0}html{min-height:100%}body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--bg-gradient);min-height:100vh;min-height:100dvh;display:flex;justify-content:center;align-items:flex-start;padding:clamp(12px, 3vw, 24px);color:var(--text-main);transition:background 0.3s ease,color 0.3s ease}.chat-container{width:100%;max-width:760px;min-height:calc(100vh - 48px);min-height:calc(100dvh - 48px);height:auto;background:var(--surface);border-radius:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--surface-border);transition:background 0.3s ease,border-color 0.3s ease}.intro-block{padding:clamp(22px, 4vw, 32px) clamp(18px, 4vw, 28px) 0;margin-bottom:clamp(18px, 3vw, 24px)}.intro-logo-row{display:flex;justify-content:center;margin-bottom:8px}.intro-logo-image{display:block;width:clamp(150px, 44vw, 220px);height:auto}.intro-logo-dark{display:none}[data-theme="dark"] .intro-logo-light{display:none}[data-theme="dark"] .intro-logo-dark{display:block}.intro-block p{color:var(--text-muted);text-align:center}.api-key-card{background:var(--surface);border:1px solid var(--surface-border);border-radius:12px;box-shadow:var(--shadow);padding:clamp(18px, 3vw, 24px);margin:0 clamp(16px, 4vw, 24px) clamp(18px, 3vw, 24px)}.api-key-card h2{color:var(--text-main);font-size:1.125rem;font-weight:600;margin-bottom:16px}.api-key-control{display:flex;gap:12px}.api-key-field{flex:1;min-width:0;padding:12px 14px;border-radius:10px;border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-text);font-size:.95rem;outline:none;transition:border-color 0.2s ease,box-shadow 0.2s ease}.api-key-field:focus{border-color:var(--input-focus);box-shadow:0 0 0 3px rgb(2 132 199 / .2)}.api-key-field:disabled{opacity:1;cursor:default}.api-key-lock{width:46px;height:46px;border:none;border-radius:10px;background:var(--header-bg);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity 0.2s ease,transform 0.1s ease}.api-key-lock:hover{opacity:.92}.api-key-lock:active{transform:scale(.98)}.api-key-note{color:var(--text-muted);font-size:.75rem;line-height:1.5;margin-top:8px}.chat-header{background:var(--header-bg);color:var(--header-text);padding:clamp(14px, 3vw, 18px) clamp(16px, 4vw, 24px);display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.brand>div:last-child{min-width:0}.brand-icon{background:rgb(255 255 255 / .2);width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}.brand h1{font-size:1.1rem;font-weight:600;line-height:1.2}.status-badge{font-size:.75rem;opacity:.9;display:flex;align-items:center;gap:6px;flex-wrap:wrap;line-height:1.35}.status-dot{width:8px;height:8px;background-color:#4ade80;border-radius:50%;display:inline-block;box-shadow:0 0 8px #4ade80}.theme-btn{background:rgb(255 255 255 / .15);border:none;color:#fff;width:38px;height:38px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 0.2s ease,transform 0.2s ease}.theme-btn:hover{background:rgb(255 255 255 / .3);transform:scale(1.05)}.hidden{display:none!important}.chat-box{flex:1 1 auto;min-height:clamp(280px, 42vh, 480px);min-height:clamp(280px, 42dvh, 480px);max-height:none;padding:clamp(16px, 3vw, 22px);overflow-y:auto;background:var(--chat-box-bg);display:flex;flex-direction:column;gap:16px;scroll-behavior:smooth;transition:background 0.3s ease}.message{max-width:82%;padding:12px 18px;border-radius:18px;font-size:.95rem;line-height:1.55;word-wrap:break-word;overflow-wrap:anywhere;animation:fadeIn 0.25s ease-out forwards}@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.user-message{align-self:flex-end;background:var(--user-msg-bg);color:var(--user-msg-text);border-bottom-right-radius:4px}.bot-message{align-self:flex-start;background:var(--bot-msg-bg);color:var(--bot-msg-text);border:1px solid var(--bot-msg-border);border-bottom-left-radius:4px}.bot-message.error-message{background-color:rgb(239 68 68 / .1);border-color:rgb(239 68 68 / .3);color:#ef4444}.bot-message h1,.bot-message h2,.bot-message h3,.bot-message h4{margin-top:10px;margin-bottom:6px;font-weight:600;color:inherit}.bot-message h1{font-size:1.25rem}.bot-message h2{font-size:1.15rem}.bot-message h3{font-size:1.05rem}.bot-message h4{font-size:.95rem}.bot-message p{margin-bottom:8px}.bot-message p:last-child{margin-bottom:0}.bot-message ul,.bot-message ol{margin-left:20px;margin-bottom:8px}.bot-message li{margin-bottom:4px}.bot-message strong{font-weight:600}.bot-message hr{border:none;border-top:1px solid var(--bot-msg-border);margin:10px 0}.bot-message code{background:rgb(0 0 0 / .08);padding:2px 6px;border-radius:4px;font-family:monospace;font-size:.88rem}[data-theme="dark"] .bot-message code{background:rgb(255 255 255 / .12)}.bot-message pre{background:rgb(0 0 0 / .1);padding:10px 14px;border-radius:8px;overflow-x:auto;margin:8px 0}.bot-message pre code{background:none;padding:0}.loading-dots{display:inline-flex;align-items:center;gap:5px;padding:4px 2px}.loading-dots span{width:8px;height:8px;background-color:var(--dot-color);border-radius:50%;display:inline-block;animation:wave 1.3s infinite ease-in-out}.loading-dots span:nth-child(2){animation-delay:0.2s}.loading-dots span:nth-child(3){animation-delay:0.4s}@keyframes wave{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}form{display:flex;padding:clamp(12px, 3vw, 16px) clamp(14px, 4vw, 20px);background:var(--surface);border-top:1px solid var(--surface-border);gap:clamp(8px, 2vw, 12px);transition:background 0.3s ease,border-color 0.3s ease}#user-input{flex:1;min-width:0;padding:12px 18px;border-radius:24px;border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-text);font-size:.95rem;outline:none;transition:border-color 0.2s ease,box-shadow 0.2s ease}#user-input:focus{border-color:var(--input-focus);box-shadow:0 0 0 3px rgb(2 132 199 / .2)}button[type="submit"]{display:flex;flex:0 0 auto;align-items:center;gap:8px;padding:12px 22px;border:none;background:var(--header-bg);color:#fff;border-radius:24px;font-size:.95rem;font-weight:500;cursor:pointer;transition:opacity 0.2s ease,transform 0.1s ease}button[type="submit"]:hover{opacity:.92}button[type="submit"]:active{transform:scale(.98)}button:disabled,input:disabled{opacity:.6;cursor:not-allowed}.site-footer{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;padding:0 20px 18px;background:var(--surface);color:var(--text-muted);font-size:.82rem;line-height:1.5;text-align:center;overflow-wrap:anywhere;transition:background 0.3s ease,color 0.3s ease}.site-footer a{color:var(--input-focus);font-weight:600;text-decoration:none}.site-footer a:hover{text-decoration:underline}@media (max-width:768px){.chat-container{border-radius:16px;max-width:100%}.chat-header{align-items:flex-start}.brand-icon{width:38px;height:38px;border-radius:10px;flex:0 0 auto}.status-badge{font-size:.7rem}.chat-box{min-height:clamp(300px, 48vh, 520px);min-height:clamp(300px, 48dvh, 520px)}}@media (max-width:600px){body{padding:0}.chat-container{min-height:100vh;min-height:100dvh;border-radius:0;border:none}.chat-box{min-height:clamp(260px, 42vh, 440px);min-height:clamp(260px, 42dvh, 440px);max-height:none}.intro-block{padding:24px 18px 0;margin-bottom:18px}.api-key-card{margin:0 16px 18px;padding:18px}.api-key-control{gap:8px}.chat-header{padding:14px 16px}.site-footer{padding:0 16px 16px;font-size:.78rem}}@media (max-width:420px){.brand{gap:10px}.brand-icon{width:34px;height:34px}.brand h1{font-size:1rem}.theme-btn{width:36px;height:36px}.api-key-control{align-items:stretch}.api-key-lock{width:44px;height:44px;flex:0 0 44px}#user-input{padding:11px 14px}button[type="submit"]{width:44px;height:44px;justify-content:center;padding:0}button[type="submit"] span{display:none}.message{max-width:92%;padding:11px 14px;font-size:.9rem}.site-footer{flex-direction:column;gap:2px}.footer-separator{display:none}}@media (max-width:340px){.intro-logo-image{width:140px}.api-key-card h2{font-size:1rem}.status-badge{font-size:.66rem}.chat-box{padding:14px 12px}form{padding:12px}}