:root{color-scheme:light dark;--bg:#fff;--ink:#2f3437;--muted:#777d80;--line:#e9e9e7;--soft:#f7f8f7;--accent:#24766b;--tint:#edf5f2;--error:#a13c32;--error-bg:#fff3f0}
*{box-sizing:border-box}html,body{margin:0;padding:0;background:transparent}body{font:13px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",Arial,sans-serif;color:var(--ink)}[hidden]{display:none!important}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.widget{width:100%;max-width:660px;height:min(380px,100dvh);min-height:260px;margin:0 auto;display:flex;flex-direction:column;overflow:hidden;position:relative;background:var(--bg);border:1px solid var(--line);border-radius:10px}.topbar{height:44px;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;border-bottom:1px solid var(--line)}.brand,.controls{display:flex;gap:7px;align-items:center;min-width:0}.brand strong{font-size:13px;font-weight:650}.mark{color:var(--accent);font-size:19px}.status{font-size:10px;color:var(--muted);white-space:nowrap}.status.ok:before{content:"";display:inline-block;width:5px;height:5px;background:var(--accent);border-radius:50%;margin-right:4px}.icon,.quiet{border:0;background:transparent;color:var(--muted);border-radius:5px;padding:4px 6px;font-size:11px;white-space:nowrap}.icon{font-size:16px;line-height:1}.icon:hover,.quiet:hover{background:var(--soft);color:var(--ink)}.workspace{display:flex;flex-direction:column;min-height:0;flex:1;position:relative}.login-screen{overflow:auto;flex:1;padding:22px 20px 12px}.login-intro{margin-bottom:14px}.login-intro b{font-size:14px;font-weight:600}.login-intro p{margin:4px 0;color:var(--muted);font-size:12px}.login-fields{display:flex;gap:10px}.login-fields label{display:block;flex:1;min-width:0;font-size:11px;color:var(--muted)}input{display:block;width:100%;margin-top:5px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);height:35px;padding:6px 9px}.primary{margin-top:12px;border:0;background:var(--accent);color:white;border-radius:6px;padding:7px 18px;font-size:12px}.privacy{font-size:10px;color:var(--muted);margin-top:12px}.login-error:empty{display:none}.login-error{font-size:11px;color:var(--error);margin-top:7px}.messages{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:12px 14px;scrollbar-width:thin;overflow-wrap:anywhere}.welcome{color:var(--muted);padding:20px 6px 12px;text-align:center}.welcome p{margin:5px 0;color:var(--ink);font-size:12px}.welcome small{font-size:11px}.small-mark{font-size:21px;color:var(--accent)}.message-row{display:flex;margin:0 0 12px}.message-row.user{justify-content:flex-end}.message-content{max-width:94%;min-width:0}.message-label{font-size:10px;color:var(--muted);margin-bottom:3px}.message-row.user .message-label{text-align:right}.message-text{white-space:pre-wrap;font-size:12px;line-height:1.7;overflow-wrap:anywhere}.user .message-text{background:var(--tint);padding:6px 10px;border-radius:8px 8px 2px 8px}.assistant .message-text{padding:0 2px}.message-text a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.pending .message-text{color:var(--muted);font-size:11px}.error .message-text{color:var(--error)}.spinner{display:inline-block;vertical-align:middle;width:10px;height:10px;border:1.5px solid var(--line);border-top-color:var(--accent);border-radius:50%;margin-right:7px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.composer{display:flex;align-items:flex-end;gap:7px;margin:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:8px}.composer:focus-within{border-color:var(--accent)}textarea{flex:1;min-width:0;background:transparent;border:0;outline:none!important;resize:none;line-height:1.5;font-size:12px;color:var(--ink);max-height:70px}textarea::placeholder{color:var(--muted)}.send{width:29px;height:29px;border:0;border-radius:6px;background:var(--accent);color:white;font-size:20px;line-height:1;flex-shrink:0}.footnote{font-size:9px;color:var(--muted);text-align:center;padding:4px 8px 6px;line-height:1.4}.status-detail{font-size:10px;padding:6px 12px;background:var(--soft);color:var(--muted);max-height:56px;overflow:auto}.error-bar,.review-bar{margin:0 10px 6px;border-radius:5px;background:var(--error-bg);color:var(--error);font-size:10px;padding:6px 8px;max-height:70px;overflow:auto}.review-bar{display:flex;align-items:center;justify-content:space-between;gap:5px}.review-bar button{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:4px;white-space:nowrap;font-size:10px;padding:3px 6px}.history-panel{position:absolute;z-index:3;right:8px;top:5px;width:min(290px,calc(100% - 16px));max-height:230px;border:1px solid var(--line);border-radius:8px;background:var(--bg);box-shadow:0 5px 18px #00000012;overflow:auto}.history-label{padding:7px 10px;font-size:10px;color:var(--muted);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}#chat-list{padding:4px}#chat-list button{width:100%;border:0;background:transparent;color:var(--ink);text-align:left;padding:7px 9px;border-radius:5px;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#chat-list button:hover,#chat-list button.active{background:var(--tint)}#chat-list p{margin:8px;color:var(--muted);font-size:11px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:380px){.topbar{padding:0 8px}.controls{gap:1px}.brand{gap:4px}.status{font-size:9px}.quiet{padding:4px;font-size:10px}.login-screen{padding:15px 12px}.login-fields{display:block}.login-fields label+label{margin-top:7px}.login-intro{margin-bottom:10px}.privacy{margin-top:8px}.footnote{font-size:8px}.messages{padding:10px}}
@media(prefers-color-scheme:dark){:root{--bg:#202323;--ink:#e7e9e9;--muted:#a0a7a5;--line:#373c3a;--soft:#262c2a;--accent:#73c5b5;--tint:#293c36;--error:#f1afa4;--error-bg:#392b28}.primary,.send{color:#163b32}}
@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
