:root{--bg0: #0b1010;--bg1: #141c18;--ink: #e8f0ea;--muted: #8fa396;--accent: #3dba7a;--line: #2a3830;--mine: #1e3a2c;--danger: #c45c5c;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:var(--ink);background:radial-gradient(900px 480px at 10% -10%,#1c3a2c 0%,transparent 55%),var(--bg0)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100%}body{min-height:100dvh}.shell{max-width:980px;margin:0 auto;padding:16px 12px 24px}.top .brand{line-height:1}.top .brand-logo{display:block;height:48px;width:auto;max-width:min(240px,70vw);object-fit:contain}.tag{color:var(--muted);margin:6px 0 14px;font-size:13px}.hint{color:var(--muted);font-size:12px;line-height:1.5;margin:12px 0 0}.top{position:relative}.linkish{position:absolute;right:0;top:8px;background:transparent;color:var(--accent);border:1px solid var(--line);padding:6px 10px;font-size:12px;font-weight:600}.relay-banner{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--accent) 12%,var(--bg1))}.relay-title{font-weight:700;color:var(--accent)}.relay-status{flex:1;min-width:160px;font-size:12px;color:var(--muted)}.relay-status.ok{color:var(--accent)}.relay-status.bad{color:var(--danger)}.thread-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line)}.thread-title{padding:0;border:0;font-size:14px;color:var(--muted)}.mode-hint{font-size:12px;color:var(--muted)}.mode-switch{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}.mode-switch-bottom{align-self:center;margin:0 12px 10px}.mode-btn{background:transparent;color:var(--muted);border:0;border-radius:0;padding:6px 12px;font-size:12px;font-weight:600}.mode-btn.active{background:var(--accent);color:#04140c}body.mode-cursor .thread{border-color:color-mix(in srgb,#8b8af6 45%,var(--line))}body.mode-cursor .composer{background:color-mix(in srgb,#8b8af6 8%,transparent)}.bridge-settings{background:color-mix(in srgb,var(--bg1) 90%,transparent);border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:12px}.settings-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.settings-actions{margin-top:8px}.check-row{display:flex;align-items:center;gap:8px;margin-bottom:14px}.check-row input{width:auto;margin:0}.gate,.chat{background:color-mix(in srgb,var(--bg1) 90%,transparent);border:1px solid var(--line);border-radius:16px;padding:14px}.hidden{display:none!important}label{display:block;font-size:13px;color:var(--muted);margin-bottom:14px}input{display:block;width:100%;margin-top:6px;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--bg0);color:var(--ink);font-size:16px}button{border:0;border-radius:10px;background:var(--accent);color:#04140c;font-weight:650;padding:12px 18px;cursor:pointer}.meta{display:flex;gap:8px;align-items:center;margin-bottom:10px;color:var(--muted);font-size:13px}.meta span{flex:1;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta button,.icon-btn{background:transparent;color:var(--ink);border:1px solid var(--line);padding:6px 10px;font-weight:500}.layout{display:grid;grid-template-columns:280px 1fr;gap:10px;min-height:min(70vh,640px)}.sidebar{border:1px solid var(--line);border-radius:12px;background:#101814;display:flex;flex-direction:column;overflow:hidden}.new-chat{display:flex;gap:6px;padding:10px;border-bottom:1px solid var(--line)}.new-chat input{margin:0;padding:10px;font-size:14px}.new-chat button{padding:10px 12px;white-space:nowrap}.conv-list{overflow:auto;flex:1;padding:6px}.conv-empty{color:var(--muted);font-size:12px;padding:16px 10px}.conv-item{width:100%;text-align:left;background:transparent;color:var(--ink);border:1px solid transparent;border-radius:10px;padding:10px;margin-bottom:4px;font-weight:500}.conv-item.active{background:#1e3a2c;border-color:var(--line)}.conv-peer{font-size:13px;margin-bottom:4px}.conv-preview{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread{border:1px solid var(--line);border-radius:12px;background:#101814;display:flex;flex-direction:column;min-height:0}.log{flex:1;overflow:auto;padding:12px 14px 16px;display:flex;flex-direction:column;gap:0;min-height:220px}.history-fold{margin:0 0 12px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--bg0) 70%,transparent)}.history-fold>summary{cursor:pointer;list-style:none;padding:8px 12px;font-size:12px;color:var(--muted);-webkit-user-select:none;user-select:none}.history-fold>summary::-webkit-details-marker{display:none}.history-fold>summary:before{content:"▸ ";color:var(--accent)}.history-fold[open]>summary:before{content:"▾ "}.history-body{padding:0 10px 10px;display:flex;flex-direction:column;gap:8px;max-height:40vh;overflow:auto}.timeline{display:flex;flex-direction:column;gap:14px}.turn{max-width:100%;padding:0;border:0;background:transparent;white-space:pre-wrap;word-break:break-word}.turn .role{font-size:12px;color:var(--muted);margin-bottom:6px;display:flex;gap:6px;align-items:center;font-weight:600}.turn .body{font-size:15px;line-height:1.55;color:var(--ink)}.turn.mine .body{padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--mine) 80%,#1a2420);border:1px solid var(--line);display:inline-block;max-width:92%}.turn.cmd .body{border-color:color-mix(in srgb,#8b8af6 40%,var(--line));background:color-mix(in srgb,#8b8af6 10%,#15201a)}.turn.assistant .body{padding:0;border:0;background:transparent;max-width:100%;display:block}.turn.live .body:after{content:"▍";animation:blink 1s step-end infinite;color:var(--accent)}@keyframes blink{50%{opacity:0}}.turn-fold>summary{cursor:pointer;list-style:none;display:flex;gap:8px;align-items:baseline;font-size:12px;color:var(--muted)}.turn-fold>summary::-webkit-details-marker{display:none}.turn-fold .preview{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}.turn-fold .body{margin-top:8px;padding:8px 10px;border-radius:8px;background:#15201a;border:1px solid var(--line);font-size:13px}.cmd-tag{font-size:10px;padding:1px 6px;border-radius:999px;background:#5b57c4;color:#e8e7ff;font-weight:600}.sys{color:var(--muted);font-size:12px;text-align:center;padding:2px 0}.sys.important{color:#e8b4b4}.sys.ephemeral{opacity:.85}.msg{display:none}.quick-chips{display:flex;gap:8px;padding:0 12px 8px;overflow-x:auto}.quick-chips.disabled{opacity:.4;pointer-events:none}.quick-chips button{flex:0 0 auto;background:#18241e;color:var(--ink);border:1px solid var(--line);padding:8px 12px;font-size:12px;font-weight:500}.composer{display:flex;gap:8px;align-items:flex-end;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.composer textarea{margin:0;flex:1;min-height:40px;max-height:120px;resize:none;line-height:1.4;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg0);color:var(--ink);font-size:16px;font-family:inherit}.voice-btn{background:transparent;color:var(--ink);border:1px solid var(--line);font-weight:600;min-width:64px}.voice-btn.recording{background:#8b2e2e;border-color:#b44;color:#fff}.draft-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0000008c;display:flex;align-items:flex-end;justify-content:center;padding:12px}.draft-panel{width:min(560px,100%);background:#15201a;border:1px solid var(--line);border-radius:16px 16px 12px 12px;padding:14px;padding-bottom:calc(14px + env(safe-area-inset-bottom))}.draft-head{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}.draft-sub{color:var(--muted);font-size:12px}.draft-text{width:100%;min-height:180px;max-height:50dvh;resize:vertical;padding:12px;border-radius:12px;border:1px solid var(--line);background:var(--bg0);color:var(--ink);font-size:16px;line-height:1.5;font-family:inherit}.draft-actions{display:flex;gap:10px;margin-top:12px}.draft-actions button{flex:1}.draft-cancel{background:transparent;color:var(--ink);border:1px solid var(--line)}.draft-send{background:var(--accent);color:#04140c}@media(max-width:760px){.shell{padding:10px 8px 12px;max-width:100%}.top .brand-logo{height:40px}.layout{grid-template-columns:1fr;min-height:calc(100dvh - 120px)}.sidebar{display:flex}.thread{display:none;min-height:calc(100dvh - 120px)}.layout.show-thread .sidebar{display:none}.layout.show-thread .thread{display:flex}.draft-text{min-height:220px;max-height:55dvh}}
