:root{--bg: #ffffff;--bg-elev: #ffffff;--surface: #f6f6f6;--surface-2: #efefef;--surface-hover: #ececec;--border: rgba(0, 0, 0, .08);--border-strong: rgba(0, 0, 0, .14);--text: #0d0d0d;--text-2: #5d5d5d;--text-3: #8f8f8f;--accent: #0d0d0d;--accent-fg: #ffffff;--blue: #0a84ff;--green: #1a9a4b;--green-bg: rgba(26, 154, 75, .1);--red: #e5484d;--red-bg: rgba(229, 72, 77, .1);--amber: #d97706;--amber-bg: rgba(217, 119, 6, .1);--user-bubble: #f1f1f1;--code-bg: #f7f7f7;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 1px rgba(0, 0, 0, .02);--shadow-md: 0 8px 28px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .04);--shadow-lg: 0 18px 50px rgba(0, 0, 0, .18);--radius: 14px;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--header-h: 52px;color-scheme:light}:root[data-theme=dark]{--bg: #161616;--bg-elev: #1f1f1f;--surface: #212121;--surface-2: #2a2a2a;--surface-hover: #2c2c2c;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .15);--text: #ececec;--text-2: #a6a6a6;--text-3: #6e6e6e;--accent: #ececec;--accent-fg: #111111;--green: #3fbf73;--green-bg: rgba(63, 191, 115, .13);--red: #ff6b6f;--red-bg: rgba(255, 107, 111, .12);--amber: #f0a33a;--amber-bg: rgba(240, 163, 58, .13);--user-bubble: #2a2a2a;--code-bg: #1d1d1d;--shadow-md: 0 8px 28px rgba(0, 0, 0, .5);--shadow-lg: 0 18px 50px rgba(0, 0, 0, .6);color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:none;text-size-adjust:100%;-webkit-text-size-adjust:100%}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}input,textarea{font:inherit;color:inherit}a{color:inherit}code,pre,.mono{font-family:var(--mono)}::selection{background:#0a84ff38}.app{height:100%;display:flex;flex-direction:column;overflow:hidden}.screen{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--bg)}.screen-enter{animation:slideIn .26s cubic-bezier(.2,.8,.2,1)}@keyframes slideIn{0%{transform:translate(28px);opacity:.4}to{transform:none;opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.header{flex:none;padding-top:var(--safe-top);background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid transparent;z-index:20;transition:border-color .2s}.header.scrolled{border-bottom-color:var(--border)}.header-row{height:var(--header-h);display:flex;align-items:center;gap:4px;padding:0 8px}.header-title{flex:1;min-width:0;text-align:center;padding:0 4px}.header-title .t{font-weight:600;font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-title .s{font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:-1px}.icon-btn{width:38px;height:38px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:var(--text);flex:none;transition:background .15s}.icon-btn:active{background:var(--surface-2)}.icon-btn:disabled{opacity:.35}.machine-pill{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 10px 0 8px;border-radius:10px;font-weight:600;font-size:15.5px;max-width:70vw}.machine-pill:active{background:var(--surface-2)}.machine-pill .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dot{width:7px;height:7px;border-radius:50%;background:var(--text-3);flex:none}.dot.on{background:var(--green);box-shadow:0 0 0 3px var(--green-bg)}.dot.warn{background:var(--amber);box-shadow:0 0 0 3px var(--amber-bg)}.scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.list-pad{padding:4px 0 calc(24px + var(--safe-bottom))}.section-label{font-size:12.5px;color:var(--text-3);font-weight:500;padding:18px 20px 6px;letter-spacing:.01em}.row{display:flex;align-items:center;gap:12px;padding:11px 20px;min-height:60px;width:100%;text-align:left;position:relative;transition:background .12s}.row:active{background:var(--surface)}.row+.row:before{content:"";position:absolute;top:0;left:20px;right:0;height:1px;background:var(--border)}.row-main{flex:1;min-width:0}.row-title{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-sub{font-size:12.5px;color:var(--text-3);display:flex;align-items:center;gap:6px;margin-top:2px;white-space:nowrap;overflow:hidden}.row-sub .sep{opacity:.6}.row-sub .proj{color:var(--text-2);overflow:hidden;text-overflow:ellipsis}.row-trail{flex:none;display:flex;align-items:center;gap:8px;color:var(--text-3);font-size:12px}.chip-row{display:flex;gap:6px;padding:6px 16px 4px;overflow-x:auto;scrollbar-width:none}.chip-row::-webkit-scrollbar{display:none}.chip{flex:none;height:30px;padding:0 12px;border-radius:999px;background:var(--surface);color:var(--text-2);font-size:13px;display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;white-space:nowrap}.chip.active{background:var(--accent);color:var(--accent-fg)}.badge{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.badge.run{background:var(--surface-2);color:var(--text-2)}.badge.wait{background:var(--amber-bg);color:var(--amber)}.badge.ext{background:var(--surface-2);color:var(--text-2)}.live-card{margin:8px 16px 2px;border-radius:16px;background:var(--surface);padding:4px 0;overflow:hidden}.live-card .row{min-height:56px}.live-card .row+.row:before{left:16px}.live-card .row{padding-left:16px;padding-right:16px}.search-box{margin:4px 16px 6px;height:38px;border-radius:11px;background:var(--surface);display:flex;align-items:center;gap:8px;padding:0 12px;color:var(--text-3)}.search-box input{flex:1;border:0;outline:0;background:transparent;color:var(--text);font-size:15px;min-width:0}.empty{padding:60px 32px;text-align:center;color:var(--text-3);font-size:14px}.empty .big{font-size:17px;color:var(--text);font-weight:600;margin-bottom:6px}.spinner{display:inline-block;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--text-2);animation:spin .8s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--blue);animation:pulse 1.4s ease-in-out infinite;flex:none}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.shimmer{background:linear-gradient(90deg,var(--text-3) 0%,var(--text-3) 35%,var(--text) 50%,var(--text-3) 65%,var(--text-3) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 2.2s linear infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-150% 0}}.btn{height:44px;padding:0 18px;border-radius:12px;font-weight:600;font-size:15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--surface-2);color:var(--text);transition:transform .08s,opacity .15s}.btn:active{transform:scale(.98)}.btn.primary{background:var(--accent);color:var(--accent-fg)}.btn.danger{background:var(--red-bg);color:var(--red)}.btn.ghost{background:transparent;border:1px solid var(--border-strong)}.btn.sm{height:34px;padding:0 12px;font-size:13.5px;border-radius:10px}.btn.block{width:100%}.btn:disabled{opacity:.45}.timeline{padding:8px 16px 20px;max-width:820px;margin:0 auto;width:100%}.turn{padding:6px 0 10px;animation:fadeIn .2s}.user-msg{display:flex;flex-direction:column;align-items:flex-end;margin:14px 0 12px;gap:6px}.user-bubble{background:var(--user-bubble);border-radius:20px;padding:9px 15px;max-width:86%;white-space:pre-wrap;word-break:break-word;font-size:15px}.user-images{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:86%}.user-images img{width:96px;height:96px;object-fit:cover;border-radius:14px;border:1px solid var(--border);background:var(--surface)}.attach-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:12px;background:var(--surface);font-size:13px;color:var(--text-2);max-width:86%}.agent-msg{margin:10px 0;font-size:15.5px;line-height:1.65;word-wrap:break-word;overflow-wrap:anywhere}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:.55em 0}.markdown h1,.markdown h2,.markdown h3,.markdown h4{margin:1.1em 0 .45em;line-height:1.35;font-weight:650}.markdown h1{font-size:1.3em}.markdown h2{font-size:1.18em}.markdown h3{font-size:1.06em}.markdown h4{font-size:1em}.markdown ul,.markdown ol{padding-left:1.35em;margin:.5em 0}.markdown li{margin:.22em 0}.markdown li::marker{color:var(--text-3)}.markdown strong{font-weight:650}.markdown blockquote{margin:.6em 0;padding:0 0 0 12px;border-left:3px solid var(--border-strong);color:var(--text-2)}.markdown hr{border:0;border-top:1px solid var(--border);margin:1.2em 0}.markdown a{color:var(--blue);text-decoration:none}.markdown a.file-link{color:var(--blue);cursor:pointer}.markdown a.file-link code{color:var(--blue)}.markdown :not(pre)>code,.markdown a>code{font-size:.86em;background:var(--surface-2);padding:.14em .4em;border-radius:6px;word-break:break-word}.markdown .md-img{max-width:100%;max-height:52vh;object-fit:contain;border-radius:12px;border:1px solid var(--border);display:block;margin:8px 0;cursor:zoom-in;background:var(--surface);min-height:40px}.table-wrap{overflow-x:auto;margin:.7em 0;border:1px solid var(--border);border-radius:12px}.markdown table{border-collapse:collapse;font-size:13.5px;min-width:100%}.markdown th,.markdown td{padding:7px 12px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.markdown th{background:var(--surface);font-weight:600}.markdown tr:last-child td{border-bottom:0}.codeblock{margin:.7em 0;border-radius:12px;overflow:hidden;background:var(--code-bg);border:1px solid var(--border)}.codeblock-head{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 12px;font-size:12px;color:var(--text-3);font-family:var(--mono);border-bottom:1px solid var(--border)}.copy-btn{font-size:12px;color:var(--text-2);padding:3px 8px;border-radius:6px;font-family:var(--font)}.copy-btn:active{background:var(--surface-2)}.codeblock pre{margin:0;padding:12px;overflow-x:auto;font-size:12.5px;line-height:1.6}.codeblock code{background:none!important;padding:0!important}.work-toggle{display:inline-flex;align-items:center;gap:6px;color:var(--text-3);font-size:13.5px;padding:6px 0;margin:2px 0}.work-toggle .chev{transition:transform .2s}.work-toggle.open .chev{transform:rotate(90deg)}.work{border-left:1.5px solid var(--border);margin:2px 0 6px 6px;padding:2px 0 2px 14px;animation:rise .18s}.act{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;color:var(--text-2);padding:5px 0;line-height:1.45;min-width:0}.act-ico{flex:none;color:var(--text-3);margin-top:1px}.act-body{flex:1;min-width:0}.act-head{display:flex;align-items:center;gap:6px;min-width:0;width:100%;text-align:left}.act-head .label{flex:none;color:var(--text-2)}.act-head code{font-size:12.5px;color:var(--text);background:var(--surface);padding:1px 6px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.act-head .meta{margin-left:auto;flex:none;font-size:12px;color:var(--text-3);padding-left:6px}.act-head .meta.err{color:var(--red)}.act-sub{font-size:12.5px;color:var(--text-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.term{margin-top:6px;background:var(--code-bg);border:1px solid var(--border);border-radius:10px;font-family:var(--mono);font-size:12px;line-height:1.55;padding:10px 12px;max-height:280px;overflow:auto;white-space:pre-wrap;word-break:break-all;color:var(--text-2)}.term .cmdline{color:var(--text);margin-bottom:4px}.reasoning-text{font-size:13.5px;color:var(--text-3);line-height:1.55}.reasoning-text p{margin:.25em 0}.reasoning-text strong{color:var(--text-2);font-weight:600}.thinking{display:flex;align-items:center;gap:8px;font-size:14px;padding:8px 0}.changes{margin:10px 0;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--bg-elev)}.changes-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:13.5px;font-weight:600;background:var(--surface)}.change-row{display:flex;align-items:center;gap:10px;padding:9px 14px;border-top:1px solid var(--border);font-size:13.5px;width:100%;text-align:left}.change-row .p{flex:1;min-width:0;font-family:var(--mono);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:rtl;text-align:left}.change-row .kind{font-size:11px;font-weight:600;padding:1px 6px;border-radius:5px;flex:none}.kind.add{color:var(--green);background:var(--green-bg)}.kind.delete{color:var(--red);background:var(--red-bg)}.kind.update{color:var(--text-2);background:var(--surface-2)}.plus{color:var(--green);font-family:var(--mono);font-size:12px}.minus{color:var(--red);font-family:var(--mono);font-size:12px}.diff{font-family:var(--mono);font-size:12px;line-height:1.55;overflow-x:auto;border-top:1px solid var(--border);background:var(--code-bg)}.diff-line{white-space:pre;padding:0 12px;min-width:max-content}.diff-line.add{background:#1a9a4b1c}.diff-line.del{background:#e5484d1a}.diff-line.hunk{color:var(--text-3);background:var(--surface);padding-top:3px;padding-bottom:3px}.plan{margin:10px 0;border:1px solid var(--border);border-radius:14px;padding:10px 14px}.plan-title{font-size:13px;font-weight:600;color:var(--text-2);margin-bottom:4px}.plan-step{display:flex;gap:8px;font-size:14px;padding:3px 0;align-items:flex-start}.plan-step.completed{color:var(--text-3);text-decoration:line-through}.plan-step .box{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--border-strong);flex:none;margin-top:3px;display:grid;place-items:center}.plan-step.completed .box{background:var(--text-3);border-color:var(--text-3);color:var(--bg)}.plan-step.inProgress .box{border-color:var(--blue)}.turn-foot{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-3);margin:4px 0 0}.err-card{margin:10px 0;padding:10px 14px;border-radius:12px;background:var(--red-bg);color:var(--red);font-size:13.5px}.retry-card{margin:8px 0;padding:8px 12px;border-radius:10px;background:var(--amber-bg);color:var(--amber);font-size:13px;display:flex;gap:8px;align-items:center}.divider-note{display:flex;align-items:center;gap:10px;color:var(--text-3);font-size:12px;margin:14px 0}.divider-note:before,.divider-note:after{content:"";flex:1;height:1px;background:var(--border)}.gen-img{max-width:100%;max-height:60vh;object-fit:contain;border-radius:14px;border:1px solid var(--border);margin:8px 0;display:block;cursor:zoom-in}.older-btn{display:block;margin:8px auto 4px;font-size:13px;color:var(--text-2);padding:6px 14px;border-radius:999px;background:var(--surface)}.jump-btn{position:absolute;right:16px;bottom:calc(100% + 12px);width:36px;height:36px;border-radius:50%;background:var(--bg-elev);border:1px solid var(--border-strong);box-shadow:var(--shadow-md);display:grid;place-items:center;animation:rise .2s}.ext-banner{margin:8px 16px 0;padding:10px 12px;border-radius:12px;background:var(--surface);font-size:13px;color:var(--text-2);display:flex;gap:10px;align-items:center}.composer-wrap{flex:none;position:relative;padding:6px 12px calc(10px + var(--safe-bottom));background:linear-gradient(to bottom,transparent,var(--bg) 14px)}.composer{max-width:820px;margin:0 auto;border-radius:22px;background:var(--bg-elev);border:1px solid var(--border-strong);box-shadow:var(--shadow-md);padding:8px;transition:border-color .15s}:root[data-theme=dark] .composer{background:var(--surface)}.composer textarea{width:100%;border:0;outline:0;resize:none;background:transparent;font-size:16px;line-height:1.45;padding:4px 8px 2px;max-height:40vh;min-height:26px;display:block}.composer textarea::placeholder{color:var(--text-3)}.composer-bar{display:flex;align-items:center;gap:4px;margin-top:6px}.composer-bar .spacer{flex:1}.pill-btn{height:32px;padding:0 10px;border-radius:999px;font-size:13px;color:var(--text-2);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;max-width:46vw;overflow:hidden}.pill-btn:active{background:var(--surface-2)}.pill-btn span{overflow:hidden;text-overflow:ellipsis}.round-btn{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--text-2);flex:none}.round-btn:active{background:var(--surface-2)}.send-btn{width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--accent-fg);display:grid;place-items:center;flex:none;transition:opacity .15s,transform .1s}.send-btn:disabled{opacity:.25}.send-btn:active{transform:scale(.94)}.attachments{display:flex;gap:8px;padding:2px 6px 6px;overflow-x:auto}.att{position:relative;flex:none}.att img{width:58px;height:58px;border-radius:12px;object-fit:cover;display:block;border:1px solid var(--border)}.att .filebox{height:58px;max-width:170px;border-radius:12px;background:var(--surface-2);padding:0 10px;display:flex;align-items:center;gap:8px;font-size:12.5px}.att .filebox span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att .x{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;background:var(--text);color:var(--bg);display:grid;place-items:center}.att .prog{position:absolute;inset:0;border-radius:12px;background:#00000073;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600}.approval{max-width:820px;margin:0 auto 8px;border-radius:18px;background:var(--bg-elev);border:1px solid var(--border-strong);box-shadow:var(--shadow-md);padding:14px;animation:rise .22s}:root[data-theme=dark] .approval{background:var(--surface)}.approval-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14.5px}.approval-title .ico{width:26px;height:26px;border-radius:8px;background:var(--amber-bg);color:var(--amber);display:grid;place-items:center}.approval-reason{font-size:13.5px;color:var(--text-2);margin:6px 0 0}.approval-cmd{margin-top:10px;background:var(--code-bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-family:var(--mono);font-size:12.5px;white-space:pre-wrap;word-break:break-all;max-height:160px;overflow:auto}.approval-cwd{font-size:12px;color:var(--text-3);margin-top:6px;font-family:var(--mono)}.approval-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.approval-actions .wide{grid-column:span 2}.q-opt{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:12px;background:var(--surface);margin-top:6px;font-size:14px}.q-opt small{display:block;color:var(--text-3);font-size:12.5px}.q-opt.sel{outline:2px solid var(--accent)}.sheet-backdrop{position:fixed;inset:0;background:#0000005c;z-index:100;animation:fadeIn .18s}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:101;background:var(--bg-elev);border-radius:20px 20px 0 0;box-shadow:var(--shadow-lg);max-height:88vh;display:flex;flex-direction:column;padding-bottom:var(--safe-bottom);animation:sheetUp .28s cubic-bezier(.2,.85,.25,1);max-width:640px;margin:0 auto}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}.sheet-grip{width:38px;height:5px;border-radius:3px;background:var(--border-strong);margin:8px auto 2px;flex:none}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:6px 16px 8px 20px;flex:none}.sheet-head h3{margin:0;font-size:17px;font-weight:650}.sheet-body{overflow-y:auto;padding:0 0 12px}.sheet-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 20px;font-size:15px;min-height:52px}.sheet-item:active{background:var(--surface)}.sheet-item .ico{width:34px;height:34px;border-radius:10px;background:var(--surface);display:grid;place-items:center;flex:none;color:var(--text-2)}.sheet-item .main{flex:1;min-width:0}.sheet-item .main small{display:block;font-size:12.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-item.danger{color:var(--red)}.sheet-item.selected .check{color:var(--text)}.sheet-sub{font-size:12.5px;color:var(--text-3);padding:12px 20px 4px;font-weight:500}.seg{display:flex;gap:6px;padding:4px 20px 8px;flex-wrap:wrap}.seg button{height:34px;padding:0 14px;border-radius:10px;background:var(--surface);font-size:13.5px;color:var(--text-2)}.seg button.on{background:var(--accent);color:var(--accent-fg)}.viewer{position:fixed;inset:0;z-index:200;background:var(--bg);display:flex;flex-direction:column;animation:fadeIn .18s}.viewer.dark-media{background:#000;color:#fff}.viewer.dark-media .header{background:#00000080}.viewer.dark-media .icon-btn{color:#fff}.viewer.dark-media .header-title .s{color:#fff9}.viewer-body{flex:1;overflow:auto;position:relative;-webkit-overflow-scrolling:touch}.viewer-media{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.viewer-media img{max-width:100%;max-height:100%;object-fit:contain;user-select:none;-webkit-user-select:none;transition:transform .15s;touch-action:none}.viewer-media video{max-width:100%;max-height:100%;background:#000}.viewer-bar{flex:none;display:flex;gap:10px;padding:10px 16px calc(10px + var(--safe-bottom));border-top:1px solid var(--border);background:var(--bg)}.viewer.dark-media .viewer-bar{background:#000;border-top-color:#ffffff1f}.viewer.dark-media .viewer-bar .btn{background:#ffffff24;color:#fff}.viewer-bar .btn{flex:1}.code-view{font-family:var(--mono);font-size:12.5px;line-height:1.6;padding:10px 0 40px;min-width:max-content}.code-view .ln{display:flex}.code-view .ln .n{width:44px;flex:none;text-align:right;padding-right:12px;color:var(--text-3);user-select:none}.code-view .ln .c{white-space:pre;padding-right:16px}.doc-view{padding:16px 18px 48px;max-width:820px;margin:0 auto}.pdf-page{display:block;margin:12px auto;max-width:calc(100% - 24px);box-shadow:var(--shadow-md);background:#fff}.file-meta{padding:60px 24px;text-align:center}.file-meta .big-ico{width:76px;height:76px;border-radius:20px;background:var(--surface);display:grid;place-items:center;margin:0 auto 14px;color:var(--text-2)}.file-meta .n{font-weight:600;font-size:16px;word-break:break-all}.file-meta .s{color:var(--text-3);font-size:13px;margin-top:4px}.tabs{display:inline-flex;background:var(--surface);border-radius:10px;padding:3px;gap:2px}.tabs button{height:28px;padding:0 12px;border-radius:8px;font-size:13px;color:var(--text-2)}.tabs button.on{background:var(--bg-elev);color:var(--text);box-shadow:var(--shadow-sm)}.crumbs{display:flex;gap:2px;padding:4px 12px 8px;overflow-x:auto;scrollbar-width:none;font-size:13px;color:var(--text-3);align-items:center}.crumbs::-webkit-scrollbar{display:none}.crumbs button{padding:4px 6px;border-radius:6px;white-space:nowrap;color:var(--text-2)}.crumbs button:last-child{color:var(--text);font-weight:600}.ficon{width:38px;height:38px;border-radius:10px;background:var(--surface);display:grid;place-items:center;flex:none;color:var(--text-2);overflow:hidden}.ficon img{width:100%;height:100%;object-fit:cover}.ficon.dir{color:var(--blue);background:#0a84ff1a}.center-page{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 28px calc(32px + var(--safe-bottom));text-align:center;gap:14px}.center-page h1{font-size:24px;margin:8px 0 0;font-weight:700;letter-spacing:-.01em}.center-page p{color:var(--text-2);margin:0;font-size:15px;max-width:360px}.steps{text-align:left;background:var(--surface);border-radius:16px;padding:14px 16px;width:100%;max-width:380px;font-size:14px;color:var(--text-2)}.steps ol{margin:0;padding-left:1.2em}.steps li{margin:6px 0}.steps code{font-size:12.5px;background:var(--surface-2);padding:1px 5px;border-radius:5px;color:var(--text)}.code-input{width:100%;max-width:380px;height:46px;border-radius:12px;border:1px solid var(--border-strong);background:var(--bg-elev);padding:0 14px;font-size:15px;outline:0}.group{margin:6px 16px 14px;background:var(--surface);border-radius:16px;overflow:hidden}:root[data-theme=dark] .group{background:var(--bg-elev)}.group .row{min-height:52px;padding:10px 16px}.group .row+.row:before{left:16px}.group .row:active{background:var(--surface-2)}.qr-box{background:#fff;padding:14px;border-radius:18px;display:inline-block;box-shadow:var(--shadow-md)}.qr-box img{display:block;width:220px;height:220px}.kbd-box{font-family:var(--mono);font-size:12px;background:var(--code-bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;word-break:break-all;text-align:left;margin:0 20px}.toast{position:fixed;left:50%;top:calc(var(--safe-top) + 10px);transform:translate(-50%);z-index:300;background:var(--text);color:var(--bg);padding:9px 16px;border-radius:999px;font-size:13.5px;font-weight:500;box-shadow:var(--shadow-lg);animation:toastIn .25s;max-width:90vw;text-align:center}.toast.error{background:var(--red);color:#fff}@keyframes toastIn{0%{transform:translate(-50%,-12px);opacity:0}to{transform:translate(-50%);opacity:1}}.conn-bar{flex:none;font-size:12.5px;text-align:center;padding:5px;background:var(--amber-bg);color:var(--amber);display:flex;align-items:center;justify-content:center;gap:8px}@media(min-width:900px){body{font-size:15px}.timeline{padding-left:24px;padding-right:24px}}@media(hover:hover){.row:hover,.sheet-item:hover,.icon-btn:hover{background:var(--surface)}}.hljs{color:var(--text)}.hljs-comment,.hljs-quote{color:#8e8e8e;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-type{color:#cf222e}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute{color:#0a7a3c}.hljs-number,.hljs-symbol,.hljs-bullet,.hljs-variable.constant_{color:#0550ae}.hljs-title,.hljs-title.function_,.hljs-section{color:#8250df}.hljs-built_in,.hljs-name,.hljs-tag{color:#953800}.hljs-attr,.hljs-property,.hljs-params{color:#0550ae}.hljs-deletion{color:#cf222e}.hljs-meta{color:#6e7781}:root[data-theme=dark] .hljs-keyword,:root[data-theme=dark] .hljs-selector-tag,:root[data-theme=dark] .hljs-literal,:root[data-theme=dark] .hljs-type{color:#ff7b72}:root[data-theme=dark] .hljs-string,:root[data-theme=dark] .hljs-regexp,:root[data-theme=dark] .hljs-addition,:root[data-theme=dark] .hljs-attribute{color:#7ee2a8}:root[data-theme=dark] .hljs-number,:root[data-theme=dark] .hljs-symbol,:root[data-theme=dark] .hljs-bullet,:root[data-theme=dark] .hljs-attr,:root[data-theme=dark] .hljs-property,:root[data-theme=dark] .hljs-params{color:#79c0ff}:root[data-theme=dark] .hljs-title,:root[data-theme=dark] .hljs-title.function_,:root[data-theme=dark] .hljs-section{color:#d2a8ff}:root[data-theme=dark] .hljs-built_in,:root[data-theme=dark] .hljs-name,:root[data-theme=dark] .hljs-tag{color:#ffa657}.picker-stack{display:flex;flex-direction:column;gap:8px;width:100%;max-width:380px}.picker{height:46px;border-radius:13px;border:1px solid var(--border-strong);background:var(--bg-elev);display:flex;align-items:center;gap:10px;padding:0 14px;font-size:15px;font-weight:600;text-align:left;color:var(--text);transition:background .12s}.picker:active{background:var(--surface)}.picker:disabled{opacity:.5}.picker .picker-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker svg{color:var(--text-2);flex:none}.menu-btn{position:relative}.menu-dot{position:absolute;top:8px;right:7px;width:8px;height:8px;border-radius:50%;background:var(--blue);border:2px solid var(--bg)}.menu-dot.wait{background:var(--amber)}.drawer-backdrop{position:fixed;inset:0;background:#00000052;z-index:90;opacity:0;pointer-events:none;transition:opacity .25s}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;bottom:0;left:0;width:min(86vw,340px);z-index:91;background:var(--bg);display:flex;flex-direction:column;transform:translate(-102%);transition:transform .28s cubic-bezier(.2,.85,.25,1);box-shadow:none;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);border-right:1px solid var(--border)}:root[data-theme=dark] .drawer{background:#1b1b1b}.drawer.open{transform:none;box-shadow:var(--shadow-lg)}.drawer-top{display:flex;align-items:center;gap:6px;padding:10px 10px 6px 12px;flex:none}.drawer-search{flex:1;height:38px;border-radius:11px;background:var(--surface);display:flex;align-items:center;gap:8px;padding:0 10px;color:var(--text-3);min-width:0}:root[data-theme=dark] .drawer-search{background:var(--surface-2)}.drawer-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--text);font-size:15px}.drawer-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--text);flex:none}.drawer-icon:active{background:var(--surface-2)}.drawer-scroll{flex:1;overflow-y:auto;padding:4px 8px 12px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.nav-item{display:flex;align-items:center;gap:10px;width:100%;height:40px;padding:0 10px;border-radius:10px;font-size:14.5px;font-weight:500;color:var(--text)}.nav-item svg{color:var(--text-2)}.nav-item:active,.nav-item.active{background:var(--surface)}:root[data-theme=dark] .nav-item.active{background:var(--surface-2)}.drawer-label{font-size:12px;font-weight:600;color:var(--text-3);padding:16px 10px 6px;letter-spacing:.02em;display:flex;align-items:center;justify-content:space-between}.drawer-sub{font-size:12px;color:var(--text-3);padding:10px 10px 4px}.mini-tabs{display:inline-flex;background:var(--surface);border-radius:8px;padding:2px;gap:2px}:root[data-theme=dark] .mini-tabs{background:var(--surface-2)}.mini-tabs button{width:28px;height:22px;border-radius:6px;display:grid;place-items:center;color:var(--text-3)}.mini-tabs button.on{background:var(--bg-elev);color:var(--text);box-shadow:var(--shadow-sm)}:root[data-theme=dark] .mini-tabs button.on{background:#3a3a3a}.drawer-note{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2);padding:8px 10px;margin:6px 0;background:var(--surface);border-radius:10px}.drawer-note button{margin-left:auto;font-weight:600;color:var(--blue)}.drawer-empty{text-align:center;color:var(--text-3);font-size:13.5px;padding:28px 10px}.proj{margin-bottom:2px}.proj-head{display:flex;align-items:center;gap:7px;width:100%;height:34px;padding:0 8px;border-radius:9px;font-size:13.5px;font-weight:600;color:var(--text-2)}.proj-head:active{background:var(--surface)}.proj-head svg{color:var(--text-3);flex:none}.proj-chev{transition:transform .18s}.proj-chev.open{transform:rotate(90deg)}.proj-name{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-count{font-size:11.5px;font-weight:500;color:var(--text-3)}.proj-items{padding-left:14px;margin-left:13px;border-left:1px solid var(--border)}.trow{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:7px 10px;border-radius:10px;text-align:left;transition:background .12s}.trow:active,.trow.active{background:var(--surface)}:root[data-theme=dark] .trow.active,:root[data-theme=dark] .trow:active{background:var(--surface-2)}.trow-main{flex:1;min-width:0;display:flex;flex-direction:column}.trow-title{font-size:14.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trow.active .trow-title{font-weight:600}.trow-sub{font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trow-trail{flex:none;font-size:12px;color:var(--text-3);display:flex;align-items:center}.more-link{display:block;font-size:13px;color:var(--text-3);padding:6px 10px;border-radius:8px}.more-link.center{margin:10px auto 0;display:flex;align-items:center;gap:6px}.more-link:active{background:var(--surface)}.drawer-foot{flex:none;display:flex;align-items:center;gap:6px;padding:8px 10px 10px;border-top:1px solid var(--border)}.machine-card{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;text-align:left}.machine-card:active{background:var(--surface)}.mc-ico{width:34px;height:34px;border-radius:10px;background:var(--surface);display:grid;place-items:center;color:var(--text-2);flex:none}:root[data-theme=dark] .mc-ico{background:var(--surface-2)}.mc-main{flex:1;min-width:0;display:flex;flex-direction:column}.mc-name{font-size:14.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mc-sub{font-size:12px;color:var(--text-3);display:flex;align-items:center;gap:6px}.machine-card>svg{color:var(--text-3);flex:none}@media(min-width:1100px){.drawer{transform:none;box-shadow:none}.drawer-backdrop{display:none}.app.with-drawer .screen{left:340px}.menu-btn{visibility:hidden}}
