:root{--bg: #ffffff;--bg-soft: #f5f5f5;--bg-hover: #f0f0f0;--ink: #1a1a1a;--ink-muted: #8a8a8a;--line: #ebebeb;--accent: #2f6bff;--accent-hover: #1f57e6;--danger: #d64545;--sidebar-w: 248px;--font-display: "Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-body: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--radius-lg: 16px;--radius-md: 12px;--radius-sm: 10px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;color:var(--ink);font-family:var(--font-body);background:var(--bg);-webkit-font-smoothing:antialiased}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.app-shell{display:flex;flex-direction:column;height:100%;min-height:100vh;background:var(--bg);animation:shell-in .45s ease-out both}@keyframes shell-in{0%{opacity:0}to{opacity:1}}.app-header{flex-shrink:0;height:56px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2}.app-header-brand{display:flex;align-items:center;gap:10px;min-width:0}.app-header-mark{width:32px;height:32px;border-radius:9px;background:linear-gradient(145deg,#4b82ff,#2f6bff 55%,#1f57e6);color:#fff;font-family:var(--font-display);font-weight:700;font-size:15px;display:grid;place-items:center;flex-shrink:0}.app-header-text{min-width:0;display:flex;flex-direction:column;gap:1px}.app-header-title{margin:0;font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--ink);line-height:1.2}.app-header-sub{margin:0;font-size:12px;color:var(--ink-muted);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.app-body{flex:1;min-height:0;display:flex}.sidebar{width:var(--sidebar-w);flex-shrink:0;border-right:1px solid var(--line);padding:16px 14px;display:flex;flex-direction:column;gap:14px;background:var(--bg)}.new-chat-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--ink);font:inherit;font-weight:600;font-size:15px;display:flex;align-items:center;gap:8px;padding:8px 6px;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background .18s ease}.new-chat-btn:hover{background:var(--bg-soft)}.new-chat-plus{font-size:18px;line-height:1;font-weight:500}.session-list{display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1;min-height:0}.session-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;text-align:left;padding:10px;border-radius:var(--radius-sm);cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:background .18s ease;border-bottom:1px solid transparent}.session-item+.session-item{border-top:1px solid var(--line);border-radius:0;margin-top:0}.session-item:hover,.session-item.active{background:var(--bg-soft)}.session-title{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-sub{font-size:12px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-pane{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;background:radial-gradient(ellipse 70% 45% at 50% 0%,rgba(47,107,255,.04),transparent 60%),var(--bg)}.welcome{margin:0 auto;width:min(70%,calc(100% - 48px));max-width:none;display:flex;flex-direction:column;align-items:center;gap:28px;padding:48px 0 64px;animation:rise-in .55s ease-out both}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.welcome-title{margin:0;font-family:var(--font-display);font-weight:700;font-size:clamp(1.35rem,2.6vw,1.75rem);letter-spacing:.02em;text-align:center;color:var(--ink);animation:title-in .7s ease-out both}@keyframes title-in{0%{opacity:0;letter-spacing:.08em}to{opacity:1;letter-spacing:.02em}}.composer{width:100%;background:var(--bg-soft);border-radius:var(--radius-lg);padding:16px 16px 12px;display:flex;flex-direction:column;gap:10px;border:1px solid transparent;transition:border-color .2s ease,box-shadow .2s ease;animation:rise-in .65s ease-out .06s both}.composer:focus-within{border-color:#2f6bff47;box-shadow:0 0 0 3px #2f6bff14}.composer.compact{border-radius:var(--radius-md);padding:12px 14px 10px;animation:none}.composer textarea{width:100%;border:none;outline:none;resize:none;background:transparent;font:inherit;font-size:15px;line-height:1.55;color:var(--ink);min-height:4.5rem;max-height:10rem}.composer.compact textarea{min-height:2.8rem}.composer textarea::placeholder{color:#b0b0b0}.composer textarea:disabled{opacity:.6}.composer-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}.icon-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:#9a9a9a;width:36px;height:36px;border-radius:8px;display:grid;place-items:center;cursor:pointer;transition:color .15s ease,background .15s ease}.icon-btn:hover:not(:disabled){color:var(--ink);background:#0000000a}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.send-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .15s ease,transform .15s ease}.send-btn:hover:not(:disabled){background:var(--accent-hover)}.send-btn:active:not(:disabled){transform:scale(.96)}.send-btn:disabled{opacity:.4;cursor:not-allowed}.quick-row{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;animation:rise-in .75s ease-out .12s both}.quick-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:var(--bg-soft);border-radius:var(--radius-md);padding:14px 12px;display:flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:13px;font-weight:500;color:#555;cursor:pointer;transition:background .18s ease,transform .18s ease;min-height:52px}.quick-card:hover:not(:disabled){background:var(--bg-hover);transform:translateY(-1px)}.quick-card:disabled{opacity:.5;cursor:not-allowed}.quick-icon{width:16px;height:16px;color:#7a7a7a;flex-shrink:0}.chat-view{flex:1;align-self:center;min-height:0;width:min(70%,calc(100% - 48px));max-width:none;display:flex;flex-direction:column;margin:0 auto;padding:16px 0 24px;gap:12px}.main-pane:has(.chat-view){justify-content:flex-start}.text-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--bg);color:var(--ink-muted);border-radius:999px;padding:6px 12px;font:inherit;font-size:12px;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.text-btn:hover{color:var(--ink);border-color:#ccc;background:var(--bg-soft)}.chat-messages{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding:8px 4px 16px}.bubble{display:flex;flex-direction:column;gap:6px;max-width:88%;animation:bubble-in .3s ease-out both}@keyframes bubble-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.bubble.user{align-self:flex-end;text-align:right}.bubble.assistant{align-self:flex-start}.bubble-role{font-size:12px;color:var(--ink-muted)}.bubble-body{white-space:pre-wrap;word-break:break-word;line-height:1.6;font-size:15px;padding:12px 14px;border-radius:14px}.bubble.user .bubble-body{background:#eef3ff;color:var(--ink)}.bubble.assistant .bubble-body{background:var(--bg-soft);text-align:left;white-space:normal}.bubble.streaming .bubble-body:after{content:"|";margin-left:2px;color:var(--accent);animation:blink 1s steps(1) infinite}.md-body{font-size:15px;line-height:1.65}.md-body>:first-child{margin-top:0}.md-body>:last-child{margin-bottom:0}.md-body p{margin:.55em 0}.md-body h1,.md-body h2,.md-body h3,.md-body h4{margin:.9em 0 .4em;font-weight:650;line-height:1.35}.md-body h1{font-size:1.25em}.md-body h2{font-size:1.12em}.md-body h3{font-size:1.05em}.md-body ul,.md-body ol{margin:.45em 0;padding-left:1.35em}.md-body li{margin:.2em 0}.md-body li>p{margin:.15em 0}.md-body strong{font-weight:650}.md-body a{color:var(--accent);text-decoration:none}.md-body a:hover{text-decoration:underline}.md-body blockquote{margin:.55em 0;padding:.2em 0 .2em .85em;border-left:3px solid #d0d7e8;color:#555}.md-body code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.9em;background:#0000000f;padding:.1em .35em;border-radius:4px}.md-body pre{margin:.65em 0;padding:.85em 1em;overflow-x:auto;background:#1e2430;color:#e8edf5;border-radius:10px}.md-body pre code{background:transparent;padding:0;color:inherit;font-size:.88em}.md-body table{width:100%;border-collapse:collapse;margin:.65em 0;font-size:.92em}.md-body th,.md-body td{border:1px solid #e2e2e2;padding:.4em .65em;text-align:left}.md-body th{background:#00000008;font-weight:600}.md-body hr{border:none;border-top:1px solid var(--line);margin:.9em 0}@keyframes blink{50%{opacity:0}}.chat-error,.chat-tip{position:absolute;left:50%;bottom:12px;transform:translate(-50%);margin:0;font-size:13px;padding:8px 14px;border-radius:999px;background:#fff;box-shadow:0 4px 20px #00000014;z-index:2}.chat-error{color:var(--danger)}.chat-tip{color:var(--ink-muted)}@media (max-width: 820px){.quick-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 720px){.app-header{padding:0 14px;height:52px}.app-header-sub{display:none}.app-body{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--line);max-height:38vh;padding-bottom:8px}.welcome{width:min(100%,calc(100% - 28px));padding-top:28px}.chat-view{width:min(100%,calc(100% - 28px))}}
