pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub
  Description: Light theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-light
  Current colors taken from GitHub's CSS
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}:root,[data-theme=light]{--bg: #ffffff;--sidebar: #f9f9f9;--panel: #ffffff;--elevated: #ffffff;--border: rgba(0, 0, 0, .08);--hover: rgba(0, 0, 0, .04);--text: #0d0d0d;--muted: #6b6b6b;--accent: #0d0d0d;--accent-soft: rgba(0, 0, 0, .06);--brand: #10a37f;--danger: #ef4444;--input: #ffffff;--user: #f4f4f4;--radius: 16px;--font: "Söhne", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--shadow: 0 0 0 1px rgba(0, 0, 0, .05), 0 8px 24px rgba(0, 0, 0, .06);--code-bg: #f4f4f4;--table-border: rgba(0, 0, 0, .1)}[data-theme=dark]{--bg: #212121;--sidebar: #171717;--panel: #212121;--elevated: #2f2f2f;--border: rgba(255, 255, 255, .1);--hover: rgba(255, 255, 255, .06);--text: #ececec;--muted: #b4b4b4;--accent: #ececec;--accent-soft: rgba(255, 255, 255, .08);--brand: #19c37d;--danger: #f87171;--input: #2f2f2f;--user: #303030;--shadow: 0 0 0 1px rgba(255, 255, 255, .06), 0 12px 32px rgba(0, 0, 0, .35);--code-bg: #1a1a1a;--table-border: rgba(255, 255, 255, .12)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}button,input,textarea{font:inherit;color:inherit}.boot-screen{height:100%;display:grid;place-items:center;background:var(--bg)}.boot-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--text);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.login-page{min-height:100%;display:grid;place-items:center;padding:24px;background:var(--bg);color:var(--text)}.login-card{width:100%;max-width:400px;text-align:center;animation:fade-up .35s ease both}.login-logo{color:var(--text);margin-bottom:12px}.login-brand{font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--text);margin-bottom:20px}.login-card h1{font-size:28px;font-weight:600;letter-spacing:-.02em;margin:0 0 8px;line-height:1.2}.login-sub{color:var(--muted);margin:0 0 28px;font-size:15px;line-height:1.55}.login-form{display:grid;gap:14px;text-align:left}.login-form label{display:grid;gap:6px;font-size:14px;font-weight:500}.login-form input{height:48px;border:1px solid var(--border);border-radius:12px;padding:0 14px;background:var(--elevated);color:var(--text);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.login-form input:focus{border-color:#00000059;box-shadow:0 0 0 3px var(--accent-soft)}[data-theme=dark] .login-form input:focus{border-color:#ffffff59}.btn-primary{height:48px;border:none;border-radius:999px;background:var(--accent);color:var(--bg);font-weight:500;cursor:pointer;transition:opacity .15s ease}.btn-primary:hover:not(:disabled){opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.form-error{color:var(--danger);font-size:13px}.login-switch{margin-top:22px;font-size:14px;color:var(--muted)}.link-btn{background:none;border:none;color:var(--text);cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.app-shell .link-btn{color:var(--muted);text-decoration:none}.app-shell .link-btn:hover{color:var(--text)}.app-shell{height:100%;display:flex;background:var(--bg)}.sidebar-backdrop{display:none}.sidebar{width:260px;background:var(--sidebar);display:flex;flex-direction:column;padding:12px;border-right:1px solid var(--border);flex-shrink:0}.sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 4px 12px}.sidebar-brand{font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--text)}.theme-toggle{border:1px solid var(--border);background:transparent;color:var(--muted);border-radius:999px;height:30px;min-width:40px;padding:0 10px;cursor:pointer;font-size:12px;font-weight:500}.theme-toggle:hover{color:var(--text);background:var(--hover)}.theme-toggle.floating{position:fixed;top:18px;right:18px;z-index:20;background:var(--elevated);box-shadow:var(--shadow)}.usage-card{border:1px solid var(--border);background:transparent;border-radius:12px;padding:10px 12px;margin-bottom:12px}.usage-label{font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.usage-value{margin-top:4px;font-size:20px;font-weight:600;letter-spacing:-.02em}.usage-sub{margin-top:2px;font-size:12px;color:var(--muted)}.topbar-usage{font-size:12px;color:var(--muted)}.new-chat-btn{display:flex;align-items:center;gap:10px;width:100%;height:40px;border:1px solid var(--border);border-radius:12px;background:transparent;color:var(--text);cursor:pointer;padding:0 12px;margin-bottom:12px;transition:background .15s ease}.new-chat-btn:hover{background:var(--hover)}.new-chat-btn .plus{font-size:18px;line-height:1;color:var(--muted)}.prompt-entry{width:100%;text-align:left;border:1px solid var(--border);background:transparent;color:var(--text);border-radius:12px;padding:10px 12px;margin-bottom:12px;cursor:pointer;transition:background .15s ease}.prompt-entry:hover{background:var(--hover)}.prompt-entry-label{font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.prompt-entry-value{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prompt-chip{font-size:12px;color:var(--muted);background:var(--hover);border:1px solid var(--border);border-radius:999px;padding:4px 10px;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-section-title{font-size:12px;font-weight:500;color:var(--muted);padding:4px 10px 8px}.conv-list{flex:1;overflow:auto;display:flex;flex-direction:column;gap:2px}.conv-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;cursor:pointer;color:var(--text);transition:background .15s ease}.conv-item:hover{background:var(--hover)}.conv-item.active{background:var(--accent-soft)}.conv-title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14px}.conv-delete{opacity:0;border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:18px;line-height:1}.conv-item:hover .conv-delete{opacity:1}.empty-hint{color:var(--muted);font-size:13px;padding:12px}.sidebar-footer{border-top:1px solid var(--border);padding-top:12px}.user-row{display:flex;gap:10px;align-items:center;padding:8px;border-radius:10px}.user-row:hover{background:var(--hover)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--brand);display:grid;place-items:center;font-size:13px;font-weight:600;color:#fff}.user-name{font-size:14px;font-weight:500;margin-bottom:2px}.chat-main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg)}.chat-topbar{height:56px;display:flex;align-items:center;gap:8px;padding:0 16px}.menu-btn{display:none;border:none;background:transparent;color:var(--text);font-size:20px;cursor:pointer}.model-chip{font-weight:600;font-size:15px;letter-spacing:-.01em;padding:4px 0}.topbar-spacer{flex:1}.chat-scroll{flex:1;overflow:auto;padding:0 0 24px}.empty-chat{height:100%;min-height:360px;display:grid;place-content:center;justify-items:center;text-align:center;gap:8px;animation:fade-up .4s ease both}.empty-orb{display:none}.empty-logo{width:48px;height:48px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:14px;font-weight:700;margin-bottom:8px}.empty-chat h2{margin:0;font-weight:600;font-size:clamp(24px,4vw,30px);letter-spacing:-.02em;line-height:1.2}.empty-sub{margin:0;max-width:360px;color:var(--muted);font-size:15px;line-height:1.55}.message-list{max-width:768px;margin:0 auto;width:100%;padding:18px 16px 28px;display:grid;gap:28px}.msg-row{display:flex;gap:16px;align-items:flex-start}.msg-avatar{width:30px;height:30px;border-radius:999px;display:grid;place-items:center;flex-shrink:0;margin-top:2px;color:#fff}.msg-avatar.user{background:#ab68ff}.msg-avatar.assistant{background:var(--brand)}.msg-body{min-width:0;flex:1}.msg-role-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.msg-role{font-size:14px;font-weight:600;line-height:1.2}.msg-tokens{font-size:11px;color:var(--muted)}.msg-content{font-size:16px;line-height:1.7;word-break:break-word;overflow-wrap:anywhere;color:var(--text)}.msg-content.user-bubble{white-space:pre-wrap;display:inline-block;max-width:100%;background:var(--user);border-radius:18px;padding:10px 14px}.msg-content>:first-child{margin-top:0}.msg-content>:last-child{margin-bottom:0}.msg-content p{margin:0 0 .85em}.msg-content h1,.msg-content h2,.msg-content h3,.msg-content h4{margin:1.35em 0 .55em;line-height:1.35;letter-spacing:-.02em;font-weight:600}.msg-content h1:first-child,.msg-content h2:first-child,.msg-content h3:first-child,.msg-content h4:first-child{margin-top:.2em}.msg-content h1{font-size:1.28em}.msg-content h2{font-size:1.16em}.msg-content h3,.msg-content h4{font-size:1.05em}.msg-content ul,.msg-content ol{margin:.45em 0 1em;padding-left:1.45em}.msg-content li{margin:.35em 0;padding-left:.15em;line-height:1.6}.msg-content li>p{margin:.2em 0}.msg-content li>ul,.msg-content li>ol{margin:.25em 0 .35em}.msg-content blockquote{margin:.7em 0;padding:.2em 0 .2em .95em;border-left:3px solid var(--border);color:var(--muted)}.msg-content blockquote p{margin:.35em 0}.msg-content a{color:#0b57d0;text-decoration:underline;text-underline-offset:2px}[data-theme=dark] .msg-content a{color:#8ab4f8}.md-table-wrap{width:100%;overflow-x:auto;margin:.75em 0 1em;border:1px solid var(--table-border);border-radius:10px}.msg-content table{width:100%;border-collapse:collapse;font-size:.94em}.msg-content th,.msg-content td{border:1px solid var(--table-border);padding:8px 11px;text-align:left;vertical-align:top}.msg-content th{background:var(--hover);font-weight:600;white-space:nowrap}.msg-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em}.msg-content :not(pre)>code{background:var(--code-bg);border-radius:5px;padding:.12em .38em}.code-block{margin:.75em 0 1em;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#0d1117;color:#e6edf3}[data-theme=light] .code-block{background:#f6f8fa;color:#1f2328}.code-block-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:#7f7f7f1f;border-bottom:1px solid var(--border)}.code-block-lang{font-size:12px;color:var(--muted);text-transform:lowercase}.code-copy-btn{border:none;background:transparent;color:var(--muted);font-size:12px;cursor:pointer;padding:2px 6px;border-radius:6px}.code-copy-btn:hover{color:var(--text);background:var(--hover)}.code-block-pre{margin:0;padding:14px 16px;overflow:auto;line-height:1.55;background:transparent}.code-block-pre code{background:transparent!important;padding:0!important;font-size:.9em;color:inherit}.msg-content hr{border:none;border-top:1px solid var(--border);margin:1.1em 0}.msg-content strong{font-weight:600}.hljs{background:transparent!important;color:inherit}.msg-content.is-streaming{position:relative}.stream-caret{display:inline-block;width:7px;height:1.05em;margin-left:2px;vertical-align:text-bottom;background:var(--text);border-radius:1px;animation:caret-blink 1s steps(1) infinite}@keyframes caret-blink{0%,45%{opacity:1}50%,to{opacity:0}}.typing{display:flex;gap:5px;padding-top:8px}.typing span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:bounce 1.2s infinite ease-in-out}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.chat-error{max-width:768px;margin:0 auto;padding:0 16px;color:var(--danger);font-size:14px}.composer{max-width:768px;width:100%;margin:0 auto;padding:0 16px 18px}.composer-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.tool-toggle{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.tool-toggle:hover:not(:disabled){color:var(--text);background:var(--hover)}.tool-toggle.active{color:var(--brand);border-color:#10a37f73;background:#10a37f1a}.tool-toggle:disabled{opacity:.55;cursor:not-allowed}.tool-toggle-hint{font-size:12px;color:var(--muted)}.attach-preview-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.attach-chip{display:flex;align-items:center;gap:8px;background:var(--elevated);border:1px solid var(--border);border-radius:12px;padding:8px 10px;max-width:240px}.attach-chip.error{border-color:var(--danger)}.attach-thumb{width:36px;height:36px;border-radius:8px;object-fit:cover}.attach-icon,.msg-attach-icon{width:36px;height:36px;display:grid;place-items:center;background:var(--hover);border-radius:8px;font-size:10px;font-weight:600;color:var(--muted);letter-spacing:.02em}.msg-attach-icon{width:auto;height:auto;padding:4px 6px}.attach-meta{min-width:0;flex:1}.attach-name{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attach-status{font-size:11px;color:var(--muted)}.attach-remove{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:18px;line-height:1}.attach-btn{width:36px;height:36px;border:none;border-radius:50%;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;flex-shrink:0}.attach-btn:hover:not(:disabled){color:var(--text);background:var(--hover)}.attach-btn:disabled{opacity:.5;cursor:not-allowed}.msg-attach-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.msg-attach.image img{max-width:min(320px,100%);max-height:240px;border-radius:12px;display:block}.msg-attach.file{display:inline-flex;align-items:center;gap:8px;background:var(--elevated);border:1px solid var(--border);border-radius:12px;padding:8px 12px;font-size:13px;max-width:280px}.msg-attach-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-box{display:flex;align-items:flex-end;gap:8px;background:var(--input);border:1px solid var(--border);border-radius:28px;padding:10px 12px 10px 10px;box-shadow:var(--shadow);transition:border-color .15s ease}.composer-box:focus-within{border-color:#0003}[data-theme=dark] .composer-box:focus-within{border-color:#ffffff40}.composer-box textarea{flex:1;border:none;outline:none;resize:none;background:transparent;max-height:200px;line-height:1.5;padding:6px 0}.send-btn{width:36px;height:36px;border:none;border-radius:50%;background:var(--accent);color:var(--bg);display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:opacity .15s ease}.send-btn:hover:not(:disabled){opacity:.9}.send-btn:disabled{background:var(--hover);color:var(--muted);cursor:not-allowed}.composer-hint{text-align:center;color:var(--muted);font-size:12px;margin:10px 0 0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:grid;place-items:center;padding:20px;z-index:50}.modal{width:min(560px,100%);max-height:min(86vh,720px);overflow:auto;background:var(--elevated);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.modal-header{display:flex;align-items:center;justify-content:space-between}.modal-header h3{margin:0;font-size:18px;font-weight:600}.icon-btn{border:none;background:transparent;color:var(--muted);font-size:24px;cursor:pointer}.modal-desc{color:var(--muted);font-size:13px;line-height:1.5;margin:8px 0 16px}.prompt-form{display:grid;gap:12px;margin-bottom:14px}.prompt-form label{display:grid;gap:6px;font-size:13px;font-weight:500}.prompt-form input,.prompt-form textarea{width:100%;border:1px solid var(--border);background:var(--bg);border-radius:12px;padding:10px 12px;outline:none;resize:vertical;color:var(--text)}.prompt-form input:focus,.prompt-form textarea:focus{border-color:#00000047}[data-theme=dark] .prompt-form input:focus,[data-theme=dark] .prompt-form textarea:focus{border-color:#ffffff47}.prompt-form-actions{display:flex;justify-content:flex-end;gap:10px}.btn-ghost{height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer}.btn-primary.sm{height:36px;padding:0 16px;border-radius:999px}.prompt-list{display:grid;gap:8px}.prompt-item{display:grid;gap:8px;padding:12px;border-radius:12px;background:var(--bg);border:1px solid var(--border)}.prompt-item.active{border-color:var(--brand);background:#10a37f0f}.prompt-item-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.prompt-badge{font-size:11px;font-weight:600;color:#fff;background:var(--brand);border-radius:999px;padding:2px 8px}.prompt-item-preview{font-size:12px;color:var(--muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}.prompt-item-actions{display:flex;gap:12px}.link-btn.danger{color:var(--danger)}@media(max-width:860px){.menu-btn{display:inline-flex}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;transform:translate(-105%);transition:transform .22s ease}.sidebar.open{transform:translate(0)}.sidebar-backdrop.show{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:30}}
