:root{--ink: #1c2b29;--ink-soft: #4a5c58;--ink-faint: #7a8a86;--paper: #f7f9f8;--surface: #ffffff;--mist: #e3edea;--line: #d5e0dc;--primary: #2d8b7a;--primary-deep: #1f5f54;--primary-soft: #dceee9;--ochre: #a86f2c;--ochre-deep: #7c4f18;--ochre-soft: #f3e6d2;--danger: #a34040;--danger-soft: #f6e4e4;--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 3px rgba(28, 43, 41, .08);--font-sans: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--font-serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}button:focus-visible,textarea:focus-visible,[role=tab]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.disclaimer{background:var(--ochre);color:#fff9ef;padding:10px 20px;font-size:13.5px;letter-spacing:.02em;display:flex;align-items:center;gap:10px}.disclaimer strong{font-family:var(--font-serif);font-size:15px;letter-spacing:.06em;flex:none}.disclaimer:before{content:"";width:8px;height:8px;background:#fff9ef;flex:none;transform:rotate(45deg)}.shell{display:grid;grid-template-columns:264px minmax(0,1fr);height:calc(100% - 41px)}.rail{border-right:1px solid var(--line);background:var(--surface);padding:20px 16px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.brand{padding:0 4px}.brand h1{font-family:var(--font-serif);font-size:21px;font-weight:700;margin:0;letter-spacing:.04em}.brand p{margin:4px 0 0;color:var(--ink-faint);font-size:12.5px}.main{display:flex;flex-direction:column;min-width:0;height:100%}.main-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px 0}.tabs{display:flex;gap:4px;background:var(--mist);border-radius:999px;padding:3px}.tabs [role=tab]{padding:5px 18px;border-radius:999px;font-size:13.5px;color:var(--ink-soft)}.tabs [role=tab][aria-selected=true]{background:var(--surface);color:var(--primary-deep);font-weight:600;box-shadow:var(--shadow)}.session-note{color:var(--ink-faint);font-size:12px}.rail h2{font-family:var(--font-serif);font-size:14px;letter-spacing:.08em;color:var(--ink-soft);margin:0 0 8px;padding:0 4px}.persona{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:var(--radius);border:1px solid transparent;margin-bottom:6px;transition:background .15s ease}.persona:hover{background:var(--paper)}.persona[aria-pressed=true]{background:var(--primary-soft);border-color:var(--primary)}.persona .row{display:flex;align-items:center;gap:8px}.persona .name{font-weight:600;font-size:14.5px}.persona .meta{color:var(--ink-soft);font-size:12px;margin-top:2px}.persona .tag{color:var(--ink-faint);font-size:11.5px;margin-top:2px}.badge-demo{flex:none;font-size:10.5px;color:var(--ochre-deep);background:var(--ochre-soft);border:1px solid var(--ochre);border-radius:3px;padding:0 5px;letter-spacing:.1em}.rail-foot{margin-top:auto;color:var(--ink-faint);font-size:11.5px;line-height:1.8;padding:12px 4px 0;border-top:1px solid var(--line)}.chat{flex:1;display:flex;flex-direction:column;min-height:0}.freshness{display:flex;align-items:center;gap:8px;padding:8px 24px;color:var(--ink-faint);font-size:12px;border-bottom:1px dashed var(--line)}.freshness .dot{width:7px;height:7px;border-radius:50%;background:var(--ochre);flex:none}.msgs{flex:1;overflow-y:auto;padding:20px 24px 8px;display:flex;flex-direction:column;gap:16px}.empty-chat{margin:auto;text-align:center;color:var(--ink-faint);max-width:30rem}.empty-chat h3{font-family:var(--font-serif);color:var(--ink-soft);font-size:17px;margin:0 0 6px}.msg{max-width:46rem;animation:rise .18s ease}@keyframes rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.msg{animation:none}}.msg.user{align-self:flex-end;background:var(--primary);color:#f2faf8;padding:10px 16px;border-radius:var(--radius) var(--radius) 4px var(--radius);white-space:pre-wrap}.msg.assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius) var(--radius) var(--radius) 4px;padding:12px 16px;box-shadow:var(--shadow);min-width:12rem}.msg .thinking{color:var(--ink-faint);font-size:13px;border-left:2px solid var(--line);padding-left:10px;margin-bottom:8px;white-space:pre-wrap}.msg .thinking:after{content:"▍";color:var(--primary);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.tool-chip{display:inline-flex;align-items:center;gap:6px;background:var(--mist);color:var(--primary-deep);border-radius:999px;padding:2px 12px 2px 8px;font-size:12.5px;margin-bottom:8px}.tool-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--primary);flex:none}.tool-chip.running .dot{animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}.md-body>:first-child{margin-top:0}.md-body>:last-child{margin-bottom:0}.md-body table{border-collapse:collapse;margin:8px 0;font-size:13.5px;width:100%}.md-body th,.md-body td{border:1px solid var(--line);padding:5px 10px;text-align:left}.md-body th{background:var(--mist);font-weight:600}.md-body code{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:0 4px;font-size:.9em}.md-body pre{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;overflow-x:auto}.md-body pre code{border:none;background:none;padding:0}.msg-foot{display:flex;gap:14px;margin-top:8px;color:var(--ink-faint);font-size:11.5px}.msg-foot .error-text{color:var(--danger)}.composer-wrap{padding:10px 24px 18px;border-top:1px solid var(--line);background:var(--paper)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.chips button{border:1px solid var(--line);background:var(--surface);color:var(--primary-deep);border-radius:999px;padding:4px 14px;font-size:13px;transition:border-color .15s ease}.chips button:hover{border-color:var(--primary)}.composer{display:flex;gap:10px;align-items:flex-end;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;box-shadow:var(--shadow)}.composer:focus-within{border-color:var(--primary)}.composer textarea{flex:1;border:none;resize:none;outline:none;font:inherit;max-height:8rem;background:transparent;color:inherit}.btn-primary{background:var(--primary);color:#f2faf8;border-radius:var(--radius-sm);padding:7px 20px;font-weight:600;flex:none}.btn-primary:hover{background:var(--primary-deep)}.btn-primary:disabled{opacity:.45;cursor:default}.btn-quiet{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);padding:6px 14px;color:var(--ink-soft);flex:none}.btn-quiet:hover{border-color:var(--primary);color:var(--primary-deep)}.btn-danger{border:1px solid var(--danger);color:var(--danger);background:var(--surface);border-radius:var(--radius-sm);padding:6px 14px}.btn-danger:hover{background:var(--danger-soft)}.panel{flex:1;overflow-y:auto;padding:20px 24px 32px}.panel>h2{font-family:var(--font-serif);font-size:18px;margin:0 0 4px}.panel>.lead{color:var(--ink-soft);font-size:13px;margin:0 0 16px;max-width:42rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px;margin-bottom:14px;box-shadow:var(--shadow);max-width:52rem}.card h3{font-family:var(--font-serif);font-size:15px;margin:0 0 10px;color:var(--primary-deep)}.card table{border-collapse:collapse;width:100%;font-size:13.5px}.card th,.card td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left}.card th{color:var(--ink-soft);font-weight:600;white-space:nowrap}.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;font-size:13.5px}.kv dt{color:var(--ink-soft)}.kv dd{margin:0}.mem-head{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:52rem;margin-bottom:12px}.switch{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-soft)}.switch input{width:18px;height:18px;accent-color:var(--primary)}.mem-item{display:flex;gap:12px;align-items:flex-start}.mem-item .content{flex:1}.mem-item .time{color:var(--ink-faint);font-size:11.5px;margin-top:4px}.mem-item textarea{width:100%;font:inherit;border:1px solid var(--primary);border-radius:var(--radius-sm);padding:8px 10px;resize:vertical;min-height:4.5rem}.mem-actions{display:flex;flex-direction:column;gap:6px;flex:none}.mem-actions button{font-size:12.5px;padding:3px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-soft)}.mem-actions button:hover{border-color:var(--primary);color:var(--primary-deep)}.pager{display:flex;gap:10px;align-items:center;margin-top:12px;color:var(--ink-soft);font-size:13px}.notice{background:var(--ochre-soft);border:1px solid var(--ochre);color:var(--ochre-deep);border-radius:var(--radius-sm);padding:8px 14px;font-size:13px;max-width:52rem;margin-bottom:12px}.notice.error{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}@media(max-width:900px){.shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:auto;min-height:calc(100% - 41px)}.rail{border-right:none;border-bottom:1px solid var(--line);padding:12px 14px;gap:10px;overflow:visible}.rail .brand{display:flex;align-items:baseline;gap:10px}.rail .brand p{margin:0}.persona-list{display:flex;gap:8px;overflow-x:auto}.persona{min-width:11rem;margin-bottom:0}.rail-foot{display:none}.msgs,.composer-wrap,.panel,.freshness{padding-left:14px;padding-right:14px}}
