ai-agent-session-center 2.7.1 → 2.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/AgendaView-Dl3FQpEX.js +1 -0
- package/dist/client/assets/AgendaView-HRGSgVxX.css +1 -0
- package/dist/client/assets/{CyberdromeScene-DIcjNW2r.js → CyberdromeScene-EY1fKXEu.js} +184 -184
- package/dist/client/assets/HistoryView-CleN2H-B.js +1 -0
- package/dist/client/assets/{ProjectBrowserView-CXjXTXKL.js → ProjectBrowserView-D8l8UZ3Z.js} +1 -1
- package/dist/client/assets/QueueView-D9KUZrU5.js +1 -0
- package/dist/client/assets/index-D3mXxwbI.css +1 -0
- package/dist/client/assets/{index-BjuGsMul.js → index-DI0_qhqI.js} +94 -94
- package/dist/client/index.html +2 -2
- package/package.json +1 -1
- package/server/apiRouter.ts +265 -31
- package/server/db.ts +79 -60
- package/server/sessionStore.ts +56 -14
- package/server/sshManager.ts +44 -2
- package/dist/client/assets/AnalyticsView-G_cvUfoT.js +0 -1
- package/dist/client/assets/Charts-IyRNWsxy.css +0 -1
- package/dist/client/assets/Charts.module-Bxd2FHVJ.js +0 -33
- package/dist/client/assets/HistoryView-BAupwH2L.js +0 -1
- package/dist/client/assets/QueueView-CwHsNYTr.js +0 -1
- package/dist/client/assets/TimelineView-vGe6uk9c.js +0 -4
- package/dist/client/assets/index-BcrRZAMD.css +0 -1
- package/dist/client/assets/useQuery-C2Vi372Q.js +0 -1
- package/dist/client/assets/with-selector-hPHYbRc2.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{y as j,h as i,k as e,o as M}from"./index-DI0_qhqI.js";const A="_container_pmjze_6",F="_filterBar_pmjze_15",P="_toggleLabel_pmjze_42",$="_taskList_pmjze_61",U="_groupHeader_pmjze_69",Y="_groupChevron_pmjze_78",G="_collapsed_pmjze_86",V="_groupLabel_pmjze_90",W="_groupCount_pmjze_99",q="_taskCard_pmjze_107",K="_completed_pmjze_124",J="_taskTitle_pmjze_128",Q="_overdue_pmjze_133",X="_dueToday_pmjze_138",Z="_checkbox_pmjze_145",ee="_taskContent_pmjze_160",te="_taskHeader_pmjze_165",se="_taskTitleInput_pmjze_189",ae="_priorityBadge_pmjze_204",ne="_priorityUrgent_pmjze_215",oe="_priorityHigh_pmjze_221",le="_priorityMedium_pmjze_227",ie="_priorityLow_pmjze_233",re="_taskMeta_pmjze_241",ce="_dueDate_pmjze_249",de="_dueDateOverdue_pmjze_255",ue="_dueDateToday_pmjze_259",pe="_tag_pmjze_263",me="_tagInput_pmjze_278",ge="_addTagBtn_pmjze_291",he="_description_pmjze_311",_e="_descriptionToggle_pmjze_321",je="_deleteBtn_pmjze_338",fe="_addForm_pmjze_359",ve="_titleInput_pmjze_402",xe="_tagsInput_pmjze_407",ye="_addBtn_pmjze_412",Te="_emptyState_pmjze_438",Ce="_loading_pmjze_459",ke="_stats_pmjze_472",De="_statsSep_pmjze_482",be="_confirmOverlay_pmjze_488",we="_confirmBtn_pmjze_497",ze="_cancelBtn_pmjze_512",s={container:A,filterBar:F,toggleLabel:P,taskList:$,groupHeader:U,groupChevron:Y,collapsed:G,groupLabel:V,groupCount:W,taskCard:q,completed:K,taskTitle:J,overdue:Q,dueToday:X,checkbox:Z,taskContent:ee,taskHeader:te,taskTitleInput:se,priorityBadge:ae,priorityUrgent:ne,priorityHigh:oe,priorityMedium:le,priorityLow:ie,taskMeta:re,dueDate:ce,dueDateOverdue:de,dueDateToday:ue,tag:pe,tagInput:me,addTagBtn:ge,description:he,descriptionToggle:_e,deleteBtn:je,addForm:fe,titleInput:ve,tagsInput:xe,addBtn:ye,emptyState:Te,loading:Ce,stats:ke,statsSep:De,confirmOverlay:be,confirmBtn:we,cancelBtn:ze},Se=[{value:"all",label:"All priorities"},{value:"urgent",label:"Urgent"},{value:"high",label:"High"},{value:"medium",label:"Medium"},{value:"low",label:"Low"}],Ne=[{value:"priority",label:"Priority"},{value:"dueDate",label:"Due date"},{value:"createdAt",label:"Created"}];function Be(){const t=j(l=>l.filter),o=j(l=>l.setFilter),n=i.useCallback(l=>o({search:l}),[o]),c=i.useCallback(l=>o({priority:l.target.value}),[o]),d=i.useCallback(l=>o({sortBy:l.target.value}),[o]),p=i.useCallback(()=>o({showCompleted:!t.showCompleted}),[o,t.showCompleted]);return e.jsxs("div",{className:s.filterBar,children:[e.jsx(M,{value:t.search,onChange:n,placeholder:"Search tasks...",debounceMs:200}),e.jsx("select",{value:t.priority,onChange:c,children:Se.map(l=>e.jsx("option",{value:l.value,children:l.label},l.value))}),e.jsx("select",{value:t.sortBy,onChange:d,children:Ne.map(l=>e.jsx("option",{value:l.value,children:l.label},l.value))}),e.jsxs("label",{className:s.toggleLabel,children:[e.jsx("input",{type:"checkbox",checked:t.showCompleted,onChange:p}),"Show completed"]})]})}const Ie={urgent:s.priorityUrgent,high:s.priorityHigh,medium:s.priorityMedium,low:s.priorityLow};function Le(t){if(!t)return null;const o=new Date;o.setHours(0,0,0,0);const n=new Date(t+"T00:00:00");return n<o?"overdue":n.getTime()===o.getTime()?"today":"future"}function He(t){return new Date(t+"T00:00:00").toLocaleDateString("en-US",{month:"short",day:"numeric"})}function N({task:t}){const o=j(a=>a.toggleTask),n=j(a=>a.updateTask),c=j(a=>a.deleteTask),[d,p]=i.useState(!1),[l,h]=i.useState(t.title),[_,v]=i.useState(!1),[u,y]=i.useState(""),[T,r]=i.useState(!1),[f,g]=i.useState(!1),C=i.useRef(null),b=i.useRef(null);i.useEffect(()=>{d&&(C.current?.focus(),C.current?.select())},[d]),i.useEffect(()=>{_&&b.current?.focus()},[_]),i.useEffect(()=>{d||h(t.title)},[t.title,d]);const k=i.useCallback(()=>{p(!1);const a=l.trim();a&&a!==t.title?n(t.id,{title:a}):h(t.title)},[l,t.id,t.title,n]),w=i.useCallback(()=>{o(t.id)},[o,t.id]),m=i.useCallback(()=>{c(t.id),g(!1)},[c,t.id]),x=i.useCallback(()=>{y(t.tags.join(", ")),v(!0)},[t.tags]),S=i.useCallback(()=>{v(!1);const a=u.split(",").map(R=>R.trim()).filter(Boolean),O=t.tags.join(","),E=a.join(",");O!==E&&n(t.id,{tags:a})},[u,t.id,t.tags,n]),D=Le(t.dueDate),z=[s.taskCard];return t.completed&&z.push(s.completed),!t.completed&&D==="overdue"&&z.push(s.overdue),!t.completed&&D==="today"&&z.push(s.dueToday),e.jsxs("div",{className:z.join(" "),children:[e.jsx("input",{type:"checkbox",className:s.checkbox,checked:t.completed,onChange:w,"aria-label":`Mark "${t.title}" as ${t.completed?"incomplete":"complete"}`}),e.jsxs("div",{className:s.taskContent,children:[e.jsxs("div",{className:s.taskHeader,children:[d?e.jsx("input",{ref:C,className:s.taskTitleInput,value:l,onChange:a=>h(a.target.value),onBlur:k,onKeyDown:a=>{a.key==="Enter"&&(a.preventDefault(),k()),a.key==="Escape"&&(h(t.title),p(!1))},onClick:a=>a.stopPropagation()}):e.jsx("span",{className:s.taskTitle,onClick:()=>{h(t.title),p(!0)},title:"Click to edit",children:t.title}),e.jsx("span",{className:`${s.priorityBadge} ${Ie[t.priority]}`,children:t.priority})]}),e.jsxs("div",{className:s.taskMeta,children:[t.dueDate&&e.jsxs("span",{className:`${s.dueDate} ${D==="overdue"?s.dueDateOverdue:""} ${D==="today"?s.dueDateToday:""}`,children:[D==="overdue"&&"Overdue: ",D==="today"&&"Today: ",He(t.dueDate)]}),_?e.jsx("input",{ref:b,className:s.tagInput,value:u,onChange:a=>y(a.target.value),onBlur:S,onKeyDown:a=>{a.key==="Enter"&&(a.preventDefault(),S()),a.key==="Escape"&&v(!1)},onClick:a=>a.stopPropagation(),placeholder:"tag1, tag2, ..."}):e.jsxs(e.Fragment,{children:[t.tags.map(a=>e.jsx("span",{className:s.tag,onClick:x,title:"Click to edit tags",style:{cursor:"pointer"},children:a},a)),e.jsx("button",{className:s.addTagBtn,onClick:x,title:"Add / edit tags",children:"+"})]})]}),t.description&&e.jsxs(e.Fragment,{children:[e.jsx("button",{className:s.descriptionToggle,onClick:()=>r(a=>!a),children:T?"- Hide details":"+ Show details"}),T&&e.jsx("div",{className:s.description,children:t.description})]})]}),f?e.jsxs("div",{className:s.confirmOverlay,children:[e.jsx("span",{children:"Delete?"}),e.jsx("button",{className:s.confirmBtn,onClick:m,children:"Yes"}),e.jsx("button",{className:s.cancelBtn,onClick:()=>g(!1),children:"No"})]}):e.jsx("button",{className:s.deleteBtn,onClick:()=>g(!0),"aria-label":`Delete "${t.title}"`,title:"Delete task",children:e.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("polyline",{points:"3 6 5 6 21 6"}),e.jsx("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})]})})]})}function Oe(){const t=j(u=>u.createTask),[o,n]=i.useState(""),[c,d]=i.useState("medium"),[p,l]=i.useState(""),[h,_]=i.useState(""),v=i.useCallback(u=>{u.preventDefault();const y=o.trim();if(!y)return;const T=h.split(",").map(r=>r.trim()).filter(Boolean);t({title:y,priority:c,tags:T,dueDate:p||void 0}),n(""),d("medium"),l(""),_("")},[o,c,p,h,t]);return e.jsxs("form",{className:s.addForm,onSubmit:v,children:[e.jsx("input",{type:"text",className:s.titleInput,placeholder:"New task title...",value:o,onChange:u=>n(u.target.value),required:!0}),e.jsxs("select",{value:c,onChange:u=>d(u.target.value),children:[e.jsx("option",{value:"urgent",children:"Urgent"}),e.jsx("option",{value:"high",children:"High"}),e.jsx("option",{value:"medium",children:"Medium"}),e.jsx("option",{value:"low",children:"Low"})]}),e.jsx("input",{type:"date",value:p,onChange:u=>l(u.target.value),title:"Due date (optional)"}),e.jsx("input",{type:"text",className:s.tagsInput,placeholder:"Tags (comma-sep)",value:h,onChange:u=>_(u.target.value)}),e.jsx("button",{type:"submit",className:s.addBtn,disabled:!o.trim(),children:"ADD"})]})}const B=["urgent","high","medium","low"],I={urgent:0,high:1,medium:2,low:3},Ee={urgent:"Urgent",high:"High",medium:"Medium",low:"Low"};function Re(t,o,n,c){if(n!=="all"&&t.priority!==n||c!=="all"&&!t.tags.includes(c))return!1;if(o){const d=o.toLowerCase(),p=t.title.toLowerCase().includes(d),l=(t.description??"").toLowerCase().includes(d);if(!p&&!l)return!1}return!0}function L(t,o){return[...t].sort((n,c)=>{if(o==="priority"){const d=I[n.priority],p=I[c.priority];return d!==p?d-p:new Date(c.createdAt).getTime()-new Date(n.createdAt).getTime()}return o==="dueDate"?!n.dueDate&&!c.dueDate?0:n.dueDate?c.dueDate?n.dueDate.localeCompare(c.dueDate):-1:1:new Date(c.createdAt).getTime()-new Date(n.createdAt).getTime()})}function H({label:t,count:o,collapsed:n,onToggle:c}){return e.jsxs("div",{className:s.groupHeader,onClick:c,children:[e.jsx("svg",{className:`${s.groupChevron} ${n?s.collapsed:""}`,width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"6 9 12 15 18 9"})}),e.jsx("span",{className:s.groupLabel,children:t}),e.jsx("span",{className:s.groupCount,children:o})]})}function Ae(){const t=j(r=>r.tasks),o=j(r=>r.loading),n=j(r=>r.filter),c=j(r=>r.fetchTasks),[d,p]=i.useState(new Set);i.useEffect(()=>{c()},[c]);const l=i.useCallback(r=>{p(f=>{const g=new Set(f);return g.has(r)?g.delete(r):g.add(r),g})},[]),{groups:h,completedTasks:_,totalIncomplete:v,totalCompleted:u}=i.useMemo(()=>{const f=[...t.values()].filter(m=>Re(m,n.search,n.priority,n.tag)),g=f.filter(m=>!m.completed),C=f.filter(m=>m.completed),b=L(g,n.sortBy),k=new Map;for(const m of B)k.set(m,[]);for(const m of b){const x=k.get(m.priority);x&&x.push(m)}const w=[];for(const m of B){const x=k.get(m)??[];x.length>0&&w.push({id:m,label:Ee[m],tasks:x})}return{groups:w,completedTasks:L(C,n.sortBy),totalIncomplete:g.length,totalCompleted:C.length}},[t,n]);if(o)return e.jsx("div",{className:s.container,children:e.jsx("div",{className:s.loading,children:"Loading tasks..."})});const y=h.length===0&&_.length===0,T=t.size===0;return e.jsxs("div",{className:s.container,"data-testid":"agenda-view",children:[e.jsx(Be,{}),e.jsxs("div",{className:s.stats,children:[e.jsxs("span",{children:[v," task",v!==1?"s":""]}),e.jsx("span",{className:s.statsSep,children:"|"}),e.jsxs("span",{children:[u," completed"]})]}),e.jsx("div",{className:s.taskList,children:T?e.jsxs("div",{className:s.emptyState,children:[e.jsx("div",{children:"No tasks yet"}),e.jsx("span",{children:"Add your first task below"})]}):y?e.jsxs("div",{className:s.emptyState,children:[e.jsx("div",{children:"No tasks match the current filter"}),e.jsx("span",{children:"Try adjusting your search or filter criteria"})]}):e.jsxs(e.Fragment,{children:[h.map(r=>{const f=d.has(r.id);return e.jsxs("div",{children:[e.jsx(H,{label:r.label,count:r.tasks.length,collapsed:f,onToggle:()=>l(r.id)}),!f&&r.tasks.map(g=>e.jsx(N,{task:g},g.id))]},r.id)}),n.showCompleted&&_.length>0&&e.jsxs("div",{children:[e.jsx(H,{label:"Completed",count:_.length,collapsed:d.has("__completed__"),onToggle:()=>l("__completed__")}),!d.has("__completed__")&&_.map(r=>e.jsx(N,{task:r},r.id))]})]})}),e.jsx(Oe,{})]})}export{Ae as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._container_pmjze_6{display:flex;flex-direction:column;height:100%;overflow:hidden}._filterBar_pmjze_15{display:flex;align-items:center;gap:10px;padding:14px 24px;border-bottom:1px solid var(--border-subtle);flex-shrink:0;flex-wrap:wrap}._filterBar_pmjze_15 select{background:var(--bg-primary, #0a0a1a);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:12px;font-family:var(--font-mono);padding:6px 10px;outline:none;cursor:pointer;min-width:100px}._filterBar_pmjze_15 select:focus{border-color:var(--accent-cyan)}._toggleLabel_pmjze_42{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}._toggleLabel_pmjze_42 input[type=checkbox]{accent-color:var(--accent-cyan);cursor:pointer}._taskList_pmjze_61{flex:1;overflow-y:auto;padding:12px 24px}._groupHeader_pmjze_69{display:flex;align-items:center;gap:8px;padding:8px 0 6px;cursor:pointer;-webkit-user-select:none;user-select:none}._groupChevron_pmjze_78{width:10px;height:10px;flex-shrink:0;transition:transform .15s ease;color:var(--text-dim)}._groupChevron_pmjze_78._collapsed_pmjze_86{transform:rotate(-90deg)}._groupLabel_pmjze_90{font-size:11px;letter-spacing:1.5px;color:var(--text-dim);text-transform:uppercase;font-family:var(--font-mono);flex:1}._groupCount_pmjze_99{font-size:10px;color:var(--text-dim);font-family:var(--font-mono)}._taskCard_pmjze_107{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:6px;margin-bottom:6px;background:transparent;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}._taskCard_pmjze_107:hover{background:var(--bg-subtle);border-color:#ffffff1a}._completed_pmjze_124{opacity:.5}._completed_pmjze_124 ._taskTitle_pmjze_128{text-decoration:line-through;color:var(--text-dim)}._overdue_pmjze_133{border-color:var(--accent-red);box-shadow:0 0 8px color-mix(in srgb,var(--accent-red) 30%,transparent)}._dueToday_pmjze_138{border-color:var(--accent-yellow);box-shadow:0 0 8px color-mix(in srgb,var(--accent-yellow) 20%,transparent)}._checkbox_pmjze_145{width:18px;height:18px;flex-shrink:0;margin-top:1px;accent-color:var(--accent-cyan);cursor:pointer}._checkbox_pmjze_145:checked{filter:drop-shadow(0 0 4px var(--accent-cyan))}._taskContent_pmjze_160{flex:1;min-width:0}._taskHeader_pmjze_165{display:flex;align-items:center;gap:8px;margin-bottom:2px}._taskTitle_pmjze_128{font-size:13px;color:var(--text-primary);font-family:var(--font-mono);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;line-height:1.4}._taskTitle_pmjze_128:hover{color:var(--accent-cyan)}._taskTitleInput_pmjze_189{width:100%;background:var(--bg-subtle);border:1px solid var(--accent-cyan);border-radius:3px;color:var(--text-primary);font-size:13px;font-family:var(--font-mono);padding:1px 6px;outline:none;line-height:1.4}._priorityBadge_pmjze_204{font-size:9px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;padding:1px 6px;border-radius:3px;flex-shrink:0;line-height:1.6}._priorityUrgent_pmjze_215{background:color-mix(in srgb,var(--accent-red) 20%,transparent);color:var(--accent-red);border:1px solid color-mix(in srgb,var(--accent-red) 40%,transparent)}._priorityHigh_pmjze_221{background:color-mix(in srgb,var(--accent-orange) 20%,transparent);color:var(--accent-orange);border:1px solid color-mix(in srgb,var(--accent-orange) 40%,transparent)}._priorityMedium_pmjze_227{background:color-mix(in srgb,var(--accent-yellow) 20%,transparent);color:var(--accent-yellow);border:1px solid color-mix(in srgb,var(--accent-yellow) 40%,transparent)}._priorityLow_pmjze_233{background:color-mix(in srgb,var(--accent-green) 20%,transparent);color:var(--accent-green);border:1px solid color-mix(in srgb,var(--accent-green) 40%,transparent)}._taskMeta_pmjze_241{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}._dueDate_pmjze_249{font-size:10px;font-family:var(--font-mono);color:var(--text-dim)}._dueDateOverdue_pmjze_255{color:var(--accent-red)}._dueDateToday_pmjze_259{color:var(--accent-yellow)}._tag_pmjze_263{font-size:9px;color:var(--accent-cyan);background:color-mix(in srgb,var(--accent-cyan) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent-cyan) 25%,transparent);padding:0 5px;border-radius:3px;line-height:1.7}._tag_pmjze_263:hover{background:color-mix(in srgb,var(--accent-cyan) 20%,transparent);border-color:var(--accent-cyan)}._tagInput_pmjze_278{font-size:10px;font-family:var(--font-mono);color:var(--text-primary);background:var(--bg-subtle);border:1px solid var(--accent-cyan);border-radius:3px;padding:1px 6px;outline:none;min-width:120px;line-height:1.5}._addTagBtn_pmjze_291{font-size:10px;color:var(--text-dim);background:none;border:1px dashed color-mix(in srgb,var(--text-dim) 40%,transparent);border-radius:3px;padding:0 5px;cursor:pointer;font-family:var(--font-mono);line-height:1.6;transition:all .15s ease}._addTagBtn_pmjze_291:hover{color:var(--accent-cyan);border-color:var(--accent-cyan)}._description_pmjze_311{margin-top:6px;font-size:11px;color:var(--text-secondary);font-family:var(--font-mono);line-height:1.5;white-space:pre-wrap;word-break:break-word}._descriptionToggle_pmjze_321{font-size:10px;color:var(--text-dim);cursor:pointer;background:none;border:none;padding:0;font-family:var(--font-mono);margin-top:4px}._descriptionToggle_pmjze_321:hover{color:var(--accent-cyan)}._deleteBtn_pmjze_338{flex-shrink:0;background:none;border:none;color:var(--text-dim);cursor:pointer;padding:4px;border-radius:3px;transition:color .15s ease,background .15s ease;display:flex;align-items:center;justify-content:center}._deleteBtn_pmjze_338:hover{color:var(--accent-red);background:color-mix(in srgb,var(--accent-red) 15%,transparent)}._addForm_pmjze_359{display:flex;align-items:flex-end;gap:8px;padding:12px 24px 16px;border-top:1px solid var(--border-subtle);flex-shrink:0;flex-wrap:wrap}._addForm_pmjze_359 input[type=text],._addForm_pmjze_359 input[type=date]{background:var(--bg-primary, #0a0a1a);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:12px;font-family:var(--font-mono);padding:7px 10px;outline:none}._addForm_pmjze_359 input[type=text]:focus,._addForm_pmjze_359 input[type=date]:focus{border-color:var(--accent-cyan)}._addForm_pmjze_359 select{background:var(--bg-primary, #0a0a1a);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:12px;font-family:var(--font-mono);padding:7px 10px;outline:none;cursor:pointer}._addForm_pmjze_359 select:focus{border-color:var(--accent-cyan)}._titleInput_pmjze_402{flex:1;min-width:180px}._tagsInput_pmjze_407{min-width:120px;width:140px}._addBtn_pmjze_412{background:color-mix(in srgb,var(--accent-cyan) 15%,transparent);border:1px solid var(--accent-cyan);border-radius:6px;color:var(--accent-cyan);font-size:11px;font-family:var(--font-mono);font-weight:600;letter-spacing:1px;padding:7px 16px;cursor:pointer;transition:background .15s ease;white-space:nowrap}._addBtn_pmjze_412:hover:not(:disabled){background:color-mix(in srgb,var(--accent-cyan) 25%,transparent)}._addBtn_pmjze_412:disabled{opacity:.4;cursor:not-allowed}._emptyState_pmjze_438{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;color:var(--text-dim);font-size:13px;font-family:var(--font-mono);text-align:center;gap:8px}._emptyState_pmjze_438 span{font-size:11px;color:var(--text-dim);opacity:.6}._loading_pmjze_459{display:flex;align-items:center;justify-content:center;padding:60px 24px;color:var(--text-dim);font-size:12px;font-family:var(--font-mono);letter-spacing:1px}._stats_pmjze_472{padding:6px 24px;font-size:11px;color:var(--text-secondary);font-family:var(--font-mono);display:flex;gap:6px;flex-shrink:0}._statsSep_pmjze_482{color:var(--text-dim)}._confirmOverlay_pmjze_488{display:flex;align-items:center;gap:6px;font-size:10px;font-family:var(--font-mono);color:var(--accent-red)}._confirmBtn_pmjze_497{background:color-mix(in srgb,var(--accent-red) 15%,transparent);border:1px solid var(--accent-red);border-radius:3px;color:var(--accent-red);font-size:10px;font-family:var(--font-mono);padding:2px 8px;cursor:pointer}._confirmBtn_pmjze_497:hover{background:color-mix(in srgb,var(--accent-red) 30%,transparent)}._cancelBtn_pmjze_512{background:none;border:1px solid var(--border-subtle);border-radius:3px;color:var(--text-secondary);font-size:10px;font-family:var(--font-mono);padding:2px 8px;cursor:pointer}._cancelBtn_pmjze_512:hover{border-color:var(--text-dim)}
|