:root {--paper:#f7f8f4;--white:#fff;--ink:#203b34;--muted:#737e76;--line:#dfe5dd;--green:#315e4b;--pale:#eaf0e7}
* {box-sizing:border-box}
body {margin:0;background:var(--paper);color:var(--ink);font-family:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:15px}
button, input, textarea {font:inherit}
button, a {-webkit-tap-highlight-color:transparent}
button {cursor:pointer}
a {color:var(--green)}
button:disabled {opacity:.45;cursor:not-allowed}
button:focus-visible, a:focus-visible {outline:3px solid #94b99f;outline-offset:4px}
.topbar {height:90px;margin:0 auto;max-width:1320px;padding:0 48px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}
.brand {display:flex;align-items:center;gap:13px;text-decoration:none;font-size:19px;font-weight:650;letter-spacing:1px}
.brand-sub {text-align:center;display:block;font-size:11px;letter-spacing:3px;color:var(--muted);font-weight:400;margin-top:4px}
.seal {width:43px;height:43px;display:grid;place-items:center;background:var(--green);color:#f6f4eb;border-radius:10px;font-family:serif;font-size:26px;font-weight:400}
.top-actions {display:flex;align-items:center;gap:26px}
.home-link {font-size:12px;text-decoration:none;color:var(--muted)}
.outline {background:transparent;border:1px solid var(--line);color:var(--ink);padding:10px 15px;border-radius:8px;font-size:13px}
.outline:hover {background:var(--pale)}
.dot {display:inline-block;width:6px;height:6px;background:#a5afa7;border-radius:50%;margin-left:7px}
.dot.connected {background:#4f916a}
.layout {display:block;max-width:880px;margin:0 auto;padding:26px 40px 0}
.conversation {min-width:0;display:flex;flex-direction:column;min-height:calc(100dvh - 116px)}
.welcome {padding:54px 0 36px;width:100%;max-width:680px;margin:auto;text-align:center}
h1 {font-family:"Noto Serif SC","Songti SC",SimSun,serif;font-size:clamp(38px,4.2vw,57px);font-weight:500;letter-spacing:2px;line-height:1.35;margin:23px 0}
h1 span {color:var(--green)}
.intro {font-size:15px;line-height:2;color:var(--muted);margin:0 0 30px}
.suggestions {display:flex;flex-direction:column;gap:10px;max-width:520px;margin:0 auto}
.suggestions button {display:flex;align-items:center;gap:17px;border:1px solid var(--line);background:rgba(255,255,255,.6);color:var(--ink);border-radius:9px;padding:16px 19px;font-size:14px;text-align:left;transition:background .15s,border-color .15s}
.suggestions button:hover {background:var(--white);border-color:#a3b3a5}
.suggestions button span:first-child {font-size:10px;font-family:monospace;color:#97a297}
.suggestions button span:last-child {margin-left:auto;color:#849489}
.composer-wrap {position:sticky;bottom:0;margin-top:auto;background:var(--paper);padding:16px 0 22px;z-index:2}
.status {text-align:center;font-size:12px;color:var(--muted);min-height:18px;margin:0 0 10px;line-height:1.6}
.composer {display:flex;align-items:flex-end;gap:12px;padding:17px 17px 17px 20px;border:1px solid #cfd9cc;border-radius:14px;background:#fff;box-shadow:0 5px 20px #25483207}
.composer:focus-within {border-color:#759981;box-shadow:0 0 0 3px #e8eee5}
textarea {resize:none;border:0;outline:0;background:transparent;flex:1;min-width:0;max-height:160px;line-height:1.7;color:var(--ink)}
textarea::placeholder {color:#96a194}
.send {width:40px;height:40px;border-radius:10px;border:0;background:var(--green);color:#fff;font-size:23px;flex-shrink:0}
.send:hover {background:#244c3b}
.composer-note {font-size:10px;color:#8b968b;margin:11px 2px 0;display:flex;justify-content:space-between;gap:10px}
h2 {font-size:16px;font-weight:600;margin:0 0 10px}
.messages {padding:20px 0;display:flex;flex-direction:column;gap:26px}
.message {min-width:0;scroll-margin-top:20px}
.message-label {font-size:10px;letter-spacing:1.7px;color:var(--muted);margin-bottom:10px}
.message.user {align-self:flex-end;max-width:90%;background:var(--pale);border-radius:12px 12px 2px 12px;padding:15px 19px}
.message.user .message-body {white-space:pre-wrap;line-height:1.8;font-size:14px}
.message.assistant {padding:0 0 18px;border-bottom:1px solid var(--line)}
.message-body {font-size:14px;line-height:1.95;overflow-wrap:anywhere}
.message-body p {margin:9px 0}
.message-body h3 {font-size:15px;font-weight:600;margin:17px 0 8px}
.message-body pre {background:#edf1e9;padding:12px;border-radius:5px;overflow:auto;font-family:"Segoe UI",sans-serif;white-space:pre-wrap}
.message-body code {font-family:"Segoe UI",sans-serif;color:#315d49;background:#edf1e9;padding:1px 4px;border-radius:3px}
.table-wrap {overflow-x:auto;max-width:100%;margin:12px 0}
table {border-collapse:collapse;min-width:100%;font-size:12px;line-height:1.7}
th, td {border:1px solid var(--line);padding:8px 10px;text-align:left;white-space:normal}
th {background:var(--pale);font-weight:500}
.message-error {font-size:12px;line-height:1.8;color:#986340;background:#faf0e6;border-radius:6px;padding:10px;margin:10px 0}
.streaming {white-space:pre-wrap}
.hidden {display:none!important}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
dialog {border:1px solid var(--line);border-radius:16px;padding:27px;max-width:450px;width:calc(100% - 32px);color:var(--ink);box-shadow:0 24px 80px #183a3324;background:var(--paper)}
dialog::backdrop {background:#243d3659;backdrop-filter:blur(3px)}
.dialog-heading {display:flex;justify-content:space-between;align-items:center;gap:20px}
.dialog-heading h2 {font-size:20px;margin:0}
.icon-button {border:0;background:transparent;font-size:24px;color:var(--muted)}
dialog p {font-size:13px;line-height:1.9;color:var(--muted)}
dialog label {display:block;font-size:12px;margin:18px 0 7px}
dialog input {width:100%;border:1px solid var(--line);border-radius:7px;background:#fff;padding:12px;color:var(--ink)}
dialog input:focus {outline:2px solid #759981}
dialog .privacy-note {font-size:11px}
dialog a {font-size:12px}
.dialog-actions {display:flex;justify-content:space-between;gap:12px;margin-top:25px}
.primary {border:0;border-radius:7px;background:var(--green);color:white;padding:11px 18px;font-size:13px}
@media(min-width:1500px) {
  .welcome {padding-top:95px;padding-bottom:75px}
}
@media(max-width:920px) {
  .topbar {padding:0 25px}
  .composer-note span {display:none}
}
@media(max-width:700px) {
  .topbar {height:76px;padding:0 18px}
  .brand {font-size:16px;gap:9px}
  .seal {width:36px;height:36px;font-size:23px}
  .top-actions {gap:12px}
  .home-link {display:inline;font-size:11px}
  .outline {padding:9px 11px;font-size:12px}
  .layout {padding:0 18px}
  .conversation {min-height:calc(100dvh - 76px)}
  .welcome {padding:40px 0 24px}
  .intro {font-size:14px}
  .suggestions {max-width:100%}
  .composer-wrap {padding-top:12px;padding-bottom:16px}
  .composer-note {font-size:9px}
  .messages {padding-top:28px}
  .composer {padding:13px}
  .message.user {max-width:95%}
  h1 {font-size:41px}
}
@media(prefers-reduced-motion:reduce) {
  * {scroll-behavior:auto!important;transition:none!important}
}

.connection-choice {border:1px solid var(--line);border-radius:8px;margin:20px 0 0;padding:12px;display:flex;flex-wrap:wrap;gap:12px}
.connection-choice legend {font-size:12px;padding:0 5px}
.connection-choice label {display:flex;align-items:center;gap:7px;margin:0;font-size:12px;cursor:pointer}
.connection-choice input {width:auto;margin:0;accent-color:var(--green)}
@media(max-width:420px) {.top-actions {gap:8px}.topbar {padding:0 12px}.brand {font-size:14px;gap:6px}.seal {width:30px;height:30px;font-size:20px}.top-actions .outline {padding:8px}.home-link {font-size:10px}}
