:root{--bg:#0b0d10;--panel:#11151a;--panel-2:#171c22;--line:#252c35;--text:#f4f6f8;--muted:#929ca8;--accent:#4ea1ff;--green:#38d890;--red:#ff6675;--shadow:0 24px 80px rgba(0,0,0,.28)}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;color:var(--text);background:radial-gradient(circle at 20% -10%,rgba(45,120,220,.16),transparent 32rem),var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.mobile-only,.menu-button,.close-menu{display:none!important}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);padding:36px;border:1px solid var(--line);border-radius:24px;background:rgba(17,21,26,.92);box-shadow:var(--shadow)}.brand-mark,.empty-icon{display:grid;place-items:center;width:52px;height:52px;margin-bottom:22px;color:#0b0d10;background:var(--text);border-radius:15px;font-weight:800}.login-card h1{margin:0 0 10px;font-size:26px}.login-card>p{margin:0 0 28px;color:var(--muted);line-height:1.6}
label{display:block;margin-bottom:8px;color:#cbd2d9;font-size:14px;font-weight:650}input,textarea{width:100%;color:var(--text);border:1px solid var(--line);outline:none;background:#0c1014}select:not(.visually-hidden){appearance:none;-webkit-appearance:none;color-scheme:dark;color:var(--text);border:1px solid #303946;border-radius:10px;background-color:#11171d;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23aeb9c5' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;background-size:11px 8px;padding-right:31px!important;outline:none;transition:border-color .16s ease,box-shadow .16s ease}select:not(.visually-hidden):hover{border-color:#455566;background-color:#171d24}select:not(.visually-hidden):focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(78,161,255,.12)}select:not(.visually-hidden) option{color:var(--text);background:#171c22}input{height:44px;padding:0 13px;border-radius:11px}textarea{min-height:90px;padding:15px;border:0;resize:vertical;line-height:1.55}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(78,161,255,.12)}button{border:0;border-radius:11px}.primary{min-height:42px;padding:0 16px;color:#061321;background:linear-gradient(180deg,#66b1ff,var(--accent));font-weight:800}.primary:disabled{cursor:wait;opacity:.55}.wide{width:100%}.login-card .wide{margin-top:18px}.secondary,.danger,.ghost{min-height:40px;padding:0 13px;color:var(--text);border:1px solid var(--line);background:var(--panel-2)}.danger{color:#ffd8dc;border-color:rgba(255,102,117,.35);background:rgba(255,102,117,.08)}.ghost{background:transparent}.small{min-height:34px;padding:0 10px;font-size:13px}.danger-text{color:#ff9ca6}.error-text{min-height:22px;margin:12px 0 0!important;color:var(--red)!important;font-size:14px}
.custom-select{position:relative;min-width:0;width:100%}.custom-select-native{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important;clip:rect(0 0 0 0)!important}.custom-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;height:40px;margin-top:7px;padding:0 10px;color:var(--text);border:1px solid #303946;border-radius:10px;background:#11171d;text-align:left;font-size:12px}.custom-select-trigger:hover,.custom-select.open .custom-select-trigger{border-color:var(--accent);background:#171d24}.custom-select-trigger:disabled{cursor:not-allowed;opacity:.55}.custom-select-trigger b{color:#aeb9c5;font-size:16px;font-weight:400}.custom-select-menu{position:fixed;top:0;left:0;z-index:1000;display:none;max-height:240px;overflow-y:auto;padding:5px;border:1px solid #3a4652;border-radius:11px;background:#20262d;box-shadow:0 16px 42px rgba(0,0,0,.52)}.custom-select-menu.custom-select-menu-open{display:grid;gap:2px}.custom-select-option{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:34px;padding:0 9px;color:#edf2f6;border:0;border-radius:8px;background:transparent;text-align:left;font-size:12px}.custom-select-option:hover,.custom-select-option.selected{background:#34404b}.custom-select-option>b{color:#fff;font-size:16px;font-weight:500;opacity:0}.custom-select-option.selected>b{opacity:1}.custom-select-option:disabled{cursor:not-allowed;opacity:.45}
.app-shell{width:min(1440px,calc(100% - 32px));height:100%;margin:auto;padding:18px 0 28px}.topbar{display:flex;align-items:center;justify-content:space-between;height:66px}.topbar h1{margin:2px 0 0;font-size:22px}.eyebrow{color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.18em}.top-actions{display:flex;align-items:center;gap:10px}.status-pill{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;color:#cbd3db;border:1px solid var(--line);border-radius:99px;background:var(--panel);font-size:13px}.status-pill i{width:7px;height:7px;background:var(--green);border-radius:50%}.status-pill.running i,.status-pill.starting i{background:var(--accent);box-shadow:0 0 0 5px rgba(78,161,255,.1);animation:pulse 1.5s infinite}.status-pill.failed i{background:var(--red)}@keyframes pulse{50%{opacity:.35}}
.workspace{display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px;height:calc(100% - 66px);min-height:540px}.side-card,.conversation-card{border:1px solid var(--line);background:rgba(17,21,26,.9);box-shadow:var(--shadow);border-radius:18px}.side-card{display:flex;flex-direction:column;min-height:0;padding:16px}.sidebar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.conversation-list{min-height:90px;overflow-y:auto;margin:12px -5px;padding:0 5px}.conversation-item{display:block;width:100%;margin-bottom:5px;padding:10px 11px;color:var(--text);text-align:left;border:1px solid transparent;background:transparent}.conversation-item:hover{background:var(--panel-2)}.conversation-item.active{border-color:rgba(78,161,255,.4);background:rgba(78,161,255,.1)}.conversation-item span,.conversation-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-item span{font-size:13px;font-weight:700}.conversation-item small{margin-top:4px;color:var(--muted);font-size:11px}.sidebar-tools{padding-top:14px;border-top:1px solid var(--line)}.field small{display:block;margin-top:6px;color:var(--muted);font-size:11px}.info-block{padding:11px 0;border-bottom:1px solid var(--line)}.info-block span,.info-block strong{display:block}.info-block span{margin-bottom:5px;color:var(--muted);font-size:11px}.info-block strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.sidebar-tools>button{margin-top:10px}.safety-note{margin-top:13px;padding:11px;border:1px solid rgba(56,216,144,.18);border-radius:11px;background:rgba(56,216,144,.05)}.safety-note strong{color:#86e7ba;font-size:11px}.safety-note p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.usage-dashboard-button{display:grid;grid-template-columns:30px 1fr;column-gap:9px;align-items:center;margin-top:12px;padding:10px;border:1px solid rgba(139,120,255,.4);border-radius:11px;background:rgba(107,85,230,.13);color:#f7f5ff;text-decoration:none}.usage-dashboard-button>span{grid-row:1/3}.usage-dashboard-button strong{font-size:12px}.usage-dashboard-button small{color:#aaa6c2;font-size:9px}
.conversation-card{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.conversation-header{display:flex;align-items:center;justify-content:space-between;flex:0 0 58px;padding:0 22px;border-bottom:1px solid var(--line)}.conversation-header h2{overflow:hidden;margin:0;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.conversation-header>div{display:flex;gap:6px}.message-viewport{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.empty-state{display:grid;place-items:center;align-content:center;min-height:100%;padding:40px 20px;text-align:center}.empty-state h2{margin:0 0 10px;font-size:22px}.empty-state p{max-width:460px;margin:0;color:var(--muted);line-height:1.6}.messages{padding:28px 34px}.message{display:grid;grid-template-columns:34px minmax(0,1fr);gap:13px;max-width:920px;margin:0 auto 26px}.message-body{min-width:0}.avatar{display:grid;place-items:center;width:34px;height:34px;color:#0b0d10;border-radius:10px;background:var(--text);font-size:12px;font-weight:900}.message.user .avatar{color:#dbeaff;background:#1d4d82}.message-meta{margin:1px 0 7px;color:var(--muted);font-size:12px}.message-content{min-width:0;color:#e7ebef;line-height:1.72;overflow-wrap:anywhere}.message-content p{margin:0 0 12px}.message-content pre{max-width:100%;overflow-x:auto;margin:14px 0;padding:15px;border:1px solid var(--line);border-radius:10px;background:#080a0d;white-space:pre}.message-content code{font-family:"Cascadia Code","SFMono-Regular",Consolas,monospace;font-size:13px}
.message.user{grid-template-columns:minmax(0,720px) 34px;justify-content:end}.message.user .avatar{grid-column:2;grid-row:1}.message.user .message-body{grid-column:1;grid-row:1;justify-self:end;max-width:100%}.message.user .message-meta{text-align:right}.message.user .message-content{padding:10px 13px;color:#e5f1ff;border:1px solid rgba(78,161,255,.25);border-radius:13px 4px 13px 13px;background:rgba(29,77,130,.3)}.message.user .message-content p{margin-bottom:8px}.message.user .message-content p:last-child{margin-bottom:0}.message.user .message-attachments{justify-content:flex-end}
.jump-latest{position:sticky;right:16px;bottom:12px;z-index:4;float:right;margin:-48px 16px 12px 0;padding:8px 12px;color:#dcecff;border:1px solid #315b86;border-radius:99px;background:#13283d;box-shadow:0 8px 28px rgba(0,0,0,.38);font-size:12px}
.activity{flex:0 0 auto;max-height:105px;overflow:auto;margin:0 20px 8px;padding:10px 13px;color:#b9c4cf;border:1px solid var(--line);border-radius:10px;background:#080b0e;font-size:12px}.activity strong{color:var(--accent)}.activity pre{margin:6px 0 0;color:var(--muted);white-space:pre-wrap}.composer{flex:0 0 auto;margin:0 20px 20px;overflow:visible;border:1px solid #303946;border-radius:15px;background:#0c1014;box-shadow:0 16px 50px rgba(0,0,0,.3)}.composer-footer{display:flex;align-items:center;justify-content:space-between;padding:9px 10px 10px 14px;border-top:1px solid #1d242c}.check-row{display:flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:12px;font-weight:500}.check-row input{width:15px;height:15px;margin:0;accent-color:var(--accent)}.composer .primary{display:flex;align-items:center;gap:12px}
@media(max-width:760px){body.drawer-open{overflow:hidden}.app-shell{width:100%;padding:0}.topbar{height:60px;padding:0 10px;border-bottom:1px solid var(--line)}.brand-title{flex:1;margin-left:9px}.topbar h1{font-size:17px}.eyebrow,.desktop-only{display:none!important}.mobile-only,.menu-button,.close-menu{display:block!important}.icon-button{width:38px;height:38px;color:var(--text);background:transparent;font-size:21px}.workspace{display:block;height:calc(100% - 60px);min-height:0}.side-card{position:fixed;top:0;bottom:0;left:0;z-index:20;width:min(86vw,330px);padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));border:0;border-radius:0;transform:translateX(-105%);transition:transform .22s ease}.side-card.open{transform:translateX(0)}.drawer-backdrop{position:fixed;inset:0;z-index:19;display:block!important;background:rgba(0,0,0,.62)}.conversation-list{flex:1}.sidebar-tools{flex:0 0 auto}.safety-note{display:none}.conversation-card{height:100%;border:0;border-radius:0}.conversation-header{flex-basis:50px;padding:0 12px}.conversation-header h2{font-size:14px}.messages{padding:20px 12px}.message{grid-template-columns:30px minmax(0,1fr);gap:9px}.avatar{width:30px;height:30px}.message-content pre{-webkit-overflow-scrolling:touch}.activity{margin:0 8px 6px}.composer{margin:0 8px max(8px,env(safe-area-inset-bottom))}.composer textarea{min-height:74px;max-height:32vh}.check-row{max-width:128px}.empty-state{padding:24px 16px}.status-pill{padding:0 9px}.top-actions{gap:4px}}

.code-block{position:relative;max-width:100%;margin:14px 0}.code-block .copy-code{position:absolute;top:7px;right:7px;z-index:1;min-height:27px;padding:0 9px;color:var(--muted);border:1px solid var(--line);border-radius:7px;background:#14191f;font-size:11px}.code-block pre{margin:0;padding-top:42px}.composer-options{display:flex;align-items:center;gap:14px}.upload-button{margin:0;padding:5px 8px;color:#bcdcff;border:1px solid #29496c;border-radius:7px;font-size:12px;cursor:pointer}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.attachment-list{display:flex;gap:7px;overflow-x:auto;padding:9px 12px 0}.attachment-chip{display:flex;flex:0 0 auto;align-items:center;max-width:230px;padding:5px 5px 5px 8px;color:#cfe4fa;border:1px solid #29496c;border-radius:8px;background:#101d2b;font-size:11px;white-space:nowrap}.attachment-name{min-width:0;overflow:hidden;text-overflow:ellipsis}.attachment-chip button{display:grid;flex:0 0 25px;place-items:center;width:25px;height:25px;margin-left:5px;color:#d4deea;background:#243140;font-size:15px}
.live-messages{padding-top:0}.message.draft{opacity:.9}.message.draft .message-meta::after{content:" · 正在回复";color:var(--accent)}
.run-settings{display:flex;gap:8px;overflow-x:auto;padding:8px 10px;border-top:1px solid #1d242c}.run-settings label{display:flex;flex:1 0 145px;align-items:center;gap:7px;margin:0;color:var(--muted);font-size:10px}.run-settings select{min-width:0;width:100%;height:32px;padding:0 8px;color:var(--text);border:1px solid var(--line);border-radius:8px;background:#11171d;font-size:11px}
.message-attachments{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.message-attachments span{display:block;max-width:100%;overflow:hidden;padding:6px 9px;color:#bcdcff;border:1px solid #29496c;border-radius:8px;background:#101d2b;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.activity:not(.hidden) strong::before{content:"";display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(78,161,255,.1);animation:pulse 1.5s infinite}
.memory-button{display:flex;align-items:center;justify-content:space-between;text-align:left}.memory-button small{max-width:120px;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.72)}.memory-modal{width:min(720px,100%);max-height:min(760px,calc(100vh - 36px));overflow:auto;padding:22px;border:1px solid var(--line);border-radius:17px;background:var(--panel);box-shadow:var(--shadow)}.memory-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.memory-modal-head h2{margin:0 0 6px;font-size:20px}.memory-modal-head p{margin:0 0 18px;color:var(--muted);font-size:12px;line-height:1.5}.memory-modal-head .icon-button{flex:0 0 36px;width:36px;height:36px;color:var(--text);background:transparent;font-size:23px}.memory-modal textarea{min-height:320px;border:1px solid var(--line);border-radius:12px;resize:vertical}.memory-hint{margin-top:7px;color:var(--muted);text-align:right;font-size:11px}.memory-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:14px}.memory-actions button{min-width:110px}
.data-modal{width:min(760px,100%)}.data-section{padding:16px 0;border-top:1px solid var(--line)}.data-section:first-of-type{border-top:0}.data-section h3{margin:0 0 7px;font-size:14px}.data-section p,.muted-text{margin:0 0 12px;color:var(--muted);font-size:11px;line-height:1.5}.data-actions{display:flex;flex-wrap:wrap;gap:8px}.import-file-button{display:inline-block}.session-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.session-list{display:grid;gap:7px;max-height:300px;overflow:auto}.session-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#0c1014}.session-item>div{min-width:0}.session-item strong,.session-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-item strong{font-size:12px}.session-item small{margin-top:4px;color:var(--muted);font-size:10px}.session-item button{flex:0 0 auto}
.import-memory-row{margin:0 0 12px}
.conversation-list{flex:1}.conversation-group-title{padding:7px 8px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em}.conversation-item{position:relative;padding-right:36px}.conversation-more{position:absolute;top:50%;right:7px;display:grid;place-items:center;width:25px;height:25px;color:var(--muted);border-radius:6px;transform:translateY(-50%);font-size:10px;letter-spacing:-1px}.conversation-more:hover{color:var(--text);background:rgba(255,255,255,.07)}.project-group{margin:5px 0}.project-group>summary{padding:8px;color:#cbd2d9;cursor:pointer;font-size:11px;font-weight:750}.project-group>summary span{float:right;color:var(--muted)}.project-group .conversation-item{margin-left:7px;width:calc(100% - 7px)}.queue-panel{flex:0 0 auto;max-height:210px;overflow:auto;margin:4px -2px 10px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#0c1014}.queue-panel>summary{color:#cbd2d9;cursor:pointer;font-size:11px;font-weight:750}.queue-panel>summary span{float:right;color:var(--accent)}.queue-list{display:grid;gap:6px;margin-top:8px}.queue-item{display:flex;align-items:center;gap:7px;padding:7px;border-radius:8px;background:var(--panel-2)}.queue-item>div{min-width:0;flex:1}.queue-item strong,.queue-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-item strong{font-size:10px}.queue-item small{margin-top:3px;color:var(--muted);font-size:9px}.queue-item button{flex:0 0 24px;width:24px;height:24px;color:var(--muted);background:transparent}.context-menu{position:fixed;z-index:80;width:170px;padding:6px;border:1px solid var(--line);border-radius:11px;background:#171c22;box-shadow:0 18px 50px rgba(0,0,0,.5)}.context-menu button{display:block;width:100%;padding:9px 10px;color:var(--text);text-align:left;background:transparent;font-size:12px}.context-menu button:hover{background:rgba(255,255,255,.07)}
.queue-empty{display:block;padding:7px 2px;color:var(--muted);font-size:10px;text-align:center}
.test-project-panel{margin-top:0}
.test-project-list{display:grid;gap:6px;margin-top:8px}
.test-project-link{display:grid;grid-template-columns:26px minmax(0,1fr) 16px;align-items:center;gap:7px;padding:8px;color:var(--text);border:1px solid rgba(78,161,255,.22);border-radius:8px;background:rgba(78,161,255,.06);text-decoration:none}
.test-project-link:hover{border-color:rgba(78,161,255,.48);background:rgba(78,161,255,.12)}
.test-project-icon{display:grid;place-items:center;width:25px;height:25px;color:#b9d8ff;border:1px solid rgba(78,161,255,.32);border-radius:8px;background:#102238;font-size:14px}
.test-project-copy{min-width:0}.test-project-copy strong,.test-project-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.test-project-copy strong{font-size:10px}.test-project-copy small{margin-top:3px;color:var(--muted);font-size:9px}.test-project-link>b{color:#9dc9f5;font-size:18px;font-weight:500}
.node-switcher{display:grid;gap:7px;margin-bottom:10px;padding:10px;border:1px solid rgba(78,161,255,.24);border-radius:11px;background:rgba(78,161,255,.055)}.node-switcher>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.node-switcher span{color:#b9c8d7;font-size:10px;font-weight:800;letter-spacing:.08em}.node-switcher a{color:#8fc5ff;text-decoration:none;font-size:9px}.node-switcher select{width:100%;height:36px;padding:0 10px;font-size:11px;font-weight:750}.node-switcher small{color:var(--muted);font-size:9px;line-height:1.4}

/* Static preview for the future controller + Runner workspace. No API or task action is wired here. */
.prototype-page{min-height:100%;background:radial-gradient(circle at 88% 0,rgba(78,161,255,.13),transparent 30rem),radial-gradient(circle at 14% 16%,rgba(56,216,144,.055),transparent 26rem),var(--bg)}
.prototype-shell{width:min(1160px,calc(100% - 40px));margin:0 auto;padding:22px 0 56px}
.prototype-topbar{display:flex;align-items:center;justify-content:space-between;min-height:44px;margin-bottom:46px}.prototype-back{display:inline-flex;align-items:center;gap:8px;color:#bfdcff;text-decoration:none;font-size:13px;font-weight:700}.prototype-back:hover{color:#fff}.prototype-badge{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;color:#c4b7ff;border:1px solid rgba(139,120,255,.35);border-radius:999px;background:rgba(107,85,230,.13);font-size:10px;font-weight:800}.prototype-badge.muted{color:var(--muted);border-color:var(--line);background:#171c22}
.prototype-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:25px;padding:30px;border:1px solid rgba(78,161,255,.24);border-radius:22px;background:linear-gradient(135deg,rgba(23,38,57,.88),rgba(17,21,26,.92));box-shadow:var(--shadow)}.prototype-kicker{margin:0 0 8px;color:#8fc0ff;font-size:10px;font-weight:850;letter-spacing:.16em}.prototype-hero h1{margin:0;font-size:32px}.prototype-hero p:not(.prototype-kicker){max-width:640px;margin:12px 0 0;color:var(--muted);font-size:13px;line-height:1.65}.prototype-hero .primary:disabled{min-width:150px;color:#7e8a95;background:#27323d;opacity:1}
.controller-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:34px}.controller-summary>div{padding:17px 19px;border:1px solid var(--line);border-radius:15px;background:rgba(17,21,26,.88)}.controller-summary span,.controller-summary strong,.controller-summary small{display:block}.controller-summary span{color:var(--muted);font-size:11px}.controller-summary strong{margin-top:9px;font-size:28px}.controller-summary small{margin-top:5px;color:#9eabb7;font-size:10px}
.prototype-section{margin-top:30px}.prototype-section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 0 13px}.prototype-section-head h2{margin:0;font-size:19px}.prototype-section-head .prototype-kicker{margin-bottom:5px}.prototype-muted{max-width:380px;color:var(--muted);text-align:right;font-size:11px;line-height:1.45}
.node-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.node-card{display:flex;flex-direction:column;min-width:0;min-height:270px;padding:16px;border:1px solid var(--line);border-radius:15px;background:rgba(17,21,26,.86);transition:border-color .16s ease,transform .16s ease}.node-card:hover{border-color:#415160;transform:translateY(-1px)}.node-card.selected{border-color:rgba(78,161,255,.55);background:rgba(35,75,113,.17)}.node-card-head{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:7px}.node-card-head strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.node-card-head>span:last-child{color:var(--muted);font-size:9px}.node-status{width:8px;height:8px;border-radius:99px}.node-status.online{background:var(--green);box-shadow:0 0 0 4px rgba(56,216,144,.09)}.node-status.offline{background:#6e7781}.node-meta{margin:10px 0 13px;color:var(--muted);font-size:10px;line-height:1.45}.node-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}.node-metrics>div{min-width:0}.node-metrics dt{color:var(--muted);font-size:9px}.node-metrics dd{margin:4px 0 0}.node-metrics strong{display:block;overflow:hidden;color:#e8edf2;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.node-metrics i{display:block;height:4px;margin-top:6px;overflow:hidden;border-radius:99px;background:#28303a}.node-metrics b{display:block;width:var(--metric-value,0%);height:100%;border-radius:inherit;background:var(--green)}.node-metrics b.metric-warn{background:#ffb648}.node-metrics b.metric-danger{background:var(--red)}.node-traffic{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.node-traffic span,.node-traffic strong{display:block}.node-traffic span{color:var(--muted);font-size:9px}.node-traffic strong{margin-top:4px;color:#dfe6ed;font-size:11px}.node-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}.node-card-footer small{overflow:hidden;color:#b8c4cf;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.node-card-footer b{flex:0 0 auto;margin-left:8px;color:var(--muted);font-size:18px;font-weight:500}.offline-card{background:rgba(17,21,26,.55)}.offline-card .node-meta,.offline-card .node-traffic,.unavailable-metrics{opacity:.52}
.prototype-task-preview{padding:20px;border:1px solid var(--line);border-radius:18px;background:rgba(17,21,26,.78)}.task-preview-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px;border:1px dashed #35414d;border-radius:12px;background:#0d1116}.task-preview-icon{display:grid;place-items:center;width:38px;height:38px;color:#9fcaff;border:1px solid #31516e;border-radius:11px;background:#102238;font-size:19px}.task-preview-card strong{font-size:13px}.task-preview-card p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.5}

/* Interactive batch-task prototype. It is browser-local and never dispatches commands. */
.batch-workspace{padding:20px;border:1px solid rgba(78,161,255,.2);border-radius:20px;background:rgba(12,16,20,.72);box-shadow:0 18px 60px rgba(0,0,0,.2)}
.batch-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;min-height:650px}
.batch-task-sidebar,.batch-chat-card{min-width:0;border:1px solid var(--line);border-radius:15px;background:rgba(17,21,26,.94)}
.batch-task-sidebar{display:flex;min-height:0;flex-direction:column;padding:11px}
.batch-task-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 11px;border-bottom:1px solid var(--line)}
.batch-task-sidebar-head strong,.batch-task-sidebar-head small{display:block}.batch-task-sidebar-head strong{font-size:12px}.batch-task-sidebar-head small{margin-top:3px;color:var(--muted);font-size:8px}
.batch-new-button{display:grid;flex:0 0 30px;place-items:center;width:30px;height:30px;color:#cfe6ff;border:1px solid rgba(78,161,255,.3);border-radius:8px;background:rgba(78,161,255,.08);font-size:17px}.batch-new-button:hover{border-color:rgba(78,161,255,.65);background:rgba(78,161,255,.16)}
.batch-task-list{display:grid;align-content:start;gap:5px;min-height:0;overflow-y:auto;padding:9px 0 0;overscroll-behavior:contain;scrollbar-width:thin}
.batch-task-list-empty{margin:18px 0;color:var(--muted);text-align:center;font-size:10px}
.batch-task-item{width:100%;padding:9px;color:#dfe6ed;border:1px solid transparent;border-radius:10px;background:transparent;text-align:left}.batch-task-item:hover{background:#171d23}.batch-task-item.active{border-color:rgba(78,161,255,.34);background:rgba(78,161,255,.09)}
.batch-task-item>span{display:flex;align-items:center;gap:7px}.batch-task-item strong{min-width:0;flex:1;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.batch-task-item i{flex:0 0 auto;padding:3px 5px;color:#aeb8c2;border-radius:999px;background:#242b33;font-size:7px;font-style:normal}.batch-task-item i.running{color:#a9d4ff;background:#17304a}.batch-task-item i.completed{color:#9be7c3;background:#123328}.batch-task-item i.queued{color:#e8d59a;background:#3a321b}.batch-task-item i.cancelled,.batch-task-item i.interrupted{color:#d6a6ab;background:#3a2024}.batch-task-item small{display:block;overflow:hidden;margin-top:5px;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.batch-chat-card{display:flex;height:650px;min-height:0;flex-direction:column;overflow:hidden}
.batch-chat-head{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:14px;min-height:67px;padding:12px 15px;border-bottom:1px solid var(--line)}.batch-chat-head>div{min-width:0}.batch-chat-head h3{overflow:hidden;margin:4px 0 3px;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.batch-chat-head small{display:block;overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.batch-state{display:inline-flex;align-items:center;min-height:20px;padding:0 7px;color:#aab5c0;border-radius:999px;background:#232b33;font-size:8px;font-weight:800}.batch-state.running{color:#aed8ff;background:#16314c}.batch-state.running::before{width:5px;height:5px;margin-right:5px;border-radius:50%;background:var(--accent);animation:pulse 1.4s infinite;content:""}.batch-state.queued{color:#f0da9c;background:#3a3018}.batch-state.completed{color:#94e8bd;background:#123529}.batch-state.cancelled,.batch-state.interrupted{color:#e6aab0;background:#3a2025}
.batch-messages{flex:1;min-height:220px;overflow-y:auto;padding:18px;overscroll-behavior:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.batch-empty{display:grid;place-items:center;align-content:center;min-height:100%;padding:30px;color:var(--muted);text-align:center}.batch-empty>span{display:grid;place-items:center;width:44px;height:44px;margin-bottom:13px;color:#acd4ff;border:1px solid #315675;border-radius:13px;background:#10243a;font-size:22px}.batch-empty strong{color:#e8edf2;font-size:14px}.batch-empty p{max-width:430px;margin:8px 0 0;font-size:10px;line-height:1.6}
.batch-message{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;max-width:84%;margin-bottom:15px;animation:batch-message-in .18s ease-out}.batch-message.user{grid-template-columns:minmax(0,1fr) 30px;margin-left:auto}.batch-message.user .batch-message-avatar{grid-column:2;grid-row:1;color:#dcebfb;background:#225184}.batch-message.user .batch-message-body{grid-column:1;grid-row:1;border-color:rgba(78,161,255,.3);border-radius:12px 4px 12px 12px;background:rgba(32,77,119,.28)}.batch-message.summary .batch-message-avatar{color:#0b1712;background:#75dfad}.batch-message.summary .batch-message-body{border-color:rgba(56,216,144,.3);background:rgba(33,91,68,.16)}.batch-message.node.warning .batch-message-body{border-color:rgba(255,182,72,.34);background:rgba(113,76,21,.12)}
.batch-message-avatar{display:grid;place-items:center;width:30px;height:30px;color:#d9eaff;border:1px solid rgba(78,161,255,.25);border-radius:9px;background:#173653;font-size:9px;font-weight:900}.batch-message-body{min-width:0;padding:10px 11px;border:1px solid #29323b;border-radius:4px 12px 12px;background:#12171d}.batch-message-body header{display:flex;align-items:center;gap:7px}.batch-message-body header strong{min-width:0;overflow:hidden;color:#dfe7ef;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.batch-message-body time{margin-left:auto;color:#798590;font-size:7px;white-space:nowrap}.batch-message-body p{margin:6px 0 0;color:#bec8d1;font-size:10px;line-height:1.55;white-space:pre-wrap}.batch-message-status{padding:2px 5px;color:#a9d7ff;border-radius:999px;background:#18324b;font-size:7px}.batch-message-status.queued{color:#e8d59a;background:#3a321b}.batch-message-status.cancelled,.batch-message-status.interrupted{color:#e0a7ad;background:#3a2024}
@keyframes batch-message-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.batch-composer{flex:0 0 auto;padding:13px 15px 15px;border-top:1px solid var(--line);background:#0d1116}.batch-composer>label{margin-bottom:6px;font-size:10px}.batch-composer textarea{min-height:66px;max-height:150px;padding:10px 11px;border:1px solid #2d3741;border-radius:10px;background:#090d11;font-size:11px;resize:vertical}
.batch-node-picker{margin:9px 0 0;padding:9px 10px 10px;border:1px solid #252e37;border-radius:10px}.batch-node-picker legend{padding:0 5px;color:#b9c4ce;font-size:9px;font-weight:750}.batch-node-picker-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.batch-node-picker-head small{color:var(--muted);font-size:8px}.batch-node-picker-head button{min-height:25px;font-size:8px}
.batch-node-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.batch-node-option{display:grid;grid-template-columns:14px 7px minmax(0,1fr);align-items:center;gap:5px;min-width:0;margin:0;padding:7px;border:1px solid #29333d;border-radius:8px;background:#11171d;cursor:pointer}.batch-node-option:has(input:checked){border-color:rgba(78,161,255,.5);background:rgba(78,161,255,.09)}.batch-node-option.offline{cursor:not-allowed;opacity:.48}.batch-node-option input{width:13px;height:13px;margin:0;accent-color:var(--accent)}.batch-node-option>i{width:6px;height:6px;border-radius:50%;background:#68727c}.batch-node-option>i.online{background:var(--green)}.batch-node-option span{min-width:0}.batch-node-option strong,.batch-node-option small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-node-option strong{font-size:8px}.batch-node-option small{margin-top:2px;color:var(--muted);font-size:7px}
.batch-composer-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:9px}.batch-composer-controls{display:flex;align-items:flex-end;gap:8px;min-width:0}.batch-strategy-field{min-width:170px;margin:0}.batch-strategy-field span,.batch-run-settings-wrap>span{display:block;margin-bottom:5px;color:var(--muted);font-size:8px}.batch-strategy-field select{width:100%;height:34px;padding:0 9px;font-size:9px}.batch-strategy-field .custom-select-trigger{height:34px;margin-top:0;font-size:9px}.batch-run-settings-wrap{position:relative;min-width:190px}.batch-run-settings-button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:34px;padding:0 9px;color:#dce8f4;border:1px solid #303946;border-radius:10px;background:#11171d;text-align:left}.batch-run-settings-button:hover,.batch-run-settings-button[aria-expanded="true"]{border-color:rgba(78,161,255,.55);background:#17212a}.batch-run-settings-button:disabled{cursor:not-allowed;opacity:.5}.batch-run-settings-button strong{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.batch-run-settings-button b{color:#8fa1b2;font-size:12px}.batch-run-settings-popover{position:absolute;bottom:calc(100% + 8px);left:0;z-index:12;display:grid;gap:10px;width:310px;padding:13px;border:1px solid #3b4a58;border-radius:13px;background:#1b2229;box-shadow:0 18px 50px rgba(0,0,0,.58)}.batch-run-settings-popover label{margin:0;color:#b8c3ce;font-size:9px}.batch-run-settings-popover select{width:100%;height:35px;margin-top:5px;padding:0 9px;font-size:9px}.batch-run-settings-popover .custom-select-trigger{height:35px;margin-top:5px;font-size:9px}.controller-custom-select-menu{scrollbar-color:#596978 transparent;scrollbar-width:thin}.batch-run-settings-reset{min-height:32px;color:#b7c7d6;border-top:1px solid #303944;border-radius:0;background:transparent;text-align:left;font-size:9px}.batch-run-settings-reset:hover{color:#fff}.batch-run-settings-popover>small{color:#8995a0;font-size:8px;line-height:1.45}.batch-send-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.batch-send-actions small{color:var(--muted);font-size:8px}.batch-send-actions small.warning{color:#ffb648}.batch-send-actions .primary{min-height:36px;font-size:10px}

/* The probe card body is a two-page, keyboard-accessible switcher. */
.node-card{min-height:350px}.node-card-switch{display:flex;flex:1;flex-direction:column;width:calc(100% + 12px);min-height:245px;margin:4px -6px 10px;padding:0 6px;color:inherit;border:1px solid transparent;border-radius:12px;background:transparent;text-align:left}.node-card-switch:hover{border-color:rgba(78,161,255,.2);background:rgba(78,161,255,.035)}.node-card-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.node-card-page{width:100%}.node-card-page-details{padding-top:10px}.node-page-dots{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:auto;padding:12px 0 2px;color:var(--muted)}.node-page-dots>i{width:5px;height:5px;border-radius:99px;background:#46515d;transition:width .16s ease,background .16s ease}.node-page-dots>i.active{width:15px;background:var(--accent)}.node-page-dots>small{margin-left:5px;font-size:8px}.node-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 12px;margin:0}.node-details>div{min-width:0}.node-details .node-detail-wide{grid-column:1/-1}.node-details dt{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.node-details dd{overflow:hidden;margin:3px 0 0;color:#e3e9ef;font-size:10px;font-weight:700;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.node-card-footer{gap:10px}.node-card-footer small{flex:1}.node-workbench-link{display:inline-flex;flex:0 0 auto;align-items:center;min-height:28px;padding:0 9px;color:#cce5ff;border:1px solid rgba(78,161,255,.35);border-radius:8px;background:rgba(78,161,255,.09);text-decoration:none;font-size:9px;font-weight:750;white-space:nowrap}.node-workbench-link:hover{border-color:rgba(78,161,255,.7);background:rgba(78,161,255,.17)}.node-workbench-link.unavailable{cursor:not-allowed;color:#77818b;border-color:#2b323a;background:#151a20}.offline-card .node-card-switch{opacity:.68}
.node-card{position:relative;height:320px;min-height:320px;transition:border-color .18s ease,transform .32s cubic-bezier(.2,.75,.25,1),box-shadow .32s ease}.node-card.detail-open{z-index:3;border-color:rgba(78,161,255,.55);transform:translateY(-7px) scale(1.012);box-shadow:0 24px 58px rgba(0,0,0,.52),0 0 0 1px rgba(78,161,255,.08)}.node-card-switch{position:relative;display:block;flex:0 0 210px;width:calc(100% + 12px);height:210px;min-height:0;margin:7px -6px 8px;padding:0 6px;border:0;background:transparent;perspective:1100px}.node-card-switch:hover{border-color:transparent;background:transparent}.node-card-flipper{position:relative;width:100%;height:184px;transform-style:preserve-3d;transition:transform .58s cubic-bezier(.2,.72,.2,1)}.node-card-switch.show-details .node-card-flipper{transform:rotateY(180deg)}.node-card-page{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;padding:10px;border:1px solid rgba(54,66,78,.72);border-radius:12px;background:linear-gradient(145deg,rgba(19,25,31,.98),rgba(12,16,20,.97));backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 8px 22px rgba(0,0,0,.12)}.node-card-page-metrics .node-meta{margin-top:0}.node-card-page-details{padding:11px 12px;transform:rotateY(180deg);border-color:rgba(78,161,255,.34);background:linear-gradient(145deg,rgba(19,36,52,.98),rgba(14,19,25,.99));box-shadow:inset 0 1px rgba(255,255,255,.025),0 14px 34px rgba(0,0,0,.34)}.node-page-dots{position:absolute;right:0;bottom:0;left:0;height:23px;margin:0;padding:6px 0 0}.node-details{gap:7px 12px}.node-details dt{font-size:7px}.node-details dd{font-size:9px}.node-card-footer{min-height:39px;padding-top:9px}.node-card-footer small{font-size:9px}
@media(prefers-reduced-motion:reduce){.node-card,.node-card-flipper{transition:none}.node-card.detail-open{transform:none}}
.node-card-page-details{overflow-x:hidden;overflow-y:auto;padding:0 12px 13px;overscroll-behavior:contain;scrollbar-color:#4e6680 transparent;scrollbar-width:thin;touch-action:pan-y;-webkit-overflow-scrolling:touch}.node-detail-toolbar{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 8px;margin:0 -4px 11px;padding:10px 4px 8px;border-bottom:1px solid rgba(78,161,255,.2);background:linear-gradient(180deg,#132434 78%,rgba(19,36,52,0))}.node-detail-toolbar strong{font-size:12px}.node-detail-toolbar span{grid-column:1;color:#8e9ba8;font-size:9px}.node-detail-back{grid-column:2;grid-row:1/3;min-height:28px;padding:0 8px;color:#cfe7ff;border:1px solid rgba(78,161,255,.32);border-radius:7px;background:rgba(78,161,255,.09);font-size:9px}.node-detail-back:hover{background:rgba(78,161,255,.18)}.node-details{gap:12px 14px;padding-bottom:4px}.node-details dt{font-size:10px;line-height:1.25}.node-details dd{overflow:visible;margin-top:4px;font-size:12px;line-height:1.4;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}.node-card-page-details::-webkit-scrollbar{width:5px}.node-card-page-details::-webkit-scrollbar-thumb{border-radius:99px;background:#4e6680}.node-card-page-details::-webkit-scrollbar-track{background:transparent}
.node-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.node-card{padding:18px}.node-card-head{grid-template-columns:10px minmax(0,1fr) auto;gap:9px}.node-card-head strong{font-size:15px}.node-card-head>span:last-child{font-size:11px}.node-status{width:9px;height:9px}.node-card-page-metrics{padding:13px 14px}.node-card-page-metrics .node-meta{font-size:12px}.node-metrics dt{font-size:11px}.node-metrics strong{font-size:14px}.node-traffic span{font-size:11px}.node-traffic strong{font-size:13px}.node-detail-toolbar{padding-top:11px}.node-detail-toolbar strong{font-size:14px}.node-detail-toolbar span{font-size:11px}.node-detail-back{min-height:31px;padding:0 10px;font-size:11px}.node-details{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}.node-details dt{font-size:12px}.node-details dd{font-size:14px}.node-page-dots>small{font-size:10px}.node-card-footer small{font-size:11px}.node-workbench-link{min-height:31px;padding:0 11px;font-size:11px}
@media(max-width:900px){.node-grid{grid-template-columns:1fr}.node-details{grid-template-columns:repeat(2,minmax(0,1fr))}}
.node-card.detail-open{top:-7px;transform:none}.node-card-flipper,.node-card-switch.show-details .node-card-flipper{transform:none;transform-style:flat;transition:none}.node-card-page{opacity:1;transform:none;transform-origin:left center;transition:opacity .22s ease,transform .46s cubic-bezier(.2,.72,.2,1)}.node-card-page-details{opacity:0;transform:rotateY(-78deg);pointer-events:none}.node-card-switch.show-details .node-card-page-metrics{opacity:0;transform:rotateY(78deg);pointer-events:none}.node-card-switch.show-details .node-card-page-details{opacity:1;transform:none;pointer-events:auto}.node-card-switch:not(.show-details) .node-card-page-metrics{pointer-events:auto}
@media(prefers-reduced-motion:reduce){.node-card-page{transition:none}.node-card-page-details,.node-card-switch.show-details .node-card-page-metrics{transform:none}}
.node-card-head{grid-template-columns:10px minmax(0,1fr) auto auto}.node-rename-button{min-height:26px;padding:0 8px;color:#9acbff;border:1px solid rgba(78,161,255,.28);border-radius:7px;background:rgba(78,161,255,.07);font-size:9px}.node-rename-button:hover{border-color:rgba(78,161,255,.58);background:rgba(78,161,255,.14)}
.prototype-modal-open{overflow:hidden}.prototype-modal-backdrop{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:20px;background:rgba(2,5,8,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:prototype-backdrop-in .16s ease-out}.prototype-modal{width:min(470px,100%);padding:23px;border:1px solid #354555;border-radius:18px;background:linear-gradient(150deg,#151c23,#0e1318);box-shadow:0 28px 90px rgba(0,0,0,.68),0 0 0 1px rgba(78,161,255,.04);animation:prototype-modal-in .2s cubic-bezier(.2,.72,.2,1)}.prototype-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.prototype-modal-head h2{margin:0;font-size:20px}.prototype-modal-head .prototype-kicker{margin-bottom:5px}.prototype-modal-close{display:grid;flex:0 0 34px;place-items:center;width:34px;height:34px;color:#b9c4cf;border:1px solid var(--line);border-radius:9px;background:#11171d;font-size:21px;line-height:1}.prototype-modal-close:hover{color:#fff;border-color:#43515f;background:#1a222a}.prototype-modal-copy{margin:14px 0 19px;color:#aab5c0;font-size:12px;line-height:1.65}.prototype-modal-copy strong{color:#e9f2fb}.prototype-modal input{height:44px;border-color:#34414e;background:#0a0f13}.prototype-modal-error{min-height:20px;margin:7px 0 0;color:#ff8d99;font-size:11px}.prototype-modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:17px}.prototype-modal-actions button{min-width:112px}.prototype-confirm-modal{border-color:rgba(78,161,255,.44)}.prototype-sync-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 9px;padding:11px 12px;border:1px solid rgba(78,161,255,.17);border-radius:11px;background:rgba(78,161,255,.055)}.prototype-sync-note strong{color:#d6e9fc;font-size:11px}.prototype-sync-note span{color:#8e9aa6;font-size:10px;line-height:1.5}@keyframes prototype-backdrop-in{from{opacity:0}to{opacity:1}}@keyframes prototype-modal-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}

@media(max-width:760px){.drawer-backdrop.hidden{display:none!important}.composer-options{gap:7px}.check-row span{display:none}.run-settings label{flex-basis:118px}.run-settings{padding-bottom:max(8px,env(safe-area-inset-bottom))}}
@media(max-width:760px){.modal-backdrop{align-items:end;padding:0}.memory-modal{width:100%;max-height:90vh;padding:18px 14px max(18px,env(safe-area-inset-bottom));border-width:1px 0 0;border-radius:18px 18px 0 0}.memory-modal textarea{min-height:42vh}.memory-actions button{flex:1;min-width:0}}
@media(max-width:760px){.prototype-shell{width:min(100% - 24px,680px);padding:14px 0 34px}.prototype-topbar{margin-bottom:24px}.prototype-hero{align-items:flex-start;flex-direction:column;padding:21px 17px;border-radius:17px}.prototype-hero h1{font-size:26px}.prototype-hero .primary{width:100%}.controller-summary{grid-template-columns:1fr;gap:8px;margin-bottom:26px}.controller-summary>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:13px 15px}.controller-summary strong{grid-column:2;grid-row:1/3;margin:0;font-size:24px}.controller-summary small{margin-top:4px}.prototype-section{margin-top:24px}.prototype-section-head{align-items:flex-start;flex-direction:column}.prototype-muted{text-align:left}.node-grid{grid-template-columns:1fr}.node-card{padding:14px}.prototype-task-preview{padding:15px}.task-preview-card{grid-template-columns:34px minmax(0,1fr);padding:13px}.task-preview-card .prototype-badge{grid-column:2;justify-self:start}.task-preview-icon{width:34px;height:34px}.test-project-panel{max-height:none;overflow:visible}}
@media(max-width:520px){.prototype-modal-backdrop{padding:14px}.prototype-modal{padding:19px 16px;border-radius:16px}.prototype-modal-actions{display:grid;grid-template-columns:1fr 1fr}.prototype-modal-actions button{min-width:0;padding:0 8px;font-size:12px}.prototype-sync-note{grid-template-columns:1fr}.prototype-modal-head h2{font-size:18px}}

/* 正式多 VPS 总台 */
.controller-top-actions{display:flex;align-items:center;gap:9px}
.node-add-card{align-items:center;justify-content:center;gap:11px;width:100%;color:#c6d5e4;border-style:dashed;border-color:#344555;background:linear-gradient(145deg,rgba(18,25,31,.66),rgba(10,14,18,.82));cursor:pointer;text-align:center}
.node-add-card:hover{color:#fff;border-color:rgba(78,161,255,.72);background:linear-gradient(145deg,rgba(24,48,68,.55),rgba(11,17,22,.94))}
.node-add-card strong{font-size:15px}.node-add-card small{max-width:250px;color:#8796a5;font-size:11px;line-height:1.55}
.node-add-icon{display:grid;place-items:center;width:66px;height:66px;color:#9dcbff;border:1px solid rgba(78,161,255,.42);border-radius:50%;background:rgba(78,161,255,.09);font-size:42px;font-weight:200;line-height:1;transition:transform .18s ease,background .18s ease}
.node-add-card:hover .node-add-icon{transform:scale(1.05);background:rgba(78,161,255,.16)}
.pending-card .node-card-switch{opacity:.72}.pending-card .node-status{background:#ffb648;box-shadow:0 0 0 4px rgba(255,182,72,.09)}
.node-card-badge{color:var(--muted);font-size:11px}.node-card-actions{display:flex;align-items:center;gap:6px;color:inherit!important;font-size:inherit!important}.node-delete-button{min-height:26px;padding:0 8px;color:#ff9aa5;border:1px solid rgba(255,95,112,.28);border-radius:7px;background:rgba(255,95,112,.06);font-size:9px}.node-delete-button:hover{color:#ffd6da;border-color:rgba(255,95,112,.6);background:rgba(255,95,112,.13)}
.node-delete-modal{border-color:rgba(255,95,112,.38)}.node-delete-warning{display:grid;gap:5px;padding:12px;border:1px solid rgba(255,95,112,.2);border-radius:11px;background:rgba(255,95,112,.06)}.node-delete-warning strong{color:#ffd4d8;font-size:11px}.node-delete-warning span{color:#a89598;font-size:10px;line-height:1.55}.node-delete-modal .danger{color:#fff;border-color:#d44858;background:#b93646}.node-delete-modal .danger:hover{background:#cc4051}.node-delete-modal .danger:disabled{opacity:.55}
.enrollment-modal{width:min(650px,100%)}.enrollment-fields{display:grid;grid-template-columns:145px minmax(0,1fr);align-items:center;gap:11px 14px}.enrollment-fields label{margin:0;color:#c0ccd8;font-size:12px}.enrollment-fields input{width:100%}
.enrollment-result{padding:15px;border:1px solid rgba(78,161,255,.28);border-radius:12px;background:rgba(78,161,255,.07)}.enrollment-result>strong{display:block;color:#e4f1ff;font-size:13px}.enrollment-result>p{margin:7px 0 12px;color:#ffbf75;font-size:11px;line-height:1.55}
.enrollment-command-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:9px}.enrollment-command-row code{display:block;max-height:150px;overflow:auto;padding:12px;color:#cce5ff;border:1px solid #2d3d4c;border-radius:9px;background:#080d11;font-size:11px;line-height:1.55;overflow-wrap:anywhere;user-select:all}.enrollment-command-row button{min-width:74px}
.login-page{display:grid;min-height:100dvh;place-items:center;padding:24px;background:radial-gradient(circle at 50% 10%,rgba(78,161,255,.12),transparent 35%),#090c0f}.login-card{width:min(420px,100%);padding:30px;border:1px solid #293541;border-radius:20px;background:linear-gradient(150deg,#151b21,#0e1216);box-shadow:0 28px 80px rgba(0,0,0,.58)}.login-mark{display:grid;place-items:center;width:46px;height:46px;margin-bottom:20px;color:#cce6ff;border:1px solid rgba(78,161,255,.4);border-radius:13px;background:rgba(78,161,255,.13);font-size:22px}.login-card h1{margin:0;color:#f2f6fa;font-size:25px}.login-card>p{margin:9px 0 24px;color:#8f9ca9;font-size:12px;line-height:1.6}.login-card label{display:block;margin-bottom:8px;color:#c3ced8;font-size:12px}.login-card input{width:100%;height:46px;border-color:#344250;background:#090e12}.login-card .primary{width:100%;margin-top:14px}.login-error{min-height:20px;margin:9px 0 0;color:#ff8d99;font-size:11px}.login-foot{display:block;margin-top:18px;color:#65727f;font-size:10px;text-align:center}
@media(max-width:620px){.controller-top-actions{align-items:flex-end;flex-direction:column}.controller-top-actions .prototype-badge{font-size:9px}.node-card-head{grid-template-columns:10px minmax(0,1fr) auto}.node-card-badge{grid-column:3}.node-card-actions{grid-column:2/4;justify-content:flex-end}.enrollment-fields{grid-template-columns:1fr;gap:7px}.enrollment-fields label:not(:first-child){margin-top:7px}.enrollment-command-row{grid-template-columns:1fr}.enrollment-command-row button{width:100%}}

/* Settings center and compact composer controls */
body.modal-open{overflow:hidden}
.sidebar-tools{display:grid;gap:9px;padding-top:12px}
.sidebar-tools>button{margin-top:0}
.settings-launch{display:grid;grid-template-columns:32px minmax(0,1fr) 16px;align-items:center;gap:9px;min-height:48px;padding:6px 9px;color:var(--text);border:1px solid var(--line);border-radius:11px;background:transparent;text-align:left}
.settings-launch:hover{border-color:#34404d;background:var(--panel-2)}
.settings-launch-icon{display:grid;place-items:center;width:30px;height:30px;color:#c9d2dc;border:1px solid var(--line);border-radius:9px;background:#0d1116}
.settings-launch-copy{min-width:0}
.settings-launch-copy strong,.settings-launch-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settings-launch-copy strong{font-size:12px}
.settings-launch-copy small{margin-top:3px;color:var(--muted);font-size:9px}
.settings-launch-arrow{color:var(--muted);font-size:20px}
.composer-quickbar{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:7px;padding:7px 10px;border-top:1px solid #1d242c;background:rgba(255,255,255,.012)}
.context-usage-button,.run-settings-button{display:flex;align-items:center;gap:8px;min-height:32px;padding:4px 9px;color:#d5dbe2;border:1px solid transparent;border-radius:9px;background:transparent}
.context-usage-button:hover,.run-settings-button:hover{border-color:var(--line);background:rgba(255,255,255,.035)}
.context-usage-button>span:nth-child(2){text-align:left}
.context-usage-button small,.context-usage-button strong{display:block;line-height:1.2}
.context-usage-button small{color:var(--muted);font-size:8px;font-weight:600}
.context-usage-button strong{margin-top:2px;font-size:10px}
.context-ring{--context-progress:0deg;position:relative;display:block;width:17px;height:17px;border-radius:50%;background:conic-gradient(var(--accent) var(--context-progress),#313842 0)}
.context-ring::after{position:absolute;inset:3px;border-radius:50%;background:#0c1014;content:""}
.context-ring.unknown{background:conic-gradient(#68717b 45deg,#303740 45deg 150deg,#68717b 150deg 215deg,#303740 215deg)}
.run-settings-button{font-size:11px;font-weight:750}
.run-settings-button b{color:var(--muted);font-size:13px}
.merged-run-settings{max-width:100%;padding:4px 8px}
.merged-run-summary{display:flex;min-width:0;align-items:center;gap:6px}
.merged-run-summary strong,.merged-run-summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.merged-run-summary strong{color:#dce8f5}
.merged-run-summary i{color:#56616d;font-style:normal}
.run-settings-popover{position:absolute;right:10px;bottom:calc(100% + 8px);z-index:35;width:min(310px,calc(100vw - 28px));padding:8px;border:1px solid #3a424d;border-radius:15px;background:#20242a;box-shadow:0 18px 50px rgba(0,0,0,.48)}
.run-setting-row{display:grid;grid-template-columns:74px minmax(0,1fr) 16px;align-items:center;width:100%;gap:8px;min-height:42px;margin:0;padding:0 8px;color:var(--text);border:0;border-radius:9px;background:transparent;text-align:left;cursor:pointer;font-size:12px;font-weight:650}
.run-setting-row:hover{background:rgba(255,255,255,.06)}
.run-setting-row>span{color:#f0f3f6}
.run-setting-row>strong{min-width:0;overflow:hidden;color:#b5bdc6;text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500}
.run-setting-row>b{color:#aab3bc;font-size:19px;font-weight:400;text-align:center}
.run-settings-picker{position:absolute;top:8px;right:calc(100% + 8px);bottom:auto;left:auto;z-index:2;display:grid;align-content:start;width:220px;max-height:260px;overflow-y:auto;padding:5px;border:1px solid #3b424a;border-radius:12px;background:#292d32;box-shadow:0 14px 38px rgba(0,0,0,.45)}
.run-setting-option{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:36px;padding:0 10px;color:#f1f3f5;border:0;border-radius:8px;background:transparent;text-align:left;font-size:12px}
.run-setting-option:hover,.run-setting-option[aria-selected="true"]{background:#353a40}
.run-setting-option[aria-selected="true"]{color:#fff}
.run-setting-option>b{color:#e7ebef;font-size:16px;font-weight:500}
.run-settings-reset{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:37px;margin-top:3px;padding:0 8px;color:#aeb7c0;border-top:1px solid #343b44;border-radius:0 0 8px 8px;background:transparent;text-align:left;font-size:12px}
.run-settings-reset:hover{color:var(--text);background:rgba(255,255,255,.05)}
.run-settings-reset b{font-size:17px;font-weight:400}
@media(max-width:760px){.run-settings-picker{right:8px;width:min(230px,calc(100vw - 44px));max-height:42vh}}
.quota-indicator{display:grid;grid-template-columns:auto 66px auto;align-items:center;gap:7px;min-height:28px;margin-right:auto;padding:3px 7px;color:#dce8f5;border:1px solid transparent;border-radius:8px;text-decoration:none;font-size:10px;font-weight:750}.quota-indicator:hover{border-color:var(--line);background:rgba(255,255,255,.035)}.quota-label{color:var(--muted);font-size:9px}.quota-track{height:5px;overflow:hidden;border-radius:999px;background:#303844}.quota-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4ea1ff,#62d7ad);transition:width .24s ease}.quota-indicator strong{white-space:nowrap}.quota-indicator.unavailable{color:var(--muted)}.quota-indicator.unavailable .quota-track i{background:#68717b}
.settings-modal{display:flex;flex-direction:column;width:min(920px,calc(100vw - 36px));height:min(720px,calc(100vh - 48px));overflow:hidden;border:1px solid #303844;border-radius:20px;background:#11151a;box-shadow:0 28px 100px rgba(0,0,0,.58)}
.settings-modal-head{display:flex;align-items:center;justify-content:space-between;flex:0 0 74px;padding:0 22px;border-bottom:1px solid var(--line)}
.settings-modal-head h2{margin:2px 0 0;font-size:20px}
.settings-kicker{color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.18em}
.settings-modal-head .icon-button{width:38px;height:38px;color:var(--muted);background:transparent;font-size:24px}
.settings-modal-head .icon-button:hover{color:var(--text);background:var(--panel-2)}
.settings-layout{display:grid;grid-template-columns:210px minmax(0,1fr);flex:1;min-height:0}
.settings-nav{display:flex;flex-direction:column;gap:5px;padding:16px 12px;border-right:1px solid var(--line);background:#0e1216}
.settings-tab{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;min-height:43px;padding:7px 10px;color:#b4bdc7;border:1px solid transparent;background:transparent;text-align:left}
.settings-tab>span{color:#7e8995}
.settings-tab strong{font-size:12px}
.settings-tab small{grid-column:2;overflow:hidden;margin-top:2px;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.settings-tab:hover{color:var(--text);background:rgba(255,255,255,.035)}
.settings-tab.active{color:#eef5fc;border-color:rgba(78,161,255,.2);background:rgba(78,161,255,.1)}
.settings-tab.active>span{color:#78baff}
.settings-content{min-width:0;overflow:hidden}
.settings-panel{display:none;height:100%;overflow-y:auto;padding:26px 30px 34px;overscroll-behavior:contain}
.settings-panel.active{display:block}
.settings-section-head{margin-bottom:18px}
.settings-section-head h3{margin:0 0 6px;font-size:18px}
.settings-section-head p{max-width:620px;margin:0;color:var(--muted);font-size:11px;line-height:1.55}
.settings-card{padding:17px;border:1px solid var(--line);border-radius:14px;background:#0c1014}
.settings-card .field small{display:block;margin-top:6px;color:var(--muted);font-size:10px}
.settings-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:17px}
.settings-info-grid .info-block{min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#11161c}
.settings-info-grid .info-block strong{font-size:11px}
.settings-dashboard{margin-top:12px}
.settings-safety{margin-top:12px}
.context-overview{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;gap:17px}
.context-detail-ring{--context-progress:0deg;position:relative;display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:conic-gradient(var(--accent) var(--context-progress),#2b323b 0)}
.context-detail-ring::before{position:absolute;inset:7px;border-radius:50%;background:#0c1014;content:""}
.context-detail-ring.unknown{background:conic-gradient(#69737d 45deg,#303740 45deg 150deg,#69737d 150deg 215deg,#303740 215deg)}
.context-detail-ring strong{position:relative;z-index:1;font-size:12px}
.context-overview>div:last-child span,.context-overview>div:last-child strong,.context-overview>div:last-child small{display:block}
.context-overview>div:last-child span{color:var(--muted);font-size:10px}
.context-overview>div:last-child strong{margin-top:5px;font-size:14px}
.context-overview>div:last-child small{margin-top:5px;color:var(--muted);font-size:10px;line-height:1.45}
.settings-run-options{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:14px;padding:17px;border:1px solid var(--line);border-radius:14px;background:#0c1014}
.settings-run-options label{display:block;margin:0;color:#cbd2d9;font-size:11px}
.settings-run-options select{width:100%;height:40px;margin-top:7px;padding:0 31px 0 10px;color:var(--text);border:1px solid var(--line);border-radius:9px;background-color:#11171d}
.context-note{margin-top:14px;padding:14px 16px;border:1px solid rgba(78,161,255,.17);border-radius:12px;background:rgba(78,161,255,.045)}
.context-note strong{font-size:11px}
.context-note p{margin:6px 0 0;color:var(--muted);font-size:10px;line-height:1.55}
.compaction-actions{display:flex;align-items:center;gap:11px;margin-top:12px}
.compaction-actions button{flex:0 0 auto}
.compaction-actions small{min-width:0;overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.settings-panel #memoryForm textarea{min-height:330px;border:1px solid var(--line);border-radius:12px;resize:vertical}
.settings-panel .data-section{padding:17px 0}

@media(max-width:760px){
  .modal-backdrop{align-items:center;padding:8px}
  .settings-modal{width:100%;height:calc(100dvh - 16px);max-height:none;border-radius:16px}
  .settings-modal-head{flex-basis:62px;padding:0 14px}
  .settings-layout{display:flex;flex-direction:column}
  .settings-nav{flex:0 0 auto;flex-direction:row;gap:4px;overflow-x:auto;padding:8px;border-right:0;border-bottom:1px solid var(--line);-webkit-overflow-scrolling:touch}
  .settings-tab{display:flex;flex:0 0 auto;gap:6px;min-height:36px;padding:6px 9px}
  .settings-tab small{display:none}
  .settings-content{flex:1;min-height:0}
  .settings-panel{padding:20px 14px max(24px,env(safe-area-inset-bottom))}
  .settings-info-grid,.settings-run-options{grid-template-columns:1fr}
  .settings-run-options{gap:8px}
  .settings-panel #memoryForm textarea{min-height:42vh}
  .composer-quickbar{justify-content:space-between;padding-bottom:max(7px,env(safe-area-inset-bottom))}
  .context-usage-button{padding-left:5px}
  .run-settings-button{max-width:100%;overflow:hidden}
  .run-settings-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .compaction-actions{align-items:stretch;flex-direction:column}
  .compaction-actions small{white-space:normal}
}

@media(max-width:760px){
  .batch-workspace{padding:14px;border-radius:17px}
  .batch-layout{grid-template-columns:1fr;min-height:0}
  .batch-task-sidebar{max-height:170px}
  .batch-task-list{display:flex;overflow-x:auto;overflow-y:hidden;padding-bottom:3px}
  .batch-task-item{flex:0 0 190px}
  .batch-chat-card{height:720px}
  .batch-messages{padding:14px 11px}
  .batch-message{max-width:96%}
  .batch-node-options{grid-template-columns:repeat(2,minmax(0,1fr))}
  .batch-composer{padding:11px}
  .batch-composer textarea{min-height:64px;max-height:120px}
  .batch-composer-footer{align-items:stretch;flex-direction:column;gap:8px}
  .batch-composer-controls{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .batch-strategy-field{min-width:0}
  .batch-run-settings-wrap{min-width:0}
  .batch-run-settings-popover{right:0;left:auto;width:min(310px,calc(100vw - 54px))}
  .batch-send-actions{justify-content:space-between}
  .batch-send-actions small{max-width:45%;line-height:1.35}
  .batch-send-actions .primary{min-width:132px}
}

@media(max-width:420px){
  .batch-composer-controls{grid-template-columns:1fr}
  .batch-node-picker-head{align-items:flex-start;flex-direction:column}
  .batch-node-picker-head button{width:100%}
  .batch-chat-head{align-items:flex-start}
  .batch-chat-head .danger{padding:0 8px;font-size:9px}
  .batch-message{grid-template-columns:26px minmax(0,1fr);gap:7px}
  .batch-message.user{grid-template-columns:minmax(0,1fr) 26px}
  .batch-message-avatar{width:26px;height:26px}
}

/* Compact mobile conversation controls and make the whole drawer reachable. */
@media(max-width:760px){
  .side-card{
    display:block;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .sidebar-head{
    position:sticky;
    top:calc(-1 * max(16px,env(safe-area-inset-top)));
    z-index:2;
    margin:calc(-1 * max(16px,env(safe-area-inset-top))) -16px 12px;
    padding:max(16px,env(safe-area-inset-top)) 16px 8px;
    background:linear-gradient(180deg,#11151a 78%,rgba(17,21,26,0));
  }
  .conversation-list{
    min-height:0;
    max-height:none;
    overflow:visible;
  }
  .queue-panel{
    max-height:none;
    overflow:visible;
  }
  .sidebar-tools{
    padding-bottom:max(4px,env(safe-area-inset-bottom));
  }
  .conversation-header{
    flex-basis:44px;
  }
  .composer{
    margin:0 6px max(6px,env(safe-area-inset-bottom));
    border-radius:13px;
  }
  .composer textarea{
    height:48px;
    min-height:48px;
    max-height:20vh;
    overflow-y:auto;
    padding:10px 12px 8px;
    resize:none;
  }
  .composer-footer{
    min-height:40px;
    padding:5px 7px 5px 9px;
  }
  .composer-options{
    gap:5px;
  }
  .upload-button{
    padding:4px 7px;
    font-size:11px;
  }
  .composer .primary{
    min-height:34px;
    padding:0 11px;
    gap:7px;
    font-size:12px;
  }
  .composer-quickbar{
    min-height:29px;
    justify-content:flex-end;
    gap:3px;
    padding:1px 7px 4px;
  }
  .context-usage-button,.run-settings-button{
    min-height:26px;
    padding:2px 6px;
  }
  .context-usage-button>span:nth-child(2){
    display:none;
  }
  .context-ring{
    width:15px;
    height:15px;
  }
  .run-settings-button{
    max-width:100%;
    font-size:10px;
  }
  .merged-run-summary{gap:4px}
  .quota-indicator{grid-template-columns:auto 48px auto;gap:5px;min-height:26px;padding:2px 4px;font-size:9px}.quota-label{font-size:8px}
  .activity{
    max-height:72px;
    margin:0 6px 4px;
    padding:7px 9px;
  }
}
