*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#f5f5f5;--color-surface:#fff;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-text:#111827;--color-text-muted:#6b7280;--color-border:#e5e7eb;--color-error:#dc2626;--color-notify-error-bg:#7f1d1d;--color-notify-error-text:#fecaca;--color-notify-warn-bg:#9a3412;--color-notify-warn-text:#ffedd5;--color-notify-info-bg:#854d0e;--color-notify-info-text:#fef9c3;--color-user-bubble:#a16207;--color-user-bubble-text:#fffbeb;--color-assistant-bubble:#fef3c7;--color-assistant-bubble-text:#292524;--color-assistant-bubble-border:#d4c9a0;--color-header-bg:#fffef5;--color-chat-input-bg:#f7f7f6;--color-chat-input-border:#c9bc8c;--color-chat-input-focus:#efede7;--color-chat-send-bg:#fdb211;--color-chat-send-hover:#a08815;--color-chat-send-text:#fff;--color-chat-stop-bg:#d4c9a0;--radius:8px;--font:system-ui, -apple-system, sans-serif}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);height:100dvh;overflow:hidden}#root{height:100%}.chat-page{background:var(--color-surface);max-width:860px;height:100%;box-shadow:0 0 0 1px var(--color-border);flex-direction:column;margin:0 auto;display:flex}.chat-page__header{border-bottom:1px solid var(--color-border);background:var(--color-header-bg);flex-shrink:0;padding:12px 24px}.chat-page__header-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.chat-page__header-actions{flex-shrink:0}.chat-page__header-actions-inner{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.chat-page__header-btn{border-radius:var(--radius);border:1px solid var(--color-chat-input-border);min-width:108px;font-family:var(--font);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:var(--color-chat-send-bg);color:var(--color-chat-send-text);padding:8px 18px;font-size:.8rem;font-weight:600;transition:background .15s,opacity .15s}.chat-page__header-btn:hover:not(:disabled){background:var(--color-chat-send-hover)}.chat-page__header-btn:disabled{cursor:not-allowed;opacity:.75}.chat-page__header-btn--busy{cursor:wait}.chat-page__header-btn--temp-default{opacity:.92;cursor:pointer;color:#1c1917;background:linear-gradient(#fde68a 0%,#ca8a04 100%);border-color:#a16207;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s,opacity .18s}.chat-page__header-btn--temp-default:hover:not(:disabled){opacity:1;background:linear-gradient(#fef3c7 0%,#d97706 100%);border-color:#b45309;transform:translateY(-1px);box-shadow:0 2px 10px #b4530959}.chat-page__header-btn--temp-default:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #b4530947}.chat-page__header-btn--outline{background:var(--color-surface);color:var(--color-text);border-color:var(--color-chat-input-border)}.chat-page__header-btn--outline:hover:not(:disabled){background:var(--color-chat-input-bg);border-color:#a08815}.chat-page__brand{flex:1;align-items:center;min-width:0;min-height:40px;display:flex}.notification-bar{text-align:center;border-bottom:1px solid #0000000f;flex-shrink:0;padding:10px 24px;font-size:.875rem;font-weight:500;line-height:1.45}.notification-bar--error{background:var(--color-notify-error-bg);color:var(--color-notify-error-text)}.notification-bar--warning{background:var(--color-notify-warn-bg);color:var(--color-notify-warn-text)}.notification-bar--info{background:var(--color-notify-info-bg);color:var(--color-notify-info-text)}.chat-page__logo{object-fit:contain;object-position:left center;width:auto;max-width:min(100%,280px);height:40px;display:block}.chat-page__body{flex-direction:column;flex:1;gap:8px;padding:24px;display:flex;overflow-y:auto}.chat-page__footer{border-top:1px solid var(--color-border);flex-shrink:0;padding:16px 24px}.login-dialog{z-index:1000;background:#11182773;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.login-dialog__panel{border-radius:var(--radius);background:var(--color-surface);border:1px solid var(--color-border);width:100%;max-width:400px;padding:24px;box-shadow:0 12px 40px #0000001f}.login-dialog__form{flex-direction:column;gap:6px;display:flex}.login-dialog__label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-top:4px;font-size:.75rem;font-weight:600}.login-dialog__label:first-of-type{margin-top:0}.login-dialog__input{border:1px solid var(--color-chat-input-border);border-radius:var(--radius);width:100%;font-family:var(--font);color:var(--color-text);background:var(--color-chat-input-bg);outline:none;padding:10px 14px;font-size:.95rem;transition:border-color .15s}.login-dialog__input:focus{border-color:var(--color-chat-input-focus)}.login-dialog__input:disabled{opacity:.65;cursor:not-allowed}.login-dialog__actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.login-dialog__btn{border-radius:var(--radius);border:1px solid var(--color-chat-input-border);min-width:100px;font-family:var(--font);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;padding:8px 18px;font-size:.8rem;font-weight:600;transition:background .15s,opacity .15s}.login-dialog__btn:disabled{cursor:not-allowed;opacity:.75}.login-dialog__btn--secondary{background:var(--color-surface);color:var(--color-text)}.login-dialog__btn--secondary:hover:not(:disabled){background:var(--color-chat-input-bg)}.login-dialog__btn--primary{background:var(--color-chat-send-bg);color:var(--color-chat-send-text);border-color:var(--color-chat-input-border)}.login-dialog__btn--primary:hover:not(:disabled){background:var(--color-chat-send-hover)}.message-list{flex-direction:column;gap:16px;display:flex}.message-list--empty{color:var(--color-text-muted);flex:1;justify-content:center;align-items:center;font-size:.95rem}.message-item{flex-direction:column;gap:4px;max-width:78%;display:flex}.message-item--user{align-self:flex-end;align-items:flex-end}.message-item--assistant{align-self:flex-start;align-items:flex-start}.message-item__role{text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.message-item--user .message-item__role{color:#92400e}.message-item--assistant .message-item__role{color:#78716c;text-transform:none;letter-spacing:normal}.message-item__content{border-radius:var(--radius);word-break:break-word;padding:10px 14px;line-height:1.6}.message-item--user .message-item__content{white-space:pre-wrap;background:var(--color-user-bubble);color:var(--color-user-bubble-text);border-bottom-right-radius:2px;box-shadow:0 1px #0000000f}.message-item__plain{margin:0}.message-item--assistant .message-item__content{white-space:normal;background:var(--color-assistant-bubble);color:var(--color-assistant-bubble-text);border:1px solid var(--color-assistant-bubble-border);border-bottom-left-radius:2px;box-shadow:0 1px #0000000a}.message-item__streaming{white-space:pre-wrap;word-break:break-word;margin:0;font-size:.95rem}.message-item__loading{align-items:center;gap:4px;min-height:1.25em;display:inline-flex}.message-item__loading-dot{opacity:.35;background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite message-loading-dot}.message-item__loading-dot:nth-child(2){animation-delay:.15s}.message-item__loading-dot:nth-child(3){animation-delay:.3s}@keyframes message-loading-dot{0%,80%,to{opacity:.25;transform:scale(.9)}40%{opacity:1;transform:scale(1)}}.message-item__markdown{font-size:.95rem}.message-item__markdown>:first-child{margin-top:0}.message-item__markdown>:last-child{margin-bottom:0}.message-item__markdown p{margin:.5em 0}.message-item__markdown h1,.message-item__markdown h2,.message-item__markdown h3,.message-item__markdown h4{margin:.65em 0 .35em;font-weight:700;line-height:1.3}.message-item__markdown h1{font-size:1.2em}.message-item__markdown h2{font-size:1.1em}.message-item__markdown h3,.message-item__markdown h4{font-size:1.02em}.message-item__markdown ul,.message-item__markdown ol{margin:.45em 0;padding-left:1.35em}.message-item__markdown li{margin:.2em 0}.message-item__markdown pre{background:#0000000f;border-radius:6px;margin:.5em 0;padding:.55em .7em;font-size:.88em;overflow-x:auto}.message-item__markdown code{font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.9em}.message-item__markdown pre code{font-size:inherit;background:0 0;padding:0}.message-item__markdown p code,.message-item__markdown li code,.message-item__markdown td code{background:#00000012;border-radius:4px;padding:.1em .35em}.message-item__markdown blockquote{color:var(--color-text-muted);border-left:3px solid #0000002e;margin:.5em 0;padding-left:.75em}.message-item__markdown table{border-collapse:collapse;width:100%;margin:.5em 0;font-size:.92em}.message-item__markdown th,.message-item__markdown td{border:1px solid var(--color-assistant-bubble-border);text-align:left;padding:.35em .5em}.message-item__markdown th{background:#0000000a;font-weight:600}.message-item__markdown hr{border:none;border-top:1px solid var(--color-assistant-bubble-border);margin:.75em 0}.message-item__markdown img{border-radius:4px;max-width:100%;height:auto}.message-item__cursor{vertical-align:text-bottom;background:currentColor;width:2px;height:1em;margin-left:2px;animation:1s step-start infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.message-item__error{color:var(--color-error);font-size:.8rem}.chat-input{align-items:stretch;gap:8px;display:flex}.chat-input__textarea{resize:none;border:1px solid var(--color-chat-input-border);border-radius:var(--radius);min-height:0;font-family:var(--font);color:var(--color-text);background:var(--color-chat-input-bg);outline:none;flex:1;padding:10px 14px;font-size:.95rem;line-height:1.5;transition:border-color .15s}.chat-input__textarea:focus{border-color:var(--color-chat-input-focus)}.chat-input__textarea:disabled{opacity:.6;cursor:not-allowed}.chat-input__actions{flex-direction:column;flex-shrink:0;align-self:stretch;gap:6px;display:flex}.chat-input__btn{border:1px solid var(--color-chat-input-border);border-radius:var(--radius);cursor:pointer;padding:0 18px;font-size:.9rem;font-weight:500;transition:background .15s,opacity .15s,border-color .15s}.chat-input__btn--send{text-transform:uppercase;letter-spacing:.06em;background:var(--color-chat-send-bg);min-height:0;color:var(--color-chat-send-text);flex:1;justify-content:center;align-items:center;font-weight:600;display:flex}.chat-input__btn--send:hover:not(:disabled){background:var(--color-chat-send-hover)}.chat-input__btn--send:disabled{opacity:.5;cursor:not-allowed}.chat-input__btn--cancel{text-transform:uppercase;letter-spacing:.06em;background:var(--color-chat-stop-bg);color:var(--color-chat-send-text);flex-shrink:0;padding:8px 18px;font-weight:600}.chat-input__btn--cancel:hover{background:#c4b88a}
