:root{color-scheme:light;--bg:#edf1ee;--surface:#fbfcfa;--surface-strong:#ffffff;--surface-soft:#f4f7f4;--rail:#17251f;--rail-muted:#a8b8b0;--ink:#17201b;--muted:#65716b;--muted-soft:#8a958f;--line:#dbe3dc;--line-soft:#e8eee9;--accent:#14765e;--accent-strong:#0e5d4b;--accent-soft:#e4f2ec;--info:#396b83;--info-soft:#e5f0f5;--warn:#9a6227;--warn-soft:#fff2df;--danger:#963d34;--danger-soft:#f8e8e5;--shadow:0 14px 34px rgb(25 39 31/8%)}*{box-sizing:border-box}body,html{min-height:100%;margin:0;background:var(--bg);color:var(--ink);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,textarea{font:inherit}.controlShell{width:min(100%,1080px);margin:0 auto;padding:28px 24px 48px}.controlHeader{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--line)}.controlHeader h1{font-size:24px;line-height:1.2}.bandActions,.headerActions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.headerActions span{color:var(--muted);font-size:13px}.controlError{margin:16px 0;padding:10px 12px;border:1px solid #efc5c0;background:var(--danger-soft);color:var(--danger);border-radius:8px}.controlBand{display:grid;grid-gap:18px;gap:18px;padding:24px 0;border-bottom:1px solid var(--line)}.statusBand{grid-template-columns:minmax(220px,1fr) 1.2fr auto;align-items:center}.bandTitle{display:flex;align-items:flex-start;gap:11px;color:var(--accent-strong)}.bandTitle h2{color:var(--ink);font-size:17px;line-height:1.25}.bandTitle p{margin:4px 0 0;color:var(--muted);font-size:13px}.metricGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin:0}.metricGrid div{min-width:0}.metricGrid dt{color:var(--muted);font-size:12px;font-weight:750}.metricGrid dd{margin:5px 0 0;overflow-wrap:anywhere;font-size:13px;font-weight:750}.profileBand textarea{min-height:260px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55}.quietButton{border-color:var(--line);background:var(--surface-strong);color:var(--accent-strong)}.quietButton:focus-visible:not(:disabled),.quietButton:hover:not(:disabled){background:var(--accent-soft)}.dangerButton{border-color:#d7a7a1;background:var(--surface-strong);color:var(--danger)}.dangerButton:focus-visible:not(:disabled),.dangerButton:hover:not(:disabled){background:var(--danger-soft)}.qrArea{display:flex;align-items:center;gap:16px;grid-column:1/-1;padding-top:4px}.qrArea img{width:156px;height:156px;border:1px solid var(--line);border-radius:4px;background:#fff}.qrArea p{max-width:330px;margin:0;color:var(--muted);font-size:13px;line-height:1.55}.userList{display:grid;border-top:1px solid var(--line-soft)}.userList div{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line-soft)}.userList span{font-size:14px;font-weight:750}.userList small{color:var(--muted);font-size:12px;text-align:right}@media (max-width:760px){.controlShell{padding:18px 16px 32px}.controlHeader,.statusBand{display:grid;grid-template-columns:1fr}.metricGrid{grid-template-columns:1fr 1fr}.headerActions{justify-content:space-between}.userList div{display:grid;grid-gap:4px;gap:4px}.userList small{text-align:left}}button{min-height:36px;gap:8px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:#fff;cursor:pointer;padding:8px 12px;font-weight:750;line-height:1.2}.linkButton,.topLink,button{display:inline-flex;align-items:center;justify-content:center}.linkButton,.topLink{gap:7px;border:1px solid var(--line);background:#fff;color:var(--accent-strong);font-weight:800;text-decoration:none}.linkButton{min-height:36px;border-radius:8px;padding:8px 12px}.topLink{min-height:32px;border-radius:999px;padding:6px 10px;font-size:12px}button:focus-visible:not(:disabled),button:hover:not(:disabled){background:var(--accent-strong);outline:none}.linkButton:focus-visible,.linkButton:hover,.topLink:focus-visible,.topLink:hover{border-color:#b9d7ca;background:var(--accent-soft);outline:none}.linkButton:focus-visible,.topLink:focus-visible{box-shadow:0 0 0 3px rgb(20 118 94/14%)}button:focus-visible,input:focus,textarea:focus{box-shadow:0 0 0 3px rgb(20 118 94/14%);outline:none}button:disabled{cursor:not-allowed;opacity:.48}input:disabled,textarea:disabled{cursor:not-allowed;background:var(--surface-soft);color:var(--muted)}input,textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:9px 11px}input:hover,textarea:hover{border-color:#c9d5cd}textarea{min-height:96px;resize:vertical}label{display:grid;grid-gap:7px;gap:7px;color:var(--muted);font-size:12px;font-weight:750}.appShell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100dvh}.sideRail{position:-webkit-sticky;position:sticky;top:0;display:grid;grid-template-rows:auto 1fr auto;align-self:start;height:100dvh;padding:18px 12px;background:var(--rail);color:#eef6f2}.railBrand{display:flex;align-items:center;gap:11px;min-height:58px;padding:0 8px 16px;border-bottom:1px solid rgb(255 255 255/10%)}.brandMark{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgb(255 255 255/16%);border-radius:8px;background:rgb(255 255 255/8%);color:#d8fff0}.railBrand div,.railNavItem span{display:grid;min-width:0;grid-gap:3px;gap:3px}.railBrand strong{font-size:15px;line-height:1.15}.railBrand span:not(.brandMark){color:var(--rail-muted);font-size:12px}.railNav{display:grid;align-content:start;grid-gap:6px;gap:6px;padding:16px 0}.railNavItem{justify-content:flex-start;gap:11px;width:100%;min-height:54px;border:1px solid transparent;background:transparent;color:var(--rail-muted);padding:8px 10px;text-align:left}.railNavItem:focus-visible:not(:disabled),.railNavItem:hover:not(:disabled){border-color:rgb(255 255 255/12%);background:rgb(255 255 255/7%);color:#fff}.railNavItem.active{border-color:rgb(207 255 235/20%);background:#ecf8f1;color:var(--rail)}.railNavItem strong{font-size:13px}.railNavItem small{overflow:hidden;color:currentColor;font-size:11px;opacity:.72;text-overflow:ellipsis;white-space:nowrap}.railStatus{display:grid;grid-gap:7px;gap:7px;padding:12px 8px 2px;border-top:1px solid rgb(255 255 255/10%);color:var(--rail-muted);font-size:12px;font-weight:650}.railStatus span{display:inline-flex;align-items:center;gap:7px}.railStatus .ok{color:#c8f6df}.railStatus .error{color:#ffd2c8}.shell{width:min(100%,1480px);margin:0 auto;padding:20px 24px 36px}.topbar{position:-webkit-sticky;position:sticky;z-index:10;top:0;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:-20px -24px 18px;padding:18px 24px 14px;border-bottom:1px solid rgb(219 227 220/84%);background:rgb(237 241 238/92%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbarIdentity{display:grid;min-width:0;grid-gap:4px;gap:4px}.eyebrow{margin:0;color:var(--accent-strong);font-size:11px;font-weight:850;text-transform:uppercase}h1,h2{margin:0;letter-spacing:0}h1{font-size:28px;line-height:1.12}h2{font-size:15px}.buttonRow,.packages,.panelHead,.topActions,.topbarContext{display:flex;align-items:center;gap:10px}.topbarContext{flex-wrap:wrap;color:var(--muted);font-size:12px;font-weight:650}.topbarContext span+span:before{content:"";display:inline-block;width:4px;height:4px;margin:0 10px 2px 0;border-radius:999px;background:#aeb9b2}.topActions{flex-wrap:wrap;justify-content:flex-end}.endpoint,.pill,.statusTag{display:inline-flex;max-width:100%;min-height:32px;align-items:center;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:var(--surface-strong);padding:6px 10px;font-size:12px;font-weight:750;word-break:break-word}.pill.ok,.statusTag.ok{border-color:#b7ddce;background:var(--accent-soft);color:var(--accent-strong)}.iconButton{min-width:92px}.notice{display:flex;align-items:center;min-height:42px;border:1px solid #e5c898;border-radius:8px;margin:0 0 14px;background:var(--warn-soft);color:var(--warn);padding:10px 12px;font-weight:750}.toastLayer{position:fixed;z-index:50;top:18px;left:50%;width:min(420px,calc(100vw - 24px));transform:translateX(-50%);pointer-events:none}.toast{display:flex;min-height:42px;align-items:center;justify-content:center;gap:8px;border:1px solid #b7ddce;border-radius:8px;background:#fff;color:var(--accent-strong);box-shadow:0 12px 28px rgb(25 39 31/14%);padding:10px 12px;font-size:13px;font-weight:800}.toast.success{background:var(--accent-soft)}.toast.error{border-color:#e1b7ae;background:var(--danger-soft);color:var(--danger)}.spinIcon{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.grid,.statsGrid{display:grid;grid-gap:14px;gap:14px}.statsGrid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px}.panel,.stat{min-width:0;border:1px solid var(--line);border-radius:8px;background:rgb(255 255 255/84%);box-shadow:var(--shadow)}.stat{display:flex;min-height:116px;gap:13px;align-items:flex-start;padding:15px}.statIcon{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-soft);color:var(--accent);flex:0 0 auto}.stat div:not(.statIcon){display:grid;min-width:0;grid-gap:5px;gap:5px}.stat small,.stat span{color:var(--muted);font-size:12px;font-weight:750}.stat strong{font-size:30px;line-height:1.04;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.panel{padding:0;overflow:hidden}.panelHead{justify-content:space-between;min-height:55px;padding:14px 16px 12px;border-bottom:1px solid var(--line-soft);background:rgb(251 252 250/82%)}.panelHead>svg{color:var(--accent);flex:0 0 auto}.panelHead h2{flex:1 1}.panel>.assistantStatusGrid,.panel>.botConnectBox,.panel>.empty,.panel>.formGrid,.panel>.inlineAlert,.panel>.packages,.panel>.previewBox,.panel>.tableWrap{margin:14px 16px}.panel>.empty+.tableWrap,.panel>.formGrid+.tableWrap,.panel>.tableWrap+.tableWrap{margin-top:0}.formGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:11px;gap:11px}.formGrid .buttonRow,.formGrid .wide,.formGrid>button{grid-column:1/-1}.buttonRow{justify-content:flex-start;flex-wrap:wrap}.segmentedControl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:4px;gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:4px}.segmentedControl button{min-height:34px;border-color:transparent;background:transparent;color:var(--muted)}.segmentedControl button:focus-visible:not(:disabled),.segmentedControl button:hover:not(:disabled){background:#fff;color:var(--accent-strong)}.segmentedControl button.active{border-color:#b9d7ca;background:#fff;color:var(--accent-strong);box-shadow:0 1px 2px rgb(25 39 31/5%)}.actionGroup{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.assistantStatusGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.assistantStatusCard{display:grid;min-width:0;grid-gap:6px;gap:6px;border:1px solid var(--line);border-radius:8px;background:#fbfdfb;padding:12px}.assistantStatusCard small,.assistantStatusCard span,.qrMeta small{color:var(--muted);font-size:12px;font-weight:750}.assistantStatusCard small,.qrMeta small{overflow-wrap:anywhere}.assistantStatusCard strong,.qrMeta strong{min-width:0;color:var(--ink);font-size:13px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assistantStatusCard strong{font-size:20px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.botConnectBox{display:grid;grid-gap:12px;gap:12px}.botConnectActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.qrSession{display:grid;grid-template-columns:132px minmax(0,1fr);grid-gap:14px;gap:14px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fbfdfb;padding:12px}.qrFrame{display:grid;place-items:center;width:132px;height:132px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted)}.qrFrame img{width:118px;height:118px;object-fit:contain}.qrMeta{display:grid;min-width:0;grid-gap:7px;gap:7px}.inlineAlert{display:inline-flex;align-items:center;gap:8px;border:1px solid #efc4bd;border-radius:8px;background:var(--danger-soft);color:var(--danger);padding:10px 12px;font-size:12px;font-weight:800}.inlineAlert span{min-width:0;overflow:hidden;text-overflow:ellipsis}.tableIcon{display:inline-flex;color:var(--accent)}.miniLink,.smallButton{min-height:30px;gap:5px;border-radius:7px;padding:5px 8px;font-size:12px;font-weight:800;white-space:nowrap}.miniLink,.smallButton.ghost{border:1px solid var(--line);background:#fff;color:var(--accent-strong)}.miniLink:focus-visible,.miniLink:hover,.smallButton.ghost:hover:not(:disabled){border-color:#b9d7ca;background:var(--accent-soft)}.smallButton.danger{color:var(--danger)}.miniLink{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.packages{flex-wrap:wrap}.packages button{min-width:148px;justify-content:space-between;border-color:var(--line);background:#fff;color:var(--accent-strong)}.packages button:focus-visible:not(:disabled),.packages button:hover:not(:disabled){border-color:#b9d7ca;background:var(--accent-soft)}.packages button span{color:var(--muted);font-size:12px}.tableWrap{max-width:calc(100% - 32px);overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff}table{width:100%;min-width:560px;border-collapse:collapse}td,th{border-bottom:1px solid var(--line-soft);padding:9px 10px;text-align:left;vertical-align:top;font-size:12px;white-space:nowrap}th{background:var(--surface-soft);color:var(--muted);font-weight:850;text-transform:uppercase}td{max-width:240px;overflow:hidden;color:#26312b;text-overflow:ellipsis}.actionsCell{max-width:280px;overflow:visible}tr:last-child td{border-bottom:0}.empty{border:1px dashed #cfd9d1;border-radius:8px;color:var(--muted);background:#fbfdfb;padding:22px 14px;font-size:13px;font-weight:750}.previewBox{border:1px solid var(--line);border-radius:8px;background:#fbfcfb;overflow:hidden}.previewHead{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:8px 10px}.previewHead strong{min-width:0;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.previewBox pre{max-height:360px;margin:0;overflow:auto;padding:12px;white-space:pre-wrap;word-break:break-word;font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.operatorLayout{display:grid;grid-template-columns:minmax(360px,.94fr) minmax(0,1.06fr);grid-gap:14px;gap:14px;align-items:start}.operatorArtifacts{grid-column:1/-1}.artifactGrid,.operatorControls,.taskDetail,.taskList{display:grid;grid-gap:12px;gap:12px;margin:14px 16px}.taskTypeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.artifactItem,.sourceItem,.taskListItem,.taskTypeButton{min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}.artifactItem,.taskListItem,.taskTypeButton{display:flex;align-items:center;justify-content:flex-start;gap:10px;text-align:left}.taskTypeButton{min-height:60px;padding:10px}.taskListItem.active,.taskTypeButton.active{border-color:#b9d7ca;background:var(--accent-soft);color:var(--accent-strong)}.artifactItem span,.sourceItem span,.taskListItem span,.taskTypeButton span{display:grid;min-width:0;grid-gap:3px;gap:3px}.artifactItem strong,.sourceItem strong,.taskListItem strong,.taskTypeButton strong{overflow:hidden;font-size:13px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.artifactItem small,.eventItem small,.sourceItem small,.taskDetailHead small,.taskListItem small,.taskTypeButton small{color:var(--muted);font-size:11px;font-weight:750}.operatorUpload{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.fileDrop{position:relative;display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:8px;border:1px dashed #b9cfc3;border-radius:8px;background:#fbfdfb;color:var(--accent-strong);padding:8px 12px;font-size:13px;font-weight:850;cursor:pointer}.fileDrop input{position:absolute;inset:0;opacity:0;cursor:pointer}.sourceList{display:grid;grid-gap:8px;gap:8px}.sourceItem{display:grid;grid-template-columns:18px minmax(0,1fr) auto;grid-gap:9px;gap:9px;align-items:start;padding:10px}.sourceItem pre{grid-column:1/-1;max-height:96px;margin:0;overflow:auto;border-top:1px solid var(--line-soft);padding-top:8px;color:var(--muted);white-space:pre-wrap;word-break:break-word;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.empty.compact,.inlineAlert.compact{margin:0}.taskList{grid-template-columns:repeat(2,minmax(0,1fr))}.taskListItem{min-height:58px;padding:10px}.taskListItem svg{margin-left:auto;flex:0 0 auto}.taskDetail{border-top:1px solid var(--line-soft);padding-top:12px}.taskDetailHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.taskDetailHead>div:first-child{display:grid;min-width:0;grid-gap:4px;gap:4px}.taskDetailHead strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.typewriter{min-height:54px;border:1px solid #cbded4;border-radius:8px;background:#f7fbf8;color:var(--accent-strong);padding:12px;white-space:pre-wrap;font-size:13px;font-weight:800;line-height:1.55}.eventList{display:grid;grid-gap:8px;gap:8px}.eventItem{display:grid;grid-template-columns:102px minmax(0,1fr) 170px;grid-gap:10px;gap:10px;align-items:start;border:1px solid var(--line-soft);border-radius:8px;background:#fff;padding:9px 10px}.eventItem span{color:var(--accent-strong);font-size:12px;font-weight:850}.eventItem strong{min-width:0;font-size:12px;line-height:1.45;overflow-wrap:anywhere}.eventItem small{text-align:right;overflow-wrap:anywhere}.artifactGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.artifactItem{min-height:62px;padding:11px 12px;text-decoration:none}.artifactItem svg:last-child{margin-left:auto;color:var(--accent);flex:0 0 auto}.adminGrid{margin-bottom:0}.loginShell{grid-template-columns:minmax(280px,.82fr) minmax(380px,1.18fr)}.loginIntro,.loginShell{display:grid;min-height:100dvh}.loginIntro{align-content:center;grid-gap:18px;gap:18px;padding:40px;background:var(--rail);color:#eef6f2}.loginIntro .eyebrow{color:#bfe9d7}.loginIntro h1{color:#fff}.loginBrandMark{display:grid;place-items:center;width:52px;height:52px;border:1px solid rgb(255 255 255/16%);border-radius:8px;background:rgb(255 255 255/8%);color:#d8fff0}.loginMeta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;color:var(--rail-muted);font-size:12px;font-weight:700}.loginMeta span{display:inline-flex;align-items:center;gap:7px}.loginMeta .ok{color:#c8f6df}.loginMeta .error{color:#ffd2c8}.loginMain{display:grid;align-content:center;min-width:0;padding:40px 24px}.loginCard{width:min(100%,480px);margin:0 auto}.loginCard>.loginForm,.loginCard>.loginSession,.loginCard>.notice{margin:14px 16px}.loginSession{display:grid;grid-gap:4px;gap:4px;border:1px dashed #cfd9d1;border-radius:8px;background:#fbfdfb;padding:12px}.loginSession small,.loginSession span{color:var(--muted);font-size:12px;font-weight:750}.loginSession strong{overflow:hidden;text-overflow:ellipsis}@media (max-width:1120px){.appShell{grid-template-columns:1fr}.sideRail{position:relative;height:auto;grid-template-rows:auto auto;padding:12px 14px}.railBrand{padding:0 0 10px}.railNav{display:flex;max-width:100%;min-width:0;overflow-x:auto;padding:10px 0 0}.railNavItem{flex:0 0 auto;min-width:178px}.railStatus{display:none}.topbar{top:0}.loginShell{grid-template-columns:1fr;align-content:start}.loginIntro{min-height:auto;padding:24px}}@media (max-width:980px){.artifactGrid,.grid.two,.operatorLayout,.statsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.assistantStatusGrid{grid-template-columns:1fr}.operatorArtifacts,.operatorComposer,.operatorTimeline{grid-column:1/-1}}@media (max-width:680px){.shell{width:100%;padding:12px 12px 28px}.topbar{position:static;align-items:flex-start;flex-direction:column;margin:-12px -12px 14px;padding:14px 12px 12px}.topActions{width:100%;justify-content:flex-start}.artifactGrid,.formGrid,.grid.two,.operatorLayout,.statsGrid,.taskList,.taskTypeGrid{grid-template-columns:1fr}.stat{min-height:96px}h1{font-size:24px}.endpoint{max-width:100%}.railNav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow-x:visible}.railNavItem{min-width:0;min-height:46px;justify-content:center;gap:7px;padding:7px 8px}.railNavItem small{display:none}.loginMain{padding:18px 12px 28px}.loginIntro{padding:18px 14px}.assistantStatusGrid{grid-template-columns:1fr}.operatorUpload,.taskDetailHead{align-items:stretch;flex-direction:column}.eventItem{grid-template-columns:1fr}.eventItem small{text-align:left}.qrSession{grid-template-columns:1fr}.qrFrame{width:100%;min-height:160px}}