:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:15px;color:#263d33;background:#edf0e9;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.45;cursor:default}a{color:#3c684e}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #baa368;outline-offset:2px}[hidden]{display:none!important}.login{min-height:100dvh;display:grid;place-items:center;padding:35px 25px;background:radial-gradient(ellipse at 0% 5%,#d9e4cf 0,transparent 45%),#f4f5ee}.login-card{width:100%;max-width:380px}.mark{background:#183f35;color:#e3eccd;font-size:70px;width:98px;height:98px;border-radius:29px;line-height:98px;text-align:center;font-weight:650;position:relative;margin-bottom:40px}.mark span{position:absolute;right:15px;top:2px;font-size:25px;color:#b7cd91}.eyebrow{font-size:10px;letter-spacing:2.5px;color:#82906f;font-weight:600}.login h1{font-size:48px;font-weight:550;line-height:1.25;letter-spacing:-2px;margin:18px 0}.intro{line-height:1.9;color:#79856c;font-size:14px;margin:22px 0 38px}label{display:block;font-size:12px;color:#5c7158;margin-bottom:10px}.login input{background:#fffefb;border:1px solid #d8e0cd;border-radius:11px;padding:15px;width:100%;font-size:16px}.primary{background:#244e3b;color:#f4f6ec;padding:17px 19px;border-radius:11px;width:100%;text-align:left;margin-top:12px;font-weight:550}.primary span{float:right}.error{font-size:12px;color:#a15e42;min-height:20px;line-height:1.7}.login-foot{border-top:1px solid #d9dfcf;margin-top:26px;padding-top:20px;font-size:11px;color:#89957e;line-height:1.9}.workspace{height:var(--app-height,100dvh);max-width:1360px;margin:auto;background:#f8f9f3;display:grid;grid-template-columns:280px minmax(0,1fr);box-shadow:0 0 80px #2045330b}aside{padding:30px 18px;background:#153f36;color:#e9eddf;display:flex;flex-direction:column;min-height:0}.brand{display:flex;gap:12px;align-items:center;padding:0 9px 28px}.brand-mark{background:#dce8bc;border-radius:13px;width:42px;height:42px;font-size:29px;display:grid;place-items:center;color:#1b4435;font-weight:650}.brand b{display:block;font-size:18px;font-weight:550}.brand small{display:block;margin-top:6px;letter-spacing:1.7px;font-size:9px;color:#9cb9a8}.new{border-radius:11px;background:#dce8bd;padding:14px;color:#264b36;font-weight:600;margin-bottom:30px;text-align:left}.side-label{padding:0 12px;font-size:11px;letter-spacing:1px;color:#9ab7a7;margin-bottom:16px}.session-list{flex:1;overflow:auto}.session{width:100%;padding:15px 13px;text-align:left;background:transparent;color:#d7e2d4;border-radius:12px;margin-bottom:6px;display:block;font-size:13px;line-height:1.7;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.session.active{background:#ffffff13}.session small{display:block;font-size:10px;color:#9eb9a7;margin-top:6px}.side-footer{padding:22px 10px 0;font-size:11px;color:#b8ccba;border-top:1px solid #ffffff16;line-height:1.9}.side-footer small{display:block;color:#89a492;font-size:10px}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#b9d790;margin-right:5px}main{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}header{display:flex;align-items:center;gap:12px;padding:23px 30px;border-bottom:1px solid #e1e6d9;background:#fffefa}.avatar{display:grid;place-items:center;background:#e6ecd9;color:#34573a;width:42px;height:42px;border-radius:13px;font-size:26px;font-weight:600}.header-copy{flex:1;min-width:0}header h1{font-size:17px;font-weight:600;margin:0 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}header p{font-size:11px;margin:0;color:#829177}.icon{border-radius:12px;min-width:44px;min-height:44px;background:#edf1e5;color:#4f6c49;font-size:22px}.tabs{display:flex;gap:30px;padding:0 32px;border-bottom:1px solid #dfe6d6;background:#fffefa}.tabs button{padding:17px 0 13px;background:none;color:#8a947d;font-size:13px;border-bottom:3px solid transparent;min-width:44px}.tabs button[aria-selected=true]{border-color:#426747;color:#355c3d;font-weight:600}.tabs span{font-size:10px;background:#edf1e5;padding:1px 5px;border-radius:6px}.tabs span:empty{display:none}.view{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}.messages{padding:30px 35px}.empty{padding:40px 10px;text-align:left;max-width:520px;margin:20px auto}.empty .glyph{font-size:42px;line-height:1;color:#7d9b60;margin-bottom:24px}.empty h2{font-size:27px;line-height:1.45;font-weight:500;margin:12px 0}.empty p{font-size:13px;color:#869177;line-height:1.9}.suggestions{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}.suggestions button{font-size:12px;background:#edf1e4;color:#638055;border-radius:10px;padding:13px 15px;border:1px solid #e1e7d7;min-height:44px}.message{display:flex;align-items:flex-start;gap:11px;margin-bottom:25px}.message.user{flex-direction:row-reverse}.mini{width:29px;height:29px;display:grid;place-items:center;background:#e4ebd6;border-radius:9px;flex-shrink:0;color:#526c43;font-size:12px;font-weight:650}.user .mini{background:#3a5e42;color:#edf2e1}.inner{max-width:min(86%,720px);min-width:0}.who{font-size:9px;letter-spacing:1px;color:#96a087;margin-bottom:8px}.user .who{text-align:right}.bubble{padding:16px 18px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85;font-size:14px;border:1px solid #e2e7d9;border-radius:0 17px 17px;background:#fffefa}.user .bubble{background:#e0ebd1;border-color:#d7e2c7;border-radius:17px 0 17px 17px}.meta{font-size:10px;color:#89957b;line-height:1.8;margin-top:7px;white-space:pre-wrap;overflow-wrap:anywhere}.meta.failed{color:#a2674d}.file-card{display:flex;align-items:center;gap:12px;border:1px solid #dce3d0;background:#f5f7ed;border-radius:12px;padding:13px;margin-top:12px;text-decoration:none;color:inherit;white-space:normal;min-width:0}.file-symbol{background:#e2ebd2;border-radius:8px;padding:13px 8px;font-size:9px;color:#63804c;letter-spacing:1px}.file-info{min-width:0;flex:1}.file-info b{font-size:12px;font-weight:550;display:block;overflow-wrap:anywhere}.file-info small{color:#8b977e;font-size:10px;display:block;margin-top:6px}.file-action{font-size:18px;color:#6f8a57;padding:8px}.copy{font-size:10px;color:#879575;background:none;padding:8px 0;min-height:32px}.approval{background:#f5efd8;padding:15px;border-radius:11px;margin-top:12px;font-size:12px;line-height:1.8;white-space:pre-wrap}.approval button{background:#e5d8b0;color:#6d5423;padding:12px;margin:10px 8px 0 0;border-radius:8px;min-height:44px}.approval button:last-child{background:#ebe8de;color:#736c57}footer{background:#f8f9f3;border-top:1px solid #e4e8dd;padding:16px 30px max(13px,env(safe-area-inset-bottom))}.input-wrap{display:flex;align-items:flex-end;gap:8px;background:#fffefb;border:1px solid #d8e1ce;border-radius:15px;padding:9px}.attach{min-width:42px;height:44px;border-radius:10px;background:#eef2e6;color:#6a8256;font-size:25px}textarea{background:transparent;border:0;resize:none;outline:none!important;width:100%;min-height:44px;max-height:130px;line-height:1.6;padding:10px 5px;color:#39543b;font-size:16px}.send{min-width:44px;height:44px;background:#345e44;color:#fff;border-radius:11px;font-size:24px}.send.stop{background:#8e7951;font-size:15px}.composer-note{margin:9px 0 0;text-align:center;color:#99a28b;font-size:9px}.pending-files{display:flex;gap:8px;flex-wrap:wrap}.pending-file{font-size:11px;border-radius:8px;background:#e9efdc;color:#617c4c;padding:9px 11px;margin-bottom:9px;overflow-wrap:anywhere;max-width:100%}.pending-file button{background:none;color:#687e51;margin-left:8px;min-width:24px;min-height:24px}.panel{padding:34px;max-width:800px;margin:auto}.panel h2{font-size:26px;font-weight:500;line-height:1.5;margin:12px 0 20px}.muted{font-size:13px;color:#879277;line-height:1.9}.small{font-size:11px}.card{background:#f0f3e6;border:1px solid #e1e6d5;border-radius:14px;padding:20px;margin:25px 0}.card h3{font-size:15px;margin:0}.card p{font-size:12px;color:#7f8c71;line-height:1.9;margin-bottom:0}.setting{display:flex;justify-content:space-between;padding:18px 0;border-bottom:1px solid #e2e7d9;font-size:13px;gap:18px;line-height:1.8}.setting b{font-weight:500}.setting span{text-align:right;color:#859276}.secondary{background:#e6edda;color:#597747;border-radius:9px;padding:13px 18px;margin-top:25px;font-size:12px;min-height:44px}.banner{background:#f5edda;color:#977a49;padding:12px 25px;font-size:11px;line-height:1.8}.banner button{color:#82632f;background:#e9dbb6;border-radius:7px;min-height:40px;padding:6px 12px;margin-left:8px}.toast{position:fixed;z-index:30;bottom:max(25px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#284632;color:#f4f4e8;border-radius:12px;padding:14px 20px;box-shadow:0 8px 30px #0002;max-width:90%;font-size:12px;line-height:1.8;white-space:pre-wrap}.mobile{display:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:700px){.workspace{grid-template-columns:1fr}aside{display:none;position:fixed;inset:0 auto 0 0;width:285px;z-index:20;padding-top:max(25px,env(safe-area-inset-top));padding-bottom:max(20px,env(safe-area-inset-bottom))}aside.open{display:flex}.backdrop{position:fixed;inset:0;background:#183a2a55;z-index:19}.mobile{display:block}header{padding:13px 14px;padding-top:max(13px,env(safe-area-inset-top));gap:10px}.avatar{width:35px;height:35px;font-size:22px}header h1{font-size:16px}.icon{min-width:40px;min-height:44px}.brand{padding:0 3px 25px;gap:9px}.brand b{font-size:16px}.brand small{font-size:8px}.brand .icon{background:#ffffff0c;color:#c2d3b9;min-width:34px}.tabs{padding:0 22px;gap:30px}.tabs button{padding-top:14px}.messages{padding:25px 15px}.bubble{font-size:14px;padding:13px 14px}.inner{max-width:85%}.mini{width:25px;height:25px}.message{gap:8px}.panel{padding:26px 20px}.panel h2{font-size:23px}footer{padding:12px 12px max(12px,env(safe-area-inset-bottom))}.input-wrap{gap:6px;padding:8px}.composer-note{font-size:9px}.empty{padding:35px 14px}.empty h2{font-size:27px}.suggestions{gap:8px}.suggestions button{font-size:12px;padding:12px}.file-card{gap:8px;padding:11px}.file-symbol{padding:12px 6px}.login .mark{margin-bottom:30px}.login{padding:35px 28px}.login h1{font-size:43px}.banner{padding:10px 18px}}
.live-block{border:1px solid #e1e6d5;background:#f4f7ec;border-radius:14px;padding:18px;margin:20px 0}
.live-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.live-head h3{font-size:14px;margin:0;font-weight:600}
.live-refresh{background:#e2ead4;color:#4f6c49;border-radius:9px;padding:10px 14px;min-height:44px;font-size:12px}
.live-link{display:inline-block;margin-top:7px;font-size:12px}
.live-card{margin-top:9px;background:#fffefb}
.live-card .file-symbol{font-size:8px;letter-spacing:.5px}
@media(max-width:700px){.live-block{padding:14px;margin:16px 0}.live-head h3{font-size:13px}}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.entry-link{display:block;color:#bfd3ac;text-decoration:none;font-size:11px;line-height:1.7;padding:0 12px 20px}.load-older{display:block;margin:18px auto 0;padding:10px 18px;border-radius:9px;background:#e7edda;color:#647a50;font-size:11px;min-height:44px}.record{border:1px solid #dce5d5;background:#fffefa;border-radius:11px;margin:12px 0;padding:13px 16px}.record summary{cursor:pointer;overflow-wrap:anywhere;font-size:12px;line-height:1.8}.record pre{white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.7 ui-monospace,monospace;background:#eff2e8;padding:12px;border-radius:8px;max-height:420px;overflow:auto}.record small{display:block;color:#889578;font-size:10px;margin:8px 0}.codex-mode aside{background:#183b44}.codex-mode .brand-mark,.codex-mode .avatar{background:#d5e7e2;color:#214751}.codex-mode .new{background:#d5e7e2;color:#214751}.codex-mode .send{background:#2c5662}.codex-mode .user .bubble{background:#e1eeea;border-color:#d2e4de}.codex-mode .user .mini{background:#2e5964}.codex-mode .tabs button[aria-selected=true]{border-color:#42717b;color:#355d68}.codex-mode .mark{background:#183b44}.codex-mode .primary{background:#2c5662}

.engine-switch{display:flex;gap:6px;align-items:center;justify-content:center;padding:9px 14px;background:#fffefa;border-bottom:1px solid #e0e7d7;flex-shrink:0}.engine-switch a{display:block;min-height:36px;min-width:72px;padding:7px 15px;border-radius:10px;text-decoration:none;text-align:center;color:#718466;font-size:12px;line-height:22px}.engine-switch a[aria-current=page]{background:#e5edda;color:#365d3e;font-weight:650}.codex-mode .engine-switch a[aria-current=page]{background:#dfece7;color:#315e68}.login{position:relative;padding-top:95px}.login-switch{position:absolute;top:max(16px,env(safe-area-inset-top));left:16px;right:16px;max-width:440px;margin:0 auto;border:1px solid #dfe6d3;border-radius:14px}.engine-switch+header{padding-top:10px}main>.engine-switch{padding-top:max(9px,env(safe-area-inset-top))}#openSidebar[aria-label="打开历史会话"]{font-size:12px;min-width:44px}
.work{margin:8px 0 2px;border:1px solid #d8ded1;border-radius:12px;background:#f6f8f2;overflow:hidden}
.work>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:9px 11px;min-height:40px;font-size:12.5px;color:#4a6154}
.work>summary::-webkit-details-marker{display:none}
.work-title{letter-spacing:.02em;white-space:nowrap;flex:0 0 auto}
.work-peek{flex:1 1 auto;min-width:0;color:#7c8c80;font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.work-caret{flex:0 0 auto;color:#8a9a8d;font-size:15px;line-height:1;transition:transform .15s}
.work[open]>.work-head .work-caret{transform:rotate(90deg)}
.work[open] .work-peek{display:none}
.work-dot{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;background:#e2ebdc;color:#3c684e;font-size:10px}
.pulse{width:9px;height:9px;border-radius:50%;background:#4f8a63;box-shadow:0 0 0 0 rgba(79,138,99,.55);animation:pulse 1.5s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(79,138,99,0)}100%{box-shadow:0 0 0 0 rgba(79,138,99,0)}}
.work-list{padding:2px 8px 8px;display:flex;flex-direction:column;gap:2px}
.work-row{display:flex;gap:8px;align-items:flex-start;padding:5px 6px;border-radius:8px;font-size:12.5px;line-height:1.45}
.work-row.running{background:#eef4e9}
.work-row.failed{background:#f9ece8}
.work-ico{width:16px;flex:0 0 16px;text-align:center;opacity:.85}
.work-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.work-name{font-weight:600;color:#2f4b3d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.work-hint{color:#6b7f70;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.work-time{flex:0 0 auto;color:#8a9a8d;font-size:11px;font-variant-numeric:tabular-nums}
.work-think,.work-say{flex:1;min-width:0;color:#6b7f70;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.work-row.say .work-say{color:#4a6154}
.bubble a{color:#286975;text-decoration:underline;text-underline-offset:3px}.bubble code{font:12px/1.7 ui-monospace,SFMono-Regular,monospace;background:#eef1ec;border-radius:4px;padding:2px 4px}
.execution{margin:10px 0 14px;border:1px solid #dfe4df;border-radius:12px;background:#fbfcfa;overflow:hidden;color:#3b4e48}
.execution-head,.execution-summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;min-height:44px;padding:11px 12px;font-size:12px;line-height:1.5}
.execution-head::-webkit-details-marker,.execution-summary::-webkit-details-marker{display:none}
.execution-indicator{font-size:12px;color:#5c7564}.execution-indicator.failed{color:#a06548}.execution-chevron{margin-left:auto;color:#819087;transition:transform .15s}.execution[open]>.execution-head .execution-chevron{transform:rotate(180deg)}
.execution-peek{flex:1 1 auto;min-width:0;color:#7a8981;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.execution[open] .execution-peek{display:none}
.execution-list{padding:0 8px 8px;border-top:1px solid #e8ece6}.execution-item{border-bottom:1px solid #e8ece6}.execution-item:last-child{border-bottom:0}.execution-item.failed .execution-status{color:#a35739}
.execution-summary{padding:10px 4px;align-items:flex-start;gap:8px}.execution-icon{width:16px;flex:0 0 16px;text-align:center;color:#71857b;font:16px/1.5 ui-monospace,monospace}.execution-description{flex:1;min-width:0}.execution-description b{font-weight:550;display:block}.execution-preview{display:block;color:#7a8981;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;max-width:100%}.execution-status{flex:0 0 auto;font-size:10px;color:#819087;padding-top:2px}.execution-detail{padding:0 4px 9px}.execution-detail pre{white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.75 ui-monospace,SFMono-Regular,monospace;background:#f0f3ef;border-radius:7px;padding:10px;margin:4px 0;max-height:300px;overflow:auto}.execution-detail small{display:block;color:#718178;font-size:10px;margin:7px 0}.codex-mode .assistant .inner{width:min(86%,720px)}

.say-line{font-size:14px;line-height:1.85;color:#33463c;margin:2px 0 8px;white-space:pre-wrap;overflow-wrap:anywhere}
.say-line strong{font-weight:650}.say-line code{font:12px/1.7 ui-monospace,SFMono-Regular,monospace;background:#eef1ec;border-radius:4px;padding:2px 4px}.say-line a{color:#286975;text-decoration:underline;text-underline-offset:3px}
.codex-mode .say-line{color:#324a53}
.card .secondary{margin:12px 8px 0 0}.pair-code{display:block;margin-top:15px;padding:13px;background:#fffefa;border:1px solid #d5dfcb;border-radius:8px;overflow-wrap:anywhere;user-select:all;font:15px/1.8 ui-monospace,monospace;color:#34583f}.install-card p{white-space:normal}

/* 运维日志（/ops/）：把原本推送到微信/飞书的通知收进页面 */
.ops-body{background:#edf0e9;color:#28382f;min-height:100dvh}
.ops-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:#183b44;color:#eaf1e2}
.ops-back{color:#cfdcc4;text-decoration:none;font-size:20px;line-height:1;padding:6px 4px}
.ops-title{flex:1;display:flex;flex-direction:column;gap:2px}
.ops-title b{font-size:16px;font-weight:600;letter-spacing:.4px}
.ops-title span{font-size:11px;color:#a8bcae}
.ops-refresh{background:rgba(255,255,255,.14);color:#e9f1e3;border-radius:999px;padding:7px 14px;font-size:12px}
.ops-refresh:active{background:rgba(255,255,255,.24)}
.ops-main{padding:14px 14px calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;max-width:720px;margin:0 auto}
.ops-card{background:#f7f8f2;border:1px solid #e0e5d9;border-radius:16px;padding:14px 15px}
.ops-card h2{margin:0 0 10px;font-size:12px;font-weight:650;letter-spacing:1.4px;color:#7b8a72;text-transform:uppercase}
.ops-line{display:flex;align-items:baseline;gap:9px;padding:6px 0;font-size:13.5px;border-top:1px solid #eef1e9}
.ops-line:first-of-type{border-top:0}
.ops-line-label{color:#33463c}
.ops-line-value{margin-left:auto;color:#6f7f73;font-size:12.5px;text-align:right}
.ops-dot{width:7px;height:7px;border-radius:50%;flex:0 0 7px;transform:translateY(-1px);background:#9aa89b}
.ops-dot.good{background:#4c8a5c}.ops-dot.bad{background:#bb5b45}.ops-dot.warm{background:#c09134}.ops-dot.mint{background:#3f8a7c}
.ops-chips{display:flex;flex-wrap:wrap;gap:7px}
.ops-chip{font-size:11.5px;border-radius:999px;padding:5px 10px;background:#eef1e8;color:#5f6f63}
.ops-chip.good{background:#e3efdf;color:#3f7347}.ops-chip.bad{background:#fbe6e0;color:#9d4a36}.ops-chip.warm{background:#f8eed6;color:#8a6a22}.ops-chip.mint{background:#e0f0ec;color:#2f6f64}
.ops-feed{max-height:none}
.ops-day{font-size:11px;letter-spacing:1.4px;color:#8d9a86;margin:12px 0 6px}
.ops-day:first-child{margin-top:0}
.ops-event{display:grid;grid-template-columns:38px auto 1fr;gap:8px;align-items:baseline;padding:6px 0;border-top:1px solid #eef1e9;content-visibility:auto;contain-intrinsic-size:auto 30px}
.ops-event:first-of-type{border-top:0}
.ops-time{font:11.5px ui-monospace,SFMono-Regular,monospace;color:#93a08c}
.ops-tag{font-size:10.5px;line-height:1.5;border-radius:5px;padding:1px 6px;white-space:nowrap;background:#eef1e8;color:#5f6f63}
.ops-tag.good{background:#e3efdf;color:#3f7347}.ops-tag.bad{background:#fbe6e0;color:#9d4a36}.ops-tag.warm{background:#f8eed6;color:#8a6a22}.ops-tag.mint{background:#e0f0ec;color:#2f6f64}
.ops-text{font-size:13px;line-height:1.6;color:#33463c;overflow-wrap:anywhere}
.ops-hint{font-size:12.5px;color:#87947c;margin:0;line-height:1.7}
.ops-note{font-size:11.5px;line-height:1.8;color:#8b9884;margin:2px 4px 0}
.ops-more{display:block;width:100%;margin-top:10px;padding:10px;border-radius:11px;border:1px solid #e0e5d9;background:#eef1e8;color:#5f6f63;font-size:12.5px}
.ops-more[hidden]{display:none}
.ops-more:disabled{opacity:.55}
.ops-entry .entry-mark{background:#5d6f5a}

/* Keep the streamed answer in place; navigation only needs a short acknowledgement. */
.engine-switch{gap:3px;padding-inline:8px}.engine-switch a{min-width:0;min-height:44px;padding:10px 9px;font-size:11px;white-space:nowrap;transition:background-color 120ms,color 120ms}.engine-switch a:active{background:#e5edda}
.tabs button{transition:color 120ms,border-color 120ms}.view:not([hidden]){animation:panel-in 140ms ease-out}.bubble.streaming{white-space:pre-wrap}
@keyframes panel-in{from{opacity:.65}to{opacity:1}}
.native-notice{max-width:600px;min-height:100dvh;margin:auto;justify-content:center;padding:30px 24px;gap:28px}.native-notice h1{font-size:26px;line-height:1.6;font-weight:550;margin:0;text-wrap:balance}.native-notice .engine-switch{flex-wrap:wrap;justify-content:flex-start;border:0;background:transparent;padding:0}.native-notice a{background:#dfece7;border-radius:10px}
textarea{caret-color:#345e44}::selection{background:#d1dfb6;color:#263d33}
@media(max-width:700px){aside{display:flex;visibility:hidden;transform:translateX(-100%);transition:transform 180ms cubic-bezier(.16,1,.3,1),visibility 180ms}aside.open{visibility:visible;transform:translateX(0)}.engine-switch a{padding-inline:7px;font-size:10.5px}.login-switch{left:10px;right:10px}}
@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:120ms}
@media(prefers-reduced-motion:reduce){.view:not([hidden]),.pulse{animation:none}.engine-switch a,.tabs button,.work-caret,.execution-chevron,aside{transition:none}::view-transition-old(root),::view-transition-new(root){animation:none}}
html.workspace-open{height:100%;overflow:hidden;overscroll-behavior:none}body.workspace-open{overflow:hidden;width:100%;height:100%}
.workspace-open .workspace{position:relative;top:var(--app-top,0px);width:100%;height:var(--app-height,100dvh)}

.image-preview{display:block;margin-top:12px;max-width:420px}.image-preview img{display:block;max-width:100%;max-height:360px;object-fit:contain;border-radius:12px}
.model-settings{display:flex;align-items:center;gap:8px;margin:0 4px 6px;flex-wrap:nowrap}.model-settings label{display:flex;align-items:center;gap:5px;min-width:0;white-space:nowrap;font-size:11px;color:var(--muted,#65736b)}.model-settings label:first-child{flex:1}.model-settings select{font:inherit;font-size:16px;min-width:0;max-width:100%;height:28px;border:1px solid #d3ddd3;border-radius:7px;background:#fff;color:#183b44;padding:2px 5px}.model-settings label:first-child select{flex:1;width:0}.model-settings[hidden]{display:none}

/* Pending Codex questions stay in the timeline, leaving the composer compact. */
#questions{margin:12px 16px}.question-card{padding:14px;border:1px solid #cbded4;border-radius:14px;background:#fff;margin:10px 0}.question-card fieldset{min-width:0;border:0;padding:0}.question-card legend{font-weight:700}.question-card .question{margin:14px 0}.question-option{display:flex;align-items:flex-start;gap:10px;padding:12px 8px;border:1px solid #dce5dc;border-radius:9px;margin:7px 0;white-space:pre-wrap;overflow-wrap:anywhere}.question-option input{flex:0 0 auto;margin-top:4px}.question-other{display:grid;gap:6px;font-size:13px}.question-other input{width:100%;box-sizing:border-box;font:inherit;font-size:16px;padding:10px;border:1px solid #cbded4;border-radius:8px}.question-card button{margin-top:8px}

/* The composer stays readable when drafts are restored or the keyboard opens. */
#composer{flex-shrink:0}#messageInput{overflow-y:auto}.model-settings label{margin-bottom:0}.toast{bottom:calc(var(--composer-height,100px) + 12px);max-height:30dvh;overflow:auto}

.question-panel{margin:0 0 8px;border:1px solid #cbded4;border-radius:12px;background:#fff}.question-panel[hidden]{display:none}.question-panel>summary{cursor:pointer;padding:10px 12px;font-size:14px;font-weight:600;color:#214751}.question-panel #questions{margin:0;padding:0 8px;max-height:min(40dvh,360px);overflow:auto;overscroll-behavior:contain}.question-panel .question-card{display:flex;flex-direction:column;max-height:min(38dvh,calc(var(--app-height,100dvh)*.38),340px);margin:0 0 8px;padding:10px}.question-panel .question-fields{overflow-y:auto;min-height:0;flex:1}.question-panel .question-card>button{flex-shrink:0;align-self:flex-start}.connection-notice{padding:8px 14px;color:#52645f;font-size:12px;line-height:1.6;border-bottom:1px solid #dde4db}.connection-notice button{padding:8px 10px;margin:4px 6px 0 0;min-height:40px;background:#e7eeea;color:#234b42;border-radius:7px}

.send-progress{display:block;margin:0 4px 8px;color:#355d68;font-size:12px;line-height:1.5}.send-progress[hidden]{display:none}.send.is-pending{position:relative;color:transparent}.send.is-pending::after,.question-card button.is-pending::before{content:"";display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:pocket-sending .8s linear infinite}.send.is-pending::after{position:absolute;left:50%;top:50%;margin:-10px;color:#fff}.question-card button.is-pending::before{width:12px;height:12px;margin-right:8px;vertical-align:middle}@keyframes pocket-sending{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.send.is-pending::after,.question-card button.is-pending::before{animation:none}}

/* 语音输入按钮 */
.voice{min-width:42px;height:44px;border-radius:10px;background:#eef2e6;color:#6a8256;display:grid;place-items:center;transition:background-color 140ms,color 140ms,transform 120ms}
.voice svg{display:block}
.voice:disabled{opacity:.4}
.voice:active{transform:scale(.96)}
.voice.recording{background:#b93c2c;color:#fff;animation:pocket-rec 1.5s ease-in-out infinite}
.voice.recording svg{transform:scale(.84)}
.voice.transcribing{background:#dcd8c9;color:#8a9581}
.voice.transcribing svg{opacity:.45}
.voice.transcribing{position:relative}
@keyframes pocket-rec{0%,100%{box-shadow:0 0 0 0 rgba(185,60,44,.38)}55%{box-shadow:0 0 0 7px rgba(185,60,44,0)}}
@media(prefers-reduced-motion:reduce){.voice{transition:none}.voice.recording{animation:none}}

.attachment-options{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#829177;margin:0 2px 8px}.attachment-options label{display:flex;align-items:center;gap:6px;margin:0;min-height:28px;font-size:11px}.attachment-options input{accent-color:#345e44;width:16px;height:16px}
