heyiam 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,4 +11,4 @@ Error generating stack: `+e.message+`
11
11
  Please change the parent <Route path="${e}"> to <Route path="${e===`/`?`*`:`${e}/*`}">.`)}let u=et(),d;if(t){let e=typeof t==`string`?A(t):t;T(c===`/`||e.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),d=e}else d=u;let f=d.pathname||`/`,p=f;if(c!==`/`){let e=c.replace(/^\//,``).split(`/`);p=`/`+f.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let m=re(e,{pathname:p});E(l||m!=null,`No routes matched location "${d.pathname}${d.search}${d.hash}" `),E(m==null||m[m.length-1].route.element!==void 0||m[m.length-1].route.Component!==void 0||m[m.length-1].route.lazy!==void 0,`Matched leaf route at location "${d.pathname}${d.search}${d.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let h=ht(m&&m.map(e=>Object.assign({},e,{params:Object.assign({},o,e.params),pathname:Ee([c,r.encodeLocation?r.encodeLocation(e.pathname.replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?c:Ee([c,r.encodeLocation?r.encodeLocation(e.pathnameBase.replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),i,n);return t&&h?_.createElement(We.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,unstable_mask:void 0,...d},navigationType:`POP`}},h):h}function lt(){let e=wt(),t=je(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r=`rgba(200,200,200, 0.5)`,i={padding:`0.5rem`,backgroundColor:r},a={padding:`2px 4px`,backgroundColor:r},o=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),o=_.createElement(_.Fragment,null,_.createElement(`p`,null,`💿 Hey developer 👋`),_.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,_.createElement(`code`,{style:a},`ErrorBoundary`),` or`,` `,_.createElement(`code`,{style:a},`errorElement`),` prop on your route.`)),_.createElement(_.Fragment,null,_.createElement(`h2`,null,`Unexpected Application Error!`),_.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?_.createElement(`pre`,{style:i},n):null,o)}var ut=_.createElement(lt,null),dt=class extends _.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){let e=this.state.error;if(this.context&&typeof e==`object`&&e&&`digest`in e&&typeof e.digest==`string`){let t=Ze(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:_.createElement(Ge.Provider,{value:this.props.routeContext},_.createElement(Ke.Provider,{value:e,children:this.props.component}));return this.context?_.createElement(pt,{error:e},t):t}};dt.contextType=ze;var ft=new WeakMap;function pt({children:e,error:t}){let{basename:n}=_.useContext(Ue);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=Xe(t.digest);if(e){let r=ft.get(t);if(r)throw r;let i=Pe(e.location,n);if(Ne&&!ft.get(t))if(i.isExternal||e.reloadDocument)window.location.href=i.absoluteURL||i.to;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(i.to,{replace:e.replace}));throw ft.set(t,n),n}return _.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${i.absoluteURL||i.to}`})}}return e}function mt({routeContext:e,match:t,children:n}){let r=_.useContext(Le);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),_.createElement(Ge.Provider,{value:e},n)}function ht(e,t=[],n){let r=n?.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let i=e,a=r?.errors;if(a!=null){let e=i.findIndex(e=>e.route.id&&a?.[e.route.id]!==void 0);T(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(`,`)}`),i=i.slice(0,Math.min(i.length,e+1))}let o=!1,s=-1;if(n&&r){o=r.renderFallback;for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(s=e),t.route.id){let{loaderData:e,errors:a}=r,c=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!a||a[t.route.id]===void 0);if(t.route.lazy||c){n.isStatic&&(o=!0),i=s>=0?i.slice(0,s+1):[i[0]];break}}}}let c=n?.onError,l=r&&c?(e,t)=>{c(e,{location:r.location,params:r.matches?.[0]?.params??{},unstable_pattern:Me(r.matches),errorInfo:t})}:void 0;return i.reduceRight((e,n,c)=>{let u,d=!1,f=null,p=null;r&&(u=a&&n.route.id?a[n.route.id]:void 0,f=n.route.errorElement||ut,o&&(s<0&&c===0?(Dt(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):s===c&&(d=!0,p=n.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,c+1)),h=()=>{let t;return t=u?f:d?p:n.route.Component?_.createElement(n.route.Component,null):n.route.element?n.route.element:e,_.createElement(mt,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:r!=null},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||c===0)?_.createElement(dt,{location:r.location,revalidation:r.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:l}):h()},null)}function gt(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function _t(e){let t=_.useContext(Le);return T(t,gt(e)),t}function vt(e){let t=_.useContext(Re);return T(t,gt(e)),t}function yt(e){let t=_.useContext(Ge);return T(t,gt(e)),t}function bt(e){let t=yt(e),n=t.matches[t.matches.length-1];return T(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function xt(){return bt(`useRouteId`)}function St(){return vt(`useNavigation`).navigation}function Ct(){let{matches:e,loaderData:t}=vt(`useMatches`);return _.useMemo(()=>e.map(e=>j(e,t)),[e,t])}function wt(){let e=_.useContext(Ke),t=vt(`useRouteError`),n=bt(`useRouteError`);return e===void 0?t.errors?.[n]:e}function Tt(){let{router:e}=_t(`useNavigate`),t=bt(`useNavigate`),n=_.useRef(!1);return nt(()=>{n.current=!0}),_.useCallback(async(r,i={})=>{E(n.current,tt),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var Et={};function Dt(e,t,n){!t&&!Et[e]&&(Et[e]=!0,E(!1,n))}_.useOptimistic,_.memo(Ot);function Ot({routes:e,future:t,state:n,isStatic:r,onError:i}){return ct(e,void 0,{state:n,isStatic:r,onError:i,future:t})}function kt(e){T(!1,`A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.`)}function At({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,unstable_useTransitions:o}){T(!$e(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=_.useMemo(()=>({basename:s,navigator:i,static:a,unstable_useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=A(n));let{pathname:l=`/`,search:u=``,hash:d=``,state:f=null,key:p=`default`,unstable_mask:m}=n,h=_.useMemo(()=>{let e=ve(l,s);return e==null?null:{location:{pathname:e,search:u,hash:d,state:f,key:p,unstable_mask:m},navigationType:r}},[s,l,u,d,f,p,r,m]);return E(h!=null,`<Router basename="${s}"> is not able to match the URL "${l}${u}${d}" because it does not start with the basename, so the <Router> won't render anything.`),h==null?null:_.createElement(Ue.Provider,{value:c},_.createElement(We.Provider,{children:t,value:h}))}function jt({children:e,location:t}){return st(Mt(e),t)}function Mt(e,t=[]){let n=[];return _.Children.forEach(e,(e,r)=>{if(!_.isValidElement(e))return;let i=[...t,r];if(e.type===_.Fragment){n.push.apply(n,Mt(e.props.children,i));return}T(e.type===kt,`[${typeof e.type==`string`?e.type:e.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),T(!e.props.index||!e.props.children,`An index route cannot have child routes.`);let a={id:e.props.id||i.join(`-`),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:e.props.hasErrorBoundary===!0||e.props.ErrorBoundary!=null||e.props.errorElement!=null,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(a.children=Mt(e.props.children,i)),n.push(a)}),n}var Nt=`get`,Pt=`application/x-www-form-urlencoded`;function Ft(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function It(e){return Ft(e)&&e.tagName.toLowerCase()===`button`}function Lt(e){return Ft(e)&&e.tagName.toLowerCase()===`form`}function Rt(e){return Ft(e)&&e.tagName.toLowerCase()===`input`}function zt(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Bt(e,t){return e.button===0&&(!t||t===`_self`)&&!zt(e)}function Vt(e=``){return new URLSearchParams(typeof e==`string`||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(e=>[n,e]):[[n,r]])},[]))}function Ht(e,t){let n=Vt(e);return t&&t.forEach((e,r)=>{n.has(r)||t.getAll(r).forEach(e=>{n.append(r,e)})}),n}var Ut=null;function Wt(){if(Ut===null)try{new FormData(document.createElement(`form`),0),Ut=!1}catch{Ut=!0}return Ut}var Gt=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function Kt(e){return e!=null&&!Gt.has(e)?(E(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Pt}"`),null):e}function qt(e,t){let n,r,i,a,o;if(Lt(e)){let o=e.getAttribute(`action`);r=o?ve(o,t):null,n=e.getAttribute(`method`)||Nt,i=Kt(e.getAttribute(`enctype`))||Pt,a=new FormData(e)}else if(It(e)||Rt(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?ve(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||Nt,i=Kt(e.getAttribute(`formenctype`))||Kt(o.getAttribute(`enctype`))||Pt,a=new FormData(o,e),!Wt()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(Ft(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=Nt,r=null,i=Pt,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var Jt={"&":`\\u0026`,">":`\\u003e`,"<":`\\u003c`,"\u2028":`\\u2028`,"\u2029":`\\u2029`},Yt=/[&><\u2028\u2029]/g;function Xt(e){return e.replace(Yt,e=>Jt[e])}function Zt(e,t){if(e===!1||e==null)throw Error(t)}function Qt(e,t,n,r){let i=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return n?i.pathname.endsWith(`/`)?i.pathname=`${i.pathname}_.${r}`:i.pathname=`${i.pathname}.${r}`:i.pathname===`/`?i.pathname=`_root.${r}`:t&&ve(i.pathname,t)===`/`?i.pathname=`${t.replace(/\/$/,``)}/_root.${r}`:i.pathname=`${i.pathname.replace(/\/$/,``)}.${r}`,i}async function $t(e,t){if(e.id in t)return t[e.id];try{let n=await x(()=>import(e.module),[]);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function en(e){return e!=null&&typeof e.page==`string`}function tn(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function nn(e,t,n){return cn((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await $t(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(tn).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function rn(e,t,n,r,i,a){let o=(e,t)=>n[t]?e.route.id!==n[t].route.id:!0,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function an(e,t,{includeHydrateFallback:n}={}){return on(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function on(e){return[...new Set(e)]}function sn(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function cn(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!en(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(sn(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function ln(){let e=_.useContext(Le);return Zt(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function un(){let e=_.useContext(Re);return Zt(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var dn=_.createContext(void 0);dn.displayName=`FrameworkContext`;function fn(){let e=_.useContext(dn);return Zt(e,`You must render this element inside a <HydratedRouter> element`),e}function pn(e,t){let n=_.useContext(dn),[r,i]=_.useState(!1),[a,o]=_.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=_.useRef(null);_.useEffect(()=>{if(e===`render`&&o(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{o(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),_.useEffect(()=>{if(r){let e=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(e)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return n?e===`intent`?[a,f,{onFocus:mn(s,p),onBlur:mn(c,m),onMouseEnter:mn(l,p),onMouseLeave:mn(u,m),onTouchStart:mn(d,p)}]:[a,f,{}]:[!1,f,{}]}function mn(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function hn({page:e,...t}){let{router:n}=ln(),r=_.useMemo(()=>re(n.routes,e,n.basename),[n.routes,e,n.basename]);return r?_.createElement(_n,{page:e,matches:r,...t}):null}function gn(e){let{manifest:t,routeModules:n}=fn(),[r,i]=_.useState([]);return _.useEffect(()=>{let r=!1;return nn(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function _n({page:e,matches:t,...n}){let r=et(),{future:i,manifest:a,routeModules:o}=fn(),{basename:s}=ln(),{loaderData:c,matches:l}=un(),u=_.useMemo(()=>rn(e,t,l,a,r,`data`),[e,t,l,a,r]),d=_.useMemo(()=>rn(e,t,l,a,r,`assets`),[e,t,l,a,r]),f=_.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,l=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];!t||!t.hasLoader||(!u.some(t=>t.route.id===e.route.id)&&e.route.id in c&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?l=!0:n.add(e.route.id))}),n.size===0)return[];let d=Qt(e,s,i.unstable_trailingSlashAwareDataRequests,`data`);return l&&n.size>0&&d.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[d.pathname+d.search]},[s,i.unstable_trailingSlashAwareDataRequests,c,r,a,u,t,e,o]),p=_.useMemo(()=>an(d,a),[d,a]),m=gn(d);return _.createElement(_.Fragment,null,f.map(e=>_.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),p.map(e=>_.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),m.map(({key:e,link:t})=>_.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function vn(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}var yn=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{yn&&(window.__reactRouterVersion=`7.13.1`)}catch{}function bn({basename:e,children:t,unstable_useTransitions:n,window:r}){let i=_.useRef();i.current??=w({window:r,v5Compat:!0});let a=i.current,[o,s]=_.useState({action:a.action,location:a.location}),c=_.useCallback(e=>{n===!1?s(e):_.startTransition(()=>s(e))},[n]);return _.useLayoutEffect(()=>a.listen(c),[a,c]),_.createElement(At,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:a,unstable_useTransitions:n})}function xn({basename:e,children:t,history:n,unstable_useTransitions:r}){let[i,a]=_.useState({action:n.action,location:n.location}),o=_.useCallback(e=>{r===!1?a(e):_.startTransition(()=>a(e))},[r]);return _.useLayoutEffect(()=>n.listen(o),[n,o]),_.createElement(At,{basename:e,children:t,location:i.location,navigationType:i.action,navigator:n,unstable_useTransitions:r})}xn.displayName=`unstable_HistoryRouter`;var Sn=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Cn=_.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:r,reloadDocument:i,replace:a,unstable_mask:o,state:s,target:c,to:l,preventScrollReset:u,viewTransition:d,unstable_defaultShouldRevalidate:f,...p},m){let{basename:h,navigator:g,unstable_useTransitions:v}=_.useContext(Ue),y=typeof l==`string`&&Sn.test(l),b=Pe(l,h);l=b.to;let x=Qe(l,{relative:r}),S=et(),C=null;if(o){let e=Te(o,[],S.unstable_mask?S.unstable_mask.pathname:`/`,!0);h!==`/`&&(e.pathname=e.pathname===`/`?h:Ee([h,e.pathname])),C=g.createHref(e)}let[w,T,E]=pn(n,p),D=An(l,{replace:a,unstable_mask:o,state:s,target:c,preventScrollReset:u,relative:r,viewTransition:d,unstable_defaultShouldRevalidate:f,unstable_useTransitions:v});function O(t){e&&e(t),t.defaultPrevented||D(t)}let k=!(b.isExternal||i),ee=_.createElement(`a`,{...p,...E,href:(k?C:void 0)||b.absoluteURL||x,onClick:k?O:e,ref:vn(m,T),target:c,"data-discover":!y&&t===`render`?`true`:void 0});return w&&!y?_.createElement(_.Fragment,null,ee,_.createElement(hn,{page:x})):ee});Cn.displayName=`Link`;var wn=_.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:r=!1,style:i,to:a,viewTransition:o,children:s,...c},l){let u=ot(a,{relative:c.relative}),d=et(),f=_.useContext(Re),{navigator:p,basename:m}=_.useContext(Ue),h=f!=null&&Vn(u)&&o===!0,g=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,v=d.pathname,y=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;t||(v=v.toLowerCase(),y=y?y.toLowerCase():null,g=g.toLowerCase()),y&&m&&(y=ve(y,m)||y);let b=g!==`/`&&g.endsWith(`/`)?g.length-1:g.length,x=v===g||!r&&v.startsWith(g)&&v.charAt(b)===`/`,S=y!=null&&(y===g||!r&&y.startsWith(g)&&y.charAt(g.length)===`/`),C={isActive:x,isPending:S,isTransitioning:h},w=x?e:void 0,T;T=typeof n==`function`?n(C):[n,x?`active`:null,S?`pending`:null,h?`transitioning`:null].filter(Boolean).join(` `);let E=typeof i==`function`?i(C):i;return _.createElement(Cn,{...c,"aria-current":w,className:T,ref:l,style:E,to:a,viewTransition:o},typeof s==`function`?s(C):s)});wn.displayName=`NavLink`;var Tn=_.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:r,replace:i,state:a,method:o=Nt,action:s,onSubmit:c,relative:l,preventScrollReset:u,viewTransition:d,unstable_defaultShouldRevalidate:f,...p},m)=>{let{unstable_useTransitions:h}=_.useContext(Ue),g=Pn(),v=Fn(s,{relative:l}),y=o.toLowerCase()===`get`?`get`:`post`,b=typeof s==`string`&&Sn.test(s);return _.createElement(`form`,{ref:m,method:y,action:v,onSubmit:r?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,s=r?.getAttribute(`formmethod`)||o,p=()=>g(r||e.currentTarget,{fetcherKey:t,method:s,navigate:n,replace:i,state:a,relative:l,preventScrollReset:u,viewTransition:d,unstable_defaultShouldRevalidate:f});h&&n!==!1?_.startTransition(()=>p()):p()},...p,"data-discover":!b&&e===`render`?`true`:void 0})});Tn.displayName=`Form`;function En({getKey:e,storageKey:t,...n}){let r=_.useContext(dn),{basename:i}=_.useContext(Ue),a=et(),o=Ct();zn({getKey:e,storageKey:t});let s=_.useMemo(()=>{if(!r||!e)return null;let t=Rn(a,o,i,e);return t===a.key?null:t},[]);if(!r||r.isSpaMode)return null;let c=((e,t)=>{if(!window.history.state||!window.history.state.key){let e=Math.random().toString(32).slice(2);window.history.replaceState({key:e},``)}try{let n=JSON.parse(sessionStorage.getItem(e)||`{}`)[t||window.history.state.key];typeof n==`number`&&window.scrollTo(0,n)}catch(t){console.error(t),sessionStorage.removeItem(e)}}).toString();return _.createElement(`script`,{...n,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${c})(${Xt(JSON.stringify(t||In))}, ${Xt(JSON.stringify(s))})`}})}En.displayName=`ScrollRestoration`;function Dn(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function On(e){let t=_.useContext(Le);return T(t,Dn(e)),t}function kn(e){let t=_.useContext(Re);return T(t,Dn(e)),t}function An(e,{target:t,replace:n,unstable_mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,unstable_defaultShouldRevalidate:c,unstable_useTransitions:l}={}){let u=rt(),d=et(),f=ot(e,{relative:o});return _.useCallback(p=>{if(Bt(p,t)){p.preventDefault();let t=n===void 0?ee(d)===ee(f):n,m=()=>u(e,{replace:t,unstable_mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,unstable_defaultShouldRevalidate:c});l?_.startTransition(()=>m()):m()}},[d,u,f,n,r,i,t,e,a,o,s,c,l])}function jn(e){E(typeof URLSearchParams<`u`,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=_.useRef(Vt(e)),n=_.useRef(!1),r=et(),i=_.useMemo(()=>Ht(r.search,n.current?null:t.current),[r.search]),a=rt();return[i,_.useCallback((e,t)=>{let r=Vt(typeof e==`function`?e(new URLSearchParams(i)):e);n.current=!0,a(`?`+r,t)},[a,i])]}var Mn=0,Nn=()=>`__${String(++Mn)}__`;function Pn(){let{router:e}=On(`useSubmit`),{basename:t}=_.useContext(Ue),n=xt(),r=e.fetch,i=e.navigate;return _.useCallback(async(e,a={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=qt(e,t);a.navigate===!1?await r(a.fetcherKey||Nn(),n,a.action||o,{unstable_defaultShouldRevalidate:a.unstable_defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,flushSync:a.flushSync}):await i(a.action||o,{unstable_defaultShouldRevalidate:a.unstable_defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,i,t,n])}function Fn(e,{relative:t}={}){let{basename:n}=_.useContext(Ue),r=_.useContext(Ge);T(r,`useFormAction must be used inside a RouteContext`);let[i]=r.matches.slice(-1),a={...ot(e||`.`,{relative:t})},o=et();if(e==null){a.search=o.search;let e=new URLSearchParams(a.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();a.search=n?`?${n}`:``}}return(!e||e===`.`)&&i.route.index&&(a.search=a.search?a.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(a.pathname=a.pathname===`/`?n:Ee([n,a.pathname])),ee(a)}var In=`react-router-scroll-positions`,Ln={};function Rn(e,t,n,r){let i=null;return r&&(i=r(n===`/`?e:{...e,pathname:ve(e.pathname,n)||e.pathname},t)),i??=e.key,i}function zn({getKey:e,storageKey:t}={}){let{router:n}=On(`useScrollRestoration`),{restoreScrollPosition:r,preventScrollReset:i}=kn(`useScrollRestoration`),{basename:a}=_.useContext(Ue),o=et(),s=Ct(),c=St();_.useEffect(()=>(window.history.scrollRestoration=`manual`,()=>{window.history.scrollRestoration=`auto`}),[]),Bn(_.useCallback(()=>{if(c.state===`idle`){let t=Rn(o,s,a,e);Ln[t]=window.scrollY}try{sessionStorage.setItem(t||In,JSON.stringify(Ln))}catch(e){E(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${e}).`)}window.history.scrollRestoration=`auto`},[c.state,e,a,o,s,t])),typeof document<`u`&&(_.useLayoutEffect(()=>{try{let e=sessionStorage.getItem(t||In);e&&(Ln=JSON.parse(e))}catch{}},[t]),_.useLayoutEffect(()=>{let t=n?.enableScrollRestoration(Ln,()=>window.scrollY,e?(t,n)=>Rn(t,n,a,e):void 0);return()=>t&&t()},[n,a,e]),_.useLayoutEffect(()=>{if(r!==!1){if(typeof r==`number`){window.scrollTo(0,r);return}try{if(o.hash){let e=document.getElementById(decodeURIComponent(o.hash.slice(1)));if(e){e.scrollIntoView();return}}}catch{E(!1,`"${o.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}i!==!0&&window.scrollTo(0,0)}},[o,r,i]))}function Bn(e,t){let{capture:n}=t||{};_.useEffect(()=>{let t=n==null?void 0:{capture:n};return window.addEventListener(`pagehide`,e,t),()=>{window.removeEventListener(`pagehide`,e,t)}},[e,n])}function Vn(e,{relative:t}={}){let n=_.useContext(Be);T(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=On(`useViewTransitionState`),i=ot(e,{relative:t});if(!n.isTransitioning)return!1;let a=ve(n.currentLocation.pathname,r)||n.currentLocation.pathname,o=ve(n.nextLocation.pathname,r)||n.nextLocation.pathname;return he(i.pathname,o)!=null||he(i.pathname,a)!=null}var Hn=`/api`;async function Un(){let e=await fetch(`${Hn}/projects`);if(!e.ok)throw Error(`Failed to fetch projects: ${e.status}`);return(await e.json()).projects}async function Wn(e){let t=await fetch(`${Hn}/projects/${encodeURIComponent(e)}/sessions`);if(!t.ok)throw Error(`Failed to fetch sessions: ${t.status}`);return(await t.json()).sessions}async function Gn(e,t){let n=await fetch(`${Hn}/projects/${encodeURIComponent(e)}/sessions/${encodeURIComponent(t)}`);if(!n.ok)throw Error(`Failed to fetch session: ${n.status}`);return(await n.json()).session}function Kn(e,t){let n=new AbortController;return fetch(`${Hn}/projects/${encodeURIComponent(e)}/triage`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({}),signal:n.signal}).then(async e=>{if(!e.ok){let t=await e.json().catch(()=>({error:{message:`Triage failed`}}));throw Error(t.error?.message??`Triage failed`)}let n=e.body?.getReader();if(!n)throw Error(`No response stream`);let r=new TextDecoder,i=``;for(;;){let{done:e,value:a}=await n.read();if(e)break;i+=r.decode(a,{stream:!0});let o=i.split(`
12
12
  `);i=o.pop()??``;for(let e of o){if(!e.startsWith(`data: `))continue;let n=e.slice(6).trim();if(n)try{t(JSON.parse(n))}catch{}}}}).catch(e=>{e.name!==`AbortError`&&t({type:`error`,message:e.message})}),n}async function qn(){try{let e=await fetch(`${Hn}/enhance/status`);return e.ok?await e.json():{mode:`unknown`,remaining:null}}catch{return{mode:`unknown`,remaining:null}}}async function Jn(){try{let e=await fetch(`${Hn}/auth/status`);return e.ok?await e.json():{authenticated:!1}}catch{return{authenticated:!1}}}async function Yn(){let e=await fetch(`${Hn}/auth/login`,{method:`POST`});if(!e.ok)throw Error(`Failed to start auth: ${e.status}`);return e.json()}async function Xn(e){let t=await fetch(`${Hn}/auth/poll`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({device_code:e})});if(!t.ok){let e=await t.json().catch(()=>({error:`poll_failed`}));if(e.error===`authorization_pending`)return{authenticated:!1};throw Error(e.error||`Poll failed`)}return t.json()}function Zn(e,t,n,r,i){let a=new AbortController;return fetch(`${Hn}/projects/${encodeURIComponent(e)}/enhance-project`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({selectedSessionIds:t,skippedSessions:n,force:i}),signal:a.signal}).then(async e=>{if(!e.ok){r({type:`error`,message:(await e.json().catch(()=>({error:{message:`Enhance failed`}}))).error?.message??`Enhance failed`});return}let t=e.body?.getReader();if(!t){r({type:`error`,message:`No response stream`});return}let n=new TextDecoder,i=``;for(;;){let{done:e,value:a}=await t.read();if(e)break;i+=n.decode(a,{stream:!0});let o=i.split(`
13
13
  `);i=o.pop()??``;for(let e of o){if(!e.startsWith(`data: `))continue;let t=e.slice(6).trim();if(t)try{r(JSON.parse(t))}catch{}}}}).catch(e=>{e.name!==`AbortError`&&r({type:`error`,message:e.message})}),a}async function Qn(e){try{let t=await fetch(`${Hn}/projects/${encodeURIComponent(e)}/enhance-cache`);return t.ok?await t.json():null}catch{return null}}async function $n(e,t,n){try{return(await fetch(`${Hn}/projects/${encodeURIComponent(e)}/enhance-save`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({selectedSessionIds:t,result:n})})).ok}catch{return!1}}async function er(e,t,n,r){let i=await fetch(`${Hn}/projects/${encodeURIComponent(e)}/refine-narrative`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({draftNarrative:t,draftTimeline:n,answers:r})});if(!i.ok){let e=await i.json().catch(()=>({error:{message:`Refine failed`}}));throw Error(e.error?.message??`Refine failed`)}return i.json()}var tr=class extends Error{constructor(){super(`Authentication required`),this.name=`AuthRequiredError`}};function nr(e,t,n){let r=new AbortController;return fetch(`${Hn}/projects/${encodeURIComponent(e)}/publish`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t),signal:r.signal}).then(async e=>{if(e.status===401)throw new tr;if(!e.ok){n({type:`error`,error:(await e.json().catch(()=>({error:{message:`Publish failed`}}))).error?.message??`Publish failed`});return}let t=e.body?.getReader();if(!t){n({type:`error`,error:`No response stream`});return}let r=new TextDecoder,i=``;for(;;){let{done:e,value:a}=await t.read();if(e)break;i+=r.decode(a,{stream:!0});let o=i.split(`
14
- `);i=o.pop()??``;for(let e of o){if(!e.startsWith(`data: `))continue;let t=e.slice(6).trim();if(t)try{n(JSON.parse(t))}catch{}}}}).catch(e=>{e.name!==`AbortError`&&(e instanceof tr?n({type:`error`,error:`AUTH_REQUIRED`}):n({type:`error`,error:e.message}))}),r}var rr=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),F=o(((e,t)=>{t.exports=rr()}))(),ir=(0,_.createContext)({projects:[],sessions:[],activeProject:null,loading:!0,loadingSessions:!1,error:null,selectProject:()=>{},updateSession:()=>{},refreshSessions:()=>{}});function ar(){return(0,_.useContext)(ir)}function or(e){return{name:e.name,dirName:e.dirName,sessionCount:e.sessionCount,description:e.description,totalLoc:e.totalLoc,totalDuration:e.totalDuration,totalFiles:e.totalFiles,skills:e.skills,dateRange:e.dateRange,lastSessionDate:e.lastSessionDate,isPublished:e.isPublished,publishedSessionCount:e.publishedSessionCount,publishedSessions:e.publishedSessions,enhancedAt:e.enhancedAt}}function sr({children:e}){let[t,n]=(0,_.useState)([]),[r,i]=(0,_.useState)([]),[a,o]=(0,_.useState)(null),[s,c]=(0,_.useState)(!0),[l,u]=(0,_.useState)(!1),[d,f]=(0,_.useState)(null);(0,_.useEffect)(()=>{let e=!1;return Un().then(t=>{e||(n(t.map(or)),c(!1))}).catch(t=>{e||(f(t instanceof Error?t.message:`Failed to load projects`),c(!1))}),()=>{e=!0}},[]),(0,_.useEffect)(()=>{if(!a)return;let e=!1;return u(!0),Wn(a).then(t=>{e||(i(t),u(!1))}).catch(()=>{e||(i([]),u(!1))}),()=>{e=!0}},[a]);let p=(0,_.useCallback)(e=>{o(e)},[]),m=(0,_.useCallback)((e,t)=>{i(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]),h=(0,_.useCallback)(()=>{a&&Wn(a).then(e=>i(e)).catch(()=>{})},[a]);return(0,F.jsx)(ir.Provider,{value:{projects:t,sessions:r,activeProject:a,loading:s,loadingSessions:l,error:d,selectProject:p,updateSession:m,refreshSessions:h},children:e})}var cr=()=>Promise.reject(Error(`AuthProvider not mounted`)),lr=(0,_.createContext)({authenticated:!1,loading:!0,login:cr,refresh:cr});function ur(){return(0,_.useContext)(lr)}function dr({children:e}){let[t,n]=(0,_.useState)({authenticated:!1,loading:!0}),r=(0,_.useCallback)(async()=>{try{let e=await Jn();n({authenticated:e.authenticated,username:e.username,loading:!1})}catch{n({authenticated:!1,loading:!1})}},[]),i=(0,_.useCallback)(async()=>await Yn(),[]);return(0,_.useEffect)(()=>{r()},[r]),(0,F.jsx)(lr.Provider,{value:{...t,login:i,refresh:r},children:e})}function fr({title:e,showSidebar:t=!1,sidebarContent:n,bottomBar:r,onBack:i,headerActions:a,children:o}){let s=ur(),c=rt();return(0,F.jsxs)(`div`,{className:`app-shell`,children:[(0,F.jsxs)(`header`,{className:`app-header`,role:`banner`,children:[(0,F.jsxs)(`div`,{className:`app-header__left`,children:[i!=null&&(0,F.jsx)(`button`,{className:`app-header__back`,onClick:i,"aria-label":`Go back`,type:`button`,children:(0,F.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,F.jsx)(`path`,{d:`M19 12H5`}),(0,F.jsx)(`path`,{d:`M12 19l-7-7 7-7`})]})}),(0,F.jsx)(`span`,{className:`app-header__logo`,"aria-label":`heyi.am home`,children:`heyi.am`}),e!=null&&e.length>0&&(0,F.jsx)(`span`,{className:`app-header__title`,children:e})]}),(0,F.jsxs)(`div`,{className:`app-header__right`,children:[a,(0,F.jsx)(`div`,{className:`app-header__auth-indicator`,children:(0,F.jsx)(`span`,{className:`app-header__auth-dot${s.authenticated?` app-header__auth-dot--connected`:``}`,"aria-label":s.authenticated?`Authenticated`:`Not authenticated`})}),(0,F.jsx)(`button`,{className:`app-header__icon-btn`,"aria-label":`Settings`,type:`button`,onClick:()=>c(`/settings`),children:(0,F.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,F.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`}),(0,F.jsx)(`path`,{d:`M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z`})]})})]})]}),(0,F.jsxs)(`div`,{className:`app-shell__body`,children:[t&&(0,F.jsx)(`aside`,{className:`app-sidebar`,role:`complementary`,children:n}),(0,F.jsxs)(`main`,{className:`app-main`,role:`main`,children:[o,r!=null&&(0,F.jsx)(`div`,{className:`app-bottom-bar`,children:(0,F.jsx)(`div`,{className:`app-bottom-bar__inner glass-panel`,children:r})})]})]})]})}var pr=`/api`;async function mr(){let e=await fetch(`${pr}/settings/api-key`);return e.ok?e.json():{hasKey:!1,maskedKey:null}}async function hr(e){let t=await fetch(`${pr}/settings/api-key`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({apiKey:e})});if(!t.ok)throw Error(`Failed to save API key`);return t.json()}function gr(){let e=rt(),[t,n]=(0,_.useState)(``),[r,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(null),[s,c]=(0,_.useState)(`idle`),[l,u]=(0,_.useState)(!1),[d,f]=(0,_.useState)(null),p=ur(),m=p.authenticated,h=p.username??``;(0,_.useEffect)(()=>{qn().then(o),mr().then(({hasKey:e,maskedKey:t})=>{u(e),f(t)})},[]);let g=async()=>{c(`saving`);try{let e=await hr(t);c(`saved`),u(!!t.trim()),f(t.trim()?`${t.trim().slice(0,7)}...${t.trim().slice(-4)}`:null),n(``),o({mode:e.mode,remaining:null}),setTimeout(()=>c(`idle`),2e3)}catch{c(`error`),setTimeout(()=>c(`idle`),2e3)}},v=async()=>{c(`saving`);try{let e=await hr(``);c(`saved`),u(!1),f(null),n(``),o({mode:e.mode,remaining:null}),setTimeout(()=>c(`idle`),2e3)}catch{c(`error`),setTimeout(()=>c(`idle`),2e3)}},y=a?.mode===`local`?`Local API key`:a?.mode===`proxy`?`heyi.am proxy`:`Not configured`,b=a?.mode===`local`||a?.mode===`proxy`?`badge--published`:`badge--draft`;return(0,F.jsx)(fr,{title:`Settings`,onBack:()=>e(`/`),children:(0,F.jsxs)(`div`,{className:`settings-page`,children:[(0,F.jsxs)(`section`,{className:`settings-section`,children:[(0,F.jsx)(`span`,{className:`label`,children:`AI Enhancement`}),(0,F.jsxs)(`div`,{className:`card`,children:[(0,F.jsxs)(`div`,{className:`settings-row`,children:[(0,F.jsx)(`span`,{className:`settings-row__label`,children:`Mode`}),(0,F.jsx)(`span`,{className:`badge ${b}`,children:y})]}),a?.mode===`proxy`&&a.remaining!=null&&(0,F.jsxs)(`div`,{className:`settings-row`,style:{marginTop:`var(--spacing-4)`},children:[(0,F.jsx)(`span`,{className:`settings-row__label`,children:`Usage`}),(0,F.jsxs)(`span`,{className:`settings-row__value`,children:[a.remaining,` remaining this month`]})]}),a?.mode===`none`&&(0,F.jsx)(`p`,{className:`settings-help`,style:{marginTop:`var(--spacing-4)`},children:`Log in or set ANTHROPIC_API_KEY to enable AI enhancement.`}),l&&d&&(0,F.jsxs)(`div`,{className:`settings-row`,style:{marginTop:`var(--spacing-4)`},children:[(0,F.jsx)(`span`,{className:`settings-row__label`,children:`API Key`}),(0,F.jsx)(`span`,{className:`settings-row__value`,children:d})]}),(0,F.jsxs)(`details`,{style:{marginTop:`var(--spacing-4)`},children:[(0,F.jsx)(`summary`,{className:`text-label`,style:{cursor:`pointer`},children:l?`Change API key`:`Use your own API key`}),(0,F.jsxs)(`div`,{className:`settings-input-group`,style:{marginTop:`var(--spacing-3)`},children:[(0,F.jsxs)(`div`,{className:`settings-input-wrapper`,children:[(0,F.jsx)(`input`,{id:`api-key-input`,className:`input`,type:r?`text`:`password`,value:t,onChange:e=>n(e.target.value),placeholder:`sk-ant-...`,autoComplete:`off`}),(0,F.jsx)(`button`,{className:`settings-input-toggle`,type:`button`,onClick:()=>i(e=>!e),"aria-label":r?`Hide API key`:`Show API key`,children:r?(0,F.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,F.jsx)(`path`,{d:`M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94`}),(0,F.jsx)(`path`,{d:`M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19`}),(0,F.jsx)(`path`,{d:`M1 1l22 22`}),(0,F.jsx)(`path`,{d:`M14.12 14.12a3 3 0 1 1-4.24-4.24`})]}):(0,F.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,F.jsx)(`path`,{d:`M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z`}),(0,F.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`})]})})]}),(0,F.jsxs)(`div`,{style:{display:`flex`,gap:`var(--spacing-2)`,marginTop:`var(--spacing-2)`},children:[(0,F.jsx)(`button`,{className:`btn btn-primary`,type:`button`,onClick:g,disabled:!t.trim()||s===`saving`,children:s===`saving`?`Saving...`:s===`saved`?`Saved`:`Save`}),l&&(0,F.jsx)(`button`,{className:`btn btn-secondary`,type:`button`,onClick:v,disabled:s===`saving`,children:`Remove`})]}),s===`error`&&(0,F.jsx)(`p`,{className:`settings-help`,style:{color:`var(--color-error, #e53e3e)`},children:`Failed to save. Try again.`}),(0,F.jsx)(`p`,{className:`settings-help`,children:`Saved to ~/.config/heyiam/settings.json. Uses your own Anthropic account.`})]})]})]})]}),(0,F.jsx)(`hr`,{className:`divider`}),(0,F.jsxs)(`section`,{className:`settings-section`,children:[(0,F.jsx)(`span`,{className:`label`,children:`Authentication`}),(0,F.jsxs)(`div`,{className:`card`,children:[(0,F.jsxs)(`div`,{className:`settings-row`,children:[(0,F.jsx)(`span`,{className:`settings-row__label`,children:`Status`}),m?(0,F.jsxs)(`span`,{className:`badge badge--published`,children:[`Connected `,h]}):(0,F.jsx)(`span`,{className:`badge badge--draft`,children:`Not connected`})]}),(0,F.jsxs)(`div`,{className:`settings-row`,style:{marginTop:`var(--spacing-4)`},children:[(0,F.jsx)(`span`,{className:`settings-row__label`,children:`Username`}),(0,F.jsx)(`span`,{className:`settings-row__value`,children:m?h:`—`})]}),(0,F.jsx)(`div`,{style:{marginTop:`var(--spacing-4)`},children:m?(0,F.jsx)(`button`,{className:`btn btn-secondary`,type:`button`,children:`Disconnect`}):(0,F.jsxs)(`div`,{className:`terminal`,style:{fontSize:`0.75rem`},children:[(0,F.jsx)(`span`,{className:`terminal__prompt`,children:`$ `}),`heyiam login`]})})]})]}),(0,F.jsx)(`hr`,{className:`divider`}),(0,F.jsxs)(`section`,{className:`settings-section`,children:[(0,F.jsx)(`span`,{className:`label`,children:`Machine Identity`}),(0,F.jsxs)(`div`,{className:`card`,children:[(0,F.jsxs)(`div`,{className:`settings-input-group`,children:[(0,F.jsx)(`span`,{className:`text-label`,children:`Machine Token`}),(0,F.jsx)(`div`,{className:`terminal`,style:{fontSize:`0.75rem`,padding:`var(--spacing-3)`},children:`ed25519:a4f2...8b3c`}),(0,F.jsx)(`p`,{className:`settings-help`,children:`Used for cryptographic signing of published sessions`})]}),(0,F.jsxs)(`div`,{className:`settings-row`,style:{marginTop:`var(--spacing-4)`},children:[(0,F.jsx)(`span`,{className:`settings-row__label`,children:`Token fingerprint`}),(0,F.jsx)(`span`,{className:`settings-row__value`,children:`SHA256:kR7x...Qm4w`})]})]})]})]})})}var _r=[`var(--primary)`,`var(--secondary)`,`var(--tertiary)`];function vr(e){if(e<60)return`${Math.round(e)}m`;let t=e/60;return t>=10?`${Math.round(t)}h`:`${t.toFixed(1)}h`}function yr(e){return e<1e3?String(e):`${(e/1e3).toFixed(1)}k`}function br(e){if(!e)return``;let[t,n]=e.split(`|`);if(!t||!n)return``;let r=new Date(t),i=new Date(n),a=e=>e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`}),o=i.getFullYear();return r.getMonth()===i.getMonth()&&r.getDate()===i.getDate()?`${a(r)}, ${o}`:`${a(r)}–${a(i)}, ${o}`}function xr(e){if(!e)return``;let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);return i<7?`${i}d ago`:`${Math.floor(i/7)}w ago`}function Sr({label:e,value:t}){return(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`project-card__stat-label`,children:e}),(0,F.jsx)(`div`,{className:`project-card__stat-value`,children:t})]})}function Cr({project:e,index:t}){let n=rt(),r=_r[t%_r.length],i=e.enhancedAt,a=`/project/${encodeURIComponent(e.dirName)}/upload`;return(0,F.jsxs)(`div`,{className:`project-card`,onClick:()=>n(i?`${a}?view=1`:a),role:`button`,tabIndex:0,onKeyDown:e=>{e.key===`Enter`&&n(i?`${a}?view=1`:a)},children:[(0,F.jsxs)(`div`,{className:`project-card__header`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`div`,{className:`project-card__title-row`,children:[(0,F.jsx)(`div`,{className:`project-card__dot`,style:{background:r}}),(0,F.jsx)(`h3`,{className:`project-card__name`,children:e.name}),e.isPublished&&(0,F.jsx)(`span`,{className:`project-card__badge project-card__badge--published`,children:`Published`}),i&&(0,F.jsx)(`span`,{className:`project-card__badge`,children:`Enhanced`})]}),e.description&&(0,F.jsx)(`p`,{className:`project-card__desc`,children:e.description}),(0,F.jsxs)(`div`,{className:`project-card__date`,children:[br(e.dateRange),e.lastSessionDate&&(0,F.jsxs)(`span`,{className:`project-card__date-ago`,children:[` · last session `,xr(e.lastSessionDate)]})]})]}),(0,F.jsxs)(`div`,{className:`project-card__actions`,children:[i&&(0,F.jsx)(`button`,{className:`btn btn--secondary project-card__upload-btn`,onClick:e=>{e.stopPropagation(),n(`${a}?view=1`)},children:`View`}),(0,F.jsxs)(`button`,{className:`btn btn--primary project-card__upload-btn`,onClick:e=>{e.stopPropagation(),n(a)},children:[e.isPublished?`Update Project`:i?`Re-enhance`:`Upload`,` →`]})]})]}),(0,F.jsxs)(`div`,{className:`project-card__stats`,children:[(0,F.jsx)(Sr,{label:`Sessions`,value:String(e.sessionCount)}),(0,F.jsx)(Sr,{label:`Time`,value:vr(e.totalDuration)}),(0,F.jsx)(Sr,{label:`LOC`,value:yr(e.totalLoc)}),(0,F.jsx)(Sr,{label:`Files`,value:String(e.totalFiles)})]}),e.skills.length>0&&(0,F.jsx)(`div`,{className:`project-card__skills`,children:e.skills.map(e=>(0,F.jsx)(`span`,{className:`skill-chip`,children:e},e))})]})}function wr(){return(0,F.jsxs)(`div`,{className:`empty-state`,children:[(0,F.jsx)(`div`,{className:`empty-state__icon`,children:`📄`}),(0,F.jsx)(`h2`,{className:`empty-state__title`,children:`No sessions found`}),(0,F.jsxs)(`p`,{className:`empty-state__text`,children:[`Claude Code sessions from `,(0,F.jsx)(`code`,{children:`~/.claude/projects`}),` will appear here.`]}),(0,F.jsx)(`div`,{className:`empty-state__hint`,children:(0,F.jsx)(`code`,{children:`$ claude # start a session first`})})]})}function Tr(){let{projects:e,loading:t,error:n}=ar(),r=rt();return(0,F.jsx)(fr,{title:`heyi.am`,headerActions:(0,F.jsx)(`button`,{className:`topbar-icon-btn`,onClick:()=>r(`/settings`),"aria-label":`Settings`,children:`⚙`}),children:t?(0,F.jsx)(`div`,{className:`dashboard-loading`,children:`Loading projects...`}):n?(0,F.jsx)(`div`,{className:`dashboard-error`,children:n}):e.length===0?(0,F.jsx)(wr,{}):(0,F.jsxs)(`div`,{className:`dashboard`,children:[(0,F.jsx)(`h1`,{className:`dashboard__title`,children:`Your Projects`}),(0,F.jsx)(`p`,{className:`dashboard__subtitle`,children:`Pick a project to upload. The AI will read your sessions, pick the ones worth showcasing, and build the narrative for you.`}),(0,F.jsx)(`div`,{className:`dashboard__cards`,children:e.map((e,t)=>(0,F.jsx)(Cr,{project:e,index:t},e.dirName))})]})})}var Er={main:`#084471`,orchestrator:`#084471`,"frontend-dev":`#7c3aed`,frontend:`#7c3aed`,"backend-dev":`#0891b2`,backend:`#0891b2`,"qa-engineer":`#059669`,qa:`#059669`,"ux-designer":`#d97706`,ux:`#d97706`,"product-manager":`#dc2626`,pm:`#dc2626`,"security-engineer":`#6b7280`,"team-lead":`#6b7280`,explore:`#94a3b8`},Dr=`#6b7280`,Or=`#084471`,kr=`'IBM Plex Mono', monospace`;function Ar(e){return e?Er[e.toLowerCase()]??Dr:Dr}function jr(e){return new Date(e.date).getTime()}function Mr(e){return e.endTime?new Date(e.endTime).getTime():jr(e)+e.durationMinutes*6e4}function Nr(e){let t=e/36e5;if(t<20)return`${Math.round(t)}h`;let n=Math.round(t/24);return n<1?`${Math.round(t)}h`:n===1?`1 day`:`${n} days`}function Pr(e){let t=new Date(e);return`${[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`][t.getMonth()]} ${t.getDate()}`}function Fr(e){let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}var Ir=60*6e4,Lr=56,Rr=5,zr=90;function Br(e){let t=[],n=null;for(let r of e){let e=jr(r),i=Mr(r);!n||e>=n.endMs?(n&&t.push(n),n={sessions:[r],startMs:e,endMs:i}):(n.sessions.push(r),i>n.endMs&&(n.endMs=i))}return n&&t.push(n),t}function Vr(e){if(e.length===0)return[];let t=Br([...e].sort((e,t)=>jr(e)-jr(t))),n=[];for(let e=0;e<t.length;e++){let r=t[e];if(e>0){let i=t[e-1].endMs,a=r.startMs-i;a>Ir&&n.push({type:`gap`,durationMs:a})}if(r.sessions.length===1){let e=r.sessions[0];n.push({type:`session`,session:e,startMs:r.startMs,endMs:r.endMs})}else n.push({type:`concurrent`,sessions:r.sessions,startMs:r.startMs,endMs:r.endMs})}return n}function Hr(e,t){let n=new Date(e),r=new Date(t);return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}var Ur=32,Wr=32,Gr=36,Kr=28,qr=24,Jr=24,Yr=18;function Xr(e){return e.childSessions&&e.childSessions.length>0?e.childSessions.length:e.children&&e.children.length>0?e.children.length:0}function Zr(e){return e.childSessions&&e.childSessions.length>0?e.childSessions.map(e=>({id:e.id,role:e.agentRole,durationMinutes:e.durationMinutes,linesOfCode:e.linesOfCode,date:e.date})):e.children&&e.children.length>0?e.children.map(e=>({id:e.sessionId,role:e.role,durationMinutes:e.durationMinutes??0,linesOfCode:e.linesOfCode??0,date:e.date})):[]}function Qr(e,t){let n=Math.floor(t/5.5);return e.length<=n?e:e.slice(0,Math.max(n-1,8))+`…`}function $r({sessions:e,onSessionClick:t}){let n=(0,_.useRef)(null),r=(0,_.useCallback)(e=>{n.current?.scrollBy({left:e,behavior:`smooth`})},[]);if(e.length===0)return(0,F.jsx)(`div`,{className:`work-timeline`,"data-testid":`work-timeline-empty`,children:(0,F.jsx)(`p`,{style:{fontFamily:kr,fontSize:`0.75rem`,color:`#6b7280`},children:`No sessions to display.`})});let i=Vr(e),a=0;for(let e of i)if(e.type===`gap`)a+=Lr;else{let t=(e.endMs-e.startMs)/6e4;a+=Math.max(t*Rr,zr)}let o=Ur+a+Wr,s=0;for(let e of i)if(e.type===`session`){let t=Xr(e.session);t>s&&(s=t)}else e.type===`concurrent`&&e.sessions.length>s&&(s=e.sessions.length);let c=s>0?s*qr+16:0,l=Math.max(48,c),u=Gr+l/2,d=Gr+l+Kr,f=i.filter(e=>e.type!==`gap`),p=f[0].startMs,m=f[f.length-1].endMs,h=Hr(p,m),g=[],v=Ur;for(let e of i)if(e.type===`gap`){let t=v,n=v+Lr;g.push({seg:e,x1:t,x2:n}),v=n}else{let t=(e.endMs-e.startMs)/6e4,n=Math.max(t*Rr,zr),r=v,i=v+n;g.push({seg:e,x1:r,x2:i}),v=i}let y=[];for(let e of g)e.seg.type!==`gap`&&y.push({label:h?Fr(e.seg.startMs):Pr(e.seg.startMs),x:e.x1});let b=[];for(let e of y){let t=b[b.length-1];(!t||e.x-t.x>70)&&b.push(e)}let x=o>800;return(0,F.jsxs)(`div`,{className:`work-timeline`,"data-testid":`work-timeline`,style:{position:`relative`},children:[x&&(0,F.jsxs)(`div`,{className:`work-timeline__scroll-controls`,children:[(0,F.jsx)(`button`,{type:`button`,className:`work-timeline__scroll-btn`,onClick:()=>r(-300),"aria-label":`Scroll left`,children:`←`}),(0,F.jsx)(`button`,{type:`button`,className:`work-timeline__scroll-btn`,onClick:()=>r(300),"aria-label":`Scroll right`,children:`→`})]}),(0,F.jsx)(`div`,{className:`work-timeline__container`,ref:n,style:{overflowX:`auto`,WebkitOverflowScrolling:`touch`,paddingBottom:`var(--spacing-2, 0.5rem)`},children:(0,F.jsxs)(`svg`,{viewBox:`0 0 ${o} ${d}`,xmlns:`http://www.w3.org/2000/svg`,role:`img`,"aria-label":`Work timeline showing ${e.length} sessions`,width:o,height:d,style:{display:`block`},children:[(0,F.jsx)(`line`,{x1:Ur,y1:d-Kr+4,x2:o-Wr,y2:d-Kr+4,stroke:`#e5e7eb`,strokeWidth:1,"data-testid":`axis-line`}),b.map((e,t)=>(0,F.jsxs)(`g`,{"data-testid":`axis-tick`,children:[(0,F.jsx)(`line`,{x1:e.x,y1:d-Kr+1,x2:e.x,y2:d-Kr+7,stroke:`#d1d5db`,strokeWidth:1}),(0,F.jsx)(`text`,{x:e.x,y:d-6,fontFamily:kr,fontSize:8,fill:`#9ca3af`,textAnchor:`start`,children:e.label})]},t)),g.map((e,n)=>{if(e.seg.type===`gap`)return(0,F.jsxs)(`g`,{"data-testid":`gap-segment`,children:[(0,F.jsx)(`line`,{x1:e.x1+4,y1:u,x2:e.x2-4,y2:u,stroke:`#d1d5db`,strokeWidth:1.5,strokeDasharray:`4,4`}),(0,F.jsx)(`text`,{x:(e.x1+e.x2)/2,y:u-8,fontFamily:kr,fontSize:8,fontStyle:`italic`,fill:`#9ca3af`,textAnchor:`middle`,"data-testid":`gap-label`,children:Nr(e.seg.durationMs)})]},`gap-${n}`);if(e.seg.type===`concurrent`)return(0,F.jsx)(ii,{x1:e.x1,x2:e.x2,mainY:u,sessions:e.seg.sessions,clusterStartMs:e.seg.startMs,clusterEndMs:e.seg.endMs,onSessionClick:t},`concurrent-${n}`);let r=e.seg.session,i=Zr(r),a=r.childCount??r.children?.length??0,o=i.length>0,s=o||a>0,c=`${r.durationMinutes}m`,l=[c,r.linesOfCode>0?`${r.linesOfCode} LOC`:``].filter(Boolean).join(` · `),d=o?i.length*qr/2+18:18;return(0,F.jsxs)(`g`,{"data-testid":`session-segment`,style:t?{cursor:`pointer`}:void 0,onClick:t?()=>t(r):void 0,role:t?`button`:void 0,tabIndex:t?0:void 0,onKeyDown:t?e=>{e.key===`Enter`&&t(r)}:void 0,"aria-label":`${r.title}, ${c}${a>0?`, ${a} agents`:``}`,children:[(0,F.jsx)(`text`,{x:e.x1+6,y:u-d,fontFamily:kr,fontSize:10,fontWeight:600,fill:`#191c1e`,"data-testid":`session-title`,children:Qr(r.title,e.x2-e.x1-12)}),(0,F.jsx)(`text`,{x:e.x1+6,y:u-d+12,fontFamily:kr,fontSize:8,fill:`#6b7280`,"data-testid":`session-subtitle`,children:l}),o?(0,F.jsx)(ni,{x1:e.x1,x2:e.x2,mainY:u,children:i}):s?(0,F.jsx)(ti,{x1:e.x1,x2:e.x2,mainY:u,agentCount:a}):(0,F.jsx)(ei,{x1:e.x1,x2:e.x2,mainY:u})]},`session-${n}`)})]})})]})}function ei({x1:e,x2:t,mainY:n}){return(0,F.jsxs)(`g`,{"data-testid":`single-bar`,children:[(0,F.jsx)(`circle`,{cx:e,cy:n,r:4,fill:`none`,stroke:Or,strokeWidth:1.5}),(0,F.jsx)(`line`,{x1:e,y1:n,x2:t,y2:n,stroke:Or,strokeWidth:2.5,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:t,cy:n,r:4,fill:Or})]})}function ti({x1:e,x2:t,mainY:n,agentCount:r}){return(0,F.jsxs)(`g`,{"data-testid":`thick-bar`,children:[(0,F.jsx)(`circle`,{cx:e,cy:n,r:4,fill:`none`,stroke:Or,strokeWidth:1.5}),(0,F.jsx)(`line`,{x1:e,y1:n,x2:t,y2:n,stroke:Or,strokeWidth:4.5,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:t,cy:n,r:4,fill:Or}),(0,F.jsxs)(`text`,{x:(e+t)/2,y:n+18,fontFamily:kr,fontSize:8,fill:`#6b7280`,textAnchor:`middle`,"data-testid":`agent-count-badge`,children:[`(`,r,` agents)`]})]})}function ni({x1:e,x2:t,mainY:n,children:r}){let i=[...r].sort((e,t)=>e.date&&t.date?new Date(e.date).getTime()-new Date(t.date).getTime():0),a=(i.length-1)*qr,o=e+Jr,s=t-Jr,c=o+Yr+4,l=s-Yr-4,u=Math.max(l-c,20),d=Math.max(...i.map(e=>e.durationMinutes),1);return(0,F.jsxs)(`g`,{"data-testid":`multi-agent-bar`,children:[(0,F.jsx)(`circle`,{cx:e,cy:n,r:4,fill:`none`,stroke:Or,strokeWidth:1.5}),(0,F.jsx)(`line`,{x1:e,y1:n,x2:o,y2:n,stroke:Or,strokeWidth:2.5,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:o,cy:n,r:4,fill:Or,"data-testid":`fork-dot`}),i.map((e,t)=>{let r=n-a/2+t*qr,i=Ar(e.role),l=Math.max(24,e.durationMinutes/d*u);return(0,F.jsxs)(`g`,{"data-testid":`child-lane`,children:[(0,F.jsx)(`path`,{d:`M${o},${n} C${o+Yr},${n} ${o+Yr},${r} ${c},${r}`,stroke:i,strokeWidth:1.5,fill:`none`,strokeDasharray:`4,3`}),(0,F.jsx)(`rect`,{x:c,y:r-10,rx:2,ry:2,width:l,height:20,fill:i,opacity:.06}),(0,F.jsx)(`line`,{x1:c,y1:r,x2:c+l,y2:r,stroke:i,strokeWidth:2.5,strokeLinecap:`round`}),(0,F.jsx)(`text`,{x:c+l+6,y:r+3,fontFamily:kr,fontSize:8,fill:i,fontWeight:600,"data-testid":`child-role-label`,children:(e.role??`agent`).toUpperCase()}),(0,F.jsx)(`path`,{d:`M${c+l},${r} C${s-Yr},${r} ${s-Yr},${n} ${s},${n}`,stroke:i,strokeWidth:1.5,fill:`none`,strokeDasharray:`4,3`})]},e.id||t)}),(0,F.jsx)(`circle`,{cx:s,cy:n,r:4,fill:Or,"data-testid":`join-dot`}),(0,F.jsx)(`line`,{x1:s,y1:n,x2:t,y2:n,stroke:Or,strokeWidth:2.5,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:t,cy:n,r:4,fill:Or})]})}var ri=[`#084471`,`#7c3aed`,`#0891b2`,`#059669`,`#d97706`,`#dc2626`];function ii({x1:e,x2:t,mainY:n,sessions:r,clusterStartMs:i,clusterEndMs:a,onSessionClick:o}){let s=[...r].sort((e,t)=>jr(e)-jr(t)),c=(s.length-1)*qr,l=e+12,u=t-12,d=u-l-Yr*2-8,f=a-i;return(0,F.jsxs)(`g`,{"data-testid":`concurrent-segment`,children:[(0,F.jsx)(`circle`,{cx:e,cy:n,r:4,fill:`none`,stroke:Or,strokeWidth:1.5}),(0,F.jsx)(`line`,{x1:e,y1:n,x2:l,y2:n,stroke:Or,strokeWidth:2.5,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:l,cy:n,r:4,fill:Or,"data-testid":`concurrent-fork`}),s.map((e,t)=>{let r=n-c/2+t*qr,a=ri[t%ri.length],s=jr(e),p=Mr(e),m=f>0?(s-i)/f:0,h=f>0?(p-i)/f:1,g=l+Yr+4+m*d,_=l+Yr+4+h*d,v=Math.max(_-g,20),y=[`${e.durationMinutes}m`,e.linesOfCode>0?`${e.linesOfCode} LOC`:``].filter(Boolean).join(` · `);return(0,F.jsxs)(`g`,{"data-testid":`concurrent-lane`,style:o?{cursor:`pointer`}:void 0,onClick:o?t=>{t.stopPropagation(),o(e)}:void 0,role:o?`button`:void 0,tabIndex:o?0:void 0,children:[(0,F.jsx)(`path`,{d:`M${l},${n} C${l+Yr},${n} ${l+Yr},${r} ${g},${r}`,stroke:a,strokeWidth:1.5,fill:`none`,strokeDasharray:`4,3`}),(0,F.jsx)(`rect`,{x:g,y:r-10,rx:2,ry:2,width:v,height:20,fill:a,opacity:.06}),(0,F.jsx)(`line`,{x1:g,y1:r,x2:g+v,y2:r,stroke:a,strokeWidth:2.5,strokeLinecap:`round`}),(0,F.jsx)(`text`,{x:g-4,y:r+3,fontFamily:kr,fontSize:8,fontWeight:600,fill:a,textAnchor:`end`,"data-testid":`concurrent-title`,children:e.title.length>30?e.title.slice(0,28)+`…`:e.title}),(0,F.jsx)(`text`,{x:g+v+6,y:r+3,fontFamily:kr,fontSize:7,fill:`#9ca3af`,children:y}),(0,F.jsx)(`path`,{d:`M${g+v},${r} C${u-Yr},${r} ${u-Yr},${n} ${u},${n}`,stroke:a,strokeWidth:1.5,fill:`none`,strokeDasharray:`4,3`})]},e.id||t)}),(0,F.jsx)(`circle`,{cx:u,cy:n,r:4,fill:Or,"data-testid":`concurrent-join`}),(0,F.jsx)(`line`,{x1:u,y1:n,x2:t,y2:n,stroke:Or,strokeWidth:2.5,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:t,cy:n,r:4,fill:Or})]})}var ai={main:`#084471`,orchestrator:`#084471`,"frontend-dev":`#7c3aed`,frontend:`#7c3aed`,"backend-dev":`#0891b2`,backend:`#0891b2`,"qa-engineer":`#059669`,qa:`#059669`,"ux-designer":`#d97706`,ux:`#d97706`,"product-manager":`#dc2626`,pm:`#dc2626`,"security-engineer":`#6b7280`,"team-lead":`#6b7280`,explore:`#94a3b8`},oi=`#6b7280`,si=`#084471`;function ci(e){return e?ai[e.toLowerCase()]??oi:oi}function li(e){if(e.length===0)return[];let t=[...e].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),n=[],r=[t[0]],i=new Date(t[0].date).getTime()+(t[0].wallClockMinutes??t[0].durationMinutes)*6e4;for(let e=1;e<t.length;e++){let a=new Date(t[e].date).getTime();if(a>=i)n.push({children:r}),r=[t[e]],i=a+(t[e].wallClockMinutes??t[e].durationMinutes)*6e4;else{r.push(t[e]);let n=a+(t[e].wallClockMinutes??t[e].durationMinutes)*6e4;n>i&&(i=n)}}return n.push({children:r}),n}function ui({session:e,variant:t}){let n=t===`compact`,r=e.childSessions??[];if(!(r.length>0))return(0,F.jsx)(di,{session:e,isCompact:n});let i=li(r),a=n?20:60,o=Math.max(...i.map(e=>e.children.length),1),s=n?12:25,c=n?30:80,l=n?30:80,u=n?20:50,d=n?30:60,f=n?80:200,p=n?0:100,m=s*2,h=i.flatMap(e=>e.children),g=Math.max(...h.map(e=>e.durationMinutes),1),_=c+i.map(e=>{let t=Math.max(...e.children.map(e=>e.durationMinutes),1);return m+Math.max(d,t/g*f)+p+m}).reduce((e,t)=>e+t,0)+(i.length-1)*u+l,v=Math.max(n?400:900,_),y=n?10:30,b=n?30:Math.max(80,o*a/2+30),x=n?Math.max(60,o*a+30):b+o*a/2+40,S=n?2.5:3,C=n?3.5:5,w=n?3:4,T=n?7:8.5,E=n?0:7.5,D=n?8:13,O=n?16:26,k=[],ee=y+c,A=new Date(e.date).getTime();for(let e=0;e<i.length;e++){let t=i[e],n=ee,r=Math.max(...t.children.map(e=>e.durationMinutes),1),o=Math.max(d,r/g*f),s=n+m,c=s+o+p+m,l=[...t.children].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),h=l.map((e,t)=>{let n=b-(l.length-1)*a/2+t*a,r=Math.max(d,e.durationMinutes/g*f),i=Math.round((new Date(e.date).getTime()-A)/6e4);return{child:e,y:n,x1:s,x2:s+r,color:ci(e.agentRole),offsetMinutes:i}});k.push({forkX:n,joinX:c,lanes:h}),ee=c+u}let te=v-y;return(0,F.jsx)(`div`,{style:{overflowX:`auto`,WebkitOverflowScrolling:`touch`},children:(0,F.jsxs)(`svg`,{viewBox:`0 0 ${v} ${x}`,xmlns:`http://www.w3.org/2000/svg`,role:`img`,"aria-label":`Multi-agent session timeline`,width:v,height:x,style:{display:`block`},children:[(0,F.jsx)(`circle`,{cx:y,cy:b,r:w,fill:`none`,stroke:si,strokeWidth:n?1.5:2}),(0,F.jsx)(`line`,{x1:y,y1:b,x2:k[0].forkX,y2:b,stroke:si,strokeWidth:S,strokeLinecap:`round`}),k.map((e,t)=>(0,F.jsxs)(`g`,{"data-testid":`wave`,children:[(0,F.jsx)(`circle`,{cx:e.forkX,cy:b,r:C,fill:si,"data-testid":`fork-circle`}),e.lanes.map((t,r)=>(0,F.jsx)(`path`,{d:`M${e.forkX},${b} C${e.forkX+s},${b} ${e.forkX+s},${t.y} ${t.x1},${t.y}`,stroke:t.color,strokeWidth:n?1.5:2,fill:`none`,strokeDasharray:n?`3,2`:`4,3`,"data-testid":`fork-line`},`f${r}`)),e.lanes.map((e,t)=>(0,F.jsxs)(`g`,{"data-testid":`agent-lane`,children:[(0,F.jsx)(`rect`,{x:e.x1,y:e.y-D,rx:2,ry:2,width:e.x2-e.x1,height:O,fill:e.color,opacity:.08}),(0,F.jsx)(`line`,{x1:e.x1,y1:e.y,x2:e.x2,y2:e.y,stroke:e.color,strokeWidth:S,strokeLinecap:`round`}),(0,F.jsx)(`text`,{x:e.x1-6,y:e.y+T/3,fontFamily:`var(--font-mono), 'IBM Plex Mono', monospace`,fontSize:T,fill:e.color,fontWeight:600,textAnchor:`end`,"data-testid":`role-label`,children:(e.child.agentRole??`agent`).toUpperCase()}),!n&&E>0&&(0,F.jsxs)(`text`,{x:e.x2+8,y:e.y+4,fontFamily:`var(--font-body), 'Inter', sans-serif`,fontSize:E,fill:`#6b7280`,children:[`+`,e.offsetMinutes,`m · `,e.child.linesOfCode>0?`${e.child.linesOfCode} LOC · `:``,e.child.durationMinutes,`m`]})]},`l${t}`)),e.lanes.map((t,r)=>(0,F.jsx)(`path`,{d:`M${t.x2},${t.y} C${t.x2+s},${t.y} ${e.joinX-s},${b} ${e.joinX},${b}`,stroke:t.color,strokeWidth:n?1.5:2,fill:`none`,strokeDasharray:n?`3,2`:`4,3`,"data-testid":`join-line`},`j${r}`)),(0,F.jsx)(`circle`,{cx:e.joinX,cy:b,r:C,fill:si,"data-testid":`join-circle`}),t<k.length-1&&(0,F.jsx)(`line`,{x1:e.joinX,y1:b,x2:k[t+1].forkX,y2:b,stroke:si,strokeWidth:S,strokeLinecap:`round`})]},t)),(0,F.jsx)(`line`,{x1:k[k.length-1].joinX,y1:b,x2:te,y2:b,stroke:si,strokeWidth:S,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:te,cy:b,r:w,fill:si})]})})}function di({session:e,isCompact:t}){let n=t?400:900,r=t?20:60,i=r,a=n-r,o=t?2.5:3,s=t?3:4,c=t?20:50,l=t?40:80,u=t?12:20,d=e.turns||0,f=Math.min(d,14),p=a-i,m=[];for(let e=0;e<f;e++){let t=(e+1)/(f+1),n=.15+(e*7+3)%5*.06;m.push({x:i+t*p,opacity:Math.min(n,.4)})}return(0,F.jsxs)(`svg`,{viewBox:`0 0 ${n} ${l}`,xmlns:`http://www.w3.org/2000/svg`,role:`img`,"aria-label":`Single agent session timeline`,style:{width:`100%`,display:`block`},children:[(0,F.jsx)(`line`,{x1:i,y1:c,x2:a,y2:c,stroke:si,strokeWidth:o,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:i,cy:c,r:s,fill:`none`,stroke:si,strokeWidth:t?1.5:2}),(0,F.jsx)(`circle`,{cx:a,cy:c,r:s,fill:si}),m.map((e,n)=>(0,F.jsx)(`rect`,{x:e.x,y:c-u/2,width:t?2:3,height:u,fill:si,opacity:e.opacity,rx:1,"data-testid":`activity-tick`},n))]})}function fi(e,t,n){if(n&&e.startsWith(n))return e.slice(n.length).replace(/^\//,``)||e;let r=t.replace(/^-/,`/`).replace(/-/g,`/`);return e.startsWith(r)&&e.slice(r.length).replace(/^\//,``)||e}function pi(e){if(e<60)return`${Math.round(e)}m`;let t=e/60;return t>=10?`${Math.round(t)}h`:`${t.toFixed(1)}h`}function mi(e){return e<1e3?String(e):`${(e/1e3).toFixed(1)}k`}function hi(e){return e?new Date(e).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`}):``}function gi(e){let t=`${e.title} ${e.description}`.toLowerCase();return/\b(decision|pivot|key|critical|important|breakthrough)\b/.test(t)}function _i({session:e}){let t=e.filesChanged?.length??0;return(0,F.jsxs)(`div`,{className:`session-detail__stats-grid`,children:[(0,F.jsxs)(`div`,{className:`session-detail__stat`,children:[(0,F.jsx)(`div`,{className:`session-detail__stat-value`,children:pi(e.durationMinutes)}),(0,F.jsx)(`div`,{className:`session-detail__stat-label`,children:`Duration`})]}),(0,F.jsxs)(`div`,{className:`session-detail__stat`,children:[(0,F.jsx)(`div`,{className:`session-detail__stat-value`,children:e.turns}),(0,F.jsx)(`div`,{className:`session-detail__stat-label`,children:`Turns`})]}),(0,F.jsxs)(`div`,{className:`session-detail__stat`,children:[(0,F.jsx)(`div`,{className:`session-detail__stat-value`,children:t}),(0,F.jsx)(`div`,{className:`session-detail__stat-label`,children:`Files`})]}),(0,F.jsxs)(`div`,{className:`session-detail__stat`,children:[(0,F.jsx)(`div`,{className:`session-detail__stat-value`,children:mi(e.linesOfCode)}),(0,F.jsx)(`div`,{className:`session-detail__stat-label`,children:`LOC Changed`})]})]})}function vi({take:e}){return(0,F.jsxs)(`section`,{className:`session-detail__section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`DEVELOPER TAKE`}),(0,F.jsx)(`blockquote`,{className:`session-detail__take`,children:e})]})}function yi({skills:e}){return(0,F.jsxs)(`section`,{className:`session-detail__section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`APPLIED SKILLS`}),(0,F.jsx)(`div`,{className:`session-detail__skills`,children:e.map(e=>(0,F.jsx)(`span`,{className:`chip`,children:e},e))})]})}function bi({pairs:e}){return(0,F.jsxs)(`section`,{className:`session-detail__section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`SESSION Q&A`}),(0,F.jsx)(`div`,{className:`session-detail__qa-list`,children:e.map((e,t)=>(0,F.jsxs)(`div`,{className:`session-detail__qa-pair`,children:[(0,F.jsx)(`div`,{className:`session-detail__qa-question`,children:e.question}),(0,F.jsx)(`div`,{className:`session-detail__qa-answer`,children:e.answer})]},t))})]})}function xi({steps:e}){return(0,F.jsxs)(`section`,{className:`session-detail__section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`HIGHLIGHTS`}),(0,F.jsx)(`div`,{className:`session-detail__highlights`,children:e.map(e=>(0,F.jsxs)(`div`,{className:`session-detail__highlight-card`,children:[(0,F.jsxs)(`div`,{className:`session-detail__highlight-step`,children:[`Step `,e.stepNumber]}),(0,F.jsx)(`div`,{className:`session-detail__highlight-title`,children:e.title}),(0,F.jsx)(`div`,{className:`session-detail__highlight-desc`,children:e.description})]},e.stepNumber))})]})}function Si({steps:e}){return(0,F.jsxs)(`section`,{className:`session-detail__sidebar-section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`EXECUTION PATH`}),(0,F.jsx)(`div`,{className:`session-detail__exec-path`,children:e.map(e=>(0,F.jsxs)(`div`,{className:`session-detail__exec-step`,children:[(0,F.jsx)(`div`,{className:`session-detail__exec-dot`}),(0,F.jsxs)(`div`,{className:`session-detail__exec-content`,children:[(0,F.jsx)(`div`,{className:`session-detail__exec-title`,children:e.title}),(0,F.jsx)(`div`,{className:`session-detail__exec-desc`,children:e.description})]})]},e.stepNumber))})]})}function Ci({lines:e}){let t=e.slice(0,4);return(0,F.jsxs)(`section`,{className:`session-detail__sidebar-section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`RAW LOG`}),(0,F.jsxs)(`div`,{className:`session-detail__raw-log`,children:[t.map((e,t)=>(0,F.jsx)(`div`,{className:`session-detail__raw-line`,children:e},t)),e.length>4&&(0,F.jsxs)(`div`,{className:`session-detail__raw-more`,children:[`View full transcript (`,e.length,` lines) →`]})]})]})}function wi({session:e,projectName:t}){return(0,F.jsxs)(`section`,{className:`session-detail__sidebar-section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`SOURCE INFO`}),(0,F.jsxs)(`div`,{className:`session-detail__source-list`,children:[(0,F.jsxs)(`div`,{className:`session-detail__source-row`,children:[(0,F.jsx)(`span`,{className:`session-detail__source-key`,children:`Source`}),(0,F.jsx)(`span`,{className:`session-detail__source-val`,children:`Claude Code`})]}),(0,F.jsxs)(`div`,{className:`session-detail__source-row`,children:[(0,F.jsx)(`span`,{className:`session-detail__source-key`,children:`Date`}),(0,F.jsx)(`span`,{className:`session-detail__source-val`,children:hi(e.date)})]}),(0,F.jsxs)(`div`,{className:`session-detail__source-row`,children:[(0,F.jsx)(`span`,{className:`session-detail__source-key`,children:`Project`}),(0,F.jsx)(`span`,{className:`session-detail__source-val`,children:t})]}),e.isOrchestrated&&(0,F.jsxs)(`div`,{className:`session-detail__source-row`,children:[(0,F.jsx)(`span`,{className:`session-detail__source-key`,children:`Type`}),(0,F.jsxs)(`span`,{className:`session-detail__source-val`,children:[`Orchestrated (`,e.childCount??e.childSessions?.length??0,` sub-sessions)`]})]})]})]})}function Ti({tools:e}){let t=e.length>0?Math.max(...e.map(e=>e.count)):1;return(0,F.jsxs)(`details`,{className:`session-detail__collapsible`,children:[(0,F.jsxs)(`summary`,{className:`session-detail__collapsible-summary`,children:[`Tool Breakdown (`,e.length,` tools)`]}),(0,F.jsx)(`div`,{className:`session-detail__tool-list`,children:e.map(e=>{let n=Math.max(8,Math.round(e.count/t*100));return(0,F.jsxs)(`div`,{className:`session-detail__tool-row`,children:[(0,F.jsx)(`span`,{className:`session-detail__tool-name`,children:e.tool}),(0,F.jsx)(`div`,{className:`session-detail__tool-bar-track`,children:(0,F.jsx)(`div`,{className:`session-detail__tool-bar`,style:{width:`${n}%`}})}),(0,F.jsx)(`span`,{className:`session-detail__tool-count`,children:e.count})]},e.tool)})})]})}function Ei({files:e,projectDirName:t,cwd:n}){return(0,F.jsxs)(`details`,{className:`session-detail__collapsible`,children:[(0,F.jsxs)(`summary`,{className:`session-detail__collapsible-summary`,children:[`Files Changed (`,e.length,` files)`]}),(0,F.jsx)(`div`,{className:`session-detail__file-list`,children:e.map(e=>(0,F.jsxs)(`div`,{className:`session-detail__file-row`,children:[(0,F.jsx)(`span`,{className:`session-detail__file-path`,children:fi(e.path,t,n)}),(0,F.jsxs)(`span`,{className:`session-detail__file-additions`,children:[`+`,e.additions]}),(0,F.jsxs)(`span`,{className:`session-detail__file-deletions`,children:[`-`,e.deletions]})]},e.path))})]})}function Di({session:e,projectName:t,projectDirName:n,onClose:r}){let i=(0,_.useCallback)(e=>{e.key===`Escape`&&r()},[r]);(0,_.useEffect)(()=>(document.addEventListener(`keydown`,i),()=>document.removeEventListener(`keydown`,i)),[i]);let a=(e.childCount??0)>0&&!e.childSessions?.length,[o,s]=(0,_.useState)(null),[c,l]=(0,_.useState)(a);(0,_.useEffect)(()=>{if(!a||!n){l(!1);return}let t=!1;return l(!0),Gn(n,e.id).then(e=>{t||s(e)}).catch(()=>{}).finally(()=>{t||l(!1)}),()=>{t=!0}},[a,n,e.id]);let u=o??e,d=(u.childSessions?.length??0)>0,f=(e.executionPath??[]).filter(gi),p=Array.isArray(e.qaPairs)&&e.qaPairs.length>0,m=Array.isArray(e.skills)&&e.skills.length>0,h=Array.isArray(e.executionPath)&&e.executionPath.length>0,g=Array.isArray(e.rawLog)&&e.rawLog.length>0,v=Array.isArray(e.toolBreakdown)&&e.toolBreakdown.length>0,y=Array.isArray(e.filesChanged)&&e.filesChanged.length>0;return(0,F.jsxs)(`div`,{className:`session-detail-overlay`,role:`dialog`,"aria-label":`Session detail: ${e.title}`,children:[(0,F.jsxs)(`div`,{className:`session-detail__header`,children:[(0,F.jsx)(`button`,{className:`session-detail__back`,onClick:r,type:`button`,children:`← Back to project`}),(0,F.jsx)(`button`,{className:`session-detail__close`,onClick:r,"aria-label":`Close session detail`,type:`button`,children:`×`})]}),(0,F.jsxs)(`div`,{className:`session-detail__scroll`,children:[(0,F.jsxs)(`div`,{className:`session-detail__layout`,children:[(0,F.jsxs)(`div`,{className:`session-detail__main`,children:[(0,F.jsxs)(`div`,{className:`session-detail__breadcrumb`,children:[t,` / `,e.title]}),(0,F.jsx)(`h1`,{className:`session-detail__title`,children:e.title}),(0,F.jsx)(_i,{session:e}),c&&(0,F.jsx)(`div`,{className:`session-detail__timeline-loading`,"aria-label":`Loading agent activity`,children:`Loading agent activity...`}),!c&&d&&(0,F.jsxs)(`section`,{className:`session-detail__section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`AGENT ACTIVITY`}),(0,F.jsx)(ui,{session:u,variant:`full`})]}),e.developerTake&&(0,F.jsx)(vi,{take:e.developerTake}),e.context&&(0,F.jsxs)(`section`,{className:`session-detail__section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`CONTEXT`}),(0,F.jsx)(`p`,{className:`session-detail__context`,children:e.context})]}),m&&(0,F.jsx)(yi,{skills:e.skills}),p&&(0,F.jsx)(bi,{pairs:e.qaPairs}),f.length>0&&(0,F.jsx)(xi,{steps:f})]}),(0,F.jsxs)(`div`,{className:`session-detail__sidebar`,children:[h&&(0,F.jsx)(Si,{steps:e.executionPath}),g&&(0,F.jsx)(Ci,{lines:e.rawLog}),(0,F.jsx)(wi,{session:e,projectName:t})]})]}),(0,F.jsxs)(`div`,{className:`session-detail__full-width`,children:[v&&(0,F.jsx)(Ti,{tools:e.toolBreakdown}),y&&(0,F.jsx)(Ei,{files:e.filesChanged,projectDirName:n,cwd:e.cwd})]})]})]})}function Oi(e){if(e<60)return`${Math.round(e)}m`;let t=e/60;return t>=10?`${Math.round(t)}h`:`${t.toFixed(1)}h`}function I(e){return e<1e3?String(e):`${(e/1e3).toFixed(1)}k`}function ki(e){return e?new Date(e).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`}):``}function Ai(e){if(!e)return``;let[t,n]=e.split(`|`);if(!t||!n)return``;let r=new Date(t),i=new Date(n),a=e=>e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`}),o=i.getFullYear();return`${a(r)}\u2013${a(i)}, ${o}`}var ji=[`overview`,`triage`,`enhance`,`questions`,`timeline`,`review`,`done`];function Mi({current:e}){let t=ji.indexOf(e);return(0,F.jsx)(`div`,{className:`phase-bar`,children:ji.slice(0,-1).map((e,n)=>(0,F.jsx)(`div`,{className:`phase-bar__segment ${n<=t?`phase-bar__segment--active`:``}`},n))})}function Ni({project:e,sessions:t,onTriage:n,onCancel:r}){let i=[...t].sort((e,t)=>{let n=e.date?new Date(e.date).getTime():0;return(t.date?new Date(t.date).getTime():0)-n});return(0,F.jsxs)(`div`,{className:`upload-flow`,children:[(0,F.jsx)(`div`,{className:`upload-flow__label`,children:`Upload Project`}),(0,F.jsx)(`h2`,{className:`upload-flow__title`,children:e.name}),(0,F.jsx)(`div`,{className:`upload-flow__date`,children:Ai(e.dateRange)}),(0,F.jsxs)(`p`,{className:`upload-flow__desc`,children:[`The AI will scan all `,e.sessionCount,` sessions, pick the ones worth showcasing, and build a project narrative. Small or trivial sessions are skipped automatically.`]}),(0,F.jsxs)(`div`,{className:`upload-flow__stat-grid`,children:[(0,F.jsx)(Pi,{label:`Sessions`,value:String(e.sessionCount)}),(0,F.jsx)(Pi,{label:`Total Time`,value:Oi(e.totalDuration)}),(0,F.jsx)(Pi,{label:`LOC`,value:I(e.totalLoc)}),(0,F.jsx)(Pi,{label:`Files`,value:String(e.totalFiles)})]}),(0,F.jsxs)(`div`,{className:`upload-flow__section-label`,children:[`All Sessions (`,t.length,`)`]}),(0,F.jsxs)(`div`,{className:`session-table`,children:[(0,F.jsxs)(`div`,{className:`session-table__header`,children:[(0,F.jsx)(`span`,{children:`Session`}),(0,F.jsx)(`span`,{style:{textAlign:`right`},children:`Date`}),(0,F.jsx)(`span`,{style:{textAlign:`right`},children:`Time`}),(0,F.jsx)(`span`,{style:{textAlign:`right`},children:`LOC`}),(0,F.jsx)(`span`,{style:{textAlign:`right`},children:`Turns`})]}),(0,F.jsx)(`div`,{className:`session-table__body`,children:i.map(e=>(0,F.jsxs)(`div`,{className:`session-table__row`,children:[(0,F.jsx)(`span`,{className:`session-table__name`,children:e.title}),(0,F.jsx)(`span`,{className:`session-table__cell`,children:ki(e.date)}),(0,F.jsx)(`span`,{className:`session-table__cell`,children:Oi(e.durationMinutes)}),(0,F.jsx)(`span`,{className:`session-table__cell`,children:I(e.linesOfCode)}),(0,F.jsx)(`span`,{className:`session-table__cell`,children:e.turns})]},e.id))})]}),(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:r,children:`Cancel`}),(0,F.jsxs)(`button`,{className:`btn btn--primary btn--large`,onClick:n,children:[e.sessionCount<5?`Enhance all ${e.sessionCount} sessions`:`Let AI pick sessions`,` →`]})]})]})}function Pi({label:e,value:t}){return(0,F.jsxs)(`div`,{className:`stat-card`,children:[(0,F.jsx)(`div`,{className:`stat-card__label`,children:e}),(0,F.jsx)(`div`,{className:`stat-card__value`,children:t})]})}var Fi=[`◐`,`◑`,`◒`,`◓`];function L(){let[e,t]=(0,_.useState)(0);return(0,_.useEffect)(()=>{let e=setInterval(()=>t(e=>(e+1)%Fi.length),120);return()=>clearInterval(e)},[]),Fi[e]}function R(e,t){let n=[{id:`prompt`,text:`$ heyiam triage`,variant:`prompt`}],r=0,i=0,a=0,o=!1,s=!1,c=!1;for(let l of e)switch(l.type){case`scanning`:r=l.total,n.push({id:`scanning`,text:` Loading session stats... (${l.total} sessions)`,variant:`active`});break;case`loading_stats`:l.index;break;case`hard_floor`:{if(!o){let e=n.findIndex(e=>e.id===`scanning`);e!==-1&&(n[e]={id:`scanning-done`,text:` \u2713 Loaded ${r} sessions`,variant:`passed`}),n.push({id:`hf-header`,text:``,variant:`default`}),n.push({id:`hf-section`,text:` ── Hard floor filter ──`,variant:`section`}),o=!0}let e=l.sessionId.slice(0,8);l.passed?(i++,n.push({id:`hf-${l.sessionId}`,text:` \u2713 ${l.title||e} \u2192 passed`,variant:`passed`})):(a++,n.push({id:`hf-${l.sessionId}`,text:` \u2717 ${l.title||e} \u2192 skipped${l.reason?` (${l.reason})`:``}`,variant:`skipped`}));break}case`extracting_signals`:{s||=(o&&n.push({id:`hf-summary`,text:` \u2713 ${i} passed, ${a} filtered`,variant:`passed`}),n.push({id:`sig-header`,text:``,variant:`default`}),n.push({id:`sig-section`,text:` ── Signal extraction ──`,variant:`section`}),!0);let e=l.sessionId.slice(0,8);n.push({id:`sig-${l.sessionId}`,text:` ${t} Scanning ${l.title||e}...`,variant:`active`});break}case`signals_done`:{let e=n.findIndex(e=>e.id===`sig-${l.sessionId}`);if(e!==-1){let t=l.sessionId.slice(0,8);n[e]={id:`sig-done-${l.sessionId}`,text:` \u2713 ${t}: signals extracted`,variant:`passed`}}break}case`llm_ranking`:c||=(n.push({id:`rank-header`,text:``,variant:`default`}),n.push({id:`rank-section`,text:` ── AI ranking ──`,variant:`section`}),!0),n.push({id:`llm-ranking`,text:` ${t} Sending ${l.sessionCount} sessions to AI...`,variant:`active`});break;case`scoring_fallback`:c||=(n.push({id:`rank-header`,text:``,variant:`default`}),n.push({id:`rank-section`,text:` ── Scoring ──`,variant:`section`}),!0),n.push({id:`scoring-fallback`,text:` ${t} Scoring ${l.sessionCount} sessions...`,variant:`active`});break;case`done`:let e=n.findIndex(e=>e.id===`llm-ranking`||e.id===`scoring-fallback`);e!==-1&&(n[e]={id:`rank-done`,text:` \u2713 AI selected ${l.selected} sessions`,variant:`passed`});break;case`result`:break}return n}function Ii({events:e,dirName:t}){let n=L(),r=(0,_.useRef)(null),i=R(e,n);return(0,_.useEffect)(()=>{r.current&&(r.current.scrollTop=r.current.scrollHeight)},[i.length]),(0,F.jsx)(`div`,{className:`triage-terminal`,role:`log`,"aria-live":`polite`,"aria-label":`Triage progress`,children:(0,F.jsx)(`div`,{className:`triage-terminal__feed`,ref:r,children:i.map(e=>(0,F.jsx)(`div`,{className:`triage-terminal__line${e.variant===`prompt`?` triage-terminal__prompt`:e.variant===`section`?` triage-terminal__section`:e.variant===`passed`?` triage-terminal__line--passed`:e.variant===`skipped`?` triage-terminal__line--skipped`:e.variant===`active`?` triage-terminal__line--active`:``}`,children:e.text},e.id))})})}function Li({sessionId:e,title:t,stats:n,reason:r,variant:i,checked:a,onToggle:o,dimTitle:s,previouslyPublished:c}){let[l,u]=(0,_.useState)(!1),d=r.length>(i===`selected`?60:40),f=i===`selected`?r.length>60?r.slice(0,57)+`...`:r:r.length>40?r.slice(0,37)+`...`:r;return(0,F.jsxs)(`div`,{className:`triage-item ${a?`triage-item--selected`:`triage-item--skipped`}`,children:[(0,F.jsx)(`input`,{type:`checkbox`,checked:a,onChange:o,className:`triage-item__checkbox`}),(0,F.jsxs)(`div`,{className:`triage-item__info`,children:[(0,F.jsxs)(`div`,{className:`triage-item__name`,style:s?{color:`var(--on-surface-variant)`}:void 0,children:[t,c&&(0,F.jsx)(`span`,{className:`triage-item__published-badge`,children:`previously published`})]}),(0,F.jsx)(`div`,{className:`triage-item__stats`,children:n})]}),(0,F.jsx)(`div`,{className:`triage-item__reason triage-item__reason--${i} ${d?`triage-item__reason--expandable`:``}`,onClick:d?()=>u(!l):void 0,role:d?`button`:void 0,tabIndex:d?0:void 0,onKeyDown:d?e=>{e.key===`Enter`&&u(!l)}:void 0,children:l?r:f})]})}function Ri({project:e,sessions:t,triageResult:n,selectedIds:r,onToggle:i,onEnhance:a,onBack:o,publishedSessionIds:s}){let c=new Map(t.map(e=>[e.id,e])),l=r.size,u=t.length-l;return(0,F.jsxs)(`div`,{className:`upload-flow`,children:[(0,F.jsx)(Mi,{current:`triage`}),(0,F.jsxs)(`div`,{className:`upload-flow__scan-status`,children:[`✓ Scanned `,t.length,` sessions · `,Oi(e.totalDuration),` · `,I(e.totalLoc),` LOC`]}),(0,F.jsxs)(`h2`,{className:`upload-flow__title`,children:[`AI selected `,l,` sessions to showcase`]}),(0,F.jsxs)(`p`,{className:`upload-flow__desc`,children:[`Skipped `,u,` sessions that were too small, purely mechanical, or redundant. You can override any selection.`]}),n.triageMethod===`scoring`&&(0,F.jsxs)(`div`,{className:`triage-method-banner`,children:[(0,F.jsx)(`span`,{className:`triage-method-banner__icon`,"aria-hidden":`true`,children:`ⓘ`}),(0,F.jsx)(`span`,{children:`Sessions selected by signal analysis (no API key configured). `}),(0,F.jsx)(`a`,{href:`/settings`,className:`triage-method-banner__link`,children:`Go to Settings`})]}),(0,F.jsxs)(`div`,{className:`upload-flow__section-label upload-flow__section-label--selected`,children:[`✓ Selected for showcase (`,l,`)`]}),(0,F.jsx)(`div`,{className:`triage-list`,children:n.selected.map(e=>{let t=c.get(e.sessionId),n=r.has(e.sessionId);return(0,F.jsx)(Li,{sessionId:e.sessionId,title:t?.title??e.sessionId,stats:t?`${Oi(t.durationMinutes)} \u00b7 ${I(t.linesOfCode)} LOC \u00b7 ${t.turns} turns`:``,reason:e.reason,variant:`selected`,checked:n,onToggle:()=>i(e.sessionId),previouslyPublished:s?.has(e.sessionId)},e.sessionId)})}),(0,F.jsxs)(`details`,{className:`triage-skipped`,children:[(0,F.jsxs)(`summary`,{className:`triage-skipped__summary`,children:[(0,F.jsx)(`span`,{children:`▶`}),` Skipped (`,n.skipped.length,`) — click to override`]}),(0,F.jsx)(`div`,{className:`triage-list`,style:{marginTop:`var(--spacing-3)`},children:n.skipped.map(e=>{let t=c.get(e.sessionId),n=r.has(e.sessionId);return(0,F.jsx)(Li,{sessionId:e.sessionId,title:t?.title??e.sessionId,stats:t?`${Oi(t.durationMinutes)} \u00b7 ${I(t.linesOfCode)} LOC \u00b7 ${t.turns} turns`:``,reason:e.reason,variant:`skipped`,checked:n,onToggle:()=>i(e.sessionId),dimTitle:!n,previouslyPublished:s?.has(e.sessionId)},e.sessionId)})})]}),(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:o,children:`Back`}),(0,F.jsx)(`button`,{className:`btn btn--primary btn--large`,onClick:a,disabled:l===0,children:`Enhance project →`})]})]})}function zi({project:e,sessions:t,selectedIds:n,triageResult:r,onComplete:i,onBack:a}){let o=new Map(t.map(e=>[e.id,e])),[s,c]=(0,_.useState)(()=>{let e=r.selected.filter(e=>n.has(e.sessionId)),t=r.skipped.filter(e=>n.has(e.sessionId));return[...e,...t].map(e=>({sessionId:e.sessionId,title:o.get(e.sessionId)?.title??e.sessionId,status:`pending`}))}),[l,u]=(0,_.useState)(`waiting`),[d,f]=(0,_.useState)(null),[p,m]=(0,_.useState)([]),[h,g]=(0,_.useState)(``),[v,y]=(0,_.useState)(null),[b,x]=(0,_.useState)(null),[S,C]=(0,_.useState)(!1),w=(0,_.useRef)(null),T=(0,_.useRef)(null),E=(0,_.useCallback)(t=>{if(!e.dirName)return;t&&(x(null),f(null),u(`waiting`),g(``),m([]),y(null),c(e=>e.map(e=>({...e,status:`pending`}))));let i=r.skipped.filter(e=>!n.has(e.sessionId)).map(e=>{let t=o.get(e.sessionId);return{title:t?.title??e.sessionId,duration:t?.durationMinutes??0,loc:t?.linesOfCode??0}}),a=Zn(e.dirName,Array.from(n),i,e=>{switch(e.type){case`session_progress`:c(t=>t.map(t=>t.sessionId===e.sessionId?{...t,status:e.status,title:e.title||t.title,detail:e.detail}:t)),(e.status===`done`||e.status===`skipped`)&&e.skills&&m(t=>{let n=new Set(t);for(let t of e.skills)n.add(t);return[...n]});break;case`project_enhance`:u(`generating`);break;case`narrative_chunk`:g(t=>t+e.text);break;case`cached`:x(e.enhancedAt),c(e=>e.map(e=>({...e,status:`done`}))),u(`done`);break;case`done`:u(`done`),f(e.result);break;case`error`:y(e.message);break}},t);return w.current=a,a},[e.dirName,n,r,o]);(0,_.useEffect)(()=>{let e=E(S);return()=>e?.abort()},[S]);let D=s.filter(e=>e.status!==`pending`).length;(0,_.useEffect)(()=>{if(!T.current||D===0)return;let e=T.current.querySelectorAll(`.enhance-feed-item:not(.enhance-feed-item--pending)`),t=e[e.length-1];t&&t.scrollIntoView({block:`nearest`,behavior:`smooth`})},[D]);let O=d!==null,k=d?.skills??p,ee=s.filter(e=>e.status===`failed`),A=s.filter(e=>e.status===`done`||e.status===`skipped`),te=s.every(e=>e.status!==`pending`&&e.status!==`enhancing`),ne=ee.length>0,re=A.length>0,ie=(0,_.useCallback)(()=>{c(e=>e.map(e=>e.status===`failed`?{...e,status:`pending`,detail:void 0}:e)),y(null),w.current?.abort(),C(e=>!e)},[]),j=(0,_.useCallback)(()=>{i({narrative:``,arc:[],skills:p,timeline:[],questions:[]})},[p,i]);return(0,F.jsxs)(`div`,{className:`enhance-split`,children:[(0,F.jsxs)(`div`,{className:`enhance-split__left`,children:[(0,F.jsx)(`div`,{className:`enhance-split__left-header`,children:`Session Processing`}),(0,F.jsx)(`div`,{className:`enhance-split__feed`,ref:T,children:s.map(e=>(0,F.jsxs)(`div`,{className:`enhance-feed-item ${e.status===`pending`?`enhance-feed-item--pending`:``} ${e.status===`failed`?`enhance-feed-item--failed`:``}`,children:[(0,F.jsxs)(`div`,{className:`enhance-feed-item__row`,children:[e.status===`done`||e.status===`skipped`?(0,F.jsx)(`span`,{className:`enhance-feed-item__check`,children:`✓`}):e.status===`failed`?(0,F.jsx)(`span`,{className:`enhance-feed-item__fail`,children:`✗`}):e.status===`enhancing`?(0,F.jsx)(`span`,{className:`enhance-feed-item__spinner`}):(0,F.jsx)(`span`,{className:`enhance-feed-item__circle`,children:`◯`}),(0,F.jsx)(`span`,{className:`enhance-feed-item__title ${e.status===`enhancing`?`enhance-feed-item__title--active`:``} ${e.status===`failed`?`enhance-feed-item__title--failed`:``}`,children:e.title})]}),e.detail&&e.status!==`pending`&&(0,F.jsx)(`div`,{className:`enhance-feed-item__detail ${e.status===`failed`?`enhance-feed-item__detail--failed`:``}`,children:e.detail})]},e.sessionId))}),(0,F.jsxs)(`div`,{className:`enhance-split__narrative-box`,children:[(0,F.jsx)(`div`,{className:`enhance-split__narrative-label`,children:`PROJECT NARRATIVE`}),(0,F.jsx)(`div`,{className:`enhance-split__narrative-status`,children:b&&l===`done`?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`span`,{className:`enhance-feed-item__check`,children:`✓`}),(0,F.jsxs)(`span`,{children:[`Loaded from cache (`,new Date(b).toLocaleDateString(),`)`]})]}):l===`done`?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`span`,{className:`enhance-feed-item__check`,children:`✓`}),(0,F.jsx)(`span`,{children:`Project story complete`})]}):l===`generating`?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`span`,{className:`enhance-split__blink-dot`}),(0,F.jsxs)(`span`,{children:[`Building project story from `,n.size,` sessions...`]})]}):(0,F.jsx)(`span`,{children:`Waiting for session processing...`})})]})]}),(0,F.jsxs)(`div`,{className:`enhance-split__right`,children:[(0,F.jsx)(Mi,{current:`enhance`}),v?(0,F.jsxs)(`div`,{className:`enhance-error`,style:{marginTop:`var(--spacing-4)`},children:[(0,F.jsx)(`div`,{className:`enhance-error__message`,children:v}),(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:a,children:`Back`}),(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:ie,children:`Retry`}),re&&(0,F.jsx)(`button`,{className:`btn btn--primary btn--large`,onClick:j,children:`Publish without narrative`})]})]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`div`,{className:`upload-flow__label`,children:`Project Story`}),(0,F.jsx)(`h2`,{className:`upload-flow__title`,children:e.name}),!h&&!d?.narrative&&(0,F.jsxs)(`div`,{className:`enhance-split__narrative-placeholder`,children:[(0,F.jsx)(`span`,{className:`enhance-split__blink-dot`}),(0,F.jsx)(`span`,{children:l===`generating`?`Writing project narrative...`:`Analyzing sessions — narrative will appear here...`})]}),(h||d?.narrative)&&(0,F.jsxs)(`div`,{className:`enhance-split__narrative-text`,children:[d?.narrative??h,l===`generating`&&(0,F.jsx)(`span`,{className:`typewriter-cursor`,"aria-hidden":`true`})]}),k.length>0&&(0,F.jsx)(`div`,{className:`enhance-split__skills`,children:k.map(e=>(0,F.jsx)(`span`,{className:`chip`,children:e},e))}),d?.arc&&d.arc.length>0&&(()=>{let e=d.arc;return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`div`,{className:`upload-flow__section-label`,style:{marginTop:`var(--spacing-6)`},children:`Project Arc`}),(0,F.jsx)(`div`,{className:`enhance-split__arc`,children:e.map((t,n)=>(0,F.jsxs)(`div`,{className:`enhance-split__arc-item ${!O&&n===e.length-1?`enhance-split__arc-item--generating`:``}`,children:[(0,F.jsx)(`div`,{className:`enhance-split__arc-num`,children:String(t.phase).padStart(2,`0`)}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`enhance-split__arc-title`,children:t.title}),(0,F.jsx)(`div`,{className:`enhance-split__arc-desc`,children:t.description})]})]},n))})]})})(),te&&ne&&!O&&(0,F.jsxs)(`div`,{className:`enhance-split__failure-recovery`,children:[(0,F.jsxs)(`p`,{className:`enhance-split__failure-text`,children:[ee.length,` session`,ee.length===1?``:`s`,` failed to enhance.`]}),(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:ie,children:`Retry failed`}),re&&(0,F.jsxs)(`button`,{className:`btn btn--primary btn--large`,onClick:j,children:[`Continue with `,A.length,` successful →`]})]})]}),O&&(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[b&&(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:()=>{w.current?.abort(),C(!0)},children:`Re-enhance`}),(0,F.jsxs)(`button`,{className:`btn btn--primary btn--large`,onClick:()=>i(d),children:[d.questions.length>0?`Answer a few questions`:`Continue`,` →`]})]})]})]})]})}var Bi={pattern:`Pattern detected`,architecture:`Architecture`,evolution:`Evolution`};function Vi({enhanceResult:e,onSkip:t,onWeave:n}){let[r,i]=(0,_.useState)(new Map),[a,o]=(0,_.useState)(!1),s=(0,_.useCallback)((e,t)=>{i(n=>{let r=new Map(n);return r.set(e,t),r})},[]),c=Array.from(r.values()).some(e=>e.trim().length>0),l=(0,_.useCallback)(()=>{let t=e.questions.filter(e=>(r.get(e.id)??``).trim().length>0).map(e=>({questionId:e.id,question:e.question,answer:r.get(e.id).trim()}));o(!0),n(t)},[r,e.questions,n]);return(0,F.jsxs)(`div`,{className:`upload-flow`,children:[(0,F.jsx)(Mi,{current:`questions`}),(0,F.jsxs)(`div`,{className:`upload-flow__scan-status`,children:[`✓ `,e.timeline.reduce((e,t)=>e+t.sessions.length,0),` sessions enhanced · Project narrative generated`]}),(0,F.jsx)(`h2`,{className:`upload-flow__title`,children:`A few things we noticed`}),(0,F.jsx)(`p`,{className:`upload-flow__desc`,children:`Your answers get woven into the narrative. Skip any you don't want to answer.`}),(0,F.jsx)(`div`,{className:`questions-list`,children:e.questions.map(e=>(0,F.jsxs)(`div`,{className:`question-card`,children:[(0,F.jsx)(`div`,{className:`question-card__tag-row`,children:(0,F.jsx)(`span`,{className:`question-card__tag question-card__tag--${e.category}`,children:Bi[e.category]??e.category})}),(0,F.jsx)(`div`,{className:`question-card__text`,children:e.question}),(0,F.jsx)(`textarea`,{className:`question-card__textarea`,value:r.get(e.id)??``,onChange:t=>s(e.id,t.target.value),placeholder:e.context||``,rows:3})]},e.id))}),(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:t,disabled:a,children:`Skip questions`}),(0,F.jsx)(`button`,{className:`btn btn--primary btn--large`,onClick:l,disabled:!c||a,children:a?`Weaving...`:`Weave into narrative →`})]})]})}function Hi({project:e,timeline:t,onBack:n,onReview:r}){let i=t.reduce((e,t)=>e+t.sessions.length,0);return(0,F.jsxs)(`div`,{className:`upload-flow`,children:[(0,F.jsx)(Mi,{current:`timeline`}),(0,F.jsx)(`div`,{className:`upload-flow__label`,children:`Project Timeline`}),(0,F.jsxs)(`h2`,{className:`upload-flow__title`,children:[e.name,` `,(0,F.jsxs)(`span`,{style:{fontWeight:400,fontSize:`1rem`,color:`var(--on-surface-variant)`},children:[i,` sessions`]})]}),(0,F.jsx)(`p`,{className:`upload-flow__desc`,children:e.description}),(0,F.jsxs)(`div`,{className:`timeline`,children:[(0,F.jsx)(`div`,{className:`timeline__line`}),t.map((e,t)=>{let n=e.sessions.filter(e=>e.featured),r=e.sessions.filter(e=>!e.featured);return(0,F.jsxs)(`div`,{className:`timeline__period`,children:[(0,F.jsxs)(`div`,{className:`timeline__period-header`,children:[(0,F.jsx)(`span`,{className:`timeline__period-date`,children:e.period}),(0,F.jsx)(`span`,{className:`timeline__period-sep`,children:`—`}),(0,F.jsx)(`span`,{className:`timeline__period-label`,children:e.label})]}),n.map(e=>(0,F.jsxs)(`div`,{className:`timeline__featured`,children:[(0,F.jsx)(`div`,{className:`timeline__dot--large`}),(0,F.jsxs)(`div`,{className:`timeline__card`,children:[(0,F.jsxs)(`div`,{className:`timeline__card-header`,children:[(0,F.jsx)(`span`,{className:`timeline__card-title`,children:e.title}),e.tag&&(0,F.jsx)(`span`,{className:`timeline__card-tag`,children:e.tag})]}),(0,F.jsxs)(`div`,{className:`timeline__card-meta`,children:[(0,F.jsx)(`span`,{children:Oi(e.duration)}),e.date&&(0,F.jsx)(`span`,{children:ki(e.date)})]}),e.description&&(0,F.jsx)(`p`,{className:`timeline__card-desc`,children:e.description}),e.skills&&e.skills.length>0&&(0,F.jsx)(`div`,{className:`timeline__card-skills`,children:e.skills.map(e=>(0,F.jsx)(`span`,{className:`chip`,children:e},e))})]})]},e.sessionId)),r.length>0&&(0,F.jsxs)(`div`,{className:`timeline__collapsed`,children:[(0,F.jsx)(`div`,{className:`timeline__dot--small`}),(0,F.jsx)(Ui,{sessions:r})]})]},t)})]}),(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:n,children:`Back`}),(0,F.jsx)(`button`,{className:`btn btn--primary btn--large`,onClick:r,children:`Review & publish →`})]})]})}function Ui({sessions:e}){let t=e.map(e=>e.title.toLowerCase()).join(`, `),n=e.filter(e=>e.date).map(e=>e.date).sort(),r=n.length>=2?`${ki(n[0])} \u2013 ${ki(n[n.length-1])}`:n.length===1?ki(n[0]):``;return(0,F.jsxs)(`span`,{className:`timeline__collapsed-text`,children:[e.length,` smaller session`,e.length===1?``:`s`,` — `,t,r&&(0,F.jsxs)(F.Fragment,{children:[` · `,r]})]})}var Wi=[{period:`Mar 3–7`,label:`Foundation`,sessions:[{sessionId:`placeholder-1`,title:`Project scaffolding & architecture`,description:`Set up the monorepo structure, CI pipeline, and core abstractions.`,duration:145,featured:!0,tag:`KEY DECISION`,skills:[`Architecture`,`CI/CD`],date:`2026-03-03`},{sessionId:`placeholder-2`,title:`Dependency setup`,duration:30,featured:!1,date:`2026-03-04`},{sessionId:`placeholder-3`,title:`Initial config`,duration:15,featured:!1,date:`2026-03-05`}]},{period:`Mar 10–14`,label:`Core Implementation`,sessions:[{sessionId:`placeholder-4`,title:`Data model & API design`,description:`Designed the schema and REST endpoints for the core domain.`,duration:210,featured:!0,skills:[`API Design`,`PostgreSQL`],date:`2026-03-10`},{sessionId:`placeholder-5`,title:`Frontend component library`,description:`Built reusable components following the design system.`,duration:180,featured:!0,skills:[`React`,`CSS`],date:`2026-03-12`}]}];function Gi(e){return e===0?`0`:e>=1e3?`${(e/1e3).toFixed(e%1e3==0?0:1)}k`:String(e)}function Ki(e){return e>=1e3?`+${(e/1e3).toFixed(e>=1e4?0:1)}k`:`+${e}`}function qi(e){if(e<=0)return[0];let t=e/4,n=10**Math.floor(Math.log10(t)),r=[1,2,2.5,5,10],i=n;for(let e of r)if(e*n>=t){i=e*n;break}let a=[];for(let t=0;t<=e+i*.1;t+=i)a.push(Math.round(t));return a[a.length-1]<e&&a.push(a[a.length-1]+Math.round(i)),a}var Ji=300*1e3,Yi=3600*1e3,Xi=600*1e3;function Zi(e,t,n,r){let i=e.map(e=>new Date(e.timestamp).getTime()).filter(e=>!isNaN(e)&&e>=t&&e<=n+Ji).sort((e,t)=>e-t);if(i.length===0)return[{time:n,locDelta:r*e.length}];let a=new Map;for(let e of i){let n=t+Math.floor((e-t)/Ji)*Ji;a.set(n,(a.get(n)??0)+1)}return Array.from(a.entries()).sort(([e],[t])=>e-t).map(([e,t])=>({time:e+Ji/2,locDelta:t*r}))}function Qi(e){let t=[...e].filter(e=>e.date).sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime());if(t.length===0)return{points:[],boundaries:[],totalVisualTime:0};let n=[],r=[],i=0;for(let e=0;e<t.length;e++){let a=t[e],o=new Date(a.date).getTime(),s=a.endTime?new Date(a.endTime).getTime():o+a.durationMinutes*60*1e3,c=Math.max(0,a.linesOfCode);if(r.push({realTime:o,title:a.title,sessionIndex:e}),n.push({realTime:o,cumulativeLoc:i,sessionIndex:e}),c===0){n.push({realTime:s,cumulativeLoc:i,sessionIndex:e});continue}let l=a.turnTimeline;if(!l||l.length===0){i+=c,n.push({realTime:s,cumulativeLoc:i,sessionIndex:e});continue}let u=l.filter(e=>e.type===`tool`&&e.tools&&e.tools.some(e=>/edit|write/i.test(e))),d=u.length>0?u:l.filter(e=>e.type===`tool`&&e.timestamp);if(d.length===0){i+=c,n.push({realTime:s,cumulativeLoc:i,sessionIndex:e});continue}let f=Zi(d,o,s,c/d.length);for(let t of f)i+=t.locDelta,n.push({realTime:t.time,cumulativeLoc:i,sessionIndex:e})}if(n.length===0)return{points:[],boundaries:[],totalVisualTime:0};let a=0,o=n[0].realTime,s=new Map;for(let e of n){let t=e.realTime-o;t>Yi?a+=Xi:a+=Math.max(0,t),s.set(e.realTime,a),o=e.realTime}return{points:n.map(e=>({visualTime:s.get(e.realTime)??0,cumulativeLoc:e.cumulativeLoc,sessionIndex:e.sessionIndex})),boundaries:r.map(e=>{let t=0,n=1/0;for(let[r,i]of s.entries()){let a=Math.abs(r-e.realTime);a<n&&(n=a,t=i)}return{visualTime:t,title:e.title,sessionIndex:e.sessionIndex}}),totalVisualTime:a}}function $i(e){if(e.length===0)return``;if(e.length===1)return`M${e[0].x.toFixed(1)},${e[0].y.toFixed(1)}`;if(e.length===2)return`M${e[0].x.toFixed(1)},${e[0].y.toFixed(1)} L${e[1].x.toFixed(1)},${e[1].y.toFixed(1)}`;let t=.3,n=`M${e[0].x.toFixed(1)},${e[0].y.toFixed(1)}`;for(let r=0;r<e.length-1;r++){let i=e[Math.max(0,r-1)],a=e[r],o=e[r+1],s=e[Math.min(e.length-1,r+2)],c=a.x+(o.x-i.x)*t,l=a.y+(o.y-i.y)*t,u=o.x-(s.x-a.x)*t,d=o.y-(s.y-a.y)*t;n+=` C${c.toFixed(1)},${l.toFixed(1)} ${u.toFixed(1)},${d.toFixed(1)} ${o.x.toFixed(1)},${o.y.toFixed(1)}`}return n}function ea(e,t=14){return e.length>t?e.slice(0,t-1)+`…`:e}function ta({sessions:e,totalLoc:t,totalFiles:n,onSessionClick:r}){if(e.length===0)return(0,F.jsxs)(`div`,{className:`growth-chart`,children:[(0,F.jsx)(`div`,{className:`growth-chart__svg-container`,children:(0,F.jsx)(`p`,{style:{color:`var(--on-surface-variant)`,fontFamily:`var(--font-mono)`,fontSize:`0.75rem`},children:`No session data available for growth chart.`})}),(0,F.jsxs)(`div`,{className:`growth-chart__summary`,children:[(0,F.jsx)(`div`,{className:`growth-chart__total-value`,children:`0`}),(0,F.jsx)(`div`,{className:`growth-chart__total-label`,children:`LINES OF CODE`})]})]});let i=e.filter(e=>e.date);if(i.length===0)return(0,F.jsxs)(`div`,{className:`growth-chart`,children:[(0,F.jsx)(`div`,{className:`growth-chart__svg-container`,children:(0,F.jsx)(`p`,{style:{color:`var(--on-surface-variant)`,fontFamily:`var(--font-mono)`,fontSize:`0.75rem`},children:`No dated sessions available for growth chart.`})}),(0,F.jsxs)(`div`,{className:`growth-chart__summary`,children:[(0,F.jsx)(`div`,{className:`growth-chart__total-value`,children:I(t)}),(0,F.jsx)(`div`,{className:`growth-chart__total-label`,children:`LINES OF CODE`})]})]});let a=[...i].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),{points:o,boundaries:s,totalVisualTime:c}=Qi(i);if(o.length===0)return(0,F.jsxs)(`div`,{className:`growth-chart`,children:[(0,F.jsx)(`div`,{className:`growth-chart__svg-container`,children:(0,F.jsx)(`p`,{style:{color:`var(--on-surface-variant)`,fontFamily:`var(--font-mono)`,fontSize:`0.75rem`},children:`No dated sessions available for growth chart.`})}),(0,F.jsxs)(`div`,{className:`growth-chart__summary`,children:[(0,F.jsx)(`div`,{className:`growth-chart__total-value`,children:I(t)}),(0,F.jsx)(`div`,{className:`growth-chart__total-label`,children:`LINES OF CODE`})]})]});let l=qi(Math.max(...o.map(e=>e.cumulativeLoc),1)),u=l[l.length-1]||1,d=Math.max(600,Math.round(c/6e4*.8)+120),f=d-48-16,p=c||1,m=e=>48+e/p*f,h=e=>212-e/u*180,g=o.map(e=>({x:m(e.visualTime),y:h(e.cumulativeLoc)})),_=$i(g),v=g[g.length-1],y=g[0],b=_+` L${v.x.toFixed(1)},${212 .toFixed(1)} L${y.x.toFixed(1)},${212 .toFixed(1)} Z`,x=s.filter((e,t)=>t===0||Math.abs(e.visualTime-s[t-1].visualTime)>.001),S=i.length,C=d>600;return(0,F.jsxs)(`div`,{className:`growth-chart`,children:[(0,F.jsx)(`div`,{className:`growth-chart__svg-container`,style:C?{overflowX:`auto`}:void 0,children:(0,F.jsxs)(`svg`,{viewBox:`0 0 ${d} 260`,width:C?d:`100%`,height:C?260:void 0,preserveAspectRatio:`xMidYMid meet`,role:`img`,"aria-label":`Growth chart showing cumulative lines of code across ${S} sessions`,children:[l.map(e=>(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`line`,{x1:48,y1:h(e),x2:d-16,y2:h(e),stroke:`var(--outline-variant)`,strokeWidth:`0.5`,strokeDasharray:`4,4`}),(0,F.jsx)(`text`,{x:40,y:h(e)+3,textAnchor:`end`,fontFamily:`var(--font-mono)`,fontSize:`9`,fill:`var(--on-surface-variant)`,children:Gi(e)})]},`y-${e}`)),x.map((e,t)=>{let n=r&&a[e.sessionIndex];return(0,F.jsxs)(`g`,{style:n?{cursor:`pointer`}:void 0,onClick:n?()=>r(a[e.sessionIndex]):void 0,children:[(0,F.jsx)(`line`,{x1:m(e.visualTime),y1:32,x2:m(e.visualTime),y2:212,stroke:`var(--outline-variant)`,strokeWidth:`0.5`,strokeDasharray:`3,3`}),(0,F.jsx)(`text`,{x:m(e.visualTime),y:228,textAnchor:`middle`,fontFamily:`var(--font-mono)`,fontSize:`8`,fill:n?`var(--primary)`:`var(--on-surface-variant)`,textDecoration:n?`underline`:void 0,children:ea(e.title)})]},`boundary-${t}`)}),(0,F.jsx)(`path`,{d:b,fill:`rgba(8,68,113,0.06)`}),(0,F.jsx)(`path`,{d:_,fill:`none`,stroke:`var(--primary)`,strokeWidth:`2`,strokeLinejoin:`round`,strokeLinecap:`round`}),x.map((e,t)=>{let n=o.filter(t=>t.sessionIndex===e.sessionIndex);if(n.length===0)return null;let r=n[n.length-1],i=n[0],a=r.cumulativeLoc-i.cumulativeLoc+(i===o[0]?i.cumulativeLoc:0);return(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`circle`,{cx:m(r.visualTime),cy:h(r.cumulativeLoc),r:`3`,fill:`var(--secondary)`}),a>0&&(0,F.jsx)(`text`,{x:m(r.visualTime),y:h(r.cumulativeLoc)-8,textAnchor:`middle`,fontFamily:`var(--font-mono)`,fontSize:`8`,fill:`var(--secondary)`,children:Ki(a)})]},`dot-${t}`)})]})}),(0,F.jsxs)(`div`,{className:`growth-chart__summary`,children:[(0,F.jsx)(`div`,{className:`growth-chart__total-value`,children:I(t)}),(0,F.jsx)(`div`,{className:`growth-chart__total-label`,children:`LINES OF CODE`}),(0,F.jsxs)(`div`,{className:`growth-chart__stat`,children:[(0,F.jsx)(`div`,{className:`growth-chart__stat-value`,children:n}),(0,F.jsx)(`div`,{className:`growth-chart__stat-label`,children:`FILES TOUCHED`})]}),(0,F.jsxs)(`div`,{className:`growth-chart__stat`,children:[(0,F.jsx)(`div`,{className:`growth-chart__stat-value`,children:S}),(0,F.jsx)(`div`,{className:`growth-chart__stat-label`,children:`SESSIONS`})]})]})]})}function na(e,t,n){if(n&&e.startsWith(n))return e.slice(n.length).replace(/^\//,``)||e;let r=t.replace(/^-/,`/`).replace(/-/g,`/`);return e.startsWith(r)&&e.slice(r.length).replace(/^\//,``)||e}function ra(e){let t=e.split(`/`).filter(Boolean);if(t.length<=1)return`/`;let n=Math.min(t.length-1,2);return t.slice(0,n).join(`/`)+`/`}function ia(e,t){let n=new Map,r=new Map,i=new Map;for(let a of e)if(a.filesChanged)for(let e of a.filesChanged){if(!e.path||typeof e.path!=`string`)continue;let o=e.editCount??e.additions+e.deletions,s=na(e.path,t,a.cwd),c=ra(s);n.has(c)||n.set(c,new Map);let l=n.get(c);l.set(a.id,(l.get(a.id)??0)+o),r.set(c,(r.get(c)??0)+o),i.set(s,(i.get(s)??0)+o)}let a=Array.from(r.entries()).sort((e,t)=>t[1]-e[1]).slice(0,10).map(([e])=>e),o=new Map,s=0;for(let t of a){let r=n.get(t);if(r)for(let n of e){let e=r.get(n.id)??0;o.set(`${t}|${n.id}`,e),e>s&&(s=e)}}let c=Array.from(i.entries()).map(([e,t])=>({path:e,editCount:t})).sort((e,t)=>t.editCount-e.editCount).slice(0,10);return{directories:a,grid:o,maxEdits:s,files:c,totalFiles:i.size}}function aa(e,t){return e===0?.02:t===0?.05:.05+e/t*.65}function oa(e,t=15){return e.length<=t?e:e.slice(0,t-1)+`…`}function sa({sessions:e,projectDirName:t}){let{directories:n,grid:r,maxEdits:i,files:a,totalFiles:o}=ia(e,t);if(n.length===0)return(0,F.jsxs)(`div`,{className:`dir-heatmap`,children:[(0,F.jsx)(`div`,{className:`project-preview__timeline-heading`,children:`EDIT HEATMAP BY DIRECTORY`}),(0,F.jsx)(`p`,{className:`dir-heatmap__empty`,children:`No file data available`})]});let s=e.length;return(0,F.jsxs)(`div`,{className:`dir-heatmap`,children:[(0,F.jsx)(`div`,{className:`project-preview__timeline-heading`,children:`EDIT HEATMAP BY DIRECTORY`}),(0,F.jsxs)(`div`,{className:`dir-heatmap__grid`,style:{gridTemplateColumns:`150px repeat(${s}, 1fr)`},role:`table`,"aria-label":`Directory edit heatmap`,children:[(0,F.jsx)(`div`,{className:`dir-heatmap__corner`,role:`columnheader`}),e.map(e=>(0,F.jsx)(`div`,{className:`dir-heatmap__session-label`,role:`columnheader`,title:e.title,children:oa(e.title)},e.id)),n.map(t=>(0,F.jsxs)(_.Fragment,{children:[(0,F.jsx)(`div`,{className:`dir-heatmap__dir-label`,role:`rowheader`,title:t,children:t}),e.map(e=>{let n=r.get(`${t}|${e.id}`)??0;return(0,F.jsx)(`div`,{className:`dir-heatmap__cell`,style:{background:`rgba(8,68,113,${aa(n,i)})`},role:`cell`,title:`${t} in ${e.title}: ${n} edits`,"aria-label":`${t} in ${e.title}: ${n} edits`},e.id)})]},t))]}),(0,F.jsxs)(`div`,{className:`dir-heatmap__legend`,"aria-hidden":`true`,children:[(0,F.jsx)(`span`,{children:`Intensity = edit count`}),(0,F.jsx)(`span`,{style:{display:`inline-block`,width:12,height:12,background:`rgba(8,68,113,0.05)`,borderRadius:2}}),(0,F.jsx)(`span`,{style:{display:`inline-block`,width:12,height:12,background:`rgba(8,68,113,0.35)`,borderRadius:2}}),(0,F.jsx)(`span`,{style:{display:`inline-block`,width:12,height:12,background:`rgba(8,68,113,0.7)`,borderRadius:2}}),(0,F.jsx)(`span`,{children:`low → high`})]}),(0,F.jsxs)(`details`,{className:`dir-heatmap__top-files`,children:[(0,F.jsxs)(`summary`,{className:`dir-heatmap__top-files-summary`,children:[`Top `,a.length,` most-edited files (of `,o,` total) →`]}),(0,F.jsx)(`div`,{role:`list`,"aria-label":`Most edited files`,children:a.map(e=>(0,F.jsxs)(`div`,{className:`dir-heatmap__file-row`,role:`listitem`,children:[(0,F.jsx)(`span`,{className:`dir-heatmap__file-path`,title:e.path,children:e.path}),(0,F.jsxs)(`span`,{className:`dir-heatmap__file-count`,children:[e.editCount,` edits`]})]},e.path))})]})]})}var z=[`var(--primary)`,`var(--secondary)`,`var(--tertiary)`];function ca({project:e,narrative:t,skills:n,timeline:r,selectedCount:i,sessions:a,repoUrl:o,projectUrl:s,onClose:c}){let[l,u]=(0,_.useState)(null);r.reduce((e,t)=>e+t.sessions.length,0);let d=a.length>0?Math.max(...a.map(e=>e.durationMinutes)):1;return(0,_.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!l&&c()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[c,l]),(0,F.jsxs)(`div`,{className:`project-preview`,role:`dialog`,"aria-label":`Project preview`,children:[(0,F.jsx)(`div`,{className:`project-preview__banner`,children:`Preview — this is how your project will appear on heyi.am`}),(0,F.jsx)(`button`,{className:`project-preview__close`,onClick:c,"aria-label":`Close preview`,children:`Close preview ×`}),(0,F.jsxs)(`div`,{className:`project-preview__content`,children:[(0,F.jsxs)(`div`,{className:`project-preview__breadcrumb`,children:[`ben / `,e.name]}),(0,F.jsx)(`h1`,{className:`project-preview__title`,children:e.name}),(o||s)&&(0,F.jsxs)(`div`,{className:`project-preview__links`,children:[o&&(0,F.jsxs)(`a`,{href:o,className:`project-preview__link`,target:`_blank`,rel:`noopener noreferrer`,children:[(0,F.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,children:(0,F.jsx)(`path`,{d:`M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z`})}),`Repo`]}),s&&(0,F.jsxs)(`a`,{href:s,className:`project-preview__link`,target:`_blank`,rel:`noopener noreferrer`,children:[(0,F.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 14 14`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,"aria-hidden":`true`,children:(0,F.jsx)(`path`,{d:`M5 1H2a1 1 0 00-1 1v10a1 1 0 001 1h10a1 1 0 001-1V9M8 1h5v5M13 1L6 8`,strokeLinecap:`round`,strokeLinejoin:`round`})}),`Live site`]})]}),t&&(0,F.jsx)(`div`,{className:`project-preview__narrative`,children:t}),n.length>0&&(0,F.jsx)(`div`,{className:`project-preview__skills`,children:n.map(e=>(0,F.jsx)(`span`,{className:`chip`,children:e},e))}),(0,F.jsx)(`div`,{className:`project-preview__screenshot`,children:(0,F.jsxs)(`div`,{className:`project-preview__screenshot-inner`,children:[(0,F.jsx)(`span`,{"aria-hidden":`true`,children:`📷`}),(0,F.jsx)(`span`,{children:`Project screenshot`})]})}),(0,F.jsxs)(`div`,{className:`project-preview__hero-stats`,children:[(0,F.jsxs)(`div`,{className:`project-preview__hero-stat`,children:[(0,F.jsx)(`div`,{className:`project-preview__hero-value project-preview__hero-value--primary`,children:Oi(e.totalDuration)}),(0,F.jsx)(`div`,{className:`project-preview__hero-label`,children:`Total Time`})]}),(0,F.jsxs)(`div`,{className:`project-preview__hero-stat`,children:[(0,F.jsxs)(`div`,{className:`project-preview__hero-value`,children:[e.sessionCount,` (`,i,`)`]}),(0,F.jsx)(`div`,{className:`project-preview__hero-label`,children:`Sessions`})]}),(0,F.jsxs)(`div`,{className:`project-preview__hero-stat`,children:[(0,F.jsx)(`div`,{className:`project-preview__hero-value`,children:I(e.totalLoc)}),(0,F.jsx)(`div`,{className:`project-preview__hero-label`,children:`LOC`})]}),(0,F.jsxs)(`div`,{className:`project-preview__hero-stat`,children:[(0,F.jsx)(`div`,{className:`project-preview__hero-value`,children:e.totalFiles}),(0,F.jsx)(`div`,{className:`project-preview__hero-label`,children:`Files`})]})]}),(0,F.jsx)(`div`,{className:`project-preview__timeline-heading`,children:`WORK TIMELINE`}),(0,F.jsx)($r,{sessions:a,onSessionClick:u}),(0,F.jsx)(`div`,{className:`project-preview__timeline-heading`,children:`PROJECT TIMELINE`}),(0,F.jsxs)(`div`,{className:`timeline`,children:[(0,F.jsx)(`div`,{className:`timeline__line`}),r.map((e,t)=>{let n=e.sessions.filter(e=>e.featured),r=e.sessions.filter(e=>!e.featured);return(0,F.jsxs)(`div`,{className:`timeline__period`,children:[(0,F.jsxs)(`div`,{className:`timeline__period-header`,children:[(0,F.jsx)(`span`,{className:`timeline__period-date`,children:e.period}),(0,F.jsx)(`span`,{className:`timeline__period-sep`,children:`—`}),(0,F.jsx)(`span`,{className:`timeline__period-label`,children:e.label})]}),n.map(e=>(0,F.jsxs)(`div`,{className:`timeline__featured`,children:[(0,F.jsx)(`div`,{className:`timeline__dot--large`}),(0,F.jsxs)(`div`,{className:`timeline__card`,style:{cursor:`pointer`},onClick:()=>{let t=a.find(t=>t.id===e.sessionId);t?u(t):document.getElementById(`session-${e.sessionId}`)?.scrollIntoView({behavior:`smooth`,block:`center`})},role:`button`,tabIndex:0,onKeyDown:t=>{if(t.key===`Enter`||t.key===` `){t.preventDefault();let n=a.find(t=>t.id===e.sessionId);n?u(n):document.getElementById(`session-${e.sessionId}`)?.scrollIntoView({behavior:`smooth`,block:`center`})}},children:[(0,F.jsxs)(`div`,{className:`timeline__card-header`,children:[(0,F.jsx)(`span`,{className:`timeline__card-title`,children:e.title}),e.tag&&(0,F.jsx)(`span`,{className:`timeline__card-tag`,children:e.tag})]}),(0,F.jsxs)(`div`,{className:`timeline__card-meta`,children:[(0,F.jsx)(`span`,{children:Oi(e.duration)}),e.date&&(0,F.jsx)(`span`,{children:ki(e.date)})]}),e.description&&(0,F.jsx)(`p`,{className:`timeline__card-desc`,children:e.description}),e.skills&&e.skills.length>0&&(0,F.jsx)(`div`,{className:`timeline__card-skills`,children:e.skills.map(e=>(0,F.jsx)(`span`,{className:`chip`,children:e},e))})]})]},e.sessionId)),r.length>0&&(0,F.jsxs)(`div`,{className:`timeline__collapsed`,children:[(0,F.jsx)(`div`,{className:`timeline__dot--small`}),(0,F.jsx)(Ui,{sessions:r})]})]},t)})]}),(0,F.jsx)(`div`,{className:`project-preview__timeline-heading`,children:`PROJECT GROWTH`}),(0,F.jsx)(ta,{sessions:a,totalLoc:e.totalLoc,totalFiles:e.totalFiles,onSessionClick:u}),(0,F.jsx)(sa,{sessions:a,projectDirName:e.dirName}),a.length>0&&(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`div`,{className:`project-preview__sessions-heading`,children:`PUBLISHED SESSIONS`}),(0,F.jsx)(`div`,{className:`project-preview__sessions-grid`,children:a.map((e,t)=>{let n=z[t%z.length],r=d>0?Math.max(20,Math.round(e.durationMinutes/d*100)):100,i=e.filesChanged?.length??0;return(0,F.jsxs)(`div`,{id:`session-${e.id}`,className:`project-preview__session-card project-preview__session-card--clickable`,onClick:()=>u(e),role:`button`,tabIndex:0,onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),u(e))},children:[(0,F.jsx)(`div`,{className:`project-preview__session-bar`,style:{width:`${r}%`,background:n}}),(0,F.jsx)(`h3`,{className:`project-preview__session-title`,children:e.title}),(0,F.jsxs)(`div`,{className:`project-preview__session-stats`,children:[Math.round(e.durationMinutes),` min`,` · `,e.turns,` turns`,i>0&&(0,F.jsxs)(F.Fragment,{children:[` · `,i,` files`]}),` · `,I(e.linesOfCode),` LOC`]}),e.skills&&e.skills.length>0&&(0,F.jsx)(`div`,{className:`project-preview__session-skills`,children:e.skills.map(e=>(0,F.jsx)(`span`,{className:`chip`,children:e},e))})]},e.id)})})]})]}),l&&(0,F.jsx)(Di,{session:l,projectName:e.name,projectDirName:e.dirName,onClose:()=>u(null)})]})}function la({project:e,narrative:t,selectedCount:n,skippedCount:r,skills:i,timeline:a,sessions:o,selectedIds:s,allSessions:c,repoUrl:l,onRepoUrlChange:u,projectUrl:d,onProjectUrlChange:f,onPublish:p,onSaveLocal:m,onBack:h}){let[g,v]=(0,_.useState)(!1),[y,b]=(0,_.useState)(!1),[x,S]=(0,_.useState)(null),[C,w]=(0,_.useState)(null),[T,E]=(0,_.useState)(new Map),[D,O]=(0,_.useState)(null),[k,ee]=(0,_.useState)(!1),[A,te]=(0,_.useState)(null),[ne,re]=(0,_.useState)(!1),ie=(0,_.useRef)(null),j=(0,_.useRef)(null),{refresh:M}=ur(),ae=`${e.sessionCount} (${n} published)`,oe=e.name.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``),se=(0,_.useCallback)(()=>{let n=c.filter(e=>!s.has(e.id)).map(e=>({title:e.title,duration:e.durationMinutes??0,loc:e.linesOfCode??0,reason:`Not selected`}));return{title:e.name,slug:oe,narrative:t,repoUrl:l,projectUrl:d,timeline:a,skills:i,totalSessions:e.sessionCount,totalLoc:e.totalLoc,totalDurationMinutes:e.totalDuration,totalFilesChanged:e.totalFiles,skippedSessions:n,selectedSessionIds:[...s]}},[e,oe,t,l,d,a,i,c,s]),ce=(0,_.useCallback)(async()=>{ee(!0);try{let e=await Yn();te({userCode:e.user_code,verificationUri:e.verification_uri,deviceCode:e.device_code}),re(!0);let t=(e.interval||5)*1e3;ie.current=setInterval(async()=>{try{(await Xn(e.device_code)).authenticated&&(ie.current&&clearInterval(ie.current),ie.current=null,re(!1),ee(!1),await M(),N())}catch{}},t)}catch(e){S(`Login failed: ${e.message}`)}},[M]),N=(0,_.useCallback)(t=>{b(!0),S(null),w(null),ee(!1);let n=se();t&&(n.selectedSessionIds=t),j.current?.abort(),j.current=nr(e.dirName,n,e=>{switch(e.type){case`session`:E(t=>{let n=new Map(t);return n.set(e.sessionId,{status:e.status===`publishing`?`publishing`:e.status,error:e.error}),n});break;case`done`:b(!1),e.failed>0?(w(`sessions`),O(e.projectUrl),S(`${e.failed} session${e.failed===1?``:`s`} failed to publish`)):(M(),p({url:e.projectUrl,publishedSessions:e.uploaded}));break;case`error`:b(!1),e.error===`AUTH_REQUIRED`?ce():(w(`project`),S(e.error));break}})},[se,e.dirName,p,M,ce]);return(0,_.useEffect)(()=>()=>{ie.current&&clearInterval(ie.current),j.current?.abort()},[]),(0,F.jsxs)(`div`,{className:`upload-flow`,children:[(0,F.jsx)(Mi,{current:`review`}),(0,F.jsxs)(`div`,{className:`upload-flow__scan-status`,children:[`✓ `,n,` sessions enhanced · Project narrative generated · Timeline built`]}),(0,F.jsx)(`h2`,{className:`upload-flow__title`,children:`Review your project`}),(0,F.jsxs)(`div`,{className:`review-card`,children:[(0,F.jsx)(`div`,{className:`upload-flow__label`,children:`PROJECT`}),(0,F.jsx)(`h3`,{className:`review-card__name`,children:e.name}),t&&(0,F.jsx)(`p`,{className:`review-card__narrative`,children:t}),(0,F.jsxs)(`div`,{className:`upload-flow__stat-grid`,children:[(0,F.jsx)(Pi,{label:`Sessions`,value:ae}),(0,F.jsx)(Pi,{label:`Total Time`,value:Oi(e.totalDuration)}),(0,F.jsx)(Pi,{label:`LOC`,value:I(e.totalLoc)}),(0,F.jsx)(Pi,{label:`Files`,value:String(e.totalFiles)})]}),(0,F.jsx)(`div`,{className:`review-card__skills`,children:i.map(e=>(0,F.jsx)(`span`,{className:`chip`,children:e},e))})]}),(0,F.jsx)(`button`,{className:`review-preview-link`,onClick:()=>v(!0),children:`Preview full project page →`}),g&&(0,F.jsx)(ca,{project:e,narrative:t,skills:i,timeline:a,selectedCount:n,sessions:o,repoUrl:l,projectUrl:d,onClose:()=>v(!1)}),(0,F.jsxs)(`div`,{className:`review-checklist`,children:[(0,F.jsx)(`div`,{className:`upload-flow__section-label`,style:{marginBottom:`var(--spacing-3)`},children:`What gets published`}),(0,F.jsxs)(`div`,{className:`review-checklist__item`,children:[(0,F.jsx)(`span`,{className:`review-checklist__icon review-checklist__icon--checked`,"aria-hidden":`true`,children:`✓`}),(0,F.jsx)(`span`,{children:`Project narrative and timeline`})]}),(0,F.jsxs)(`div`,{className:`review-checklist__item`,children:[(0,F.jsx)(`span`,{className:`review-checklist__icon review-checklist__icon--checked`,"aria-hidden":`true`,children:`✓`}),(0,F.jsxs)(`span`,{children:[n,` enhanced session case studies`]})]}),(0,F.jsxs)(`div`,{className:`review-checklist__item`,children:[(0,F.jsx)(`span`,{className:`review-checklist__icon review-checklist__icon--checked`,"aria-hidden":`true`,children:`✓`}),(0,F.jsx)(`span`,{children:`Aggregate stats from all sessions`})]}),(0,F.jsxs)(`div`,{className:`review-checklist__item`,children:[(0,F.jsx)(`span`,{className:`review-checklist__icon review-checklist__icon--checked`,"aria-hidden":`true`,children:`✓`}),(0,F.jsx)(`span`,{children:`Growth chart, heatmap, and top files`})]}),r>0&&(0,F.jsxs)(`div`,{className:`review-checklist__item review-checklist__item--skipped`,children:[(0,F.jsx)(`span`,{className:`review-checklist__icon review-checklist__icon--skipped`,"aria-hidden":`true`,children:`○`}),(0,F.jsxs)(`span`,{children:[r,` skipped sessions (metadata only)`]})]})]}),(0,F.jsxs)(`div`,{className:`review-details`,children:[(0,F.jsxs)(`div`,{className:`review-details__header`,children:[(0,F.jsx)(`div`,{className:`upload-flow__section-label`,style:{marginBottom:0},children:`Project details`}),(0,F.jsx)(`span`,{className:`review-details__optional`,children:`all optional`})]}),(0,F.jsxs)(`div`,{className:`review-field`,children:[(0,F.jsxs)(`label`,{className:`review-field__label`,htmlFor:`review-repo-url`,children:[`Repository URL`,l&&(0,F.jsx)(`span`,{className:`review-field__badge`,children:`✓ auto-detected`})]}),(0,F.jsx)(`input`,{id:`review-repo-url`,type:`url`,className:`review-field__input`,value:l,onChange:e=>u(e.target.value),placeholder:`https://github.com/...`})]}),(0,F.jsxs)(`div`,{className:`review-field`,children:[(0,F.jsx)(`label`,{className:`review-field__label`,htmlFor:`review-project-url`,children:`Project URL`}),(0,F.jsx)(`input`,{id:`review-project-url`,type:`url`,className:`review-field__input`,value:d,onChange:e=>f(e.target.value),placeholder:`Live site, docs, demo...`})]}),(0,F.jsxs)(`div`,{className:`review-field`,children:[(0,F.jsx)(`span`,{className:`review-field__label`,children:`Screenshot`}),(0,F.jsxs)(`div`,{className:`review-dropzone`,role:`button`,tabIndex:0,"aria-label":`Upload screenshot`,children:[(0,F.jsx)(`span`,{className:`review-dropzone__icon`,"aria-hidden":`true`,children:`📷`}),(0,F.jsx)(`span`,{className:`review-dropzone__text`,children:`Drop an image or click to upload`})]})]})]}),k&&(0,F.jsx)(`div`,{className:`review-auth`,children:(0,F.jsxs)(`div`,{className:`review-auth__card`,children:[(0,F.jsx)(`h3`,{className:`review-auth__title`,children:`Sign in to publish`}),A?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`p`,{className:`review-auth__instructions`,children:[`Open`,` `,(0,F.jsx)(`a`,{href:A.verificationUri,target:`_blank`,rel:`noopener noreferrer`,children:A.verificationUri}),` `,`and enter:`]}),(0,F.jsx)(`div`,{className:`review-auth__code`,children:A.userCode}),ne&&(0,F.jsx)(`p`,{className:`review-auth__polling`,children:`Waiting for authorization...`})]}):(0,F.jsx)(`p`,{className:`review-auth__polling`,children:`Starting login...`})]})}),y&&T.size>0&&(0,F.jsxs)(`div`,{className:`publish-progress`,children:[(0,F.jsx)(`div`,{className:`upload-flow__section-label`,style:{marginBottom:`var(--spacing-2)`},children:`Publishing sessions...`}),(0,F.jsx)(`div`,{className:`publish-progress__sessions`,children:Array.from(T.entries()).map(([e,t])=>{let n=o.find(t=>t.id===e);return(0,F.jsxs)(`div`,{className:`publish-progress__row`,children:[t.status===`published`?(0,F.jsx)(`span`,{className:`publish-error__icon--published`,children:`✓`}):t.status===`publishing`?(0,F.jsx)(`span`,{className:`enhance-feed-item__spinner`}):(0,F.jsx)(`span`,{className:`publish-error__icon--failed`,children:`✗`}),(0,F.jsx)(`span`,{children:n?.title??e})]},e)})})]}),x&&(0,F.jsxs)(`div`,{className:`publish-error`,children:[(0,F.jsx)(`div`,{className:`publish-error__message`,children:x}),C===`sessions`&&T.size>0&&(0,F.jsx)(`div`,{className:`publish-error__sessions`,children:Array.from(T.entries()).map(([e,t])=>{let n=o.find(t=>t.id===e);return(0,F.jsxs)(`div`,{className:`publish-error__session-row publish-error__session-row--${t.status}`,children:[(0,F.jsx)(`span`,{className:`publish-error__icon publish-error__icon--${t.status}`,children:t.status===`published`?`✓`:`✗`}),(0,F.jsx)(`span`,{className:`publish-error__session-title`,children:n?.title??e}),t.error&&(0,F.jsx)(`span`,{className:`publish-error__session-error`,children:t.error})]},e)})}),(0,F.jsxs)(`div`,{className:`publish-error__actions`,children:[C===`sessions`&&(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`button`,{className:`btn btn--secondary`,onClick:()=>{N(Array.from(T.entries()).filter(([,e])=>e.status===`failed`).map(([e])=>e))},children:`Retry failed sessions`}),D&&(0,F.jsx)(`button`,{className:`btn btn--primary`,onClick:()=>p({url:D,publishedSessions:Array.from(T.values()).filter(e=>e.status===`published`).length}),children:`Continue with published sessions`})]}),C===`project`&&(0,F.jsx)(`button`,{className:`btn btn--secondary`,onClick:()=>N(),children:`Retry`}),(0,F.jsx)(`button`,{className:`btn btn--secondary`,onClick:()=>{S(null),w(null)},children:`Dismiss`})]})]}),(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[(0,F.jsx)(`button`,{type:`button`,className:`btn btn--secondary btn--large`,onClick:h,disabled:y,children:`Back to timeline`}),(0,F.jsx)(`button`,{type:`button`,className:`btn btn--secondary btn--large`,onClick:m,disabled:y,children:`Save locally`}),(0,F.jsx)(`button`,{type:`button`,className:`btn btn--primary btn--large`,onClick:()=>N(),disabled:y||k,children:y?`Publishing...`:`Publish project →`})]})]})}function ua({project:e,narrative:t,selectedCount:n,publishedUrl:r,publishedSessions:i}){let a=rt(),[o,s]=(0,_.useState)(!1),c=!!r,l=r?r.startsWith(`/`)?`heyi.am${r}`:r:``,u=(0,_.useCallback)(()=>{l&&navigator.clipboard.writeText(`https://${l}`).then(()=>{s(!0),setTimeout(()=>s(!1),2e3)}).catch(()=>{})},[l]),d=(0,_.useCallback)(()=>{l&&window.open(`https://${l}`,`_blank`,`noopener`)},[l]),f=(0,_.useCallback)(()=>{if(!l)return;let e=l.split(`/`),t=e.length>=2?`https://${e[0]}/${e[1]}`:`https://${l}`;window.open(t,`_blank`,`noopener`)},[l]),p=new Date().toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`}),m=t.length>120?`${t.slice(0,117)}...`:t;return(0,F.jsxs)(`div`,{className:`upload-flow`,children:[(0,F.jsx)(Mi,{current:`done`}),(0,F.jsxs)(`div`,{className:`success-card`,children:[(0,F.jsx)(`div`,{className:`success-card__icon`,children:(0,F.jsxs)(`svg`,{width:`32`,height:`32`,viewBox:`0 0 32 32`,fill:`none`,children:[(0,F.jsx)(`circle`,{cx:`16`,cy:`16`,r:`16`,fill:`var(--success-bg, #dcfce7)`}),(0,F.jsx)(`path`,{d:`M10 16.5L14 20.5L22 12.5`,stroke:`var(--success-fg, #16a34a)`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`})]})}),(0,F.jsx)(`h2`,{className:`success-card__title`,children:c?`Project Published`:`Project Saved`}),(0,F.jsx)(`p`,{className:`success-card__subtitle`,children:c?`Your project is live on your portfolio with ${n} session case ${n===1?`study`:`studies`}.`:`Enhancement saved locally with ${n} session case ${n===1?`study`:`studies`}. You can preview or publish anytime.`}),(0,F.jsxs)(`div`,{className:`success-card__preview`,children:[(0,F.jsx)(`div`,{className:`success-card__preview-name`,children:e.name}),(0,F.jsx)(`div`,{className:`success-card__preview-narrative`,children:m}),(0,F.jsxs)(`div`,{className:`success-card__preview-stats`,children:[(0,F.jsxs)(`div`,{className:`success-card__preview-stat`,children:[(0,F.jsx)(`span`,{className:`success-card__preview-stat-value`,children:e.sessionCount}),(0,F.jsx)(`span`,{className:`success-card__preview-stat-label`,children:`Sessions`})]}),(0,F.jsxs)(`div`,{className:`success-card__preview-stat`,children:[(0,F.jsx)(`span`,{className:`success-card__preview-stat-value`,children:Oi(e.totalDuration)}),(0,F.jsx)(`span`,{className:`success-card__preview-stat-label`,children:`Time`})]}),(0,F.jsxs)(`div`,{className:`success-card__preview-stat`,children:[(0,F.jsx)(`span`,{className:`success-card__preview-stat-value`,children:I(e.totalLoc)}),(0,F.jsx)(`span`,{className:`success-card__preview-stat-label`,children:`LOC`})]}),(0,F.jsxs)(`div`,{className:`success-card__preview-stat`,children:[(0,F.jsx)(`span`,{className:`success-card__preview-stat-value`,children:n}),(0,F.jsx)(`span`,{className:`success-card__preview-stat-label`,children:c?`Published`:`Enhanced`})]})]})]}),c&&l&&(0,F.jsxs)(`div`,{className:`success-card__url-bar`,children:[(0,F.jsx)(`span`,{className:`success-card__url-text`,children:l}),(0,F.jsx)(`button`,{className:`success-card__url-copy`,onClick:u,children:o?`Copied`:`Copy`})]}),(0,F.jsxs)(`div`,{className:`success-card__meta`,children:[(0,F.jsx)(`span`,{className:`success-card__badge`,children:c?`Published`:`Saved locally`}),c&&i&&(0,F.jsxs)(`span`,{className:`success-card__meta-text`,children:[i,` sessions uploaded`]}),(0,F.jsx)(`span`,{className:`success-card__meta-text`,children:p})]}),(0,F.jsx)(`div`,{className:`success-card__actions`,children:c?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`button`,{type:`button`,className:`btn btn--primary btn--large`,onClick:d,children:`View Project Page`}),(0,F.jsx)(`button`,{type:`button`,className:`btn btn--secondary btn--large`,onClick:f,children:`View Portfolio`})]}):(0,F.jsx)(`button`,{type:`button`,className:`btn btn--primary btn--large`,onClick:()=>a(`/`),children:`Back to Projects`})})]})]})}function da(){let{dirName:e}=at(),[t,n]=jn(),r=rt(),{projects:i}=ar(),a=i.find(t=>t.dirName===e),[o,s]=(0,_.useState)(`overview`),c=(0,_.useCallback)(e=>{s(e),window.scrollTo(0,0)},[]),[l,u]=(0,_.useState)([]),[d,f]=(0,_.useState)(!0),[p,m]=(0,_.useState)(null),[h,g]=(0,_.useState)(new Set),[v,y]=(0,_.useState)(!1),[b,x]=(0,_.useState)([]),[S,C]=(0,_.useState)(null),w=(0,_.useRef)(null),[T,E]=(0,_.useState)(null),[D,O]=(0,_.useState)(null),[k,ee]=(0,_.useState)(``),[A,te]=(0,_.useState)(``),[ne,re]=(0,_.useState)(null),ie=D?.narrative??``,j=D?.skills??[],M=D?.timeline??[],ae=(0,_.useCallback)(()=>{l.length>0||!e||Wn(e).then(e=>{u(e),f(!1)}).catch(e=>{E(e.message),f(!1)})},[e,l.length]);(0,_.useEffect)(()=>{[`overview`,`triage`,`enhance`].includes(o)&&ae()},[o,ae]),(0,_.useEffect)(()=>{let r=t.get(`view`)||t.get(`preview`);!e||r!==`1`||Qn(e).then(e=>{e&&(O(e.result),g(new Set(e.selectedSessionIds)),c(`review`)),n({},{replace:!0})})},[e]);let oe=(0,_.useCallback)(()=>{e&&(y(!0),E(null),x([]),w.current=Kn(e,e=>{if(x(t=>[...t,e]),e.type===`error`){E(e.message),y(!1);return}if(e.type===`result`){let t={selected:e.selected,skipped:e.skipped,autoSelected:e.autoSelected,triageMethod:e.triageMethod};m(t);let n=new Set(t.selected.map(e=>e.sessionId));if(a?.publishedSessions)for(let e of a.publishedSessions)n.add(e);g(n),setTimeout(()=>{y(!1),t.autoSelected?(C(`All ${n.size} sessions selected (small project)`),c(`enhance`)):c(`triage`)},1200)}}))},[e]);(0,_.useEffect)(()=>()=>{w.current?.abort()},[]);let se=(0,_.useCallback)(e=>{O(e),e.questions.length>0?c(`questions`):c(`timeline`)},[]),ce=(0,_.useCallback)(()=>{c(`timeline`)},[]),N=(0,_.useCallback)(async t=>{if(!(!e||!D))try{let n=await er(e,D.narrative,D.timeline,t);O(e=>e&&{...e,narrative:n.narrative,timeline:n.timeline}),c(`timeline`)}catch(e){E(e.message)}},[e,D]),P=(0,_.useCallback)(e=>{g(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]);return a?(0,F.jsx)(fr,{title:`heyi.am`,onBack:()=>r(`/`),children:d&&o===`overview`?(0,F.jsx)(`div`,{className:`dashboard-loading`,children:`Loading sessions...`}):T&&o===`overview`?(0,F.jsx)(`div`,{className:`dashboard-error`,children:T}):o===`overview`?v?(0,F.jsx)(Ii,{events:b,dirName:e??``}):(0,F.jsx)(Ni,{project:a,sessions:l,onTriage:oe,onCancel:()=>r(`/`)}):o===`triage`&&p?(0,F.jsx)(Ri,{project:a,sessions:l,triageResult:p,selectedIds:h,onToggle:P,onEnhance:()=>c(`enhance`),onBack:()=>c(`overview`),publishedSessionIds:a.publishedSessions?new Set(a.publishedSessions):void 0}):o===`enhance`&&p?(0,F.jsxs)(F.Fragment,{children:[S&&(0,F.jsxs)(`div`,{className:`upload-flow__auto-select-banner`,children:[`✓ `,S]}),(0,F.jsx)(zi,{project:a,sessions:l,selectedIds:h,triageResult:p,onComplete:se,onBack:()=>c(`triage`)})]}):o===`questions`&&D?(0,F.jsx)(Vi,{enhanceResult:D,onSkip:ce,onWeave:N}):o===`timeline`?(0,F.jsx)(Hi,{project:a,timeline:M.length>0?M.map(e=>({...e,sessions:e.sessions.map(e=>({sessionId:e.sessionId,title:e.title,featured:e.featured,tag:e.tag,duration:l.find(t=>t.id===e.sessionId)?.durationMinutes??0,date:l.find(t=>t.id===e.sessionId)?.date}))})):Wi,onBack:()=>D?.questions.length?c(`questions`):c(`enhance`),onReview:()=>c(`review`)}):o===`review`?(0,F.jsx)(la,{project:a,narrative:ie,selectedCount:h.size,skippedCount:l.length-h.size,skills:j.length>0?j:a.skills,timeline:M.length>0?M.map(e=>({...e,sessions:e.sessions.map(e=>({sessionId:e.sessionId,title:e.title,description:e.description,featured:e.featured,tag:e.tag,skills:e.skills,duration:l.find(t=>t.id===e.sessionId)?.durationMinutes??0,date:l.find(t=>t.id===e.sessionId)?.date}))})):Wi,sessions:l.filter(e=>h.has(e.id)),selectedIds:h,allSessions:l,repoUrl:k,onRepoUrlChange:ee,projectUrl:A,onProjectUrlChange:te,onPublish:e=>{re(e),c(`done`)},onSaveLocal:async()=>{!e||!D||(await $n(e,[...h],D),re(null),c(`done`))},onBack:()=>c(`timeline`)}):o===`done`?(0,F.jsx)(ua,{project:a,narrative:ie,selectedCount:h.size,publishedUrl:ne?.url,publishedSessions:ne?.publishedSessions}):null}):(0,F.jsx)(fr,{title:`heyi.am`,onBack:()=>r(`/`),children:(0,F.jsx)(`div`,{className:`dashboard-error`,children:`Project not found`})})}function fa(){return(0,F.jsx)(bn,{children:(0,F.jsx)(dr,{children:(0,F.jsx)(sr,{children:(0,F.jsxs)(jt,{children:[(0,F.jsx)(kt,{path:`/`,element:(0,F.jsx)(Tr,{})}),(0,F.jsx)(kt,{path:`/settings`,element:(0,F.jsx)(gr,{})}),(0,F.jsx)(kt,{path:`/project/:dirName/upload`,element:(0,F.jsx)(da,{})})]})})})})}(0,g.createRoot)(document.getElementById(`root`)).render((0,F.jsx)(_.StrictMode,{children:(0,F.jsx)(fa,{})}));
14
+ `);i=o.pop()??``;for(let e of o){if(!e.startsWith(`data: `))continue;let t=e.slice(6).trim();if(t)try{n(JSON.parse(t))}catch{}}}}).catch(e=>{e.name!==`AbortError`&&(e instanceof tr?n({type:`error`,error:`AUTH_REQUIRED`}):n({type:`error`,error:e.message}))}),r}var rr=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),F=o(((e,t)=>{t.exports=rr()}))(),ir=(0,_.createContext)({projects:[],sessions:[],activeProject:null,loading:!0,loadingSessions:!1,error:null,selectProject:()=>{},updateSession:()=>{},refreshSessions:()=>{}});function ar(){return(0,_.useContext)(ir)}function or(e){return{name:e.name,dirName:e.dirName,sessionCount:e.sessionCount,description:e.description,totalLoc:e.totalLoc,totalDuration:e.totalDuration,totalFiles:e.totalFiles,skills:e.skills,dateRange:e.dateRange,lastSessionDate:e.lastSessionDate,isPublished:e.isPublished,publishedSessionCount:e.publishedSessionCount,publishedSessions:e.publishedSessions,enhancedAt:e.enhancedAt}}function sr({children:e}){let[t,n]=(0,_.useState)([]),[r,i]=(0,_.useState)([]),[a,o]=(0,_.useState)(null),[s,c]=(0,_.useState)(!0),[l,u]=(0,_.useState)(!1),[d,f]=(0,_.useState)(null);(0,_.useEffect)(()=>{let e=!1;return Un().then(t=>{e||(n(t.map(or)),c(!1))}).catch(t=>{e||(f(t instanceof Error?t.message:`Failed to load projects`),c(!1))}),()=>{e=!0}},[]),(0,_.useEffect)(()=>{if(!a)return;let e=!1;return u(!0),Wn(a).then(t=>{e||(i(t),u(!1))}).catch(()=>{e||(i([]),u(!1))}),()=>{e=!0}},[a]);let p=(0,_.useCallback)(e=>{o(e)},[]),m=(0,_.useCallback)((e,t)=>{i(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]),h=(0,_.useCallback)(()=>{a&&Wn(a).then(e=>i(e)).catch(()=>{})},[a]);return(0,F.jsx)(ir.Provider,{value:{projects:t,sessions:r,activeProject:a,loading:s,loadingSessions:l,error:d,selectProject:p,updateSession:m,refreshSessions:h},children:e})}var cr=()=>Promise.reject(Error(`AuthProvider not mounted`)),lr=(0,_.createContext)({authenticated:!1,loading:!0,login:cr,refresh:cr});function ur(){return(0,_.useContext)(lr)}function dr({children:e}){let[t,n]=(0,_.useState)({authenticated:!1,loading:!0}),r=(0,_.useCallback)(async()=>{try{let e=await Jn();n({authenticated:e.authenticated,username:e.username,loading:!1})}catch{n({authenticated:!1,loading:!1})}},[]),i=(0,_.useCallback)(async()=>await Yn(),[]);return(0,_.useEffect)(()=>{r()},[r]),(0,F.jsx)(lr.Provider,{value:{...t,login:i,refresh:r},children:e})}function fr({title:e,showSidebar:t=!1,sidebarContent:n,bottomBar:r,onBack:i,headerActions:a,children:o}){let s=ur(),c=rt();return(0,F.jsxs)(`div`,{className:`app-shell`,children:[(0,F.jsxs)(`header`,{className:`app-header`,role:`banner`,children:[(0,F.jsxs)(`div`,{className:`app-header__left`,children:[i!=null&&(0,F.jsx)(`button`,{className:`app-header__back`,onClick:i,"aria-label":`Go back`,type:`button`,children:(0,F.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,F.jsx)(`path`,{d:`M19 12H5`}),(0,F.jsx)(`path`,{d:`M12 19l-7-7 7-7`})]})}),(0,F.jsx)(`span`,{className:`app-header__logo`,"aria-label":`heyi.am home`,children:`heyi.am`}),e!=null&&e.length>0&&(0,F.jsx)(`span`,{className:`app-header__title`,children:e})]}),(0,F.jsxs)(`div`,{className:`app-header__right`,children:[a,(0,F.jsx)(`div`,{className:`app-header__auth-indicator`,children:(0,F.jsx)(`span`,{className:`app-header__auth-dot${s.authenticated?` app-header__auth-dot--connected`:``}`,"aria-label":s.authenticated?`Authenticated`:`Not authenticated`})}),(0,F.jsx)(`button`,{className:`app-header__icon-btn`,"aria-label":`Settings`,type:`button`,onClick:()=>c(`/settings`),children:(0,F.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,F.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`}),(0,F.jsx)(`path`,{d:`M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z`})]})})]})]}),(0,F.jsxs)(`div`,{className:`app-shell__body`,children:[t&&(0,F.jsx)(`aside`,{className:`app-sidebar`,role:`complementary`,children:n}),(0,F.jsxs)(`main`,{className:`app-main`,role:`main`,children:[o,r!=null&&(0,F.jsx)(`div`,{className:`app-bottom-bar`,children:(0,F.jsx)(`div`,{className:`app-bottom-bar__inner glass-panel`,children:r})})]})]})]})}var pr=`/api`;async function mr(){let e=await fetch(`${pr}/settings/api-key`);return e.ok?e.json():{hasKey:!1,maskedKey:null}}async function hr(e){let t=await fetch(`${pr}/settings/api-key`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({apiKey:e})});if(!t.ok)throw Error(`Failed to save API key`);return t.json()}function gr(){let e=rt(),[t,n]=(0,_.useState)(``),[r,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(null),[s,c]=(0,_.useState)(`idle`),[l,u]=(0,_.useState)(!1),[d,f]=(0,_.useState)(null),p=ur(),m=p.authenticated,h=p.username??``;(0,_.useEffect)(()=>{qn().then(o),mr().then(({hasKey:e,maskedKey:t})=>{u(e),f(t)})},[]);let g=async()=>{c(`saving`);try{let e=await hr(t);c(`saved`),u(!!t.trim()),f(t.trim()?`${t.trim().slice(0,7)}...${t.trim().slice(-4)}`:null),n(``),o({mode:e.mode,remaining:null}),setTimeout(()=>c(`idle`),2e3)}catch{c(`error`),setTimeout(()=>c(`idle`),2e3)}},v=async()=>{c(`saving`);try{let e=await hr(``);c(`saved`),u(!1),f(null),n(``),o({mode:e.mode,remaining:null}),setTimeout(()=>c(`idle`),2e3)}catch{c(`error`),setTimeout(()=>c(`idle`),2e3)}},y=a?.mode===`local`?`Local API key`:a?.mode===`proxy`?`heyi.am proxy`:`Not configured`,b=a?.mode===`local`||a?.mode===`proxy`?`badge--published`:`badge--draft`;return(0,F.jsx)(fr,{title:`Settings`,onBack:()=>e(`/`),children:(0,F.jsxs)(`div`,{className:`settings-page`,children:[(0,F.jsxs)(`section`,{className:`settings-section`,children:[(0,F.jsx)(`span`,{className:`label`,children:`AI Enhancement`}),(0,F.jsxs)(`div`,{className:`card`,children:[(0,F.jsxs)(`div`,{className:`settings-row`,children:[(0,F.jsx)(`span`,{className:`settings-row__label`,children:`Mode`}),(0,F.jsx)(`span`,{className:`badge ${b}`,children:y})]}),a?.mode===`proxy`&&a.remaining!=null&&(0,F.jsxs)(`div`,{className:`settings-row`,style:{marginTop:`var(--spacing-4)`},children:[(0,F.jsx)(`span`,{className:`settings-row__label`,children:`Usage`}),(0,F.jsxs)(`span`,{className:`settings-row__value`,children:[a.remaining,` remaining this month`]})]}),a?.mode===`none`&&(0,F.jsx)(`p`,{className:`settings-help`,style:{marginTop:`var(--spacing-4)`},children:`Log in or set ANTHROPIC_API_KEY to enable AI enhancement.`}),l&&d&&(0,F.jsxs)(`div`,{className:`settings-row`,style:{marginTop:`var(--spacing-4)`},children:[(0,F.jsx)(`span`,{className:`settings-row__label`,children:`API Key`}),(0,F.jsx)(`span`,{className:`settings-row__value`,children:d})]}),(0,F.jsxs)(`details`,{style:{marginTop:`var(--spacing-4)`},children:[(0,F.jsx)(`summary`,{className:`text-label`,style:{cursor:`pointer`},children:l?`Change API key`:`Use your own API key`}),(0,F.jsxs)(`div`,{className:`settings-input-group`,style:{marginTop:`var(--spacing-3)`},children:[(0,F.jsxs)(`div`,{className:`settings-input-wrapper`,children:[(0,F.jsx)(`input`,{id:`api-key-input`,className:`input`,type:r?`text`:`password`,value:t,onChange:e=>n(e.target.value),placeholder:`sk-ant-...`,autoComplete:`off`}),(0,F.jsx)(`button`,{className:`settings-input-toggle`,type:`button`,onClick:()=>i(e=>!e),"aria-label":r?`Hide API key`:`Show API key`,children:r?(0,F.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,F.jsx)(`path`,{d:`M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94`}),(0,F.jsx)(`path`,{d:`M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19`}),(0,F.jsx)(`path`,{d:`M1 1l22 22`}),(0,F.jsx)(`path`,{d:`M14.12 14.12a3 3 0 1 1-4.24-4.24`})]}):(0,F.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,F.jsx)(`path`,{d:`M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z`}),(0,F.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`})]})})]}),(0,F.jsxs)(`div`,{style:{display:`flex`,gap:`var(--spacing-2)`,marginTop:`var(--spacing-2)`},children:[(0,F.jsx)(`button`,{className:`btn btn-primary`,type:`button`,onClick:g,disabled:!t.trim()||s===`saving`,children:s===`saving`?`Saving...`:s===`saved`?`Saved`:`Save`}),l&&(0,F.jsx)(`button`,{className:`btn btn-secondary`,type:`button`,onClick:v,disabled:s===`saving`,children:`Remove`})]}),s===`error`&&(0,F.jsx)(`p`,{className:`settings-help`,style:{color:`var(--color-error, #e53e3e)`},children:`Failed to save. Try again.`}),(0,F.jsx)(`p`,{className:`settings-help`,children:`Saved to ~/.config/heyiam/settings.json. Uses your own Anthropic account.`})]})]})]})]}),(0,F.jsx)(`hr`,{className:`divider`}),(0,F.jsxs)(`section`,{className:`settings-section`,children:[(0,F.jsx)(`span`,{className:`label`,children:`Authentication`}),(0,F.jsxs)(`div`,{className:`card`,children:[(0,F.jsxs)(`div`,{className:`settings-row`,children:[(0,F.jsx)(`span`,{className:`settings-row__label`,children:`Status`}),m?(0,F.jsxs)(`span`,{className:`badge badge--published`,children:[`Connected `,h]}):(0,F.jsx)(`span`,{className:`badge badge--draft`,children:`Not connected`})]}),(0,F.jsxs)(`div`,{className:`settings-row`,style:{marginTop:`var(--spacing-4)`},children:[(0,F.jsx)(`span`,{className:`settings-row__label`,children:`Username`}),(0,F.jsx)(`span`,{className:`settings-row__value`,children:m?h:`—`})]}),(0,F.jsx)(`div`,{style:{marginTop:`var(--spacing-4)`},children:m?(0,F.jsx)(`button`,{className:`btn btn-secondary`,type:`button`,children:`Disconnect`}):(0,F.jsxs)(`div`,{className:`terminal`,style:{fontSize:`0.75rem`},children:[(0,F.jsx)(`span`,{className:`terminal__prompt`,children:`$ `}),`heyiam login`]})})]})]}),(0,F.jsx)(`hr`,{className:`divider`}),(0,F.jsxs)(`section`,{className:`settings-section`,children:[(0,F.jsx)(`span`,{className:`label`,children:`Machine Identity`}),(0,F.jsxs)(`div`,{className:`card`,children:[(0,F.jsxs)(`div`,{className:`settings-input-group`,children:[(0,F.jsx)(`span`,{className:`text-label`,children:`Machine Token`}),(0,F.jsx)(`div`,{className:`terminal`,style:{fontSize:`0.75rem`,padding:`var(--spacing-3)`},children:`ed25519:a4f2...8b3c`}),(0,F.jsx)(`p`,{className:`settings-help`,children:`Used for cryptographic signing of published sessions`})]}),(0,F.jsxs)(`div`,{className:`settings-row`,style:{marginTop:`var(--spacing-4)`},children:[(0,F.jsx)(`span`,{className:`settings-row__label`,children:`Token fingerprint`}),(0,F.jsx)(`span`,{className:`settings-row__value`,children:`SHA256:kR7x...Qm4w`})]})]})]})]})})}var _r=[`var(--primary)`,`var(--secondary)`,`var(--tertiary)`];function vr(e){if(e<60)return`${Math.round(e)}m`;let t=e/60;return t>=10?`${Math.round(t)}h`:`${t.toFixed(1)}h`}function yr(e){return e<1e3?String(e):`${(e/1e3).toFixed(1)}k`}function br(e){if(!e)return``;let[t,n]=e.split(`|`);if(!t||!n)return``;let r=new Date(t),i=new Date(n),a=e=>e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`}),o=i.getFullYear();return r.getMonth()===i.getMonth()&&r.getDate()===i.getDate()?`${a(r)}, ${o}`:`${a(r)}–${a(i)}, ${o}`}function xr(e){if(!e)return``;let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);return i<7?`${i}d ago`:`${Math.floor(i/7)}w ago`}function Sr({label:e,value:t}){return(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`project-card__stat-label`,children:e}),(0,F.jsx)(`div`,{className:`project-card__stat-value`,children:t})]})}function Cr({project:e,index:t}){let n=rt(),r=_r[t%_r.length],i=e.enhancedAt,a=`/project/${encodeURIComponent(e.dirName)}/upload`;return(0,F.jsxs)(`div`,{className:`project-card`,onClick:()=>n(i?`${a}?view=1`:a),role:`button`,tabIndex:0,onKeyDown:e=>{e.key===`Enter`&&n(i?`${a}?view=1`:a)},children:[(0,F.jsxs)(`div`,{className:`project-card__header`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`div`,{className:`project-card__title-row`,children:[(0,F.jsx)(`div`,{className:`project-card__dot`,style:{background:r}}),(0,F.jsx)(`h3`,{className:`project-card__name`,children:e.name}),e.isPublished&&(0,F.jsx)(`span`,{className:`project-card__badge project-card__badge--published`,children:`Published`}),i&&(0,F.jsx)(`span`,{className:`project-card__badge`,children:`Enhanced`})]}),e.description&&(0,F.jsx)(`p`,{className:`project-card__desc`,children:e.description}),(0,F.jsxs)(`div`,{className:`project-card__date`,children:[br(e.dateRange),e.lastSessionDate&&(0,F.jsxs)(`span`,{className:`project-card__date-ago`,children:[` · last session `,xr(e.lastSessionDate)]})]})]}),(0,F.jsxs)(`div`,{className:`project-card__actions`,children:[i&&(0,F.jsx)(`button`,{className:`btn btn--secondary project-card__upload-btn`,onClick:e=>{e.stopPropagation(),n(`${a}?view=1`)},children:`View`}),(0,F.jsxs)(`button`,{className:`btn btn--primary project-card__upload-btn`,onClick:e=>{e.stopPropagation(),n(a)},children:[e.isPublished?`Update Project`:i?`Re-enhance`:`Upload`,` →`]})]})]}),(0,F.jsxs)(`div`,{className:`project-card__stats`,children:[(0,F.jsx)(Sr,{label:`Sessions`,value:String(e.sessionCount)}),(0,F.jsx)(Sr,{label:`Time`,value:vr(e.totalDuration)}),(0,F.jsx)(Sr,{label:`LOC`,value:yr(e.totalLoc)}),(0,F.jsx)(Sr,{label:`Files`,value:String(e.totalFiles)})]}),e.skills.length>0&&(0,F.jsx)(`div`,{className:`project-card__skills`,children:e.skills.map(e=>(0,F.jsx)(`span`,{className:`skill-chip`,children:e},e))})]})}function wr(){return(0,F.jsxs)(`div`,{className:`empty-state`,children:[(0,F.jsx)(`div`,{className:`empty-state__icon`,children:`📄`}),(0,F.jsx)(`h2`,{className:`empty-state__title`,children:`No sessions found`}),(0,F.jsxs)(`p`,{className:`empty-state__text`,children:[`Claude Code sessions from `,(0,F.jsx)(`code`,{children:`~/.claude/projects`}),` will appear here.`]}),(0,F.jsx)(`div`,{className:`empty-state__hint`,children:(0,F.jsx)(`code`,{children:`$ claude # start a session first`})})]})}function Tr(){let{projects:e,loading:t,error:n}=ar(),r=rt(),[i,a]=(0,_.useState)(!0);return(0,_.useEffect)(()=>{qn().then(e=>{a(e.mode!==`none`)})},[]),(0,F.jsxs)(fr,{title:`heyi.am`,children:[!i&&(0,F.jsxs)(`div`,{className:`dashboard-banner`,children:[`No Anthropic API key configured.`,` `,(0,F.jsx)(`button`,{type:`button`,className:`dashboard-banner__link`,onClick:()=>r(`/settings`),children:`Add one in Settings`}),` `,`to enable AI enhancement.`]}),t?(0,F.jsx)(`div`,{className:`dashboard-loading`,children:`Loading projects...`}):n?(0,F.jsx)(`div`,{className:`dashboard-error`,children:n}):e.length===0?(0,F.jsx)(wr,{}):(0,F.jsxs)(`div`,{className:`dashboard`,children:[(0,F.jsx)(`h1`,{className:`dashboard__title`,children:`Your Projects`}),(0,F.jsx)(`p`,{className:`dashboard__subtitle`,children:`Pick a project to upload. The AI will read your sessions, pick the ones worth showcasing, and build the narrative for you.`}),(0,F.jsx)(`div`,{className:`dashboard__cards`,children:e.map((e,t)=>(0,F.jsx)(Cr,{project:e,index:t},e.dirName))})]})]})}var Er={main:`#084471`,orchestrator:`#084471`,"frontend-dev":`#7c3aed`,frontend:`#7c3aed`,"backend-dev":`#0891b2`,backend:`#0891b2`,"qa-engineer":`#059669`,qa:`#059669`,"ux-designer":`#d97706`,ux:`#d97706`,"product-manager":`#dc2626`,pm:`#dc2626`,"security-engineer":`#6b7280`,"team-lead":`#6b7280`,explore:`#94a3b8`},Dr=`#6b7280`,Or=`#084471`,kr=`'IBM Plex Mono', monospace`;function Ar(e){return e?Er[e.toLowerCase()]??Dr:Dr}function jr(e){return new Date(e.date).getTime()}function Mr(e){return e.endTime?new Date(e.endTime).getTime():jr(e)+e.durationMinutes*6e4}function Nr(e){let t=e/36e5;if(t<20)return`${Math.round(t)}h`;let n=Math.round(t/24);return n<1?`${Math.round(t)}h`:n===1?`1 day`:`${n} days`}function Pr(e){let t=new Date(e);return`${[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`][t.getMonth()]} ${t.getDate()}`}function Fr(e){let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}var Ir=60*6e4,Lr=56,Rr=5,zr=90;function Br(e){let t=[],n=null;for(let r of e){let e=jr(r),i=Mr(r);!n||e>=n.endMs?(n&&t.push(n),n={sessions:[r],startMs:e,endMs:i}):(n.sessions.push(r),i>n.endMs&&(n.endMs=i))}return n&&t.push(n),t}function Vr(e){if(e.length===0)return[];let t=Br([...e].sort((e,t)=>jr(e)-jr(t))),n=[];for(let e=0;e<t.length;e++){let r=t[e];if(e>0){let i=t[e-1].endMs,a=r.startMs-i;a>Ir&&n.push({type:`gap`,durationMs:a})}if(r.sessions.length===1){let e=r.sessions[0];n.push({type:`session`,session:e,startMs:r.startMs,endMs:r.endMs})}else n.push({type:`concurrent`,sessions:r.sessions,startMs:r.startMs,endMs:r.endMs})}return n}function Hr(e,t){let n=new Date(e),r=new Date(t);return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}var Ur=32,Wr=32,Gr=36,Kr=28,qr=24,Jr=24,Yr=18;function Xr(e){return e.childSessions&&e.childSessions.length>0?e.childSessions.length:e.children&&e.children.length>0?e.children.length:0}function Zr(e){return e.childSessions&&e.childSessions.length>0?e.childSessions.map(e=>({id:e.id,role:e.agentRole,durationMinutes:e.durationMinutes,linesOfCode:e.linesOfCode,date:e.date})):e.children&&e.children.length>0?e.children.map(e=>({id:e.sessionId,role:e.role,durationMinutes:e.durationMinutes??0,linesOfCode:e.linesOfCode??0,date:e.date})):[]}function Qr(e,t){let n=Math.floor(t/5.5);return e.length<=n?e:e.slice(0,Math.max(n-1,8))+`…`}function $r({sessions:e,onSessionClick:t}){let n=(0,_.useRef)(null),r=(0,_.useCallback)(e=>{n.current?.scrollBy({left:e,behavior:`smooth`})},[]);if(e.length===0)return(0,F.jsx)(`div`,{className:`work-timeline`,"data-testid":`work-timeline-empty`,children:(0,F.jsx)(`p`,{style:{fontFamily:kr,fontSize:`0.75rem`,color:`#6b7280`},children:`No sessions to display.`})});let i=Vr(e),a=0;for(let e of i)if(e.type===`gap`)a+=Lr;else{let t=(e.endMs-e.startMs)/6e4;a+=Math.max(t*Rr,zr)}let o=Ur+a+Wr,s=0;for(let e of i)if(e.type===`session`){let t=Xr(e.session);t>s&&(s=t)}else e.type===`concurrent`&&e.sessions.length>s&&(s=e.sessions.length);let c=s>0?s*qr+16:0,l=Math.max(48,c),u=Gr+l/2,d=Gr+l+Kr,f=i.filter(e=>e.type!==`gap`),p=f[0].startMs,m=f[f.length-1].endMs,h=Hr(p,m),g=[],v=Ur;for(let e of i)if(e.type===`gap`){let t=v,n=v+Lr;g.push({seg:e,x1:t,x2:n}),v=n}else{let t=(e.endMs-e.startMs)/6e4,n=Math.max(t*Rr,zr),r=v,i=v+n;g.push({seg:e,x1:r,x2:i}),v=i}let y=[];for(let e of g)e.seg.type!==`gap`&&y.push({label:h?Fr(e.seg.startMs):Pr(e.seg.startMs),x:e.x1});let b=[];for(let e of y){let t=b[b.length-1];(!t||e.x-t.x>70)&&b.push(e)}let x=o>800;return(0,F.jsxs)(`div`,{className:`work-timeline`,"data-testid":`work-timeline`,style:{position:`relative`},children:[x&&(0,F.jsxs)(`div`,{className:`work-timeline__scroll-controls`,children:[(0,F.jsx)(`button`,{type:`button`,className:`work-timeline__scroll-btn`,onClick:()=>r(-300),"aria-label":`Scroll left`,children:`←`}),(0,F.jsx)(`button`,{type:`button`,className:`work-timeline__scroll-btn`,onClick:()=>r(300),"aria-label":`Scroll right`,children:`→`})]}),(0,F.jsx)(`div`,{className:`work-timeline__container`,ref:n,style:{overflowX:`auto`,WebkitOverflowScrolling:`touch`,paddingBottom:`var(--spacing-2, 0.5rem)`},children:(0,F.jsxs)(`svg`,{viewBox:`0 0 ${o} ${d}`,xmlns:`http://www.w3.org/2000/svg`,role:`img`,"aria-label":`Work timeline showing ${e.length} sessions`,width:o,height:d,style:{display:`block`},children:[(0,F.jsx)(`line`,{x1:Ur,y1:d-Kr+4,x2:o-Wr,y2:d-Kr+4,stroke:`#e5e7eb`,strokeWidth:1,"data-testid":`axis-line`}),b.map((e,t)=>(0,F.jsxs)(`g`,{"data-testid":`axis-tick`,children:[(0,F.jsx)(`line`,{x1:e.x,y1:d-Kr+1,x2:e.x,y2:d-Kr+7,stroke:`#d1d5db`,strokeWidth:1}),(0,F.jsx)(`text`,{x:e.x,y:d-6,fontFamily:kr,fontSize:8,fill:`#9ca3af`,textAnchor:`start`,children:e.label})]},t)),g.map((e,n)=>{if(e.seg.type===`gap`)return(0,F.jsxs)(`g`,{"data-testid":`gap-segment`,children:[(0,F.jsx)(`line`,{x1:e.x1+4,y1:u,x2:e.x2-4,y2:u,stroke:`#d1d5db`,strokeWidth:1.5,strokeDasharray:`4,4`}),(0,F.jsx)(`text`,{x:(e.x1+e.x2)/2,y:u-8,fontFamily:kr,fontSize:8,fontStyle:`italic`,fill:`#9ca3af`,textAnchor:`middle`,"data-testid":`gap-label`,children:Nr(e.seg.durationMs)})]},`gap-${n}`);if(e.seg.type===`concurrent`)return(0,F.jsx)(ii,{x1:e.x1,x2:e.x2,mainY:u,sessions:e.seg.sessions,clusterStartMs:e.seg.startMs,clusterEndMs:e.seg.endMs,onSessionClick:t},`concurrent-${n}`);let r=e.seg.session,i=Zr(r),a=r.childCount??r.children?.length??0,o=i.length>0,s=o||a>0,c=`${r.durationMinutes}m`,l=[c,r.linesOfCode>0?`${r.linesOfCode} LOC`:``].filter(Boolean).join(` · `),d=o?i.length*qr/2+18:18;return(0,F.jsxs)(`g`,{"data-testid":`session-segment`,style:t?{cursor:`pointer`}:void 0,onClick:t?()=>t(r):void 0,role:t?`button`:void 0,tabIndex:t?0:void 0,onKeyDown:t?e=>{e.key===`Enter`&&t(r)}:void 0,"aria-label":`${r.title}, ${c}${a>0?`, ${a} agents`:``}`,children:[(0,F.jsx)(`text`,{x:e.x1+6,y:u-d,fontFamily:kr,fontSize:10,fontWeight:600,fill:`#191c1e`,"data-testid":`session-title`,children:Qr(r.title,e.x2-e.x1-12)}),(0,F.jsx)(`text`,{x:e.x1+6,y:u-d+12,fontFamily:kr,fontSize:8,fill:`#6b7280`,"data-testid":`session-subtitle`,children:l}),o?(0,F.jsx)(ni,{x1:e.x1,x2:e.x2,mainY:u,children:i}):s?(0,F.jsx)(ti,{x1:e.x1,x2:e.x2,mainY:u,agentCount:a}):(0,F.jsx)(ei,{x1:e.x1,x2:e.x2,mainY:u})]},`session-${n}`)})]})})]})}function ei({x1:e,x2:t,mainY:n}){return(0,F.jsxs)(`g`,{"data-testid":`single-bar`,children:[(0,F.jsx)(`circle`,{cx:e,cy:n,r:4,fill:`none`,stroke:Or,strokeWidth:1.5}),(0,F.jsx)(`line`,{x1:e,y1:n,x2:t,y2:n,stroke:Or,strokeWidth:2.5,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:t,cy:n,r:4,fill:Or})]})}function ti({x1:e,x2:t,mainY:n,agentCount:r}){return(0,F.jsxs)(`g`,{"data-testid":`thick-bar`,children:[(0,F.jsx)(`circle`,{cx:e,cy:n,r:4,fill:`none`,stroke:Or,strokeWidth:1.5}),(0,F.jsx)(`line`,{x1:e,y1:n,x2:t,y2:n,stroke:Or,strokeWidth:4.5,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:t,cy:n,r:4,fill:Or}),(0,F.jsxs)(`text`,{x:(e+t)/2,y:n+18,fontFamily:kr,fontSize:8,fill:`#6b7280`,textAnchor:`middle`,"data-testid":`agent-count-badge`,children:[`(`,r,` agents)`]})]})}function ni({x1:e,x2:t,mainY:n,children:r}){let i=[...r].sort((e,t)=>e.date&&t.date?new Date(e.date).getTime()-new Date(t.date).getTime():0),a=(i.length-1)*qr,o=e+Jr,s=t-Jr,c=o+Yr+4,l=s-Yr-4,u=Math.max(l-c,20),d=Math.max(...i.map(e=>e.durationMinutes),1);return(0,F.jsxs)(`g`,{"data-testid":`multi-agent-bar`,children:[(0,F.jsx)(`circle`,{cx:e,cy:n,r:4,fill:`none`,stroke:Or,strokeWidth:1.5}),(0,F.jsx)(`line`,{x1:e,y1:n,x2:o,y2:n,stroke:Or,strokeWidth:2.5,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:o,cy:n,r:4,fill:Or,"data-testid":`fork-dot`}),i.map((e,t)=>{let r=n-a/2+t*qr,i=Ar(e.role),l=Math.max(24,e.durationMinutes/d*u);return(0,F.jsxs)(`g`,{"data-testid":`child-lane`,children:[(0,F.jsx)(`path`,{d:`M${o},${n} C${o+Yr},${n} ${o+Yr},${r} ${c},${r}`,stroke:i,strokeWidth:1.5,fill:`none`,strokeDasharray:`4,3`}),(0,F.jsx)(`rect`,{x:c,y:r-10,rx:2,ry:2,width:l,height:20,fill:i,opacity:.06}),(0,F.jsx)(`line`,{x1:c,y1:r,x2:c+l,y2:r,stroke:i,strokeWidth:2.5,strokeLinecap:`round`}),(0,F.jsx)(`text`,{x:c+l+6,y:r+3,fontFamily:kr,fontSize:8,fill:i,fontWeight:600,"data-testid":`child-role-label`,children:(e.role??`agent`).toUpperCase()}),(0,F.jsx)(`path`,{d:`M${c+l},${r} C${s-Yr},${r} ${s-Yr},${n} ${s},${n}`,stroke:i,strokeWidth:1.5,fill:`none`,strokeDasharray:`4,3`})]},e.id||t)}),(0,F.jsx)(`circle`,{cx:s,cy:n,r:4,fill:Or,"data-testid":`join-dot`}),(0,F.jsx)(`line`,{x1:s,y1:n,x2:t,y2:n,stroke:Or,strokeWidth:2.5,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:t,cy:n,r:4,fill:Or})]})}var ri=[`#084471`,`#7c3aed`,`#0891b2`,`#059669`,`#d97706`,`#dc2626`];function ii({x1:e,x2:t,mainY:n,sessions:r,clusterStartMs:i,clusterEndMs:a,onSessionClick:o}){let s=[...r].sort((e,t)=>jr(e)-jr(t)),c=(s.length-1)*qr,l=e+12,u=t-12,d=u-l-Yr*2-8,f=a-i;return(0,F.jsxs)(`g`,{"data-testid":`concurrent-segment`,children:[(0,F.jsx)(`circle`,{cx:e,cy:n,r:4,fill:`none`,stroke:Or,strokeWidth:1.5}),(0,F.jsx)(`line`,{x1:e,y1:n,x2:l,y2:n,stroke:Or,strokeWidth:2.5,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:l,cy:n,r:4,fill:Or,"data-testid":`concurrent-fork`}),s.map((e,t)=>{let r=n-c/2+t*qr,a=ri[t%ri.length],s=jr(e),p=Mr(e),m=f>0?(s-i)/f:0,h=f>0?(p-i)/f:1,g=l+Yr+4+m*d,_=l+Yr+4+h*d,v=Math.max(_-g,20),y=[`${e.durationMinutes}m`,e.linesOfCode>0?`${e.linesOfCode} LOC`:``].filter(Boolean).join(` · `);return(0,F.jsxs)(`g`,{"data-testid":`concurrent-lane`,style:o?{cursor:`pointer`}:void 0,onClick:o?t=>{t.stopPropagation(),o(e)}:void 0,role:o?`button`:void 0,tabIndex:o?0:void 0,children:[(0,F.jsx)(`path`,{d:`M${l},${n} C${l+Yr},${n} ${l+Yr},${r} ${g},${r}`,stroke:a,strokeWidth:1.5,fill:`none`,strokeDasharray:`4,3`}),(0,F.jsx)(`rect`,{x:g,y:r-10,rx:2,ry:2,width:v,height:20,fill:a,opacity:.06}),(0,F.jsx)(`line`,{x1:g,y1:r,x2:g+v,y2:r,stroke:a,strokeWidth:2.5,strokeLinecap:`round`}),(0,F.jsx)(`text`,{x:g-4,y:r+3,fontFamily:kr,fontSize:8,fontWeight:600,fill:a,textAnchor:`end`,"data-testid":`concurrent-title`,children:e.title.length>30?e.title.slice(0,28)+`…`:e.title}),(0,F.jsx)(`text`,{x:g+v+6,y:r+3,fontFamily:kr,fontSize:7,fill:`#9ca3af`,children:y}),(0,F.jsx)(`path`,{d:`M${g+v},${r} C${u-Yr},${r} ${u-Yr},${n} ${u},${n}`,stroke:a,strokeWidth:1.5,fill:`none`,strokeDasharray:`4,3`})]},e.id||t)}),(0,F.jsx)(`circle`,{cx:u,cy:n,r:4,fill:Or,"data-testid":`concurrent-join`}),(0,F.jsx)(`line`,{x1:u,y1:n,x2:t,y2:n,stroke:Or,strokeWidth:2.5,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:t,cy:n,r:4,fill:Or})]})}var ai={main:`#084471`,orchestrator:`#084471`,"frontend-dev":`#7c3aed`,frontend:`#7c3aed`,"backend-dev":`#0891b2`,backend:`#0891b2`,"qa-engineer":`#059669`,qa:`#059669`,"ux-designer":`#d97706`,ux:`#d97706`,"product-manager":`#dc2626`,pm:`#dc2626`,"security-engineer":`#6b7280`,"team-lead":`#6b7280`,explore:`#94a3b8`},oi=`#6b7280`,si=`#084471`;function ci(e){return e?ai[e.toLowerCase()]??oi:oi}function li(e){if(e.length===0)return[];let t=[...e].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),n=[],r=[t[0]],i=new Date(t[0].date).getTime()+(t[0].wallClockMinutes??t[0].durationMinutes)*6e4;for(let e=1;e<t.length;e++){let a=new Date(t[e].date).getTime();if(a>=i)n.push({children:r}),r=[t[e]],i=a+(t[e].wallClockMinutes??t[e].durationMinutes)*6e4;else{r.push(t[e]);let n=a+(t[e].wallClockMinutes??t[e].durationMinutes)*6e4;n>i&&(i=n)}}return n.push({children:r}),n}function ui({session:e,variant:t}){let n=t===`compact`,r=e.childSessions??[];if(!(r.length>0))return(0,F.jsx)(di,{session:e,isCompact:n});let i=li(r),a=n?20:60,o=Math.max(...i.map(e=>e.children.length),1),s=n?12:25,c=n?30:80,l=n?30:80,u=n?20:50,d=n?30:60,f=n?80:200,p=n?0:100,m=s*2,h=i.flatMap(e=>e.children),g=Math.max(...h.map(e=>e.durationMinutes),1),_=c+i.map(e=>{let t=Math.max(...e.children.map(e=>e.durationMinutes),1);return m+Math.max(d,t/g*f)+p+m}).reduce((e,t)=>e+t,0)+(i.length-1)*u+l,v=Math.max(n?400:900,_),y=n?10:30,b=n?30:Math.max(80,o*a/2+30),x=n?Math.max(60,o*a+30):b+o*a/2+40,S=n?2.5:3,C=n?3.5:5,w=n?3:4,T=n?7:8.5,E=n?0:7.5,D=n?8:13,O=n?16:26,k=[],ee=y+c,A=new Date(e.date).getTime();for(let e=0;e<i.length;e++){let t=i[e],n=ee,r=Math.max(...t.children.map(e=>e.durationMinutes),1),o=Math.max(d,r/g*f),s=n+m,c=s+o+p+m,l=[...t.children].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),h=l.map((e,t)=>{let n=b-(l.length-1)*a/2+t*a,r=Math.max(d,e.durationMinutes/g*f),i=Math.round((new Date(e.date).getTime()-A)/6e4);return{child:e,y:n,x1:s,x2:s+r,color:ci(e.agentRole),offsetMinutes:i}});k.push({forkX:n,joinX:c,lanes:h}),ee=c+u}let te=v-y;return(0,F.jsx)(`div`,{style:{overflowX:`auto`,WebkitOverflowScrolling:`touch`},children:(0,F.jsxs)(`svg`,{viewBox:`0 0 ${v} ${x}`,xmlns:`http://www.w3.org/2000/svg`,role:`img`,"aria-label":`Multi-agent session timeline`,width:v,height:x,style:{display:`block`},children:[(0,F.jsx)(`circle`,{cx:y,cy:b,r:w,fill:`none`,stroke:si,strokeWidth:n?1.5:2}),(0,F.jsx)(`line`,{x1:y,y1:b,x2:k[0].forkX,y2:b,stroke:si,strokeWidth:S,strokeLinecap:`round`}),k.map((e,t)=>(0,F.jsxs)(`g`,{"data-testid":`wave`,children:[(0,F.jsx)(`circle`,{cx:e.forkX,cy:b,r:C,fill:si,"data-testid":`fork-circle`}),e.lanes.map((t,r)=>(0,F.jsx)(`path`,{d:`M${e.forkX},${b} C${e.forkX+s},${b} ${e.forkX+s},${t.y} ${t.x1},${t.y}`,stroke:t.color,strokeWidth:n?1.5:2,fill:`none`,strokeDasharray:n?`3,2`:`4,3`,"data-testid":`fork-line`},`f${r}`)),e.lanes.map((e,t)=>(0,F.jsxs)(`g`,{"data-testid":`agent-lane`,children:[(0,F.jsx)(`rect`,{x:e.x1,y:e.y-D,rx:2,ry:2,width:e.x2-e.x1,height:O,fill:e.color,opacity:.08}),(0,F.jsx)(`line`,{x1:e.x1,y1:e.y,x2:e.x2,y2:e.y,stroke:e.color,strokeWidth:S,strokeLinecap:`round`}),(0,F.jsx)(`text`,{x:e.x1-6,y:e.y+T/3,fontFamily:`var(--font-mono), 'IBM Plex Mono', monospace`,fontSize:T,fill:e.color,fontWeight:600,textAnchor:`end`,"data-testid":`role-label`,children:(e.child.agentRole??`agent`).toUpperCase()}),!n&&E>0&&(0,F.jsxs)(`text`,{x:e.x2+8,y:e.y+4,fontFamily:`var(--font-body), 'Inter', sans-serif`,fontSize:E,fill:`#6b7280`,children:[`+`,e.offsetMinutes,`m · `,e.child.linesOfCode>0?`${e.child.linesOfCode} LOC · `:``,e.child.durationMinutes,`m`]})]},`l${t}`)),e.lanes.map((t,r)=>(0,F.jsx)(`path`,{d:`M${t.x2},${t.y} C${t.x2+s},${t.y} ${e.joinX-s},${b} ${e.joinX},${b}`,stroke:t.color,strokeWidth:n?1.5:2,fill:`none`,strokeDasharray:n?`3,2`:`4,3`,"data-testid":`join-line`},`j${r}`)),(0,F.jsx)(`circle`,{cx:e.joinX,cy:b,r:C,fill:si,"data-testid":`join-circle`}),t<k.length-1&&(0,F.jsx)(`line`,{x1:e.joinX,y1:b,x2:k[t+1].forkX,y2:b,stroke:si,strokeWidth:S,strokeLinecap:`round`})]},t)),(0,F.jsx)(`line`,{x1:k[k.length-1].joinX,y1:b,x2:te,y2:b,stroke:si,strokeWidth:S,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:te,cy:b,r:w,fill:si})]})})}function di({session:e,isCompact:t}){let n=t?400:900,r=t?20:60,i=r,a=n-r,o=t?2.5:3,s=t?3:4,c=t?20:50,l=t?40:80,u=t?12:20,d=e.turns||0,f=Math.min(d,14),p=a-i,m=[];for(let e=0;e<f;e++){let t=(e+1)/(f+1),n=.15+(e*7+3)%5*.06;m.push({x:i+t*p,opacity:Math.min(n,.4)})}return(0,F.jsxs)(`svg`,{viewBox:`0 0 ${n} ${l}`,xmlns:`http://www.w3.org/2000/svg`,role:`img`,"aria-label":`Single agent session timeline`,style:{width:`100%`,display:`block`},children:[(0,F.jsx)(`line`,{x1:i,y1:c,x2:a,y2:c,stroke:si,strokeWidth:o,strokeLinecap:`round`}),(0,F.jsx)(`circle`,{cx:i,cy:c,r:s,fill:`none`,stroke:si,strokeWidth:t?1.5:2}),(0,F.jsx)(`circle`,{cx:a,cy:c,r:s,fill:si}),m.map((e,n)=>(0,F.jsx)(`rect`,{x:e.x,y:c-u/2,width:t?2:3,height:u,fill:si,opacity:e.opacity,rx:1,"data-testid":`activity-tick`},n))]})}function fi(e,t,n){if(n&&e.startsWith(n))return e.slice(n.length).replace(/^\//,``)||e;let r=t.replace(/^-/,`/`).replace(/-/g,`/`);return e.startsWith(r)&&e.slice(r.length).replace(/^\//,``)||e}function pi(e){if(e<60)return`${Math.round(e)}m`;let t=e/60;return t>=10?`${Math.round(t)}h`:`${t.toFixed(1)}h`}function mi(e){return e<1e3?String(e):`${(e/1e3).toFixed(1)}k`}function hi(e){return e?new Date(e).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`}):``}function gi(e){let t=`${e.title} ${e.description}`.toLowerCase();return/\b(decision|pivot|key|critical|important|breakthrough)\b/.test(t)}function _i({session:e}){let t=e.filesChanged?.length??0;return(0,F.jsxs)(`div`,{className:`session-detail__stats-grid`,children:[(0,F.jsxs)(`div`,{className:`session-detail__stat`,children:[(0,F.jsx)(`div`,{className:`session-detail__stat-value`,children:pi(e.durationMinutes)}),(0,F.jsx)(`div`,{className:`session-detail__stat-label`,children:`Duration`})]}),(0,F.jsxs)(`div`,{className:`session-detail__stat`,children:[(0,F.jsx)(`div`,{className:`session-detail__stat-value`,children:e.turns}),(0,F.jsx)(`div`,{className:`session-detail__stat-label`,children:`Turns`})]}),(0,F.jsxs)(`div`,{className:`session-detail__stat`,children:[(0,F.jsx)(`div`,{className:`session-detail__stat-value`,children:t}),(0,F.jsx)(`div`,{className:`session-detail__stat-label`,children:`Files`})]}),(0,F.jsxs)(`div`,{className:`session-detail__stat`,children:[(0,F.jsx)(`div`,{className:`session-detail__stat-value`,children:mi(e.linesOfCode)}),(0,F.jsx)(`div`,{className:`session-detail__stat-label`,children:`LOC Changed`})]})]})}function vi({take:e}){return(0,F.jsxs)(`section`,{className:`session-detail__section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`DEVELOPER TAKE`}),(0,F.jsx)(`blockquote`,{className:`session-detail__take`,children:e})]})}function yi({skills:e}){return(0,F.jsxs)(`section`,{className:`session-detail__section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`APPLIED SKILLS`}),(0,F.jsx)(`div`,{className:`session-detail__skills`,children:e.map(e=>(0,F.jsx)(`span`,{className:`chip`,children:e},e))})]})}function bi({pairs:e}){return(0,F.jsxs)(`section`,{className:`session-detail__section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`SESSION Q&A`}),(0,F.jsx)(`div`,{className:`session-detail__qa-list`,children:e.map((e,t)=>(0,F.jsxs)(`div`,{className:`session-detail__qa-pair`,children:[(0,F.jsx)(`div`,{className:`session-detail__qa-question`,children:e.question}),(0,F.jsx)(`div`,{className:`session-detail__qa-answer`,children:e.answer})]},t))})]})}function xi({steps:e}){return(0,F.jsxs)(`section`,{className:`session-detail__section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`HIGHLIGHTS`}),(0,F.jsx)(`div`,{className:`session-detail__highlights`,children:e.map(e=>(0,F.jsxs)(`div`,{className:`session-detail__highlight-card`,children:[(0,F.jsxs)(`div`,{className:`session-detail__highlight-step`,children:[`Step `,e.stepNumber]}),(0,F.jsx)(`div`,{className:`session-detail__highlight-title`,children:e.title}),(0,F.jsx)(`div`,{className:`session-detail__highlight-desc`,children:e.description})]},e.stepNumber))})]})}function Si({steps:e}){return(0,F.jsxs)(`section`,{className:`session-detail__sidebar-section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`EXECUTION PATH`}),(0,F.jsx)(`div`,{className:`session-detail__exec-path`,children:e.map(e=>(0,F.jsxs)(`div`,{className:`session-detail__exec-step`,children:[(0,F.jsx)(`div`,{className:`session-detail__exec-dot`}),(0,F.jsxs)(`div`,{className:`session-detail__exec-content`,children:[(0,F.jsx)(`div`,{className:`session-detail__exec-title`,children:e.title}),(0,F.jsx)(`div`,{className:`session-detail__exec-desc`,children:e.description})]})]},e.stepNumber))})]})}function Ci({lines:e}){let t=e.slice(0,4);return(0,F.jsxs)(`section`,{className:`session-detail__sidebar-section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`RAW LOG`}),(0,F.jsxs)(`div`,{className:`session-detail__raw-log`,children:[t.map((e,t)=>(0,F.jsx)(`div`,{className:`session-detail__raw-line`,children:e},t)),e.length>4&&(0,F.jsxs)(`div`,{className:`session-detail__raw-more`,children:[`View full transcript (`,e.length,` lines) →`]})]})]})}function wi({session:e,projectName:t}){return(0,F.jsxs)(`section`,{className:`session-detail__sidebar-section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`SOURCE INFO`}),(0,F.jsxs)(`div`,{className:`session-detail__source-list`,children:[(0,F.jsxs)(`div`,{className:`session-detail__source-row`,children:[(0,F.jsx)(`span`,{className:`session-detail__source-key`,children:`Source`}),(0,F.jsx)(`span`,{className:`session-detail__source-val`,children:`Claude Code`})]}),(0,F.jsxs)(`div`,{className:`session-detail__source-row`,children:[(0,F.jsx)(`span`,{className:`session-detail__source-key`,children:`Date`}),(0,F.jsx)(`span`,{className:`session-detail__source-val`,children:hi(e.date)})]}),(0,F.jsxs)(`div`,{className:`session-detail__source-row`,children:[(0,F.jsx)(`span`,{className:`session-detail__source-key`,children:`Project`}),(0,F.jsx)(`span`,{className:`session-detail__source-val`,children:t})]}),e.isOrchestrated&&(0,F.jsxs)(`div`,{className:`session-detail__source-row`,children:[(0,F.jsx)(`span`,{className:`session-detail__source-key`,children:`Type`}),(0,F.jsxs)(`span`,{className:`session-detail__source-val`,children:[`Orchestrated (`,e.childCount??e.childSessions?.length??0,` sub-sessions)`]})]})]})]})}function Ti({tools:e}){let t=e.length>0?Math.max(...e.map(e=>e.count)):1;return(0,F.jsxs)(`details`,{className:`session-detail__collapsible`,children:[(0,F.jsxs)(`summary`,{className:`session-detail__collapsible-summary`,children:[`Tool Breakdown (`,e.length,` tools)`]}),(0,F.jsx)(`div`,{className:`session-detail__tool-list`,children:e.map(e=>{let n=Math.max(8,Math.round(e.count/t*100));return(0,F.jsxs)(`div`,{className:`session-detail__tool-row`,children:[(0,F.jsx)(`span`,{className:`session-detail__tool-name`,children:e.tool}),(0,F.jsx)(`div`,{className:`session-detail__tool-bar-track`,children:(0,F.jsx)(`div`,{className:`session-detail__tool-bar`,style:{width:`${n}%`}})}),(0,F.jsx)(`span`,{className:`session-detail__tool-count`,children:e.count})]},e.tool)})})]})}function Ei({files:e,projectDirName:t,cwd:n}){return(0,F.jsxs)(`details`,{className:`session-detail__collapsible`,children:[(0,F.jsxs)(`summary`,{className:`session-detail__collapsible-summary`,children:[`Files Changed (`,e.length,` files)`]}),(0,F.jsx)(`div`,{className:`session-detail__file-list`,children:e.map(e=>(0,F.jsxs)(`div`,{className:`session-detail__file-row`,children:[(0,F.jsx)(`span`,{className:`session-detail__file-path`,children:fi(e.path,t,n)}),(0,F.jsxs)(`span`,{className:`session-detail__file-additions`,children:[`+`,e.additions]}),(0,F.jsxs)(`span`,{className:`session-detail__file-deletions`,children:[`-`,e.deletions]})]},e.path))})]})}function Di({session:e,projectName:t,projectDirName:n,onClose:r}){let i=(0,_.useCallback)(e=>{e.key===`Escape`&&r()},[r]);(0,_.useEffect)(()=>(document.addEventListener(`keydown`,i),()=>document.removeEventListener(`keydown`,i)),[i]);let a=(e.childCount??0)>0&&!e.childSessions?.length,[o,s]=(0,_.useState)(null),[c,l]=(0,_.useState)(a);(0,_.useEffect)(()=>{if(!a||!n){l(!1);return}let t=!1;return l(!0),Gn(n,e.id).then(e=>{t||s(e)}).catch(()=>{}).finally(()=>{t||l(!1)}),()=>{t=!0}},[a,n,e.id]);let u=o??e,d=(u.childSessions?.length??0)>0,f=(e.executionPath??[]).filter(gi),p=Array.isArray(e.qaPairs)&&e.qaPairs.length>0,m=Array.isArray(e.skills)&&e.skills.length>0,h=Array.isArray(e.executionPath)&&e.executionPath.length>0,g=Array.isArray(e.rawLog)&&e.rawLog.length>0,v=Array.isArray(e.toolBreakdown)&&e.toolBreakdown.length>0,y=Array.isArray(e.filesChanged)&&e.filesChanged.length>0;return(0,F.jsxs)(`div`,{className:`session-detail-overlay`,role:`dialog`,"aria-label":`Session detail: ${e.title}`,children:[(0,F.jsxs)(`div`,{className:`session-detail__header`,children:[(0,F.jsx)(`button`,{className:`session-detail__back`,onClick:r,type:`button`,children:`← Back to project`}),(0,F.jsx)(`button`,{className:`session-detail__close`,onClick:r,"aria-label":`Close session detail`,type:`button`,children:`×`})]}),(0,F.jsxs)(`div`,{className:`session-detail__scroll`,children:[(0,F.jsxs)(`div`,{className:`session-detail__layout`,children:[(0,F.jsxs)(`div`,{className:`session-detail__main`,children:[(0,F.jsxs)(`div`,{className:`session-detail__breadcrumb`,children:[t,` / `,e.title]}),(0,F.jsx)(`h1`,{className:`session-detail__title`,children:e.title}),(0,F.jsx)(_i,{session:e}),c&&(0,F.jsx)(`div`,{className:`session-detail__timeline-loading`,"aria-label":`Loading agent activity`,children:`Loading agent activity...`}),!c&&d&&(0,F.jsxs)(`section`,{className:`session-detail__section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`AGENT ACTIVITY`}),(0,F.jsx)(ui,{session:u,variant:`full`})]}),e.developerTake&&(0,F.jsx)(vi,{take:e.developerTake}),e.context&&(0,F.jsxs)(`section`,{className:`session-detail__section`,children:[(0,F.jsx)(`h2`,{className:`session-detail__section-label`,children:`CONTEXT`}),(0,F.jsx)(`p`,{className:`session-detail__context`,children:e.context})]}),m&&(0,F.jsx)(yi,{skills:e.skills}),p&&(0,F.jsx)(bi,{pairs:e.qaPairs}),f.length>0&&(0,F.jsx)(xi,{steps:f})]}),(0,F.jsxs)(`div`,{className:`session-detail__sidebar`,children:[h&&(0,F.jsx)(Si,{steps:e.executionPath}),g&&(0,F.jsx)(Ci,{lines:e.rawLog}),(0,F.jsx)(wi,{session:e,projectName:t})]})]}),(0,F.jsxs)(`div`,{className:`session-detail__full-width`,children:[v&&(0,F.jsx)(Ti,{tools:e.toolBreakdown}),y&&(0,F.jsx)(Ei,{files:e.filesChanged,projectDirName:n,cwd:e.cwd})]})]})]})}function Oi(e){if(e<60)return`${Math.round(e)}m`;let t=e/60;return t>=10?`${Math.round(t)}h`:`${t.toFixed(1)}h`}function I(e){return e<1e3?String(e):`${(e/1e3).toFixed(1)}k`}function ki(e){return e?new Date(e).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`}):``}function Ai(e){if(!e)return``;let[t,n]=e.split(`|`);if(!t||!n)return``;let r=new Date(t),i=new Date(n),a=e=>e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`}),o=i.getFullYear();return`${a(r)}\u2013${a(i)}, ${o}`}var ji=[`overview`,`triage`,`enhance`,`questions`,`timeline`,`review`,`done`];function Mi({current:e}){let t=ji.indexOf(e);return(0,F.jsx)(`div`,{className:`phase-bar`,children:ji.slice(0,-1).map((e,n)=>(0,F.jsx)(`div`,{className:`phase-bar__segment ${n<=t?`phase-bar__segment--active`:``}`},n))})}function Ni({project:e,sessions:t,onTriage:n,onCancel:r}){let i=[...t].sort((e,t)=>{let n=e.date?new Date(e.date).getTime():0;return(t.date?new Date(t.date).getTime():0)-n});return(0,F.jsxs)(`div`,{className:`upload-flow`,children:[(0,F.jsx)(`div`,{className:`upload-flow__label`,children:`Upload Project`}),(0,F.jsx)(`h2`,{className:`upload-flow__title`,children:e.name}),(0,F.jsx)(`div`,{className:`upload-flow__date`,children:Ai(e.dateRange)}),(0,F.jsxs)(`p`,{className:`upload-flow__desc`,children:[`The AI will scan all `,e.sessionCount,` sessions, pick the ones worth showcasing, and build a project narrative. Small or trivial sessions are skipped automatically.`]}),(0,F.jsxs)(`div`,{className:`upload-flow__stat-grid`,children:[(0,F.jsx)(Pi,{label:`Sessions`,value:String(e.sessionCount)}),(0,F.jsx)(Pi,{label:`Total Time`,value:Oi(e.totalDuration)}),(0,F.jsx)(Pi,{label:`LOC`,value:I(e.totalLoc)}),(0,F.jsx)(Pi,{label:`Files`,value:String(e.totalFiles)})]}),(0,F.jsxs)(`div`,{className:`upload-flow__section-label`,children:[`All Sessions (`,t.length,`)`]}),(0,F.jsxs)(`div`,{className:`session-table`,children:[(0,F.jsxs)(`div`,{className:`session-table__header`,children:[(0,F.jsx)(`span`,{children:`Session`}),(0,F.jsx)(`span`,{style:{textAlign:`right`},children:`Date`}),(0,F.jsx)(`span`,{style:{textAlign:`right`},children:`Time`}),(0,F.jsx)(`span`,{style:{textAlign:`right`},children:`LOC`}),(0,F.jsx)(`span`,{style:{textAlign:`right`},children:`Turns`})]}),(0,F.jsx)(`div`,{className:`session-table__body`,children:i.map(e=>(0,F.jsxs)(`div`,{className:`session-table__row`,children:[(0,F.jsx)(`span`,{className:`session-table__name`,children:e.title}),(0,F.jsx)(`span`,{className:`session-table__cell`,children:ki(e.date)}),(0,F.jsx)(`span`,{className:`session-table__cell`,children:Oi(e.durationMinutes)}),(0,F.jsx)(`span`,{className:`session-table__cell`,children:I(e.linesOfCode)}),(0,F.jsx)(`span`,{className:`session-table__cell`,children:e.turns})]},e.id))})]}),(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:r,children:`Cancel`}),(0,F.jsxs)(`button`,{className:`btn btn--primary btn--large`,onClick:n,children:[e.sessionCount<5?`Enhance all ${e.sessionCount} sessions`:`Let AI pick sessions`,` →`]})]})]})}function Pi({label:e,value:t}){return(0,F.jsxs)(`div`,{className:`stat-card`,children:[(0,F.jsx)(`div`,{className:`stat-card__label`,children:e}),(0,F.jsx)(`div`,{className:`stat-card__value`,children:t})]})}var Fi=[`◐`,`◑`,`◒`,`◓`];function L(){let[e,t]=(0,_.useState)(0);return(0,_.useEffect)(()=>{let e=setInterval(()=>t(e=>(e+1)%Fi.length),120);return()=>clearInterval(e)},[]),Fi[e]}function R(e,t){let n=[{id:`prompt`,text:`$ heyiam triage`,variant:`prompt`}],r=0,i=0,a=0,o=!1,s=!1,c=!1;for(let l of e)switch(l.type){case`scanning`:r=l.total,n.push({id:`scanning`,text:` Loading session stats... (${l.total} sessions)`,variant:`active`});break;case`loading_stats`:l.index;break;case`hard_floor`:{if(!o){let e=n.findIndex(e=>e.id===`scanning`);e!==-1&&(n[e]={id:`scanning-done`,text:` \u2713 Loaded ${r} sessions`,variant:`passed`}),n.push({id:`hf-header`,text:``,variant:`default`}),n.push({id:`hf-section`,text:` ── Hard floor filter ──`,variant:`section`}),o=!0}let e=l.sessionId.slice(0,8);l.passed?(i++,n.push({id:`hf-${l.sessionId}`,text:` \u2713 ${l.title||e} \u2192 passed`,variant:`passed`})):(a++,n.push({id:`hf-${l.sessionId}`,text:` \u2717 ${l.title||e} \u2192 skipped${l.reason?` (${l.reason})`:``}`,variant:`skipped`}));break}case`extracting_signals`:{s||=(o&&n.push({id:`hf-summary`,text:` \u2713 ${i} passed, ${a} filtered`,variant:`passed`}),n.push({id:`sig-header`,text:``,variant:`default`}),n.push({id:`sig-section`,text:` ── Signal extraction ──`,variant:`section`}),!0);let e=l.sessionId.slice(0,8);n.push({id:`sig-${l.sessionId}`,text:` ${t} Scanning ${l.title||e}...`,variant:`active`});break}case`signals_done`:{let e=n.findIndex(e=>e.id===`sig-${l.sessionId}`);if(e!==-1){let t=l.sessionId.slice(0,8);n[e]={id:`sig-done-${l.sessionId}`,text:` \u2713 ${t}: signals extracted`,variant:`passed`}}break}case`llm_ranking`:c||=(n.push({id:`rank-header`,text:``,variant:`default`}),n.push({id:`rank-section`,text:` ── AI ranking ──`,variant:`section`}),!0),n.push({id:`llm-ranking`,text:` ${t} Sending ${l.sessionCount} sessions to AI...`,variant:`active`});break;case`scoring_fallback`:c||=(n.push({id:`rank-header`,text:``,variant:`default`}),n.push({id:`rank-section`,text:` ── Scoring ──`,variant:`section`}),!0),n.push({id:`scoring-fallback`,text:` ${t} Scoring ${l.sessionCount} sessions...`,variant:`active`});break;case`done`:let e=n.findIndex(e=>e.id===`llm-ranking`||e.id===`scoring-fallback`);e!==-1&&(n[e]={id:`rank-done`,text:` \u2713 AI selected ${l.selected} sessions`,variant:`passed`});break;case`result`:break}return n}function Ii({events:e,dirName:t}){let n=L(),r=(0,_.useRef)(null),i=R(e,n);return(0,_.useEffect)(()=>{r.current&&(r.current.scrollTop=r.current.scrollHeight)},[i.length]),(0,F.jsx)(`div`,{className:`triage-terminal`,role:`log`,"aria-live":`polite`,"aria-label":`Triage progress`,children:(0,F.jsx)(`div`,{className:`triage-terminal__feed`,ref:r,children:i.map(e=>(0,F.jsx)(`div`,{className:`triage-terminal__line${e.variant===`prompt`?` triage-terminal__prompt`:e.variant===`section`?` triage-terminal__section`:e.variant===`passed`?` triage-terminal__line--passed`:e.variant===`skipped`?` triage-terminal__line--skipped`:e.variant===`active`?` triage-terminal__line--active`:``}`,children:e.text},e.id))})})}function Li({sessionId:e,title:t,stats:n,reason:r,variant:i,checked:a,onToggle:o,dimTitle:s,previouslyPublished:c}){let[l,u]=(0,_.useState)(!1),d=r.length>(i===`selected`?60:40),f=i===`selected`?r.length>60?r.slice(0,57)+`...`:r:r.length>40?r.slice(0,37)+`...`:r;return(0,F.jsxs)(`div`,{className:`triage-item ${a?`triage-item--selected`:`triage-item--skipped`}`,children:[(0,F.jsx)(`input`,{type:`checkbox`,checked:a,onChange:o,className:`triage-item__checkbox`}),(0,F.jsxs)(`div`,{className:`triage-item__info`,children:[(0,F.jsxs)(`div`,{className:`triage-item__name`,style:s?{color:`var(--on-surface-variant)`}:void 0,children:[t,c&&(0,F.jsx)(`span`,{className:`triage-item__published-badge`,children:`previously published`})]}),(0,F.jsx)(`div`,{className:`triage-item__stats`,children:n})]}),(0,F.jsx)(`div`,{className:`triage-item__reason triage-item__reason--${i} ${d?`triage-item__reason--expandable`:``}`,onClick:d?()=>u(!l):void 0,role:d?`button`:void 0,tabIndex:d?0:void 0,onKeyDown:d?e=>{e.key===`Enter`&&u(!l)}:void 0,children:l?r:f})]})}function Ri({project:e,sessions:t,triageResult:n,selectedIds:r,onToggle:i,onEnhance:a,onBack:o,publishedSessionIds:s}){let c=new Map(t.map(e=>[e.id,e])),l=r.size,u=t.length-l;return(0,F.jsxs)(`div`,{className:`upload-flow`,children:[(0,F.jsx)(Mi,{current:`triage`}),(0,F.jsxs)(`div`,{className:`upload-flow__scan-status`,children:[`✓ Scanned `,t.length,` sessions · `,Oi(e.totalDuration),` · `,I(e.totalLoc),` LOC`]}),(0,F.jsxs)(`h2`,{className:`upload-flow__title`,children:[`AI selected `,l,` sessions to showcase`]}),(0,F.jsxs)(`p`,{className:`upload-flow__desc`,children:[`Skipped `,u,` sessions that were too small, purely mechanical, or redundant. You can override any selection.`]}),n.triageMethod===`scoring`&&(0,F.jsxs)(`div`,{className:`triage-method-banner`,children:[(0,F.jsx)(`span`,{className:`triage-method-banner__icon`,"aria-hidden":`true`,children:`ⓘ`}),(0,F.jsx)(`span`,{children:`Sessions selected by signal analysis (no API key configured). `}),(0,F.jsx)(`a`,{href:`/settings`,className:`triage-method-banner__link`,children:`Go to Settings`})]}),(0,F.jsxs)(`div`,{className:`upload-flow__section-label upload-flow__section-label--selected`,children:[`✓ Selected for showcase (`,l,`)`]}),(0,F.jsx)(`div`,{className:`triage-list`,children:n.selected.map(e=>{let t=c.get(e.sessionId),n=r.has(e.sessionId);return(0,F.jsx)(Li,{sessionId:e.sessionId,title:t?.title??e.sessionId,stats:t?`${Oi(t.durationMinutes)} \u00b7 ${I(t.linesOfCode)} LOC \u00b7 ${t.turns} turns`:``,reason:e.reason,variant:`selected`,checked:n,onToggle:()=>i(e.sessionId),previouslyPublished:s?.has(e.sessionId)},e.sessionId)})}),(0,F.jsxs)(`details`,{className:`triage-skipped`,children:[(0,F.jsxs)(`summary`,{className:`triage-skipped__summary`,children:[(0,F.jsx)(`span`,{children:`▶`}),` Skipped (`,n.skipped.length,`) — click to override`]}),(0,F.jsx)(`div`,{className:`triage-list`,style:{marginTop:`var(--spacing-3)`},children:n.skipped.map(e=>{let t=c.get(e.sessionId),n=r.has(e.sessionId);return(0,F.jsx)(Li,{sessionId:e.sessionId,title:t?.title??e.sessionId,stats:t?`${Oi(t.durationMinutes)} \u00b7 ${I(t.linesOfCode)} LOC \u00b7 ${t.turns} turns`:``,reason:e.reason,variant:`skipped`,checked:n,onToggle:()=>i(e.sessionId),dimTitle:!n,previouslyPublished:s?.has(e.sessionId)},e.sessionId)})})]}),(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:o,children:`Back`}),(0,F.jsx)(`button`,{className:`btn btn--primary btn--large`,onClick:a,disabled:l===0,children:`Enhance project →`})]})]})}function zi({project:e,sessions:t,selectedIds:n,triageResult:r,onComplete:i,onBack:a}){let o=new Map(t.map(e=>[e.id,e])),[s,c]=(0,_.useState)(()=>{let e=r.selected.filter(e=>n.has(e.sessionId)),t=r.skipped.filter(e=>n.has(e.sessionId));return[...e,...t].map(e=>({sessionId:e.sessionId,title:o.get(e.sessionId)?.title??e.sessionId,status:`pending`}))}),[l,u]=(0,_.useState)(`waiting`),[d,f]=(0,_.useState)(null),[p,m]=(0,_.useState)([]),[h,g]=(0,_.useState)(``),[v,y]=(0,_.useState)(null),[b,x]=(0,_.useState)(null),[S,C]=(0,_.useState)(!1),w=(0,_.useRef)(null),T=(0,_.useRef)(null),E=(0,_.useCallback)(t=>{if(!e.dirName)return;t&&(x(null),f(null),u(`waiting`),g(``),m([]),y(null),c(e=>e.map(e=>({...e,status:`pending`}))));let i=r.skipped.filter(e=>!n.has(e.sessionId)).map(e=>{let t=o.get(e.sessionId);return{title:t?.title??e.sessionId,duration:t?.durationMinutes??0,loc:t?.linesOfCode??0}}),a=Zn(e.dirName,Array.from(n),i,e=>{switch(e.type){case`session_progress`:c(t=>t.map(t=>t.sessionId===e.sessionId?{...t,status:e.status,title:e.title||t.title,detail:e.detail}:t)),(e.status===`done`||e.status===`skipped`)&&e.skills&&m(t=>{let n=new Set(t);for(let t of e.skills)n.add(t);return[...n]});break;case`project_enhance`:u(`generating`);break;case`narrative_chunk`:g(t=>t+e.text);break;case`cached`:x(e.enhancedAt),c(e=>e.map(e=>({...e,status:`done`}))),u(`done`);break;case`done`:u(`done`),f(e.result);break;case`error`:y(e.message);break}},t);return w.current=a,a},[e.dirName,n,r,o]);(0,_.useEffect)(()=>{let e=E(S);return()=>e?.abort()},[S]);let D=s.filter(e=>e.status!==`pending`).length;(0,_.useEffect)(()=>{if(!T.current||D===0)return;let e=T.current.querySelectorAll(`.enhance-feed-item:not(.enhance-feed-item--pending)`),t=e[e.length-1];t&&t.scrollIntoView({block:`nearest`,behavior:`smooth`})},[D]);let O=d!==null,k=d?.skills??p,ee=s.filter(e=>e.status===`failed`),A=s.filter(e=>e.status===`done`||e.status===`skipped`),te=s.every(e=>e.status!==`pending`&&e.status!==`enhancing`),ne=ee.length>0,re=A.length>0,ie=(0,_.useCallback)(()=>{c(e=>e.map(e=>e.status===`failed`?{...e,status:`pending`,detail:void 0}:e)),y(null),w.current?.abort(),C(e=>!e)},[]),j=(0,_.useCallback)(()=>{i({narrative:``,arc:[],skills:p,timeline:[],questions:[]})},[p,i]);return(0,F.jsxs)(`div`,{className:`enhance-split`,children:[(0,F.jsxs)(`div`,{className:`enhance-split__left`,children:[(0,F.jsx)(`div`,{className:`enhance-split__left-header`,children:`Session Processing`}),(0,F.jsx)(`div`,{className:`enhance-split__feed`,ref:T,children:s.map(e=>(0,F.jsxs)(`div`,{className:`enhance-feed-item ${e.status===`pending`?`enhance-feed-item--pending`:``} ${e.status===`failed`?`enhance-feed-item--failed`:``}`,children:[(0,F.jsxs)(`div`,{className:`enhance-feed-item__row`,children:[e.status===`done`||e.status===`skipped`?(0,F.jsx)(`span`,{className:`enhance-feed-item__check`,children:`✓`}):e.status===`failed`?(0,F.jsx)(`span`,{className:`enhance-feed-item__fail`,children:`✗`}):e.status===`enhancing`?(0,F.jsx)(`span`,{className:`enhance-feed-item__spinner`}):(0,F.jsx)(`span`,{className:`enhance-feed-item__circle`,children:`◯`}),(0,F.jsx)(`span`,{className:`enhance-feed-item__title ${e.status===`enhancing`?`enhance-feed-item__title--active`:``} ${e.status===`failed`?`enhance-feed-item__title--failed`:``}`,children:e.title})]}),e.detail&&e.status!==`pending`&&(0,F.jsx)(`div`,{className:`enhance-feed-item__detail ${e.status===`failed`?`enhance-feed-item__detail--failed`:``}`,children:e.detail})]},e.sessionId))}),(0,F.jsxs)(`div`,{className:`enhance-split__narrative-box`,children:[(0,F.jsx)(`div`,{className:`enhance-split__narrative-label`,children:`PROJECT NARRATIVE`}),(0,F.jsx)(`div`,{className:`enhance-split__narrative-status`,children:b&&l===`done`?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`span`,{className:`enhance-feed-item__check`,children:`✓`}),(0,F.jsxs)(`span`,{children:[`Loaded from cache (`,new Date(b).toLocaleDateString(),`)`]})]}):l===`done`?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`span`,{className:`enhance-feed-item__check`,children:`✓`}),(0,F.jsx)(`span`,{children:`Project story complete`})]}):l===`generating`?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`span`,{className:`enhance-split__blink-dot`}),(0,F.jsxs)(`span`,{children:[`Building project story from `,n.size,` sessions...`]})]}):(0,F.jsx)(`span`,{children:`Waiting for session processing...`})})]})]}),(0,F.jsxs)(`div`,{className:`enhance-split__right`,children:[(0,F.jsx)(Mi,{current:`enhance`}),v?(0,F.jsxs)(`div`,{className:`enhance-error`,style:{marginTop:`var(--spacing-4)`},children:[(0,F.jsx)(`div`,{className:`enhance-error__message`,children:v}),(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:a,children:`Back`}),(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:ie,children:`Retry`}),re&&(0,F.jsx)(`button`,{className:`btn btn--primary btn--large`,onClick:j,children:`Publish without narrative`})]})]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`div`,{className:`upload-flow__label`,children:`Project Story`}),(0,F.jsx)(`h2`,{className:`upload-flow__title`,children:e.name}),!h&&!d?.narrative&&(0,F.jsxs)(`div`,{className:`enhance-split__narrative-placeholder`,children:[(0,F.jsx)(`span`,{className:`enhance-split__blink-dot`}),(0,F.jsx)(`span`,{children:l===`generating`?`Writing project narrative...`:`Analyzing sessions — narrative will appear here...`})]}),(h||d?.narrative)&&(0,F.jsxs)(`div`,{className:`enhance-split__narrative-text`,children:[d?.narrative??h,l===`generating`&&(0,F.jsx)(`span`,{className:`typewriter-cursor`,"aria-hidden":`true`})]}),k.length>0&&(0,F.jsx)(`div`,{className:`enhance-split__skills`,children:k.map(e=>(0,F.jsx)(`span`,{className:`chip`,children:e},e))}),d?.arc&&d.arc.length>0&&(()=>{let e=d.arc;return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`div`,{className:`upload-flow__section-label`,style:{marginTop:`var(--spacing-6)`},children:`Project Arc`}),(0,F.jsx)(`div`,{className:`enhance-split__arc`,children:e.map((t,n)=>(0,F.jsxs)(`div`,{className:`enhance-split__arc-item ${!O&&n===e.length-1?`enhance-split__arc-item--generating`:``}`,children:[(0,F.jsx)(`div`,{className:`enhance-split__arc-num`,children:String(t.phase).padStart(2,`0`)}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`enhance-split__arc-title`,children:t.title}),(0,F.jsx)(`div`,{className:`enhance-split__arc-desc`,children:t.description})]})]},n))})]})})(),te&&ne&&!O&&(0,F.jsxs)(`div`,{className:`enhance-split__failure-recovery`,children:[(0,F.jsxs)(`p`,{className:`enhance-split__failure-text`,children:[ee.length,` session`,ee.length===1?``:`s`,` failed to enhance.`]}),(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:ie,children:`Retry failed`}),re&&(0,F.jsxs)(`button`,{className:`btn btn--primary btn--large`,onClick:j,children:[`Continue with `,A.length,` successful →`]})]})]}),O&&(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[b&&(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:()=>{w.current?.abort(),C(!0)},children:`Re-enhance`}),(0,F.jsxs)(`button`,{className:`btn btn--primary btn--large`,onClick:()=>i(d),children:[d.questions.length>0?`Answer a few questions`:`Continue`,` →`]})]})]})]})]})}var Bi={pattern:`Pattern detected`,architecture:`Architecture`,evolution:`Evolution`};function Vi({enhanceResult:e,onSkip:t,onWeave:n}){let[r,i]=(0,_.useState)(new Map),[a,o]=(0,_.useState)(!1),s=(0,_.useCallback)((e,t)=>{i(n=>{let r=new Map(n);return r.set(e,t),r})},[]),c=Array.from(r.values()).some(e=>e.trim().length>0),l=(0,_.useCallback)(()=>{let t=e.questions.filter(e=>(r.get(e.id)??``).trim().length>0).map(e=>({questionId:e.id,question:e.question,answer:r.get(e.id).trim()}));o(!0),n(t)},[r,e.questions,n]);return(0,F.jsxs)(`div`,{className:`upload-flow`,children:[(0,F.jsx)(Mi,{current:`questions`}),(0,F.jsxs)(`div`,{className:`upload-flow__scan-status`,children:[`✓ `,e.timeline.reduce((e,t)=>e+t.sessions.length,0),` sessions enhanced · Project narrative generated`]}),(0,F.jsx)(`h2`,{className:`upload-flow__title`,children:`A few things we noticed`}),(0,F.jsx)(`p`,{className:`upload-flow__desc`,children:`Your answers get woven into the narrative. Skip any you don't want to answer.`}),(0,F.jsx)(`div`,{className:`questions-list`,children:e.questions.map(e=>(0,F.jsxs)(`div`,{className:`question-card`,children:[(0,F.jsx)(`div`,{className:`question-card__tag-row`,children:(0,F.jsx)(`span`,{className:`question-card__tag question-card__tag--${e.category}`,children:Bi[e.category]??e.category})}),(0,F.jsx)(`div`,{className:`question-card__text`,children:e.question}),(0,F.jsx)(`textarea`,{className:`question-card__textarea`,value:r.get(e.id)??``,onChange:t=>s(e.id,t.target.value),placeholder:e.context||``,rows:3})]},e.id))}),(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:t,disabled:a,children:`Skip questions`}),(0,F.jsx)(`button`,{className:`btn btn--primary btn--large`,onClick:l,disabled:!c||a,children:a?`Weaving...`:`Weave into narrative →`})]})]})}function Hi({project:e,timeline:t,onBack:n,onReview:r}){let i=t.reduce((e,t)=>e+t.sessions.length,0);return(0,F.jsxs)(`div`,{className:`upload-flow`,children:[(0,F.jsx)(Mi,{current:`timeline`}),(0,F.jsx)(`div`,{className:`upload-flow__label`,children:`Project Timeline`}),(0,F.jsxs)(`h2`,{className:`upload-flow__title`,children:[e.name,` `,(0,F.jsxs)(`span`,{style:{fontWeight:400,fontSize:`1rem`,color:`var(--on-surface-variant)`},children:[i,` sessions`]})]}),(0,F.jsx)(`p`,{className:`upload-flow__desc`,children:e.description}),(0,F.jsxs)(`div`,{className:`timeline`,children:[(0,F.jsx)(`div`,{className:`timeline__line`}),t.map((e,t)=>{let n=e.sessions.filter(e=>e.featured),r=e.sessions.filter(e=>!e.featured);return(0,F.jsxs)(`div`,{className:`timeline__period`,children:[(0,F.jsxs)(`div`,{className:`timeline__period-header`,children:[(0,F.jsx)(`span`,{className:`timeline__period-date`,children:e.period}),(0,F.jsx)(`span`,{className:`timeline__period-sep`,children:`—`}),(0,F.jsx)(`span`,{className:`timeline__period-label`,children:e.label})]}),n.map(e=>(0,F.jsxs)(`div`,{className:`timeline__featured`,children:[(0,F.jsx)(`div`,{className:`timeline__dot--large`}),(0,F.jsxs)(`div`,{className:`timeline__card`,children:[(0,F.jsxs)(`div`,{className:`timeline__card-header`,children:[(0,F.jsx)(`span`,{className:`timeline__card-title`,children:e.title}),e.tag&&(0,F.jsx)(`span`,{className:`timeline__card-tag`,children:e.tag})]}),(0,F.jsxs)(`div`,{className:`timeline__card-meta`,children:[(0,F.jsx)(`span`,{children:Oi(e.duration)}),e.date&&(0,F.jsx)(`span`,{children:ki(e.date)})]}),e.description&&(0,F.jsx)(`p`,{className:`timeline__card-desc`,children:e.description}),e.skills&&e.skills.length>0&&(0,F.jsx)(`div`,{className:`timeline__card-skills`,children:e.skills.map(e=>(0,F.jsx)(`span`,{className:`chip`,children:e},e))})]})]},e.sessionId)),r.length>0&&(0,F.jsxs)(`div`,{className:`timeline__collapsed`,children:[(0,F.jsx)(`div`,{className:`timeline__dot--small`}),(0,F.jsx)(Ui,{sessions:r})]})]},t)})]}),(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[(0,F.jsx)(`button`,{className:`btn btn--secondary btn--large`,onClick:n,children:`Back`}),(0,F.jsx)(`button`,{className:`btn btn--primary btn--large`,onClick:r,children:`Review & publish →`})]})]})}function Ui({sessions:e}){let t=e.map(e=>e.title.toLowerCase()).join(`, `),n=e.filter(e=>e.date).map(e=>e.date).sort(),r=n.length>=2?`${ki(n[0])} \u2013 ${ki(n[n.length-1])}`:n.length===1?ki(n[0]):``;return(0,F.jsxs)(`span`,{className:`timeline__collapsed-text`,children:[e.length,` smaller session`,e.length===1?``:`s`,` — `,t,r&&(0,F.jsxs)(F.Fragment,{children:[` · `,r]})]})}var Wi=[{period:`Mar 3–7`,label:`Foundation`,sessions:[{sessionId:`placeholder-1`,title:`Project scaffolding & architecture`,description:`Set up the monorepo structure, CI pipeline, and core abstractions.`,duration:145,featured:!0,tag:`KEY DECISION`,skills:[`Architecture`,`CI/CD`],date:`2026-03-03`},{sessionId:`placeholder-2`,title:`Dependency setup`,duration:30,featured:!1,date:`2026-03-04`},{sessionId:`placeholder-3`,title:`Initial config`,duration:15,featured:!1,date:`2026-03-05`}]},{period:`Mar 10–14`,label:`Core Implementation`,sessions:[{sessionId:`placeholder-4`,title:`Data model & API design`,description:`Designed the schema and REST endpoints for the core domain.`,duration:210,featured:!0,skills:[`API Design`,`PostgreSQL`],date:`2026-03-10`},{sessionId:`placeholder-5`,title:`Frontend component library`,description:`Built reusable components following the design system.`,duration:180,featured:!0,skills:[`React`,`CSS`],date:`2026-03-12`}]}];function Gi(e){return e===0?`0`:e>=1e3?`${(e/1e3).toFixed(e%1e3==0?0:1)}k`:String(e)}function Ki(e){return e>=1e3?`+${(e/1e3).toFixed(e>=1e4?0:1)}k`:`+${e}`}function qi(e){if(e<=0)return[0];let t=e/4,n=10**Math.floor(Math.log10(t)),r=[1,2,2.5,5,10],i=n;for(let e of r)if(e*n>=t){i=e*n;break}let a=[];for(let t=0;t<=e+i*.1;t+=i)a.push(Math.round(t));return a[a.length-1]<e&&a.push(a[a.length-1]+Math.round(i)),a}var Ji=300*1e3,Yi=3600*1e3,Xi=600*1e3;function Zi(e,t,n,r){let i=e.map(e=>new Date(e.timestamp).getTime()).filter(e=>!isNaN(e)&&e>=t&&e<=n+Ji).sort((e,t)=>e-t);if(i.length===0)return[{time:n,locDelta:r*e.length}];let a=new Map;for(let e of i){let n=t+Math.floor((e-t)/Ji)*Ji;a.set(n,(a.get(n)??0)+1)}return Array.from(a.entries()).sort(([e],[t])=>e-t).map(([e,t])=>({time:e+Ji/2,locDelta:t*r}))}function Qi(e){let t=[...e].filter(e=>e.date).sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime());if(t.length===0)return{points:[],boundaries:[],totalVisualTime:0};let n=[],r=[],i=0;for(let e=0;e<t.length;e++){let a=t[e],o=new Date(a.date).getTime(),s=a.endTime?new Date(a.endTime).getTime():o+a.durationMinutes*60*1e3,c=Math.max(0,a.linesOfCode);if(r.push({realTime:o,title:a.title,sessionIndex:e}),n.push({realTime:o,cumulativeLoc:i,sessionIndex:e}),c===0){n.push({realTime:s,cumulativeLoc:i,sessionIndex:e});continue}let l=a.turnTimeline;if(!l||l.length===0){i+=c,n.push({realTime:s,cumulativeLoc:i,sessionIndex:e});continue}let u=l.filter(e=>e.type===`tool`&&e.tools&&e.tools.some(e=>/edit|write/i.test(e))),d=u.length>0?u:l.filter(e=>e.type===`tool`&&e.timestamp);if(d.length===0){i+=c,n.push({realTime:s,cumulativeLoc:i,sessionIndex:e});continue}let f=Zi(d,o,s,c/d.length);for(let t of f)i+=t.locDelta,n.push({realTime:t.time,cumulativeLoc:i,sessionIndex:e})}if(n.length===0)return{points:[],boundaries:[],totalVisualTime:0};let a=0,o=n[0].realTime,s=new Map;for(let e of n){let t=e.realTime-o;t>Yi?a+=Xi:a+=Math.max(0,t),s.set(e.realTime,a),o=e.realTime}return{points:n.map(e=>({visualTime:s.get(e.realTime)??0,cumulativeLoc:e.cumulativeLoc,sessionIndex:e.sessionIndex})),boundaries:r.map(e=>{let t=0,n=1/0;for(let[r,i]of s.entries()){let a=Math.abs(r-e.realTime);a<n&&(n=a,t=i)}return{visualTime:t,title:e.title,sessionIndex:e.sessionIndex}}),totalVisualTime:a}}function $i(e){if(e.length===0)return``;if(e.length===1)return`M${e[0].x.toFixed(1)},${e[0].y.toFixed(1)}`;if(e.length===2)return`M${e[0].x.toFixed(1)},${e[0].y.toFixed(1)} L${e[1].x.toFixed(1)},${e[1].y.toFixed(1)}`;let t=.3,n=`M${e[0].x.toFixed(1)},${e[0].y.toFixed(1)}`;for(let r=0;r<e.length-1;r++){let i=e[Math.max(0,r-1)],a=e[r],o=e[r+1],s=e[Math.min(e.length-1,r+2)],c=a.x+(o.x-i.x)*t,l=a.y+(o.y-i.y)*t,u=o.x-(s.x-a.x)*t,d=o.y-(s.y-a.y)*t;n+=` C${c.toFixed(1)},${l.toFixed(1)} ${u.toFixed(1)},${d.toFixed(1)} ${o.x.toFixed(1)},${o.y.toFixed(1)}`}return n}function ea(e,t=14){return e.length>t?e.slice(0,t-1)+`…`:e}function ta({sessions:e,totalLoc:t,totalFiles:n,onSessionClick:r}){if(e.length===0)return(0,F.jsxs)(`div`,{className:`growth-chart`,children:[(0,F.jsx)(`div`,{className:`growth-chart__svg-container`,children:(0,F.jsx)(`p`,{style:{color:`var(--on-surface-variant)`,fontFamily:`var(--font-mono)`,fontSize:`0.75rem`},children:`No session data available for growth chart.`})}),(0,F.jsxs)(`div`,{className:`growth-chart__summary`,children:[(0,F.jsx)(`div`,{className:`growth-chart__total-value`,children:`0`}),(0,F.jsx)(`div`,{className:`growth-chart__total-label`,children:`LINES OF CODE`})]})]});let i=e.filter(e=>e.date);if(i.length===0)return(0,F.jsxs)(`div`,{className:`growth-chart`,children:[(0,F.jsx)(`div`,{className:`growth-chart__svg-container`,children:(0,F.jsx)(`p`,{style:{color:`var(--on-surface-variant)`,fontFamily:`var(--font-mono)`,fontSize:`0.75rem`},children:`No dated sessions available for growth chart.`})}),(0,F.jsxs)(`div`,{className:`growth-chart__summary`,children:[(0,F.jsx)(`div`,{className:`growth-chart__total-value`,children:I(t)}),(0,F.jsx)(`div`,{className:`growth-chart__total-label`,children:`LINES OF CODE`})]})]});let a=[...i].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),{points:o,boundaries:s,totalVisualTime:c}=Qi(i);if(o.length===0)return(0,F.jsxs)(`div`,{className:`growth-chart`,children:[(0,F.jsx)(`div`,{className:`growth-chart__svg-container`,children:(0,F.jsx)(`p`,{style:{color:`var(--on-surface-variant)`,fontFamily:`var(--font-mono)`,fontSize:`0.75rem`},children:`No dated sessions available for growth chart.`})}),(0,F.jsxs)(`div`,{className:`growth-chart__summary`,children:[(0,F.jsx)(`div`,{className:`growth-chart__total-value`,children:I(t)}),(0,F.jsx)(`div`,{className:`growth-chart__total-label`,children:`LINES OF CODE`})]})]});let l=qi(Math.max(...o.map(e=>e.cumulativeLoc),1)),u=l[l.length-1]||1,d=Math.max(600,Math.round(c/6e4*.8)+120),f=d-48-16,p=c||1,m=e=>48+e/p*f,h=e=>212-e/u*180,g=o.map(e=>({x:m(e.visualTime),y:h(e.cumulativeLoc)})),_=$i(g),v=g[g.length-1],y=g[0],b=_+` L${v.x.toFixed(1)},${212 .toFixed(1)} L${y.x.toFixed(1)},${212 .toFixed(1)} Z`,x=s.filter((e,t)=>t===0||Math.abs(e.visualTime-s[t-1].visualTime)>.001),S=i.length,C=d>600;return(0,F.jsxs)(`div`,{className:`growth-chart`,children:[(0,F.jsx)(`div`,{className:`growth-chart__svg-container`,style:C?{overflowX:`auto`}:void 0,children:(0,F.jsxs)(`svg`,{viewBox:`0 0 ${d} 260`,width:C?d:`100%`,height:C?260:void 0,preserveAspectRatio:`xMidYMid meet`,role:`img`,"aria-label":`Growth chart showing cumulative lines of code across ${S} sessions`,children:[l.map(e=>(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`line`,{x1:48,y1:h(e),x2:d-16,y2:h(e),stroke:`var(--outline-variant)`,strokeWidth:`0.5`,strokeDasharray:`4,4`}),(0,F.jsx)(`text`,{x:40,y:h(e)+3,textAnchor:`end`,fontFamily:`var(--font-mono)`,fontSize:`9`,fill:`var(--on-surface-variant)`,children:Gi(e)})]},`y-${e}`)),x.map((e,t)=>{let n=r&&a[e.sessionIndex];return(0,F.jsxs)(`g`,{style:n?{cursor:`pointer`}:void 0,onClick:n?()=>r(a[e.sessionIndex]):void 0,children:[(0,F.jsx)(`line`,{x1:m(e.visualTime),y1:32,x2:m(e.visualTime),y2:212,stroke:`var(--outline-variant)`,strokeWidth:`0.5`,strokeDasharray:`3,3`}),(0,F.jsx)(`text`,{x:m(e.visualTime),y:228,textAnchor:`middle`,fontFamily:`var(--font-mono)`,fontSize:`8`,fill:n?`var(--primary)`:`var(--on-surface-variant)`,textDecoration:n?`underline`:void 0,children:ea(e.title)})]},`boundary-${t}`)}),(0,F.jsx)(`path`,{d:b,fill:`rgba(8,68,113,0.06)`}),(0,F.jsx)(`path`,{d:_,fill:`none`,stroke:`var(--primary)`,strokeWidth:`2`,strokeLinejoin:`round`,strokeLinecap:`round`}),x.map((e,t)=>{let n=o.filter(t=>t.sessionIndex===e.sessionIndex);if(n.length===0)return null;let r=n[n.length-1],i=n[0],a=r.cumulativeLoc-i.cumulativeLoc+(i===o[0]?i.cumulativeLoc:0);return(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`circle`,{cx:m(r.visualTime),cy:h(r.cumulativeLoc),r:`3`,fill:`var(--secondary)`}),a>0&&(0,F.jsx)(`text`,{x:m(r.visualTime),y:h(r.cumulativeLoc)-8,textAnchor:`middle`,fontFamily:`var(--font-mono)`,fontSize:`8`,fill:`var(--secondary)`,children:Ki(a)})]},`dot-${t}`)})]})}),(0,F.jsxs)(`div`,{className:`growth-chart__summary`,children:[(0,F.jsx)(`div`,{className:`growth-chart__total-value`,children:I(t)}),(0,F.jsx)(`div`,{className:`growth-chart__total-label`,children:`LINES OF CODE`}),(0,F.jsxs)(`div`,{className:`growth-chart__stat`,children:[(0,F.jsx)(`div`,{className:`growth-chart__stat-value`,children:n}),(0,F.jsx)(`div`,{className:`growth-chart__stat-label`,children:`FILES TOUCHED`})]}),(0,F.jsxs)(`div`,{className:`growth-chart__stat`,children:[(0,F.jsx)(`div`,{className:`growth-chart__stat-value`,children:S}),(0,F.jsx)(`div`,{className:`growth-chart__stat-label`,children:`SESSIONS`})]})]})]})}function na(e,t,n){if(n&&e.startsWith(n))return e.slice(n.length).replace(/^\//,``)||e;let r=t.replace(/^-/,`/`).replace(/-/g,`/`);return e.startsWith(r)&&e.slice(r.length).replace(/^\//,``)||e}function ra(e){let t=e.split(`/`).filter(Boolean);if(t.length<=1)return`/`;let n=Math.min(t.length-1,2);return t.slice(0,n).join(`/`)+`/`}function ia(e,t){let n=new Map,r=new Map,i=new Map;for(let a of e)if(a.filesChanged)for(let e of a.filesChanged){if(!e.path||typeof e.path!=`string`)continue;let o=e.editCount??e.additions+e.deletions,s=na(e.path,t,a.cwd),c=ra(s);n.has(c)||n.set(c,new Map);let l=n.get(c);l.set(a.id,(l.get(a.id)??0)+o),r.set(c,(r.get(c)??0)+o),i.set(s,(i.get(s)??0)+o)}let a=Array.from(r.entries()).sort((e,t)=>t[1]-e[1]).slice(0,10).map(([e])=>e),o=new Map,s=0;for(let t of a){let r=n.get(t);if(r)for(let n of e){let e=r.get(n.id)??0;o.set(`${t}|${n.id}`,e),e>s&&(s=e)}}let c=Array.from(i.entries()).map(([e,t])=>({path:e,editCount:t})).sort((e,t)=>t.editCount-e.editCount).slice(0,10);return{directories:a,grid:o,maxEdits:s,files:c,totalFiles:i.size}}function aa(e,t){return e===0?.02:t===0?.05:.05+e/t*.65}function oa(e,t=15){return e.length<=t?e:e.slice(0,t-1)+`…`}function sa({sessions:e,projectDirName:t}){let{directories:n,grid:r,maxEdits:i,files:a,totalFiles:o}=ia(e,t);if(n.length===0)return(0,F.jsxs)(`div`,{className:`dir-heatmap`,children:[(0,F.jsx)(`div`,{className:`project-preview__timeline-heading`,children:`EDIT HEATMAP BY DIRECTORY`}),(0,F.jsx)(`p`,{className:`dir-heatmap__empty`,children:`No file data available`})]});let s=e.length;return(0,F.jsxs)(`div`,{className:`dir-heatmap`,children:[(0,F.jsx)(`div`,{className:`project-preview__timeline-heading`,children:`EDIT HEATMAP BY DIRECTORY`}),(0,F.jsxs)(`div`,{className:`dir-heatmap__grid`,style:{gridTemplateColumns:`150px repeat(${s}, 1fr)`},role:`table`,"aria-label":`Directory edit heatmap`,children:[(0,F.jsx)(`div`,{className:`dir-heatmap__corner`,role:`columnheader`}),e.map(e=>(0,F.jsx)(`div`,{className:`dir-heatmap__session-label`,role:`columnheader`,title:e.title,children:oa(e.title)},e.id)),n.map(t=>(0,F.jsxs)(_.Fragment,{children:[(0,F.jsx)(`div`,{className:`dir-heatmap__dir-label`,role:`rowheader`,title:t,children:t}),e.map(e=>{let n=r.get(`${t}|${e.id}`)??0;return(0,F.jsx)(`div`,{className:`dir-heatmap__cell`,style:{background:`rgba(8,68,113,${aa(n,i)})`},role:`cell`,title:`${t} in ${e.title}: ${n} edits`,"aria-label":`${t} in ${e.title}: ${n} edits`},e.id)})]},t))]}),(0,F.jsxs)(`div`,{className:`dir-heatmap__legend`,"aria-hidden":`true`,children:[(0,F.jsx)(`span`,{children:`Intensity = edit count`}),(0,F.jsx)(`span`,{style:{display:`inline-block`,width:12,height:12,background:`rgba(8,68,113,0.05)`,borderRadius:2}}),(0,F.jsx)(`span`,{style:{display:`inline-block`,width:12,height:12,background:`rgba(8,68,113,0.35)`,borderRadius:2}}),(0,F.jsx)(`span`,{style:{display:`inline-block`,width:12,height:12,background:`rgba(8,68,113,0.7)`,borderRadius:2}}),(0,F.jsx)(`span`,{children:`low → high`})]}),(0,F.jsxs)(`details`,{className:`dir-heatmap__top-files`,children:[(0,F.jsxs)(`summary`,{className:`dir-heatmap__top-files-summary`,children:[`Top `,a.length,` most-edited files (of `,o,` total) →`]}),(0,F.jsx)(`div`,{role:`list`,"aria-label":`Most edited files`,children:a.map(e=>(0,F.jsxs)(`div`,{className:`dir-heatmap__file-row`,role:`listitem`,children:[(0,F.jsx)(`span`,{className:`dir-heatmap__file-path`,title:e.path,children:e.path}),(0,F.jsxs)(`span`,{className:`dir-heatmap__file-count`,children:[e.editCount,` edits`]})]},e.path))})]})]})}var z=[`var(--primary)`,`var(--secondary)`,`var(--tertiary)`];function ca({project:e,narrative:t,skills:n,timeline:r,selectedCount:i,sessions:a,repoUrl:o,projectUrl:s,onClose:c}){let[l,u]=(0,_.useState)(null);r.reduce((e,t)=>e+t.sessions.length,0);let d=a.length>0?Math.max(...a.map(e=>e.durationMinutes)):1;return(0,_.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!l&&c()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[c,l]),(0,F.jsxs)(`div`,{className:`project-preview`,role:`dialog`,"aria-label":`Project preview`,children:[(0,F.jsx)(`div`,{className:`project-preview__banner`,children:`Preview — this is how your project will appear on heyi.am`}),(0,F.jsx)(`button`,{className:`project-preview__close`,onClick:c,"aria-label":`Close preview`,children:`Close preview ×`}),(0,F.jsxs)(`div`,{className:`project-preview__content`,children:[(0,F.jsxs)(`div`,{className:`project-preview__breadcrumb`,children:[`ben / `,e.name]}),(0,F.jsx)(`h1`,{className:`project-preview__title`,children:e.name}),(o||s)&&(0,F.jsxs)(`div`,{className:`project-preview__links`,children:[o&&(0,F.jsxs)(`a`,{href:o,className:`project-preview__link`,target:`_blank`,rel:`noopener noreferrer`,children:[(0,F.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,children:(0,F.jsx)(`path`,{d:`M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z`})}),`Repo`]}),s&&(0,F.jsxs)(`a`,{href:s,className:`project-preview__link`,target:`_blank`,rel:`noopener noreferrer`,children:[(0,F.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 14 14`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,"aria-hidden":`true`,children:(0,F.jsx)(`path`,{d:`M5 1H2a1 1 0 00-1 1v10a1 1 0 001 1h10a1 1 0 001-1V9M8 1h5v5M13 1L6 8`,strokeLinecap:`round`,strokeLinejoin:`round`})}),`Live site`]})]}),t&&(0,F.jsx)(`div`,{className:`project-preview__narrative`,children:t}),n.length>0&&(0,F.jsx)(`div`,{className:`project-preview__skills`,children:n.map(e=>(0,F.jsx)(`span`,{className:`chip`,children:e},e))}),(0,F.jsx)(`div`,{className:`project-preview__screenshot`,children:(0,F.jsxs)(`div`,{className:`project-preview__screenshot-inner`,children:[(0,F.jsx)(`span`,{"aria-hidden":`true`,children:`📷`}),(0,F.jsx)(`span`,{children:`Project screenshot`})]})}),(0,F.jsxs)(`div`,{className:`project-preview__hero-stats`,children:[(0,F.jsxs)(`div`,{className:`project-preview__hero-stat`,children:[(0,F.jsx)(`div`,{className:`project-preview__hero-value project-preview__hero-value--primary`,children:Oi(e.totalDuration)}),(0,F.jsx)(`div`,{className:`project-preview__hero-label`,children:`Total Time`})]}),(0,F.jsxs)(`div`,{className:`project-preview__hero-stat`,children:[(0,F.jsxs)(`div`,{className:`project-preview__hero-value`,children:[e.sessionCount,` (`,i,`)`]}),(0,F.jsx)(`div`,{className:`project-preview__hero-label`,children:`Sessions`})]}),(0,F.jsxs)(`div`,{className:`project-preview__hero-stat`,children:[(0,F.jsx)(`div`,{className:`project-preview__hero-value`,children:I(e.totalLoc)}),(0,F.jsx)(`div`,{className:`project-preview__hero-label`,children:`LOC`})]}),(0,F.jsxs)(`div`,{className:`project-preview__hero-stat`,children:[(0,F.jsx)(`div`,{className:`project-preview__hero-value`,children:e.totalFiles}),(0,F.jsx)(`div`,{className:`project-preview__hero-label`,children:`Files`})]})]}),(0,F.jsx)(`div`,{className:`project-preview__timeline-heading`,children:`WORK TIMELINE`}),(0,F.jsx)($r,{sessions:a,onSessionClick:u}),(0,F.jsx)(`div`,{className:`project-preview__timeline-heading`,children:`PROJECT TIMELINE`}),(0,F.jsxs)(`div`,{className:`timeline`,children:[(0,F.jsx)(`div`,{className:`timeline__line`}),r.map((e,t)=>{let n=e.sessions.filter(e=>e.featured),r=e.sessions.filter(e=>!e.featured);return(0,F.jsxs)(`div`,{className:`timeline__period`,children:[(0,F.jsxs)(`div`,{className:`timeline__period-header`,children:[(0,F.jsx)(`span`,{className:`timeline__period-date`,children:e.period}),(0,F.jsx)(`span`,{className:`timeline__period-sep`,children:`—`}),(0,F.jsx)(`span`,{className:`timeline__period-label`,children:e.label})]}),n.map(e=>(0,F.jsxs)(`div`,{className:`timeline__featured`,children:[(0,F.jsx)(`div`,{className:`timeline__dot--large`}),(0,F.jsxs)(`div`,{className:`timeline__card`,style:{cursor:`pointer`},onClick:()=>{let t=a.find(t=>t.id===e.sessionId);t?u(t):document.getElementById(`session-${e.sessionId}`)?.scrollIntoView({behavior:`smooth`,block:`center`})},role:`button`,tabIndex:0,onKeyDown:t=>{if(t.key===`Enter`||t.key===` `){t.preventDefault();let n=a.find(t=>t.id===e.sessionId);n?u(n):document.getElementById(`session-${e.sessionId}`)?.scrollIntoView({behavior:`smooth`,block:`center`})}},children:[(0,F.jsxs)(`div`,{className:`timeline__card-header`,children:[(0,F.jsx)(`span`,{className:`timeline__card-title`,children:e.title}),e.tag&&(0,F.jsx)(`span`,{className:`timeline__card-tag`,children:e.tag})]}),(0,F.jsxs)(`div`,{className:`timeline__card-meta`,children:[(0,F.jsx)(`span`,{children:Oi(e.duration)}),e.date&&(0,F.jsx)(`span`,{children:ki(e.date)})]}),e.description&&(0,F.jsx)(`p`,{className:`timeline__card-desc`,children:e.description}),e.skills&&e.skills.length>0&&(0,F.jsx)(`div`,{className:`timeline__card-skills`,children:e.skills.map(e=>(0,F.jsx)(`span`,{className:`chip`,children:e},e))})]})]},e.sessionId)),r.length>0&&(0,F.jsxs)(`div`,{className:`timeline__collapsed`,children:[(0,F.jsx)(`div`,{className:`timeline__dot--small`}),(0,F.jsx)(Ui,{sessions:r})]})]},t)})]}),(0,F.jsx)(`div`,{className:`project-preview__timeline-heading`,children:`PROJECT GROWTH`}),(0,F.jsx)(ta,{sessions:a,totalLoc:e.totalLoc,totalFiles:e.totalFiles,onSessionClick:u}),(0,F.jsx)(sa,{sessions:a,projectDirName:e.dirName}),a.length>0&&(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`div`,{className:`project-preview__sessions-heading`,children:`PUBLISHED SESSIONS`}),(0,F.jsx)(`div`,{className:`project-preview__sessions-grid`,children:a.map((e,t)=>{let n=z[t%z.length],r=d>0?Math.max(20,Math.round(e.durationMinutes/d*100)):100,i=e.filesChanged?.length??0;return(0,F.jsxs)(`div`,{id:`session-${e.id}`,className:`project-preview__session-card project-preview__session-card--clickable`,onClick:()=>u(e),role:`button`,tabIndex:0,onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),u(e))},children:[(0,F.jsx)(`div`,{className:`project-preview__session-bar`,style:{width:`${r}%`,background:n}}),(0,F.jsx)(`h3`,{className:`project-preview__session-title`,children:e.title}),(0,F.jsxs)(`div`,{className:`project-preview__session-stats`,children:[Math.round(e.durationMinutes),` min`,` · `,e.turns,` turns`,i>0&&(0,F.jsxs)(F.Fragment,{children:[` · `,i,` files`]}),` · `,I(e.linesOfCode),` LOC`]}),e.skills&&e.skills.length>0&&(0,F.jsx)(`div`,{className:`project-preview__session-skills`,children:e.skills.map(e=>(0,F.jsx)(`span`,{className:`chip`,children:e},e))})]},e.id)})})]})]}),l&&(0,F.jsx)(Di,{session:l,projectName:e.name,projectDirName:e.dirName,onClose:()=>u(null)})]})}function la({project:e,narrative:t,selectedCount:n,skippedCount:r,skills:i,timeline:a,sessions:o,selectedIds:s,allSessions:c,repoUrl:l,onRepoUrlChange:u,projectUrl:d,onProjectUrlChange:f,onPublish:p,onSaveLocal:m,onBack:h}){let[g,v]=(0,_.useState)(!1),[y,b]=(0,_.useState)(!1),[x,S]=(0,_.useState)(null),[C,w]=(0,_.useState)(null),[T,E]=(0,_.useState)(new Map),[D,O]=(0,_.useState)(null),[k,ee]=(0,_.useState)(!1),[A,te]=(0,_.useState)(null),[ne,re]=(0,_.useState)(!1),ie=(0,_.useRef)(null),j=(0,_.useRef)(null),{refresh:M}=ur(),ae=`${e.sessionCount} (${n} published)`,oe=e.name.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``),se=(0,_.useCallback)(()=>{let n=c.filter(e=>!s.has(e.id)).map(e=>({title:e.title,duration:e.durationMinutes??0,loc:e.linesOfCode??0,reason:`Not selected`}));return{title:e.name,slug:oe,narrative:t,repoUrl:l,projectUrl:d,timeline:a,skills:i,totalSessions:e.sessionCount,totalLoc:e.totalLoc,totalDurationMinutes:e.totalDuration,totalFilesChanged:e.totalFiles,skippedSessions:n,selectedSessionIds:[...s]}},[e,oe,t,l,d,a,i,c,s]),ce=(0,_.useCallback)(async()=>{ee(!0);try{let e=await Yn();te({userCode:e.user_code,verificationUri:e.verification_uri,deviceCode:e.device_code}),re(!0);let t=(e.interval||5)*1e3;ie.current=setInterval(async()=>{try{(await Xn(e.device_code)).authenticated&&(ie.current&&clearInterval(ie.current),ie.current=null,re(!1),ee(!1),await M(),N())}catch{}},t)}catch(e){S(`Login failed: ${e.message}`)}},[M]),N=(0,_.useCallback)(t=>{b(!0),S(null),w(null),ee(!1);let n=se();t&&(n.selectedSessionIds=t),j.current?.abort(),j.current=nr(e.dirName,n,e=>{switch(e.type){case`session`:E(t=>{let n=new Map(t);return n.set(e.sessionId,{status:e.status===`publishing`?`publishing`:e.status,error:e.error}),n});break;case`done`:b(!1),e.failed>0?(w(`sessions`),O(e.projectUrl),S(`${e.failed} session${e.failed===1?``:`s`} failed to publish`)):(M(),p({url:e.projectUrl,publishedSessions:e.uploaded}));break;case`error`:b(!1),e.error===`AUTH_REQUIRED`?ce():(w(`project`),S(e.error));break}})},[se,e.dirName,p,M,ce]);return(0,_.useEffect)(()=>()=>{ie.current&&clearInterval(ie.current),j.current?.abort()},[]),(0,F.jsxs)(`div`,{className:`upload-flow`,children:[(0,F.jsx)(Mi,{current:`review`}),(0,F.jsxs)(`div`,{className:`upload-flow__scan-status`,children:[`✓ `,n,` sessions enhanced · Project narrative generated · Timeline built`]}),(0,F.jsx)(`h2`,{className:`upload-flow__title`,children:`Review your project`}),(0,F.jsxs)(`div`,{className:`review-card`,children:[(0,F.jsx)(`div`,{className:`upload-flow__label`,children:`PROJECT`}),(0,F.jsx)(`h3`,{className:`review-card__name`,children:e.name}),t&&(0,F.jsx)(`p`,{className:`review-card__narrative`,children:t}),(0,F.jsxs)(`div`,{className:`upload-flow__stat-grid`,children:[(0,F.jsx)(Pi,{label:`Sessions`,value:ae}),(0,F.jsx)(Pi,{label:`Total Time`,value:Oi(e.totalDuration)}),(0,F.jsx)(Pi,{label:`LOC`,value:I(e.totalLoc)}),(0,F.jsx)(Pi,{label:`Files`,value:String(e.totalFiles)})]}),(0,F.jsx)(`div`,{className:`review-card__skills`,children:i.map(e=>(0,F.jsx)(`span`,{className:`chip`,children:e},e))})]}),(0,F.jsx)(`button`,{className:`review-preview-link`,onClick:()=>v(!0),children:`Preview full project page →`}),g&&(0,F.jsx)(ca,{project:e,narrative:t,skills:i,timeline:a,selectedCount:n,sessions:o,repoUrl:l,projectUrl:d,onClose:()=>v(!1)}),(0,F.jsxs)(`div`,{className:`review-checklist`,children:[(0,F.jsx)(`div`,{className:`upload-flow__section-label`,style:{marginBottom:`var(--spacing-3)`},children:`What gets published`}),(0,F.jsxs)(`div`,{className:`review-checklist__item`,children:[(0,F.jsx)(`span`,{className:`review-checklist__icon review-checklist__icon--checked`,"aria-hidden":`true`,children:`✓`}),(0,F.jsx)(`span`,{children:`Project narrative and timeline`})]}),(0,F.jsxs)(`div`,{className:`review-checklist__item`,children:[(0,F.jsx)(`span`,{className:`review-checklist__icon review-checklist__icon--checked`,"aria-hidden":`true`,children:`✓`}),(0,F.jsxs)(`span`,{children:[n,` enhanced session case studies`]})]}),(0,F.jsxs)(`div`,{className:`review-checklist__item`,children:[(0,F.jsx)(`span`,{className:`review-checklist__icon review-checklist__icon--checked`,"aria-hidden":`true`,children:`✓`}),(0,F.jsx)(`span`,{children:`Aggregate stats from all sessions`})]}),(0,F.jsxs)(`div`,{className:`review-checklist__item`,children:[(0,F.jsx)(`span`,{className:`review-checklist__icon review-checklist__icon--checked`,"aria-hidden":`true`,children:`✓`}),(0,F.jsx)(`span`,{children:`Growth chart, heatmap, and top files`})]}),r>0&&(0,F.jsxs)(`div`,{className:`review-checklist__item review-checklist__item--skipped`,children:[(0,F.jsx)(`span`,{className:`review-checklist__icon review-checklist__icon--skipped`,"aria-hidden":`true`,children:`○`}),(0,F.jsxs)(`span`,{children:[r,` skipped sessions (metadata only)`]})]})]}),(0,F.jsxs)(`div`,{className:`review-details`,children:[(0,F.jsxs)(`div`,{className:`review-details__header`,children:[(0,F.jsx)(`div`,{className:`upload-flow__section-label`,style:{marginBottom:0},children:`Project details`}),(0,F.jsx)(`span`,{className:`review-details__optional`,children:`all optional`})]}),(0,F.jsxs)(`div`,{className:`review-field`,children:[(0,F.jsxs)(`label`,{className:`review-field__label`,htmlFor:`review-repo-url`,children:[`Repository URL`,l&&(0,F.jsx)(`span`,{className:`review-field__badge`,children:`✓ auto-detected`})]}),(0,F.jsx)(`input`,{id:`review-repo-url`,type:`url`,className:`review-field__input`,value:l,onChange:e=>u(e.target.value),placeholder:`https://github.com/...`})]}),(0,F.jsxs)(`div`,{className:`review-field`,children:[(0,F.jsx)(`label`,{className:`review-field__label`,htmlFor:`review-project-url`,children:`Project URL`}),(0,F.jsx)(`input`,{id:`review-project-url`,type:`url`,className:`review-field__input`,value:d,onChange:e=>f(e.target.value),placeholder:`Live site, docs, demo...`})]}),(0,F.jsxs)(`div`,{className:`review-field`,children:[(0,F.jsx)(`span`,{className:`review-field__label`,children:`Screenshot`}),(0,F.jsxs)(`div`,{className:`review-dropzone`,role:`button`,tabIndex:0,"aria-label":`Upload screenshot`,children:[(0,F.jsx)(`span`,{className:`review-dropzone__icon`,"aria-hidden":`true`,children:`📷`}),(0,F.jsx)(`span`,{className:`review-dropzone__text`,children:`Drop an image or click to upload`})]})]})]}),k&&(0,F.jsx)(`div`,{className:`review-auth`,children:(0,F.jsxs)(`div`,{className:`review-auth__card`,children:[(0,F.jsx)(`h3`,{className:`review-auth__title`,children:`Sign in to publish`}),A?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`p`,{className:`review-auth__instructions`,children:[`Open`,` `,(0,F.jsx)(`a`,{href:A.verificationUri,target:`_blank`,rel:`noopener noreferrer`,children:A.verificationUri}),` `,`and enter:`]}),(0,F.jsx)(`div`,{className:`review-auth__code`,children:A.userCode}),ne&&(0,F.jsx)(`p`,{className:`review-auth__polling`,children:`Waiting for authorization...`})]}):(0,F.jsx)(`p`,{className:`review-auth__polling`,children:`Starting login...`})]})}),y&&T.size>0&&(0,F.jsxs)(`div`,{className:`publish-progress`,children:[(0,F.jsx)(`div`,{className:`upload-flow__section-label`,style:{marginBottom:`var(--spacing-2)`},children:`Publishing sessions...`}),(0,F.jsx)(`div`,{className:`publish-progress__sessions`,children:Array.from(T.entries()).map(([e,t])=>{let n=o.find(t=>t.id===e);return(0,F.jsxs)(`div`,{className:`publish-progress__row`,children:[t.status===`published`?(0,F.jsx)(`span`,{className:`publish-error__icon--published`,children:`✓`}):t.status===`publishing`?(0,F.jsx)(`span`,{className:`enhance-feed-item__spinner`}):(0,F.jsx)(`span`,{className:`publish-error__icon--failed`,children:`✗`}),(0,F.jsx)(`span`,{children:n?.title??e})]},e)})})]}),x&&(0,F.jsxs)(`div`,{className:`publish-error`,children:[(0,F.jsx)(`div`,{className:`publish-error__message`,children:x}),C===`sessions`&&T.size>0&&(0,F.jsx)(`div`,{className:`publish-error__sessions`,children:Array.from(T.entries()).map(([e,t])=>{let n=o.find(t=>t.id===e);return(0,F.jsxs)(`div`,{className:`publish-error__session-row publish-error__session-row--${t.status}`,children:[(0,F.jsx)(`span`,{className:`publish-error__icon publish-error__icon--${t.status}`,children:t.status===`published`?`✓`:`✗`}),(0,F.jsx)(`span`,{className:`publish-error__session-title`,children:n?.title??e}),t.error&&(0,F.jsx)(`span`,{className:`publish-error__session-error`,children:t.error})]},e)})}),(0,F.jsxs)(`div`,{className:`publish-error__actions`,children:[C===`sessions`&&(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`button`,{className:`btn btn--secondary`,onClick:()=>{N(Array.from(T.entries()).filter(([,e])=>e.status===`failed`).map(([e])=>e))},children:`Retry failed sessions`}),D&&(0,F.jsx)(`button`,{className:`btn btn--primary`,onClick:()=>p({url:D,publishedSessions:Array.from(T.values()).filter(e=>e.status===`published`).length}),children:`Continue with published sessions`})]}),C===`project`&&(0,F.jsx)(`button`,{className:`btn btn--secondary`,onClick:()=>N(),children:`Retry`}),(0,F.jsx)(`button`,{className:`btn btn--secondary`,onClick:()=>{S(null),w(null)},children:`Dismiss`})]})]}),(0,F.jsxs)(`div`,{className:`upload-flow__actions`,children:[(0,F.jsx)(`button`,{type:`button`,className:`btn btn--secondary btn--large`,onClick:h,disabled:y,children:`Back to timeline`}),(0,F.jsx)(`button`,{type:`button`,className:`btn btn--secondary btn--large`,onClick:m,disabled:y,children:`Save locally`}),(0,F.jsx)(`button`,{type:`button`,className:`btn btn--primary btn--large`,onClick:()=>N(),disabled:y||k,children:y?`Publishing...`:`Publish project →`})]})]})}function ua({project:e,narrative:t,selectedCount:n,publishedUrl:r,publishedSessions:i}){let a=rt(),[o,s]=(0,_.useState)(!1),c=!!r,l=r?r.startsWith(`/`)?`heyi.am${r}`:r:``,u=(0,_.useCallback)(()=>{l&&navigator.clipboard.writeText(`https://${l}`).then(()=>{s(!0),setTimeout(()=>s(!1),2e3)}).catch(()=>{})},[l]),d=(0,_.useCallback)(()=>{l&&window.open(`https://${l}`,`_blank`,`noopener`)},[l]),f=(0,_.useCallback)(()=>{if(!l)return;let e=l.split(`/`),t=e.length>=2?`https://${e[0]}/${e[1]}`:`https://${l}`;window.open(t,`_blank`,`noopener`)},[l]),p=new Date().toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`}),m=t.length>120?`${t.slice(0,117)}...`:t;return(0,F.jsxs)(`div`,{className:`upload-flow`,children:[(0,F.jsx)(Mi,{current:`done`}),(0,F.jsxs)(`div`,{className:`success-card`,children:[(0,F.jsx)(`div`,{className:`success-card__icon`,children:(0,F.jsxs)(`svg`,{width:`32`,height:`32`,viewBox:`0 0 32 32`,fill:`none`,children:[(0,F.jsx)(`circle`,{cx:`16`,cy:`16`,r:`16`,fill:`var(--success-bg, #dcfce7)`}),(0,F.jsx)(`path`,{d:`M10 16.5L14 20.5L22 12.5`,stroke:`var(--success-fg, #16a34a)`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`})]})}),(0,F.jsx)(`h2`,{className:`success-card__title`,children:c?`Project Published`:`Project Saved`}),(0,F.jsx)(`p`,{className:`success-card__subtitle`,children:c?`Your project is live on your portfolio with ${n} session case ${n===1?`study`:`studies`}.`:`Enhancement saved locally with ${n} session case ${n===1?`study`:`studies`}. You can preview or publish anytime.`}),(0,F.jsxs)(`div`,{className:`success-card__preview`,children:[(0,F.jsx)(`div`,{className:`success-card__preview-name`,children:e.name}),(0,F.jsx)(`div`,{className:`success-card__preview-narrative`,children:m}),(0,F.jsxs)(`div`,{className:`success-card__preview-stats`,children:[(0,F.jsxs)(`div`,{className:`success-card__preview-stat`,children:[(0,F.jsx)(`span`,{className:`success-card__preview-stat-value`,children:e.sessionCount}),(0,F.jsx)(`span`,{className:`success-card__preview-stat-label`,children:`Sessions`})]}),(0,F.jsxs)(`div`,{className:`success-card__preview-stat`,children:[(0,F.jsx)(`span`,{className:`success-card__preview-stat-value`,children:Oi(e.totalDuration)}),(0,F.jsx)(`span`,{className:`success-card__preview-stat-label`,children:`Time`})]}),(0,F.jsxs)(`div`,{className:`success-card__preview-stat`,children:[(0,F.jsx)(`span`,{className:`success-card__preview-stat-value`,children:I(e.totalLoc)}),(0,F.jsx)(`span`,{className:`success-card__preview-stat-label`,children:`LOC`})]}),(0,F.jsxs)(`div`,{className:`success-card__preview-stat`,children:[(0,F.jsx)(`span`,{className:`success-card__preview-stat-value`,children:n}),(0,F.jsx)(`span`,{className:`success-card__preview-stat-label`,children:c?`Published`:`Enhanced`})]})]})]}),c&&l&&(0,F.jsxs)(`div`,{className:`success-card__url-bar`,children:[(0,F.jsx)(`span`,{className:`success-card__url-text`,children:l}),(0,F.jsx)(`button`,{className:`success-card__url-copy`,onClick:u,children:o?`Copied`:`Copy`})]}),(0,F.jsxs)(`div`,{className:`success-card__meta`,children:[(0,F.jsx)(`span`,{className:`success-card__badge`,children:c?`Published`:`Saved locally`}),c&&i&&(0,F.jsxs)(`span`,{className:`success-card__meta-text`,children:[i,` sessions uploaded`]}),(0,F.jsx)(`span`,{className:`success-card__meta-text`,children:p})]}),(0,F.jsx)(`div`,{className:`success-card__actions`,children:c?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`button`,{type:`button`,className:`btn btn--primary btn--large`,onClick:d,children:`View Project Page`}),(0,F.jsx)(`button`,{type:`button`,className:`btn btn--secondary btn--large`,onClick:f,children:`View Portfolio`})]}):(0,F.jsx)(`button`,{type:`button`,className:`btn btn--primary btn--large`,onClick:()=>a(`/`),children:`Back to Projects`})})]})]})}function da(){let{dirName:e}=at(),[t,n]=jn(),r=rt(),{projects:i}=ar(),a=i.find(t=>t.dirName===e),[o,s]=(0,_.useState)(`overview`),c=(0,_.useCallback)(e=>{s(e),window.scrollTo(0,0)},[]),[l,u]=(0,_.useState)([]),[d,f]=(0,_.useState)(!0),[p,m]=(0,_.useState)(null),[h,g]=(0,_.useState)(new Set),[v,y]=(0,_.useState)(!1),[b,x]=(0,_.useState)([]),[S,C]=(0,_.useState)(null),w=(0,_.useRef)(null),[T,E]=(0,_.useState)(null),[D,O]=(0,_.useState)(null),[k,ee]=(0,_.useState)(``),[A,te]=(0,_.useState)(``),[ne,re]=(0,_.useState)(null),ie=D?.narrative??``,j=D?.skills??[],M=D?.timeline??[],ae=(0,_.useCallback)(()=>{l.length>0||!e||Wn(e).then(e=>{u(e),f(!1)}).catch(e=>{E(e.message),f(!1)})},[e,l.length]);(0,_.useEffect)(()=>{[`overview`,`triage`,`enhance`].includes(o)&&ae()},[o,ae]),(0,_.useEffect)(()=>{let r=t.get(`view`)||t.get(`preview`);!e||r!==`1`||Qn(e).then(e=>{e&&(O(e.result),g(new Set(e.selectedSessionIds)),c(`review`)),n({},{replace:!0})})},[e]);let oe=(0,_.useCallback)(()=>{e&&(y(!0),E(null),x([]),w.current=Kn(e,e=>{if(x(t=>[...t,e]),e.type===`error`){E(e.message),y(!1);return}if(e.type===`result`){let t={selected:e.selected,skipped:e.skipped,autoSelected:e.autoSelected,triageMethod:e.triageMethod};m(t);let n=new Set(t.selected.map(e=>e.sessionId));if(a?.publishedSessions)for(let e of a.publishedSessions)n.add(e);g(n),setTimeout(()=>{y(!1),t.autoSelected?(C(`All ${n.size} sessions selected (small project)`),c(`enhance`)):c(`triage`)},1200)}}))},[e]);(0,_.useEffect)(()=>()=>{w.current?.abort()},[]);let se=(0,_.useCallback)(e=>{O(e),e.questions.length>0?c(`questions`):c(`timeline`)},[]),ce=(0,_.useCallback)(()=>{c(`timeline`)},[]),N=(0,_.useCallback)(async t=>{if(!(!e||!D))try{let n=await er(e,D.narrative,D.timeline,t);O(e=>e&&{...e,narrative:n.narrative,timeline:n.timeline}),c(`timeline`)}catch(e){E(e.message)}},[e,D]),P=(0,_.useCallback)(e=>{g(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]);return a?(0,F.jsx)(fr,{title:`heyi.am`,onBack:()=>r(`/`),children:d&&o===`overview`?(0,F.jsx)(`div`,{className:`dashboard-loading`,children:`Loading sessions...`}):T&&o===`overview`?(0,F.jsx)(`div`,{className:`dashboard-error`,children:T}):o===`overview`?v?(0,F.jsx)(Ii,{events:b,dirName:e??``}):(0,F.jsx)(Ni,{project:a,sessions:l,onTriage:oe,onCancel:()=>r(`/`)}):o===`triage`&&p?(0,F.jsx)(Ri,{project:a,sessions:l,triageResult:p,selectedIds:h,onToggle:P,onEnhance:()=>c(`enhance`),onBack:()=>c(`overview`),publishedSessionIds:a.publishedSessions?new Set(a.publishedSessions):void 0}):o===`enhance`&&p?(0,F.jsxs)(F.Fragment,{children:[S&&(0,F.jsxs)(`div`,{className:`upload-flow__auto-select-banner`,children:[`✓ `,S]}),(0,F.jsx)(zi,{project:a,sessions:l,selectedIds:h,triageResult:p,onComplete:se,onBack:()=>c(`triage`)})]}):o===`questions`&&D?(0,F.jsx)(Vi,{enhanceResult:D,onSkip:ce,onWeave:N}):o===`timeline`?(0,F.jsx)(Hi,{project:a,timeline:M.length>0?M.map(e=>({...e,sessions:e.sessions.map(e=>({sessionId:e.sessionId,title:e.title,featured:e.featured,tag:e.tag,duration:l.find(t=>t.id===e.sessionId)?.durationMinutes??0,date:l.find(t=>t.id===e.sessionId)?.date}))})):Wi,onBack:()=>D?.questions.length?c(`questions`):c(`enhance`),onReview:()=>c(`review`)}):o===`review`?(0,F.jsx)(la,{project:a,narrative:ie,selectedCount:h.size,skippedCount:l.length-h.size,skills:j.length>0?j:a.skills,timeline:M.length>0?M.map(e=>({...e,sessions:e.sessions.map(e=>({sessionId:e.sessionId,title:e.title,description:e.description,featured:e.featured,tag:e.tag,skills:e.skills,duration:l.find(t=>t.id===e.sessionId)?.durationMinutes??0,date:l.find(t=>t.id===e.sessionId)?.date}))})):Wi,sessions:l.filter(e=>h.has(e.id)),selectedIds:h,allSessions:l,repoUrl:k,onRepoUrlChange:ee,projectUrl:A,onProjectUrlChange:te,onPublish:e=>{re(e),c(`done`)},onSaveLocal:async()=>{!e||!D||(await $n(e,[...h],D),re(null),c(`done`))},onBack:()=>c(`timeline`)}):o===`done`?(0,F.jsx)(ua,{project:a,narrative:ie,selectedCount:h.size,publishedUrl:ne?.url,publishedSessions:ne?.publishedSessions}):null}):(0,F.jsx)(fr,{title:`heyi.am`,onBack:()=>r(`/`),children:(0,F.jsx)(`div`,{className:`dashboard-error`,children:`Project not found`})})}function fa(){return(0,F.jsx)(bn,{children:(0,F.jsx)(dr,{children:(0,F.jsx)(sr,{children:(0,F.jsxs)(jt,{children:[(0,F.jsx)(kt,{path:`/`,element:(0,F.jsx)(Tr,{})}),(0,F.jsx)(kt,{path:`/settings`,element:(0,F.jsx)(gr,{})}),(0,F.jsx)(kt,{path:`/project/:dirName/upload`,element:(0,F.jsx)(da,{})})]})})})})}(0,g.createRoot)(document.getElementById(`root`)).render((0,F.jsx)(_.StrictMode,{children:(0,F.jsx)(fa,{})}));
@@ -0,0 +1 @@
1
+ :root{--surface:#f8f9fb;--surface-container-lowest:#fff;--surface-container-low:#f3f4f6;--surface-container:#edeef0;--surface-container-high:#e7e8ea;--surface-container-highest:#e1e2e4;--surface-dim:#d9dadc;--surface-tint:#316190;--primary:#084471;--on-primary:#fff;--primary-container:#2b5c8a;--on-primary-container:#b0d4ff;--primary-fixed:#d0e4ff;--primary-fixed-dim:#9dcaff;--secondary:#006a61;--on-secondary:#fff;--secondary-container:#93f4e6;--tertiary:#663500;--on-tertiary:#fff;--tertiary-fixed:#ffdcc3;--tertiary-fixed-dim:#ffb77d;--on-tertiary-fixed:#2f1500;--on-tertiary-fixed-variant:#6e3900;--on-surface:#191c1e;--on-surface-variant:#42474e;--outline:#72787e;--outline-variant:#c2c7d0;--error:#ba1a1a;--error-container:#ffdad6;--on-error:#fff;--inverse-surface:#2e3132;--inverse-on-surface:#f0f1f3;--inverse-primary:#9dcaff;--font-display:"Space Grotesk", sans-serif;--font-body:"Inter", sans-serif;--font-mono:"IBM Plex Mono", monospace;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--spacing-16:4rem;--spacing-20:5rem;--spacing-24:5.5rem;--shadow-ambient:0 12px 40px #191c1e0f;--shadow-sm:0 1px 3px #191c1e0a;--ghost-border:1px solid #c2c7d026;font-family:var(--font-body);color:var(--on-surface);background:var(--surface);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;margin:0;overflow:hidden}#root{flex-direction:column;min-height:100vh;display:flex}::selection{background:var(--primary-container);color:var(--on-primary-fixed)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#c2c7d04d;border-radius:10px}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.app-shell{background:var(--surface);flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-shell__body{flex:1;min-height:0;display:flex}.app-header{padding:var(--spacing-3) var(--spacing-6);background:var(--surface);z-index:40;flex-shrink:0;justify-content:space-between;align-items:center;height:3.5rem;display:flex;position:sticky;top:0}.app-header__left{align-items:center;gap:var(--spacing-6);display:flex}.app-header__logo{font-family:var(--font-display);color:var(--on-surface);letter-spacing:-.03em;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:1.25rem;font-weight:700;text-decoration:none}.app-header__back{width:2rem;height:2rem;color:var(--on-surface-variant);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.app-header__back:hover{background:var(--surface-container-low)}.app-header__back svg{width:1.25rem;height:1.25rem}.app-header__title{font-family:var(--font-display);color:var(--on-surface-variant);letter-spacing:-.01em;font-size:.875rem;font-weight:600}.app-header__right{align-items:center;gap:var(--spacing-3);display:flex}.app-header__auth-indicator{align-items:center;gap:var(--spacing-2);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);font-size:.625rem;display:flex}.app-header__auth-dot{background:var(--outline-variant);border-radius:50%;width:.5rem;height:.5rem}.app-header__auth-dot--active{background:var(--secondary)}.app-header__icon-btn{width:2rem;height:2rem;color:var(--on-surface-variant);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.app-header__icon-btn:hover{background:var(--surface-container-low)}.app-header__icon-btn svg{width:1.25rem;height:1.25rem}.app-sidebar{background:var(--surface-container-low);border-right:var(--ghost-border);flex-direction:column;flex-shrink:0;width:16rem;display:flex;overflow-y:auto}.app-sidebar--collapsed{width:0;overflow:hidden}.app-sidebar__section{padding:var(--spacing-6)}.app-sidebar__label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--on-surface-variant);margin-bottom:var(--spacing-4);font-size:.625rem}.app-sidebar__list{gap:var(--spacing-1);flex-direction:column;list-style:none;display:flex}.app-sidebar__item{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);color:var(--on-surface);border-radius:var(--radius-md);cursor:pointer;text-align:start;background:0 0;border:none;width:100%;font-size:.875rem;font-weight:500;transition:background-color .15s;display:flex}.app-sidebar__item:hover{background:var(--surface-container)}.app-sidebar__item--active{background:var(--surface-container-high);color:var(--primary)}.app-sidebar__dot{background:var(--outline-variant);border-radius:50%;flex-shrink:0;width:.375rem;height:.375rem}.app-sidebar__item--active .app-sidebar__dot,.app-sidebar__item:hover .app-sidebar__dot{background:var(--primary)}.app-sidebar__footer{padding:var(--spacing-6);border-top:var(--ghost-border);margin-top:auto}.app-main{background:var(--surface);flex:1;min-width:0;overflow:hidden auto}.app-main__header{padding:var(--spacing-6) var(--spacing-8);justify-content:space-between;align-items:flex-end;display:flex}.app-main__title{font-family:var(--font-display);color:var(--on-surface);letter-spacing:-.02em;font-size:1.875rem;font-weight:700}.app-main__subtitle{color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.875rem}.app-bottom-bar{padding:var(--spacing-4) var(--spacing-6);z-index:30;justify-content:center;display:flex;position:sticky;bottom:0;left:0;right:0}.app-bottom-bar__inner{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:var(--ghost-border);box-shadow:var(--shadow-lg);border-radius:var(--radius-md);padding:var(--spacing-4) var(--spacing-6);align-items:center;gap:var(--spacing-8);background:#fffc;width:100%;max-width:42rem;display:flex}.session-card{padding:var(--spacing-4);background:var(--surface-container-lowest);border-radius:var(--radius-sm);cursor:pointer;border:var(--ghost-border);align-items:center;gap:var(--spacing-4);transition:background-color .15s;display:flex}.session-card:hover{background:var(--surface-container-high)}.session-card--selected{background:var(--surface-container-lowest);box-shadow:inset 0 0 0 1px #08447133}.session-card__identity{flex:2;min-width:0}.session-card__title{font-family:var(--font-display);color:var(--on-surface);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:600;overflow:hidden}.session-card__date{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--on-surface-variant);margin-top:.125rem;font-size:.625rem}.session-card__metrics{align-items:center;gap:var(--spacing-4);font-family:var(--font-mono);color:var(--on-surface-variant);flex:1;font-size:.75rem;display:flex}.session-card__metric{align-items:center;gap:var(--spacing-1);white-space:nowrap;display:flex}.session-card__status{flex-shrink:0}.raw-log{background:var(--inverse-surface);color:var(--inverse-on-surface);border-radius:var(--radius-sm);font-family:var(--font-mono);flex-direction:column;font-size:.8125rem;line-height:1.6;display:flex;overflow-y:auto}.raw-log__header{padding:var(--spacing-4);border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;display:flex}.raw-log__header-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--primary-container);font-size:.625rem;font-weight:700}.raw-log__dots{gap:var(--spacing-2);display:flex}.raw-log__dot{opacity:.5;border-radius:50%;width:.5rem;height:.5rem}.raw-log__dot--red{background:var(--error)}.raw-log__dot--yellow{background:var(--tertiary)}.raw-log__dot--blue{background:var(--primary)}.raw-log__content{padding:var(--spacing-4);flex:1;overflow-y:auto}.raw-log__line{gap:var(--spacing-4);display:flex}.raw-log__line-num{text-align:end;opacity:.3;-webkit-user-select:none;user-select:none;flex-shrink:0;width:2rem}.raw-log__line-text{color:var(--inverse-on-surface)}.raw-log__cursor{background:var(--primary);vertical-align:middle;width:.5rem;height:1rem;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.editor-panel{flex:1;grid-template-columns:1fr 2fr;min-height:0;display:grid}.editor-panel__raw{background:var(--inverse-surface);color:var(--inverse-on-surface);font-family:var(--font-mono);border-inline-end:1px solid #ffffff0d;flex-direction:column;font-size:.75rem;display:flex;overflow-y:auto}.editor-panel__raw-header{padding:0 var(--spacing-4);background:var(--inverse-surface);border-bottom:1px solid #ffffff0f;flex-shrink:0;justify-content:space-between;align-items:center;height:2.5rem;display:flex}.editor-panel__raw-label{text-transform:uppercase;letter-spacing:.04em;opacity:.6;font-size:.625rem}.editor-panel__raw-content{padding:var(--spacing-4);flex:1;line-height:1.6;overflow-y:auto}.editor-panel__draft{background:var(--surface-container-low);position:relative;overflow-y:auto}.editor-panel__draft-content{max-width:56rem;padding:var(--spacing-12);margin:0 auto;padding-bottom:8rem}.btn{justify-content:center;align-items:center;gap:var(--spacing-2);font-family:var(--font-body);padding:var(--spacing-2) var(--spacing-5);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;font-size:.875rem;font-weight:600;line-height:1.4;text-decoration:none;transition:opacity .15s,transform .1s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover{opacity:.9}.btn-secondary{color:var(--primary);border:var(--ghost-border);background:0 0}.btn-secondary:hover{background:var(--surface-container)}.btn-tertiary{color:var(--on-surface-variant);font-family:var(--font-mono);padding:var(--spacing-1) var(--spacing-2);background:0 0;border:none;font-size:.75rem;text-decoration:none}.btn-tertiary:hover{color:var(--primary);text-decoration:underline}.btn--lg{padding:var(--spacing-3) var(--spacing-8);font-size:.9375rem}.btn--full{width:100%}.btn--icon{padding:var(--spacing-2);width:2.5rem;height:2.5rem}.chip{align-items:center;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-3);background:var(--surface-container-high);border-radius:var(--radius-xs);font-family:var(--font-mono);color:var(--on-surface);border:var(--ghost-border);white-space:nowrap;font-size:.625rem;font-weight:700;display:inline-flex}.chip__dot{background:var(--primary);border-radius:50%;width:.25rem;height:.25rem}.chip--primary{color:var(--primary);background:#08447114}.chip--published,.chip--sealed{background:var(--secondary-container);color:var(--secondary);font-weight:600}.chip--draft{background:var(--tertiary-fixed);color:var(--tertiary)}.chip--enhanced{color:var(--primary);background:#0844711f}.chip--archived{background:var(--surface-container-highest);color:var(--on-surface-variant)}.chip--success{background:var(--secondary-container);color:var(--secondary)}.stats-grid{gap:var(--spacing-4);grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));display:grid}.stat-card__value{font-family:var(--font-display);color:var(--on-surface);font-size:2rem;font-weight:700;line-height:1}.stat-card__label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--on-surface-variant);margin-top:var(--spacing-2);font-size:.625rem}.terminal{background:var(--inverse-surface);color:var(--inverse-on-surface);border-radius:var(--radius-md);font-family:var(--font-mono);padding:var(--spacing-5);font-size:.8125rem;line-height:1.6;overflow-x:auto}.terminal__prompt{color:var(--primary-container)}.terminal__success{color:var(--secondary);font-weight:700}.terminal__error{color:var(--error-container)}.terminal__warn{color:var(--tertiary-container)}.terminal__muted{opacity:.4}.exec-path{gap:var(--spacing-4);flex-direction:column;display:flex}.exec-path__step{gap:var(--spacing-6);padding:var(--spacing-4);border-radius:var(--radius-sm);align-items:flex-start;transition:background-color .15s;display:flex}.exec-path__step:hover{background:var(--surface-container-lowest)}.exec-path__step-icon{background:var(--secondary-container);border-radius:var(--radius-md);width:2.5rem;height:2.5rem;color:var(--secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.exec-path__step-content{flex:1;min-width:0}.exec-path__step-num{font-family:var(--font-mono);color:var(--primary);font-size:.75rem;font-weight:700}.exec-path__step-title{font-family:var(--font-display);color:var(--on-surface);margin-top:var(--spacing-1);font-size:.9375rem;font-weight:700}.exec-path__step-desc{color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.875rem;line-height:1.5}.badge{align-items:center;gap:var(--spacing-1);padding:.125rem var(--spacing-2);border-radius:var(--radius-xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.02em;font-size:.625rem;font-weight:700;display:inline-flex}.badge--sealed{background:var(--primary-container);color:var(--on-primary-fixed);border:1px solid #0844711a}.badge--draft{background:var(--surface-container-high);color:var(--on-surface-variant)}.badge--published{background:var(--secondary-container);color:var(--secondary)}.badge--archived{background:var(--surface-container-highest);color:var(--on-surface-variant)}.label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--on-surface-variant);font-size:.625rem}.label--primary{color:var(--primary);font-weight:700}.input{font-family:var(--font-body);padding:var(--spacing-2) var(--spacing-4);background:var(--surface-container-lowest);border-radius:var(--radius-md);color:var(--on-surface);border:none;width:100%;font-size:.875rem;transition:box-shadow .15s;box-shadow:inset 0 0 0 1px #c2c7d033}.input:focus{outline:none;box-shadow:inset 0 0 0 1px #08447166}.input::placeholder{color:var(--outline-variant);opacity:.6}.textarea{font-family:var(--font-body);padding:var(--spacing-4);color:var(--on-surface);resize:none;background:0 0;border:none;width:100%;font-size:1rem;line-height:1.6}.textarea:focus{outline:none}.textarea::placeholder{color:var(--on-surface-variant);opacity:.7}.card{background:var(--surface-container-lowest);border-radius:var(--radius-sm);border:var(--ghost-border);padding:var(--spacing-6)}.card--elevated{box-shadow:var(--shadow-ambient)}.divider{height:1px;margin:var(--spacing-6) 0;background:#c2c7d026;border:none}.blueprint-grid{z-index:-1;pointer-events:none;opacity:.03;background-image:radial-gradient(var(--primary) .5px, transparent .5px);background-size:24px 24px;position:fixed;inset:0}.glass-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:var(--ghost-border);background:#fffc}.text-display-lg{font-family:var(--font-display);letter-spacing:-.02em;color:var(--on-surface);font-size:3.5rem;font-weight:700;line-height:1.1}.text-headline{font-family:var(--font-display);letter-spacing:-.02em;color:var(--on-surface);font-size:1.875rem;font-weight:700}.text-title{font-family:var(--font-body);color:var(--on-surface);font-size:1.25rem;font-weight:600}.text-body{font-family:var(--font-body);color:var(--on-surface);font-size:.875rem;line-height:1.5}.text-label{font-family:var(--font-mono);color:var(--on-surface-variant);font-size:.75rem}.text-label-sm{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--on-surface-variant);font-size:.625rem}.text-mono{font-family:var(--font-mono)}.setup-banner{background:var(--tertiary-fixed);padding:var(--spacing-4) var(--spacing-6);border-radius:var(--radius-sm);margin-bottom:var(--spacing-8);align-items:center;gap:var(--spacing-3);display:flex}.setup-banner__icon{color:var(--tertiary);flex-shrink:0;font-size:1rem;font-weight:600}.setup-banner__text{color:var(--tertiary);font-size:.875rem}.setup-banner__action{flex-shrink:0;margin-left:auto}.empty-state__desc{color:var(--on-surface-variant);max-width:400px;font-size:.9375rem;line-height:1.6}.empty-state__cmd{margin-top:var(--spacing-8)}.empty-state__cmd code{font-family:var(--font-mono);color:var(--on-surface-variant);background:var(--surface-container-low);padding:var(--spacing-3) var(--spacing-5);border-radius:var(--radius-sm);font-size:.8125rem;display:inline-block}.chip--queued{background:var(--surface-container-highest);color:var(--on-surface-variant);opacity:.7}.chip--processing{color:#006a61;background:#006a6126;animation:1.2s ease-in-out infinite chip-pulse}@keyframes chip-pulse{0%,to{opacity:1}50%{opacity:.5}}.chip--uploaded{background:var(--secondary-container);color:var(--secondary);font-weight:600}.chip--failed{color:#ba1a1a;background:#ba1a1a1f;font-weight:600}.sidebar-stats{font-family:var(--font-mono);color:var(--on-surface-variant);font-size:.75rem;line-height:2}.sidebar-stats strong{color:var(--on-surface)}.terminal-line{line-height:1.8}.terminal-line--prompt{color:#34d399}.terminal-line--ai{color:#60a5fa}.terminal-line--dim{color:#ffffff4d}.terminal-line--success{color:#34d399;font-weight:600}.settings-page{max-width:40rem;padding:var(--spacing-8);gap:var(--spacing-8);flex-direction:column;margin:0 auto;display:flex}.settings-section{gap:var(--spacing-4);flex-direction:column;display:flex}.settings-row{justify-content:space-between;align-items:center;display:flex}.settings-row__label{font-family:var(--font-body);color:var(--on-surface-variant);font-size:.875rem}.settings-row__value{font-family:var(--font-mono);color:var(--on-surface);font-size:.8125rem}.settings-input-group{gap:var(--spacing-2);flex-direction:column;display:flex}.settings-input-wrapper{position:relative}.settings-input-wrapper .input{padding-right:3rem}.settings-input-toggle{right:var(--spacing-2);color:var(--on-surface-variant);cursor:pointer;padding:var(--spacing-1);font-family:var(--font-mono);text-transform:uppercase;background:0 0;border:none;font-size:.625rem;position:absolute;top:50%;transform:translateY(-50%)}.settings-help{color:var(--outline);font-size:.75rem;line-height:1.4}.collapsible{background:var(--surface-container-lowest);border-radius:var(--radius-sm);border:1px solid #c2c7d026;overflow:hidden}.collapsible__summary{padding:var(--spacing-4);cursor:pointer;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;font-size:.75rem;font-weight:700;list-style:none;transition:background-color .15s;display:flex}.collapsible__summary:hover{background:var(--surface-container-low)}.collapsible__summary::-webkit-details-marker{display:none}.collapsible__chevron{color:var(--on-surface-variant);font-size:1.25rem;transition:transform .2s}details[open]>.collapsible__summary .collapsible__chevron{transform:rotate(180deg)}.collapsible__content{padding:var(--spacing-4);border-top:1px solid #c2c7d01a;padding-top:0}.file-list{font-family:var(--font-mono);gap:var(--spacing-2);padding-top:var(--spacing-4);flex-direction:column;font-size:.8125rem;display:flex}.file-list__item{align-items:center;gap:var(--spacing-3);display:flex}.file-list__additions{color:var(--secondary);text-align:end;min-width:3rem;font-weight:600}.file-list__deletions{color:var(--error);text-align:end;min-width:3rem;font-weight:600}.file-list__path{color:var(--on-surface)}.tool-bar{gap:var(--spacing-3);padding-top:var(--spacing-4);flex-direction:column;display:flex}.tool-bar__item{align-items:center;gap:var(--spacing-3);display:flex}.tool-bar__name{font-family:var(--font-mono);color:var(--on-surface-variant);min-width:4rem;font-size:.75rem}.tool-bar__track{background:var(--surface-container-high);border-radius:var(--radius-xs);flex:1;height:.375rem;overflow:hidden}.tool-bar__fill{background:var(--primary);border-radius:var(--radius-xs);height:100%;transition:width .3s}.tool-bar__count{font-family:var(--font-mono);color:var(--on-surface-variant);text-align:end;min-width:2rem;font-size:.6875rem}.timeline-list{gap:var(--spacing-3);padding-top:var(--spacing-4);flex-direction:column;display:flex}.timeline-list__item{align-items:flex-start;gap:var(--spacing-3);display:flex}.timeline-list__time{font-family:var(--font-mono);color:var(--outline);min-width:3.5rem;padding-top:.125rem;font-size:.625rem}.timeline-list__content{background:var(--surface-container);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-sm);font-family:var(--font-mono);color:var(--on-surface-variant);flex:1;font-size:.75rem}.timeline-list__content--prompt{color:var(--primary);background:#0844710f}.enhance-layout{flex:1;grid-template-columns:5fr 7fr;min-height:0;display:grid}@media (width<=768px){.enhance-layout{grid-template-columns:1fr}}.enhance-layout__left{background:var(--inverse-surface);color:var(--inverse-on-surface);font-family:var(--font-mono);flex-direction:column;font-size:.8125rem;display:flex;overflow-y:auto}.enhance-layout__left-header{padding:var(--spacing-4) var(--spacing-5);border-bottom:1px solid #ffffff0f;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.enhance-layout__left-label{text-transform:uppercase;letter-spacing:.08em;opacity:.6;font-size:.6875rem}.enhance-layout__left-id{color:var(--outline);font-size:.625rem}.enhance-layout__left-content{padding:var(--spacing-5);flex:1;line-height:1.6;overflow-y:auto}.enhance-layout__right{background:var(--surface-container-low);padding:var(--spacing-8);overflow-y:auto}.enhance-layout__right-inner{max-width:42rem;margin:0 auto}.enhance-status{border-radius:var(--radius-md);padding:var(--spacing-5);align-items:center;gap:var(--spacing-4);margin-bottom:var(--spacing-8);background:#0844710d;border:1px solid #0844711a;display:flex}.enhance-status__icon{background:var(--primary);width:2.5rem;height:2.5rem;color:var(--on-primary);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;display:flex}.enhance-status__title{font-family:var(--font-display);color:var(--primary);font-size:.875rem;font-weight:700}.enhance-status__desc{color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.75rem}.enhance-question{background:var(--surface-container-lowest);border-radius:var(--radius-sm);padding:var(--spacing-6);margin-bottom:var(--spacing-4);border:1px solid #c2c7d026}.enhance-question__text{font-family:var(--font-display);color:var(--on-surface);margin-bottom:var(--spacing-3);font-size:.9375rem;font-weight:600}.enhance-question__suggested{color:var(--outline);margin-bottom:var(--spacing-3);font-size:.8125rem;font-style:italic}.enhance-question__textarea{font-family:var(--font-body);padding:var(--spacing-3) var(--spacing-4);background:var(--surface-container-low);border-radius:var(--radius-sm);color:var(--on-surface);resize:vertical;border:1px solid #c2c7d04d;width:100%;min-height:4rem;font-size:.875rem;line-height:1.5}.enhance-question__textarea:focus{border-color:#08447166;outline:none}.enhance-question__textarea::placeholder{color:var(--on-surface-variant);opacity:.7}.enhance-question__skip{font-family:var(--font-mono);color:var(--outline);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;margin-top:var(--spacing-2);background:0 0;border:none;font-size:.6875rem}.enhance-question__skip:hover{color:var(--primary);text-decoration:underline}.enhance-streaming__item{opacity:0;transition:opacity .3s,transform .3s;transform:translateY(4px)}.enhance-streaming__item--visible{opacity:1;transform:translateY(0)}.enhance-actions{padding-top:var(--spacing-6);margin-top:var(--spacing-8);border-top:1px solid #c2c7d026;justify-content:space-between;align-items:center;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=768px){.app-sidebar{border-right:none;border-bottom:var(--ghost-border);width:100%;max-height:3rem;transition:max-height .2s;overflow:hidden}.app-sidebar--expanded{max-height:50vh;overflow-y:auto}.app-shell__body{flex-direction:column}.app-main__header{padding:var(--spacing-4)}.app-main__title{font-size:1.5rem}}@media (width<=375px){.session-card{padding:var(--spacing-3);gap:var(--spacing-3)}.session-card__metrics{display:none}.session-card__title{font-size:.875rem}.app-bottom-bar{padding:var(--spacing-2) var(--spacing-3)}.app-bottom-bar__inner{padding:var(--spacing-3) var(--spacing-4);gap:var(--spacing-4);border-radius:var(--radius-sm)}.app-main__header{padding:var(--spacing-3)}.app-main__title{font-size:1.25rem}.app-sidebar__section{padding:var(--spacing-3)}}.tool-breakdown-rows{flex-direction:column;gap:4px;display:flex}.tool-breakdown-row{align-items:center;gap:var(--spacing-3);display:flex}.tool-breakdown-row__label{font-family:var(--font-mono);color:var(--on-surface-variant);text-align:right;flex-shrink:0;width:60px;font-size:.75rem}.tool-breakdown-row__track{background:var(--surface-container-low);border-radius:3px;flex:1;height:6px;overflow:hidden}.tool-breakdown-row__bar{background:var(--primary);border-radius:3px;height:100%}.tool-breakdown-row__count{font-family:var(--font-mono);width:30px;font-size:.75rem}.turn-timeline-entries{flex-direction:column;display:flex}.turn-timeline-entry{align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-2) 0;border-bottom:1px solid var(--ghost-border);display:flex}.turn-timeline-entry__num{font-family:var(--font-mono);color:var(--on-surface-variant);text-align:right;flex-shrink:0;width:24px;font-size:.6875rem}.turn-timeline-entry__content{flex:1;font-size:.8125rem}.turn-timeline-entry__tools{flex-shrink:0;gap:2px;display:flex}.chip--sm{padding:1px 6px;font-size:.5625rem}.turn-timeline-more{padding:var(--spacing-3) 0;font-family:var(--font-mono);color:var(--on-surface-variant);text-align:center;font-size:.75rem}.files-changed-list{flex-direction:column;display:flex}.files-changed-row{padding:var(--spacing-1) 0;font-family:var(--font-mono);justify-content:space-between;font-size:.75rem;display:flex}.files-changed-row__path{color:var(--on-surface)}.files-changed-row__count{color:var(--on-surface-variant)}.dashboard{max-width:960px;padding:var(--spacing-8);margin:0 auto}.dashboard__title{font-family:var(--font-display);margin-bottom:var(--spacing-2);font-size:2rem;font-weight:700}.dashboard__subtitle{color:var(--on-surface-variant);margin-bottom:var(--spacing-8);font-size:.9375rem;line-height:1.6}.dashboard__cards{gap:var(--spacing-4);flex-direction:column;display:flex}.dashboard-banner{font-family:var(--font-mono,monospace);color:#92400e;padding:var(--spacing-3) var(--spacing-4);margin-bottom:var(--spacing-4);text-align:center;background:#fef3c7;border-radius:4px;font-size:.8125rem}.dashboard-banner__link{color:#084471;font-family:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.dashboard-loading,.dashboard-error{padding:var(--spacing-20) 0;color:var(--on-surface-variant);justify-content:center;align-items:center;font-size:.9375rem;display:flex}.empty-state{padding:var(--spacing-20) 0;text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state__icon{background:var(--surface-container-low);width:64px;height:64px;margin-bottom:var(--spacing-6);color:var(--on-surface-variant);border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;display:flex}.empty-state__title{font-family:var(--font-display);margin-bottom:var(--spacing-3);font-size:1.5rem;font-weight:700}.empty-state__text{color:var(--on-surface-variant);max-width:400px;font-size:.9375rem;line-height:1.6}.empty-state__text code{font-family:var(--font-mono);background:var(--surface-container-low);border-radius:var(--radius-sm);padding:2px 6px;font-size:.8125rem}.empty-state__hint{margin-top:var(--spacing-8)}.empty-state__hint code{font-family:var(--font-mono);color:var(--on-surface-variant);background:var(--surface-container-low);padding:var(--spacing-3) var(--spacing-5);border-radius:var(--radius-sm);font-size:.8125rem;display:inline-block}.project-card{background:var(--surface-container-lowest);border:1px solid var(--ghost-border);border-radius:var(--radius-sm);padding:var(--spacing-6);cursor:pointer;transition:box-shadow .15s}.project-card:hover{box-shadow:var(--shadow-sm)}.project-card__header{margin-bottom:var(--spacing-4);justify-content:space-between;align-items:flex-start;display:flex}.project-card__title-row{align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-2);display:flex}.project-card__dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.project-card__name{font-family:var(--font-display);font-size:1.25rem;font-weight:700}.project-card__desc{color:var(--on-surface-variant);font-size:.875rem;line-height:1.5}.project-card__date{font-family:var(--font-mono);color:var(--on-surface-variant);margin-top:var(--spacing-2);font-size:.6875rem}.project-card__date-ago{opacity:.5}.project-card__actions{gap:var(--spacing-2);flex-shrink:0;display:flex}.project-card__upload-btn{padding:var(--spacing-2) var(--spacing-5);flex-shrink:0;font-size:.8125rem}.project-card__badge{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;background:var(--primary-container,#e0ecf6);color:var(--primary,#084471);border-radius:3px;padding:2px 8px;font-size:.625rem;font-weight:600}.project-card__badge--stale{color:#92400e;background:#fef3c7}.project-card__badge--published{color:#16a34a;background:#dcfce7}.triage-item__published-badge{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:#16a34a;margin-left:var(--spacing-2,.5rem);vertical-align:middle;background:#dcfce7;border-radius:3px;padding:1px 6px;font-size:.6rem;font-weight:600}.work-timeline__scroll-controls{gap:var(--spacing-2,.5rem);margin-bottom:var(--spacing-2,.5rem);justify-content:flex-end;display:flex}.work-timeline__scroll-btn{color:#374151;width:32px;height:28px;font-family:var(--font-mono,monospace);cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;justify-content:center;align-items:center;font-size:.875rem;transition:background .1s;display:flex}.work-timeline__scroll-btn:hover{background:#f3f4f6}.work-timeline__scroll-btn:active{background:#e5e7eb}.project-card__stats{gap:var(--spacing-4);margin-bottom:var(--spacing-4);grid-template-columns:repeat(4,1fr);display:grid}.project-card__stat-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);font-size:.5625rem}.project-card__stat-value{font-family:var(--font-display);font-size:1.25rem;font-weight:700}.project-card__skills{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.upload-flow{max-width:800px;padding:var(--spacing-8);margin:0 auto}.upload-flow__label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);margin-bottom:var(--spacing-2);font-size:.6875rem}.upload-flow__title{font-family:var(--font-display);margin-bottom:var(--spacing-2);font-size:1.75rem;font-weight:700}.upload-flow__date{font-family:var(--font-mono);color:var(--on-surface-variant);margin-bottom:var(--spacing-3);font-size:.6875rem}.upload-flow__desc{color:var(--on-surface-variant);margin-bottom:var(--spacing-8);font-size:.9375rem;line-height:1.6}.upload-flow__stat-grid{gap:var(--spacing-4);margin-bottom:var(--spacing-8);grid-template-columns:repeat(4,1fr);display:grid}.upload-flow__section-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);margin-bottom:var(--spacing-3);font-size:.625rem}.upload-flow__section-label--selected{color:var(--secondary)}.upload-flow__scan-status{align-items:center;gap:var(--spacing-2);font-family:var(--font-mono);color:var(--secondary);margin-bottom:var(--spacing-4);font-size:.6875rem;display:flex}.upload-flow__auto-select-banner{font-family:var(--font-mono);color:var(--secondary);padding:var(--spacing-3) var(--spacing-4);background:var(--surface-container,#f5f7fa);margin-bottom:var(--spacing-3);border-radius:6px;font-size:.75rem}.upload-flow__actions{gap:var(--spacing-3);margin-top:var(--spacing-8);justify-content:flex-end;display:flex}.stat-card{background:var(--surface-container-lowest);padding:var(--spacing-5);border-radius:var(--radius-sm);border:1px solid var(--ghost-border)}.stat-card__label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);margin-bottom:var(--spacing-1);font-size:.625rem}.stat-card__value{font-family:var(--font-display);font-size:1.5rem;font-weight:700}.session-table{background:var(--surface-container-lowest);border:1px solid var(--ghost-border);border-radius:var(--radius-sm);margin-bottom:var(--spacing-8);max-height:320px;overflow-y:auto}.session-table__header{padding:var(--spacing-2) var(--spacing-4);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--on-surface-variant);background:var(--surface-container-low);grid-template-columns:1fr 70px 60px 60px 60px;font-size:.625rem;display:grid;position:sticky;top:0}.session-table__row{padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--ghost-border);grid-template-columns:1fr 70px 60px 60px 60px;font-size:.8125rem;display:grid}.session-table__name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.session-table__cell{text-align:right;font-family:var(--font-mono);color:var(--on-surface-variant);font-size:.75rem}.phase-bar{gap:var(--spacing-1);margin-bottom:var(--spacing-6);display:flex}.phase-bar__segment{background:var(--surface-container-high);border-radius:2px;flex:1;height:3px}.phase-bar__segment--active{background:var(--primary)}.triage-method-banner{align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);margin-bottom:var(--spacing-4);border-radius:var(--radius-sm);background:var(--surface-container,#f5f7fa);border:1px solid var(--outline-variant);color:var(--on-surface-variant);font-size:.8125rem;display:flex}.triage-method-banner__icon{flex-shrink:0;font-size:1rem}.triage-method-banner__link{color:var(--primary);white-space:nowrap;text-decoration:underline}.triage-list{gap:var(--spacing-2);margin-bottom:var(--spacing-8);flex-direction:column;display:flex}.triage-item{align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-4);border-radius:var(--radius-sm);flex-wrap:wrap;display:flex}.triage-item--selected{background:var(--surface-container-lowest);border:1px solid #006a6126}.triage-item--skipped{background:var(--surface-container-low);opacity:.7}.triage-item__checkbox{accent-color:var(--secondary);flex-shrink:0;width:16px;height:16px}.triage-item__info{flex:1;min-width:200px}.triage-item__name{text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:600;overflow:hidden}.triage-item__stats{font-family:var(--font-mono);color:var(--on-surface-variant);white-space:nowrap;font-size:.6875rem}.triage-item__reason{font-family:var(--font-mono);border-radius:var(--radius-sm);max-width:280px;padding:2px 8px;font-size:.625rem;line-height:1.4}.triage-item__reason--selected{color:var(--secondary);background:#006a6114}.triage-item__reason--skipped{background:var(--surface-container-high);color:var(--on-surface-variant);font-size:.5625rem}.triage-item__reason--expandable{cursor:pointer}.triage-item__reason--expandable:hover{opacity:.85}.triage-skipped{margin-bottom:var(--spacing-8)}.triage-skipped__summary{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);cursor:pointer;align-items:center;gap:var(--spacing-2);font-size:.625rem;list-style:none;display:flex}.triage-skipped__summary::-webkit-details-marker{display:none}.enhance-split{grid-template-columns:340px 1fr;height:calc(100vh - 3.5rem);display:grid}@media (width<=768px){.enhance-split{grid-template-columns:1fr}}.enhance-split__left{background:var(--inverse-surface);color:#fffc;padding:var(--spacing-6);flex-direction:column;height:100%;display:flex;overflow:hidden}.enhance-split__left-header{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#fff6;margin-bottom:var(--spacing-5);font-size:.6875rem}.enhance-split__feed{gap:var(--spacing-4);scroll-behavior:smooth;flex-direction:column;flex:1;display:flex;overflow-y:auto}.enhance-feed-item--pending{opacity:.3}.enhance-feed-item__row{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-1);display:flex}.enhance-feed-item__check{color:#34d399;flex-shrink:0;font-size:.75rem}.enhance-feed-item__spinner{border:2px solid #fbbf24;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:12px;height:12px;animation:1s linear infinite spin;display:inline-block}.enhance-feed-item__circle{color:#fff6;flex-shrink:0;font-size:.75rem}.enhance-feed-item__title{font-family:var(--font-mono);color:#fffc;font-size:.75rem}.enhance-feed-item__title--active{color:#fbbf24}.enhance-feed-item__detail{font-family:var(--font-mono);color:#ffffff59;padding-inline-start:var(--spacing-5);font-size:.625rem}.enhance-split__narrative-box{margin-top:var(--spacing-8);padding:var(--spacing-4);border-radius:var(--radius-sm);background:#ffffff0d}.enhance-split__narrative-label{font-family:var(--font-mono);color:#fff6;margin-bottom:var(--spacing-2);font-size:.625rem}.enhance-split__narrative-status{align-items:center;gap:var(--spacing-2);font-family:var(--font-mono);color:#ffffff80;font-size:.6875rem;display:flex}.enhance-split__blink-dot{background:var(--secondary);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.2s infinite blink;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.enhance-split__right{padding:var(--spacing-8);overflow-y:auto}.enhance-split__narrative-text{color:var(--on-surface-variant);margin-bottom:var(--spacing-6);border-inline-start:2px solid var(--surface-container-high);padding-inline-start:var(--spacing-4);font-size:.9375rem;line-height:1.7}.enhance-split__skills{gap:var(--spacing-2);margin-bottom:var(--spacing-6);flex-wrap:wrap;display:flex}.enhance-split__arc{gap:var(--spacing-3);margin-bottom:var(--spacing-6);flex-direction:column;display:flex}.enhance-split__arc-item{gap:var(--spacing-3);align-items:flex-start;display:flex}.enhance-split__arc-item--generating{opacity:.4}.enhance-split__arc-num{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--primary);background:#08447114;flex-shrink:0;justify-content:center;align-items:center;font-size:.625rem;font-weight:600;display:flex}.enhance-split__arc-title{font-size:.875rem;font-weight:600}.enhance-split__arc-desc{color:var(--on-surface-variant);font-size:.75rem}.questions-list{gap:var(--spacing-6);margin-bottom:var(--spacing-8);flex-direction:column;display:flex}.question-card__tag-row{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-2);display:flex}.question-card__tag{font-family:var(--font-mono);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.08em;padding:2px 6px;font-size:.5625rem}.question-card__tag--pattern{background:var(--tertiary-fixed);color:var(--tertiary)}.question-card__tag--architecture{color:var(--primary);background:#08447114}.question-card__tag--evolution{background:var(--secondary-container);color:var(--secondary)}.question-card__text{margin-bottom:var(--spacing-3);font-size:.9375rem;font-weight:600;line-height:1.4}.question-card__textarea{width:100%;min-height:80px;padding:var(--spacing-3);border:1px solid var(--surface-container-high);border-radius:var(--radius-sm);font-family:var(--font-body);resize:vertical;background:var(--surface-container-low);color:var(--on-surface);font-size:.875rem;line-height:1.6}.question-card__textarea:focus{border-color:#08447166;outline:none}.question-card__textarea::placeholder{color:var(--on-surface-variant);opacity:.7}.timeline{margin-bottom:var(--spacing-8);padding-inline-start:var(--spacing-8);position:relative}.timeline__line{inset-inline-start:10px;background:var(--outline-variant);width:2px;position:absolute;top:0;bottom:0}.timeline__period{margin-bottom:var(--spacing-8)}.timeline__period:last-child{margin-bottom:0}.timeline__period-header{align-items:baseline;gap:var(--spacing-2);margin-bottom:var(--spacing-4);display:flex}.timeline__period-date{font-family:var(--font-mono);color:var(--on-surface);letter-spacing:.02em;font-size:.75rem;font-weight:600}.timeline__period-sep{color:var(--on-surface-variant);font-size:.75rem}.timeline__period-label{font-family:var(--font-mono);color:var(--on-surface-variant);letter-spacing:.02em;font-size:.75rem}.timeline__featured{align-items:flex-start;gap:var(--spacing-4);margin-bottom:var(--spacing-4);display:flex;position:relative}.timeline__dot--large{inset-inline-start:calc(-1 * var(--spacing-8) - 1px);top:var(--spacing-2);background:var(--primary);border:3px solid var(--surface);z-index:1;border-radius:50%;flex-shrink:0;width:22px;height:22px;position:absolute}.timeline__card{background:var(--surface-container-lowest);border:var(--ghost-border);border-radius:var(--radius-md);padding:var(--spacing-4) var(--spacing-5);flex:1}.timeline__card-header{align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-2);display:flex}.timeline__card-title{font-family:var(--font-display);color:var(--on-surface);font-size:1rem;font-weight:600}.timeline__card-tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--tertiary);background:var(--tertiary-fixed);border-radius:var(--radius-sm);white-space:nowrap;padding:2px 8px;font-size:.5625rem;font-weight:600}.timeline__card-meta{gap:var(--spacing-3);font-family:var(--font-mono);color:var(--on-surface-variant);margin-bottom:var(--spacing-2);font-size:.6875rem;display:flex}.timeline__card-desc{color:var(--on-surface-variant);margin-bottom:var(--spacing-3);font-size:.875rem;line-height:1.6}.timeline__card-skills{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.timeline__collapsed{align-items:center;gap:var(--spacing-4);margin-bottom:var(--spacing-3);display:flex;position:relative}.timeline__dot--small{inset-inline-start:calc(-1 * var(--spacing-8) + 4px);background:var(--surface-container-high);border:2px solid var(--surface);z-index:1;border-radius:50%;flex-shrink:0;width:12px;height:12px;position:absolute;top:50%;transform:translateY(-50%)}.timeline__collapsed-text{font-family:var(--font-mono);color:var(--on-surface-variant);font-size:.6875rem;line-height:1.5}.review-card{background:var(--surface-container-lowest);border:1px solid var(--ghost-border);border-radius:var(--radius-sm);padding:var(--spacing-6);margin-bottom:var(--spacing-6)}.review-card__name{font-family:var(--font-display);margin-bottom:var(--spacing-3);font-size:1.5rem;font-weight:700}.review-card__narrative{color:var(--on-surface-variant);margin-bottom:var(--spacing-6);font-size:.9375rem;line-height:1.6}.review-card__skills{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.review-checklist{background:var(--surface-container-low);border-radius:var(--radius-sm);padding:var(--spacing-5) var(--spacing-6);margin-bottom:var(--spacing-6)}.review-checklist__item{align-items:center;gap:var(--spacing-3);padding:var(--spacing-2) 0;color:var(--on-surface);font-size:.875rem;display:flex}.review-checklist__item--skipped{color:var(--on-surface-variant)}.review-checklist__icon{text-align:center;flex-shrink:0;width:1.25rem;font-size:.875rem}.review-checklist__icon--checked{color:var(--secondary);font-weight:700}.review-checklist__icon--skipped{color:var(--on-surface-variant)}.review-details{background:var(--surface-container-lowest);border:1px solid var(--ghost-border);border-radius:var(--radius-sm);padding:var(--spacing-6);margin-bottom:var(--spacing-6)}.review-details__header{margin-bottom:var(--spacing-5);justify-content:space-between;align-items:baseline;display:flex}.review-details__optional{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);font-size:.625rem}.review-field{margin-bottom:var(--spacing-5)}.review-field:last-child{margin-bottom:0}.review-field__label{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-2);color:var(--on-surface);font-size:.8125rem;font-weight:600;display:flex}.review-field__badge{font-family:var(--font-mono);color:var(--secondary);border-radius:var(--radius-sm);background:#006a6114;padding:2px 8px;font-size:.625rem;font-weight:600}.review-field__input{width:100%;padding:var(--spacing-3) var(--spacing-4);font-family:var(--font-body);border:1px solid var(--ghost-border);border-radius:var(--radius-sm);background:var(--surface);color:var(--on-surface);outline:none;font-size:.875rem;transition:border-color .15s;display:block}.review-field__input:focus{border-color:var(--primary)}.review-field__input::placeholder{color:var(--on-surface-variant);opacity:.6}.review-dropzone{justify-content:center;align-items:center;gap:var(--spacing-2);padding:var(--spacing-8) var(--spacing-6);border:2px dashed var(--ghost-border);border-radius:var(--radius-sm);cursor:pointer;flex-direction:column;transition:border-color .15s,background .15s;display:flex}.review-dropzone:hover,.review-dropzone:focus-visible{border-color:var(--primary);background:#08447108;outline:none}.review-dropzone__icon{opacity:.5;font-size:1.5rem}.review-dropzone__text{color:var(--on-surface-variant);font-size:.8125rem}.review-auth{margin:var(--spacing-5) 0}.review-auth__card{border:1px solid var(--ghost-border);border-radius:var(--radius-sm);padding:var(--spacing-5) var(--spacing-6);background:var(--surface)}.review-auth__title{font-family:var(--font-heading);margin:0 0 var(--spacing-3) 0;font-size:1rem;font-weight:600}.review-auth__instructions{color:var(--on-surface-variant);margin:0 0 var(--spacing-4) 0;font-size:.875rem;line-height:1.5}.review-auth__instructions a{color:var(--primary);text-decoration:underline}.review-auth__code{font-family:var(--font-mono);letter-spacing:.15em;text-align:center;padding:var(--spacing-4);background:var(--bg);border-radius:var(--radius-sm);margin-bottom:var(--spacing-3);font-size:1.5rem;font-weight:700}.review-auth__polling{color:var(--on-surface-variant);text-align:center;margin:0;font-size:.8125rem}.upload-flow__error{padding:var(--spacing-3) var(--spacing-4);margin:var(--spacing-4) 0;border:1px solid var(--error,#dc2626);border-radius:var(--radius-sm);color:var(--error,#dc2626);background:#dc26260d;align-items:center;font-size:.875rem;display:flex}.enhance-error{padding:var(--spacing-4);border:1px solid var(--error,#dc2626);border-radius:var(--radius-sm);background:#dc26260d}.enhance-error__message{color:var(--error,#dc2626);margin-bottom:var(--spacing-3);font-size:.875rem}.enhance-feed-item--failed{opacity:1}.enhance-feed-item__fail{color:#dc2626;margin-right:var(--spacing-2);font-weight:700}.enhance-feed-item__title--failed,.enhance-feed-item__detail--failed{color:#dc2626}.enhance-split__failure-recovery{margin-top:var(--spacing-4);padding:var(--spacing-4);border:1px solid var(--outline-variant);border-radius:var(--radius-sm);background:var(--surface-container,#f5f7fa)}.enhance-split__failure-text{color:var(--on-surface-variant);margin:0 0 var(--spacing-3);font-size:.875rem}.publish-error{padding:var(--spacing-4);margin:var(--spacing-4) 0;border:1px solid var(--error,#dc2626);border-radius:var(--radius-sm);background:#dc26260d}.publish-error__message{color:var(--error,#dc2626);margin-bottom:var(--spacing-3);font-size:.875rem;font-weight:600}.publish-error__sessions{gap:var(--spacing-2);margin-bottom:var(--spacing-3);flex-direction:column;display:flex}.publish-error__session-row{align-items:center;gap:var(--spacing-2);font-size:.8125rem;font-family:var(--font-mono);display:flex}.publish-error__icon--published{color:var(--success-fg,#16a34a)}.publish-error__icon--failed{color:var(--error,#dc2626)}.publish-error__session-title{flex:1}.publish-error__session-error{color:var(--on-surface-variant);font-size:.75rem}.publish-error__actions{gap:var(--spacing-3);flex-wrap:wrap;display:flex}.publish-progress{margin:var(--spacing-4) 0;padding:var(--spacing-4);background:var(--surface-container,#f5f7fa);border-radius:var(--radius-sm)}.publish-progress__sessions{gap:var(--spacing-2);flex-direction:column;display:flex}.publish-progress__row{align-items:center;gap:var(--spacing-2);font-size:.8125rem;font-family:var(--font-mono);display:flex}.success-card{text-align:center;max-width:480px;margin:var(--spacing-8) auto;flex-direction:column;align-items:center;display:flex}.success-card__icon{margin-bottom:var(--spacing-4)}.success-card__title{font-family:var(--font-display);color:var(--on-surface);margin-bottom:var(--spacing-2);font-size:1.5rem;font-weight:700}.success-card__subtitle{color:var(--on-surface-variant);margin-bottom:var(--spacing-6);font-size:.9375rem;line-height:1.6}.success-card__preview{background:linear-gradient(135deg, var(--primary-fixed,#d3e3f4) 0%, var(--surface-container-low) 100%);border:var(--ghost-border);border-radius:var(--radius-md);width:100%;padding:var(--spacing-5) var(--spacing-6);margin-bottom:var(--spacing-4);text-align:left}.success-card__preview-name{font-family:var(--font-display);color:var(--on-surface);margin-bottom:var(--spacing-2);font-size:1.125rem;font-weight:700}.success-card__preview-narrative{color:var(--on-surface-variant);margin-bottom:var(--spacing-4);font-size:.8125rem;line-height:1.6}.success-card__preview-stats{gap:var(--spacing-3);grid-template-columns:repeat(4,1fr);display:grid}.success-card__preview-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.success-card__preview-stat-value{font-family:var(--font-mono);color:var(--on-surface);font-size:1rem;font-weight:700}.success-card__preview-stat-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);font-size:.5625rem}.success-card__url-bar{background:var(--surface-container-lowest);border:var(--ghost-border);border-radius:var(--radius-sm);width:100%;padding:var(--spacing-2) var(--spacing-3);margin-bottom:var(--spacing-4);align-items:center;display:flex}.success-card__url-text{font-family:var(--font-mono);color:var(--on-surface);text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.8125rem;overflow:hidden}.success-card__url-copy{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius-sm);padding:var(--spacing-1) var(--spacing-3);cursor:pointer;background:0 0;flex-shrink:0;font-size:.6875rem;font-weight:600;transition:background .15s}.success-card__url-copy:hover{background:#0844710f}.success-card__meta{align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-6);justify-content:center;width:100%;display:flex}.success-card__badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--success-fg,#16a34a);background:var(--success-bg,#dcfce7);border-radius:var(--radius-sm);padding:2px 8px;font-size:.5625rem;font-weight:600}.success-card__meta-text{font-family:var(--font-mono);color:var(--on-surface-variant);font-size:.6875rem}.success-card__actions{gap:var(--spacing-3);width:100%;display:flex}.triage-terminal{background:var(--inverse-surface);color:var(--inverse-on-surface);border-radius:var(--radius-lg,12px);padding:var(--spacing-6);max-width:640px;margin:var(--spacing-8) auto;font-family:var(--font-mono);font-size:.8125rem;line-height:1.7}.triage-terminal__feed{scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;max-height:480px;overflow-y:auto}.triage-terminal__line{white-space:pre;min-height:1.7em}.triage-terminal__prompt{color:var(--inverse-primary,#9dcaff);margin-bottom:var(--spacing-2);font-weight:600}.triage-terminal__section{color:#ffffff80;font-weight:600}.triage-terminal__line--passed{color:#34d399}.triage-terminal__line--skipped{color:#f87171}.triage-terminal__line--active{color:#fbbf24}@media (prefers-reduced-motion:reduce){.triage-terminal__line--active{animation:none}}.project-preview{background:var(--surface);z-index:100;position:fixed;inset:0;overflow-y:auto}.project-preview__close{top:var(--spacing-4);right:var(--spacing-6);z-index:101;font-family:var(--font-mono);color:var(--on-surface-variant);background:var(--surface-container-low);border:1px solid var(--surface-container-high);padding:var(--spacing-2) var(--spacing-4);cursor:pointer;border-radius:.375rem;font-size:.8125rem;transition:color .15s;position:fixed}.project-preview__close:hover{color:var(--on-surface)}.project-preview__close:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.project-preview__content{max-width:1000px;padding:var(--spacing-8);margin:0 auto}.project-preview__breadcrumb{font-family:var(--font-mono);color:var(--on-surface-variant);margin-bottom:var(--spacing-2);font-size:.75rem}.project-preview__title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--on-surface);margin:0 0 var(--spacing-4) 0;font-size:2.5rem;font-weight:700;line-height:1.15}.project-preview__links{align-items:center;gap:var(--spacing-4);margin-bottom:var(--spacing-6);display:flex}.project-preview__link{align-items:center;gap:var(--spacing-2);font-family:var(--font-mono);color:var(--primary);font-size:.8125rem;text-decoration:none;display:inline-flex}.project-preview__link:hover{text-decoration:underline}.project-preview__narrative{font-family:var(--font-body);color:var(--on-surface);border-left:3px solid var(--primary);padding-left:var(--spacing-4);margin-bottom:var(--spacing-6);font-size:1rem;line-height:1.65}.project-preview__skills{gap:var(--spacing-2);margin-bottom:var(--spacing-6);flex-wrap:wrap;display:flex}.project-preview__hero-stats{gap:var(--spacing-4);margin-bottom:var(--spacing-8);grid-template-columns:repeat(4,1fr);display:grid}.project-preview__hero-stat{text-align:center;padding:var(--spacing-4);border:1px solid var(--ghost-border);border-radius:.375rem}.project-preview__hero-value{font-family:var(--font-mono);color:var(--on-surface);font-size:1.5rem;font-weight:700;line-height:1.2}.project-preview__hero-value--primary{color:var(--primary)}.project-preview__hero-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.5625rem}.project-preview__timeline-heading{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);margin-bottom:var(--spacing-4);font-size:.6875rem;font-weight:600}.review-preview-link{text-align:center;margin-bottom:var(--spacing-6);font-family:var(--font-mono);color:var(--primary);cursor:pointer;padding:var(--spacing-2) 0;background:0 0;border:none;font-size:.8125rem;display:block}.review-preview-link:hover{text-decoration:underline}.review-preview-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:.25rem}.typewriter-cursor{background:var(--primary);vertical-align:text-bottom;width:2px;height:1.1em;margin-inline-start:2px;animation:.8s step-end infinite cursor-blink;display:inline-block}@keyframes cursor-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.typewriter-cursor{opacity:1;animation:none}}.project-preview__banner{background:var(--primary-fixed);color:var(--primary);text-align:center;padding:var(--spacing-2) var(--spacing-4);font-family:var(--font-mono);letter-spacing:.03em;font-size:.6875rem}.project-preview__screenshot{margin-bottom:var(--spacing-6);background:var(--surface-container-low);border-radius:var(--radius-sm);border:1px solid var(--ghost-border);overflow:hidden}.project-preview__screenshot-inner{height:280px;color:var(--on-surface-variant);justify-content:center;align-items:center;gap:var(--spacing-2);font-family:var(--font-mono);background:linear-gradient(135deg,#0844710a,#08447114);flex-direction:column;font-size:.6875rem;display:flex}.project-preview .timeline__card:hover{box-shadow:var(--shadow-sm);border-color:#08447140}.project-preview .timeline__card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.project-preview .timeline__card{transition:box-shadow .15s,border-color .15s}.enhance-split__narrative-placeholder{align-items:center;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-5);background:var(--surface-container-low);border-radius:var(--radius-sm);border-left:3px solid var(--primary);color:var(--on-surface-variant);margin-bottom:var(--spacing-6);font-size:.875rem;line-height:1.5;display:flex}.project-preview__sessions-heading{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);margin-top:var(--spacing-8);margin-bottom:var(--spacing-4);font-size:.6875rem;font-weight:600}.project-preview__sessions-grid{gap:var(--spacing-4);margin-bottom:var(--spacing-8);grid-template-columns:repeat(2,1fr);display:grid}.project-preview__session-card{background:var(--surface-container-lowest);border:1px solid var(--ghost-border);border-radius:var(--radius-sm);padding:var(--spacing-6);transition:box-shadow .15s}.project-preview__session-card:hover{box-shadow:var(--shadow-sm)}.project-preview__session-bar{height:4px;margin-bottom:var(--spacing-4);border-radius:2px}.project-preview__session-title{font-family:var(--font-display);color:var(--on-surface);margin:0 0 var(--spacing-2) 0;font-size:1.125rem;font-weight:700;line-height:1.3}.project-preview__session-stats{font-family:var(--font-mono);color:var(--on-surface-variant);margin-bottom:var(--spacing-3);font-size:.8125rem}.project-preview__session-skills{gap:var(--spacing-2);margin-top:var(--spacing-3);flex-wrap:wrap;display:flex}.growth-chart{gap:var(--spacing-6);margin-bottom:var(--spacing-8);align-items:center;display:flex}.growth-chart__svg-container{flex:1;min-width:0}.growth-chart__summary{text-align:right;flex-shrink:0;width:200px}.growth-chart__total-value{font-family:var(--font-mono);color:var(--primary);font-size:2.5rem;font-weight:700;line-height:1.1}.growth-chart__total-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.5625rem;font-weight:600}.growth-chart__stat{margin-top:var(--spacing-4)}.growth-chart__stat-value{font-family:var(--font-mono);color:var(--on-surface);font-size:1.5rem;font-weight:700;line-height:1.2}.growth-chart__stat-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.5625rem;font-weight:600}.dir-heatmap{margin-bottom:var(--spacing-8)}.dir-heatmap__empty{font-family:var(--font-mono);color:var(--on-surface-variant);padding:var(--spacing-4) 0;font-size:.75rem}.dir-heatmap__grid{margin-bottom:var(--spacing-3);gap:2px;display:grid;overflow-x:auto}.dir-heatmap__session-label{font-family:var(--font-mono);text-align:center;color:var(--on-surface-variant);text-overflow:ellipsis;white-space:nowrap;padding-bottom:var(--spacing-2);font-size:.625rem;overflow:hidden}.dir-heatmap__dir-label{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;color:var(--on-surface);align-self:center;padding-inline-end:var(--spacing-2);font-size:.75rem;overflow:hidden}.dir-heatmap__cell{cursor:default;border-radius:2px;min-width:80px;min-height:32px;position:relative}.dir-heatmap__cell:hover{outline:1px solid var(--primary,#084471)}.dir-heatmap__legend{align-items:center;gap:var(--spacing-3);font-family:var(--font-mono);color:var(--on-surface-variant);margin-bottom:var(--spacing-6);font-size:.6875rem;display:flex}.dir-heatmap__top-files{margin-bottom:var(--spacing-8)}.dir-heatmap__top-files-summary{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);cursor:pointer;margin-bottom:var(--spacing-3);font-size:.6875rem;font-weight:600}.dir-heatmap__top-files-summary:hover{color:var(--on-surface)}.dir-heatmap__file-row{padding:var(--spacing-2) 0;border-bottom:var(--ghost-border);font-family:var(--font-mono);justify-content:space-between;font-size:.75rem;display:flex}.dir-heatmap__file-path{text-overflow:ellipsis;white-space:nowrap;color:var(--on-surface);margin-inline-end:var(--spacing-3);overflow:hidden}.dir-heatmap__file-count{color:var(--on-surface-variant);flex-shrink:0}.session-detail-overlay{background:var(--surface);z-index:110;flex-direction:column;display:flex;position:fixed;inset:0}.session-detail__header{padding:var(--spacing-3) var(--spacing-6);border-bottom:1px solid var(--outline-variant);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.session-detail__back{font-family:var(--font-mono);color:var(--on-surface-variant);cursor:pointer;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);background:0 0;border:none;font-size:.8125rem;transition:color .15s}.session-detail__back:hover{color:var(--on-surface)}.session-detail__close{color:var(--on-surface-variant);cursor:pointer;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);background:0 0;border:none;font-size:1.25rem;line-height:1;transition:color .15s}.session-detail__close:hover{color:var(--on-surface)}.session-detail__scroll{padding:var(--spacing-8) var(--spacing-6) var(--spacing-12);flex:1;width:100%;max-width:1100px;margin:0 auto;overflow-y:auto}.session-detail__layout{gap:var(--spacing-8);grid-template-columns:2fr 1fr;display:grid}.session-detail__main,.session-detail__sidebar{min-width:0}.session-detail__breadcrumb{font-family:var(--font-mono);color:var(--on-surface-variant);margin-bottom:var(--spacing-2);letter-spacing:.01em;font-size:.75rem}.session-detail__title{font-family:var(--font-display);color:var(--on-surface);margin-bottom:var(--spacing-6);font-size:2rem;font-weight:600;line-height:1.2}.session-detail__stats-grid{gap:var(--spacing-4);margin-bottom:var(--spacing-6);grid-template-columns:repeat(4,1fr);display:grid}.session-detail__stat{padding:var(--spacing-3) var(--spacing-4);background:var(--surface-container-lowest);border:1px solid var(--outline-variant);border-radius:var(--radius-md)}.session-detail__stat-value{font-family:var(--font-display);color:var(--on-surface);font-size:1.25rem;font-weight:600}.session-detail__stat-label{font-family:var(--font-mono);color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.04em;margin-top:var(--spacing-1);font-size:.6875rem}.session-detail__section{margin-bottom:var(--spacing-6)}.session-detail__section-label{font-family:var(--font-mono);color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--spacing-3);font-size:.6875rem;font-weight:600}.session-detail__take{font-family:var(--font-body);color:var(--on-surface);border-inline-start:3px solid var(--primary);margin:0;padding-inline-start:var(--spacing-4);font-size:.9375rem;line-height:1.6}.session-detail__context{font-family:var(--font-body);color:var(--on-surface-variant);font-size:.875rem;line-height:1.6}.session-detail__skills{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.session-detail__qa-list{gap:var(--spacing-4);flex-direction:column;display:flex}.session-detail__qa-pair{padding-bottom:var(--spacing-4);border-bottom:1px solid var(--outline-variant)}.session-detail__qa-pair:last-child{border-bottom:none;padding-bottom:0}.session-detail__qa-question{font-family:var(--font-body);color:var(--on-surface);margin-bottom:var(--spacing-2);font-size:.875rem;font-weight:600}.session-detail__qa-answer{font-family:var(--font-body);color:var(--on-surface-variant);padding-inline-start:var(--spacing-4);font-size:.875rem;line-height:1.6}.session-detail__highlights{gap:var(--spacing-4);padding-bottom:var(--spacing-2);scrollbar-width:thin;display:flex;overflow-x:auto}.session-detail__highlight-card{padding:var(--spacing-4);background:var(--surface-container-lowest);border:1px solid var(--outline-variant);border-radius:var(--radius-md);flex:0 0 240px}.session-detail__highlight-step{font-family:var(--font-mono);color:var(--primary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--spacing-1);font-size:.625rem}.session-detail__highlight-title{font-family:var(--font-display);color:var(--on-surface);margin-bottom:var(--spacing-2);font-size:.875rem;font-weight:600}.session-detail__highlight-desc{font-family:var(--font-body);color:var(--on-surface-variant);font-size:.8125rem;line-height:1.5}.session-detail__sidebar-section{margin-bottom:var(--spacing-6)}.session-detail__exec-path{padding-inline-start:var(--spacing-5);position:relative}.session-detail__exec-path:before{content:"";inset-inline-start:5px;background:var(--outline-variant);width:1px;position:absolute;top:8px;bottom:8px}.session-detail__exec-step{padding-bottom:var(--spacing-4);position:relative}.session-detail__exec-step:last-child{padding-bottom:0}.session-detail__exec-dot{inset-inline-start:calc(var(--spacing-5) * -1 + 2px);background:var(--primary);border-radius:50%;width:7px;height:7px;position:absolute;top:6px}.session-detail__exec-title{font-family:var(--font-body);color:var(--on-surface);font-size:.8125rem;font-weight:600;line-height:1.3}.session-detail__exec-desc{font-family:var(--font-body);color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.75rem;line-height:1.5}.session-detail__raw-log{background:var(--inverse-surface);color:var(--inverse-on-surface);border-radius:var(--radius-md);padding:var(--spacing-3) var(--spacing-4);font-family:var(--font-mono);font-size:.6875rem;line-height:1.6;overflow:hidden}.session-detail__raw-line{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.session-detail__raw-more{margin-top:var(--spacing-3);color:var(--inverse-primary);cursor:default;font-size:.6875rem}.session-detail__source-list{gap:var(--spacing-2);flex-direction:column;display:flex}.session-detail__source-row{justify-content:space-between;align-items:baseline;font-size:.8125rem;display:flex}.session-detail__source-key{font-family:var(--font-mono);color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem}.session-detail__source-val{font-family:var(--font-body);color:var(--on-surface);font-size:.8125rem}.session-detail__full-width{margin-top:var(--spacing-8);gap:var(--spacing-4);flex-direction:column;display:flex}.session-detail__collapsible{border:1px solid var(--outline-variant);border-radius:var(--radius-md);overflow:hidden}.session-detail__collapsible-summary{font-family:var(--font-mono);color:var(--on-surface);padding:var(--spacing-3) var(--spacing-4);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--surface-container-low);font-size:.8125rem;font-weight:600;list-style:none}.session-detail__collapsible-summary::-webkit-details-marker{display:none}.session-detail__collapsible-summary:before{content:"▶";margin-inline-end:var(--spacing-2);font-size:.625rem;transition:transform .15s;display:inline-block}.session-detail__collapsible[open]>.session-detail__collapsible-summary:before{transform:rotate(90deg)}.session-detail__tool-list{padding:var(--spacing-3) var(--spacing-4);gap:var(--spacing-2);flex-direction:column;display:flex}.session-detail__tool-row{align-items:center;gap:var(--spacing-3);grid-template-columns:140px 1fr 40px;display:grid}.session-detail__tool-name{font-family:var(--font-mono);color:var(--on-surface);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.session-detail__tool-bar-track{background:var(--surface-container-high);border-radius:3px;height:6px;overflow:hidden}.session-detail__tool-bar{background:var(--primary);border-radius:3px;height:100%;transition:width .2s}.session-detail__tool-count{font-family:var(--font-mono);color:var(--on-surface-variant);text-align:end;font-size:.75rem}.session-detail__file-list{padding:var(--spacing-3) var(--spacing-4);gap:var(--spacing-1);flex-direction:column;display:flex}.session-detail__file-row{gap:var(--spacing-3);font-family:var(--font-mono);padding:var(--spacing-1) 0;grid-template-columns:1fr auto auto;align-items:baseline;font-size:.75rem;display:grid}.session-detail__file-path{color:var(--on-surface);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.session-detail__file-additions{color:var(--secondary);font-weight:600}.session-detail__file-deletions{color:var(--error);font-weight:600}.project-preview__session-card--clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.project-preview__session-card--clickable:hover{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.project-preview__session-card--clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (width<=720px){.session-detail__layout{grid-template-columns:1fr}.session-detail__stats-grid{grid-template-columns:repeat(2,1fr)}.session-detail__scroll{padding:var(--spacing-4) var(--spacing-4) var(--spacing-8)}.session-detail__tool-row{grid-template-columns:100px 1fr 36px}}.agent-activity{margin-bottom:var(--spacing-8)}.agent-activity__card{background:var(--surface-container-lowest);border:var(--ghost-border);border-radius:var(--radius-sm);padding:var(--spacing-5)}.agent-activity__legend{gap:var(--spacing-4);margin-bottom:var(--spacing-4);flex-wrap:wrap;display:flex}.agent-activity__legend-item{font-family:var(--font-mono);color:var(--on-surface-variant);align-items:center;gap:4px;font-size:.5625rem;display:flex}.agent-activity__legend-dot{border-radius:50%;width:8px;height:8px}.agent-activity__timelines{gap:var(--spacing-2);-webkit-overflow-scrolling:touch;padding-bottom:var(--spacing-2);flex-direction:column;display:flex;overflow-x:auto}.agent-activity__session{flex-direction:column;gap:2px;min-width:fit-content;display:flex}.agent-activity__session-label{font-family:var(--font-mono);letter-spacing:.04em;color:var(--on-surface-variant);text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;max-width:50%;font-size:.5625rem;font-weight:600;overflow:hidden}.agent-activity__summary{gap:var(--spacing-3);margin-top:var(--spacing-4);padding-top:var(--spacing-4);border-top:var(--ghost-border);grid-template-columns:repeat(4,1fr);display:grid}.agent-activity__summary-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.5625rem;font-weight:600}.agent-activity__summary-value{color:var(--on-surface);font-weight:700}
@@ -11,8 +11,8 @@
11
11
  href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600;700&display=swap"
12
12
  rel="stylesheet"
13
13
  />
14
- <script type="module" crossorigin src="/assets/index-CJrLbh9c.js"></script>
15
- <link rel="stylesheet" crossorigin href="/assets/index-BGQkmy7q.css">
14
+ <script type="module" crossorigin src="/assets/index-CROJdbHw.js"></script>
15
+ <link rel="stylesheet" crossorigin href="/assets/index-DopBsBwR.css">
16
16
  </head>
17
17
  <body>
18
18
  <div id="root"></div>
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ const program = new Command();
9
9
  program
10
10
  .name('heyiam')
11
11
  .description('Turn AI coding sessions into portfolio case studies')
12
- .version('0.1.1');
12
+ .version('0.1.2');
13
13
  program
14
14
  .command('open')
15
15
  .description('Start the local server and open the browser')
@@ -27,21 +27,24 @@ program
27
27
  const server = await startServer(port);
28
28
  const url = `http://localhost:${port}`;
29
29
  console.log(`\nheyiam running at ${url}`);
30
+ if (!apiKey) {
31
+ console.log(`Open ${url}/settings to add your Anthropic API key`);
32
+ }
30
33
  console.log('Press Ctrl+C to stop\n');
31
34
  if (opts.open) {
32
- await open(url);
35
+ open(url).catch(() => { }); // fire-and-forget, don't crash if browser fails
33
36
  }
34
37
  // Keep the process alive until Ctrl+C
35
38
  const shutdown = () => {
36
39
  console.log('\nShutting down...');
37
40
  server.close(() => process.exit(0));
38
- // Force exit after 3s if connections hang
39
41
  setTimeout(() => process.exit(0), 3000);
40
42
  };
41
43
  process.on('SIGINT', shutdown);
42
44
  process.on('SIGTERM', shutdown);
43
- // Block forever — the event loop stays alive because the server is listening
44
- await new Promise(() => { });
45
+ // Keep event loop alive explicitly
46
+ const keepAlive = setInterval(() => { }, 60_000);
47
+ keepAlive.unref = undefined; // prevent unref
45
48
  });
46
49
  import { API_URL } from './config.js';
47
50
  const API_BASE = API_URL;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -396,19 +396,12 @@ export function createApp(sessionsBasePath) {
396
396
  // Enhancement status — returns current mode and remaining quota
397
397
  app.get('/api/enhance/status', async (_req, res) => {
398
398
  try {
399
- const mode = getEnhanceMode();
400
- if (mode === 'local') {
399
+ if (getAnthropicApiKey()) {
401
400
  res.json({ mode: 'local', remaining: null });
402
- return;
403
401
  }
404
- // Proxy mode — check quota from Phoenix
405
- const auth = getAuthToken();
406
- if (!auth?.token) {
407
- res.json({ mode: 'none', remaining: 0, message: 'Not configured' });
408
- return;
402
+ else {
403
+ res.json({ mode: 'none', remaining: 0, message: 'No API key configured' });
409
404
  }
410
- // We don't have a dedicated quota endpoint yet, so report proxy mode
411
- res.json({ mode: 'proxy', remaining: null });
412
405
  }
413
406
  catch {
414
407
  res.json({ mode: 'unknown', remaining: null });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "heyiam",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Turn AI coding sessions into portfolio case studies",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1 +0,0 @@
1
- :root{--surface:#f8f9fb;--surface-container-lowest:#fff;--surface-container-low:#f3f4f6;--surface-container:#edeef0;--surface-container-high:#e7e8ea;--surface-container-highest:#e1e2e4;--surface-dim:#d9dadc;--surface-tint:#316190;--primary:#084471;--on-primary:#fff;--primary-container:#2b5c8a;--on-primary-container:#b0d4ff;--primary-fixed:#d0e4ff;--primary-fixed-dim:#9dcaff;--secondary:#006a61;--on-secondary:#fff;--secondary-container:#93f4e6;--tertiary:#663500;--on-tertiary:#fff;--tertiary-fixed:#ffdcc3;--tertiary-fixed-dim:#ffb77d;--on-tertiary-fixed:#2f1500;--on-tertiary-fixed-variant:#6e3900;--on-surface:#191c1e;--on-surface-variant:#42474e;--outline:#72787e;--outline-variant:#c2c7d0;--error:#ba1a1a;--error-container:#ffdad6;--on-error:#fff;--inverse-surface:#2e3132;--inverse-on-surface:#f0f1f3;--inverse-primary:#9dcaff;--font-display:"Space Grotesk", sans-serif;--font-body:"Inter", sans-serif;--font-mono:"IBM Plex Mono", monospace;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--spacing-16:4rem;--spacing-20:5rem;--spacing-24:5.5rem;--shadow-ambient:0 12px 40px #191c1e0f;--shadow-sm:0 1px 3px #191c1e0a;--ghost-border:1px solid #c2c7d026;font-family:var(--font-body);color:var(--on-surface);background:var(--surface);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;margin:0;overflow:hidden}#root{flex-direction:column;min-height:100vh;display:flex}::selection{background:var(--primary-container);color:var(--on-primary-fixed)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#c2c7d04d;border-radius:10px}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.app-shell{background:var(--surface);flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-shell__body{flex:1;min-height:0;display:flex}.app-header{padding:var(--spacing-3) var(--spacing-6);background:var(--surface);z-index:40;flex-shrink:0;justify-content:space-between;align-items:center;height:3.5rem;display:flex;position:sticky;top:0}.app-header__left{align-items:center;gap:var(--spacing-6);display:flex}.app-header__logo{font-family:var(--font-display);color:var(--on-surface);letter-spacing:-.03em;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:1.25rem;font-weight:700;text-decoration:none}.app-header__back{width:2rem;height:2rem;color:var(--on-surface-variant);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.app-header__back:hover{background:var(--surface-container-low)}.app-header__back svg{width:1.25rem;height:1.25rem}.app-header__title{font-family:var(--font-display);color:var(--on-surface-variant);letter-spacing:-.01em;font-size:.875rem;font-weight:600}.app-header__right{align-items:center;gap:var(--spacing-3);display:flex}.app-header__auth-indicator{align-items:center;gap:var(--spacing-2);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);font-size:.625rem;display:flex}.app-header__auth-dot{background:var(--outline-variant);border-radius:50%;width:.5rem;height:.5rem}.app-header__auth-dot--active{background:var(--secondary)}.app-header__icon-btn{width:2rem;height:2rem;color:var(--on-surface-variant);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.app-header__icon-btn:hover{background:var(--surface-container-low)}.app-header__icon-btn svg{width:1.25rem;height:1.25rem}.app-sidebar{background:var(--surface-container-low);border-right:var(--ghost-border);flex-direction:column;flex-shrink:0;width:16rem;display:flex;overflow-y:auto}.app-sidebar--collapsed{width:0;overflow:hidden}.app-sidebar__section{padding:var(--spacing-6)}.app-sidebar__label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--on-surface-variant);margin-bottom:var(--spacing-4);font-size:.625rem}.app-sidebar__list{gap:var(--spacing-1);flex-direction:column;list-style:none;display:flex}.app-sidebar__item{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);color:var(--on-surface);border-radius:var(--radius-md);cursor:pointer;text-align:start;background:0 0;border:none;width:100%;font-size:.875rem;font-weight:500;transition:background-color .15s;display:flex}.app-sidebar__item:hover{background:var(--surface-container)}.app-sidebar__item--active{background:var(--surface-container-high);color:var(--primary)}.app-sidebar__dot{background:var(--outline-variant);border-radius:50%;flex-shrink:0;width:.375rem;height:.375rem}.app-sidebar__item--active .app-sidebar__dot,.app-sidebar__item:hover .app-sidebar__dot{background:var(--primary)}.app-sidebar__footer{padding:var(--spacing-6);border-top:var(--ghost-border);margin-top:auto}.app-main{background:var(--surface);flex:1;min-width:0;overflow:hidden auto}.app-main__header{padding:var(--spacing-6) var(--spacing-8);justify-content:space-between;align-items:flex-end;display:flex}.app-main__title{font-family:var(--font-display);color:var(--on-surface);letter-spacing:-.02em;font-size:1.875rem;font-weight:700}.app-main__subtitle{color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.875rem}.app-bottom-bar{padding:var(--spacing-4) var(--spacing-6);z-index:30;justify-content:center;display:flex;position:sticky;bottom:0;left:0;right:0}.app-bottom-bar__inner{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:var(--ghost-border);box-shadow:var(--shadow-lg);border-radius:var(--radius-md);padding:var(--spacing-4) var(--spacing-6);align-items:center;gap:var(--spacing-8);background:#fffc;width:100%;max-width:42rem;display:flex}.session-card{padding:var(--spacing-4);background:var(--surface-container-lowest);border-radius:var(--radius-sm);cursor:pointer;border:var(--ghost-border);align-items:center;gap:var(--spacing-4);transition:background-color .15s;display:flex}.session-card:hover{background:var(--surface-container-high)}.session-card--selected{background:var(--surface-container-lowest);box-shadow:inset 0 0 0 1px #08447133}.session-card__identity{flex:2;min-width:0}.session-card__title{font-family:var(--font-display);color:var(--on-surface);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:600;overflow:hidden}.session-card__date{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--on-surface-variant);margin-top:.125rem;font-size:.625rem}.session-card__metrics{align-items:center;gap:var(--spacing-4);font-family:var(--font-mono);color:var(--on-surface-variant);flex:1;font-size:.75rem;display:flex}.session-card__metric{align-items:center;gap:var(--spacing-1);white-space:nowrap;display:flex}.session-card__status{flex-shrink:0}.raw-log{background:var(--inverse-surface);color:var(--inverse-on-surface);border-radius:var(--radius-sm);font-family:var(--font-mono);flex-direction:column;font-size:.8125rem;line-height:1.6;display:flex;overflow-y:auto}.raw-log__header{padding:var(--spacing-4);border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;display:flex}.raw-log__header-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--primary-container);font-size:.625rem;font-weight:700}.raw-log__dots{gap:var(--spacing-2);display:flex}.raw-log__dot{opacity:.5;border-radius:50%;width:.5rem;height:.5rem}.raw-log__dot--red{background:var(--error)}.raw-log__dot--yellow{background:var(--tertiary)}.raw-log__dot--blue{background:var(--primary)}.raw-log__content{padding:var(--spacing-4);flex:1;overflow-y:auto}.raw-log__line{gap:var(--spacing-4);display:flex}.raw-log__line-num{text-align:end;opacity:.3;-webkit-user-select:none;user-select:none;flex-shrink:0;width:2rem}.raw-log__line-text{color:var(--inverse-on-surface)}.raw-log__cursor{background:var(--primary);vertical-align:middle;width:.5rem;height:1rem;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.editor-panel{flex:1;grid-template-columns:1fr 2fr;min-height:0;display:grid}.editor-panel__raw{background:var(--inverse-surface);color:var(--inverse-on-surface);font-family:var(--font-mono);border-inline-end:1px solid #ffffff0d;flex-direction:column;font-size:.75rem;display:flex;overflow-y:auto}.editor-panel__raw-header{padding:0 var(--spacing-4);background:var(--inverse-surface);border-bottom:1px solid #ffffff0f;flex-shrink:0;justify-content:space-between;align-items:center;height:2.5rem;display:flex}.editor-panel__raw-label{text-transform:uppercase;letter-spacing:.04em;opacity:.6;font-size:.625rem}.editor-panel__raw-content{padding:var(--spacing-4);flex:1;line-height:1.6;overflow-y:auto}.editor-panel__draft{background:var(--surface-container-low);position:relative;overflow-y:auto}.editor-panel__draft-content{max-width:56rem;padding:var(--spacing-12);margin:0 auto;padding-bottom:8rem}.btn{justify-content:center;align-items:center;gap:var(--spacing-2);font-family:var(--font-body);padding:var(--spacing-2) var(--spacing-5);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;font-size:.875rem;font-weight:600;line-height:1.4;text-decoration:none;transition:opacity .15s,transform .1s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover{opacity:.9}.btn-secondary{color:var(--primary);border:var(--ghost-border);background:0 0}.btn-secondary:hover{background:var(--surface-container)}.btn-tertiary{color:var(--on-surface-variant);font-family:var(--font-mono);padding:var(--spacing-1) var(--spacing-2);background:0 0;border:none;font-size:.75rem;text-decoration:none}.btn-tertiary:hover{color:var(--primary);text-decoration:underline}.btn--lg{padding:var(--spacing-3) var(--spacing-8);font-size:.9375rem}.btn--full{width:100%}.btn--icon{padding:var(--spacing-2);width:2.5rem;height:2.5rem}.chip{align-items:center;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-3);background:var(--surface-container-high);border-radius:var(--radius-xs);font-family:var(--font-mono);color:var(--on-surface);border:var(--ghost-border);white-space:nowrap;font-size:.625rem;font-weight:700;display:inline-flex}.chip__dot{background:var(--primary);border-radius:50%;width:.25rem;height:.25rem}.chip--primary{color:var(--primary);background:#08447114}.chip--published,.chip--sealed{background:var(--secondary-container);color:var(--secondary);font-weight:600}.chip--draft{background:var(--tertiary-fixed);color:var(--tertiary)}.chip--enhanced{color:var(--primary);background:#0844711f}.chip--archived{background:var(--surface-container-highest);color:var(--on-surface-variant)}.chip--success{background:var(--secondary-container);color:var(--secondary)}.stats-grid{gap:var(--spacing-4);grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));display:grid}.stat-card__value{font-family:var(--font-display);color:var(--on-surface);font-size:2rem;font-weight:700;line-height:1}.stat-card__label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--on-surface-variant);margin-top:var(--spacing-2);font-size:.625rem}.terminal{background:var(--inverse-surface);color:var(--inverse-on-surface);border-radius:var(--radius-md);font-family:var(--font-mono);padding:var(--spacing-5);font-size:.8125rem;line-height:1.6;overflow-x:auto}.terminal__prompt{color:var(--primary-container)}.terminal__success{color:var(--secondary);font-weight:700}.terminal__error{color:var(--error-container)}.terminal__warn{color:var(--tertiary-container)}.terminal__muted{opacity:.4}.exec-path{gap:var(--spacing-4);flex-direction:column;display:flex}.exec-path__step{gap:var(--spacing-6);padding:var(--spacing-4);border-radius:var(--radius-sm);align-items:flex-start;transition:background-color .15s;display:flex}.exec-path__step:hover{background:var(--surface-container-lowest)}.exec-path__step-icon{background:var(--secondary-container);border-radius:var(--radius-md);width:2.5rem;height:2.5rem;color:var(--secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.exec-path__step-content{flex:1;min-width:0}.exec-path__step-num{font-family:var(--font-mono);color:var(--primary);font-size:.75rem;font-weight:700}.exec-path__step-title{font-family:var(--font-display);color:var(--on-surface);margin-top:var(--spacing-1);font-size:.9375rem;font-weight:700}.exec-path__step-desc{color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.875rem;line-height:1.5}.badge{align-items:center;gap:var(--spacing-1);padding:.125rem var(--spacing-2);border-radius:var(--radius-xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.02em;font-size:.625rem;font-weight:700;display:inline-flex}.badge--sealed{background:var(--primary-container);color:var(--on-primary-fixed);border:1px solid #0844711a}.badge--draft{background:var(--surface-container-high);color:var(--on-surface-variant)}.badge--published{background:var(--secondary-container);color:var(--secondary)}.badge--archived{background:var(--surface-container-highest);color:var(--on-surface-variant)}.label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--on-surface-variant);font-size:.625rem}.label--primary{color:var(--primary);font-weight:700}.input{font-family:var(--font-body);padding:var(--spacing-2) var(--spacing-4);background:var(--surface-container-lowest);border-radius:var(--radius-md);color:var(--on-surface);border:none;width:100%;font-size:.875rem;transition:box-shadow .15s;box-shadow:inset 0 0 0 1px #c2c7d033}.input:focus{outline:none;box-shadow:inset 0 0 0 1px #08447166}.input::placeholder{color:var(--outline-variant);opacity:.6}.textarea{font-family:var(--font-body);padding:var(--spacing-4);color:var(--on-surface);resize:none;background:0 0;border:none;width:100%;font-size:1rem;line-height:1.6}.textarea:focus{outline:none}.textarea::placeholder{color:var(--on-surface-variant);opacity:.7}.card{background:var(--surface-container-lowest);border-radius:var(--radius-sm);border:var(--ghost-border);padding:var(--spacing-6)}.card--elevated{box-shadow:var(--shadow-ambient)}.divider{height:1px;margin:var(--spacing-6) 0;background:#c2c7d026;border:none}.blueprint-grid{z-index:-1;pointer-events:none;opacity:.03;background-image:radial-gradient(var(--primary) .5px, transparent .5px);background-size:24px 24px;position:fixed;inset:0}.glass-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:var(--ghost-border);background:#fffc}.text-display-lg{font-family:var(--font-display);letter-spacing:-.02em;color:var(--on-surface);font-size:3.5rem;font-weight:700;line-height:1.1}.text-headline{font-family:var(--font-display);letter-spacing:-.02em;color:var(--on-surface);font-size:1.875rem;font-weight:700}.text-title{font-family:var(--font-body);color:var(--on-surface);font-size:1.25rem;font-weight:600}.text-body{font-family:var(--font-body);color:var(--on-surface);font-size:.875rem;line-height:1.5}.text-label{font-family:var(--font-mono);color:var(--on-surface-variant);font-size:.75rem}.text-label-sm{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--on-surface-variant);font-size:.625rem}.text-mono{font-family:var(--font-mono)}.setup-banner{background:var(--tertiary-fixed);padding:var(--spacing-4) var(--spacing-6);border-radius:var(--radius-sm);margin-bottom:var(--spacing-8);align-items:center;gap:var(--spacing-3);display:flex}.setup-banner__icon{color:var(--tertiary);flex-shrink:0;font-size:1rem;font-weight:600}.setup-banner__text{color:var(--tertiary);font-size:.875rem}.setup-banner__action{flex-shrink:0;margin-left:auto}.empty-state__desc{color:var(--on-surface-variant);max-width:400px;font-size:.9375rem;line-height:1.6}.empty-state__cmd{margin-top:var(--spacing-8)}.empty-state__cmd code{font-family:var(--font-mono);color:var(--on-surface-variant);background:var(--surface-container-low);padding:var(--spacing-3) var(--spacing-5);border-radius:var(--radius-sm);font-size:.8125rem;display:inline-block}.chip--queued{background:var(--surface-container-highest);color:var(--on-surface-variant);opacity:.7}.chip--processing{color:#006a61;background:#006a6126;animation:1.2s ease-in-out infinite chip-pulse}@keyframes chip-pulse{0%,to{opacity:1}50%{opacity:.5}}.chip--uploaded{background:var(--secondary-container);color:var(--secondary);font-weight:600}.chip--failed{color:#ba1a1a;background:#ba1a1a1f;font-weight:600}.sidebar-stats{font-family:var(--font-mono);color:var(--on-surface-variant);font-size:.75rem;line-height:2}.sidebar-stats strong{color:var(--on-surface)}.terminal-line{line-height:1.8}.terminal-line--prompt{color:#34d399}.terminal-line--ai{color:#60a5fa}.terminal-line--dim{color:#ffffff4d}.terminal-line--success{color:#34d399;font-weight:600}.settings-page{max-width:40rem;padding:var(--spacing-8);gap:var(--spacing-8);flex-direction:column;margin:0 auto;display:flex}.settings-section{gap:var(--spacing-4);flex-direction:column;display:flex}.settings-row{justify-content:space-between;align-items:center;display:flex}.settings-row__label{font-family:var(--font-body);color:var(--on-surface-variant);font-size:.875rem}.settings-row__value{font-family:var(--font-mono);color:var(--on-surface);font-size:.8125rem}.settings-input-group{gap:var(--spacing-2);flex-direction:column;display:flex}.settings-input-wrapper{position:relative}.settings-input-wrapper .input{padding-right:3rem}.settings-input-toggle{right:var(--spacing-2);color:var(--on-surface-variant);cursor:pointer;padding:var(--spacing-1);font-family:var(--font-mono);text-transform:uppercase;background:0 0;border:none;font-size:.625rem;position:absolute;top:50%;transform:translateY(-50%)}.settings-help{color:var(--outline);font-size:.75rem;line-height:1.4}.collapsible{background:var(--surface-container-lowest);border-radius:var(--radius-sm);border:1px solid #c2c7d026;overflow:hidden}.collapsible__summary{padding:var(--spacing-4);cursor:pointer;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;font-size:.75rem;font-weight:700;list-style:none;transition:background-color .15s;display:flex}.collapsible__summary:hover{background:var(--surface-container-low)}.collapsible__summary::-webkit-details-marker{display:none}.collapsible__chevron{color:var(--on-surface-variant);font-size:1.25rem;transition:transform .2s}details[open]>.collapsible__summary .collapsible__chevron{transform:rotate(180deg)}.collapsible__content{padding:var(--spacing-4);border-top:1px solid #c2c7d01a;padding-top:0}.file-list{font-family:var(--font-mono);gap:var(--spacing-2);padding-top:var(--spacing-4);flex-direction:column;font-size:.8125rem;display:flex}.file-list__item{align-items:center;gap:var(--spacing-3);display:flex}.file-list__additions{color:var(--secondary);text-align:end;min-width:3rem;font-weight:600}.file-list__deletions{color:var(--error);text-align:end;min-width:3rem;font-weight:600}.file-list__path{color:var(--on-surface)}.tool-bar{gap:var(--spacing-3);padding-top:var(--spacing-4);flex-direction:column;display:flex}.tool-bar__item{align-items:center;gap:var(--spacing-3);display:flex}.tool-bar__name{font-family:var(--font-mono);color:var(--on-surface-variant);min-width:4rem;font-size:.75rem}.tool-bar__track{background:var(--surface-container-high);border-radius:var(--radius-xs);flex:1;height:.375rem;overflow:hidden}.tool-bar__fill{background:var(--primary);border-radius:var(--radius-xs);height:100%;transition:width .3s}.tool-bar__count{font-family:var(--font-mono);color:var(--on-surface-variant);text-align:end;min-width:2rem;font-size:.6875rem}.timeline-list{gap:var(--spacing-3);padding-top:var(--spacing-4);flex-direction:column;display:flex}.timeline-list__item{align-items:flex-start;gap:var(--spacing-3);display:flex}.timeline-list__time{font-family:var(--font-mono);color:var(--outline);min-width:3.5rem;padding-top:.125rem;font-size:.625rem}.timeline-list__content{background:var(--surface-container);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-sm);font-family:var(--font-mono);color:var(--on-surface-variant);flex:1;font-size:.75rem}.timeline-list__content--prompt{color:var(--primary);background:#0844710f}.enhance-layout{flex:1;grid-template-columns:5fr 7fr;min-height:0;display:grid}@media (width<=768px){.enhance-layout{grid-template-columns:1fr}}.enhance-layout__left{background:var(--inverse-surface);color:var(--inverse-on-surface);font-family:var(--font-mono);flex-direction:column;font-size:.8125rem;display:flex;overflow-y:auto}.enhance-layout__left-header{padding:var(--spacing-4) var(--spacing-5);border-bottom:1px solid #ffffff0f;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.enhance-layout__left-label{text-transform:uppercase;letter-spacing:.08em;opacity:.6;font-size:.6875rem}.enhance-layout__left-id{color:var(--outline);font-size:.625rem}.enhance-layout__left-content{padding:var(--spacing-5);flex:1;line-height:1.6;overflow-y:auto}.enhance-layout__right{background:var(--surface-container-low);padding:var(--spacing-8);overflow-y:auto}.enhance-layout__right-inner{max-width:42rem;margin:0 auto}.enhance-status{border-radius:var(--radius-md);padding:var(--spacing-5);align-items:center;gap:var(--spacing-4);margin-bottom:var(--spacing-8);background:#0844710d;border:1px solid #0844711a;display:flex}.enhance-status__icon{background:var(--primary);width:2.5rem;height:2.5rem;color:var(--on-primary);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;display:flex}.enhance-status__title{font-family:var(--font-display);color:var(--primary);font-size:.875rem;font-weight:700}.enhance-status__desc{color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.75rem}.enhance-question{background:var(--surface-container-lowest);border-radius:var(--radius-sm);padding:var(--spacing-6);margin-bottom:var(--spacing-4);border:1px solid #c2c7d026}.enhance-question__text{font-family:var(--font-display);color:var(--on-surface);margin-bottom:var(--spacing-3);font-size:.9375rem;font-weight:600}.enhance-question__suggested{color:var(--outline);margin-bottom:var(--spacing-3);font-size:.8125rem;font-style:italic}.enhance-question__textarea{font-family:var(--font-body);padding:var(--spacing-3) var(--spacing-4);background:var(--surface-container-low);border-radius:var(--radius-sm);color:var(--on-surface);resize:vertical;border:1px solid #c2c7d04d;width:100%;min-height:4rem;font-size:.875rem;line-height:1.5}.enhance-question__textarea:focus{border-color:#08447166;outline:none}.enhance-question__textarea::placeholder{color:var(--on-surface-variant);opacity:.7}.enhance-question__skip{font-family:var(--font-mono);color:var(--outline);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;margin-top:var(--spacing-2);background:0 0;border:none;font-size:.6875rem}.enhance-question__skip:hover{color:var(--primary);text-decoration:underline}.enhance-streaming__item{opacity:0;transition:opacity .3s,transform .3s;transform:translateY(4px)}.enhance-streaming__item--visible{opacity:1;transform:translateY(0)}.enhance-actions{padding-top:var(--spacing-6);margin-top:var(--spacing-8);border-top:1px solid #c2c7d026;justify-content:space-between;align-items:center;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=768px){.app-sidebar{border-right:none;border-bottom:var(--ghost-border);width:100%;max-height:3rem;transition:max-height .2s;overflow:hidden}.app-sidebar--expanded{max-height:50vh;overflow-y:auto}.app-shell__body{flex-direction:column}.app-main__header{padding:var(--spacing-4)}.app-main__title{font-size:1.5rem}}@media (width<=375px){.session-card{padding:var(--spacing-3);gap:var(--spacing-3)}.session-card__metrics{display:none}.session-card__title{font-size:.875rem}.app-bottom-bar{padding:var(--spacing-2) var(--spacing-3)}.app-bottom-bar__inner{padding:var(--spacing-3) var(--spacing-4);gap:var(--spacing-4);border-radius:var(--radius-sm)}.app-main__header{padding:var(--spacing-3)}.app-main__title{font-size:1.25rem}.app-sidebar__section{padding:var(--spacing-3)}}.tool-breakdown-rows{flex-direction:column;gap:4px;display:flex}.tool-breakdown-row{align-items:center;gap:var(--spacing-3);display:flex}.tool-breakdown-row__label{font-family:var(--font-mono);color:var(--on-surface-variant);text-align:right;flex-shrink:0;width:60px;font-size:.75rem}.tool-breakdown-row__track{background:var(--surface-container-low);border-radius:3px;flex:1;height:6px;overflow:hidden}.tool-breakdown-row__bar{background:var(--primary);border-radius:3px;height:100%}.tool-breakdown-row__count{font-family:var(--font-mono);width:30px;font-size:.75rem}.turn-timeline-entries{flex-direction:column;display:flex}.turn-timeline-entry{align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-2) 0;border-bottom:1px solid var(--ghost-border);display:flex}.turn-timeline-entry__num{font-family:var(--font-mono);color:var(--on-surface-variant);text-align:right;flex-shrink:0;width:24px;font-size:.6875rem}.turn-timeline-entry__content{flex:1;font-size:.8125rem}.turn-timeline-entry__tools{flex-shrink:0;gap:2px;display:flex}.chip--sm{padding:1px 6px;font-size:.5625rem}.turn-timeline-more{padding:var(--spacing-3) 0;font-family:var(--font-mono);color:var(--on-surface-variant);text-align:center;font-size:.75rem}.files-changed-list{flex-direction:column;display:flex}.files-changed-row{padding:var(--spacing-1) 0;font-family:var(--font-mono);justify-content:space-between;font-size:.75rem;display:flex}.files-changed-row__path{color:var(--on-surface)}.files-changed-row__count{color:var(--on-surface-variant)}.dashboard{max-width:960px;padding:var(--spacing-8);margin:0 auto}.dashboard__title{font-family:var(--font-display);margin-bottom:var(--spacing-2);font-size:2rem;font-weight:700}.dashboard__subtitle{color:var(--on-surface-variant);margin-bottom:var(--spacing-8);font-size:.9375rem;line-height:1.6}.dashboard__cards{gap:var(--spacing-4);flex-direction:column;display:flex}.dashboard-loading,.dashboard-error{padding:var(--spacing-20) 0;color:var(--on-surface-variant);justify-content:center;align-items:center;font-size:.9375rem;display:flex}.empty-state{padding:var(--spacing-20) 0;text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state__icon{background:var(--surface-container-low);width:64px;height:64px;margin-bottom:var(--spacing-6);color:var(--on-surface-variant);border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;display:flex}.empty-state__title{font-family:var(--font-display);margin-bottom:var(--spacing-3);font-size:1.5rem;font-weight:700}.empty-state__text{color:var(--on-surface-variant);max-width:400px;font-size:.9375rem;line-height:1.6}.empty-state__text code{font-family:var(--font-mono);background:var(--surface-container-low);border-radius:var(--radius-sm);padding:2px 6px;font-size:.8125rem}.empty-state__hint{margin-top:var(--spacing-8)}.empty-state__hint code{font-family:var(--font-mono);color:var(--on-surface-variant);background:var(--surface-container-low);padding:var(--spacing-3) var(--spacing-5);border-radius:var(--radius-sm);font-size:.8125rem;display:inline-block}.project-card{background:var(--surface-container-lowest);border:1px solid var(--ghost-border);border-radius:var(--radius-sm);padding:var(--spacing-6);cursor:pointer;transition:box-shadow .15s}.project-card:hover{box-shadow:var(--shadow-sm)}.project-card__header{margin-bottom:var(--spacing-4);justify-content:space-between;align-items:flex-start;display:flex}.project-card__title-row{align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-2);display:flex}.project-card__dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.project-card__name{font-family:var(--font-display);font-size:1.25rem;font-weight:700}.project-card__desc{color:var(--on-surface-variant);font-size:.875rem;line-height:1.5}.project-card__date{font-family:var(--font-mono);color:var(--on-surface-variant);margin-top:var(--spacing-2);font-size:.6875rem}.project-card__date-ago{opacity:.5}.project-card__actions{gap:var(--spacing-2);flex-shrink:0;display:flex}.project-card__upload-btn{padding:var(--spacing-2) var(--spacing-5);flex-shrink:0;font-size:.8125rem}.project-card__badge{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;background:var(--primary-container,#e0ecf6);color:var(--primary,#084471);border-radius:3px;padding:2px 8px;font-size:.625rem;font-weight:600}.project-card__badge--stale{color:#92400e;background:#fef3c7}.project-card__badge--published{color:#16a34a;background:#dcfce7}.triage-item__published-badge{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:#16a34a;margin-left:var(--spacing-2,.5rem);vertical-align:middle;background:#dcfce7;border-radius:3px;padding:1px 6px;font-size:.6rem;font-weight:600}.work-timeline__scroll-controls{gap:var(--spacing-2,.5rem);margin-bottom:var(--spacing-2,.5rem);justify-content:flex-end;display:flex}.work-timeline__scroll-btn{color:#374151;width:32px;height:28px;font-family:var(--font-mono,monospace);cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;justify-content:center;align-items:center;font-size:.875rem;transition:background .1s;display:flex}.work-timeline__scroll-btn:hover{background:#f3f4f6}.work-timeline__scroll-btn:active{background:#e5e7eb}.project-card__stats{gap:var(--spacing-4);margin-bottom:var(--spacing-4);grid-template-columns:repeat(4,1fr);display:grid}.project-card__stat-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);font-size:.5625rem}.project-card__stat-value{font-family:var(--font-display);font-size:1.25rem;font-weight:700}.project-card__skills{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.upload-flow{max-width:800px;padding:var(--spacing-8);margin:0 auto}.upload-flow__label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);margin-bottom:var(--spacing-2);font-size:.6875rem}.upload-flow__title{font-family:var(--font-display);margin-bottom:var(--spacing-2);font-size:1.75rem;font-weight:700}.upload-flow__date{font-family:var(--font-mono);color:var(--on-surface-variant);margin-bottom:var(--spacing-3);font-size:.6875rem}.upload-flow__desc{color:var(--on-surface-variant);margin-bottom:var(--spacing-8);font-size:.9375rem;line-height:1.6}.upload-flow__stat-grid{gap:var(--spacing-4);margin-bottom:var(--spacing-8);grid-template-columns:repeat(4,1fr);display:grid}.upload-flow__section-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);margin-bottom:var(--spacing-3);font-size:.625rem}.upload-flow__section-label--selected{color:var(--secondary)}.upload-flow__scan-status{align-items:center;gap:var(--spacing-2);font-family:var(--font-mono);color:var(--secondary);margin-bottom:var(--spacing-4);font-size:.6875rem;display:flex}.upload-flow__auto-select-banner{font-family:var(--font-mono);color:var(--secondary);padding:var(--spacing-3) var(--spacing-4);background:var(--surface-container,#f5f7fa);margin-bottom:var(--spacing-3);border-radius:6px;font-size:.75rem}.upload-flow__actions{gap:var(--spacing-3);margin-top:var(--spacing-8);justify-content:flex-end;display:flex}.stat-card{background:var(--surface-container-lowest);padding:var(--spacing-5);border-radius:var(--radius-sm);border:1px solid var(--ghost-border)}.stat-card__label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);margin-bottom:var(--spacing-1);font-size:.625rem}.stat-card__value{font-family:var(--font-display);font-size:1.5rem;font-weight:700}.session-table{background:var(--surface-container-lowest);border:1px solid var(--ghost-border);border-radius:var(--radius-sm);margin-bottom:var(--spacing-8);max-height:320px;overflow-y:auto}.session-table__header{padding:var(--spacing-2) var(--spacing-4);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--on-surface-variant);background:var(--surface-container-low);grid-template-columns:1fr 70px 60px 60px 60px;font-size:.625rem;display:grid;position:sticky;top:0}.session-table__row{padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--ghost-border);grid-template-columns:1fr 70px 60px 60px 60px;font-size:.8125rem;display:grid}.session-table__name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.session-table__cell{text-align:right;font-family:var(--font-mono);color:var(--on-surface-variant);font-size:.75rem}.phase-bar{gap:var(--spacing-1);margin-bottom:var(--spacing-6);display:flex}.phase-bar__segment{background:var(--surface-container-high);border-radius:2px;flex:1;height:3px}.phase-bar__segment--active{background:var(--primary)}.triage-method-banner{align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);margin-bottom:var(--spacing-4);border-radius:var(--radius-sm);background:var(--surface-container,#f5f7fa);border:1px solid var(--outline-variant);color:var(--on-surface-variant);font-size:.8125rem;display:flex}.triage-method-banner__icon{flex-shrink:0;font-size:1rem}.triage-method-banner__link{color:var(--primary);white-space:nowrap;text-decoration:underline}.triage-list{gap:var(--spacing-2);margin-bottom:var(--spacing-8);flex-direction:column;display:flex}.triage-item{align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-4);border-radius:var(--radius-sm);flex-wrap:wrap;display:flex}.triage-item--selected{background:var(--surface-container-lowest);border:1px solid #006a6126}.triage-item--skipped{background:var(--surface-container-low);opacity:.7}.triage-item__checkbox{accent-color:var(--secondary);flex-shrink:0;width:16px;height:16px}.triage-item__info{flex:1;min-width:200px}.triage-item__name{text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:600;overflow:hidden}.triage-item__stats{font-family:var(--font-mono);color:var(--on-surface-variant);white-space:nowrap;font-size:.6875rem}.triage-item__reason{font-family:var(--font-mono);border-radius:var(--radius-sm);max-width:280px;padding:2px 8px;font-size:.625rem;line-height:1.4}.triage-item__reason--selected{color:var(--secondary);background:#006a6114}.triage-item__reason--skipped{background:var(--surface-container-high);color:var(--on-surface-variant);font-size:.5625rem}.triage-item__reason--expandable{cursor:pointer}.triage-item__reason--expandable:hover{opacity:.85}.triage-skipped{margin-bottom:var(--spacing-8)}.triage-skipped__summary{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);cursor:pointer;align-items:center;gap:var(--spacing-2);font-size:.625rem;list-style:none;display:flex}.triage-skipped__summary::-webkit-details-marker{display:none}.enhance-split{grid-template-columns:340px 1fr;height:calc(100vh - 3.5rem);display:grid}@media (width<=768px){.enhance-split{grid-template-columns:1fr}}.enhance-split__left{background:var(--inverse-surface);color:#fffc;padding:var(--spacing-6);flex-direction:column;height:100%;display:flex;overflow:hidden}.enhance-split__left-header{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#fff6;margin-bottom:var(--spacing-5);font-size:.6875rem}.enhance-split__feed{gap:var(--spacing-4);scroll-behavior:smooth;flex-direction:column;flex:1;display:flex;overflow-y:auto}.enhance-feed-item--pending{opacity:.3}.enhance-feed-item__row{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-1);display:flex}.enhance-feed-item__check{color:#34d399;flex-shrink:0;font-size:.75rem}.enhance-feed-item__spinner{border:2px solid #fbbf24;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:12px;height:12px;animation:1s linear infinite spin;display:inline-block}.enhance-feed-item__circle{color:#fff6;flex-shrink:0;font-size:.75rem}.enhance-feed-item__title{font-family:var(--font-mono);color:#fffc;font-size:.75rem}.enhance-feed-item__title--active{color:#fbbf24}.enhance-feed-item__detail{font-family:var(--font-mono);color:#ffffff59;padding-inline-start:var(--spacing-5);font-size:.625rem}.enhance-split__narrative-box{margin-top:var(--spacing-8);padding:var(--spacing-4);border-radius:var(--radius-sm);background:#ffffff0d}.enhance-split__narrative-label{font-family:var(--font-mono);color:#fff6;margin-bottom:var(--spacing-2);font-size:.625rem}.enhance-split__narrative-status{align-items:center;gap:var(--spacing-2);font-family:var(--font-mono);color:#ffffff80;font-size:.6875rem;display:flex}.enhance-split__blink-dot{background:var(--secondary);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.2s infinite blink;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.enhance-split__right{padding:var(--spacing-8);overflow-y:auto}.enhance-split__narrative-text{color:var(--on-surface-variant);margin-bottom:var(--spacing-6);border-inline-start:2px solid var(--surface-container-high);padding-inline-start:var(--spacing-4);font-size:.9375rem;line-height:1.7}.enhance-split__skills{gap:var(--spacing-2);margin-bottom:var(--spacing-6);flex-wrap:wrap;display:flex}.enhance-split__arc{gap:var(--spacing-3);margin-bottom:var(--spacing-6);flex-direction:column;display:flex}.enhance-split__arc-item{gap:var(--spacing-3);align-items:flex-start;display:flex}.enhance-split__arc-item--generating{opacity:.4}.enhance-split__arc-num{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--primary);background:#08447114;flex-shrink:0;justify-content:center;align-items:center;font-size:.625rem;font-weight:600;display:flex}.enhance-split__arc-title{font-size:.875rem;font-weight:600}.enhance-split__arc-desc{color:var(--on-surface-variant);font-size:.75rem}.questions-list{gap:var(--spacing-6);margin-bottom:var(--spacing-8);flex-direction:column;display:flex}.question-card__tag-row{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-2);display:flex}.question-card__tag{font-family:var(--font-mono);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.08em;padding:2px 6px;font-size:.5625rem}.question-card__tag--pattern{background:var(--tertiary-fixed);color:var(--tertiary)}.question-card__tag--architecture{color:var(--primary);background:#08447114}.question-card__tag--evolution{background:var(--secondary-container);color:var(--secondary)}.question-card__text{margin-bottom:var(--spacing-3);font-size:.9375rem;font-weight:600;line-height:1.4}.question-card__textarea{width:100%;min-height:80px;padding:var(--spacing-3);border:1px solid var(--surface-container-high);border-radius:var(--radius-sm);font-family:var(--font-body);resize:vertical;background:var(--surface-container-low);color:var(--on-surface);font-size:.875rem;line-height:1.6}.question-card__textarea:focus{border-color:#08447166;outline:none}.question-card__textarea::placeholder{color:var(--on-surface-variant);opacity:.7}.timeline{margin-bottom:var(--spacing-8);padding-inline-start:var(--spacing-8);position:relative}.timeline__line{inset-inline-start:10px;background:var(--outline-variant);width:2px;position:absolute;top:0;bottom:0}.timeline__period{margin-bottom:var(--spacing-8)}.timeline__period:last-child{margin-bottom:0}.timeline__period-header{align-items:baseline;gap:var(--spacing-2);margin-bottom:var(--spacing-4);display:flex}.timeline__period-date{font-family:var(--font-mono);color:var(--on-surface);letter-spacing:.02em;font-size:.75rem;font-weight:600}.timeline__period-sep{color:var(--on-surface-variant);font-size:.75rem}.timeline__period-label{font-family:var(--font-mono);color:var(--on-surface-variant);letter-spacing:.02em;font-size:.75rem}.timeline__featured{align-items:flex-start;gap:var(--spacing-4);margin-bottom:var(--spacing-4);display:flex;position:relative}.timeline__dot--large{inset-inline-start:calc(-1 * var(--spacing-8) - 1px);top:var(--spacing-2);background:var(--primary);border:3px solid var(--surface);z-index:1;border-radius:50%;flex-shrink:0;width:22px;height:22px;position:absolute}.timeline__card{background:var(--surface-container-lowest);border:var(--ghost-border);border-radius:var(--radius-md);padding:var(--spacing-4) var(--spacing-5);flex:1}.timeline__card-header{align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-2);display:flex}.timeline__card-title{font-family:var(--font-display);color:var(--on-surface);font-size:1rem;font-weight:600}.timeline__card-tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--tertiary);background:var(--tertiary-fixed);border-radius:var(--radius-sm);white-space:nowrap;padding:2px 8px;font-size:.5625rem;font-weight:600}.timeline__card-meta{gap:var(--spacing-3);font-family:var(--font-mono);color:var(--on-surface-variant);margin-bottom:var(--spacing-2);font-size:.6875rem;display:flex}.timeline__card-desc{color:var(--on-surface-variant);margin-bottom:var(--spacing-3);font-size:.875rem;line-height:1.6}.timeline__card-skills{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.timeline__collapsed{align-items:center;gap:var(--spacing-4);margin-bottom:var(--spacing-3);display:flex;position:relative}.timeline__dot--small{inset-inline-start:calc(-1 * var(--spacing-8) + 4px);background:var(--surface-container-high);border:2px solid var(--surface);z-index:1;border-radius:50%;flex-shrink:0;width:12px;height:12px;position:absolute;top:50%;transform:translateY(-50%)}.timeline__collapsed-text{font-family:var(--font-mono);color:var(--on-surface-variant);font-size:.6875rem;line-height:1.5}.review-card{background:var(--surface-container-lowest);border:1px solid var(--ghost-border);border-radius:var(--radius-sm);padding:var(--spacing-6);margin-bottom:var(--spacing-6)}.review-card__name{font-family:var(--font-display);margin-bottom:var(--spacing-3);font-size:1.5rem;font-weight:700}.review-card__narrative{color:var(--on-surface-variant);margin-bottom:var(--spacing-6);font-size:.9375rem;line-height:1.6}.review-card__skills{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.review-checklist{background:var(--surface-container-low);border-radius:var(--radius-sm);padding:var(--spacing-5) var(--spacing-6);margin-bottom:var(--spacing-6)}.review-checklist__item{align-items:center;gap:var(--spacing-3);padding:var(--spacing-2) 0;color:var(--on-surface);font-size:.875rem;display:flex}.review-checklist__item--skipped{color:var(--on-surface-variant)}.review-checklist__icon{text-align:center;flex-shrink:0;width:1.25rem;font-size:.875rem}.review-checklist__icon--checked{color:var(--secondary);font-weight:700}.review-checklist__icon--skipped{color:var(--on-surface-variant)}.review-details{background:var(--surface-container-lowest);border:1px solid var(--ghost-border);border-radius:var(--radius-sm);padding:var(--spacing-6);margin-bottom:var(--spacing-6)}.review-details__header{margin-bottom:var(--spacing-5);justify-content:space-between;align-items:baseline;display:flex}.review-details__optional{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);font-size:.625rem}.review-field{margin-bottom:var(--spacing-5)}.review-field:last-child{margin-bottom:0}.review-field__label{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-2);color:var(--on-surface);font-size:.8125rem;font-weight:600;display:flex}.review-field__badge{font-family:var(--font-mono);color:var(--secondary);border-radius:var(--radius-sm);background:#006a6114;padding:2px 8px;font-size:.625rem;font-weight:600}.review-field__input{width:100%;padding:var(--spacing-3) var(--spacing-4);font-family:var(--font-body);border:1px solid var(--ghost-border);border-radius:var(--radius-sm);background:var(--surface);color:var(--on-surface);outline:none;font-size:.875rem;transition:border-color .15s;display:block}.review-field__input:focus{border-color:var(--primary)}.review-field__input::placeholder{color:var(--on-surface-variant);opacity:.6}.review-dropzone{justify-content:center;align-items:center;gap:var(--spacing-2);padding:var(--spacing-8) var(--spacing-6);border:2px dashed var(--ghost-border);border-radius:var(--radius-sm);cursor:pointer;flex-direction:column;transition:border-color .15s,background .15s;display:flex}.review-dropzone:hover,.review-dropzone:focus-visible{border-color:var(--primary);background:#08447108;outline:none}.review-dropzone__icon{opacity:.5;font-size:1.5rem}.review-dropzone__text{color:var(--on-surface-variant);font-size:.8125rem}.review-auth{margin:var(--spacing-5) 0}.review-auth__card{border:1px solid var(--ghost-border);border-radius:var(--radius-sm);padding:var(--spacing-5) var(--spacing-6);background:var(--surface)}.review-auth__title{font-family:var(--font-heading);margin:0 0 var(--spacing-3) 0;font-size:1rem;font-weight:600}.review-auth__instructions{color:var(--on-surface-variant);margin:0 0 var(--spacing-4) 0;font-size:.875rem;line-height:1.5}.review-auth__instructions a{color:var(--primary);text-decoration:underline}.review-auth__code{font-family:var(--font-mono);letter-spacing:.15em;text-align:center;padding:var(--spacing-4);background:var(--bg);border-radius:var(--radius-sm);margin-bottom:var(--spacing-3);font-size:1.5rem;font-weight:700}.review-auth__polling{color:var(--on-surface-variant);text-align:center;margin:0;font-size:.8125rem}.upload-flow__error{padding:var(--spacing-3) var(--spacing-4);margin:var(--spacing-4) 0;border:1px solid var(--error,#dc2626);border-radius:var(--radius-sm);color:var(--error,#dc2626);background:#dc26260d;align-items:center;font-size:.875rem;display:flex}.enhance-error{padding:var(--spacing-4);border:1px solid var(--error,#dc2626);border-radius:var(--radius-sm);background:#dc26260d}.enhance-error__message{color:var(--error,#dc2626);margin-bottom:var(--spacing-3);font-size:.875rem}.enhance-feed-item--failed{opacity:1}.enhance-feed-item__fail{color:#dc2626;margin-right:var(--spacing-2);font-weight:700}.enhance-feed-item__title--failed,.enhance-feed-item__detail--failed{color:#dc2626}.enhance-split__failure-recovery{margin-top:var(--spacing-4);padding:var(--spacing-4);border:1px solid var(--outline-variant);border-radius:var(--radius-sm);background:var(--surface-container,#f5f7fa)}.enhance-split__failure-text{color:var(--on-surface-variant);margin:0 0 var(--spacing-3);font-size:.875rem}.publish-error{padding:var(--spacing-4);margin:var(--spacing-4) 0;border:1px solid var(--error,#dc2626);border-radius:var(--radius-sm);background:#dc26260d}.publish-error__message{color:var(--error,#dc2626);margin-bottom:var(--spacing-3);font-size:.875rem;font-weight:600}.publish-error__sessions{gap:var(--spacing-2);margin-bottom:var(--spacing-3);flex-direction:column;display:flex}.publish-error__session-row{align-items:center;gap:var(--spacing-2);font-size:.8125rem;font-family:var(--font-mono);display:flex}.publish-error__icon--published{color:var(--success-fg,#16a34a)}.publish-error__icon--failed{color:var(--error,#dc2626)}.publish-error__session-title{flex:1}.publish-error__session-error{color:var(--on-surface-variant);font-size:.75rem}.publish-error__actions{gap:var(--spacing-3);flex-wrap:wrap;display:flex}.publish-progress{margin:var(--spacing-4) 0;padding:var(--spacing-4);background:var(--surface-container,#f5f7fa);border-radius:var(--radius-sm)}.publish-progress__sessions{gap:var(--spacing-2);flex-direction:column;display:flex}.publish-progress__row{align-items:center;gap:var(--spacing-2);font-size:.8125rem;font-family:var(--font-mono);display:flex}.success-card{text-align:center;max-width:480px;margin:var(--spacing-8) auto;flex-direction:column;align-items:center;display:flex}.success-card__icon{margin-bottom:var(--spacing-4)}.success-card__title{font-family:var(--font-display);color:var(--on-surface);margin-bottom:var(--spacing-2);font-size:1.5rem;font-weight:700}.success-card__subtitle{color:var(--on-surface-variant);margin-bottom:var(--spacing-6);font-size:.9375rem;line-height:1.6}.success-card__preview{background:linear-gradient(135deg, var(--primary-fixed,#d3e3f4) 0%, var(--surface-container-low) 100%);border:var(--ghost-border);border-radius:var(--radius-md);width:100%;padding:var(--spacing-5) var(--spacing-6);margin-bottom:var(--spacing-4);text-align:left}.success-card__preview-name{font-family:var(--font-display);color:var(--on-surface);margin-bottom:var(--spacing-2);font-size:1.125rem;font-weight:700}.success-card__preview-narrative{color:var(--on-surface-variant);margin-bottom:var(--spacing-4);font-size:.8125rem;line-height:1.6}.success-card__preview-stats{gap:var(--spacing-3);grid-template-columns:repeat(4,1fr);display:grid}.success-card__preview-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.success-card__preview-stat-value{font-family:var(--font-mono);color:var(--on-surface);font-size:1rem;font-weight:700}.success-card__preview-stat-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);font-size:.5625rem}.success-card__url-bar{background:var(--surface-container-lowest);border:var(--ghost-border);border-radius:var(--radius-sm);width:100%;padding:var(--spacing-2) var(--spacing-3);margin-bottom:var(--spacing-4);align-items:center;display:flex}.success-card__url-text{font-family:var(--font-mono);color:var(--on-surface);text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.8125rem;overflow:hidden}.success-card__url-copy{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius-sm);padding:var(--spacing-1) var(--spacing-3);cursor:pointer;background:0 0;flex-shrink:0;font-size:.6875rem;font-weight:600;transition:background .15s}.success-card__url-copy:hover{background:#0844710f}.success-card__meta{align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-6);justify-content:center;width:100%;display:flex}.success-card__badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--success-fg,#16a34a);background:var(--success-bg,#dcfce7);border-radius:var(--radius-sm);padding:2px 8px;font-size:.5625rem;font-weight:600}.success-card__meta-text{font-family:var(--font-mono);color:var(--on-surface-variant);font-size:.6875rem}.success-card__actions{gap:var(--spacing-3);width:100%;display:flex}.triage-terminal{background:var(--inverse-surface);color:var(--inverse-on-surface);border-radius:var(--radius-lg,12px);padding:var(--spacing-6);max-width:640px;margin:var(--spacing-8) auto;font-family:var(--font-mono);font-size:.8125rem;line-height:1.7}.triage-terminal__feed{scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;max-height:480px;overflow-y:auto}.triage-terminal__line{white-space:pre;min-height:1.7em}.triage-terminal__prompt{color:var(--inverse-primary,#9dcaff);margin-bottom:var(--spacing-2);font-weight:600}.triage-terminal__section{color:#ffffff80;font-weight:600}.triage-terminal__line--passed{color:#34d399}.triage-terminal__line--skipped{color:#f87171}.triage-terminal__line--active{color:#fbbf24}@media (prefers-reduced-motion:reduce){.triage-terminal__line--active{animation:none}}.project-preview{background:var(--surface);z-index:100;position:fixed;inset:0;overflow-y:auto}.project-preview__close{top:var(--spacing-4);right:var(--spacing-6);z-index:101;font-family:var(--font-mono);color:var(--on-surface-variant);background:var(--surface-container-low);border:1px solid var(--surface-container-high);padding:var(--spacing-2) var(--spacing-4);cursor:pointer;border-radius:.375rem;font-size:.8125rem;transition:color .15s;position:fixed}.project-preview__close:hover{color:var(--on-surface)}.project-preview__close:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.project-preview__content{max-width:1000px;padding:var(--spacing-8);margin:0 auto}.project-preview__breadcrumb{font-family:var(--font-mono);color:var(--on-surface-variant);margin-bottom:var(--spacing-2);font-size:.75rem}.project-preview__title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--on-surface);margin:0 0 var(--spacing-4) 0;font-size:2.5rem;font-weight:700;line-height:1.15}.project-preview__links{align-items:center;gap:var(--spacing-4);margin-bottom:var(--spacing-6);display:flex}.project-preview__link{align-items:center;gap:var(--spacing-2);font-family:var(--font-mono);color:var(--primary);font-size:.8125rem;text-decoration:none;display:inline-flex}.project-preview__link:hover{text-decoration:underline}.project-preview__narrative{font-family:var(--font-body);color:var(--on-surface);border-left:3px solid var(--primary);padding-left:var(--spacing-4);margin-bottom:var(--spacing-6);font-size:1rem;line-height:1.65}.project-preview__skills{gap:var(--spacing-2);margin-bottom:var(--spacing-6);flex-wrap:wrap;display:flex}.project-preview__hero-stats{gap:var(--spacing-4);margin-bottom:var(--spacing-8);grid-template-columns:repeat(4,1fr);display:grid}.project-preview__hero-stat{text-align:center;padding:var(--spacing-4);border:1px solid var(--ghost-border);border-radius:.375rem}.project-preview__hero-value{font-family:var(--font-mono);color:var(--on-surface);font-size:1.5rem;font-weight:700;line-height:1.2}.project-preview__hero-value--primary{color:var(--primary)}.project-preview__hero-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.5625rem}.project-preview__timeline-heading{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);margin-bottom:var(--spacing-4);font-size:.6875rem;font-weight:600}.review-preview-link{text-align:center;margin-bottom:var(--spacing-6);font-family:var(--font-mono);color:var(--primary);cursor:pointer;padding:var(--spacing-2) 0;background:0 0;border:none;font-size:.8125rem;display:block}.review-preview-link:hover{text-decoration:underline}.review-preview-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:.25rem}.typewriter-cursor{background:var(--primary);vertical-align:text-bottom;width:2px;height:1.1em;margin-inline-start:2px;animation:.8s step-end infinite cursor-blink;display:inline-block}@keyframes cursor-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.typewriter-cursor{opacity:1;animation:none}}.project-preview__banner{background:var(--primary-fixed);color:var(--primary);text-align:center;padding:var(--spacing-2) var(--spacing-4);font-family:var(--font-mono);letter-spacing:.03em;font-size:.6875rem}.project-preview__screenshot{margin-bottom:var(--spacing-6);background:var(--surface-container-low);border-radius:var(--radius-sm);border:1px solid var(--ghost-border);overflow:hidden}.project-preview__screenshot-inner{height:280px;color:var(--on-surface-variant);justify-content:center;align-items:center;gap:var(--spacing-2);font-family:var(--font-mono);background:linear-gradient(135deg,#0844710a,#08447114);flex-direction:column;font-size:.6875rem;display:flex}.project-preview .timeline__card:hover{box-shadow:var(--shadow-sm);border-color:#08447140}.project-preview .timeline__card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.project-preview .timeline__card{transition:box-shadow .15s,border-color .15s}.enhance-split__narrative-placeholder{align-items:center;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-5);background:var(--surface-container-low);border-radius:var(--radius-sm);border-left:3px solid var(--primary);color:var(--on-surface-variant);margin-bottom:var(--spacing-6);font-size:.875rem;line-height:1.5;display:flex}.project-preview__sessions-heading{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);margin-top:var(--spacing-8);margin-bottom:var(--spacing-4);font-size:.6875rem;font-weight:600}.project-preview__sessions-grid{gap:var(--spacing-4);margin-bottom:var(--spacing-8);grid-template-columns:repeat(2,1fr);display:grid}.project-preview__session-card{background:var(--surface-container-lowest);border:1px solid var(--ghost-border);border-radius:var(--radius-sm);padding:var(--spacing-6);transition:box-shadow .15s}.project-preview__session-card:hover{box-shadow:var(--shadow-sm)}.project-preview__session-bar{height:4px;margin-bottom:var(--spacing-4);border-radius:2px}.project-preview__session-title{font-family:var(--font-display);color:var(--on-surface);margin:0 0 var(--spacing-2) 0;font-size:1.125rem;font-weight:700;line-height:1.3}.project-preview__session-stats{font-family:var(--font-mono);color:var(--on-surface-variant);margin-bottom:var(--spacing-3);font-size:.8125rem}.project-preview__session-skills{gap:var(--spacing-2);margin-top:var(--spacing-3);flex-wrap:wrap;display:flex}.growth-chart{gap:var(--spacing-6);margin-bottom:var(--spacing-8);align-items:center;display:flex}.growth-chart__svg-container{flex:1;min-width:0}.growth-chart__summary{text-align:right;flex-shrink:0;width:200px}.growth-chart__total-value{font-family:var(--font-mono);color:var(--primary);font-size:2.5rem;font-weight:700;line-height:1.1}.growth-chart__total-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.5625rem;font-weight:600}.growth-chart__stat{margin-top:var(--spacing-4)}.growth-chart__stat-value{font-family:var(--font-mono);color:var(--on-surface);font-size:1.5rem;font-weight:700;line-height:1.2}.growth-chart__stat-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.5625rem;font-weight:600}.dir-heatmap{margin-bottom:var(--spacing-8)}.dir-heatmap__empty{font-family:var(--font-mono);color:var(--on-surface-variant);padding:var(--spacing-4) 0;font-size:.75rem}.dir-heatmap__grid{margin-bottom:var(--spacing-3);gap:2px;display:grid;overflow-x:auto}.dir-heatmap__session-label{font-family:var(--font-mono);text-align:center;color:var(--on-surface-variant);text-overflow:ellipsis;white-space:nowrap;padding-bottom:var(--spacing-2);font-size:.625rem;overflow:hidden}.dir-heatmap__dir-label{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;color:var(--on-surface);align-self:center;padding-inline-end:var(--spacing-2);font-size:.75rem;overflow:hidden}.dir-heatmap__cell{cursor:default;border-radius:2px;min-width:80px;min-height:32px;position:relative}.dir-heatmap__cell:hover{outline:1px solid var(--primary,#084471)}.dir-heatmap__legend{align-items:center;gap:var(--spacing-3);font-family:var(--font-mono);color:var(--on-surface-variant);margin-bottom:var(--spacing-6);font-size:.6875rem;display:flex}.dir-heatmap__top-files{margin-bottom:var(--spacing-8)}.dir-heatmap__top-files-summary{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);cursor:pointer;margin-bottom:var(--spacing-3);font-size:.6875rem;font-weight:600}.dir-heatmap__top-files-summary:hover{color:var(--on-surface)}.dir-heatmap__file-row{padding:var(--spacing-2) 0;border-bottom:var(--ghost-border);font-family:var(--font-mono);justify-content:space-between;font-size:.75rem;display:flex}.dir-heatmap__file-path{text-overflow:ellipsis;white-space:nowrap;color:var(--on-surface);margin-inline-end:var(--spacing-3);overflow:hidden}.dir-heatmap__file-count{color:var(--on-surface-variant);flex-shrink:0}.session-detail-overlay{background:var(--surface);z-index:110;flex-direction:column;display:flex;position:fixed;inset:0}.session-detail__header{padding:var(--spacing-3) var(--spacing-6);border-bottom:1px solid var(--outline-variant);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.session-detail__back{font-family:var(--font-mono);color:var(--on-surface-variant);cursor:pointer;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);background:0 0;border:none;font-size:.8125rem;transition:color .15s}.session-detail__back:hover{color:var(--on-surface)}.session-detail__close{color:var(--on-surface-variant);cursor:pointer;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);background:0 0;border:none;font-size:1.25rem;line-height:1;transition:color .15s}.session-detail__close:hover{color:var(--on-surface)}.session-detail__scroll{padding:var(--spacing-8) var(--spacing-6) var(--spacing-12);flex:1;width:100%;max-width:1100px;margin:0 auto;overflow-y:auto}.session-detail__layout{gap:var(--spacing-8);grid-template-columns:2fr 1fr;display:grid}.session-detail__main,.session-detail__sidebar{min-width:0}.session-detail__breadcrumb{font-family:var(--font-mono);color:var(--on-surface-variant);margin-bottom:var(--spacing-2);letter-spacing:.01em;font-size:.75rem}.session-detail__title{font-family:var(--font-display);color:var(--on-surface);margin-bottom:var(--spacing-6);font-size:2rem;font-weight:600;line-height:1.2}.session-detail__stats-grid{gap:var(--spacing-4);margin-bottom:var(--spacing-6);grid-template-columns:repeat(4,1fr);display:grid}.session-detail__stat{padding:var(--spacing-3) var(--spacing-4);background:var(--surface-container-lowest);border:1px solid var(--outline-variant);border-radius:var(--radius-md)}.session-detail__stat-value{font-family:var(--font-display);color:var(--on-surface);font-size:1.25rem;font-weight:600}.session-detail__stat-label{font-family:var(--font-mono);color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.04em;margin-top:var(--spacing-1);font-size:.6875rem}.session-detail__section{margin-bottom:var(--spacing-6)}.session-detail__section-label{font-family:var(--font-mono);color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--spacing-3);font-size:.6875rem;font-weight:600}.session-detail__take{font-family:var(--font-body);color:var(--on-surface);border-inline-start:3px solid var(--primary);margin:0;padding-inline-start:var(--spacing-4);font-size:.9375rem;line-height:1.6}.session-detail__context{font-family:var(--font-body);color:var(--on-surface-variant);font-size:.875rem;line-height:1.6}.session-detail__skills{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.session-detail__qa-list{gap:var(--spacing-4);flex-direction:column;display:flex}.session-detail__qa-pair{padding-bottom:var(--spacing-4);border-bottom:1px solid var(--outline-variant)}.session-detail__qa-pair:last-child{border-bottom:none;padding-bottom:0}.session-detail__qa-question{font-family:var(--font-body);color:var(--on-surface);margin-bottom:var(--spacing-2);font-size:.875rem;font-weight:600}.session-detail__qa-answer{font-family:var(--font-body);color:var(--on-surface-variant);padding-inline-start:var(--spacing-4);font-size:.875rem;line-height:1.6}.session-detail__highlights{gap:var(--spacing-4);padding-bottom:var(--spacing-2);scrollbar-width:thin;display:flex;overflow-x:auto}.session-detail__highlight-card{padding:var(--spacing-4);background:var(--surface-container-lowest);border:1px solid var(--outline-variant);border-radius:var(--radius-md);flex:0 0 240px}.session-detail__highlight-step{font-family:var(--font-mono);color:var(--primary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--spacing-1);font-size:.625rem}.session-detail__highlight-title{font-family:var(--font-display);color:var(--on-surface);margin-bottom:var(--spacing-2);font-size:.875rem;font-weight:600}.session-detail__highlight-desc{font-family:var(--font-body);color:var(--on-surface-variant);font-size:.8125rem;line-height:1.5}.session-detail__sidebar-section{margin-bottom:var(--spacing-6)}.session-detail__exec-path{padding-inline-start:var(--spacing-5);position:relative}.session-detail__exec-path:before{content:"";inset-inline-start:5px;background:var(--outline-variant);width:1px;position:absolute;top:8px;bottom:8px}.session-detail__exec-step{padding-bottom:var(--spacing-4);position:relative}.session-detail__exec-step:last-child{padding-bottom:0}.session-detail__exec-dot{inset-inline-start:calc(var(--spacing-5) * -1 + 2px);background:var(--primary);border-radius:50%;width:7px;height:7px;position:absolute;top:6px}.session-detail__exec-title{font-family:var(--font-body);color:var(--on-surface);font-size:.8125rem;font-weight:600;line-height:1.3}.session-detail__exec-desc{font-family:var(--font-body);color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.75rem;line-height:1.5}.session-detail__raw-log{background:var(--inverse-surface);color:var(--inverse-on-surface);border-radius:var(--radius-md);padding:var(--spacing-3) var(--spacing-4);font-family:var(--font-mono);font-size:.6875rem;line-height:1.6;overflow:hidden}.session-detail__raw-line{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.session-detail__raw-more{margin-top:var(--spacing-3);color:var(--inverse-primary);cursor:default;font-size:.6875rem}.session-detail__source-list{gap:var(--spacing-2);flex-direction:column;display:flex}.session-detail__source-row{justify-content:space-between;align-items:baseline;font-size:.8125rem;display:flex}.session-detail__source-key{font-family:var(--font-mono);color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem}.session-detail__source-val{font-family:var(--font-body);color:var(--on-surface);font-size:.8125rem}.session-detail__full-width{margin-top:var(--spacing-8);gap:var(--spacing-4);flex-direction:column;display:flex}.session-detail__collapsible{border:1px solid var(--outline-variant);border-radius:var(--radius-md);overflow:hidden}.session-detail__collapsible-summary{font-family:var(--font-mono);color:var(--on-surface);padding:var(--spacing-3) var(--spacing-4);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--surface-container-low);font-size:.8125rem;font-weight:600;list-style:none}.session-detail__collapsible-summary::-webkit-details-marker{display:none}.session-detail__collapsible-summary:before{content:"▶";margin-inline-end:var(--spacing-2);font-size:.625rem;transition:transform .15s;display:inline-block}.session-detail__collapsible[open]>.session-detail__collapsible-summary:before{transform:rotate(90deg)}.session-detail__tool-list{padding:var(--spacing-3) var(--spacing-4);gap:var(--spacing-2);flex-direction:column;display:flex}.session-detail__tool-row{align-items:center;gap:var(--spacing-3);grid-template-columns:140px 1fr 40px;display:grid}.session-detail__tool-name{font-family:var(--font-mono);color:var(--on-surface);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.session-detail__tool-bar-track{background:var(--surface-container-high);border-radius:3px;height:6px;overflow:hidden}.session-detail__tool-bar{background:var(--primary);border-radius:3px;height:100%;transition:width .2s}.session-detail__tool-count{font-family:var(--font-mono);color:var(--on-surface-variant);text-align:end;font-size:.75rem}.session-detail__file-list{padding:var(--spacing-3) var(--spacing-4);gap:var(--spacing-1);flex-direction:column;display:flex}.session-detail__file-row{gap:var(--spacing-3);font-family:var(--font-mono);padding:var(--spacing-1) 0;grid-template-columns:1fr auto auto;align-items:baseline;font-size:.75rem;display:grid}.session-detail__file-path{color:var(--on-surface);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.session-detail__file-additions{color:var(--secondary);font-weight:600}.session-detail__file-deletions{color:var(--error);font-weight:600}.project-preview__session-card--clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.project-preview__session-card--clickable:hover{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.project-preview__session-card--clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (width<=720px){.session-detail__layout{grid-template-columns:1fr}.session-detail__stats-grid{grid-template-columns:repeat(2,1fr)}.session-detail__scroll{padding:var(--spacing-4) var(--spacing-4) var(--spacing-8)}.session-detail__tool-row{grid-template-columns:100px 1fr 36px}}.agent-activity{margin-bottom:var(--spacing-8)}.agent-activity__card{background:var(--surface-container-lowest);border:var(--ghost-border);border-radius:var(--radius-sm);padding:var(--spacing-5)}.agent-activity__legend{gap:var(--spacing-4);margin-bottom:var(--spacing-4);flex-wrap:wrap;display:flex}.agent-activity__legend-item{font-family:var(--font-mono);color:var(--on-surface-variant);align-items:center;gap:4px;font-size:.5625rem;display:flex}.agent-activity__legend-dot{border-radius:50%;width:8px;height:8px}.agent-activity__timelines{gap:var(--spacing-2);-webkit-overflow-scrolling:touch;padding-bottom:var(--spacing-2);flex-direction:column;display:flex;overflow-x:auto}.agent-activity__session{flex-direction:column;gap:2px;min-width:fit-content;display:flex}.agent-activity__session-label{font-family:var(--font-mono);letter-spacing:.04em;color:var(--on-surface-variant);text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;max-width:50%;font-size:.5625rem;font-weight:600;overflow:hidden}.agent-activity__summary{gap:var(--spacing-3);margin-top:var(--spacing-4);padding-top:var(--spacing-4);border-top:var(--ghost-border);grid-template-columns:repeat(4,1fr);display:grid}.agent-activity__summary-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);margin-top:var(--spacing-1);font-size:.5625rem;font-weight:600}.agent-activity__summary-value{color:var(--on-surface);font-weight:700}