@frumu/tandem-panel 0.5.4 → 0.5.6

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.
Files changed (56) hide show
  1. package/bin/setup.js +1 -0
  2. package/dist/assets/AutomationsPage-BGqpmilp.js +946 -0
  3. package/dist/assets/BugMonitorPage-BVzdj9y-.js +4 -0
  4. package/dist/assets/ChannelsPage-B-InJ4Yh.js +1 -0
  5. package/dist/assets/ChatInterfacePanel-BrMo4cXg.js +1 -0
  6. package/dist/assets/ChatPage-Bc-BfOG1.js +1 -0
  7. package/dist/assets/CodingWorkflowsPage-xgfwLRlt.js +8 -0
  8. package/dist/assets/ControlPanelDialogs-yFfCht3Y.js +1 -0
  9. package/dist/assets/DashboardPage-CrA1itFc.js +1 -0
  10. package/dist/assets/ExperimentsPage-Bkg1_6rw.js +84 -0
  11. package/dist/assets/FilesPage-DChyHlO_.js +1 -0
  12. package/dist/assets/IntentPlannerPage-Dti1h8Tm.js +5 -0
  13. package/dist/assets/LazyJson-vfWw7G9F.js +1 -0
  14. package/dist/assets/MarketplacePage-90fAVNGg.js +1 -0
  15. package/dist/assets/McpToolAllowlistEditor-BzQ64HrZ.js +1 -0
  16. package/dist/assets/MemoryImportDialog-DSpS1JF5.js +1 -0
  17. package/dist/assets/MemoryPage-DRRLgoc0.js +1 -0
  18. package/dist/assets/OrchestratorPage-CYU-ESPI.js +3 -0
  19. package/dist/assets/PacksPage-dRmjjdKD.js +3 -0
  20. package/dist/assets/PlannerDiagnosticsPanel-C1uIuRIx.js +1 -0
  21. package/dist/assets/ProviderModelSelector-BdtOpkJR.js +1 -0
  22. package/dist/assets/RunsPage-DEy8vbRT.js +1 -0
  23. package/dist/assets/SettingsPage-CwH_FzOs.js +5 -0
  24. package/dist/assets/TaskBoard-CCY_Qy5S.js +1 -0
  25. package/dist/assets/TeamsPage-Dn81V0EB.js +4472 -0
  26. package/dist/assets/TimezoneField-B5i---lF.js +1 -0
  27. package/dist/assets/WorkflowStudioPage-yFhlA4KV.js +1854 -0
  28. package/dist/assets/WorkflowsPage-vmaKHFox.js +2 -0
  29. package/dist/assets/chatPageHelpers-Dmb4waDk.js +1 -0
  30. package/dist/assets/explorerHandoff-BPKxMR82.js +1 -0
  31. package/dist/assets/format-DyX5imzJ.js +1 -0
  32. package/dist/assets/fullcalendar-Bn75j0xM.js +1 -0
  33. package/dist/assets/index-C8Bjo7hU.css +1 -0
  34. package/dist/assets/index-TvymvGva.js +3 -0
  35. package/dist/assets/messages-uD0aB_MZ.js +3 -0
  36. package/dist/assets/motion-B3ZE8SGR.js +9 -0
  37. package/dist/assets/plannerShared-Dx7-Sxpc.js +1 -0
  38. package/dist/assets/preact-vendor-DaCG_P2o.js +1 -0
  39. package/dist/assets/react-query-BIbNygEJ.js +1 -0
  40. package/dist/assets/sse-B4A2m-Nk.js +2 -0
  41. package/dist/assets/useEngineStream-Diqri33l.js +1 -0
  42. package/dist/assets/vendor-DSaYtO9f.js +156 -0
  43. package/dist/assets/workflowStability-C8USyGOY.js +2 -0
  44. package/dist/index.html +8 -7
  45. package/lib/automations/workflow-list.js +147 -0
  46. package/lib/setup/control-panel-preferences.js +4 -0
  47. package/package.json +3 -3
  48. package/server/routes/capabilities.js +1 -0
  49. package/server/routes/knowledgebase.js +7 -1
  50. package/dist/assets/index-BL-9rGEh.css +0 -1
  51. package/dist/assets/index-DhoScTZK.js +0 -7379
  52. package/dist/assets/motion-CBnf8hfk.js +0 -9
  53. package/dist/assets/preact-vendor-B239Onrg.js +0 -1
  54. package/dist/assets/react-query-_hsOQSt5.js +0 -1
  55. package/dist/assets/vendor-DZYPF2Pz.js +0 -156
  56. /package/dist/assets/{markdown-Dd89TVib.js → markdown-Dwwtq3bu.js} +0 -0
@@ -0,0 +1,2 @@
1
+ function e(e){return e?.checkpoint||{}}function t(e){let t=Number(e||0);return!Number.isFinite(t)||t<=0?null:t<0xe8d4a51000?t*1e3:t}function n(e){let t=e?.properties||{};return String(e?.run_id||e?.runId||e?.runID||t?.run_id||t?.runId||t?.runID||t?.run?.id||``).trim()}function r(e){return String(e?.type||e?.event_type||e?.event||``).trim()}function i(e){let t=e?.properties||{},n=e?.timestamp_ms||e?.timestampMs||t?.timestamp_ms||t?.timestampMs||t?.firedAtMs||Date.now(),r=Number(n);return Number.isFinite(r)?r:Date.now()}function a(e){let t=e?.properties||e||{};return String(t?.reason||t?.detail||t?.error?.message||t?.error||t?.message||t?.status||``).trim()}function o(e,t=``){return String(e?.properties?.sessionID||e?.sessionID||t||``).trim()}function s(e,t,n){return(Array.isArray(e?.[t])?e[t]:Array.isArray(e?.[n])?e[n]:[]).map(e=>String(e||``).trim()).filter(Boolean)}function c(e){return Array.isArray(e)?e.map(e=>String(e||``).trim()).filter(Boolean):[]}function l(e,t,n){return c(e?.[t]??e?.[n])}function u(e){return(Array.isArray(e?.records)?e.records:Array.isArray(e)?e:[]).map((e,t)=>{if(!e||typeof e!=`object`)return null;let n=e?.payload||{},r=String(n?.receipt_kind||n?.receiptKind||``).trim(),i=String(n?.status||``).trim(),a=String(n?.blocked_reason||n?.blockedReason||``).trim(),o=String(n?.validator_summary?.reason||n?.validatorSummary?.reason||``).trim(),s=i||a||o||String(n?.blocker_category||n?.blockerCategory||``).trim()||String(n?.failure_kind||n?.failureKind||``).trim()||`receipt record`;return{seq:Number(e?.seq||t+1),at:Number(e?.ts_ms||e?.tsMs||0),attempt:Number(e?.attempt||0),eventType:String(e?.event_type||e?.eventType||``).trim(),receiptKind:r,sessionId:String(e?.session_id||e?.sessionId||``).trim(),nodeId:String(e?.node_id||e?.nodeId||``).trim(),detail:s,raw:e}}).filter(Boolean).sort((e,t)=>Number(e.seq||0)-Number(t.seq||0))}function d(t){return s(e(t),`completed_nodes`,`completedNodes`)}function f(e){return String(e?.status||e?.content?.status||``).trim().toLowerCase()}function p(t){let n=new Set([...l(t,`blockedNodeIDs`,`blockedNodeIds`),...s(e(t),`blocked_nodes`,`blockedNodes`)]);for(let{nodeId:e,value:r}of A(t))f(r)===`blocked`&&n.add(e);return Array.from(n)}function m(e){let t=new Set(l(e,`needsRepairNodeIDs`,`needsRepairNodeIds`));for(let{nodeId:n,value:r}of A(e))f(r)===`needs_repair`&&t.add(n);return Array.from(t)}function h(e){let t=new Set;for(let{nodeId:n,value:r}of A(e)){let e=f(r);(e===`verify_failed`||e===`failed`)&&t.add(n)}return Array.from(t)}function g(t){return s(e(t),`pending_nodes`,`pendingNodes`)}function _(e){return d(e).length}function v(e){return g(e).length}function y(e){return p(e).length}function b(e){let t=Array.isArray(e?.automation_snapshot?.flow?.nodes)?e.automation_snapshot.flow.nodes:Array.isArray(e?.automationSnapshot?.flow?.nodes)?e.automationSnapshot.flow.nodes:[];return t.length?t.length:new Set([...d(e),...g(e),...p(e),...h(e),...m(e),...A(e).map(e=>e.nodeId)]).size}var x=3e5,S=6e4;function C(n){let r=t(n?.last_activity_at_ms??n?.lastActivityAtMs);if(r)return r;let i=(Array.isArray(e(n)?.lifecycle_history)?e(n).lifecycle_history:Array.isArray(e(n)?.lifecycleHistory)?e(n).lifecycleHistory:[]).reduce((e,n)=>{let r=t(n?.recorded_at_ms??n?.recordedAtMs)||0;return r>e?r:e},0);return i>0?i:t(n?.started_at_ms??n?.startedAtMs??n?.created_at_ms??n?.createdAtMs)}function w(e){if(String(e?.status||``).trim().toLowerCase()!==`running`)return!1;let t=C(e);return t?Date.now()-t>=S:!1}function T(e){if(String(e?.status||``).trim().toLowerCase()!==`paused`)return!1;let t=String(e?.pause_reason||e?.pauseReason||``).trim().toLowerCase(),n=String(e?.stop_kind||e?.stopKind||``).trim().toLowerCase();return t===`stale_no_provider_activity`||n===`stale_reaped`}function E(e){if(String(e?.status||``).trim().toLowerCase()!==`running`||O(e)>0)return!1;let t=C(e);return t?Date.now()-t>=x:!1}function D(e){let t=String(e?.status||``).trim().toLowerCase();return E(e)?`stalled`:(t===`completed`||t===`done`)&&y(e)>0?`blocked`:(t===`completed`||t===`done`)&&h(e).length>0?`failed`:t||`unknown`}function O(e){return(Array.isArray(e?.active_session_ids)?e.active_session_ids:Array.isArray(e?.activeSessionIds)?e.activeSessionIds:[]).length}function k(t){let n=e(t);return n?.node_outputs||n?.nodeOutputs||{}}function A(e){return Object.entries(k(e)).map(([e,t])=>({nodeId:e,value:t}))}function j(e,t){let n=String(t||``).trim();return n&&k(e)[n]||null}function M(t,n){let r=e(t),i=String(n||``).trim();return i?Number(r?.node_attempts?.[i]||r?.nodeAttempts?.[i]||0):0}function N(e,t){let n=j(e,t);return String(n?.content?.session_id||n?.content?.sessionId||``).trim()}function P(e,t,n){let r=new Set(d(e)),i=new Set(p(e)),a=new Set(g(e)),o=String(t||``).trim();if(!o)return n.length?`pending`:`runnable`;let s=j(e,o),c=String(s?.status||s?.content?.status||``).trim().toLowerCase();if(r.has(o)||c===`done`||c===`completed`)return`done`;if(i.has(o)||c===`blocked`)return`blocked`;if(c===`verify_failed`||c===`failed`)return`failed`;let l=String(s?.error||s?.content?.error||s?.content?.message||s?.content?.status_message||``).trim().toLowerCase();return l&&(l.includes(`failed`)||l.includes(`error`))?`failed`:(a.has(o),n.length?`pending`:`runnable`)}function F(e,t=``){let n=String(t||``).trim();if(n)return n;let r=Array.isArray(e)?e:[];return r.find(e=>e.state===`in_progress`||e.state===`assigned`)?.id||r.find(e=>e.state===`runnable`)?.id||``}function I(e){let t=g(e),n=String(t[0]||``).trim();return n?n.startsWith(`node-`)?n:`node-${n}`:``}function L(t,n=``){let r=Array.isArray(t?.automation_snapshot?.flow?.nodes)?t.automation_snapshot.flow.nodes:[];if(!r.length)return{currentTaskId:``,taskSource:`empty`,tasks:[]};let i=new Set(d(t)),a=new Set(l(t,`blockedNodeIDs`,`blockedNodeIds`)),o=r.map(r=>{let o=String(r?.node_id||``).trim(),c=`node-${o}`,l=Array.isArray(r?.depends_on)?r.depends_on.map(e=>`node-${String(e||``).trim()}`).filter(Boolean):[],u=l.every(e=>i.has(e.replace(/^node-/,``))),d=P(t,o,u?[]:l),p=j(t,o)||{},m=s(e(t),`blocked_nodes`,`blockedNodes`).includes(o)||f(p)===`blocked`,h=a.has(o),g=n===c&&String(t?.status||``).trim().toLowerCase()===`running`?`in_progress`:h?`blocked`:d===`pending`&&u?`runnable`:d,_=r?.metadata?.builder||{};return{id:c,title:String(r?.objective||o||`Workflow node`),description:String(r?.agent_id?`agent: ${r.agent_id}`:``),dependencies:l,state:g,retry_count:M(t,o),error_message:String(p?.error||p?.content?.error||``),runtime_status:String(p?.status||p?.content?.status||``),runtime_detail:String(p?.summary||p?.content?.message||``),assigned_role:String(r?.agent_id||``),workflow_id:String(t?.automation_id||``),session_id:N(t,o),is_stale:h!==m,projects_backlog_tasks:!!_?.project_backlog_tasks,backlog_task_id:String(_?.task_id||``),task_kind:String(_?.task_kind||``),repo_root:String(_?.repo_root||``),write_scope:String(_?.write_scope||``),acceptance_criteria:String(_?.acceptance_criteria||``),task_dependencies:String(_?.task_dependencies||``),verification_state:String(_?.verification_state||``),task_owner:String(_?.task_owner||``),verification_command:String(_?.verification_command||``),output_path:String(_?.output_path||``)}});return{currentTaskId:F(o,n),taskSource:`checkpoint`,tasks:o}}function R(t){let n=e(t);return Array.isArray(n?.lifecycle_history)?n.lifecycle_history:Array.isArray(n?.lifecycleHistory)?n.lifecycleHistory:[]}function z(e){let t=R(e);return t.length&&[...t].sort((e,t)=>Number(t?.recorded_at_ms||t?.recordedAtMs||0)-Number(e?.recorded_at_ms||e?.recordedAtMs||0)).find(e=>String(e?.event||``).trim())||null}function B(e){return String(e?.metadata?.node_id||e?.metadata?.nodeId||``).trim()}function V(e){let t=B(e);return t?t.startsWith(`node-`)?t:`node-${t}`:``}function H(e,t,n=8){let r=String(t||``).trim();return r?R(e).filter(e=>B(e)===r).slice(-n).reverse():[]}function U(e,t,n=8){return H(e,t,n).map(e=>({...$(e),raw:e}))}function W(e){return V(z(e))}function G(e){let t=new Set,n=new Set([`node_completed`,`node_completed_with_warnings`,`node_failed`,`node_blocked`,`node_verify_failed`,`node_repair_requested`,`node_skipped_no_work`,`node_approval_rollback`]),r=[...R(e)].sort((e,t)=>Number(e?.recorded_at_ms||e?.recordedAtMs||0)-Number(t?.recorded_at_ms||t?.recordedAtMs||0));for(let e of r){let r=V(e);if(!r)continue;let i=String(e?.event||``).trim();if(i===`node_started`){t.add(r);continue}n.has(i)&&t.delete(r)}return Array.from(t)}function K(e){let t=Object.values(k(e)).filter(Boolean);return t.length&&t[t.length-1]||null}function q(e){let t=String(e?.summary||``).trim(),n=String(e?.status||e?.content?.status||``).trim(),r=String(e?.blocked_reason||e?.blockedReason||``).trim(),i=e?.content||{},a=String(i?.text||i?.raw_text||``).trim();return[t,n?`status: ${n}`:``,r,a].filter(Boolean).join(`
2
+ `).trim()}function J(e){return e?.tool_telemetry||e?.toolTelemetry||null}function Y(e){return e?.artifact_validation||e?.artifactValidation||null}function X(e){let t=Y(e);return Array.isArray(t?.artifact_candidates)?t.artifact_candidates:[]}function Z(e){let t=Y(e);return{workflowClass:String(e?.workflow_class||e?.workflowClass||t?.execution_policy?.workflow_class||``).trim(),phase:String(e?.phase||e?.node_phase||``).trim(),failureKind:String(e?.failure_kind||e?.failureKind||``).trim()}}function Q(e){let t=K(e),n=z(e),r=Z(t);return{latestOutput:t,latestEvent:n,phase:r.phase||String(n?.metadata?.phase||``).trim(),failureKind:r.failureKind||String(n?.metadata?.failure_kind||``).trim(),reason:String(n?.reason||t?.blocked_reason||``).trim(),status:String(e?.status||t?.status||`never_run`).trim()}}function $(e){let t=e?.metadata||{};return{event:String(e?.event||`event`).trim()||`event`,recordedAtMs:Number(e?.recorded_at_ms||e?.recordedAtMs||0),nodeId:B(e),taskId:V(e),phase:String(e?.phase||t?.phase||``).trim(),failureKind:String(e?.failure_kind||e?.failureKind||t?.failure_kind||``).trim(),workflowClass:String(e?.workflow_class||e?.workflowClass||t?.workflow_class||``).trim(),reason:String(e?.reason||t?.reason||``).trim()||`No reason recorded`,status:String(e?.status||t?.status||``).trim()}}function ee(e,n){let r=(Array.isArray(e)?e:[]).map(e=>({id:`event:${String(e?.seq||``)}:${String(e?.event_type||e?.eventType||``)}`,family:`event`,type:String(e?.event_type||e?.eventType||`context_event`),detail:String(e?.payload?.reason||e?.payload?.detail||e?.payload?.error||e?.payload?.status||e?.status||``).trim(),at:t(e?.created_at_ms||e?.timestamp_ms||e?.timestampMs)||Number(e?.seq||0),raw:e})),i=(Array.isArray(n)?n:[]).map(e=>({id:`patch:${String(e?.seq||``)}:${String(e?.op||``)}`,family:`patch`,type:String(e?.op||`blackboard_patch`),detail:String(e?.payload?.status||e?.payload?.task_id||e?.payload?.artifact_id||e?.payload?.title||``).trim(),at:t(e?.created_at_ms||e?.timestamp_ms)||Number(e?.seq||0),raw:e}));return[...r,...i].sort((e,t)=>Number(t.at||0)-Number(e.at||0))}function te(e,t=``){return(Array.isArray(e)?e:[]).map((e,n)=>({id:`persisted:${String(t||``)}:${n}`,family:`run_event`,type:String(r(e)||`run.event`),detail:String(a(e)||``).trim(),at:i(e),raw:e})).sort((e,t)=>Number(t.at||0)-Number(e.at||0))}function ne(e,n,a,o=``){let s=(Array.isArray(e)?e:[]).map((e,t)=>({id:`persisted:${String(o||``)}:${String(e?.seq||t)}:${String(r(e)||``)}`,source:`automations`,at:i(e),event:e}));return a?[...s,...(Array.isArray(n)?n:[]).map(e=>({id:`context:${String(e?.seq||``)}:${String(e?.event_type||``)}`,source:`context`,at:t(e?.created_at_ms||e?.timestamp_ms||e?.timestampMs)||Date.now(),event:e}))]:s}function re(e,t=``){return(Array.isArray(e)?e:[]).map(e=>{let n=o(e?.event,t),i=r(e?.event);return{id:`event:${e?.id||``}`,kind:`event`,sessionId:n,at:Number(e?.at||0),variant:i===`session.error`?`error`:i.startsWith(`session.`)?`system`:`tool`,label:i||`event`,body:a(e?.event),raw:e?.event,parts:[]}})}function ie(e){let t=[],n=(e,n,r,i,a)=>{String(r||``).trim()&&(t.some(t=>t.key===e)||t.push({key:e,title:n,reason:String(r).trim(),source:i,at:a}))};for(let t of Array.isArray(e)?e:[]){let e=t?.event||t||{},o=String(r(e)||``).trim(),s=a(e),c=Number(t?.at||i(e)||0);(o===`permission.asked`||o===`approval.required`||o===`routine.approval_required`)&&n(`event-${o}`,`Permission or approval required`,s||o,`permission`,c),o===`mcp.auth.required`&&n(`event-${o}`,`MCP auth required`,s||`An MCP connector requires authorization.`,`mcp`,c),(o===`session.error`||o===`run.failed`||o===`routine.run.failed`)&&n(`event-${o}`,`Execution failure`,s||o,`session`,c),s.toLowerCase().includes(`no further tool calls`)&&n(`tool-mode`,`Tool policy blocked progress`,s,`policy`,c),s.toLowerCase().includes(`timed out`)&&n(`timeout-${o||c}`,`Timeout`,s,`session`,c)}return t.sort((e,t)=>(t.at||0)-(e.at||0))}function ae(e){return(Array.isArray(e)?e:[]).map(e=>({id:String(e?.id||``).trim(),source:String(e?.source||``).trim()||`event`,at:Number(e?.at||0),label:r(e?.event)||`event`,detail:a(e?.event)||`No summary available.`,raw:e?.event?.properties||e?.event||null,event:e?.event||null}))}function oe(e,t){let n=J(t),r=Y(t),i=Z(t),a=t?.validator_summary||t?.validatorSummary||{},o=t?.attempt_evidence||t?.attemptEvidence||{},s=u(o?.receipt_timeline||o?.receiptTimeline),l=(()=>{let r=t?.approved;if(typeof r==`boolean`)return r?`approved`:`not approved`;let i=String(n?.verification_outcome||``).trim().toLowerCase();if(i)return i;let a=String(t?.status||``).trim().toLowerCase();if(a)return a;let o=String(e?.state||``).trim().toLowerCase();return o===`done`?`completed`:o===`blocked`?`blocked`:o===`failed`?`failed`:o||`unknown`})();return{telemetry:n,artifactValidation:r,validatorSummary:a,touchedFiles:c(r?.touched_files),undeclaredFiles:c(r?.undeclared_files_created),researchReadPaths:c(r?.read_paths),discoveredRelevantPaths:c(r?.discovered_relevant_paths),reviewedPathsBackedByRead:c(r?.reviewed_paths_backed_by_read),unreviewedRelevantPaths:c(r?.unreviewed_relevant_paths),unmetResearchRequirements:c(r?.unmet_requirements),warningRequirements:c(a?.warning_requirements||a?.warningRequirements||r?.warning_requirements||r?.warningRequirements),warningCount:Number(a?.warning_count||a?.warningCount||r?.warning_count||r?.warningCount||0)||0,validationOutcome:String(a?.outcome||r?.validation_outcome||``).trim().toLowerCase(),verificationOutcome:l,verificationPassed:typeof t?.approved==`boolean`?t.approved:[`approved`,`completed`,`done`].includes(l)?!0:[`blocked`,`failed`,`not approved`].includes(l)?!1:null,verificationResults:Array.isArray(n?.verification_results)?n.verification_results:[],failureDetail:String(t?.blocked_reason||t?.blockedReason||r?.semantic_block_reason||r?.rejected_artifact_reason||e?.error_message||``).trim(),validationBasis:r?.validation_basis||r?.validationBasis||t?.validation_basis||t?.validationBasis||null,qualityMode:String(t?.quality_mode||t?.qualityMode||``).trim(),requestedQualityMode:String(t?.requested_quality_mode||t?.requestedQualityMode||``).trim(),emergencyRollbackEnabled:typeof t?.emergency_rollback_enabled==`boolean`?t.emergency_rollback_enabled:typeof t?.emergencyRollbackEnabled==`boolean`?t.emergencyRollbackEnabled:null,blockerCategory:String(t?.blocker_category||t?.blockerCategory||r?.blocking_classification||r?.blockingClassification||``).trim(),receiptLedger:o?.receipt_ledger||o?.receiptLedger||null,receiptTimeline:s,workflowClass:i.workflowClass,phase:i.phase,failureKind:i.failureKind,artifactCandidates:X(t)}}function se(e){let t=Array.isArray(e?.active_session_ids)?e.active_session_ids:Array.isArray(e?.activeSessionIds)?e.activeSessionIds:[],n=[String(e?.latest_session_id||``).trim(),String(e?.latestSessionId||``).trim()].filter(Boolean),r=Object.values(k(e)).flatMap(e=>{let t=e?.content||{},n=e?.provenance||{},r=e?.attempt_evidence||e?.attemptEvidence||{};return[String(e?.session_id||e?.sessionId||``).trim(),String(t?.session_id||t?.sessionId||``).trim(),String(n?.session_id||n?.sessionId||``).trim(),String(r?.session_id||r?.sessionId||``).trim()]}).filter(Boolean);return Array.from(new Set([...n,...t.map(e=>String(e||``).trim()).filter(Boolean),...r].filter(Boolean)))}export{re as A,te as C,C as D,w as E,ae as M,ne as N,T as O,b as P,v as S,U as T,m as _,p as a,q as b,D as c,n as d,o as f,Q as g,W as h,y as i,oe as j,se as k,i as l,I as m,O as n,_ as o,r as p,Y as r,ee as s,G as t,ie as u,j as v,L as w,J as x,A as y};
package/dist/index.html CHANGED
@@ -11,14 +11,15 @@
11
11
  href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&family=Rubik:wght@500;700;800&family=Manrope:wght@400;500;600;700&display=swap"
12
12
  rel="stylesheet"
13
13
  />
14
- <script type="module" crossorigin src="/assets/index-DhoScTZK.js"></script>
14
+ <script type="module" crossorigin src="/assets/index-TvymvGva.js"></script>
15
15
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-Dgq8h090.js">
16
- <link rel="modulepreload" crossorigin href="/assets/motion-CBnf8hfk.js">
17
- <link rel="modulepreload" crossorigin href="/assets/react-query-_hsOQSt5.js">
18
- <link rel="modulepreload" crossorigin href="/assets/preact-vendor-B239Onrg.js">
19
- <link rel="modulepreload" crossorigin href="/assets/vendor-DZYPF2Pz.js">
20
- <link rel="modulepreload" crossorigin href="/assets/markdown-Dd89TVib.js">
21
- <link rel="stylesheet" crossorigin href="/assets/index-BL-9rGEh.css">
16
+ <link rel="modulepreload" crossorigin href="/assets/fullcalendar-Bn75j0xM.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/motion-B3ZE8SGR.js">
18
+ <link rel="modulepreload" crossorigin href="/assets/react-query-BIbNygEJ.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/vendor-DSaYtO9f.js">
20
+ <link rel="modulepreload" crossorigin href="/assets/markdown-Dwwtq3bu.js">
21
+ <link rel="modulepreload" crossorigin href="/assets/preact-vendor-DaCG_P2o.js">
22
+ <link rel="stylesheet" crossorigin href="/assets/index-C8Bjo7hU.css">
22
23
  </head>
23
24
  <body>
24
25
  <div id="app"></div>
@@ -7,6 +7,33 @@ const WORKFLOW_SORT_MODES = [
7
7
 
8
8
  const DEFAULT_WORKFLOW_SORT_MODE = WORKFLOW_SORT_MODES[0].value;
9
9
 
10
+ const WORKFLOW_LIBRARY_SOURCE_FILTERS = [
11
+ { value: "user_created", label: "User" },
12
+ { value: "agent_created", label: "Agent" },
13
+ { value: "bug_monitor", label: "Bug Monitor" },
14
+ { value: "system", label: "System" },
15
+ ];
16
+
17
+ const WORKFLOW_LIBRARY_STATUS_FILTERS = [
18
+ { value: "active", label: "Active" },
19
+ { value: "paused", label: "Paused" },
20
+ { value: "draft", label: "Draft" },
21
+ ];
22
+
23
+ const DEFAULT_WORKFLOW_LIBRARY_FILTERS = {
24
+ sources: {
25
+ user_created: true,
26
+ agent_created: true,
27
+ bug_monitor: false,
28
+ system: false,
29
+ },
30
+ statuses: {
31
+ active: true,
32
+ paused: true,
33
+ draft: true,
34
+ },
35
+ };
36
+
10
37
  function normalizeWorkflowSortMode(raw) {
11
38
  const value = String(raw || "").trim().toLowerCase();
12
39
  if (WORKFLOW_SORT_MODES.some((mode) => mode.value === value)) return value;
@@ -58,6 +85,119 @@ function getAutomationCreatedAtMs(row) {
58
85
  return 0;
59
86
  }
60
87
 
88
+ function normalizeFilterValue(raw) {
89
+ return String(raw || "")
90
+ .trim()
91
+ .toLowerCase()
92
+ .replace(/[\s-]+/g, "_");
93
+ }
94
+
95
+ function normalizeVisibilityMap(raw, options, defaults) {
96
+ const input = raw && typeof raw === "object" ? raw : {};
97
+ const out = {};
98
+ for (const option of options) {
99
+ const key = option.value;
100
+ const value = input[key];
101
+ out[key] = typeof value === "boolean" ? value : !!defaults[key];
102
+ }
103
+ return out;
104
+ }
105
+
106
+ function normalizeWorkflowLibraryFilters(raw = {}) {
107
+ const input = raw && typeof raw === "object" ? raw : {};
108
+ const rawSources = input.sources || input.source_filters || input.sourceFilters || {};
109
+ const rawStatuses = input.statuses || input.status_filters || input.statusFilters || {};
110
+ return {
111
+ sources: normalizeVisibilityMap(
112
+ rawSources,
113
+ WORKFLOW_LIBRARY_SOURCE_FILTERS,
114
+ DEFAULT_WORKFLOW_LIBRARY_FILTERS.sources
115
+ ),
116
+ statuses: normalizeVisibilityMap(
117
+ rawStatuses,
118
+ WORKFLOW_LIBRARY_STATUS_FILTERS,
119
+ DEFAULT_WORKFLOW_LIBRARY_FILTERS.statuses
120
+ ),
121
+ };
122
+ }
123
+
124
+ function workflowLibraryFiltersEqual(left, right) {
125
+ const a = normalizeWorkflowLibraryFilters(left);
126
+ const b = normalizeWorkflowLibraryFilters(right);
127
+ for (const option of WORKFLOW_LIBRARY_SOURCE_FILTERS) {
128
+ if (a.sources[option.value] !== b.sources[option.value]) return false;
129
+ }
130
+ for (const option of WORKFLOW_LIBRARY_STATUS_FILTERS) {
131
+ if (a.statuses[option.value] !== b.statuses[option.value]) return false;
132
+ }
133
+ return true;
134
+ }
135
+
136
+ function automationMetadataSource(row) {
137
+ return normalizeFilterValue(
138
+ row?.metadata?.source ||
139
+ row?.metadata?.origin ||
140
+ row?.metadata?.plan_source ||
141
+ row?.metadata?.planSource ||
142
+ row?.source ||
143
+ row?.origin
144
+ );
145
+ }
146
+
147
+ function classifyAutomationSource(row) {
148
+ const metadataSource = automationMetadataSource(row);
149
+ const creatorId = normalizeFilterValue(row?.creator_id || row?.creatorId || row?.created_by || row?.createdBy);
150
+ const name = getAutomationName(row).toLowerCase();
151
+
152
+ if (
153
+ metadataSource === "bug_monitor" ||
154
+ metadataSource === "bug_monitor_approval" ||
155
+ creatorId === "bug_monitor" ||
156
+ name.startsWith("bug monitor triage:")
157
+ ) {
158
+ return { key: "bug_monitor", label: "Bug Monitor" };
159
+ }
160
+
161
+ if (
162
+ metadataSource.includes("workflow_planner") ||
163
+ metadataSource.includes("planner") ||
164
+ metadataSource.includes("agent") ||
165
+ creatorId.includes("workflow_planner") ||
166
+ creatorId.includes("agent")
167
+ ) {
168
+ return { key: "agent_created", label: "Agent" };
169
+ }
170
+
171
+ if (
172
+ metadataSource === "system" ||
173
+ metadataSource.startsWith("system_") ||
174
+ creatorId === "system" ||
175
+ creatorId === "tandem"
176
+ ) {
177
+ return { key: "system", label: "System" };
178
+ }
179
+
180
+ return { key: "user_created", label: "User" };
181
+ }
182
+
183
+ function normalizeAutomationStatusFilter(row) {
184
+ const status = normalizeFilterValue(row?.status || "draft");
185
+ if (status === "paused" || status === "disabled") return "paused";
186
+ if (status === "active" || status === "enabled" || status === "running") return "active";
187
+ return "draft";
188
+ }
189
+
190
+ function filterWorkflowAutomations(rows, filters = DEFAULT_WORKFLOW_LIBRARY_FILTERS) {
191
+ const normalized = normalizeWorkflowLibraryFilters(filters);
192
+ return Array.isArray(rows)
193
+ ? rows.filter((row) => {
194
+ const source = classifyAutomationSource(row).key;
195
+ const status = normalizeAutomationStatusFilter(row);
196
+ return normalized.sources[source] !== false && normalized.statuses[status] !== false;
197
+ })
198
+ : [];
199
+ }
200
+
61
201
  function formatAutomationCreatedAtLabel(row) {
62
202
  const createdAtMs = getAutomationCreatedAtMs(row);
63
203
  if (!createdAtMs) return "";
@@ -133,15 +273,22 @@ function sortWorkflowAutomations(rows, options = {}) {
133
273
  }
134
274
 
135
275
  export {
276
+ DEFAULT_WORKFLOW_LIBRARY_FILTERS,
136
277
  DEFAULT_WORKFLOW_SORT_MODE,
278
+ WORKFLOW_LIBRARY_SOURCE_FILTERS,
279
+ WORKFLOW_LIBRARY_STATUS_FILTERS,
137
280
  WORKFLOW_SORT_MODES,
281
+ classifyAutomationSource,
138
282
  compareAutomationRows,
283
+ filterWorkflowAutomations,
139
284
  getAutomationCreatedAtMs,
140
285
  getAutomationId,
141
286
  getAutomationName,
142
287
  formatAutomationCreatedAtLabel,
143
288
  normalizeFavoriteAutomationIds,
289
+ normalizeWorkflowLibraryFilters,
144
290
  normalizeWorkflowSortMode,
145
291
  sortWorkflowAutomations,
146
292
  toggleFavoriteAutomationId,
293
+ workflowLibraryFiltersEqual,
147
294
  };
@@ -4,6 +4,7 @@ import { dirname, resolve } from "path";
4
4
  import {
5
5
  DEFAULT_WORKFLOW_SORT_MODE,
6
6
  normalizeFavoriteAutomationIds,
7
+ normalizeWorkflowLibraryFilters,
7
8
  normalizeWorkflowSortMode,
8
9
  } from "../automations/workflow-list.js";
9
10
 
@@ -32,6 +33,9 @@ function normalizePrincipalPreferences(raw = {}, principalId = "") {
32
33
  workflow_sort_mode: normalizeWorkflowSortMode(
33
34
  input.workflow_sort_mode || input.workflowSortMode || DEFAULT_WORKFLOW_SORT_MODE
34
35
  ),
36
+ workflow_library_filters: normalizeWorkflowLibraryFilters(
37
+ input.workflow_library_filters || input.workflowLibraryFilters || {}
38
+ ),
35
39
  };
36
40
  }
37
41
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frumu/tandem-panel",
3
- "version": "0.5.4",
3
+ "version": "0.5.6",
4
4
  "description": "Full web control center for Tandem Engine (chat, routines, swarm, memory, channels, and ops)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -46,8 +46,8 @@
46
46
  "@fullcalendar/interaction": "6.1.20",
47
47
  "@fullcalendar/react": "6.1.20",
48
48
  "@fullcalendar/timegrid": "6.1.20",
49
- "@frumu/tandem": "^0.5.4",
50
- "@frumu/tandem-client": "^0.5.4",
49
+ "@frumu/tandem": "^0.5.6",
50
+ "@frumu/tandem-client": "^0.5.6",
51
51
  "@tanstack/react-query": "^5.90.21",
52
52
  "dompurify": "^3.3.1",
53
53
  "lucide": "^0.575.0",
@@ -178,6 +178,7 @@ export function createCapabilitiesHandler(deps) {
178
178
  hosted_update_policy: installProfile?.hosted_update_policy || "",
179
179
  workspace_files_root: installProfile?.workspace_files_root || "",
180
180
  workspace_files_available: !!installProfile?.workspace_files_available,
181
+ workspace_files_api_available: installProfile?.workspace_files_api_available === true,
181
182
  _internal: {
182
183
  capability_detect_duration_ms: durationMs,
183
184
  },
@@ -132,6 +132,10 @@ function resolveTargetPath(pathname) {
132
132
  }
133
133
  if (rest[0] === "reindex") return "/admin/reindex";
134
134
  if (rest[0] === "config") return "/admin/config";
135
+ if (rest[0] === "prompts" && rest.length === 1) return "/admin/prompts";
136
+ if (rest[0] === "prompts" && rest.length === 2) {
137
+ return `/admin/prompts/${encodeIncomingPathSegment(rest[1])}`;
138
+ }
135
139
  return "";
136
140
  }
137
141
 
@@ -179,7 +183,9 @@ export function createKnowledgebaseApiHandler(deps) {
179
183
  (incoming.pathname === "/api/knowledgebase/collections" && method !== "GET") ||
180
184
  (incoming.pathname === "/api/knowledgebase/documents" && !["GET", "POST"].includes(method)) ||
181
185
  (incoming.pathname.startsWith("/api/knowledgebase/documents/") && !["GET", "PUT", "DELETE"].includes(method)) ||
182
- (incoming.pathname === "/api/knowledgebase/reindex" && method !== "POST")
186
+ (incoming.pathname === "/api/knowledgebase/reindex" && method !== "POST") ||
187
+ (incoming.pathname === "/api/knowledgebase/prompts" && method !== "GET") ||
188
+ (incoming.pathname.startsWith("/api/knowledgebase/prompts/") && !["GET", "PUT", "DELETE"].includes(method))
183
189
  ) {
184
190
  sendJson(res, 405, { ok: false, error: "Method not allowed." });
185
191
  return true;
@@ -1 +0,0 @@
1
- *,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:#6b7280;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}input:where([type=text]):focus,input:where(:not([type])):focus,input:where([type=email]):focus,input:where([type=url]):focus,input:where([type=password]):focus,input:where([type=number]):focus,input:where([type=date]):focus,input:where([type=datetime-local]):focus,input:where([type=month]):focus,input:where([type=search]):focus,input:where([type=tel]):focus,input:where([type=time]):focus,input:where([type=week]):focus,select:where([multiple]):focus,textarea:focus,select:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-color:#2563eb;outline:2px solid #0000}input::-moz-placeholder{color:#6b7280;opacity:1}textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;-webkit-print-color-adjust:unset;print-color-adjust:unset;padding-right:.75rem}input:where([type=checkbox]),input:where([type=radio]){appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:#2563eb;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:#6b7280;flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);outline:2px solid #0000}input:where([type=checkbox]):checked,input:where([type=radio]):checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors:active){input:where([type=checkbox]):checked{appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors:active){input:where([type=radio]):checked{appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{background-color:currentColor;border-color:#0000}input:where([type=checkbox]):indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media (forced-colors:active){input:where([type=checkbox]):indeterminate{appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{background-color:currentColor;border-color:#0000}input:where([type=file]){background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}input:where([type=file]):focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-background:#121212;--color-surface:#141414;--color-surface-elevated:#1a1a1a;--color-border:#f5f5f51a;--color-border-subtle:#f5f5f50f;--color-primary:#f59e0b;--color-primary-hover:#d97706;--color-primary-muted:#b45309;--color-secondary:#ef4444;--color-secondary-hover:#dc2626;--color-success:#10b981;--color-warning:#f59e0b;--color-error:#ef4444;--color-text:#f5f5f5;--color-text-muted:#f5f5f5b3;--color-text-subtle:#f5f5f580;--color-glass:#ffffff08;--color-glass-border:#ffffff14;--font-sans:"Manrope", "Geist Sans", "Inter", system-ui, -apple-system, sans-serif;--font-display:"Rubik", "Geist Sans", "Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Geist Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace;--radius:0px;--border-width:1px;--border-width-strong:2px;--shadow-offset:2px 2px 0 #00000052;--shadow-offset-lg:4px 4px 0 #00000052;--clip-primary-cta:polygon(10% 0, 100% 0, 100% 100%, 0 100%, 0 25%);--tcp-glow-a:#f59e0b29;--tcp-glow-b:#ef44441f}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text);font-family:var(--font-sans);letter-spacing:.003em;background:var(--color-background);min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background-color:#334155b3;border-radius:9999px}::-webkit-scrollbar-track{background-color:#0000}.tcp-shell{background:linear-gradient(180deg, color-mix(in srgb, var(--color-background) 98%, black 2%), var(--color-background));min-height:100vh;display:grid;position:relative;overflow:clip}.tcp-shell-chat{height:100dvh;overflow:hidden}@media (width>=1024px){.tcp-shell{grid-template-columns:300px minmax(0,1fr)}}@media (width>=1280px){.tcp-shell{grid-template-columns:76px minmax(0,1fr)}}.tcp-glow-layer{display:none}.tcp-shell-background{overflow:hidden}.tcp-shell-glow{display:none}.tcp-icon-rail,.tcp-context-rail,.tcp-main-shell{z-index:1;position:relative}.tcp-icon-rail{border-right:1px solid color-mix(in srgb, var(--color-border-subtle) 86%, transparent);background:color-mix(in srgb, var(--color-surface) 94%, #000 6%);flex-direction:column;align-items:center;gap:1rem;padding:1rem .9rem;display:flex}.tcp-rail-brand{justify-content:center;align-items:center;width:100%;padding:.1rem 0;display:flex}.tcp-rail-nav{justify-items:center;gap:.55rem;width:100%;display:grid}.tcp-rail-icon{isolation:isolate;width:2.9rem;height:2.9rem;color:var(--color-text-muted);background:0 0;border:1px solid #0000;border-radius:0;justify-content:center;align-items:center;transition:transform .18s,color .18s,border-color .18s;display:inline-flex;position:relative}.tcp-rail-icon:hover{color:var(--color-text);border-color:color-mix(in srgb, var(--color-primary) 26%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 72%, var(--color-primary) 8%);transform:translateY(-1px)}.tcp-rail-icon.active{color:var(--color-text)}.tcp-rail-icon.\!active{color:var(--color-text)!important}.tcp-rail-icon-indicator{z-index:0;pointer-events:none;border:1px solid color-mix(in srgb, var(--color-primary) 38%, transparent);background:color-mix(in srgb, var(--color-primary) 10%, var(--color-surface-elevated) 90%);box-shadow:var(--shadow-offset);border-radius:0;position:absolute;inset:0}.tcp-rail-icon>i,.tcp-rail-icon>svg{z-index:1;position:relative}.tcp-rail-icon svg,.tcp-icon-btn svg{width:17px;height:17px}.tcp-rail-footer{justify-items:center;gap:.55rem;width:100%;margin-top:auto;display:grid}.tcp-icon-btn{width:2.5rem;height:2.5rem;color:var(--color-text-muted);border:1px solid color-mix(in srgb, var(--color-border-subtle) 88%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 88%, #000 12%);border-radius:0;justify-content:center;align-items:center;transition:transform .16s,border-color .16s,color .16s;display:inline-flex}.tcp-icon-btn:hover{color:var(--color-text);border-color:color-mix(in srgb, var(--color-primary) 40%, transparent);transform:translateY(-1px)}.tcp-icon-btn:disabled{cursor:not-allowed;opacity:.45;transform:none}.tcp-context-rail{border-right:1px solid color-mix(in srgb, var(--color-border-subtle) 90%, transparent);background:color-mix(in srgb, var(--color-surface) 94%, #000 6%);flex-direction:column;gap:1rem;padding:1.15rem;display:flex}.tcp-context-hero,.tcp-page-header,.tcp-panel-card,.tcp-mobile-topbar,.tcp-topbar{border:1px solid color-mix(in srgb, var(--color-border-subtle) 88%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 92%, #000 8%);box-shadow:var(--shadow-offset);position:relative;overflow:hidden}.tcp-context-hero{border-radius:0;padding:1rem}.tcp-context-hero-glow{display:none}.tcp-context-section{gap:.55rem;display:grid}.tcp-context-section-label,.tcp-page-eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-subtle);font-size:11px;line-height:1}.tcp-context-link{min-height:2.8rem;color:var(--color-text-muted);background:0 0;border:1px solid #0000;border-radius:0;justify-content:space-between;align-items:center;gap:.8rem;padding:.75rem .9rem;transition:transform .16s,border-color .16s,background-color .16s,color .16s;display:flex}.tcp-context-link:hover{border-color:color-mix(in srgb, var(--color-primary) 24%, transparent);color:var(--color-text);background:color-mix(in srgb, var(--color-surface-elevated) 80%, var(--color-primary) 8%);transform:translate(2px)}.tcp-context-link.active{border-color:color-mix(in srgb, var(--color-primary) 42%, transparent);color:var(--color-text);background:color-mix(in srgb, var(--color-primary) 12%, var(--color-surface-elevated) 88%)}.tcp-context-link.\!active{border-color:color-mix(in srgb, var(--color-primary) 42%, transparent)!important;color:var(--color-text)!important;background:color-mix(in srgb, var(--color-primary) 12%, var(--color-surface-elevated) 88%)!important}.tcp-context-link-dot{background:var(--color-primary);width:.5rem;height:.5rem;box-shadow:0 0 18px color-mix(in srgb, var(--color-primary) 58%, transparent);border-radius:9999px}.tcp-context-stat{border:1px solid color-mix(in srgb, var(--color-border-subtle) 88%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 90%, #000 10%);border-radius:0;justify-content:space-between;align-items:center;gap:.75rem;min-height:2.75rem;padding:.75rem .85rem;display:flex}.tcp-main-shell{flex-direction:column;gap:1rem;min-width:0;padding:1rem;display:flex}.tcp-main-shell-fill{flex:auto;height:100%;min-height:0;overflow:hidden}@media (width>=1024px){.tcp-shell{min-height:100dvh}.tcp-icon-rail,.tcp-context-rail,.tcp-main-shell{min-height:0}.tcp-icon-rail,.tcp-context-rail{align-self:start;height:100dvh;position:sticky;top:0;overflow:hidden}.tcp-main-shell{min-height:0}}.tcp-mobile-topbar,.tcp-topbar{border-radius:0;padding:1rem 1.1rem}.tcp-mobile-topbar{align-items:center;gap:.85rem;display:flex}.tcp-topbar{display:none}@media (width>=1024px){.tcp-topbar{justify-content:space-between;align-items:end;gap:1rem;padding:1.15rem 1.25rem;display:flex}}.tcp-page-header-glow{display:none}.tcp-main-title,.tcp-page-title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--color-text);font-size:clamp(1.75rem,3vw,2.7rem);line-height:1}.tcp-topbar-status{flex-wrap:wrap;justify-content:flex-start;gap:.55rem;display:flex}.tcp-bug-monitor-pill{letter-spacing:.02em;border:1px solid color-mix(in srgb, var(--color-border-subtle) 88%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 88%, #000 12%);min-height:2rem;color:var(--color-text);border-radius:9999px;align-items:center;gap:.45rem;padding:.34rem .72rem;font-size:.72rem;font-weight:700;transition:border-color .15s,background .15s,color .15s,box-shadow .15s;display:inline-flex}.tcp-bug-monitor-pill:hover{border-color:color-mix(in srgb, var(--color-primary) 42%, var(--color-border-subtle) 58%);background:color-mix(in srgb, var(--color-surface-elevated) 82%, var(--color-primary) 18%)}.tcp-bug-monitor-pill svg{width:14px;height:14px}.tcp-bug-monitor-dot{background:currentColor;border-radius:9999px;width:.42rem;height:.42rem;animation:2.4s ease-out infinite tcpPulseDot;box-shadow:0 0}.tcp-bug-monitor-pill.watching{color:color-mix(in srgb, var(--color-primary) 76%, white 24%);border-color:color-mix(in srgb, var(--color-primary) 42%, transparent)}.tcp-bug-monitor-pill.incidents{color:#fca5a5;background:color-mix(in srgb, #7f1d1d 24%, var(--color-surface-elevated) 76%);border-color:#ef44446b}.tcp-bug-monitor-pill.\!incidents{color:#fca5a5!important;background:color-mix(in srgb, #7f1d1d 24%, var(--color-surface-elevated) 76%)!important;border-color:#ef44446b!important}.tcp-bug-monitor-pill.blocked{color:#fcd34d;border-color:#f59e0b6b}.tcp-bug-monitor-pill.paused{color:color-mix(in srgb, var(--color-text-muted) 86%, white 14%)}.tcp-bug-monitor-pill.ready{color:#86efac;border-color:#22c55e57}.tcp-bug-monitor-pill.\!ready{color:#86efac!important;border-color:#22c55e57!important}.tcp-main-content{align-content:start;gap:1rem;min-width:0;min-height:0;padding-bottom:1rem;display:grid}.tcp-main-content-fill{flex-direction:column;flex:auto;min-height:0;padding-bottom:0;display:flex;overflow:hidden}@media (width>=1024px){.tcp-main-content{flex:none}.tcp-main-content-fill{flex:auto}}.tcp-toolbar{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.tcp-panel-card{border-radius:1.4rem;padding:1.15rem}.tcp-panel-card-head{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:.9rem;margin-bottom:.9rem;display:flex}.tcp-panel-card-head>.min-w-0{flex:240px}.tcp-page-header{border-radius:1.6rem;padding:1.2rem}.tcp-page-header-glow{background:radial-gradient(circle at top right, color-mix(in srgb, var(--tcp-glow-a) 46%, transparent), transparent 36%), radial-gradient(circle at bottom left, color-mix(in srgb, var(--tcp-glow-b) 34%, transparent), transparent 42%)}.tcp-status-pulse{letter-spacing:.02em;border:1px solid color-mix(in srgb, var(--color-border-subtle) 88%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 86%, #000 14%);border-radius:9999px;align-items:center;gap:.45rem;padding:.34rem .62rem;font-size:.72rem;font-weight:600;display:inline-flex}.tcp-status-pulse-dot{background:currentColor;border-radius:9999px;width:.42rem;height:.42rem;animation:2.4s ease-out infinite tcpPulseDot;box-shadow:0 0}.tcp-status-pulse.ok{color:#86efac}.tcp-status-pulse.\!ok{color:#86efac!important}.tcp-status-pulse.warn{color:#fcd34d}.tcp-status-pulse.live{color:color-mix(in srgb, var(--color-primary) 78%, white 22%)}.tcp-status-pulse.info{color:var(--color-text)}.tcp-card{border-radius:var(--radius);--tw-shadow:var(--tw-shadow-colored);--tw-shadow-colored:var(--shadow-offset);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow);--tw-shadow-color:var(--color-border-subtle);border:1px solid color-mix(in srgb, var(--color-border-subtle) 92%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 94%, #000 6%);padding:1.25rem}.tcp-chat-container{flex-direction:column;height:100%;min-height:0;display:flex}.tcp-chat-fill{flex:auto;min-height:0;overflow:hidden}.tcp-input{border-radius:var(--radius);width:100%;padding:.375rem .75rem;font-size:.875rem;line-height:1.25}.tcp-input::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.tcp-input:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.tcp-input{border:1px solid color-mix(in srgb, var(--color-border) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 88%, #000 12%);min-height:2.25rem;color:var(--color-text);--tw-ring-color:color-mix(in srgb, var(--color-primary) 45%, transparent)}select.tcp-input,select.tcp-select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23cbd5e1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'></polyline></svg>");background-position:right .6rem center;background-repeat:no-repeat;background-size:12px 12px;padding-right:2rem}.tcp-input.h-7,.tcp-input.h-8,.tcp-select.h-7,.tcp-select.h-8{min-height:0}.tcp-select{border-radius:var(--radius);width:100%;padding:.375rem .75rem;font-size:.875rem;line-height:1.25}.tcp-select::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.tcp-select:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.tcp-select{border:1px solid color-mix(in srgb, var(--color-border) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 88%, #000 12%);min-height:2.25rem;color:var(--color-text);--tw-ring-color:color-mix(in srgb, var(--color-primary) 45%, transparent)}select.tcp-select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23cbd5e1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'></polyline></svg>");background-position:right .6rem center;background-repeat:no-repeat;background-size:12px 12px;padding-right:2rem}.tcp-select.h-7,.tcp-select.h-8{min-height:0}.tcp-select{border-radius:0;padding-right:2.5rem}.tcp-btn{border-radius:var(--radius);--tw-shadow:var(--tw-shadow-colored);--tw-shadow-colored:var(--shadow-offset);height:2.25rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow);--tw-shadow-color:var(--color-border-subtle);justify-content:center;align-items:center;gap:.375rem;padding-left:.875rem;padding-right:.875rem;font-size:13px;font-weight:600;line-height:1;transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-flex}.tcp-btn:active{--tw-translate-y:1px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tcp-btn:disabled{cursor:not-allowed;opacity:.5}.tcp-btn{border:1px solid color-mix(in srgb, var(--color-border-subtle) 92%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 94%, #000 6%);color:var(--color-text)}.tcp-btn:hover{border-color:color-mix(in srgb, var(--color-primary) 40%, var(--color-border-subtle) 60%);background:color-mix(in srgb, var(--color-surface-elevated) 88%, var(--color-primary) 12%)}.tcp-btn svg{width:14px;height:14px}.tcp-btn-primary{border-radius:var(--radius);--tw-shadow:var(--tw-shadow-colored);--tw-shadow-colored:var(--shadow-offset);height:2.25rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow);--tw-shadow-color:var(--color-border-subtle);justify-content:center;align-items:center;gap:.375rem;padding-left:.875rem;padding-right:.875rem;font-size:13px;font-weight:600;line-height:1;transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-flex}.tcp-btn-primary:active{--tw-translate-y:1px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tcp-btn-primary:disabled{cursor:not-allowed;opacity:.5}.tcp-btn-primary{border:1px solid color-mix(in srgb, var(--color-border-subtle) 92%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 94%, #000 6%);color:var(--color-text)}.tcp-btn-primary:hover{border-color:color-mix(in srgb, var(--color-primary) 40%, var(--color-border-subtle) 60%);background:color-mix(in srgb, var(--color-surface-elevated) 88%, var(--color-primary) 12%)}.tcp-btn-primary svg{width:14px;height:14px}.tcp-btn-primary{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity,1));--tw-shadow:var(--shadow-offset-lg);--tw-shadow-colored:var(--shadow-offset-lg);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow);border-color:color-mix(in srgb, var(--color-primary) 56%, transparent);background:color-mix(in srgb, var(--color-primary) 94%, white 6%);border-radius:0}.tcp-btn-primary:hover{background:color-mix(in srgb, var(--color-primary-hover) 94%, white 6%)}.tcp-btn-danger{border-radius:var(--radius);--tw-shadow:var(--tw-shadow-colored);--tw-shadow-colored:var(--shadow-offset);height:2.25rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow);--tw-shadow-color:var(--color-border-subtle);justify-content:center;align-items:center;gap:.375rem;padding-left:.875rem;padding-right:.875rem;font-size:13px;font-weight:600;line-height:1;transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-flex}.tcp-btn-danger:active{--tw-translate-y:1px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tcp-btn-danger:disabled{cursor:not-allowed;opacity:.5}.tcp-btn-danger{border:1px solid color-mix(in srgb, var(--color-border-subtle) 92%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 94%, #000 6%);color:var(--color-text)}.tcp-btn-danger:hover{border-color:color-mix(in srgb, var(--color-primary) 40%, var(--color-border-subtle) 60%);background:color-mix(in srgb, var(--color-surface-elevated) 88%, var(--color-primary) 12%)}.tcp-btn-danger svg{width:14px;height:14px}.tcp-btn-danger{--tw-text-opacity:1;color:rgb(255 228 230/var(--tw-text-opacity,1));background:color-mix(in srgb, #7f1d1d 74%, var(--color-surface-elevated) 26%);border-color:#f43f5e80;border-radius:0}.tcp-btn-danger:hover{background:color-mix(in srgb, #991b1b 78%, var(--color-surface-elevated) 22%)}.tcp-badge{border-radius:var(--radius);border-width:1px;align-items:center;gap:.25rem;padding:.125rem .625rem;font-size:.75rem;font-weight:500;line-height:1rem;display:inline-flex}.tcp-badge-ok{border-radius:var(--radius);--tw-text-opacity:1;color:rgb(190 242 100/var(--tw-text-opacity,1));border-width:1px;border-color:#65a30d99;border-radius:0;align-items:center;gap:.25rem;padding:.125rem .625rem;font-size:.75rem;font-weight:500;line-height:1rem;display:inline-flex}.tcp-badge-warn{border-radius:var(--radius);--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1));border-width:1px;border-color:#d9770699;border-radius:0;align-items:center;gap:.25rem;padding:.125rem .625rem;font-size:.75rem;font-weight:500;line-height:1rem;display:inline-flex}.tcp-badge-err{border-radius:var(--radius);--tw-text-opacity:1;color:rgb(253 164 175/var(--tw-text-opacity,1));border-width:1px;border-color:#e11d4899;border-radius:0;align-items:center;gap:.25rem;padding:.125rem .625rem;font-size:.75rem;font-weight:500;line-height:1rem;display:inline-flex}.tcp-badge-info{border-radius:var(--radius);border-width:1px;border-color:color-mix(in srgb, var(--color-primary) 38%, transparent);color:color-mix(in srgb, var(--color-primary) 76%, var(--color-text) 24%);border-radius:0;align-items:center;gap:.25rem;padding:.125rem .625rem;font-size:.75rem;font-weight:500;line-height:1rem;display:inline-flex}.tcp-badge-blocked{border-radius:var(--radius);--tw-text-opacity:1;color:rgb(165 180 252/var(--tw-text-opacity,1));border-width:1px;border-color:#818cf899;border-radius:0;align-items:center;gap:.25rem;padding:.125rem .625rem;font-size:.75rem;font-weight:500;line-height:1rem;display:inline-flex}.tcp-badge-ghost{border-color:color-mix(in srgb, var(--color-border-subtle) 90%, transparent);color:var(--color-text-muted);background:color-mix(in srgb, var(--color-surface-elevated) 88%, #000 12%)}.tcp-title{letter-spacing:-.025em;--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1));font-size:1.125rem;font-weight:600;line-height:1.75rem}.tcp-subtle{color:var(--color-text-muted);font-size:.875rem;line-height:1.25rem}.tcp-list{gap:.75rem;display:grid}.tcp-panel-card-head>.tcp-list-item{flex:240px}.tcp-list-item{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--color-border) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 86%, #000 14%);min-width:0;padding:.75rem;transition:transform .16s,border-color .16s,background-color .16s;overflow:hidden}.tcp-list-item:hover{border-color:color-mix(in srgb, var(--color-primary) 28%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 82%, var(--color-primary) 6%);transform:translateY(-1px)}.tcp-code{border-radius:var(--radius);font-family:var(--font-mono);border:1px solid color-mix(in srgb, var(--color-border) 85%, transparent);background:color-mix(in srgb, var(--color-surface) 75%, #000 25%);color:var(--color-text-muted);padding:.75rem;font-size:.75rem;line-height:1rem}.nav-item.\!active{color:var(--color-text)!important;border-color:color-mix(in srgb, var(--color-primary) 52%, transparent)!important;background:color-mix(in srgb, var(--color-primary) 18%, var(--color-surface-elevated) 82%)!important;box-shadow:inset 0 1px #ffffff14!important}.nav-item.active{color:var(--color-text);border-color:color-mix(in srgb, var(--color-primary) 52%, transparent);background:color-mix(in srgb, var(--color-primary) 18%, var(--color-surface-elevated) 82%);box-shadow:inset 0 1px #ffffff14}.toast{border-radius:var(--radius);--tw-shadow:var(--tw-shadow-colored);--tw-shadow-colored:var(--shadow-offset);max-width:24rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow);--tw-shadow-color:var(--color-border-subtle);border-width:1px;border-color:color-mix(in srgb, var(--color-border) 95%, transparent);background:color-mix(in srgb, var(--color-surface) 95%, transparent);padding:.75rem 1rem;font-size:.875rem;line-height:1.25rem}.tcp-empty-state{border:1px solid color-mix(in srgb, var(--color-border-subtle) 88%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface-elevated) 90%, #000 10%), color-mix(in srgb, var(--color-surface) 94%, #000 6%));border-radius:1.2rem;padding:1rem;position:relative;overflow:hidden}.tcp-empty-state-orb{background:radial-gradient(circle, color-mix(in srgb, var(--tcp-glow-a) 72%, transparent), transparent 70%);filter:blur(12px);opacity:.65;border-radius:9999px;width:7rem;height:7rem;display:none;position:absolute;top:-1rem;right:-1rem}.tcp-empty-state-title{font-family:var(--font-display);color:var(--color-text);font-size:1.05rem}.tcp-filter-chip{min-height:2rem;color:var(--color-text-muted);border:1px solid color-mix(in srgb, var(--color-border-subtle) 88%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 90%, #000 10%);border-radius:0;align-items:center;gap:.4rem;padding:.35rem .82rem;font-size:.78rem;transition:color .16s,border-color .16s,background-color .16s;display:inline-flex}.tcp-filter-chip.active{color:var(--color-text);border-color:color-mix(in srgb, var(--color-primary) 42%, transparent);background:color-mix(in srgb, var(--color-primary) 14%, var(--color-surface-elevated) 86%)}.tcp-filter-chip.\!active{color:var(--color-text)!important;border-color:color-mix(in srgb, var(--color-primary) 42%, transparent)!important;background:color-mix(in srgb, var(--color-primary) 14%, var(--color-surface-elevated) 86%)!important}.tcp-split-view{gap:1rem;display:grid}@media (width>=1280px){.tcp-split-view{grid-template-columns:minmax(0,1fr) minmax(320px,.84fr)}.tcp-split-view.tcp-split-view--solo{grid-template-columns:minmax(0,1fr)}}.tcp-drawer-root{z-index:160;position:fixed;inset:0}.tcp-drawer-backdrop{background:#0000008c;position:absolute;inset:0}.tcp-drawer-panel{border-left:1px solid color-mix(in srgb, var(--color-border-subtle) 90%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 92%, transparent), color-mix(in srgb, var(--color-surface-elevated) 90%, #000 10%));flex-direction:column;width:min(520px,94vw);display:flex;position:absolute;top:0;bottom:0;right:0}.tcp-drawer-head{border-bottom:1px solid color-mix(in srgb, var(--color-border-subtle) 88%, transparent);justify-content:space-between;align-items:center;gap:.8rem;padding:1rem;display:flex}.tcp-theme-tile{border:1px solid color-mix(in srgb, var(--color-border-subtle) 88%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 92%, transparent), color-mix(in srgb, var(--color-surface-elevated) 92%, #000 8%));text-align:left;border-radius:0;gap:.9rem;padding:1rem;display:grid;position:relative;overflow:hidden}.tcp-theme-tile.active{border-color:color-mix(in srgb, var(--color-primary) 42%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--color-primary) 18%, transparent)}.tcp-theme-tile.\!active{border-color:color-mix(in srgb, var(--color-primary) 42%, transparent)!important;box-shadow:0 0 0 1px color-mix(in srgb, var(--color-primary) 18%, transparent)!important}.tcp-theme-tile-top{justify-content:space-between;align-items:start;gap:.8rem;display:flex}.tcp-theme-tile-title{color:var(--color-text);font-weight:700}.tcp-theme-swatch{border:1px solid color-mix(in srgb, var(--color-border-subtle) 88%, transparent);border-radius:0;width:.9rem;height:.9rem}.tcp-theme-preview{border-radius:0;overflow:hidden}.tcp-theme-preview-bg{min-height:5.8rem;padding:.85rem}.tcp-theme-preview-card{border:1px solid;border-radius:.8rem;gap:.45rem;width:72%;padding:.7rem;display:grid;box-shadow:0 10px 24px #0000002e}.tcp-theme-preview-line{opacity:.6;border-radius:9999px;width:100%;height:.42rem;display:block}.tcp-theme-preview-line.short{opacity:1;width:58%}.tcp-theme-preview-pill{border-radius:9999px;width:3.4rem;height:1rem}.tcp-theme-active{color:#101010;background:linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 88%, white 12%), color-mix(in srgb, var(--color-primary-hover) 92%, black 8%));border-radius:9999px;align-items:center;gap:.35rem;padding:.35rem .62rem;font-size:.72rem;font-weight:700;display:inline-flex;position:absolute;bottom:.85rem;right:.85rem}.tcp-mobile-drawer{z-index:150;position:fixed;inset:0}.tcp-mobile-drawer-backdrop{background:#0000008f;position:absolute;inset:0}.tcp-mobile-drawer-panel{background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 92%, transparent), color-mix(in srgb, var(--color-surface-elevated) 90%, #000 10%));border-right:1px solid color-mix(in srgb, var(--color-border-subtle) 90%, transparent);flex-direction:column;gap:1rem;width:min(92vw,360px);padding:1rem;display:flex;position:absolute;top:0;bottom:0;left:0}.chat-layout{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--color-border) 82%, transparent);background:color-mix(in srgb, var(--color-surface) 92%, #000 8%);min-height:0;position:relative;overflow:hidden}.chat-layout-fill{flex:auto;height:100%;min-height:0}.tcp-panel-card-head>.chat-workspace{flex:240px}.chat-workspace{grid-template-columns:minmax(0,1fr);min-width:0;height:100%;min-height:0;display:grid;overflow:hidden}.chat-sessions-panel{z-index:30;border-right:1px solid color-mix(in srgb, var(--color-border) 80%, transparent);background:color-mix(in srgb, var(--color-surface) 96%, #000 4%);flex-direction:column;width:280px;max-width:92vw;padding:.75rem;transition:transform .18s;display:flex;position:absolute;top:0;bottom:0;left:0;transform:translate(-104%)}.chat-sessions-panel.open{transform:translate(0)}.chat-sessions-panel.\!open{transform:translate(0)!important}.chat-scrim{pointer-events:none;z-index:20;opacity:0;background-color:#00000073;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.chat-scrim.open,.chat-scrim.\!open{pointer-events:auto;opacity:1}.chat-sessions-header{border-bottom:1px solid color-mix(in srgb, var(--color-border-subtle) 92%, transparent);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;padding-bottom:.5rem;display:flex}.chat-sessions-title{color:var(--color-text);align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;line-height:1.25rem;display:inline-flex}.chat-sessions-title svg{width:14px;height:14px;color:var(--color-text-subtle)}.chat-session-list{flex:1;grid-auto-rows:max-content;align-content:start;gap:.35rem;min-height:0;padding-right:.25rem;display:grid;overflow-y:auto}.tcp-panel-card-head>.chat-session-row{flex:240px}.chat-session-row{align-items:center;gap:.375rem;min-width:0;display:flex}.tcp-panel-card-head>.chat-session-btn{flex:240px}.chat-session-btn{text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius);text-align:left;border:1px solid color-mix(in srgb, var(--color-border-subtle) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 84%, #000 16%);min-width:0;color:var(--color-text-muted);flex:1;padding:.375rem .625rem;font-size:.875rem;line-height:1.25rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);overflow:hidden}.chat-session-btn.active{border-color:color-mix(in srgb, var(--color-primary) 44%, var(--color-border) 56%);background:color-mix(in srgb, var(--color-surface-elevated) 72%, var(--color-primary) 8%);color:var(--color-text)}.chat-session-btn.\!active{border-color:color-mix(in srgb, var(--color-primary) 44%, var(--color-border) 56%)!important;background:color-mix(in srgb, var(--color-surface-elevated) 72%, var(--color-primary) 8%)!important;color:var(--color-text)!important}.tcp-input.chat-session-del,.tcp-select.chat-session-del{min-height:0}.chat-session-del{border-radius:var(--radius);--tw-text-opacity:1;width:2rem;height:2rem;color:rgb(253 164 175/var(--tw-text-opacity,1));background-color:#88133740;border-width:1px;border-color:#88133780;justify-content:center;align-items:center;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-flex}.chat-session-del:hover{--tw-text-opacity:1;color:rgb(254 205 211/var(--tw-text-opacity,1));border-color:#be123cb3}.chat-main-shell{border-right:1px solid color-mix(in srgb, var(--color-border-subtle) 92%, transparent);background:color-mix(in srgb, var(--color-surface) 86%, #000 14%);flex:1;min-height:0;display:flex}.chat-main-header{border-bottom:1px solid color-mix(in srgb, var(--color-border-subtle) 92%, transparent);align-items:center;gap:.5rem;margin-bottom:0;padding:.625rem .75rem;display:flex}.chat-main-dot{background:var(--color-primary);border-radius:9999px;flex-shrink:0;width:.375rem;height:.375rem}.tcp-panel-card-head>.chat-main-title{flex:240px}.chat-main-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:1rem;line-height:1.5rem;overflow:hidden}.chat-main-tools{border-radius:var(--radius);text-transform:uppercase;letter-spacing:.05em;border:1px solid color-mix(in srgb, var(--color-border-subtle) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 90%, #000 10%);color:var(--color-text-muted);font-size:10px;font-family:var(--font-mono);flex-shrink:0;padding:.125rem .375rem}.chat-messages{background:color-mix(in srgb, var(--color-surface) 84%, #000 16%)}.chat-empty-state{text-align:center;width:min(100%,28rem);margin:auto}.chat-right-rail{border-left:1px solid color-mix(in srgb, var(--color-border-subtle) 92%, transparent);background:color-mix(in srgb, var(--color-surface) 92%, #000 8%);padding:.75rem}.chat-rail-section{min-height:0;overflow:hidden}.chat-rail-tools-section{flex:0 auto;max-height:clamp(6.75rem,24vh,13rem)}.chat-rail-approvals-section{flex:none;max-height:clamp(5.75rem,18vh,10rem)}.chat-rail-scroll-section{flex-direction:column;flex:1 1 0;min-height:5.5rem;display:flex}.chat-rail-label{text-transform:uppercase;letter-spacing:.18em;color:var(--color-text-subtle);font-size:10px;font-family:var(--font-mono)}.chat-rail-count{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--color-border-subtle) 90%, transparent);color:var(--color-text-muted);font-size:10px;font-family:var(--font-mono);padding:.125rem .375rem}.chat-tools-list{flex-wrap:wrap;gap:.3rem;max-height:min(8.5rem,100%);padding-right:.25rem;display:flex;overflow:auto}.chat-tool-pill{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--color-border-subtle) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 90%, #000 10%);color:var(--color-text-muted);font-size:10px;font-family:var(--font-mono);align-items:center;gap:.25rem;padding:.125rem .375rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-flex}.chat-tool-pill:hover{border-color:color-mix(in srgb, var(--color-primary) 42%, transparent);color:var(--color-text)}.chat-tool-pill.selected{border-color:color-mix(in srgb, var(--color-primary) 72%, transparent);background:color-mix(in srgb, var(--color-primary) 18%, var(--color-surface-elevated));color:var(--color-text)}.chat-tool-pill.\!selected{border-color:color-mix(in srgb, var(--color-primary) 72%, transparent)!important;background:color-mix(in srgb, var(--color-primary) 18%, var(--color-surface-elevated))!important;color:var(--color-text)!important}.chat-planner-nudge{border-width:1px;border-color:color-mix(in srgb, var(--color-primary) 34%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 88%, #000 12%);max-width:100%;color:var(--color-text-muted);align-items:center;gap:.5rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;display:inline-flex}.chat-planner-nudge-action,.chat-planner-nudge-dismiss{color:var(--color-text);align-items:center;gap:.25rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-flex}.chat-planner-nudge-action:hover,.chat-planner-nudge-dismiss:hover{color:var(--color-primary)}.chat-planner-nudge-hint{text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-subtle);overflow:hidden}.chat-tools-activity{flex:1;align-content:start;gap:.3rem;min-height:0;padding-right:.25rem;display:grid;overflow:auto}.chat-tool-event{border-radius:var(--radius);border-width:1px;padding:.25rem .375rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.chat-tool-event summary{cursor:pointer;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;list-style:none;display:grid}.chat-tool-event summary::-webkit-details-marker{display:none}.chat-tool-event-body{margin-top:.25rem}.chat-tool-event-body>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.chat-tool-event-body{color:var(--color-text-subtle)}.chat-tool-event-body pre{white-space:pre-wrap;overflow-wrap:break-word;border-width:1px;border-color:color-mix(in srgb, var(--color-border-subtle) 84%, transparent);background:color-mix(in srgb, var(--color-surface) 78%, #000 22%);max-height:6rem;padding:.25rem;overflow:auto}.chat-tool-chip-running{border-color:color-mix(in srgb, var(--color-border-subtle) 85%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 72%, transparent);color:var(--color-text-muted)}.chat-tool-chip-ok{--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1));background-color:#10b9811a;border-color:#10b98159}.chat-tool-chip-failed{--tw-text-opacity:1;color:rgb(253 164 175/var(--tw-text-opacity,1));background-color:#f43f5e1a;border-color:#f43f5e59}.chat-rail-empty{color:var(--color-text-subtle);font-size:11px}.chat-composer{border-top:1px solid color-mix(in srgb, var(--color-border-subtle) 92%, transparent);background:color-mix(in srgb, var(--color-surface) 94%, #000 6%);padding:.5rem .75rem}.chat-attach-row{align-items:center;gap:.25rem;display:flex;overflow:hidden}.chat-input-wrap{position:relative}.chat-input-with-clip{padding-left:2.75rem}.chat-input-modern{border-radius:var(--radius);border-color:color-mix(in srgb, var(--color-border-subtle) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 90%, #000 10%);min-height:46px;max-height:180px;padding-top:.625rem;padding-bottom:.625rem;padding-right:3rem;line-height:1.625}.tcp-input.chat-icon-btn,.tcp-select.chat-icon-btn{min-height:0}.chat-icon-btn{border-radius:var(--radius);border-width:1px;border-color:color-mix(in srgb, var(--color-border-subtle) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 88%, #000 12%);width:2rem;height:2rem;color:var(--color-text-muted);justify-content:center;align-items:center;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-flex}.chat-icon-btn:hover{border-color:color-mix(in srgb, var(--color-primary) 42%, transparent);color:var(--color-text)}.tcp-input.chat-icon-btn-inner,.tcp-select.chat-icon-btn-inner{min-height:0}.chat-icon-btn-inner{z-index:10;width:1.75rem;height:1.75rem;position:absolute;top:.5rem;left:.5rem}.tcp-input.chat-send-btn,.tcp-select.chat-send-btn{min-height:0}.chat-send-btn{border-radius:var(--radius);border-width:1px;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-flex;position:absolute;top:.5rem;right:.5rem}.chat-send-btn:disabled{cursor:not-allowed;opacity:.45}.chat-send-btn{border-color:color-mix(in srgb, var(--color-primary) 45%, transparent);background:color-mix(in srgb, var(--color-primary-muted) 72%, transparent);color:var(--color-text)}.chat-send-btn:hover{background:color-mix(in srgb, var(--color-primary-hover) 76%, transparent)}.chat-file-pill{border-radius:var(--radius);border-width:1px;border-color:color-mix(in srgb, var(--color-border-subtle) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 90%, #000 10%);max-width:280px;color:var(--color-text);flex-shrink:0;align-items:center;gap:.25rem;padding:.125rem .5rem;font-size:.75rem;line-height:1rem;display:inline-flex}.chat-file-pill-name{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.chat-file-pill-size{color:var(--color-text-subtle);font-size:10px}.chat-file-pill-btn{border-radius:var(--radius);border-width:1px;border-color:color-mix(in srgb, var(--color-border-subtle) 90%, transparent);width:18px;height:18px;color:var(--color-text-muted);justify-content:center;align-items:center;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-flex}.chat-file-pill-btn:hover{border-color:color-mix(in srgb, var(--color-primary) 42%, transparent);color:var(--color-text)}.chat-file-pill-btn-danger{--tw-text-opacity:1;color:rgb(254 205 211/var(--tw-text-opacity,1));border-color:#f43f5e99}.chat-file-pill-btn-danger:hover{--tw-border-opacity:1;border-color:rgb(251 113 133/var(--tw-border-opacity,1));--tw-text-opacity:1;color:rgb(255 228 230/var(--tw-text-opacity,1))}.chat-msg{border-width:1px;border-color:color-mix(in srgb, var(--color-border-subtle) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 92%, #000 8%);max-width:84%;color:var(--color-text);border-radius:12px;padding:.625rem .75rem;font-size:.875rem;line-height:1.25rem}.chat-msg.assistant{margin-right:auto}.chat-msg.user{border-color:color-mix(in srgb, var(--color-primary) 38%, var(--color-border) 62%);background:color-mix(in srgb, var(--color-surface-elevated) 80%, var(--color-primary) 6%);margin-left:auto}.chat-msg-role{text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-subtle);margin-bottom:.25rem;font-size:10px}.chat-msg.user .chat-msg-role{color:var(--color-text-muted)}.chat-msg-pre{white-space:pre-wrap;word-break:break-all;max-width:100%;font-family:var(--font-mono);color:var(--color-text);font-size:.75rem}.chat-auto-approve-label{color:var(--color-text-muted);align-items:center;gap:.375rem;font-size:11px;display:inline-flex}.chat-auto-approve-checkbox{width:.875rem;height:.875rem;accent-color:var(--color-primary)}.chat-pack-event-card,.chat-timeline-card{border:1px solid color-mix(in srgb, var(--color-border-subtle) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 86%, #000 14%);border-radius:.125rem;padding:.375rem .5rem}.chat-pack-event-title{color:var(--color-text);font-size:11px}.chat-pack-event-time,.chat-pack-event-summary{color:var(--color-text-subtle);font-size:10px}.chat-avatar-ring{border:1px solid color-mix(in srgb, var(--color-border) 85%, transparent)}.tcp-icon-rail,.tcp-context-rail,.tcp-context-hero,.tcp-context-link,.tcp-context-stat,.tcp-page-header,.tcp-panel-card,.tcp-mobile-topbar,.tcp-topbar,.tcp-card,.tcp-panel,.tcp-input,.tcp-btn,.tcp-btn-primary,.tcp-btn-danger,.tcp-badge,.tcp-badge-info,.tcp-badge-ok,.tcp-badge-warn,.tcp-badge-err,.tcp-badge-blocked,.tcp-badge-ghost,.tcp-list-item,.tcp-code,.tcp-empty-state,.tcp-filter-chip,.tcp-confirm-dialog,.tcp-verification-modal,.tcp-workflow-editor-modal,.tcp-run-debugger-modal,.tcp-doc-dialog,.tcp-theme-tile,.tcp-theme-preview,.tcp-theme-preview-card,.tcp-theme-active,.tcp-brand-avatar,.tcp-bug-monitor-pill,.tcp-status-pulse,.tcp-icon-btn,.tcp-shell-glass,.tcp-drawer-panel,.tcp-mobile-drawer-panel,.chat-msg,.chat-session-btn,.chat-session-del,.chat-main-tools,.chat-rail-count,.chat-tool-pill,.chat-tool-chip,.chat-tool-event,.chat-planner-nudge,.chat-icon-btn,.chat-send-btn,.chat-file-pill,.chat-file-pill-btn,.chat-upload-card,.fc .fc-timegrid-more-link,.fc .tcp-calendar-more-link{border-radius:0!important}.tcp-confirm-overlay,.tcp-doc-overlay,.tcp-drawer-backdrop,.tcp-mobile-drawer-backdrop,.tcp-icon-rail,.tcp-context-rail,.tcp-shell-glass{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-top-3{top:-.75rem}.bottom-6{bottom:1.5rem}.bottom-\[8\%\]{bottom:8%}.left-0{left:0}.left-0\.5{left:.125rem}.left-\[6\%\]{left:6%}.right-3{right:.75rem}.right-\[6\%\]{right:6%}.top-0\.5{top:.125rem}.top-1\/2{top:50%}.top-\[8\%\]{top:8%}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.-mx-3{margin-left:-.75rem;margin-right:-.75rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.-mt-1{margin-top:-.25rem}.-mt-3{margin-top:-.75rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-auto{margin-top:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[34\%\]{height:34%}.h-\[420px\]{height:420px}.h-\[500px\]{height:500px}.h-\[calc\(100\%-4\.5rem\)\]{height:calc(100% - 4.5rem)}.h-\[calc\(100dvh-1rem\)\]{height:calc(100dvh - 1rem)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-24{max-height:6rem}.max-h-28{max-height:7rem}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-44{max-height:11rem}.max-h-48{max-height:12rem}.max-h-56{max-height:14rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.max-h-72{max-height:18rem}.max-h-80,.max-h-\[20rem\]{max-height:20rem}.max-h-\[220px\]{max-height:220px}.max-h-\[260px\]{max-height:260px}.max-h-\[28rem\]{max-height:28rem}.max-h-\[320px\]{max-height:320px}.max-h-\[360px\]{max-height:360px}.max-h-\[420px\]{max-height:420px}.max-h-\[50vh\]{max-height:50vh}.max-h-\[520px\]{max-height:520px}.max-h-\[56vh\]{max-height:56vh}.max-h-\[68vh\]{max-height:68vh}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-20{min-height:5rem}.min-h-28{min-height:7rem}.min-h-32{min-height:8rem}.min-h-40{min-height:10rem}.min-h-48{min-height:12rem}.min-h-8{min-height:2rem}.min-h-\[1\.2rem\]{min-height:1.2rem}.min-h-\[108px\]{min-height:108px}.min-h-\[110px\]{min-height:110px}.min-h-\[120px\]{min-height:120px}.min-h-\[12rem\]{min-height:12rem}.min-h-\[140px\]{min-height:140px}.min-h-\[16rem\]{min-height:16rem}.min-h-\[180px\]{min-height:180px}.min-h-\[200px\]{min-height:200px}.min-h-\[220px\]{min-height:220px}.min-h-\[28rem\]{min-height:28rem}.min-h-\[340px\]{min-height:340px}.min-h-\[360px\]{min-height:360px}.min-h-\[5rem\]{min-height:5rem}.min-h-\[72px\]{min-height:72px}.min-h-\[8\.5rem\]{min-height:8.5rem}.min-h-\[80px\]{min-height:80px}.min-h-\[84px\]{min-height:84px}.min-h-\[88px\]{min-height:88px}.min-h-\[92px\]{min-height:92px}.min-h-\[96px\]{min-height:96px}.min-h-\[calc\(100vh-240px\)\]{min-height:calc(100vh - 240px)}.min-h-\[calc\(100vh-4rem\)\]{min-height:calc(100vh - 4rem)}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0\.5{width:.125rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[320px\]{width:320px}.w-\[34\%\]{width:34%}.w-\[calc\(100vw-1rem\)\]{width:calc(100vw - 1rem)}.w-\[min\(34rem\,96vw\)\]{width:min(34rem,96vw)}.w-\[min\(36rem\,calc\(100vw-2rem\)\)\]{width:min(36rem,100vw - 2rem)}.w-\[min\(40rem\,96vw\)\]{width:min(40rem,96vw)}.w-\[min\(42rem\,96vw\)\]{width:min(42rem,96vw)}.w-\[min\(44rem\,96vw\)\]{width:min(44rem,96vw)}.w-\[min\(64rem\,96vw\)\]{width:min(64rem,96vw)}.w-fit{width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-48,.min-w-\[12rem\]{min-width:12rem}.min-w-\[190px\]{min-width:190px}.min-w-\[20rem\]{min-width:20rem}.min-w-\[220px\]{min-width:220px}.min-w-\[320px\]{min-width:320px}.min-w-\[4rem\]{min-width:4rem}.min-w-\[5\.5rem\]{min-width:5.5rem}.min-w-\[min\(100\%\,18rem\)\]{min-width:min(100%,18rem)}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-\[17rem\]{max-width:17rem}.max-w-\[24rem\]{max-width:24rem}.max-w-full{max-width:100%}.max-w-none{max-width:none}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-left{transform-origin:0}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x:1rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.scroll-mt-24{scroll-margin-top:6rem}.list-none{list-style-type:none}.appearance-none{appearance:none}.auto-rows-max{grid-auto-rows:max-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded,.rounded-2xl{border-radius:var(--radius)}.rounded-\[0\.65rem\]{border-radius:.65rem}.rounded-\[1\.4rem\]{border-radius:1.4rem}.rounded-\[28px\]{border-radius:28px}.rounded-full{border-radius:9999px}.rounded-lg,.rounded-md,.rounded-none,.rounded-xl{border-radius:var(--radius)}.rounded-t-xl{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-200\/80{border-color:#fde68acc}.border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.border-amber-300\/70{border-color:#fcd34db3}.border-amber-300\/80{border-color:#fcd34dcc}.border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.border-amber-400\/20{border-color:#fbbf2433}.border-amber-400\/30{border-color:#fbbf244d}.border-amber-400\/35{border-color:#fbbf2459}.border-amber-400\/40{border-color:#fbbf2466}.border-amber-400\/50{border-color:#fbbf2480}.border-amber-400\/60{border-color:#fbbf2499}.border-amber-400\/70{border-color:#fbbf24b3}.border-amber-400\/80{border-color:#fbbf24cc}.border-amber-500\/15{border-color:#f59e0b26}.border-amber-500\/20{border-color:#f59e0b33}.border-amber-500\/25{border-color:#f59e0b40}.border-amber-500\/30{border-color:#f59e0b4d}.border-amber-500\/40{border-color:#f59e0b66}.border-amber-500\/60{border-color:#f59e0b99}.border-amber-700\/60{border-color:#b4530999}.border-blue-500\/30{border-color:#3b82f64d}.border-blue-500\/80{border-color:#3b82f6cc}.border-current{border-color:currentColor}.border-cyan-400\/30{border-color:#22d3ee4d}.border-cyan-400\/50{border-color:#22d3ee80}.border-cyan-400\/60{border-color:#22d3ee99}.border-cyan-400\/70{border-color:#22d3eeb3}.border-cyan-500\/10{border-color:#06b6d41a}.border-cyan-500\/20{border-color:#06b6d433}.border-cyan-500\/30{border-color:#06b6d44d}.border-cyan-600\/50{border-color:#0891b280}.border-cyan-700\/50{border-color:#0e749080}.border-emerald-400{--tw-border-opacity:1;border-color:rgb(52 211 153/var(--tw-border-opacity,1))}.border-emerald-400\/20{border-color:#34d39933}.border-emerald-400\/25{border-color:#34d39940}.border-emerald-400\/30{border-color:#34d3994d}.border-emerald-400\/35{border-color:#34d39959}.border-emerald-400\/60{border-color:#34d39999}.border-emerald-400\/70{border-color:#34d399b3}.border-emerald-500\/10{border-color:#10b9811a}.border-emerald-500\/20{border-color:#10b98133}.border-emerald-500\/30{border-color:#10b9814d}.border-emerald-500\/40{border-color:#10b98166}.border-emerald-600\/50{border-color:#05966980}.border-indigo-500\/30{border-color:#6366f14d}.border-indigo-500\/35{border-color:#6366f159}.border-indigo-600\/50{border-color:#4f46e580}.border-lime-400\/30{border-color:#a3e6354d}.border-lime-500\/20{border-color:#84cc1633}.border-lime-500\/30{border-color:#84cc164d}.border-lime-500\/40{border-color:#84cc1666}.border-red-400\/30{border-color:#f871714d}.border-red-500\/20{border-color:#ef444433}.border-red-500\/40{border-color:#ef444466}.border-red-500\/50{border-color:#ef444480}.border-red-500\/60{border-color:#ef444499}.border-red-500\/70{border-color:#ef4444b3}.border-rose-400\/30{border-color:#fb71854d}.border-rose-400\/35{border-color:#fb718559}.border-rose-500\/30{border-color:#f43f5e4d}.border-rose-500\/35{border-color:#f43f5e59}.border-rose-500\/40{border-color:#f43f5e66}.border-rose-600\/50{border-color:#e11d4880}.border-rose-700\/60{border-color:#be123c99}.border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.border-sky-400\/20{border-color:#38bdf833}.border-sky-400\/30{border-color:#38bdf84d}.border-sky-500\/20{border-color:#0ea5e933}.border-sky-500\/30{border-color:#0ea5e94d}.border-sky-500\/40{border-color:#0ea5e966}.border-sky-500\/50{border-color:#0ea5e980}.border-sky-700\/40{border-color:#0369a166}.border-sky-700\/50{border-color:#0369a180}.border-slate-500{--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity,1))}.border-slate-500\/40{border-color:#64748b66}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.border-slate-600\/40{border-color:#47556966}.border-slate-600\/60{border-color:#47556999}.border-slate-600\/70{border-color:#475569b3}.border-slate-700{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.border-slate-700\/40{border-color:#33415566}.border-slate-700\/50{border-color:#33415580}.border-slate-700\/60{border-color:#33415599}.border-slate-700\/70{border-color:#334155b3}.border-slate-700\/80{border-color:#334155cc}.border-slate-800{--tw-border-opacity:1;border-color:rgb(30 41 59/var(--tw-border-opacity,1))}.border-slate-800\/50{border-color:#1e293b80}.border-slate-800\/60{border-color:#1e293b99}.border-slate-800\/70{border-color:#1e293bb3}.border-slate-800\/80{border-color:#1e293bcc}.border-slate-900\/0{border-color:#0f172a00}.border-transparent{border-color:#0000}.border-violet-400\/30{border-color:#a78bfa4d}.border-violet-500\/20{border-color:#8b5cf633}.border-violet-900\/40{border-color:#4c1d9566}.border-white\/10{border-color:#ffffff1a}.border-white\/15{border-color:#ffffff26}.border-white\/5{border-color:#ffffff0d}.border-yellow-500\/20{border-color:#eab30833}.border-t-transparent{border-top-color:#0000}.bg-\[color\:color-mix\(in_srgb\,var\(--color-surface-elevated\)_96\%\,\#000_4\%\)\]{background-color:color-mix(in srgb,var(--color-surface-elevated) 96%,#000 4%)}.bg-amber-300{--tw-bg-opacity:1;background-color:rgb(252 211 77/var(--tw-bg-opacity,1))}.bg-amber-300\/35{background-color:#fcd34d59}.bg-amber-400\/10{background-color:#fbbf241a}.bg-amber-400\/15{background-color:#fbbf2426}.bg-amber-400\/5{background-color:#fbbf240d}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/20{background-color:#f59e0b33}.bg-amber-500\/40{background-color:#f59e0b66}.bg-amber-500\/5{background-color:#f59e0b0d}.bg-amber-950\/20{background-color:#451a0333}.bg-amber-950\/30{background-color:#451a034d}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/10{background-color:#0000001a}.bg-black\/20{background-color:#0003}.bg-black\/25{background-color:#00000040}.bg-black\/30{background-color:#0000004d}.bg-black\/35{background-color:#00000059}.bg-black\/40{background-color:#0006}.bg-black\/60{background-color:#0009}.bg-blue-500\/10{background-color:#3b82f61a}.bg-cyan-400{--tw-bg-opacity:1;background-color:rgb(34 211 238/var(--tw-bg-opacity,1))}.bg-cyan-400\/10{background-color:#22d3ee1a}.bg-cyan-500{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity,1))}.bg-cyan-500\/10{background-color:#06b6d41a}.bg-cyan-500\/5{background-color:#06b6d40d}.bg-cyan-950\/20{background-color:#08334433}.bg-cyan-950\/30{background-color:#0833444d}.bg-emerald-300{--tw-bg-opacity:1;background-color:rgb(110 231 183/var(--tw-bg-opacity,1))}.bg-emerald-400{--tw-bg-opacity:1;background-color:rgb(52 211 153/var(--tw-bg-opacity,1))}.bg-emerald-400\/10{background-color:#34d3991a}.bg-emerald-400\/5{background-color:#34d3990d}.bg-emerald-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/30{background-color:#10b9814d}.bg-emerald-500\/40{background-color:#10b98166}.bg-emerald-500\/5{background-color:#10b9810d}.bg-emerald-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.bg-emerald-950\/20{background-color:#022c2233}.bg-emerald-950\/30{background-color:#022c224d}.bg-indigo-950\/20{background-color:#1e1b4b33}.bg-indigo-950\/30{background-color:#1e1b4b4d}.bg-lime-400\/10{background-color:#a3e6351a}.bg-lime-500\/10{background-color:#84cc161a}.bg-red-400\/10{background-color:#f871711a}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/20{background-color:#ef444433}.bg-red-950\/30{background-color:#450a0a4d}.bg-rose-300{--tw-bg-opacity:1;background-color:rgb(253 164 175/var(--tw-bg-opacity,1))}.bg-rose-400{--tw-bg-opacity:1;background-color:rgb(251 113 133/var(--tw-bg-opacity,1))}.bg-rose-500{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity,1))}.bg-rose-500\/10{background-color:#f43f5e1a}.bg-rose-600{--tw-bg-opacity:1;background-color:rgb(225 29 72/var(--tw-bg-opacity,1))}.bg-rose-950\/20{background-color:#4c051933}.bg-rose-950\/30{background-color:#4c05194d}.bg-sky-300{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity,1))}.bg-sky-400{--tw-bg-opacity:1;background-color:rgb(56 189 248/var(--tw-bg-opacity,1))}.bg-sky-400\/10{background-color:#38bdf81a}.bg-sky-400\/\[0\.04\]{background-color:#38bdf80a}.bg-sky-500\/10{background-color:#0ea5e91a}.bg-sky-950\/10{background-color:#082f491a}.bg-sky-950\/20{background-color:#082f4933}.bg-sky-950\/30{background-color:#082f494d}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-300{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity,1))}.bg-slate-500{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity,1))}.bg-slate-500\/10{background-color:#64748b1a}.bg-slate-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.bg-slate-700\/40{background-color:#33415566}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-800\/20{background-color:#1e293b33}.bg-slate-800\/40{background-color:#1e293b66}.bg-slate-800\/60{background-color:#1e293b99}.bg-slate-800\/80{background-color:#1e293bcc}.bg-slate-900\/20{background-color:#0f172a33}.bg-slate-900\/25{background-color:#0f172a40}.bg-slate-900\/30{background-color:#0f172a4d}.bg-slate-900\/35{background-color:#0f172a59}.bg-slate-900\/40{background-color:#0f172a66}.bg-slate-900\/60{background-color:#0f172a99}.bg-slate-900\/70{background-color:#0f172ab3}.bg-slate-900\/80{background-color:#0f172acc}.bg-slate-950{--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.bg-slate-950\/20{background-color:#02061733}.bg-slate-950\/25{background-color:#02061740}.bg-slate-950\/30{background-color:#0206174d}.bg-slate-950\/35{background-color:#02061759}.bg-slate-950\/40{background-color:#02061766}.bg-slate-950\/45{background-color:#02061773}.bg-slate-950\/50{background-color:#02061780}.bg-slate-950\/60{background-color:#02061799}.bg-slate-950\/70{background-color:#020617b3}.bg-slate-950\/80{background-color:#020617cc}.bg-transparent{background-color:#0000}.bg-violet-400\/10{background-color:#a78bfa1a}.bg-violet-900\/5{background-color:#4c1d950d}.bg-white\/10{background-color:#ffffff1a}.bg-white\/\[0\.03\]{background-color:#ffffff08}.bg-yellow-500\/10{background-color:#eab3081a}.bg-\[linear-gradient\(135deg\,rgba\(255\,255\,255\,0\.04\)\,transparent_36\%\,transparent_64\%\,rgba\(245\,158\,11\,0\.08\)\)\]{background-image:linear-gradient(135deg,#ffffff0a,#0000 36% 64%,#f59e0b14)}.bg-\[linear-gradient\(90deg\,rgba\(245\,158\,11\,0\.18\)\,rgba\(255\,233\,171\,0\.94\)\,rgba\(245\,158\,11\,0\.18\)\)\]{background-image:linear-gradient(90deg,#f59e0b2e,#ffe9abf0,#f59e0b2e)}.bg-\[radial-gradient\(circle_at_center\,rgba\(148\,163\,184\,0\.16\)\,transparent_72\%\)\]{background-image:radial-gradient(circle,#94a3b829,#0000 72%)}.bg-\[radial-gradient\(circle_at_center\,rgba\(245\,158\,11\,0\.24\)\,transparent_68\%\)\]{background-image:radial-gradient(circle,#f59e0b3d,#0000 68%)}.bg-\[radial-gradient\(circle_at_top\,_rgba\(34\,211\,238\,0\.18\)\,_transparent_45\%\)\,linear-gradient\(180deg\,rgba\(15\,23\,42\,0\.9\)\,rgba\(2\,6\,23\,0\.96\)\)\]{background-image:radial-gradient(circle at top,#22d3ee2e,#0000 45%),linear-gradient(#0f172ae6,#020617f5)}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-1{padding-left:.25rem}.pl-5{padding-left:1.25rem}.pl-7{padding-left:1.75rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.68rem\]{font-size:.68rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.22em\]{letter-spacing:.22em}.tracking-\[0\.24em\]{letter-spacing:.24em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.text-amber-100\/80{color:#fef3c7cc}.text-amber-100\/90{color:#fef3c7e6}.text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.text-amber-200\/75{color:#fde68abf}.text-amber-200\/80{color:#fde68acc}.text-amber-200\/90{color:#fde68ae6}.text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.text-amber-300\/90{color:#fcd34de6}.text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-amber-400\/70{color:#fbbf24b3}.text-amber-50{--tw-text-opacity:1;color:rgb(255 251 235/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-100{--tw-text-opacity:1;color:rgb(219 234 254/var(--tw-text-opacity,1))}.text-blue-200{--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.text-cyan-100{--tw-text-opacity:1;color:rgb(207 250 254/var(--tw-text-opacity,1))}.text-cyan-200{--tw-text-opacity:1;color:rgb(165 243 252/var(--tw-text-opacity,1))}.text-cyan-200\/80{color:#a5f3fccc}.text-cyan-300{--tw-text-opacity:1;color:rgb(103 232 249/var(--tw-text-opacity,1))}.text-emerald-100{--tw-text-opacity:1;color:rgb(209 250 229/var(--tw-text-opacity,1))}.text-emerald-100\/70{color:#d1fae5b3}.text-emerald-100\/90{color:#d1fae5e6}.text-emerald-200{--tw-text-opacity:1;color:rgb(167 243 208/var(--tw-text-opacity,1))}.text-emerald-200\/90{color:#a7f3d0e6}.text-emerald-300{--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1))}.text-emerald-300\/80{color:#6ee7b7cc}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-emerald-400\/70{color:#34d399b3}.text-emerald-50{--tw-text-opacity:1;color:rgb(236 253 245/var(--tw-text-opacity,1))}.text-emerald-500\/80{color:#10b981cc}.text-indigo-100{--tw-text-opacity:1;color:rgb(224 231 255/var(--tw-text-opacity,1))}.text-indigo-200{--tw-text-opacity:1;color:rgb(199 210 254/var(--tw-text-opacity,1))}.text-indigo-200\/80{color:#c7d2fecc}.text-lime-100{--tw-text-opacity:1;color:rgb(236 252 203/var(--tw-text-opacity,1))}.text-lime-200{--tw-text-opacity:1;color:rgb(217 249 157/var(--tw-text-opacity,1))}.text-lime-300{--tw-text-opacity:1;color:rgb(190 242 100/var(--tw-text-opacity,1))}.text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-400\/70{color:#f87171b3}.text-rose-100{--tw-text-opacity:1;color:rgb(255 228 230/var(--tw-text-opacity,1))}.text-rose-200{--tw-text-opacity:1;color:rgb(254 205 211/var(--tw-text-opacity,1))}.text-rose-300{--tw-text-opacity:1;color:rgb(253 164 175/var(--tw-text-opacity,1))}.text-sky-100{--tw-text-opacity:1;color:rgb(224 242 254/var(--tw-text-opacity,1))}.text-sky-100\/80{color:#e0f2fecc}.text-sky-200{--tw-text-opacity:1;color:rgb(186 230 253/var(--tw-text-opacity,1))}.text-sky-200\/80{color:#bae6fdcc}.text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.text-slate-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.text-slate-200\/80{color:#e2e8f0cc}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-400\/70{color:#94a3b8b3}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-violet-300{--tw-text-opacity:1;color:rgb(196 181 253/var(--tw-text-opacity,1))}.text-violet-400{--tw-text-opacity:1;color:rgb(167 139 250/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/60{color:#fff9}.text-white\/70{color:#ffffffb3}.text-white\/75{color:#ffffffbf}.text-white\/80{color:#fffc}.text-yellow-100{--tw-text-opacity:1;color:rgb(254 249 195/var(--tw-text-opacity,1))}.text-yellow-200{--tw-text-opacity:1;color:rgb(254 240 138/var(--tw-text-opacity,1))}.accent-amber-400{accent-color:#fbbf24}.accent-sky-400{accent-color:#38bdf8}.accent-slate-400{accent-color:#94a3b8}.opacity-100{opacity:1}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_0_0_3px_rgba\(251\,191\,36\,0\.12\)\]{--tw-shadow:0 0 0 3px #fbbf241f;--tw-shadow-colored:0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_12px_36px_rgba\(0\,0\,0\,0\.12\)\]{--tw-shadow:0 12px 36px #0000001f;--tw-shadow-colored:0 12px 36px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_28px_64px_rgba\(0\,0\,0\,0\.55\)\]{--tw-shadow:0 28px 64px #0000008c;--tw-shadow-colored:0 28px 64px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-amber-400\/40{--tw-ring-color:#fbbf2466}.ring-emerald-400\/40{--tw-ring-color:#34d39966}.ring-sky-400\/40{--tw-ring-color:#38bdf866}.ring-sky-400\/50{--tw-ring-color:#38bdf880}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.\[text-align-last\:center\]{text-align-last:center}.nav-item.locked,.nav-item:disabled,.tcp-context-link.locked,.tcp-context-link:disabled,.tcp-rail-icon.locked,.tcp-rail-icon:disabled{opacity:.42;cursor:not-allowed}.tcp-onboarding-lock{border:1px solid color-mix(in srgb, var(--color-warning) 36%, transparent);background:color-mix(in srgb, var(--color-warning) 10%, var(--color-surface-elevated) 90%)}.toasts{z-index:60;pointer-events:none;justify-items:center;gap:10px;display:grid;position:fixed;top:16px;left:50%;transform:translate(-50%)}.tcp-sidebar{border-right:1px solid color-mix(in srgb, var(--color-border) 78%, transparent);background:color-mix(in srgb, var(--color-surface) 98%, #000 2%)}.tcp-brand-tile{border:1px solid color-mix(in srgb, var(--color-border-subtle) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 96%, #000 4%)}.tcp-brand-avatar{border:1px solid color-mix(in srgb, var(--color-border) 85%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 84%, #000 16%);color:var(--color-text);border-radius:0;place-items:center;display:grid;overflow:hidden}.tcp-brand-avatar img{-o-object-fit:contain;object-fit:contain;width:100%;height:100%;padding:.2rem;display:block}.tcp-shell-glass{background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 95%, transparent), color-mix(in srgb, var(--color-surface-elevated) 90%, #000 10%))}.tcp-soft-block{background:color-mix(in srgb, var(--color-surface-elevated) 80%, #000 20%)!important;border-color:color-mix(in srgb, var(--color-border-subtle) 90%, transparent)!important}.tcp-display{font-family:var(--font-display);letter-spacing:.01em}.tcp-sidebar-footer{border-top-color:color-mix(in srgb, var(--color-border-subtle) 80%, transparent)!important}.tcp-view-surface{align-content:start}.agents-tab-panel{border:1px solid color-mix(in srgb, var(--color-border-subtle) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 84%, #000 16%);border-radius:.9rem;margin-top:.9rem;padding:.9rem}.tcp-loading-shell{gap:.75rem;display:grid}.tcp-skeleton{border:1px solid color-mix(in srgb, var(--color-border) 85%, transparent);background:linear-gradient(90deg, color-mix(in srgb, var(--color-surface-elevated) 86%, #000 14%) 0%, color-mix(in srgb, var(--color-surface-elevated) 72%, var(--color-primary) 12%) 50%, color-mix(in srgb, var(--color-surface-elevated) 86%, #000 14%) 100%);background-size:180% 100%;border-radius:.7rem;animation:1.15s ease-in-out infinite tcpSkeletonPulse}@keyframes tcpSkeletonPulse{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes tcpFloatGlow{0%{transform:translate(0,0)scale(1)}to{transform:translate(1.5rem,1rem)scale(1.08)}}@keyframes tcpPulseDot{0%{opacity:.95;box-shadow:0 0}70%{opacity:.82;box-shadow:0 0 0 10px #0000}to{opacity:.95;box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.tcp-shell-glow,.tcp-status-pulse-dot,.tcp-skeleton{animation:none!important}}.tcp-markdown{color:var(--color-text-muted);overflow-wrap:anywhere;word-break:break-word;font-size:13px;line-height:1.68}.tcp-markdown-ai{--md-accent:color-mix(in srgb, var(--color-primary) 78%, var(--color-text) 22%);--md-accent-soft:color-mix(in srgb, var(--color-primary) 18%, transparent);--md-code-bg:color-mix(in srgb, var(--color-surface) 70%, #000 30%)}.tcp-markdown h1,.tcp-markdown h2,.tcp-markdown h3,.tcp-markdown h4,.tcp-markdown h5,.tcp-markdown h6{letter-spacing:.01em;color:var(--color-text);margin:.45rem 0;font-weight:650;line-height:1.3;position:relative}.tcp-markdown h1{font-size:1.08rem}.tcp-confirm-overlay{z-index:120;background:#0307126b;place-items:center;padding:1rem;display:grid;position:fixed;inset:0;overflow-y:auto}@media (width<=640px){.tcp-confirm-overlay{place-items:start stretch;padding:.25rem}}.tcp-confirm-backdrop{z-index:0;background:#02061052;position:absolute;inset:0}.tcp-confirm-dialog{z-index:1;border:1px solid color-mix(in srgb, var(--color-border) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 96%, #000 4%);width:min(28rem,100%);box-shadow:var(--shadow-offset-lg);border-radius:0;padding:1rem;position:relative}.tcp-verification-modal{border-color:color-mix(in srgb, var(--color-primary) 22%, var(--color-border) 78%);background:color-mix(in srgb, var(--color-surface-elevated) 96%, #000 4%);border-radius:0;flex-direction:column;width:min(72rem,96vw);max-width:min(72rem,96vw);max-height:calc(100vh - 2rem);display:flex}.tcp-workflow-editor-modal{border-radius:0;flex-direction:column;width:min(75vw,88rem);max-width:min(75vw,88rem);max-height:calc(100vh - 2rem);padding:0;display:flex;overflow:hidden}@media (width<=1024px){.tcp-workflow-editor-modal{width:96vw;max-width:96vw;max-height:calc(100vh - 1rem)}}.tcp-run-debugger-modal{border-radius:0;flex-direction:column;width:min(110rem,96vw);max-width:min(110rem,96vw);height:min(96vh,72rem);max-height:96vh;display:flex}@media (width<=640px){.tcp-run-debugger-modal{border-radius:0;width:min(100%,100vw - .5rem);max-width:min(100%,100vw - .5rem);height:calc(100dvh - .5rem);min-height:calc(100dvh - .5rem);max-height:calc(100dvh - .5rem);padding:.75rem}}.tcp-verification-content{min-height:0;padding-right:.25rem;overflow-y:auto}.tcp-verification-feedback{-webkit-overflow-scrolling:touch;max-height:16rem;overflow:auto}.tcp-verification-code{-webkit-overflow-scrolling:touch;background:color-mix(in srgb, var(--color-surface) 84%, #000 16%);max-height:56vh;color:var(--color-text);border-color:color-mix(in srgb, var(--color-border) 88%, transparent);overflow:auto}.tcp-confirm-title{color:var(--color-text);margin:0;font-size:1rem;font-weight:650}.tcp-confirm-message{color:var(--color-text-muted);margin:.65rem 0 0;font-size:.9rem;line-height:1.45}.tcp-confirm-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.tcp-doc-overlay{z-index:125;background:#030712b8;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.tcp-doc-dialog{border:1px solid color-mix(in srgb, var(--color-border) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 96%, #000 4%);width:min(72rem,96vw);max-height:min(88vh,980px);box-shadow:var(--shadow-offset-lg);border-radius:0;grid-template-rows:auto 1fr;display:grid;overflow:hidden}.tcp-doc-header{border-bottom:1px solid color-mix(in srgb, var(--color-border) 82%, transparent);justify-content:space-between;align-items:center;gap:.75rem;padding:.8rem .9rem;display:flex}.tcp-doc-title{color:var(--color-text);margin:0;font-size:.95rem;font-weight:650}.tcp-doc-actions{align-items:center;gap:.5rem;display:flex}.tcp-doc-pre{background:color-mix(in srgb, var(--color-surface) 80%, #000 20%);color:var(--color-text-muted);font-size:12px;line-height:1.55;font-family:var(--font-mono);white-space:pre;margin:0;padding:.95rem;overflow:auto}.tcp-markdown h2{font-size:1rem}.tcp-markdown h3{font-size:.95rem}.tcp-markdown h1:after,.tcp-markdown h2:after,.tcp-markdown h3:after{content:"";background:linear-gradient(90deg, var(--md-accent,#94a3b8e0), transparent 90%);width:min(120px,38%);height:1px;margin-top:.28rem;display:block}.tcp-markdown p,.tcp-markdown ul,.tcp-markdown ol,.tcp-markdown blockquote,.tcp-markdown pre{margin:.35rem 0}.tcp-markdown ul,.tcp-markdown ol{padding-left:1.1rem}.tcp-markdown ul{padding-left:.95rem;list-style:none}.tcp-markdown ul>li{padding-left:.6rem;position:relative}.tcp-markdown ul>li:before{content:"";background:var(--md-accent,#94a3b8eb);width:.28rem;height:.28rem;box-shadow:0 0 10px var(--md-accent-soft,#94a3b82e);border-radius:9999px;position:absolute;top:.58em;left:-.06rem}.tcp-markdown li{margin:.12rem 0}.tcp-markdown a{color:color-mix(in srgb, var(--color-primary) 88%, var(--color-text) 12%);border-bottom:1px dashed color-mix(in srgb, var(--color-primary) 45%, transparent);text-decoration:none;transition:color .12s,border-color .12s}.tcp-markdown a:hover{color:color-mix(in srgb, var(--color-primary-hover) 92%, var(--color-text) 8%);border-bottom-color:color-mix(in srgb, var(--color-primary-hover) 62%, transparent)}.tcp-markdown code{border:1px solid color-mix(in srgb, var(--color-border) 92%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 88%, #000 12%);color:var(--color-text);border-radius:.375rem;padding:.05rem .3rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}.tcp-markdown pre{border:1px solid color-mix(in srgb, var(--color-border) 92%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface-elevated) 82%, #000 18%), color-mix(in srgb, var(--color-surface) 76%, #000 24%)), repeating-linear-gradient(0deg, transparent 0, transparent 22px, color-mix(in srgb, var(--color-border-subtle) 52%, transparent) 22px, color-mix(in srgb, var(--color-border-subtle) 52%, transparent) 23px);border-radius:.6rem;max-width:100%;padding:.62rem .72rem;overflow-x:auto;box-shadow:inset 0 1px #ffffff0d}.tcp-markdown pre code{background:0 0;border:none;border-radius:0;padding:0;font-size:.75rem}.tcp-markdown blockquote{border-left:2px solid var(--md-accent,#94a3b8cc);color:var(--color-text-muted);background:linear-gradient(90deg, var(--md-accent-soft,#94a3b829), transparent 65%);border-radius:.2rem;padding:.2rem 0 .2rem .7rem}.tcp-markdown strong{color:var(--color-text);font-weight:650}.tcp-markdown hr{background:linear-gradient(90deg,#0000,#94a3b899,#0000);border:0;height:1px;margin:.6rem 0}html[data-theme=porcelain] .tcp-markdown-ai{--md-accent:color-mix(in srgb, var(--color-primary) 70%, #1e293b 30%);--md-accent-soft:color-mix(in srgb, var(--color-primary) 22%, transparent);--md-code-bg:color-mix(in srgb, var(--color-surface-elevated) 90%, #e2e8f0 10%)}.tcp-thinking{color:#94a3b8;letter-spacing:.01em;align-items:center;gap:.38rem;font-size:.78rem;display:inline-flex}.tcp-thinking i{opacity:.3;background:#94a3b8e6;border-radius:9999px;width:.36rem;height:.36rem;animation:1s ease-in-out infinite thinkingDot}.tcp-thinking i:nth-of-type(2){animation-delay:.16s}.tcp-thinking i:nth-of-type(3){animation-delay:.32s}@media (width>=1280px){.chat-workspace{grid-template-columns:minmax(0,1fr) 230px}}@media (width<=1279px){.chat-right-rail{display:none!important}}@keyframes thinkingDot{0%,to{opacity:.28;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.hero-svg{width:100%;height:130px}.chip-hero{overflow:visible}.chip-board{fill:#02061759;stroke:#64748b61;stroke-width:1px}.chip-grid line{stroke:#94a3b821;stroke-width:1px;animation:4s ease-in-out infinite chipGridPulse}.chip-trace{fill:none;stroke:url(#hero-trace-grad);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:9 7}.chip-trace.flow-east{animation:2.4s linear infinite chipFlowEast}.chip-trace.flow-west{animation:2.4s linear infinite chipFlowWest}.chip-trace.flow-south{animation:2.2s linear infinite chipFlowSouth}.chip-trace.flow-north{animation:2.2s linear infinite chipFlowNorth}.chip-ports circle{fill:#64748b52;stroke:#cbd5e1d1;stroke-width:1.1px;animation:2.8s ease-in-out infinite chipPortPulse}.chip-core-shell{fill:#0f172af2;stroke:#94a3b8d9;stroke-width:1.3px}.chip-core{fill:url(#hero-chip-core);stroke:#cbd5e166;stroke-width:.8px;filter:url(#hero-chip-glow)}.chip-core-wire{stroke:#e2e8f0b8;stroke-width:1px;stroke-dasharray:3 3;animation:1.2s linear infinite chipWirePulse}.chip-core-pulse{fill:none;stroke:#cbd5e180;stroke-width:1px;transform-origin:260px 80px;animation:2.1s ease-out infinite chipCorePulse}.chip-packet circle{fill:#f1f5f9f2;filter:drop-shadow(0 0 6px #e2e8f0b8)}.packet-east-a{animation:2s linear infinite chipPacketEastA}.packet-east-b{animation:2.4s linear infinite chipPacketEastB}.packet-west-a{animation:2.1s linear infinite chipPacketWestA}.packet-west-b{animation:2.5s linear infinite chipPacketWestB}.packet-south{animation:2.2s linear infinite chipPacketSouth}.packet-north{animation:2.2s linear infinite chipPacketNorth}.dashboard-bars{gap:.6rem;display:grid}.dashboard-bar-row{gap:.28rem;display:grid}.dashboard-bar-meta{color:var(--color-text);justify-content:space-between;align-items:center;font-size:.76rem;display:flex}.dashboard-bar-count{color:var(--color-text-muted);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.dashboard-bar-track{border:1px solid color-mix(in srgb, var(--color-border-subtle) 88%, transparent);background:color-mix(in srgb, var(--color-surface) 90%, #000 10%);border-radius:9999px;height:.48rem;overflow:hidden}.dashboard-bar-fill{border-radius:9999px;height:100%;display:block}.dashboard-bar-fill.completed{background:linear-gradient(90deg,#10b98185,#6ee7b7f2)}.dashboard-bar-fill.failed{background:linear-gradient(90deg,#f43f5e85,#fb7185f2)}.dashboard-bar-fill.running{background:linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 50%, transparent), color-mix(in srgb, var(--color-primary-hover) 88%, transparent))}.dashboard-bar-fill.queued{background:linear-gradient(90deg,#f59e0b85,#fde047eb)}.dashboard-bar-fill.scheduled{background:linear-gradient(90deg,#f59e0b8c,#fbbf24f2)}.dashboard-bar-fill.manual{background:linear-gradient(90deg,#64748b99,#94a3b8f2)}.dashboard-bar-fill.paused{background:linear-gradient(90deg,#d977068c,#fbbf24f2)}.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.dashboard-kpis>div{border:1px solid color-mix(in srgb, var(--color-border-subtle) 88%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 96%, #000 4%);border-radius:.5rem;gap:.1rem;padding:.45rem .55rem;display:grid}.dashboard-kpis strong{font-size:1rem;line-height:1.2}.dashboard-kpi-label{color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}.dashboard-histogram{border:1px solid color-mix(in srgb, var(--color-border-subtle) 88%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 95%, #000 5%);border-radius:.8rem;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:.35rem;height:172px;padding:.5rem .45rem .45rem;display:grid}.dashboard-histogram-bin{grid-template-rows:auto 1fr auto;align-items:end;gap:.2rem;height:100%;display:grid}.dashboard-histogram-count{text-align:center;color:var(--color-text-muted);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.66rem}.dashboard-histogram-bar{border:1px solid color-mix(in srgb, var(--color-primary) 42%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 82%, transparent), color-mix(in srgb, var(--color-primary-muted) 96%, transparent));border-radius:.38rem .38rem .2rem .2rem;width:100%;min-height:8%;display:block}.dashboard-histogram-label{text-align:center;color:var(--color-text-subtle);font-size:.62rem}.agents-tabs{flex-wrap:wrap;gap:.5rem;display:flex}.agents-tab-btn{border:1px solid color-mix(in srgb, var(--color-border-subtle) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 84%, #000 16%);color:var(--color-text-muted);border-radius:9999px;padding:.45rem .8rem;font-size:.78rem;line-height:1;transition:border-color .12s,background-color .12s,color .12s}.agents-tab-btn:hover{border-color:color-mix(in srgb, var(--color-primary) 38%, transparent);color:var(--color-text)}.agents-tab-btn.active{border-color:color-mix(in srgb, var(--color-primary) 46%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 24%, var(--color-surface-elevated) 76%), color-mix(in srgb, var(--color-surface) 88%, #000 12%));color:var(--color-text)}.agents-steps{flex-wrap:wrap;gap:.45rem;display:flex}.agents-step-chip{border:1px solid color-mix(in srgb, var(--color-border-subtle) 90%, transparent);color:var(--color-text-subtle);background:color-mix(in srgb, var(--color-surface-elevated) 80%, #000 20%);border-radius:9999px;padding:.28rem .65rem;font-size:.72rem}.agents-step-chip.active{border-color:color-mix(in srgb, var(--color-primary) 46%, transparent);color:var(--color-text);background:color-mix(in srgb, var(--color-surface-elevated) 72%, var(--color-primary) 10%)}.agents-theme .text-slate-500,.agents-theme .text-zinc-500{color:var(--color-text-subtle)!important}.agents-theme .text-slate-400,.agents-theme .text-zinc-400,.agents-theme .text-slate-300,.agents-theme .text-zinc-300{color:var(--color-text-muted)!important}.agents-theme .text-slate-200,.agents-theme .text-zinc-200{color:var(--color-text)!important}.agents-theme .border-slate-700\/60,.agents-theme .border-slate-700\/70,.agents-theme .border-zinc-800,.agents-theme .border-zinc-800\/80,.agents-theme .border-zinc-800\/90,.agents-theme .border-zinc-700{border-color:color-mix(in srgb, var(--color-border-subtle) 90%, transparent)!important}.agents-theme .border-slate-300\/80,.agents-theme .border-zinc-500\/55{border-color:color-mix(in srgb, var(--color-primary) 42%, transparent)!important}.agents-theme .bg-slate-900\/30,.agents-theme .bg-slate-900\/35,.agents-theme .bg-zinc-900\/65,.agents-theme .bg-zinc-900\/80,.agents-theme .bg-zinc-900\/90,.agents-theme .bg-zinc-950\/55,.agents-theme .bg-zinc-950\/70,.agents-theme .bg-zinc-950\/80,.agents-theme .bg-zinc-950\/90,.agents-theme .bg-zinc-950\/95{background:color-mix(in srgb, var(--color-surface-elevated) 88%, #000 12%)!important}.agents-theme .accent-slate-400,.accent-slate-400{accent-color:var(--color-primary)!important}.tcp-settings-tabs{border-bottom:1px solid color-mix(in srgb, var(--color-border) 86%, transparent);flex-wrap:wrap;gap:.5rem;padding:0 0 .2rem;display:flex}.tcp-settings-tab{height:2.1rem;color:var(--color-text-muted);letter-spacing:.01em;background:0 0;border:none;border-radius:0;justify-content:center;align-items:center;gap:.38rem;padding:0 .5rem;font-size:.8rem;font-weight:600;line-height:1;transition:color .14s,border-color .14s;display:inline-flex}.tcp-settings-tab:hover,.tcp-settings-tab.active{color:var(--color-text)}.tcp-settings-tab-underline{border-bottom:2px solid #0000;margin-bottom:-1px}.tcp-settings-tab-underline.active{border-bottom-color:var(--color-primary)}.tcp-settings-tab svg{width:13px;height:13px}.tcp-settings-tab.locked,.tcp-settings-tab:disabled{opacity:.44;cursor:not-allowed}.theme-swatch-grid{flex-wrap:wrap;gap:.45rem;display:flex}.theme-swatch{border:1px solid color-mix(in srgb, var(--color-border-subtle) 90%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 88%, #000 12%);color:var(--color-text-muted);border-radius:9999px;align-items:center;gap:.4rem;padding:.34rem .7rem;font-size:.75rem;line-height:1;transition:border-color .12s,color .12s,background-color .12s;display:inline-flex}.theme-swatch:hover{border-color:color-mix(in srgb, var(--color-primary) 40%, transparent);color:var(--color-text)}.theme-swatch.active{border-color:color-mix(in srgb, var(--color-primary) 52%, transparent);background:color-mix(in srgb, var(--color-surface-elevated) 72%, var(--color-primary) 9%);color:var(--color-text)}.theme-swatch-dot{border:1px solid color-mix(in srgb, var(--color-border) 70%, transparent);border-radius:9999px;width:.55rem;height:.55rem}#app .text-slate-500,#app .text-zinc-500,#view .text-slate-500,#view .text-zinc-500{color:var(--color-text-subtle)!important}#app .text-slate-400,#app .text-zinc-400,#view .text-slate-400,#view .text-zinc-400,#app .text-slate-300,#app .text-zinc-300,#view .text-slate-300,#view .text-zinc-300{color:var(--color-text-muted)!important}#app .text-slate-200,#app .text-zinc-200,#view .text-slate-200,#view .text-zinc-200{color:var(--color-text)!important}#app [class*=border-slate-],#app [class*=border-zinc-],#view [class*=border-slate-],#view [class*=border-zinc-]{border-color:color-mix(in srgb, var(--color-border-subtle) 88%, transparent)!important}#app [class*=bg-amber-],#view [class*=bg-amber-]{background:color-mix(in srgb, var(--color-warning) 16%, transparent)!important}#app [class*=border-amber-],#view [class*=border-amber-]{border-color:color-mix(in srgb, var(--color-warning) 36%, transparent)!important}#app [class*=bg-rose-],#view [class*=bg-rose-]{background:color-mix(in srgb, var(--color-error) 14%, transparent)!important}#app [class*=border-rose-],#view [class*=border-rose-]{border-color:color-mix(in srgb, var(--color-error) 34%, transparent)!important}#app [class*=bg-slate-],#app [class*=bg-zinc-],#view [class*=bg-slate-],#view [class*=bg-zinc-]{background:color-mix(in srgb, var(--color-surface-elevated) 86%, transparent)!important}#app [class*=text-sky-],#app [class*=text-blue-],#view [class*=text-sky-],#view [class*=text-blue-]{color:color-mix(in srgb, var(--color-primary) 82%, var(--color-text) 18%)!important}#app [class*=border-sky-],#app [class*=border-blue-],#view [class*=border-sky-],#view [class*=border-blue-]{border-color:color-mix(in srgb, var(--color-primary) 42%, transparent)!important}.wire-line-active{stroke-dasharray:10 8;animation:1.1s linear infinite wireFlow}.node-active{animation:1.5s ease-in-out infinite nodePulse}@keyframes wireFlow{0%{stroke-dashoffset:0}to{stroke-dashoffset:-18px}}@keyframes nodePulse{0%{filter:drop-shadow(0 0 #94a3b800)}50%{filter:drop-shadow(0 0 8px #94a3b88c)}to{filter:drop-shadow(0 0 #94a3b800)}}@keyframes chipGridPulse{0%,to{opacity:.56}50%{opacity:1}}@keyframes chipFlowEast{0%{stroke-dashoffset:0}to{stroke-dashoffset:-32px}}@keyframes chipFlowWest{0%{stroke-dashoffset:0}to{stroke-dashoffset:32px}}@keyframes chipFlowSouth{0%{stroke-dashoffset:0}to{stroke-dashoffset:-24px}}@keyframes chipFlowNorth{0%{stroke-dashoffset:0}to{stroke-dashoffset:24px}}@keyframes chipPortPulse{0%,to{filter:drop-shadow(0 0 #94a3b800);opacity:.85}50%{filter:drop-shadow(0 0 5px #cbd5e180);opacity:1}}@keyframes chipWirePulse{0%{stroke-dashoffset:0}to{stroke-dashoffset:-12px}}@keyframes chipCorePulse{0%{opacity:.64;transform:scale(.7)}85%{opacity:0;transform:scale(1.18)}to{opacity:0;transform:scale(1.21)}}@keyframes chipPacketEastA{0%{opacity:0;transform:translate(48px,48px)}10%{opacity:1}58%{opacity:1;transform:translate(176px,48px)}76%{transform:translate(176px,64px)}96%{opacity:0;transform:translate(220px,64px)}}@keyframes chipPacketEastB{0%,to{opacity:0;transform:translate(48px,112px)}14%{opacity:1}58%{opacity:1;transform:translate(176px,112px)}76%{transform:translate(176px,96px)}96%{opacity:0;transform:translate(220px,96px)}}@keyframes chipPacketWestA{0%,to{opacity:0;transform:translate(472px,48px)}12%{opacity:1}56%{opacity:1;transform:translate(344px,48px)}74%{transform:translate(344px,64px)}96%{opacity:0;transform:translate(300px,64px)}}@keyframes chipPacketWestB{0%,to{opacity:0;transform:translate(472px,112px)}11%{opacity:1}57%{opacity:1;transform:translate(344px,112px)}74%{transform:translate(344px,96px)}96%{opacity:0;transform:translate(300px,96px)}}@keyframes chipPacketSouth{0%,to{opacity:0;transform:translate(176px,34px)}16%{opacity:1}62%{opacity:1;transform:translate(176px,56px)}78%{transform:translate(220px,56px)}96%{opacity:0;transform:translate(220px,64px)}}@keyframes chipPacketNorth{0%,to{opacity:0;transform:translate(344px,126px)}16%{opacity:1}62%{opacity:1;transform:translate(344px,104px)}78%{transform:translate(300px,104px)}96%{opacity:0;transform:translate(300px,96px)}}.fc{--fc-border-color:#4755698c;--fc-neutral-bg-color:#0f172af2;--fc-page-bg-color:transparent;--fc-today-bg-color:#f59e0b14;--fc-now-indicator-color:#f59e0be6;color:#e2e8f0}.fc,.fc *{box-sizing:border-box}.fc .fc-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.fc .fc-toolbar-title{color:#f1f5f9;font-size:1.15rem;font-weight:700}.fc .fc-button{color:#e2e8f0;box-shadow:none;text-transform:none;background:#0f172af2;border:1px solid #475569a6;border-radius:.75rem}.fc .fc-button:hover{background:#1e293bfa}.fc .fc-button:focus{box-shadow:0 0 0 2px #f59e0b3d}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{color:#fcd34d;background:#b4791f59;border-color:#f59e0ba6}.fc .fc-scrollgrid,.fc .fc-scrollgrid-section>td{border-color:#4755698c}.fc .fc-scrollgrid{background:#02061759;border-radius:1rem;overflow:hidden}.fc .fc-col-header-cell,.fc .fc-timegrid-axis,.fc .fc-timegrid-slot{border-color:#47556973}.fc .fc-col-header-cell-cushion,.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{color:#94a3b8}.fc .fc-day-today{background:#f59e0b0f}.fc .fc-timegrid-now-indicator-line{border-color:#f59e0bf2}.fc .fc-timegrid-slot{height:1.75rem}.fc .fc-timegrid-col-frame,.fc .fc-timegrid-col-bg,.fc .fc-scrollgrid-sync-table{background:#02061733}.fc .fc-event{background:0 0;border:none}.fc .fc-event:hover{cursor:pointer}.fc .fc-view-harness{min-height:44rem}.fc .fc-timegrid-more-link,.fc .tcp-calendar-more-link{color:#bfdbfe;letter-spacing:.01em;background:#0f172adb;border:1px dashed #94a3b859;border-radius:999px;justify-content:center;align-items:center;min-height:1.5rem;margin:.125rem 0;font-size:.7rem;font-weight:600;display:inline-flex}.fc .fc-timegrid-more-link:hover,.fc .tcp-calendar-more-link:hover{color:#e0f2fe;background:#1e293bf5;border-color:#60a5fa73}.fc .tcp-calendar-slot-focus{background:linear-gradient(90deg,#f59e0b2e 0%,#f59e0b14 22%,#0f172a00 100%);box-shadow:inset 3px 0 #f59e0be6}@media (prefers-reduced-motion:reduce){.chip-grid line,.chip-trace,.chip-ports circle,.chip-core-wire,.chip-core-pulse,.packet-east-a,.packet-east-b,.packet-west-a,.packet-west-b,.packet-south,.packet-north,.tcp-thinking i,.wire-line-active,.node-active{animation:none!important}}.first\:mt-1:first-child{margin-top:.25rem}.first\:border-t-0:first-child{border-top-width:0}.first\:pt-0:first-child{padding-top:0}.focus-within\:border-amber-400\/60:focus-within{border-color:#fbbf2499}.focus-within\:border-red-400\/60:focus-within{border-color:#f8717199}.focus-within\:border-sky-400\/60:focus-within{border-color:#38bdf899}.focus-within\:border-violet-400\/60:focus-within{border-color:#a78bfa99}.hover\:border-amber-400\/60:hover{border-color:#fbbf2499}.hover\:border-emerald-400\/50:hover{border-color:#34d39980}.hover\:border-lime-400\/70:hover{border-color:#a3e635b3}.hover\:border-sky-500\/40:hover{border-color:#0ea5e966}.hover\:border-slate-500:hover{--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity,1))}.hover\:border-slate-500\/70:hover{border-color:#64748bb3}.hover\:border-slate-600:hover{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.hover\:border-slate-700:hover{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.hover\:border-white\/20:hover{border-color:#fff3}.hover\:bg-amber-400\/10:hover{background-color:#fbbf241a}.hover\:bg-black\/20:hover{background-color:#0003}.hover\:bg-black\/30:hover{background-color:#0000004d}.hover\:bg-emerald-500:hover{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.hover\:bg-emerald-950\/30:hover{background-color:#022c224d}.hover\:bg-red-500\/30:hover{background-color:#ef44444d}.hover\:bg-rose-500:hover{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity,1))}.hover\:bg-rose-950\/20:hover{background-color:#4c051933}.hover\:bg-slate-700\/30:hover{background-color:#3341554d}.hover\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.hover\:bg-slate-800\/40:hover{background-color:#1e293b66}.hover\:text-amber-200:hover{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.hover\:text-red-300:hover{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.hover\:text-sky-100:hover{--tw-text-opacity:1;color:rgb(224 242 254/var(--tw-text-opacity,1))}.hover\:text-slate-100:hover{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.hover\:text-slate-200:hover{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.hover\:text-slate-300:hover{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.hover\:opacity-100:hover{opacity:1}.focus\:border-amber-400:focus{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.data-\[checked\]\:border-amber-400[data-checked]{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.data-\[checked\]\:bg-amber-400\/30[data-checked]{background-color:#fbbf244d}@media (width>=640px){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:max-h-40{max-height:10rem}.sm\:max-h-\[12rem\]{max-height:12rem}.sm\:max-h-\[14rem\]{max-height:14rem}.sm\:max-h-\[18rem\]{max-height:18rem}.sm\:max-h-\[28rem\]{max-height:28rem}.sm\:min-h-\[14rem\]{min-height:14rem}.sm\:w-auto{width:auto}.sm\:min-w-\[14rem\]{min-width:14rem}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[minmax\(0\,1fr\)_180px\]{grid-template-columns:minmax(0,1fr) 180px}.sm\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.sm\:flex-row{flex-direction:row}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-2{gap:.5rem}}@media (width>=768px){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:min-h-\[52vh\]{min-height:52vh}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-\[1fr_1fr_1fr_auto\]{grid-template-columns:1fr 1fr 1fr auto}.md\:grid-cols-\[1fr_1fr_auto\]{grid-template-columns:1fr 1fr auto}.md\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.md\:grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.md\:grid-cols-\[auto_1fr_auto\]{grid-template-columns:auto 1fr auto}.md\:grid-cols-\[minmax\(0\,1fr\)_320px\]{grid-template-columns:minmax(0,1fr) 320px}.md\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.md\:items-end{align-items:flex-end}.md\:p-5{padding:1.25rem}.md\:opacity-0{opacity:0}}@media (width>=1024px){.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-auto{width:auto}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[1\.05fr_0\.95fr\]{grid-template-columns:1.05fr .95fr}.lg\:grid-cols-\[1\.15fr_0\.85fr\]{grid-template-columns:1.15fr .85fr}.lg\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lg\:grid-cols-\[minmax\(0\,2fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.lg\:grid-cols-\[minmax\(320px\,380px\)\,minmax\(0\,1fr\)\]{grid-template-columns:minmax(320px,380px) minmax(0,1fr)}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:items-end{align-items:flex-end}.lg\:items-center{align-items:center}.lg\:justify-end{justify-content:flex-end}.lg\:justify-between{justify-content:space-between}}@media (width>=1280px){.xl\:sticky{position:sticky}.xl\:top-4{top:1rem}.xl\:order-2{order:2}.xl\:order-3{order:3}.xl\:col-span-2{grid-column:span 2/span 2}.xl\:block{display:block}.xl\:flex{display:flex}.xl\:grid{display:grid}.xl\:hidden{display:none}.xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-\[0\.85fr_1\.15fr\]{grid-template-columns:.85fr 1.15fr}.xl\:grid-cols-\[1\.05fr_1fr\]{grid-template-columns:1.05fr 1fr}.xl\:grid-cols-\[1\.62fr_1fr\]{grid-template-columns:1.62fr 1fr}.xl\:grid-cols-\[280px_minmax\(0\,1fr\)_360px\]{grid-template-columns:280px minmax(0,1fr) 360px}.xl\:grid-cols-\[320px_minmax\(0\,1fr\)\]{grid-template-columns:320px minmax(0,1fr)}.xl\:grid-cols-\[320px_minmax\(0\,1fr\)_360px\]{grid-template-columns:320px minmax(0,1fr) 360px}.xl\:grid-cols-\[440px_1fr\]{grid-template-columns:440px 1fr}.xl\:grid-cols-\[minmax\(0\,1\.3fr\)_minmax\(18rem\,0\.95fr\)\]{grid-template-columns:minmax(0,1.3fr) minmax(18rem,.95fr)}.xl\:grid-cols-\[minmax\(0\,1\.3fr\)_minmax\(320px\,0\.9fr\)\]{grid-template-columns:minmax(0,1.3fr) minmax(320px,.9fr)}.xl\:grid-cols-\[minmax\(22rem\,0\.92fr\)_minmax\(0\,1\.35fr\)\]{grid-template-columns:minmax(22rem,.92fr) minmax(0,1.35fr)}.xl\:grid-cols-\[minmax\(400px\,0\.8fr\)_minmax\(0\,1\.2fr\)\]{grid-template-columns:minmax(400px,.8fr) minmax(0,1.2fr)}.xl\:items-start{align-items:flex-start}.xl\:self-start{align-self:flex-start}}@media (width>=1536px){.\32 xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\32 xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}