:root{--bg: #f5f6f8;--panel: #ffffff;--border: #e6e8ec;--text: #1b1d21;--muted: #8a8f98;--brand: #2f6df6;--brand-soft: #eaf1ff;--user-bubble: #2f6df6;--assistant-bubble: #f1f2f4;--radius: 18px;--shadow: 0 1px 3px rgba(0, 0, 0, .06), 0 8px 24px rgba(0, 0, 0, .04)}@media (prefers-color-scheme: dark){:root{--bg: #0f1115;--panel: #171a20;--border: #262a32;--text: #e9eaec;--muted: #8a8f98;--brand-soft: #1a2540;--assistant-bubble: #23262e}}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:Noto Sans KR,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}.app{max-width:720px;margin:0 auto;height:100dvh;display:flex;flex-direction:column;background:var(--panel);border-left:1px solid var(--border);border-right:1px solid var(--border)}.header{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--panel)}.logo{width:38px;height:38px;border-radius:10px;background:var(--brand);color:#fff;font-weight:700;font-size:20px;display:grid;place-items:center}.header h1{margin:0;font-size:16px;font-weight:700}.header p{margin:2px 0 0;font-size:12px;color:var(--muted)}.chat{flex:1;overflow-y:auto;padding:24px 20px;display:flex;flex-direction:column;gap:14px}.welcome{margin:auto;text-align:center;max-width:440px}.welcome-emoji{font-size:44px}.welcome h2{margin:12px 0 4px;font-size:22px}.welcome p{margin:0 0 20px;color:var(--muted)}.suggestions{display:flex;flex-direction:column;gap:8px}.suggestion{padding:12px 16px;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--text);font-size:14px;cursor:pointer;transition:background .15s,border-color .15s}.suggestion:hover{background:var(--brand-soft);border-color:var(--brand)}.row{display:flex}.row.user{justify-content:flex-end}.row.assistant{justify-content:flex-start}.bubble{max-width:82%;padding:12px 16px;border-radius:var(--radius);font-size:15px;line-height:1.6}.row.user .bubble{background:var(--user-bubble);color:#fff;border-bottom-right-radius:6px}.row.assistant .bubble{background:var(--assistant-bubble);color:var(--text);border-bottom-left-radius:6px}.bubble-text{white-space:pre-wrap;word-break:break-word}.markdown{white-space:normal}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:0 0 10px}.markdown ul,.markdown ol{margin:0 0 10px;padding-left:22px}.markdown li{margin:3px 0}.markdown li>p{margin:0}.markdown h1,.markdown h2,.markdown h3{margin:14px 0 8px;font-size:1.05em;font-weight:700;line-height:1.4}.markdown strong{font-weight:700}.markdown a{color:var(--brand);text-decoration:underline}.markdown code{background:#7f7f7f29;padding:1px 5px;border-radius:5px;font-size:.9em}.markdown pre{background:#7f7f7f24;padding:12px 14px;border-radius:10px;overflow-x:auto;margin:0 0 10px}.markdown pre code{background:none;padding:0}.markdown blockquote{margin:0 0 10px;padding-left:12px;border-left:3px solid var(--border);color:var(--muted)}.markdown table{border-collapse:collapse;margin:0 0 10px;display:block;overflow-x:auto}.markdown th,.markdown td{border:1px solid var(--border);padding:6px 10px;text-align:left}.sources{margin-top:10px;border-top:1px solid var(--border);padding-top:8px}.sources summary{cursor:pointer;font-size:12px;color:var(--muted);-webkit-user-select:none;user-select:none}.source{display:flex;gap:8px;align-items:baseline;margin-top:8px;font-size:12px;color:var(--muted)}.sim{flex-shrink:0;font-variant-numeric:tabular-nums;background:var(--brand-soft);color:var(--brand);border-radius:6px;padding:1px 6px;font-weight:500}.source-text{line-height:1.5}.typing{display:flex;gap:5px;padding:4px 2px}.typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:blink 1.3s infinite both}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2}40%{opacity:1}}.composer{display:flex;gap:10px;padding:14px 20px;border-top:1px solid var(--border);background:var(--panel)}.composer-input{flex:1;padding:12px 16px;border:1px solid var(--border);border-radius:14px;background:var(--bg);color:var(--text);font-size:15px;outline:none;font-family:inherit}.composer-input:focus{border-color:var(--brand)}.composer-send{width:46px;flex-shrink:0;border:none;border-radius:14px;background:var(--brand);color:#fff;font-size:20px;cursor:pointer;transition:opacity .15s}.composer-send:disabled{opacity:.4;cursor:not-allowed}
