:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#243f35;background:#f3f5ed;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}a{-webkit-tap-highlight-color:transparent}.portal{max-width:530px;margin:auto;padding:max(25px,env(safe-area-inset-top)) 27px max(25px,env(safe-area-inset-bottom))}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:37px}.portal-brand{display:flex;gap:6px}.portal-brand span{display:grid;place-items:center;width:32px;height:32px;background:#dfe9cf;color:#315c40;border-radius:10px;font-size:23px;font-weight:600}.portal-brand .blue{background:#dceae6;color:#315965}.version{font-size:10px;color:#8b987b;background:#eaf0df;border:1px solid #dfe6d4;border-radius:20px;padding:6px 11px}.eyebrow{font-size:10px;letter-spacing:2.5px;color:#8d9d7c;margin:0 0 13px}h1{font-size:37px;font-weight:550;line-height:1.35;letter-spacing:-1.7px;margin:0 0 15px}.intro{font-size:12px;line-height:1.8;color:#869675;margin:0 0 29px}.entry{display:flex;align-items:flex-start;gap:19px;padding:24px 22px;margin-bottom:15px;border:1px solid #d7e2c9;border-radius:18px;text-decoration:none;color:#34583f;background:#f9fbf3;box-shadow:0 4px 16px #23442d03;min-height:150px}.entry:focus-visible{outline:3px solid #acb986;outline-offset:3px}.entry-mark{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;background:#e2eccf;border-radius:15px;color:#44683f;font-size:34px;font-weight:600}h2{font-size:24px;margin:-1px 0 7px;font-weight:600;letter-spacing:-.7px}.entry p{font-size:11px;margin:0 0 17px;color:#7f9270;line-height:1.7}.entry-action{display:block;font-size:12px;color:#607c4f}.entry-action b{font-size:18px;margin-left:25px;font-weight:400}.codex{background:#f3f9f7;border-color:#d2e2dd;color:#345d66}.codex .entry-mark{background:#dbece6;color:#3b6973}.codex p{color:#80968e}.codex .entry-action{color:#597f85}.portal-note{border-top:1px solid #dfe6d5;margin-top:25px;padding:19px 0 0;font-size:11px;line-height:1.8;color:#728465}.portal-note b{font-weight:550}.portal-note p{margin:7px 0 0;color:#91a080}footer{color:#9aaa89;font-size:10px;line-height:1.8;margin-top:24px}footer p{margin:3px 0}@media(min-width:700px){.portal{padding-top:55px}.entry{padding:28px;min-height:155px}h1{font-size:43px}}
:root [hidden]{display:none!important}.card{padding:20px 22px;background:#eaf0df;border:1px solid #dce4d1;border-radius:16px;margin-top:24px}.card h3{font-size:16px;margin:0 0 10px;font-weight:600}.card p{font-size:12px;line-height:1.9;color:#718465;margin:0}.secondary{font:inherit;font-size:12px;background:#244e3b;color:#f4f6ec;border:0;border-radius:9px;padding:13px 18px;min-height:44px;margin-top:15px;cursor:pointer}.secondary:focus-visible{outline:3px solid #acb986;outline-offset:3px}@media(min-width:900px){.portal{max-width:950px;padding-left:45px;padding-right:45px}.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.entry-grid .entry{margin-bottom:0}.install-card{margin-top:22px}}

/* 运维入口 */
.portal-ops{display:flex;align-items:center;gap:10px;justify-content:space-between;margin:14px 0 0;padding:12px 15px;border-radius:14px;border:1px dashed #c3cdb8;background:#f2f4ea;color:#41543f;text-decoration:none;font-size:13px}
.portal-ops span{font-weight:600;letter-spacing:.3px}
.portal-ops b{font-weight:400;color:#7d8a71;font-size:12px}
.portal-ops:active{background:#e9eedd}
.entry{transition:border-color 130ms,background-color 130ms}.entry:active{background:#eaf0df}.entry.computer{border-color:#b8cdc6}.entry.computer .entry-mark{background:#cdded7}.entry-grid .hermes{order:3}.entry-grid .codex:not(.computer){order:1}.entry-grid .computer{order:2}
@media(min-width:900px){.entry-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.entry-grid .entry{padding:22px 18px;gap:12px}.entry-grid .entry h2{font-size:20px;letter-spacing:-.5px}.entry-grid .entry-mark{width:38px;height:38px;font-size:28px}}
@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:120ms}@media(prefers-reduced-motion:reduce){.entry{transition:none}::view-transition-old(root),::view-transition-new(root){animation:none}}

/* 监听电脑端 Codex：一键开始/停止 */
.watch-card{margin:16px 0 0;padding:15px 16px;border-radius:16px;border:1px solid #c3cdb8;background:#fff}
.watch-head{display:flex;align-items:flex-start;gap:12px;justify-content:space-between}
.watch-card .eyebrow{margin:0;font-size:10.5px;letter-spacing:1.4px;color:#8a9581}
.watch-card h3{margin:3px 0 5px;font-size:16.5px;font-weight:600;color:#153f36;letter-spacing:-.2px}
.watch-hint{margin:0;font-size:12.5px;line-height:1.55;color:#6b7a63}
.watch-btn{flex:0 0 auto;min-width:92px;height:38px;padding:0 15px;border-radius:999px;border:1px solid #153f36;background:#153f36;color:#f2f6e8;font-family:inherit;font-size:14px;font-weight:600;transition:transform 120ms,background-color 120ms}
.watch-btn[data-action="stop"]{background:#fff;color:#8a3b2a;border-color:#d9b6ab}
.watch-btn:disabled{opacity:.5}
.watch-btn:active{transform:scale(.97)}
.watch-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:1px;border-radius:12px;overflow:hidden;background:#eef1e6}
.watch-list li{display:flex;align-items:center;gap:9px;justify-content:space-between;padding:9px 12px;background:#fafbf5;font-size:13px;color:#41543f}
.watch-list .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.watch-list .s{flex:0 0 auto;font-size:11.5px;color:#8a9581}
.watch-list .s.done{color:#2f6b4f}
.watch-list .s.wait{color:#a06a25}
.watch-note{margin:9px 0 0;font-size:11.5px;line-height:1.5;color:#8a9581}
@media(prefers-reduced-motion:reduce){.watch-btn{transition:none}}

/* 首页快捷区：语音命令 + 监听开关 */
.quick{margin:18px 0 0;display:flex;flex-direction:column;gap:9px}
.quick-voice{display:flex;align-items:center;gap:13px;width:100%;padding:13px 15px;border-radius:16px;border:1px solid #153f36;background:#153f36;color:#f2f6e8;text-align:left;font-family:inherit;transition:background-color 140ms,transform 120ms}
.quick-voice:active{transform:scale(.99)}
.quick-voice .qv-icon{flex:0 0 auto;display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:rgba(220,232,189,.16);color:#dce8bd}
.quick-voice .qv-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.quick-voice .qv-text b{font-size:16px;font-weight:600;letter-spacing:-.2px}
.quick-voice .qv-text em{font-style:normal;font-size:12px;line-height:1.45;color:#b9cba6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.quick-voice.recording{background:#b93c2c;border-color:#b93c2c;animation:pocket-rec 1.5s ease-in-out infinite}
.quick-voice.recording .qv-icon{background:rgba(255,255,255,.2);color:#fff}
.quick-voice.recording .qv-text em{color:#f7dbd5}
.quick-voice.busy{background:#2c5662;border-color:#2c5662}
.quick-voice.busy .qv-text em{color:#b9d2d9}
.quick-voice.done{background:#2f6b4f;border-color:#2f6b4f}
.quick-voice.done .qv-text em{color:#c8e0cd}
.quick-voice.err{background:#7a5b3b;border-color:#7a5b3b}
.quick-voice.err .qv-text em{color:#e8d8c2}
.quick-watch{display:flex;align-items:center;gap:10px;padding:9px 13px;border-radius:13px;border:1px dashed #c3cdb8;background:#f2f4ea}
.quick-watch-btn{flex:0 0 auto;height:32px;padding:0 14px;border-radius:999px;border:1px solid #153f36;background:#fff;color:#153f36;font-family:inherit;font-size:13px;font-weight:600}
.quick-watch-btn[data-action="stop"]{color:#8a3b2a;border-color:#d9b6ab}
.quick-watch-btn:disabled{opacity:.5}
.quick-watch-hint{font-size:12px;line-height:1.4;color:#6b7a63;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@keyframes pocket-rec{0%,100%{box-shadow:0 0 0 0 rgba(185,60,44,.4)}55%{box-shadow:0 0 0 8px rgba(185,60,44,0)}}
@media(prefers-reduced-motion:reduce){.quick-voice{transition:none}.quick-voice.recording{animation:none}}
