:root{--ink: #14201a;--ink-soft: #3d4f45;--muted: #6b7c72;--line: #d5ddd7;--paper: #f7f4ee;--panel: #fffcf7;--sidebar: #101a15;--sidebar-text: #d7e2db;--sidebar-muted: #8fa399;--accent: #0f6b4c;--accent-deep: #0a4d38;--accent-soft: #e4f3ec;--danger: #a33b3b;--running: #2c5f8a;--shadow: 0 12px 40px rgba(16, 26, 21, .08);--radius: 16px;--font-sans: "IBM Plex Sans", "PingFang SC", "Hiragino Sans GB", sans-serif;--font-display: "Source Serif 4", "Songti SC", Georgia, serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:var(--font-sans);color:var(--ink);background:var(--paper)}button,textarea{font:inherit}button{cursor:pointer}.layout{display:grid;grid-template-columns:280px 1fr;height:100%;min-height:100vh}.layout.sidebar-collapsed{grid-template-columns:0 1fr}.layout.sidebar-collapsed .sidebar{overflow:hidden;border:none;padding:0;opacity:0;pointer-events:none}.sidebar{background:radial-gradient(800px 400px at 0% 0%,rgba(34,120,88,.35),transparent 55%),linear-gradient(180deg,#15241d 0%,var(--sidebar) 55%);color:var(--sidebar-text);padding:22px 16px 18px;display:flex;flex-direction:column;gap:14px;border-right:1px solid #1e2e26;transition:opacity .2s ease}.sidebar-brand{padding:4px 8px 8px}.brand-mark{font-family:var(--font-display);font-size:1.85rem;font-weight:600;letter-spacing:-.03em;color:#f4faf6}.brand-tag{margin:4px 0 0;color:var(--sidebar-muted);font-size:.85rem}.new-chat-btn{border:1px solid rgba(215,226,219,.22);background:#ffffff0f;color:#f2f8f4;border-radius:12px;padding:12px 14px;font-weight:600;text-align:left;transition:background .15s ease,border-color .15s ease}.new-chat-btn:hover:not(:disabled){background:#ffffff1a;border-color:#d7e2db66}.new-chat-btn:disabled{opacity:.5;cursor:not-allowed}.history-label{margin-top:8px;padding:0 8px;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--sidebar-muted)}.history-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding-right:2px}.history-empty{padding:12px 8px;color:var(--sidebar-muted);font-size:.88rem}.history-item{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;width:100%;border:none;background:transparent;color:inherit;text-align:left;border-radius:10px;padding:10px;cursor:pointer}.history-item:hover{background:#ffffff0f}.history-item.active{background:#0f6b4c59}.history-item.running{background:#2c5f8a38}.history-item.running.active{background:#0f6b4c66}.history-item-main{min-width:0;display:flex;flex-direction:column;gap:2px}.history-title{font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;gap:8px}.running-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:#7ec8ff;box-shadow:0 0 #7ec8ffb3;animation:running-pulse 1.4s ease-out infinite}@keyframes running-pulse{0%{transform:scale(.9);box-shadow:0 0 #7ec8ff8c}70%{transform:scale(1);box-shadow:0 0 0 8px #7ec8ff00}to{transform:scale(.9);box-shadow:0 0 #7ec8ff00}}.history-time{font-size:.75rem;color:var(--sidebar-muted)}.history-delete{font-size:.72rem;color:var(--sidebar-muted);opacity:0;padding:4px 6px;border-radius:6px;border:none;background:transparent;cursor:pointer}.history-item:hover .history-delete,.history-item.active .history-delete{opacity:1}.history-delete:hover{color:#f3d4d4;background:#a33b3b40}.main-column{display:grid;grid-template-rows:auto 1fr;min-width:0;min-height:0;height:100%;background:radial-gradient(900px 500px at 85% -10%,#dceee4 0%,transparent 50%),linear-gradient(180deg,#f3efe6 0%,var(--paper) 40%)}.topbar{display:flex;align-items:center;gap:12px;padding:14px 16px 14px 10px;border-bottom:1px solid var(--line);background:#fffcf7bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.model-picker{margin-left:auto;display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.82rem}.model-picker select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;padding:8px 28px 8px 12px;font-size:.86rem;background-image:linear-gradient(45deg,transparent 50%,#6b7c72 50%),linear-gradient(135deg,#6b7c72 50%,transparent 50%);background-position:calc(100% - 14px) 55%,calc(100% - 9px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;max-width:220px}.model-picker select:disabled{opacity:.55}.icon-btn{border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);border-radius:10px;padding:8px 12px;font-size:.85rem}.topbar-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:none;background:transparent;padding:4px 8px;border-radius:8px;display:inline-flex;align-items:center;gap:8px;max-width:min(520px,70vw);text-align:left;transition:background .15s ease}.topbar-title:hover{background:#0f6b4c14}.edit-hint{font-family:var(--font-sans);font-size:.72rem;font-weight:500;color:var(--muted);opacity:0;transition:opacity .15s ease}.topbar-title:hover .edit-hint{opacity:1}.topbar-title-input{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--ink);border:1px solid #9fbfad;background:#fff;border-radius:8px;padding:6px 10px;min-width:min(420px,60vw);outline:none;box-shadow:0 0 0 3px #0f6b4c1f;animation:fade-in .18s ease both}.chat-panel{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;height:100%;width:100%;margin:0;padding:12px 16px 16px 10px;gap:12px}.messages{overflow-y:auto;min-height:0;padding:20px 16px 18px;display:flex;flex-direction:column;gap:18px;border:1px solid var(--line);border-radius:18px;background:#fffcf7e0;box-shadow:inset 0 1px #ffffffb3;scroll-behavior:smooth}.empty-hero{margin:auto;max-width:440px;text-align:center;padding:40px 12px 60px;animation:rise .45s ease both}.empty-hero h2{margin:0;font-family:var(--font-display);font-size:1.85rem;font-weight:600;letter-spacing:-.02em;color:var(--ink)}.empty-hero p{margin:12px 0 0;color:var(--muted);line-height:1.6}.suggest-row{margin-top:22px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.suggest{border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);border-radius:999px;padding:8px 14px;font-size:.88rem;transition:border-color .15s ease,background .15s ease}.suggest:hover{border-color:#9fbfad;background:var(--accent-soft)}.msg{display:flex;flex-direction:column;gap:8px;max-width:100%;animation:rise .28s ease both}.msg.user{align-items:flex-end}.msg.assistant{align-items:flex-start}.bubble{max-width:min(960px,100%);padding:12px 15px;border-radius:16px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.msg.user .bubble{background:var(--accent);color:#f4fff9;border-bottom-right-radius:5px}.msg.assistant .bubble{background:var(--panel);border:1px solid var(--line);border-bottom-left-radius:5px;box-shadow:0 1px #101a1508}.typing{color:var(--muted);font-size:.9rem;padding:4px 2px;display:inline-flex;align-items:center;gap:6px}.typing span{width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.45;animation:bounce 1s ease-in-out infinite}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}.composer{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--shadow);align-items:end}.composer-actions{display:flex;flex-direction:column;gap:8px;align-self:end}.run-timer{font-variant-numeric:tabular-nums;font-size:.8rem;letter-spacing:.02em;color:var(--muted);padding:6px 10px;border-radius:999px;background:#0000000a;white-space:nowrap;flex-shrink:0}.run-timer.running{color:var(--accent);font-weight:600;background:color-mix(in srgb,var(--accent) 12%,transparent)}.composer textarea{resize:none;min-height:96px;max-height:280px;border:none;outline:none;background:transparent;color:var(--ink);padding:10px 8px;line-height:1.55;overflow-y:auto}.composer button{align-self:end;border:none;background:var(--accent);color:#f4fff9;border-radius:12px;padding:0 18px;min-height:44px;font-weight:600;transition:background .15s ease}.composer-pause{background:transparent!important;color:var(--ink-soft)!important;border:1px solid var(--line)!important}.composer-pause:hover:not(:disabled){background:#f0ebe3!important;border-color:#b7c4bb!important}.composer button:hover:not(:disabled){background:var(--accent-deep)}.composer button:disabled{opacity:.45;cursor:not-allowed}.thinking{width:min(960px,100%);border:1px solid #d7e0d9;border-radius:12px;background:#f4f7f4;overflow:hidden}.thinking summary{cursor:pointer;list-style:none;padding:9px 12px;color:var(--muted);font-size:.84rem;-webkit-user-select:none;user-select:none}.thinking summary::-webkit-details-marker{display:none}.thinking[open] summary{border-bottom:1px solid #d7e0d9}.thinking-body{padding:10px 12px 12px;white-space:pre-wrap;color:var(--ink-soft);font-size:.86rem;line-height:1.5;max-height:200px;overflow:auto}.plan-card{width:min(960px,100%);border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#fff,#f6faf7);overflow:hidden;box-shadow:0 8px 24px #101a150d}.plan-card-header{padding:14px 16px 10px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center}.plan-card-header h3{margin:0;font-family:var(--font-display);font-size:1.12rem;font-weight:600}.plan-badge{font-size:.75rem;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:4px 10px}.plan-steps{list-style:none;margin:0;padding:10px;display:flex;flex-direction:column;gap:8px}.plan-step{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:10px;border-radius:12px;border:1px solid transparent;background:#ffffffb3}.plan-step.running{border-color:#bfd2e8;background:#f3f7fc}.plan-step.done{border-color:#bfdccb;background:#f2f9f5}.plan-step.failed{border-color:#e8c4c4;background:#fdf5f5}.step-index{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:600;background:#e7eee8;color:var(--muted)}.plan-step.running .step-index{background:#d7e5f4;color:var(--running);animation:pulse 1.2s ease-in-out infinite}.plan-step.done .step-index{background:var(--accent-soft);color:var(--accent)}.plan-step.failed .step-index{background:#f3d6d6;color:var(--danger)}.step-title-row{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.step-title-row strong{font-size:.95rem}.step-title-row em{font-style:normal;font-size:.75rem;color:var(--muted)}.step-body p{margin:4px 0 0;color:var(--muted);font-size:.86rem;line-height:1.45}.step-detail{margin-top:6px;font-size:.8rem;color:var(--ink-soft)}.plan-actions{padding:0 14px 14px}.plan-actions button{border:none;background:var(--accent);color:#f4fff9;border-radius:10px;padding:10px 16px;font-weight:600}.plan-actions button:disabled{opacity:.55;cursor:not-allowed}.error-note{font-size:.88rem;color:var(--danger);padding:10px 12px;border-radius:10px;background:#f8eaea;max-width:min(960px,100%);animation:rise .28s ease both}.work-details{width:min(960px,100%);border:1px solid var(--line);border-radius:14px;background:#fbfaf6;overflow:hidden;animation:rise .32s ease both}.work-details>summary{cursor:pointer;list-style:none;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--ink-soft);font-size:.88rem;font-weight:600;-webkit-user-select:none;user-select:none}.work-details>summary::-webkit-details-marker{display:none}.work-details[open]>summary{border-bottom:1px solid var(--line)}.work-count{font-weight:500;font-size:.76rem;color:var(--muted);background:#eef3ef;border-radius:999px;padding:3px 8px}.work-list{list-style:none;margin:0;padding:8px;display:flex;flex-direction:column;gap:6px;max-height:280px;overflow:auto}.work-item{border-radius:10px;padding:9px 10px;background:#fff;border:1px solid #e6ece7;animation:rise .25s ease both}.work-item.running{border-color:#bfd2e8;background:#f5f9fd}.work-item.ok{border-color:#c5ddcf}.work-item.fail{border-color:#e8c4c4;background:#fdf6f6}.work-item-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.work-item-head strong{font-size:.9rem}.work-item-head em{font-style:normal;font-size:.74rem;color:var(--muted)}.work-item.running .work-item-head em{color:var(--running);animation:blink 1s ease-in-out infinite}.work-meta{margin-top:4px;font-size:.78rem;color:var(--muted);line-height:1.4}.work-result{margin-top:6px}.work-result summary{cursor:pointer;font-size:.76rem;color:var(--accent);list-style:none}.work-result summary::-webkit-details-marker{display:none}.work-result pre{margin:6px 0 0;padding:8px;background:#f3f6f4;border-radius:8px;font-size:.74rem;white-space:pre-wrap;word-break:break-word;max-height:120px;overflow:auto;color:var(--ink-soft)}.suggest{animation:rise .4s ease both}.suggest:nth-child(1){animation-delay:.05s}.suggest:nth-child(2){animation-delay:.12s}.suggest:nth-child(3){animation-delay:.19s}.composer button:not(:disabled):active{transform:scale(.98)}.new-chat-btn:not(:disabled):active{transform:scale(.98)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes bounce{0%,80%,to{transform:translateY(0);opacity:.35}40%{transform:translateY(-4px);opacity:1}}@keyframes pulse{0%,to{box-shadow:0 0 #2c5f8a59}50%{box-shadow:0 0 0 6px #2c5f8a00}}@keyframes blink{0%,to{opacity:1}50%{opacity:.45}}@media(max-width:860px){.layout{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:min(82vw,300px);z-index:20;transform:translate(0)}.layout.sidebar-collapsed .sidebar{transform:translate(-105%);opacity:1;pointer-events:none}.composer{grid-template-columns:1fr}.composer-actions{flex-direction:row;width:100%}.composer-actions button{flex:1;width:auto}}
