session-steward 0.5.0 → 0.5.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.
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--animate-spin:spin 1s linear infinite;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-5{height:calc(var(--spacing) * 5)}.h-9{height:calc(var(--spacing) * 9)}.min-h-\[360px\]{min-height:360px}.min-h-screen{min-height:100vh}.w-16{width:calc(var(--spacing) * 16)}.w-32{width:calc(var(--spacing) * 32)}.w-\[min\(50\%\,20rem\)\]{width:min(50%,20rem)}.w-\[min\(75\%\,30rem\)\]{width:min(75%,30rem)}.max-w-\[1380px\]{max-width:1380px}.min-w-0{min-width:0}.min-w-40{min-width:calc(var(--spacing) * 40)}.shrink-0{flex-shrink:0}.animate-spin{animation:var(--animate-spin)}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:2147483647px}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.text-left{text-align:left}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media (width>=40rem){.sm\:flex{display:flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:py-8{padding-block:calc(var(--spacing) * 8)}}@media (width>=64rem){.lg\:hidden{display:none}.lg\:grid-cols-\[minmax\(0\,1fr\)_340px\]{grid-template-columns:minmax(0,1fr) 340px}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media (width>=80rem){.xl\:grid-cols-\[minmax\(0\,1fr\)_420px\]{grid-template-columns:minmax(0,1fr) 420px}}@media (width>=96rem){.\32 xl\:grid-cols-\[minmax\(0\,1fr\)_480px\]{grid-template-columns:minmax(0,1fr) 480px}}}:root{--scrollbar-thumb:#404040;--scrollbar-thumb-hover:#525252;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}html,.app-shell,.app-shell *{scrollbar-color:var(--scrollbar-thumb) transparent;scrollbar-width:thin}html::-webkit-scrollbar{width:8px;height:8px}.app-shell::-webkit-scrollbar{width:8px;height:8px}.app-shell ::-webkit-scrollbar{width:8px;height:8px}html::-webkit-scrollbar-track{background:0 0}.app-shell::-webkit-scrollbar-track{background:0 0}.app-shell ::-webkit-scrollbar-track{background:0 0}html::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px}.app-shell::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px}.app-shell ::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px}html::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}.app-shell::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}.app-shell ::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}body{min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.app-shell{--canvas:#0a0a0a;--surface:#171717;--raised:#262626;--border-subtle:#262626;--border-strong:var(--scrollbar-thumb);--text-primary:#f5f5f5;--text-secondary:#d4d4d4;--text-muted:#a3a3a3;--text-faint:#737373;--accent:#34d399;--accent-soft:#173c2f;--danger:#dc2626;--danger-border:var(--danger)}@supports (color:color-mix(in lab, red, red)){.app-shell{--danger-border:color-mix(in srgb, var(--danger) 40%, var(--border-subtle))}}.app-shell{--danger-text:#fca5a5;--warning:#fbbf24;--success:#34d399;--focus-ring:#d4d4d4;--radius-control:.625rem;--radius-surface:1rem;min-height:100vh;color:var(--text-primary);background:radial-gradient(circle at 50% -12rem, var(--text-primary), transparent 28rem), var(--canvas);position:relative;overflow-x:hidden}@supports (color:color-mix(in lab, red, red)){.app-shell{background:radial-gradient(circle at 50% -12rem, color-mix(in srgb, var(--text-primary) 2%, transparent), transparent 28rem), var(--canvas)}}.app-shell:before{pointer-events:none;content:"";background:linear-gradient(90deg, transparent, var(--border-strong), transparent);height:1px;position:fixed;top:0;left:0;right:0}.app-shell button:focus-visible,.app-shell input:focus-visible,.app-shell select:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.app-shell ::selection{color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.app-shell ::selection{background:color-mix(in srgb, var(--text-primary) 20%, transparent)}}.text-primary{color:var(--text-primary)}.section-title{color:var(--text-primary);font-size:16px;font-weight:650}.shown-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:13px}.surface{border:1px solid var(--border-strong);border-radius:var(--radius-surface);background:var(--surface);box-shadow:0 1px 0 var(--text-primary) inset, 0 16px 44px var(--canvas)}@supports (color:color-mix(in lab, red, red)){.surface{box-shadow:0 1px 0 color-mix(in srgb, var(--text-primary) 3%, transparent) inset, 0 16px 44px color-mix(in srgb, var(--canvas) 48%, transparent)}}.brand-mark{border:1px solid var(--border-strong);width:2.75rem;height:2.75rem;color:var(--text-secondary);background:linear-gradient(145deg, var(--raised), var(--surface));box-shadow:0 8px 24px var(--canvas);border-radius:.875rem;flex:none;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.brand-mark{box-shadow:0 8px 24px color-mix(in srgb, var(--canvas) 40%, transparent)}}.brand-kicker{color:var(--text-muted);margin-bottom:4px;font-size:12px;font-weight:550}.brand-title{letter-spacing:-.035em;color:var(--text-primary);font-size:28px;font-weight:650;line-height:32px}.provider-switch{background:var(--text-primary);border:0;border-radius:.75rem;gap:4px;padding:4px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.provider-switch{background:color-mix(in srgb, var(--text-primary) 4%, transparent)}}.provider-switch{box-shadow:0 1px 0 var(--text-primary) inset, 0 8px 24px var(--canvas)}@supports (color:color-mix(in lab, red, red)){.provider-switch{box-shadow:0 1px 0 color-mix(in srgb, var(--text-primary) 5%, transparent) inset, 0 8px 24px color-mix(in srgb, var(--canvas) 32%, transparent)}}.provider-switch button{min-height:36px;color:var(--text-muted);background:0 0;border:0;border-radius:.5rem;align-items:center;gap:7px;padding:0 16px;font-size:13px;font-weight:650;transition:color .15s ease-out,background .15s ease-out,box-shadow .15s ease-out;display:inline-flex}.provider-switch button:hover{color:var(--text-primary)}.provider-switch button[aria-pressed=true]{color:var(--text-primary);background:var(--raised);box-shadow:0 1px 4px var(--canvas)}@supports (color:color-mix(in lab, red, red)){.provider-switch button[aria-pressed=true]{box-shadow:0 1px 4px color-mix(in srgb, var(--canvas) 60%, transparent)}}.provider-icon{flex:none}.provider-context{align-items:center;min-height:36px;margin:-4px 4px 8px;padding:0 4px 4px;display:flex}.provider-context-row,.provider-context-main{min-width:0}.provider-context-main{align-items:center;gap:12px;display:flex}.provider-context-heading{flex:none;align-items:center;gap:8px;display:flex}.provider-context-label{color:var(--text-secondary);font-size:12px;font-weight:650}.provider-context code{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;overflow:hidden}.provider-context-actions{flex:none;align-items:center;gap:4px;display:flex}.provider-context-editing{border:1px solid var(--border-strong);border-radius:var(--radius-surface);background:var(--raised);box-shadow:0 18px 48px var(--canvas);margin:0 0 12px;padding:16px;display:block}@supports (color:color-mix(in lab, red, red)){.provider-context-editing{box-shadow:0 18px 48px color-mix(in srgb, var(--canvas) 54%, transparent)}}.provider-context-placeholder{border-radius:.75rem;height:48px;margin-bottom:12px}.provider-context-editing .provider-context-main{gap:8px;display:grid}.provider-context-form{border-top:1px solid var(--border-subtle);margin-top:12px;padding-top:12px}.compact-action{border-radius:var(--radius-control);min-height:28px;color:var(--text-muted);background:0 0;border:0;padding:4px 8px;font-size:11px;font-weight:650}.compact-action:hover:not(:disabled){color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.compact-action:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 6%, transparent)}}.compact-action:disabled{opacity:.42}.source-badge{border:1px solid var(--border-strong);color:var(--text-muted);background:var(--surface);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:650}.overview-strip{--overview-columns:5;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:16px;display:grid}.overview-item{min-width:0;color:var(--text-muted);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:8px 12px 12px;display:grid}.overview-item-primary{color:var(--text-secondary);grid-column:1/-1}.overview-item:not(.overview-item-primary):nth-child(2n){border-right:1px solid var(--border-subtle)}.overview-strip>.overview-item:last-child{border-right:0}.overview-label{text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:11px;font-weight:600;line-height:16px;overflow:hidden}.overview-value{letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:16px;font-weight:650;line-height:20px;overflow:hidden}.overview-item-primary .overview-value{color:var(--text-primary);font-size:20px;line-height:24px}.panel-label{color:var(--text-secondary);font-size:12px;font-weight:650}.cleanup-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--danger-text);align-items:center;gap:8px;margin-bottom:8px;font-size:11px;font-weight:700;display:flex}.button{border-radius:var(--radius-control);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:36px;padding:8px 12px;font-size:13px;font-weight:650;line-height:16px;display:inline-flex}.button:disabled{opacity:.42}.button.secondary{border-color:var(--border-strong);color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.button.secondary{background:color-mix(in srgb, var(--text-primary) 6%, transparent)}}.button.secondary:hover:not(:disabled){background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.button.secondary:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 10%, transparent)}}.button.ghost{border-color:var(--border-subtle);color:var(--text-secondary);background:0 0}.button.ghost:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.button.ghost:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 5%, transparent)}}.button.primary{border-color:var(--focus-ring);color:var(--canvas);background:var(--focus-ring);box-shadow:0 8px 24px var(--canvas)}@supports (color:color-mix(in lab, red, red)){.button.primary{box-shadow:0 8px 24px color-mix(in srgb, var(--canvas) 46%, transparent)}}.button.primary:hover:not(:disabled){background:var(--text-primary)}.button.danger{border-color:var(--danger);color:#fff;background:var(--danger);box-shadow:0 8px 24px var(--danger)}@supports (color:color-mix(in lab, red, red)){.button.danger{box-shadow:0 8px 24px color-mix(in srgb, var(--danger) 18%, transparent)}}.button.danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.icon-button{border-radius:var(--radius-control);width:32px;height:32px;color:var(--text-muted);background:0 0;border:1px solid #0000;flex:none;place-items:center;display:grid}.icon-button:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.icon-button:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 6%, transparent)}}.refresh-button{border-color:var(--border-subtle);background:var(--surface);width:40px;height:40px}.status-pill{border:1px solid;border-radius:999px;align-items:center;gap:8px;min-height:28px;padding:4px 8px;font-size:11px;font-weight:650;display:inline-flex}.status-pill:hover{filter:brightness(1.12)}.status-pill>span{background:currentColor;border-radius:999px;width:6px;height:6px}.status-ready{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.status-ready{border-color:color-mix(in srgb, var(--success) 28%, transparent)}}.status-ready{color:var(--success);background:var(--success)}@supports (color:color-mix(in lab, red, red)){.status-ready{background:color-mix(in srgb, var(--success) 8%, transparent)}}.status-partial{border-color:var(--border-subtle);color:var(--text-secondary);background:var(--surface)}.status-warning{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.status-warning{border-color:color-mix(in srgb, var(--warning) 28%, transparent)}}.status-warning{color:var(--warning);background:var(--warning)}@supports (color:color-mix(in lab, red, red)){.status-warning{background:color-mix(in srgb, var(--warning) 8%, transparent)}}.status-error{border-color:var(--danger-border);color:var(--danger-text);background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.status-error{background:color-mix(in srgb, var(--danger) 8%, transparent)}}.field{min-width:0;color:var(--text-muted);gap:4px;font-size:12px;font-weight:650;display:grid}.field>span{align-items:center;gap:4px;display:flex}.field input,.field select,.input-wrap,.sort-control select{border:1px solid var(--border-subtle);border-radius:var(--radius-control);width:100%;min-height:40px;color:var(--text-primary);background-color:var(--raised)}@supports (color:color-mix(in lab, red, red)){.field input,.field select,.input-wrap,.sort-control select{background-color:color-mix(in srgb, var(--raised) 18%, var(--canvas))}}.field input,.field select,.input-wrap,.sort-control select{box-shadow:inset 0 1px 0 var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.field input,.field select,.input-wrap,.sort-control select{box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text-primary) 3%, transparent)}}.field>input{padding:8px 12px}.field select,.sort-control select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);text-overflow:ellipsis;white-space:nowrap;background-position:calc(100% - 15px) 17px,calc(100% - 11px) 17px;background-repeat:no-repeat;background-size:4px 4px,4px 4px;padding:8px 36px 8px 12px;overflow:hidden}.field input::placeholder{color:var(--text-muted)}.field input:hover,.field select:hover,.input-wrap:hover,.sort-control select:hover{border-color:var(--border-strong)}.field input:focus,.field select:focus,.input-wrap:focus-within,.sort-control select:focus{border-color:var(--text-secondary)}@supports (color:color-mix(in lab, red, red)){.field input:focus,.field select:focus,.input-wrap:focus-within,.sort-control select:focus{border-color:color-mix(in srgb, var(--text-secondary) 58%, var(--border-strong))}}.field input:focus,.field select:focus,.input-wrap:focus-within,.sort-control select:focus{background-color:var(--canvas);box-shadow:0 0 0 3px var(--focus-ring), inset 0 1px 0 var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.field input:focus,.field select:focus,.input-wrap:focus-within,.sort-control select:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--focus-ring) 7%, transparent), inset 0 1px 0 color-mix(in srgb, var(--text-primary) 3%, transparent)}}.input-wrap{color:var(--text-muted);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:0 12px;display:grid}.input-wrap input{min-height:auto;box-shadow:none;background:0 0;border:0;border-radius:0;outline:0;padding:8px}.app-shell .input-wrap input:focus-visible{outline:0}.input-wrap button{color:var(--text-muted);background:0 0;border:0;place-items:center;display:grid}.session-list-header{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:12px 16px;display:flex}.session-list-tools{align-items:center;gap:12px;display:flex}.sort-control{color:var(--text-muted);align-items:center;gap:8px;font-size:11px;font-weight:650;display:flex}.sort-control select{background-position:calc(100% - 15px) 13px,calc(100% - 11px) 13px;width:132px;min-height:32px;padding-top:4px;padding-bottom:4px;font-size:12px}.shortcut-hint{color:var(--text-muted);font-size:11px;display:none}.shortcut-hint kbd{border:1px solid var(--border-strong);background:var(--raised);color:var(--text-secondary);border-radius:.375rem;margin:0 4px;padding:1px 6px;font-family:inherit;font-size:11px}.session-filters{--filter-grid:minmax(0, 1fr) auto;border-bottom:1px solid var(--border-subtle);background:var(--surface);position:relative}@supports (color:color-mix(in lab, red, red)){.session-filters{background:color-mix(in srgb, var(--surface) 88%, var(--canvas))}}.filter-bar,.more-filters-row{grid-template-columns:var(--filter-grid);align-items:end;gap:12px;min-width:0;padding:12px 16px;display:grid}.filter-search{min-width:0}.filter-primary-controls,.filter-overflow-primary,.filter-overflow-controls{display:contents}.more-filters-wrap{min-width:0}.more-filters-button{border:1px solid var(--border-subtle);border-radius:var(--radius-control);min-height:40px;color:var(--text-secondary);background:var(--raised);align-items:center;gap:8px;padding:8px 12px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.more-filters-button{background:color-mix(in srgb, var(--raised) 18%, var(--canvas))}}.more-filters-button{box-shadow:inset 0 1px 0 var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.more-filters-button{box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text-primary) 3%, transparent)}}.more-filters-button{white-space:nowrap;font-size:12px;font-weight:650}.more-filters-button:hover{border-color:var(--border-strong);color:var(--text-primary);background:var(--raised)}.more-filters-active{border-color:var(--border-strong);color:var(--text-primary)}.more-filters-button strong{min-width:20px;height:20px;color:var(--canvas);background:var(--text-secondary);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;font-size:11px;display:grid}.more-filters-row{border-top:1px solid var(--border-subtle);animation:.15s ease-out disclosure-in}.active-filter-row{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:8px 16px;display:flex}.active-filter-chips{flex-wrap:wrap;gap:8px;min-width:0;display:flex}.filter-chip{border:1px solid var(--border-strong);max-width:300px;min-height:28px;color:var(--text-secondary);background:var(--raised);border-radius:999px;align-items:center;gap:8px;padding:4px 8px 4px 12px;font-size:11px;transition:border-color .12s ease-out,background .12s ease-out;display:inline-flex}.filter-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.filter-chip:hover{border-color:var(--focus-ring)}.filter-chip-exiting{pointer-events:none}.clear-all-filters{color:var(--text-muted);background:0 0;border:0;flex:none;padding:4px;font-size:11px;font-weight:650}.clear-all-filters:hover{color:var(--text-primary)}.unknown-activity-note{border-top:1px solid var(--border-subtle);color:var(--text-muted);padding:8px 16px;font-size:11px;line-height:16px}.toggle{cursor:pointer;border:1px solid var(--border-subtle);border-radius:var(--radius-control);min-width:0;min-height:40px;color:var(--text-secondary);background:var(--raised);align-items:center;gap:8px;padding:8px 12px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.toggle{background:color-mix(in srgb, var(--raised) 18%, var(--canvas))}}.toggle{box-shadow:inset 0 1px 0 var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.toggle{box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text-primary) 3%, transparent)}}.toggle{font-size:12px;font-weight:600;transition:border-color .15s ease-out,background .15s ease-out,color .15s ease-out}.toggle:hover{border-color:var(--border-strong);color:var(--text-primary)}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle-track{background:var(--border-strong);border-radius:999px;flex:none;width:28px;height:16px;transition:background .15s ease-out;position:relative}.toggle-track span{background:var(--text-muted);border-radius:999px;width:10px;height:10px;transition:left .15s ease-out,background .15s ease-out;position:absolute;top:3px;left:3px}.toggle-copy{white-space:nowrap;align-items:center;gap:6px;min-width:0;display:flex}.toggle-copy>span{text-overflow:ellipsis;overflow:hidden}.toggle-active{border-color:var(--border-strong);color:var(--text-primary);background:var(--raised)}.toggle-active .toggle-track{background:var(--text-secondary)}.toggle-active .toggle-track span{background:var(--canvas);left:15px}.page-selection-row{border-bottom:1px solid var(--border-subtle);background:var(--text-primary);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:8px 16px;display:flex}@supports (color:color-mix(in lab, red, red)){.page-selection-row{background:color-mix(in srgb, var(--text-primary) 1.5%, transparent)}}.selection-control{cursor:pointer;color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.selection-control input,.session-checkbox input{width:16px;height:16px;accent-color:var(--accent);margin:0}.session-row-block+.session-row-block{border-top:1px solid var(--border-subtle)}.session-row-block-grouped{border-top:0!important}.session-rows>.session-row+.session-row{border-top:1px solid var(--border-subtle)}.date-separator{min-height:30px;color:var(--text-faint);letter-spacing:.035em;align-items:center;gap:10px;padding:6px 16px;font-size:10px;font-weight:650;line-height:16px;display:flex}.date-separator-line{background:var(--border-subtle);flex:auto;height:1px}.session-row{grid-template-columns:32px minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:60px;padding:8px 16px;transition:background .12s ease-out,box-shadow .12s ease-out;display:grid;position:relative}.session-row:hover{background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.session-row:hover{background:color-mix(in srgb, var(--text-primary) 3%, transparent)}}.session-row-cursor:before{background:var(--text-primary);content:"";width:2px;height:28px;box-shadow:0 0 10px var(--text-primary);border-radius:999px;position:absolute;top:50%;left:3px;transform:translateY(-50%)}@supports (color:color-mix(in lab, red, red)){.session-row-cursor:before{box-shadow:0 0 10px color-mix(in srgb, var(--text-primary) 18%, transparent)}}.session-row-inspected{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.session-row-inspected{background:color-mix(in srgb, var(--accent) 10%, transparent)}}.session-row-selected{background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.session-row-selected{background:color-mix(in srgb, var(--text-primary) 6%, transparent)}}.session-row-inspected.session-row-selected{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.session-row-inspected.session-row-selected{background:color-mix(in srgb, var(--accent) 12%, transparent)}}.session-checkbox{cursor:pointer;border-radius:var(--radius-control);place-items:center;width:40px;height:40px;margin:-4px;display:grid}.session-checkbox:hover{background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.session-checkbox:hover{background:color-mix(in srgb, var(--text-primary) 6%, transparent)}}.session-checkbox:focus-within{background:var(--focus-ring)}@supports (color:color-mix(in lab, red, red)){.session-checkbox:focus-within{background:color-mix(in srgb, var(--focus-ring) 8%, transparent)}}.session-checkbox:focus-within{box-shadow:0 0 0 2px var(--focus-ring)}@supports (color:color-mix(in lab, red, red)){.session-checkbox:focus-within{box-shadow:0 0 0 2px color-mix(in srgb, var(--focus-ring) 22%, transparent)}}.session-row>button{min-width:0;color:inherit;background:0 0;border:0;padding:0}.session-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;line-height:20px;display:block;overflow:hidden}.session-workspace{min-width:0;color:var(--text-muted);align-items:center;gap:4px;margin-top:4px;font-size:12px;line-height:16px;display:flex}.session-row-meta{flex-direction:row;flex:none;justify-content:flex-end;align-items:center;gap:4px;display:flex}.time-badge,.kind-label,.size-badge,.archive-tag{border:1px solid var(--border-subtle);min-height:22px;color:var(--text-muted);background:var(--text-primary);border-radius:999px;align-items:center;gap:4px;padding:2px 6px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.time-badge,.kind-label,.size-badge,.archive-tag{background:color-mix(in srgb, var(--text-primary) 3%, transparent)}}.time-badge,.kind-label,.size-badge,.archive-tag{white-space:nowrap;font-size:11px;font-weight:600;line-height:16px}.archive-tag{min-height:20px;padding:1px 6px}.session-row-chevron{color:var(--text-faint);flex:none;display:none}.session-row:hover .session-row-chevron{color:var(--text-muted);transform:translate(2px)}.session-row-chevron{transition:color .12s ease-out,transform .12s ease-out}.session-row-skeleton{grid-template-columns:32px minmax(0,1fr) auto auto}.badge-skeleton{border-radius:999px;width:56px;height:22px}.inspector{display:none;overflow:hidden}.inspector-backdrop{display:none}.inspector-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.inspector-content{padding:20px}.icon-tile{border:1px solid var(--border-subtle);width:36px;height:36px;color:var(--text-muted);background:var(--text-primary);border-radius:.75rem;flex:none;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.icon-tile{background:color-mix(in srgb, var(--text-primary) 4%, transparent)}}.inspector-title{overflow-wrap:anywhere;-webkit-line-clamp:2;color:var(--text-primary);-webkit-box-orient:vertical;font-size:16px;font-weight:400;line-height:24px;display:-webkit-box;overflow:hidden}.inspector-id{overflow-wrap:anywhere;color:var(--text-muted);margin-top:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:16px}.inspector-details{margin-top:24px}.detail-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:20px minmax(0,1fr);gap:8px;margin-bottom:16px;padding:0 0 16px;display:grid}.detail-row:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.detail-row>svg{color:var(--text-muted);margin-top:2px}.detail-row dt{color:var(--text-muted);font-size:11px;font-weight:650;line-height:16px}.detail-row dd{overflow-wrap:anywhere;color:var(--text-secondary);margin-top:4px;font-size:13px;line-height:20px}.inspector-empty{text-align:center;place-items:center;min-height:260px;padding:28px;display:grid}.inspector-empty-icon{width:40px;height:40px;color:var(--text-faint);place-items:center;margin:0 auto;display:grid}.inspector-empty h2{color:var(--text-secondary);margin-top:8px;font-size:13px;font-weight:600}.inspector-empty p{max-width:220px;color:var(--text-muted);margin:8px auto 0;font-size:12px;line-height:16px}.related-sessions,.session-timeline{border-top:1px solid var(--border-subtle)}.timeline-heading{justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.timeline-heading>div>p:last-child{color:var(--text-muted);margin-top:3px;font-size:11px;line-height:16px}.related-session-list{border-top:1px solid var(--border-subtle)}.related-session-list button{border:0;border-bottom:1px solid var(--border-subtle);width:100%;min-width:0;color:var(--text-muted);text-align:left;background:0 0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 20px;display:grid}.related-session-list button:hover{color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.related-session-list button:hover{background:color-mix(in srgb, var(--text-primary) 3%, transparent)}}.related-session-copy{gap:2px;min-width:0;display:grid;overflow:hidden}.related-session-copy strong,.related-session-copy small,.related-session-copy code{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.related-session-copy strong{color:var(--text-secondary);font-size:11px;font-weight:600;line-height:16px}.related-session-copy small{color:var(--text-muted);font-size:10px;line-height:15px}.related-session-copy code{color:var(--text-faint);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:9px;line-height:14px}.timeline-region{border-top:1px solid var(--border-subtle);min-height:112px;position:relative}.timeline-initial-loading{min-height:112px;color:var(--text-muted);justify-content:center;align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.timeline-events{display:grid}.timeline-event{border-bottom:1px solid var(--border-subtle);background:var(--text-primary);min-width:0;padding:14px 20px}@supports (color:color-mix(in lab, red, red)){.timeline-event{background:color-mix(in srgb, var(--text-primary) 1.5%, transparent)}}.timeline-event header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.timeline-event header span{border:1px solid var(--border-subtle);min-height:20px;color:var(--text-secondary);background:var(--raised);letter-spacing:.07em;text-transform:uppercase;border-radius:999px;align-items:center;padding:1px 7px;font-size:9px;font-weight:750;line-height:16px;display:inline-flex}.timeline-event time{color:var(--text-faint);font-size:10px;line-height:16px}.timeline-event-ran,.timeline-event-edit{background:0 0;padding-top:10px;padding-bottom:10px}.timeline-event-ran header,.timeline-event-edit header{margin-bottom:6px}.timeline-event-failed{border-color:var(--danger-border);background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.timeline-event-failed{background:color-mix(in srgb, var(--danger) 7%, var(--surface))}}.timeline-event-failed header span,.timeline-event-failed .timeline-event-meta{color:var(--danger-text)}.timeline-event-injected{background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.timeline-event-injected{background:color-mix(in srgb, var(--text-primary) 2.5%, transparent)}}.timeline-event-copy p{overflow-wrap:anywhere;color:var(--text-secondary);white-space:pre-wrap;font-size:12px;line-height:19px}.timeline-event-ask,.timeline-event-said{padding-top:18px;padding-bottom:18px}.timeline-event-ask .timeline-event-copy p,.timeline-event-said .timeline-event-copy p{color:var(--text-primary);font-size:13px;font-weight:500;line-height:21px}.timeline-event-copy button,.timeline-scroll-copy button{color:var(--text-muted);background:0 0;border:0;margin-top:7px;padding:0;font-size:11px;font-weight:650}.timeline-event-copy button:hover,.timeline-scroll-copy button:hover{color:var(--text-primary)}.timeline-event-copy span{color:var(--text-faint);margin-top:5px;font-size:10px;display:block}.timeline-scroll-copy{min-width:0}.timeline-scroll-copy>div{max-width:100%;color:var(--text-secondary);white-space:pre;padding-bottom:3px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:18px;overflow-x:auto}.timeline-event-meta,.timeline-plan-summary{color:var(--text-muted);margin-top:8px;font-size:11px;line-height:17px}.timeline-secondary-value{min-width:0;margin-top:9px}.timeline-secondary-value>span{color:var(--text-faint);margin-bottom:4px;font-size:10px;font-weight:650;line-height:16px;display:block}.injected-events-toggle,.timeline-more{border:0;border-bottom:1px solid var(--border-subtle);width:100%;color:var(--text-muted);background:var(--text-primary);padding:10px 20px}@supports (color:color-mix(in lab, red, red)){.injected-events-toggle,.timeline-more{background:color-mix(in srgb, var(--text-primary) 2%, transparent)}}.injected-events-toggle,.timeline-more{text-align:left;font-size:11px;font-weight:650}.injected-events-toggle:hover,.timeline-more:hover:not(:disabled){color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.injected-events-toggle:hover,.timeline-more:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 4%, transparent)}}.timeline-more{text-align:center}.timeline-more:disabled{opacity:.65}.timeline-coverage{color:var(--text-faint);padding:10px 20px;font-size:10px;line-height:16px}.timeline-coverage p+p{overflow-wrap:anywhere;margin-top:3px}.timeline-coverage-notice{border:1px solid var(--border-subtle);color:var(--text-secondary);background:var(--surface);border-radius:.625rem;align-items:flex-start;gap:9px;margin:12px;padding:11px;display:flex}.timeline-coverage-notice>svg{color:var(--text-muted);flex:none;margin-top:1px}.timeline-coverage-notice strong{font-size:12px;font-weight:650}.timeline-coverage-notice p{color:var(--text-muted);margin-top:3px;font-size:10px;line-height:16px}.timeline-empty{min-height:180px;color:var(--text-faint);text-align:center;align-content:center;place-items:center;padding:24px;display:grid}.timeline-empty h3{color:var(--text-secondary);margin-top:10px;font-size:13px;font-weight:650}.timeline-empty p{max-width:320px;color:var(--text-muted);margin-top:6px;font-size:11px;line-height:17px}.timeline-empty .button{margin-top:14px}.timeline-quiet-empty{color:var(--text-muted);text-align:center;padding:16px 20px;font-size:11px}.pagination{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:8px 16px;display:flex}.pagination>span{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px}.pagination strong{color:var(--text-secondary);font-weight:600}.page-button{border-radius:var(--radius-control);min-width:32px;height:32px;color:var(--text-muted);background:0 0;border:1px solid #0000;place-items:center;padding:0 8px;font-size:11px;display:grid}.page-button:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.page-button:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 6%, transparent)}}.page-button[aria-current=page]{border-color:var(--focus-ring);color:var(--text-primary);background:var(--raised)}.page-button:disabled{opacity:.28}.empty-state{text-align:center;place-items:center;min-height:360px;padding:24px;display:grid}.empty-state-icon{border:1px solid var(--border-subtle);width:44px;height:44px;color:var(--text-muted);background:var(--text-primary);border-radius:.75rem;place-items:center;margin:0 auto;display:grid}@supports (color:color-mix(in lab, red, red)){.empty-state-icon{background:color-mix(in srgb, var(--text-primary) 4%, transparent)}}.empty-state h3{color:var(--text-secondary);margin-top:16px;font-size:14px;font-weight:650}.empty-state p{max-width:360px;color:var(--text-muted);margin:8px auto 0;font-size:12px;line-height:20px}.compatibility-popover{z-index:30;border:1px solid var(--border-strong);border-radius:var(--radius-surface);background:var(--raised);width:min(400px,100vw - 32px);box-shadow:0 24px 72px var(--canvas);padding:16px;position:absolute;top:calc(100% + 8px);right:0}@supports (color:color-mix(in lab, red, red)){.compatibility-popover{box-shadow:0 24px 72px color-mix(in srgb, var(--canvas) 72%, transparent)}}.compatibility-popover{animation:.15s ease-out raised-in}.popover-title{color:var(--text-primary);font-size:14px;font-weight:650}.popover-copy{color:var(--text-secondary);margin-top:4px;font-size:12px;line-height:20px}.version-list{border-top:1px solid var(--border-subtle);gap:8px;margin-top:16px;padding-top:16px;display:grid}.version-row{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;padding:8px 12px;display:flex}.version-row p{color:var(--text-secondary);font-size:12px;font-weight:600}.version-row code{color:var(--text-muted);margin-top:2px;font-size:11px;display:block}.version-row>span{color:var(--text-muted);text-align:right;font-size:11px}.compatibility-note{color:var(--text-muted);margin-top:12px;font-size:12px;line-height:20px}.compatibility-details{color:var(--text-secondary);margin-top:12px;font-size:12px;line-height:20px}.compatibility-details li{gap:8px;display:flex}.semantic-dot{border-radius:999px;flex:none;width:4px;height:4px;margin-top:8px}.info-dot{background:var(--text-muted)}.warning-dot{background:var(--warning)}.success-icon{color:var(--success);flex:none;margin-top:2px}.alert{border:1px solid;border-radius:.75rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:20px;padding:12px;font-size:13px;animation:.15s ease-out raised-in;display:grid}.alert button{color:currentColor;opacity:.75;background:0 0;border:0;place-items:center;display:grid}.alert-success{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.alert-success{border-color:color-mix(in srgb, var(--success) 28%, transparent)}}.alert-success{color:var(--success);background:var(--success)}@supports (color:color-mix(in lab, red, red)){.alert-success{background:color-mix(in srgb, var(--success) 8%, transparent)}}.alert-warning{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.alert-warning{border-color:color-mix(in srgb, var(--warning) 28%, transparent)}}.alert-warning{color:var(--warning);background:var(--warning)}@supports (color:color-mix(in lab, red, red)){.alert-warning{background:color-mix(in srgb, var(--warning) 8%, transparent)}}.alert-error{border-color:var(--danger-border);color:var(--danger-text);background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.alert-error{background:color-mix(in srgb, var(--danger) 8%, transparent)}}.selection-tray{z-index:38;border:1px solid var(--border-strong);border-radius:var(--radius-surface);background:var(--raised);box-shadow:0 24px 80px var(--canvas);position:fixed;bottom:8px;left:8px;right:8px;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.selection-tray{box-shadow:0 24px 80px color-mix(in srgb, var(--canvas) 76%, transparent)}}.selection-tray{animation:.15s ease-out selection-tray-in}.selection-tray-review{border-bottom:1px solid var(--border-subtle);background:var(--surface)}.selection-tray-review-heading{justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.selection-tray-review-heading>span{border:1px solid var(--border-strong);min-width:28px;height:28px;color:var(--text-secondary);background:var(--raised);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;font-size:11px;font-weight:650;display:grid}.selection-tray-heading{color:var(--text-primary);font-size:14px;font-weight:650}.selection-tray-copy{color:var(--text-muted);margin-top:4px;font-size:12px}.selection-tray-records{border-top:1px solid var(--border-subtle);max-height:min(272px,42vh);overflow-y:auto}.selection-tray-record{border-bottom:1px solid var(--border-subtle);contain-intrinsic-size:auto 60px;content-visibility:auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:60px;padding:8px 12px 8px 16px;display:grid}.selection-tray-record:last-child{border-bottom:0}.selection-tray-title{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;line-height:16px;overflow:hidden}.selection-tray-meta{min-width:0;color:var(--text-muted);align-items:center;gap:4px;margin-top:4px;font-size:11px;display:flex}.selection-tray-bar{flex-direction:column;gap:12px;padding:12px;display:flex}.selection-tray-summary{min-width:0;color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:13px;font-weight:650;line-height:20px}.selection-tray-count,.selection-tray-summary-value{display:inline-block}.selection-tray-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.has-selection-tray{padding-bottom:144px;transition:padding-bottom .15s ease-out}.has-selection-tray-expanded{padding-bottom:432px}.dialog-backdrop{z-index:50;background:var(--canvas);place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}@supports (color:color-mix(in lab, red, red)){.dialog-backdrop{background:color-mix(in srgb, var(--canvas) 82%, transparent)}}.dialog-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:16px;animation:.15s ease-out backdrop-in}.dialog-panel,.shortcut-panel{border:1px solid var(--border-strong);border-radius:var(--radius-surface);background:var(--raised);width:100%;max-height:calc(100vh - 32px);box-shadow:0 36px 104px var(--canvas);padding:24px;overflow-y:auto}@supports (color:color-mix(in lab, red, red)){.dialog-panel,.shortcut-panel{box-shadow:0 36px 104px color-mix(in srgb, var(--canvas) 78%, transparent)}}.dialog-panel,.shortcut-panel{animation:.15s ease-out raised-in}.dialog-panel{max-width:624px}.shortcut-panel{max-width:704px}.dialog-title{color:var(--text-primary);letter-spacing:-.015em;margin-top:8px;font-size:20px;font-weight:650;line-height:24px}.dialog-copy{color:var(--text-secondary);margin-top:8px;font-size:14px;line-height:20px}.shortcut-groups{gap:12px;margin-top:20px;display:grid}.shortcut-groups>section{border:1px solid var(--border-subtle);background:var(--surface);border-radius:.75rem;overflow:hidden}.shortcut-groups h3{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);padding:8px 12px;font-size:12px;font-weight:650}.shortcut-groups dl>div{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:8px 12px;display:flex}.shortcut-groups dl>div:last-child{border-bottom:0}.shortcut-groups dt{color:var(--text-secondary);font-size:12px;line-height:16px}.shortcut-groups dd{flex:none}.shortcut-groups kbd{border:1px solid var(--border-strong);color:var(--text-secondary);background:var(--raised);box-shadow:0 1px 2px var(--canvas);border-radius:.375rem;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;display:inline-block}@supports (color:color-mix(in lab, red, red)){.shortcut-groups kbd{box-shadow:0 1px 2px color-mix(in srgb, var(--canvas) 40%, transparent)}}.scope-card{border:1px solid var(--border-subtle);color:var(--text-secondary);background:var(--surface);text-align:left;border-radius:.75rem;padding:16px;transition:border-color .15s ease-out,background .15s ease-out}.scope-card:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.scope-card:hover:not(:disabled){background:color-mix(in srgb, var(--surface) 88%, var(--raised))}}.scope-card-active{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.scope-card-active{border-color:color-mix(in srgb, var(--accent) 52%, var(--border-strong))}}.scope-card-active{color:var(--text-primary);background:var(--accent-soft)}.scope-heading{justify-content:space-between;align-items:center;gap:8px;font-size:14px;font-weight:650;display:flex}.scope-check{border:1px solid var(--border-strong);border-radius:999px;place-items:center;width:20px;height:20px;display:grid}.scope-card-active .scope-check{border-color:var(--accent);color:var(--canvas);background:var(--accent)}.scope-card>p{color:var(--text-secondary);margin-top:8px;font-size:12px;line-height:20px}.metric{border:1px solid var(--border-subtle);background:var(--surface);border-radius:.75rem;padding:12px}.metric>p{min-height:32px;color:var(--text-muted);font-size:11px;font-weight:600;line-height:16px}.metric>strong{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;margin-top:4px;font-size:14px;font-weight:650;display:block;overflow:hidden}.dialog-plan-region{min-height:76px;margin-top:20px;position:relative}.metric-skeleton{border-radius:.75rem;height:76px}.dialog-plan-loading{z-index:1;color:var(--text-secondary);background:var(--raised);border-radius:.75rem;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:-1px}@supports (color:color-mix(in lab, red, red)){.dialog-plan-loading{background:color-mix(in srgb, var(--raised) 88%, transparent)}}.dialog-plan-loading{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);font-size:12px;font-weight:650}.dialog-message,.dialog-confirmation{border:1px solid;border-radius:.75rem;margin-top:16px;padding:12px;font-size:13px;line-height:20px}.message-warning{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.message-warning{border-color:color-mix(in srgb, var(--warning) 24%, var(--border-subtle))}}.message-warning{color:var(--text-secondary);background:var(--warning)}@supports (color:color-mix(in lab, red, red)){.message-warning{background:color-mix(in srgb, var(--warning) 5%, transparent)}}.message-danger{border-color:var(--danger-border);color:var(--danger-text);background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.message-danger{background:color-mix(in srgb, var(--danger) 8%, transparent)}}.dialog-note,.dialog-information{color:var(--text-secondary);align-items:flex-start;gap:8px;margin-top:12px;font-size:12px;line-height:20px;display:flex}.dialog-note>svg,.dialog-information>svg{color:var(--text-muted);flex:none;margin-top:2px}.close-session-note{border:1px solid var(--border-subtle);background:var(--surface);border-radius:.75rem;margin-top:20px;padding:12px}.close-session-note strong{color:var(--text-primary);font-weight:650}.operation-panel{border:1px solid var(--border-subtle);background:var(--surface);border-radius:.75rem;margin-top:20px;padding:16px}.operation-heading{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:16px;font-size:14px;display:flex}.operation-heading>span:first-child{font-weight:600}.operation-heading>span:last-child{color:var(--text-muted);font-variant-numeric:tabular-nums}.progress-track{background:var(--border-subtle);border-radius:999px;height:6px;margin-top:12px;overflow:hidden}.progress-value{border-radius:999px;height:100%;transition:width .15s ease-out}.progress-success{background:var(--success)}.progress-warning{background:var(--warning)}.progress-danger{background:var(--danger)}.progress-info{background:var(--text-secondary)}.operation-error{background:0 0;border:0;margin-top:12px;padding:0;font-size:12px;line-height:20px}.restore-copy{color:var(--text-secondary);margin-top:12px;font-size:12px;line-height:20px}.restore-copy>div{margin-top:8px}.restore-copy>div>p{color:var(--text-muted)}.restore-copy code{overflow-wrap:anywhere;color:var(--text-muted);font-size:11px;display:block}.dialog-confirmation>p{color:var(--text-primary);font-size:14px;font-weight:650}.dialog-confirmation>span{margin-top:4px;display:block}.skeleton{background:linear-gradient(90deg, var(--text-primary), var(--text-primary), var(--text-primary))}@supports (color:color-mix(in lab, red, red)){.skeleton{background:linear-gradient(90deg, color-mix(in srgb, var(--text-primary) 4%, transparent), color-mix(in srgb, var(--text-primary) 9%, transparent), color-mix(in srgb, var(--text-primary) 4%, transparent))}}.skeleton{background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes selection-tray-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes raised-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes disclosure-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes checkbox-check-in{0%{opacity:.72;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes filter-chip-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes filter-chip-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-2px)}}@keyframes selection-value-in{0%{opacity:.7;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.selection-control input:checked,.session-checkbox input:checked{animation:.12s ease-out checkbox-check-in}.filter-chip{animation:.14s ease-out filter-chip-in}.filter-chip-exiting{animation:.12s ease-out forwards filter-chip-out}.selection-tray-count,.selection-tray-summary-value{animation:.12s ease-out selection-value-in}}@media (width<=1023px){.inspector-open{z-index:40;max-height:min(576px,100vh - 48px);box-shadow:0 28px 90px var(--canvas);display:block;position:fixed;bottom:12px;left:12px;right:12px;overflow-y:auto}@supports (color:color-mix(in lab, red, red)){.inspector-open{box-shadow:0 28px 90px color-mix(in srgb, var(--canvas) 76%, transparent)}}.inspector-backdrop-open{z-index:39;background:var(--canvas);border:0;width:100%;height:100%;display:block;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.inspector-backdrop-open{background:color-mix(in srgb, var(--canvas) 64%, transparent)}}.inspector-backdrop-open{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}@media (width>=640px){.session-list-header,.filter-bar,.more-filters-row,.active-filter-row,.unknown-activity-note,.page-selection-row,.pagination,.date-separator,.session-row{padding-left:20px;padding-right:20px}.shortcut-hint{display:block}.selection-tray{width:min(736px,100vw - 48px);bottom:20px;left:50%;right:auto;translate:-50%}.selection-tray-bar{flex-direction:row;align-items:center;padding:12px 12px 12px 16px}.selection-tray-summary{flex:auto}.selection-tray-actions{flex:none;display:flex}.session-row-chevron{display:block}}@media (width>=900px){.session-filters{--filter-grid:minmax(260px, 2fr) minmax(180px, 1fr) auto}.overview-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-item,.overview-item-primary{border-right:1px solid var(--border-subtle);border-bottom:0;grid-column:auto}.overview-item:nth-child(3n),.overview-strip>.overview-item:last-child{border-right:0}.shortcut-groups{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1024px){.inspector{max-height:calc(100vh - 48px);display:block;position:sticky;top:24px;overflow-y:auto}}@media (width>=900px) and (width<=1179px){.filter-primary-controls .filter-priority-1,.filter-overflow-primary .filter-priority-2{display:none}}@media (width>=1180px){.session-filters{--filter-grid:minmax(220px, 1.5fr) repeat(2, minmax(180px, 1fr)) auto}.overview-strip{grid-template-columns:repeat(var(--overview-columns), minmax(0, 1fr))}.overview-item,.overview-item-primary{border-right:1px solid var(--border-subtle);border-bottom:0}.overview-item:nth-child(3n){border-right:1px solid var(--border-subtle)}.overview-strip>.overview-item:last-child{border-right:0}.filter-overflow-primary{display:none}}@media (width<=639px){.brand-title{font-size:20px;line-height:24px}.brand-mark{width:40px;height:40px}.surface{border-radius:.875rem}.provider-context{align-items:flex-start}.provider-context-main{gap:4px;width:100%;display:grid}.provider-context code{width:100%}.date-separator{padding-left:12px;padding-right:12px}.session-row{grid-template-columns:28px minmax(0,1fr) auto;gap:4px;padding-left:12px;padding-right:12px}.session-row-chevron{display:none}.session-row-meta{gap:2px}.time-badge,.kind-label,.size-badge{padding-left:4px;padding-right:4px}.time-badge svg,.kind-label svg,.size-badge svg{display:none}.compatibility-popover{width:auto;position:fixed;top:72px;left:16px;right:16px}.dialog-backdrop{align-items:end;padding:0}.dialog-panel,.shortcut-panel{border-radius:var(--radius-surface) var(--radius-surface) 0 0;border-bottom:0;border-left:0;border-right:0;max-height:92vh;padding:20px}}@media (width<=899px){.filter-primary-controls{display:none}}@media (width<=519px){.more-filters-button>span{display:none}.filter-bar{gap:8px}.sort-control>span,.shortcut-hint{display:none}}@media (prefers-reduced-motion:reduce){.active-filter-row-clearing,.filter-chip-exiting{display:none!important}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
package/dist/index.html CHANGED
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width,initial-scale=1.0"/>
6
6
  <link href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='8' fill='%23171717'/%3E%3Cpath d='M16 4 26 8v7c0 6-4 11-10 13C10 26 6 21 6 15V8Z' fill='%23f5f5f5'/%3E%3Cpath d='m9.5 16 2.2-2.2 3 3 6.5-6.5 2.2 2.2-8.7 8.7Z' fill='%23171717'/%3E%3C/svg%3E" rel="icon"/>
7
7
  <title>Session Steward</title>
8
- <script type="module" crossorigin src="/assets/index-B6C5qvGV.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-B8U6eLCA.css">
8
+ <script type="module" crossorigin src="/assets/index-6OPqaZRp.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-Cn_JrqDr.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="root"></div>
@@ -12,9 +12,13 @@ import { readJsonlEntries, rewriteJsonlFile } from "../../storage/jsonl.mjs";
12
12
  const PROVIDER_ID = "claude-code";
13
13
  const COMPATIBILITY_PROFILE = Object.freeze({
14
14
  id: "claude-local-store-2026-08",
15
- builtFor: { claudeCli: ["2.1.199", "2.1.220"], claudeDesktop: ["1.24012.9"] },
15
+ builtFor: {
16
+ claudeCli: ["2.1.199", "2.1.220", "2.1.228"],
17
+ claudeDesktop: ["1.24012.9", "1.28929.0"],
18
+ },
16
19
  });
17
20
  const SUPPORTED_ENTRYPOINTS = new Set(["cli", "claude-desktop"]);
21
+ const SHARED_DESKTOP_STATE_FILES = new Set(["scheduled-tasks.json"]);
18
22
  const KNOWN_TOP_LEVEL = new Set([
19
23
  ".DS_Store", ".last-cleanup", ".last-update-result.json", "agents", "backups", "cache", "commands", "debug", "downloads", "file-history", "history.jsonl",
20
24
  "ide", "paste-cache", "plans", "plugins", "projects", "session-env", "sessions", "settings.json",
@@ -315,6 +319,7 @@ async function listDesktopStates(directory) {
315
319
  const target = path.join(current, entry.name);
316
320
  if (entry.isDirectory()) { pending.push(target); continue; }
317
321
  if (!entry.isFile() || !entry.name.endsWith(".json")) continue;
322
+ if (SHARED_DESKTOP_STATE_FILES.has(entry.name)) continue;
318
323
  try {
319
324
  const state = JSON.parse(await fs.readFile(target, "utf8"));
320
325
  if (typeof state?.cliSessionId !== "string" || typeof state?.sessionId !== "string") {
@@ -8,8 +8,8 @@ const CACHE_TTL_MS = 2_000;
8
8
  export const CODEX_DATABASE_PROFILE = Object.freeze({
9
9
  id: "codex-local-store-2026-08",
10
10
  builtFor: {
11
- chatgptDesktop: ["26.727.40816"],
12
- codexCli: ["0.144.1", "0.146.0"],
11
+ chatgptDesktop: ["26.727.40816", "26.803.61601"],
12
+ codexCli: ["0.144.1", "0.146.0", "0.147.0"],
13
13
  },
14
14
  });
15
15
 
@@ -24,7 +24,11 @@ const RECORD_CLASSIFICATION = Object.freeze({
24
24
  const SKIPPED_PAYLOAD_TYPES = new Set([
25
25
  "agent_reasoning",
26
26
  "reasoning",
27
+ "sub_agent_activity",
28
+ "task_started",
27
29
  "token_count",
30
+ "tool_search_call",
31
+ "tool_search_output",
28
32
  ]);
29
33
  const SKIPPED_RECORD_TYPES = new Set([
30
34
  "inter_agent_communication_metadata",
@@ -570,6 +574,50 @@ export async function readSessionEvents({
570
574
  };
571
575
  }
572
576
 
577
+ if (payload?.type === "context_compacted") {
578
+ acceptingInjectedAsks = false;
579
+ return {
580
+ classification: RECORD_CLASSIFICATION.RECOGNIZED,
581
+ stop: addEvent(createSessionEvent({
582
+ atMs,
583
+ kind: SESSION_EVENT_KIND.SUMMARY,
584
+ sequence,
585
+ text: "Earlier context was compacted.",
586
+ })),
587
+ };
588
+ }
589
+
590
+ if (payload?.type === "thread_rolled_back") {
591
+ const turns = Number(payload.num_turns);
592
+ const turnLabel = turns === 1 ? "turn" : "turns";
593
+ return {
594
+ classification: RECORD_CLASSIFICATION.RECOGNIZED,
595
+ stop: addEvent(createSessionEvent({
596
+ atMs,
597
+ kind: SESSION_EVENT_KIND.SUMMARY,
598
+ sequence,
599
+ text: Number.isFinite(turns) && turns > 0
600
+ ? `Conversation rewound by ${turns} ${turnLabel}.`
601
+ : "Conversation was rewound.",
602
+ })),
603
+ };
604
+ }
605
+
606
+ if (payload?.type === "turn_aborted") {
607
+ const reason = typeof payload.reason === "string"
608
+ ? payload.reason.replaceAll("_", " ").trim()
609
+ : "";
610
+ return {
611
+ classification: RECORD_CLASSIFICATION.RECOGNIZED,
612
+ stop: addEvent(createSessionEvent({
613
+ atMs,
614
+ kind: SESSION_EVENT_KIND.SUMMARY,
615
+ sequence,
616
+ text: reason ? `Turn stopped: ${reason}.` : "Turn stopped before completion.",
617
+ })),
618
+ };
619
+ }
620
+
573
621
  if (payload?.type === "custom_tool_call" || payload?.type === "function_call") {
574
622
  acceptingInjectedAsks = false;
575
623
  const nestedName = ["exec", "exec_command"].includes(payload.name)
@@ -460,6 +460,7 @@ export function getCodexPaths(codexHomeInput, { refresh = false } = {}) {
460
460
 
461
461
  return {
462
462
  archivedSessionsDirectory,
463
+ attachmentsDirectory: path.join(codexHome, "attachments"),
463
464
  codexHome,
464
465
  desktopStateBackupPath: path.join(codexHome, ".codex-global-state.json.bak"),
465
466
  desktopStatePath: path.join(codexHome, ".codex-global-state.json"),
@@ -477,6 +478,7 @@ export function getCodexPaths(codexHomeInput, { refresh = false } = {}) {
477
478
  stateDatabasePath,
478
479
  stateDatabases: allValidDatabases(state),
479
480
  stateDatabasePaths: allValidDatabases(state).map((database) => database.path),
481
+ threadWriterLocksDirectory: path.join(codexHome, "thread-writer-locks"),
480
482
  transcriptDirectories: [sessionsDirectory, archivedSessionsDirectory],
481
483
  };
482
484
  }
@@ -768,6 +770,7 @@ export async function loadSessionStore({ codexHome }) {
768
770
  });
769
771
 
770
772
  return {
773
+ attachmentsDirectory: paths.attachmentsDirectory,
771
774
  childIdsByParentId,
772
775
  codexHome: paths.codexHome,
773
776
  desktopStateBackupPath: paths.desktopStateBackupPath,
@@ -787,6 +790,7 @@ export async function loadSessionStore({ codexHome }) {
787
790
  stateDatabasePath: paths.stateDatabasePath,
788
791
  stateDatabasePaths: paths.stateDatabasePaths,
789
792
  stateDatabases: paths.stateDatabases,
793
+ threadWriterLocksDirectory: paths.threadWriterLocksDirectory,
790
794
  resolvedDatabases: paths.resolvedDatabases,
791
795
  logsDatabasePaths: paths.logsDatabasePaths,
792
796
  memoryDatabasePaths: paths.memoryDatabasePaths,
@@ -850,6 +854,16 @@ export async function diagnoseStorageCompatibility({ codexHome }) {
850
854
  .filter((entry) => entry.isFile() && entry.name.endsWith(".sqlite") && !recognizedDatabases.has(entry.name))
851
855
  .map((entry) => `Other local database found: ${entry.name}`)
852
856
  .sort();
857
+ try {
858
+ const attachmentEntries = await fs.readdir(paths.attachmentsDirectory, { withFileTypes: true });
859
+ if (attachmentEntries.some((entry) => entry.name !== ".DS_Store")) {
860
+ newlyDiscovered.push("Session attachments are kept because their ownership cannot be verified safely.");
861
+ }
862
+ } catch (error) {
863
+ if (error?.code !== "ENOENT") {
864
+ newlyDiscovered.push("The session attachments folder could not be examined.");
865
+ }
866
+ }
853
867
  const status = missing.length > 0 || changed.length > 0
854
868
  ? "unsupported"
855
869
  : newlyDiscovered.length > 0
@@ -906,7 +920,14 @@ function stateSchema(database) {
906
920
  const spawn = database.tables?.thread_spawn_edges?.exists !== undefined
907
921
  ? database.tables.thread_spawn_edges
908
922
  : inspectSqliteTable(database.path, "thread_spawn_edges");
909
- const schema = { columns, hasSpawnEdges: Boolean(spawn?.exists) };
923
+ const dynamicTools = database.tables?.thread_dynamic_tools?.exists !== undefined
924
+ ? database.tables.thread_dynamic_tools
925
+ : inspectSqliteTable(database.path, "thread_dynamic_tools");
926
+ const schema = {
927
+ columns,
928
+ hasDynamicTools: Boolean(dynamicTools?.exists),
929
+ hasSpawnEdges: Boolean(spawn?.exists),
930
+ };
910
931
  stateSchemaCache.set(database, schema);
911
932
  return schema;
912
933
  }
@@ -1935,6 +1956,10 @@ export async function planSessionDeletion({ recordIds, store }) {
1935
1956
 
1936
1957
  return count;
1937
1958
  }, 0);
1959
+ const dynamicToolRowCount = (store.stateDatabases ?? [{ path: store.stateDatabasePath }])
1960
+ .reduce((total, database) => total + (stateSchema(database).hasDynamicTools
1961
+ ? countRowsForIds(database.path, "thread_dynamic_tools", "thread_id", deletionIds)
1962
+ : 0), 0);
1938
1963
  const logRowCount = (store.logsDatabasePaths ?? [store.logsDatabasePath].filter(Boolean))
1939
1964
  .reduce((total, databasePath) => total + countRowsForIds(databasePath, "logs", "thread_id", deletionIds), 0);
1940
1965
  const memoryRowCount = (store.memoryDatabasePaths ?? [store.memoryDatabasePath].filter(Boolean))
@@ -1953,6 +1978,7 @@ export async function planSessionDeletion({ recordIds, store }) {
1953
1978
  backup: store.hasDesktopStateBackup ? "pending" : "absent",
1954
1979
  current: store.hasDesktopState ? "pending" : "absent",
1955
1980
  },
1981
+ dynamicToolRowCount,
1956
1982
  goalRowCount,
1957
1983
  historyMatchCount: historyMatches.count,
1958
1984
  ids: deletionIds,
@@ -2016,6 +2042,7 @@ export async function fingerprintSessionDeletion({ plan, scope, store }) {
2016
2042
  hash.update(`${store.codexHome}\0${scope}\0`);
2017
2043
 
2018
2044
  const counts = [
2045
+ plan.dynamicToolRowCount,
2019
2046
  plan.historyMatchCount,
2020
2047
  plan.logRowCount,
2021
2048
  plan.sessionIndexMatchCount,
@@ -2053,6 +2080,9 @@ export async function fingerprintSessionDeletion({ plan, scope, store }) {
2053
2080
 
2054
2081
  for (const database of store.stateDatabases ?? [{ path: store.stateDatabasePath }]) {
2055
2082
  fingerprintRowsForIds(hash, database.path, "threads", "id", plan.ids);
2083
+ if (stateSchema(database).hasDynamicTools) {
2084
+ fingerprintRowsForIds(hash, database.path, "thread_dynamic_tools", "thread_id", plan.ids);
2085
+ }
2056
2086
  if (stateSchema(database).hasSpawnEdges) {
2057
2087
  fingerprintRowsForIds(hash, database.path, "thread_spawn_edges", "parent_thread_id", plan.ids);
2058
2088
  fingerprintRowsForIds(hash, database.path, "thread_spawn_edges", "child_thread_id", plan.ids);
@@ -2129,6 +2159,36 @@ async function getAvailableDiskBytes(directoryPath) {
2129
2159
  return stats.bavail * stats.bsize;
2130
2160
  }
2131
2161
 
2162
+ async function findActiveThreadIds(store, ids) {
2163
+ if (!store.threadWriterLocksDirectory) return { available: false, ids: [] };
2164
+
2165
+ let entries;
2166
+ try {
2167
+ entries = await fs.readdir(store.threadWriterLocksDirectory, { withFileTypes: true });
2168
+ } catch (error) {
2169
+ if (error?.code === "ENOENT") return { available: false, ids: [] };
2170
+ throw error;
2171
+ }
2172
+
2173
+ const lockedIds = new Set(entries
2174
+ .filter((entry) => entry.isFile() && entry.name.endsWith(".lock"))
2175
+ .map((entry) => entry.name.slice(0, -5)));
2176
+ return {
2177
+ available: true,
2178
+ ids: ids.filter((id) => lockedIds.has(id)),
2179
+ };
2180
+ }
2181
+
2182
+ function activeThreadError(ids) {
2183
+ const error = new Error(
2184
+ ids.length === 1
2185
+ ? "Close the selected Codex session before cleanup."
2186
+ : `Close the ${ids.length} selected Codex sessions that are still open before cleanup.`,
2187
+ );
2188
+ error.activeThreadIds = ids;
2189
+ return error;
2190
+ }
2191
+
2132
2192
  function formatBytes(bytes) {
2133
2193
  if (bytes < 1024) {
2134
2194
  return `${bytes} bytes`;
@@ -2164,6 +2224,9 @@ export async function preflightSessionDeletion({ availableDiskBytes, plan, scope
2164
2224
  throw new Error("The selected Codex home is missing a required session store.");
2165
2225
  }
2166
2226
 
2227
+ const activeThreads = await findActiveThreadIds(store, plan.ids);
2228
+ if (activeThreads.ids.length > 0) throw activeThreadError(activeThreads.ids);
2229
+
2167
2230
  const deletedIdSet = new Set(plan.ids);
2168
2231
  const desktopStates = await Promise.all([
2169
2232
  store.hasDesktopState ? readJsonFile(store.desktopStatePath) : null,
@@ -2192,7 +2255,7 @@ export async function preflightSessionDeletion({ availableDiskBytes, plan, scope
2192
2255
  backup: store.hasDesktopStateBackup ? "supported" : "absent",
2193
2256
  current: store.hasDesktopState ? "supported" : "absent",
2194
2257
  },
2195
- activeThreadDetection: "unavailable",
2258
+ activeThreadDetection: activeThreads.available ? "writer-locks" : "unavailable",
2196
2259
  missingRequiredPaths,
2197
2260
  };
2198
2261
  }
@@ -2384,6 +2447,11 @@ export async function executeSessionDeletion({
2384
2447
  throw cleanupCancelled(backupDirectory);
2385
2448
  }
2386
2449
 
2450
+ const activeThreads = await findActiveThreadIds(store, plan.ids);
2451
+ if (activeThreads.ids.length > 0) {
2452
+ throw cleanupErrorWithBackup(activeThreadError(activeThreads.ids), backupDirectory);
2453
+ }
2454
+
2387
2455
  await reportProgress(onProgress, {
2388
2456
  canCancel: false,
2389
2457
  message: "Removing selected session data",
@@ -2413,10 +2481,14 @@ export async function executeSessionDeletion({
2413
2481
  }
2414
2482
  for (const { database, ids } of plan.stateTargets ?? (store.stateDatabases ?? [{ path: store.stateDatabasePath }]).map((database) => ({ database, ids: plan.ids }))) {
2415
2483
  const stateStatements = [];
2416
- const hasSpawnEdges = stateSchema(database).hasSpawnEdges;
2484
+ const schema = stateSchema(database);
2417
2485
  for (const idBatch of batches(ids)) {
2418
2486
  const idPlaceholders = placeholders(idBatch);
2419
- if (hasSpawnEdges) stateStatements.push({
2487
+ if (schema.hasDynamicTools) stateStatements.push({
2488
+ parameters: idBatch,
2489
+ sql: `delete from thread_dynamic_tools where thread_id in (${idPlaceholders})`,
2490
+ });
2491
+ if (schema.hasSpawnEdges) stateStatements.push({
2420
2492
  parameters: [...idBatch, ...idBatch],
2421
2493
  sql: `delete from thread_spawn_edges where parent_thread_id in (${idPlaceholders}) or child_thread_id in (${idPlaceholders})`,
2422
2494
  });
@@ -2749,6 +2821,10 @@ export async function verifySessionDeletion({ plan, scope = "deep", store }) {
2749
2821
  const deletedIdSet = new Set(plan.ids);
2750
2822
  const remainingThreads = (store.stateDatabasePaths ?? [store.stateDatabasePath])
2751
2823
  .flatMap((databasePath) => findRowsForIds(databasePath, "threads", "id", plan.ids));
2824
+ const remainingDynamicTools = (store.stateDatabases ?? [{ path: store.stateDatabasePath }])
2825
+ .flatMap((database) => stateSchema(database).hasDynamicTools
2826
+ ? findRowsForIds(database.path, "thread_dynamic_tools", "thread_id", plan.ids)
2827
+ : []);
2752
2828
  const remainingMemoryRecords = scope === "deep" && store.hasMemoryDatabase
2753
2829
  ? (store.memoryDatabasePaths ?? [store.memoryDatabasePath]).flatMap((databasePath) =>
2754
2830
  findRowsForIds(databasePath, "stage1_outputs", "thread_id", plan.ids))
@@ -2804,6 +2880,7 @@ export async function verifySessionDeletion({ plan, scope = "deep", store }) {
2804
2880
  return {
2805
2881
  complete:
2806
2882
  remainingThreads.length === 0 &&
2883
+ remainingDynamicTools.length === 0 &&
2807
2884
  remainingMemoryRecords.length === 0 &&
2808
2885
  remainingGoalRecords.length === 0 &&
2809
2886
  remainingLogRecords.length === 0 &&
@@ -2812,6 +2889,7 @@ export async function verifySessionDeletion({ plan, scope = "deep", store }) {
2812
2889
  remainingTranscriptPaths.length === 0 &&
2813
2890
  remainingDesktopStateReferences.length === 0,
2814
2891
  remainingDesktopStateReferences,
2892
+ remainingDynamicTools,
2815
2893
  remainingGoalRecords,
2816
2894
  remainingHistoryEntries,
2817
2895
  remainingHistoryEntryCount: historyMatches.count,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "session-steward",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "A local Codex and Claude Code session manager for safely reviewing and deleting old sessions.",
5
5
  "license": "MIT",
6
6
  "author": "Mallik Cheripally",
@@ -70,14 +70,12 @@
70
70
  "check": "node ./bin/session-steward-cli.mjs --json --limit 5",
71
71
  "test": "node --test test/*.test.mjs test/providers/*.test.mjs"
72
72
  },
73
- "dependencies": {
74
- "lucide-react": "^1.28.0",
75
- "react": "^19.2.8",
76
- "react-dom": "^19.2.8"
77
- },
78
73
  "devDependencies": {
79
74
  "@tailwindcss/vite": "^4.3.3",
80
75
  "@vitejs/plugin-react": "^6.0.5",
76
+ "lucide-react": "^1.28.0",
77
+ "react": "^19.2.8",
78
+ "react-dom": "^19.2.8",
81
79
  "tailwindcss": "^4.3.3",
82
80
  "vite": "^8.2.0"
83
81
  }
@@ -1,2 +0,0 @@
1
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--animate-spin:spin 1s linear infinite;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-5{height:calc(var(--spacing) * 5)}.h-9{height:calc(var(--spacing) * 9)}.min-h-\[360px\]{min-height:360px}.min-h-screen{min-height:100vh}.w-16{width:calc(var(--spacing) * 16)}.w-32{width:calc(var(--spacing) * 32)}.w-\[min\(50\%\,20rem\)\]{width:min(50%,20rem)}.w-\[min\(75\%\,30rem\)\]{width:min(75%,30rem)}.max-w-\[1380px\]{max-width:1380px}.min-w-0{min-width:0}.min-w-40{min-width:calc(var(--spacing) * 40)}.shrink-0{flex-shrink:0}.animate-spin{animation:var(--animate-spin)}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:2147483647px}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.text-left{text-align:left}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media (width>=40rem){.sm\:flex{display:flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:py-8{padding-block:calc(var(--spacing) * 8)}}@media (width>=64rem){.lg\:hidden{display:none}.lg\:grid-cols-\[minmax\(0\,1fr\)_340px\]{grid-template-columns:minmax(0,1fr) 340px}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media (width>=80rem){.xl\:grid-cols-\[minmax\(0\,1fr\)_420px\]{grid-template-columns:minmax(0,1fr) 420px}}@media (width>=96rem){.\32 xl\:grid-cols-\[minmax\(0\,1fr\)_480px\]{grid-template-columns:minmax(0,1fr) 480px}}}:root{--scrollbar-thumb:#404040;--scrollbar-thumb-hover:#525252;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}html,.app-shell,.app-shell *{scrollbar-color:var(--scrollbar-thumb) transparent;scrollbar-width:thin}html::-webkit-scrollbar{width:8px;height:8px}.app-shell::-webkit-scrollbar{width:8px;height:8px}.app-shell ::-webkit-scrollbar{width:8px;height:8px}html::-webkit-scrollbar-track{background:0 0}.app-shell::-webkit-scrollbar-track{background:0 0}.app-shell ::-webkit-scrollbar-track{background:0 0}html::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px}.app-shell::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px}.app-shell ::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px}html::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}.app-shell::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}.app-shell ::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}body{min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.app-shell{--canvas:#0a0a0a;--surface:#171717;--raised:#262626;--border-subtle:#262626;--border-strong:var(--scrollbar-thumb);--text-primary:#f5f5f5;--text-secondary:#d4d4d4;--text-muted:#a3a3a3;--text-faint:#737373;--accent:#34d399;--accent-soft:#173c2f;--danger:#dc2626;--danger-border:var(--danger)}@supports (color:color-mix(in lab, red, red)){.app-shell{--danger-border:color-mix(in srgb, var(--danger) 40%, var(--border-subtle))}}.app-shell{--danger-text:#fca5a5;--warning:#fbbf24;--success:#34d399;--focus-ring:#d4d4d4;--radius-control:.625rem;--radius-surface:1rem;min-height:100vh;color:var(--text-primary);background:radial-gradient(circle at 50% -12rem, var(--text-primary), transparent 28rem), var(--canvas);position:relative;overflow-x:hidden}@supports (color:color-mix(in lab, red, red)){.app-shell{background:radial-gradient(circle at 50% -12rem, color-mix(in srgb, var(--text-primary) 2%, transparent), transparent 28rem), var(--canvas)}}.app-shell:before{pointer-events:none;content:"";background:linear-gradient(90deg, transparent, var(--border-strong), transparent);height:1px;position:fixed;top:0;left:0;right:0}.app-shell button:focus-visible,.app-shell input:focus-visible,.app-shell select:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.app-shell ::selection{color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.app-shell ::selection{background:color-mix(in srgb, var(--text-primary) 20%, transparent)}}.text-primary{color:var(--text-primary)}.section-title{color:var(--text-primary);font-size:16px;font-weight:650}.shown-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:13px}.surface{border:1px solid var(--border-strong);border-radius:var(--radius-surface);background:var(--surface);box-shadow:0 1px 0 var(--text-primary) inset, 0 16px 44px var(--canvas)}@supports (color:color-mix(in lab, red, red)){.surface{box-shadow:0 1px 0 color-mix(in srgb, var(--text-primary) 3%, transparent) inset, 0 16px 44px color-mix(in srgb, var(--canvas) 48%, transparent)}}.brand-mark{border:1px solid var(--border-strong);width:2.75rem;height:2.75rem;color:var(--text-secondary);background:linear-gradient(145deg, var(--raised), var(--surface));box-shadow:0 8px 24px var(--canvas);border-radius:.875rem;flex:none;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.brand-mark{box-shadow:0 8px 24px color-mix(in srgb, var(--canvas) 40%, transparent)}}.brand-kicker{color:var(--text-muted);margin-bottom:4px;font-size:12px;font-weight:550}.brand-title{letter-spacing:-.035em;color:var(--text-primary);font-size:28px;font-weight:650;line-height:32px}.provider-switch{background:var(--text-primary);border:0;border-radius:.75rem;gap:4px;padding:4px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.provider-switch{background:color-mix(in srgb, var(--text-primary) 4%, transparent)}}.provider-switch{box-shadow:0 1px 0 var(--text-primary) inset, 0 8px 24px var(--canvas)}@supports (color:color-mix(in lab, red, red)){.provider-switch{box-shadow:0 1px 0 color-mix(in srgb, var(--text-primary) 5%, transparent) inset, 0 8px 24px color-mix(in srgb, var(--canvas) 32%, transparent)}}.provider-switch button{min-height:36px;color:var(--text-muted);background:0 0;border:0;border-radius:.5rem;align-items:center;gap:7px;padding:0 16px;font-size:13px;font-weight:650;transition:color .15s ease-out,background .15s ease-out,box-shadow .15s ease-out;display:inline-flex}.provider-switch button:hover{color:var(--text-primary)}.provider-switch button[aria-pressed=true]{color:var(--text-primary);background:var(--raised);box-shadow:0 1px 4px var(--canvas)}@supports (color:color-mix(in lab, red, red)){.provider-switch button[aria-pressed=true]{box-shadow:0 1px 4px color-mix(in srgb, var(--canvas) 60%, transparent)}}.provider-icon{flex:none}.provider-context{align-items:center;min-height:36px;margin:-4px 4px 8px;padding:0 4px 4px;display:flex}.provider-context-row,.provider-context-main{min-width:0}.provider-context-main{align-items:center;gap:12px;display:flex}.provider-context-heading{flex:none;align-items:center;gap:8px;display:flex}.provider-context-label{color:var(--text-secondary);font-size:12px;font-weight:650}.provider-context code{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;overflow:hidden}.provider-context-actions{flex:none;align-items:center;gap:4px;display:flex}.provider-context-editing{border:1px solid var(--border-strong);border-radius:var(--radius-surface);background:var(--raised);box-shadow:0 18px 48px var(--canvas);margin:0 0 12px;padding:16px;display:block}@supports (color:color-mix(in lab, red, red)){.provider-context-editing{box-shadow:0 18px 48px color-mix(in srgb, var(--canvas) 54%, transparent)}}.provider-context-placeholder{border-radius:.75rem;height:48px;margin-bottom:12px}.provider-context-editing .provider-context-main{gap:8px;display:grid}.provider-context-form{border-top:1px solid var(--border-subtle);margin-top:12px;padding-top:12px}.compact-action{border-radius:var(--radius-control);min-height:28px;color:var(--text-muted);background:0 0;border:0;padding:4px 8px;font-size:11px;font-weight:650}.compact-action:hover:not(:disabled){color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.compact-action:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 6%, transparent)}}.compact-action:disabled{opacity:.42}.source-badge{border:1px solid var(--border-strong);color:var(--text-muted);background:var(--surface);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:650}.overview-strip{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:16px;display:grid}.overview-item{min-width:0;color:var(--text-muted);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:8px 12px 12px;display:grid}.overview-item-primary{color:var(--text-secondary);grid-column:1/-1}.overview-item:not(.overview-item-primary):nth-child(2n){border-right:1px solid var(--border-subtle)}.overview-item:last-child{border-right:0}.overview-label{text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:11px;font-weight:600;line-height:16px;overflow:hidden}.overview-value{letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:16px;font-weight:650;line-height:20px;overflow:hidden}.overview-item-primary .overview-value{color:var(--text-primary);font-size:20px;line-height:24px}.panel-label{color:var(--text-secondary);font-size:12px;font-weight:650}.cleanup-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--danger-text);align-items:center;gap:8px;margin-bottom:8px;font-size:11px;font-weight:700;display:flex}.button{border-radius:var(--radius-control);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:36px;padding:8px 12px;font-size:13px;font-weight:650;line-height:16px;display:inline-flex}.button:disabled{opacity:.42}.button.secondary{border-color:var(--border-strong);color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.button.secondary{background:color-mix(in srgb, var(--text-primary) 6%, transparent)}}.button.secondary:hover:not(:disabled){background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.button.secondary:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 10%, transparent)}}.button.ghost{border-color:var(--border-subtle);color:var(--text-secondary);background:0 0}.button.ghost:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.button.ghost:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 5%, transparent)}}.button.primary{border-color:var(--focus-ring);color:var(--canvas);background:var(--focus-ring);box-shadow:0 8px 24px var(--canvas)}@supports (color:color-mix(in lab, red, red)){.button.primary{box-shadow:0 8px 24px color-mix(in srgb, var(--canvas) 46%, transparent)}}.button.primary:hover:not(:disabled){background:var(--text-primary)}.button.danger{border-color:var(--danger);color:#fff;background:var(--danger);box-shadow:0 8px 24px var(--danger)}@supports (color:color-mix(in lab, red, red)){.button.danger{box-shadow:0 8px 24px color-mix(in srgb, var(--danger) 18%, transparent)}}.button.danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.icon-button{border-radius:var(--radius-control);width:32px;height:32px;color:var(--text-muted);background:0 0;border:1px solid #0000;flex:none;place-items:center;display:grid}.icon-button:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.icon-button:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 6%, transparent)}}.refresh-button{border-color:var(--border-subtle);background:var(--surface);width:40px;height:40px}.status-pill{border:1px solid;border-radius:999px;align-items:center;gap:8px;min-height:28px;padding:4px 8px;font-size:11px;font-weight:650;display:inline-flex}.status-pill:hover{filter:brightness(1.12)}.status-pill>span{background:currentColor;border-radius:999px;width:6px;height:6px}.status-ready{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.status-ready{border-color:color-mix(in srgb, var(--success) 28%, transparent)}}.status-ready{color:var(--success);background:var(--success)}@supports (color:color-mix(in lab, red, red)){.status-ready{background:color-mix(in srgb, var(--success) 8%, transparent)}}.status-partial{border-color:var(--border-subtle);color:var(--text-secondary);background:var(--surface)}.status-warning{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.status-warning{border-color:color-mix(in srgb, var(--warning) 28%, transparent)}}.status-warning{color:var(--warning);background:var(--warning)}@supports (color:color-mix(in lab, red, red)){.status-warning{background:color-mix(in srgb, var(--warning) 8%, transparent)}}.status-error{border-color:var(--danger-border);color:var(--danger-text);background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.status-error{background:color-mix(in srgb, var(--danger) 8%, transparent)}}.field{min-width:0;color:var(--text-muted);gap:4px;font-size:12px;font-weight:650;display:grid}.field>span{align-items:center;gap:4px;display:flex}.field input,.field select,.input-wrap,.sort-control select{border:1px solid var(--border-subtle);border-radius:var(--radius-control);width:100%;min-height:40px;color:var(--text-primary);background-color:var(--raised)}@supports (color:color-mix(in lab, red, red)){.field input,.field select,.input-wrap,.sort-control select{background-color:color-mix(in srgb, var(--raised) 18%, var(--canvas))}}.field input,.field select,.input-wrap,.sort-control select{box-shadow:inset 0 1px 0 var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.field input,.field select,.input-wrap,.sort-control select{box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text-primary) 3%, transparent)}}.field>input{padding:8px 12px}.field select,.sort-control select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);text-overflow:ellipsis;white-space:nowrap;background-position:calc(100% - 15px) 17px,calc(100% - 11px) 17px;background-repeat:no-repeat;background-size:4px 4px,4px 4px;padding:8px 36px 8px 12px;overflow:hidden}.field input::placeholder{color:var(--text-muted)}.field input:hover,.field select:hover,.input-wrap:hover,.sort-control select:hover{border-color:var(--border-strong)}.field input:focus,.field select:focus,.input-wrap:focus-within,.sort-control select:focus{border-color:var(--text-secondary)}@supports (color:color-mix(in lab, red, red)){.field input:focus,.field select:focus,.input-wrap:focus-within,.sort-control select:focus{border-color:color-mix(in srgb, var(--text-secondary) 58%, var(--border-strong))}}.field input:focus,.field select:focus,.input-wrap:focus-within,.sort-control select:focus{background-color:var(--canvas);box-shadow:0 0 0 3px var(--focus-ring), inset 0 1px 0 var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.field input:focus,.field select:focus,.input-wrap:focus-within,.sort-control select:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--focus-ring) 7%, transparent), inset 0 1px 0 color-mix(in srgb, var(--text-primary) 3%, transparent)}}.input-wrap{color:var(--text-muted);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:0 12px;display:grid}.input-wrap input{min-height:auto;box-shadow:none;background:0 0;border:0;border-radius:0;outline:0;padding:8px}.app-shell .input-wrap input:focus-visible{outline:0}.input-wrap button{color:var(--text-muted);background:0 0;border:0;place-items:center;display:grid}.session-list-header{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:12px 16px;display:flex}.session-list-tools{align-items:center;gap:12px;display:flex}.sort-control{color:var(--text-muted);align-items:center;gap:8px;font-size:11px;font-weight:650;display:flex}.sort-control select{background-position:calc(100% - 15px) 13px,calc(100% - 11px) 13px;width:132px;min-height:32px;padding-top:4px;padding-bottom:4px;font-size:12px}.shortcut-hint{color:var(--text-muted);font-size:11px;display:none}.shortcut-hint kbd{border:1px solid var(--border-strong);background:var(--raised);color:var(--text-secondary);border-radius:.375rem;margin:0 4px;padding:1px 6px;font-family:inherit;font-size:11px}.session-filters{--filter-grid:minmax(0, 1fr) auto;border-bottom:1px solid var(--border-subtle);background:var(--surface);position:relative}@supports (color:color-mix(in lab, red, red)){.session-filters{background:color-mix(in srgb, var(--surface) 88%, var(--canvas))}}.filter-bar,.more-filters-row{grid-template-columns:var(--filter-grid);align-items:end;gap:12px;min-width:0;padding:12px 16px;display:grid}.filter-search{min-width:0}.filter-primary-controls,.filter-overflow-primary,.filter-overflow-controls{display:contents}.more-filters-wrap{min-width:0}.more-filters-button{border:1px solid var(--border-subtle);border-radius:var(--radius-control);min-height:40px;color:var(--text-secondary);background:var(--raised);align-items:center;gap:8px;padding:8px 12px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.more-filters-button{background:color-mix(in srgb, var(--raised) 18%, var(--canvas))}}.more-filters-button{box-shadow:inset 0 1px 0 var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.more-filters-button{box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text-primary) 3%, transparent)}}.more-filters-button{white-space:nowrap;font-size:12px;font-weight:650}.more-filters-button:hover{border-color:var(--border-strong);color:var(--text-primary);background:var(--raised)}.more-filters-active{border-color:var(--border-strong);color:var(--text-primary)}.more-filters-button strong{min-width:20px;height:20px;color:var(--canvas);background:var(--text-secondary);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;font-size:11px;display:grid}.more-filters-row{border-top:1px solid var(--border-subtle);animation:.15s ease-out disclosure-in}.active-filter-row{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:8px 16px;display:flex}.active-filter-chips{flex-wrap:wrap;gap:8px;min-width:0;display:flex}.filter-chip{border:1px solid var(--border-strong);max-width:300px;min-height:28px;color:var(--text-secondary);background:var(--raised);border-radius:999px;align-items:center;gap:8px;padding:4px 8px 4px 12px;font-size:11px;transition:border-color .12s ease-out,background .12s ease-out;display:inline-flex}.filter-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.filter-chip:hover{border-color:var(--focus-ring)}.filter-chip-exiting{pointer-events:none}.clear-all-filters{color:var(--text-muted);background:0 0;border:0;flex:none;padding:4px;font-size:11px;font-weight:650}.clear-all-filters:hover{color:var(--text-primary)}.unknown-activity-note{border-top:1px solid var(--border-subtle);color:var(--text-muted);padding:8px 16px;font-size:11px;line-height:16px}.toggle{cursor:pointer;border:1px solid var(--border-subtle);border-radius:var(--radius-control);min-width:0;min-height:40px;color:var(--text-secondary);background:var(--raised);align-items:center;gap:8px;padding:8px 12px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.toggle{background:color-mix(in srgb, var(--raised) 18%, var(--canvas))}}.toggle{box-shadow:inset 0 1px 0 var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.toggle{box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text-primary) 3%, transparent)}}.toggle{font-size:12px;font-weight:600;transition:border-color .15s ease-out,background .15s ease-out,color .15s ease-out}.toggle:hover{border-color:var(--border-strong);color:var(--text-primary)}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle-track{background:var(--border-strong);border-radius:999px;flex:none;width:28px;height:16px;transition:background .15s ease-out;position:relative}.toggle-track span{background:var(--text-muted);border-radius:999px;width:10px;height:10px;transition:left .15s ease-out,background .15s ease-out;position:absolute;top:3px;left:3px}.toggle-copy{white-space:nowrap;align-items:center;gap:6px;min-width:0;display:flex}.toggle-copy>span{text-overflow:ellipsis;overflow:hidden}.toggle-active{border-color:var(--border-strong);color:var(--text-primary);background:var(--raised)}.toggle-active .toggle-track{background:var(--text-secondary)}.toggle-active .toggle-track span{background:var(--canvas);left:15px}.page-selection-row{border-bottom:1px solid var(--border-subtle);background:var(--text-primary);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:8px 16px;display:flex}@supports (color:color-mix(in lab, red, red)){.page-selection-row{background:color-mix(in srgb, var(--text-primary) 1.5%, transparent)}}.selection-control{cursor:pointer;color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.selection-control input,.session-checkbox input{width:16px;height:16px;accent-color:var(--accent);margin:0}.session-row-block+.session-row-block{border-top:1px solid var(--border-subtle)}.session-row-block-grouped{border-top:0!important}.session-rows>.session-row+.session-row{border-top:1px solid var(--border-subtle)}.date-separator{min-height:30px;color:var(--text-faint);letter-spacing:.035em;align-items:center;gap:10px;padding:6px 16px;font-size:10px;font-weight:650;line-height:16px;display:flex}.date-separator-line{background:var(--border-subtle);flex:auto;height:1px}.session-row{grid-template-columns:32px minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:60px;padding:8px 16px;transition:background .12s ease-out,box-shadow .12s ease-out;display:grid;position:relative}.session-row:hover{background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.session-row:hover{background:color-mix(in srgb, var(--text-primary) 3%, transparent)}}.session-row-cursor:before{background:var(--text-primary);content:"";width:2px;height:28px;box-shadow:0 0 10px var(--text-primary);border-radius:999px;position:absolute;top:50%;left:3px;transform:translateY(-50%)}@supports (color:color-mix(in lab, red, red)){.session-row-cursor:before{box-shadow:0 0 10px color-mix(in srgb, var(--text-primary) 18%, transparent)}}.session-row-inspected{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.session-row-inspected{background:color-mix(in srgb, var(--accent) 10%, transparent)}}.session-row-selected{background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.session-row-selected{background:color-mix(in srgb, var(--text-primary) 6%, transparent)}}.session-row-inspected.session-row-selected{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.session-row-inspected.session-row-selected{background:color-mix(in srgb, var(--accent) 12%, transparent)}}.session-checkbox{cursor:pointer;border-radius:var(--radius-control);place-items:center;width:40px;height:40px;margin:-4px;display:grid}.session-checkbox:hover{background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.session-checkbox:hover{background:color-mix(in srgb, var(--text-primary) 6%, transparent)}}.session-checkbox:focus-within{background:var(--focus-ring)}@supports (color:color-mix(in lab, red, red)){.session-checkbox:focus-within{background:color-mix(in srgb, var(--focus-ring) 8%, transparent)}}.session-checkbox:focus-within{box-shadow:0 0 0 2px var(--focus-ring)}@supports (color:color-mix(in lab, red, red)){.session-checkbox:focus-within{box-shadow:0 0 0 2px color-mix(in srgb, var(--focus-ring) 22%, transparent)}}.session-row>button{min-width:0;color:inherit;background:0 0;border:0;padding:0}.session-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;line-height:20px;display:block;overflow:hidden}.session-workspace{min-width:0;color:var(--text-muted);align-items:center;gap:4px;margin-top:4px;font-size:12px;line-height:16px;display:flex}.session-row-meta{flex-direction:row;flex:none;justify-content:flex-end;align-items:center;gap:4px;display:flex}.time-badge,.kind-label,.size-badge,.archive-tag{border:1px solid var(--border-subtle);min-height:22px;color:var(--text-muted);background:var(--text-primary);border-radius:999px;align-items:center;gap:4px;padding:2px 6px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.time-badge,.kind-label,.size-badge,.archive-tag{background:color-mix(in srgb, var(--text-primary) 3%, transparent)}}.time-badge,.kind-label,.size-badge,.archive-tag{white-space:nowrap;font-size:11px;font-weight:600;line-height:16px}.archive-tag{min-height:20px;padding:1px 6px}.session-row-chevron{color:var(--text-faint);flex:none;display:none}.session-row:hover .session-row-chevron{color:var(--text-muted);transform:translate(2px)}.session-row-chevron{transition:color .12s ease-out,transform .12s ease-out}.session-row-skeleton{grid-template-columns:32px minmax(0,1fr) auto auto}.badge-skeleton{border-radius:999px;width:56px;height:22px}.inspector{display:none;overflow:hidden}.inspector-backdrop{display:none}.inspector-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.inspector-content{padding:20px}.icon-tile{border:1px solid var(--border-subtle);width:36px;height:36px;color:var(--text-muted);background:var(--text-primary);border-radius:.75rem;flex:none;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.icon-tile{background:color-mix(in srgb, var(--text-primary) 4%, transparent)}}.inspector-title{overflow-wrap:anywhere;-webkit-line-clamp:2;color:var(--text-primary);-webkit-box-orient:vertical;font-size:16px;font-weight:400;line-height:24px;display:-webkit-box;overflow:hidden}.inspector-id{overflow-wrap:anywhere;color:var(--text-muted);margin-top:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:16px}.inspector-details{margin-top:24px}.detail-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:20px minmax(0,1fr);gap:8px;margin-bottom:16px;padding:0 0 16px;display:grid}.detail-row:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.detail-row>svg{color:var(--text-muted);margin-top:2px}.detail-row dt{color:var(--text-muted);font-size:11px;font-weight:650;line-height:16px}.detail-row dd{overflow-wrap:anywhere;color:var(--text-secondary);margin-top:4px;font-size:13px;line-height:20px}.inspector-empty{text-align:center;place-items:center;min-height:260px;padding:28px;display:grid}.inspector-empty-icon{width:40px;height:40px;color:var(--text-faint);place-items:center;margin:0 auto;display:grid}.inspector-empty h2{color:var(--text-secondary);margin-top:8px;font-size:13px;font-weight:600}.inspector-empty p{max-width:220px;color:var(--text-muted);margin:8px auto 0;font-size:12px;line-height:16px}.related-sessions,.session-timeline{border-top:1px solid var(--border-subtle)}.timeline-heading{justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.timeline-heading>div>p:last-child{color:var(--text-muted);margin-top:3px;font-size:11px;line-height:16px}.related-session-list{border-top:1px solid var(--border-subtle)}.related-session-list button{border:0;border-bottom:1px solid var(--border-subtle);width:100%;min-width:0;color:var(--text-muted);text-align:left;background:0 0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 20px;display:grid}.related-session-list button:hover{color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.related-session-list button:hover{background:color-mix(in srgb, var(--text-primary) 3%, transparent)}}.related-session-copy{gap:2px;min-width:0;display:grid;overflow:hidden}.related-session-copy strong,.related-session-copy small,.related-session-copy code{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.related-session-copy strong{color:var(--text-secondary);font-size:11px;font-weight:600;line-height:16px}.related-session-copy small{color:var(--text-muted);font-size:10px;line-height:15px}.related-session-copy code{color:var(--text-faint);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:9px;line-height:14px}.timeline-region{border-top:1px solid var(--border-subtle);min-height:112px;position:relative}.timeline-initial-loading{min-height:112px;color:var(--text-muted);justify-content:center;align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.timeline-events{display:grid}.timeline-event{border-bottom:1px solid var(--border-subtle);background:var(--text-primary);min-width:0;padding:14px 20px}@supports (color:color-mix(in lab, red, red)){.timeline-event{background:color-mix(in srgb, var(--text-primary) 1.5%, transparent)}}.timeline-event header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.timeline-event header span{border:1px solid var(--border-subtle);min-height:20px;color:var(--text-secondary);background:var(--raised);letter-spacing:.07em;text-transform:uppercase;border-radius:999px;align-items:center;padding:1px 7px;font-size:9px;font-weight:750;line-height:16px;display:inline-flex}.timeline-event time{color:var(--text-faint);font-size:10px;line-height:16px}.timeline-event-ran,.timeline-event-edit{background:0 0;padding-top:10px;padding-bottom:10px}.timeline-event-ran header,.timeline-event-edit header{margin-bottom:6px}.timeline-event-failed{border-color:var(--danger-border);background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.timeline-event-failed{background:color-mix(in srgb, var(--danger) 7%, var(--surface))}}.timeline-event-failed header span,.timeline-event-failed .timeline-event-meta{color:var(--danger-text)}.timeline-event-injected{background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.timeline-event-injected{background:color-mix(in srgb, var(--text-primary) 2.5%, transparent)}}.timeline-event-copy p{overflow-wrap:anywhere;color:var(--text-secondary);white-space:pre-wrap;font-size:12px;line-height:19px}.timeline-event-ask,.timeline-event-said{padding-top:18px;padding-bottom:18px}.timeline-event-ask .timeline-event-copy p,.timeline-event-said .timeline-event-copy p{color:var(--text-primary);font-size:13px;font-weight:500;line-height:21px}.timeline-event-copy button,.timeline-scroll-copy button{color:var(--text-muted);background:0 0;border:0;margin-top:7px;padding:0;font-size:11px;font-weight:650}.timeline-event-copy button:hover,.timeline-scroll-copy button:hover{color:var(--text-primary)}.timeline-event-copy span{color:var(--text-faint);margin-top:5px;font-size:10px;display:block}.timeline-scroll-copy{min-width:0}.timeline-scroll-copy>div{max-width:100%;color:var(--text-secondary);white-space:pre;padding-bottom:3px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:18px;overflow-x:auto}.timeline-event-meta,.timeline-plan-summary{color:var(--text-muted);margin-top:8px;font-size:11px;line-height:17px}.timeline-secondary-value{min-width:0;margin-top:9px}.timeline-secondary-value>span{color:var(--text-faint);margin-bottom:4px;font-size:10px;font-weight:650;line-height:16px;display:block}.injected-events-toggle,.timeline-more{border:0;border-bottom:1px solid var(--border-subtle);width:100%;color:var(--text-muted);background:var(--text-primary);padding:10px 20px}@supports (color:color-mix(in lab, red, red)){.injected-events-toggle,.timeline-more{background:color-mix(in srgb, var(--text-primary) 2%, transparent)}}.injected-events-toggle,.timeline-more{text-align:left;font-size:11px;font-weight:650}.injected-events-toggle:hover,.timeline-more:hover:not(:disabled){color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.injected-events-toggle:hover,.timeline-more:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 4%, transparent)}}.timeline-more{text-align:center}.timeline-more:disabled{opacity:.65}.timeline-coverage{color:var(--text-faint);padding:10px 20px;font-size:10px;line-height:16px}.timeline-coverage p+p{overflow-wrap:anywhere;margin-top:3px}.timeline-coverage-notice{border:1px solid var(--border-subtle);color:var(--text-secondary);background:var(--surface);border-radius:.625rem;align-items:flex-start;gap:9px;margin:12px;padding:11px;display:flex}.timeline-coverage-notice>svg{color:var(--text-muted);flex:none;margin-top:1px}.timeline-coverage-notice strong{font-size:12px;font-weight:650}.timeline-coverage-notice p{color:var(--text-muted);margin-top:3px;font-size:10px;line-height:16px}.timeline-empty{min-height:180px;color:var(--text-faint);text-align:center;align-content:center;place-items:center;padding:24px;display:grid}.timeline-empty h3{color:var(--text-secondary);margin-top:10px;font-size:13px;font-weight:650}.timeline-empty p{max-width:320px;color:var(--text-muted);margin-top:6px;font-size:11px;line-height:17px}.timeline-empty .button{margin-top:14px}.timeline-quiet-empty{color:var(--text-muted);text-align:center;padding:16px 20px;font-size:11px}.pagination{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:8px 16px;display:flex}.pagination>span{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px}.pagination strong{color:var(--text-secondary);font-weight:600}.page-button{border-radius:var(--radius-control);min-width:32px;height:32px;color:var(--text-muted);background:0 0;border:1px solid #0000;place-items:center;padding:0 8px;font-size:11px;display:grid}.page-button:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.page-button:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 6%, transparent)}}.page-button[aria-current=page]{border-color:var(--focus-ring);color:var(--text-primary);background:var(--raised)}.page-button:disabled{opacity:.28}.empty-state{text-align:center;place-items:center;min-height:360px;padding:24px;display:grid}.empty-state-icon{border:1px solid var(--border-subtle);width:44px;height:44px;color:var(--text-muted);background:var(--text-primary);border-radius:.75rem;place-items:center;margin:0 auto;display:grid}@supports (color:color-mix(in lab, red, red)){.empty-state-icon{background:color-mix(in srgb, var(--text-primary) 4%, transparent)}}.empty-state h3{color:var(--text-secondary);margin-top:16px;font-size:14px;font-weight:650}.empty-state p{max-width:360px;color:var(--text-muted);margin:8px auto 0;font-size:12px;line-height:20px}.compatibility-popover{z-index:30;border:1px solid var(--border-strong);border-radius:var(--radius-surface);background:var(--raised);width:min(400px,100vw - 32px);box-shadow:0 24px 72px var(--canvas);padding:16px;position:absolute;top:calc(100% + 8px);right:0}@supports (color:color-mix(in lab, red, red)){.compatibility-popover{box-shadow:0 24px 72px color-mix(in srgb, var(--canvas) 72%, transparent)}}.compatibility-popover{animation:.15s ease-out raised-in}.popover-title{color:var(--text-primary);font-size:14px;font-weight:650}.popover-copy{color:var(--text-secondary);margin-top:4px;font-size:12px;line-height:20px}.version-list{border-top:1px solid var(--border-subtle);gap:8px;margin-top:16px;padding-top:16px;display:grid}.version-row{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;padding:8px 12px;display:flex}.version-row p{color:var(--text-secondary);font-size:12px;font-weight:600}.version-row code{color:var(--text-muted);margin-top:2px;font-size:11px;display:block}.version-row>span{color:var(--text-muted);text-align:right;font-size:11px}.compatibility-note{color:var(--text-muted);margin-top:12px;font-size:12px;line-height:20px}.compatibility-details{color:var(--text-secondary);margin-top:12px;font-size:12px;line-height:20px}.compatibility-details li{gap:8px;display:flex}.semantic-dot{border-radius:999px;flex:none;width:4px;height:4px;margin-top:8px}.info-dot{background:var(--text-muted)}.warning-dot{background:var(--warning)}.success-icon{color:var(--success);flex:none;margin-top:2px}.alert{border:1px solid;border-radius:.75rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:20px;padding:12px;font-size:13px;animation:.15s ease-out raised-in;display:grid}.alert button{color:currentColor;opacity:.75;background:0 0;border:0;place-items:center;display:grid}.alert-success{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.alert-success{border-color:color-mix(in srgb, var(--success) 28%, transparent)}}.alert-success{color:var(--success);background:var(--success)}@supports (color:color-mix(in lab, red, red)){.alert-success{background:color-mix(in srgb, var(--success) 8%, transparent)}}.alert-warning{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.alert-warning{border-color:color-mix(in srgb, var(--warning) 28%, transparent)}}.alert-warning{color:var(--warning);background:var(--warning)}@supports (color:color-mix(in lab, red, red)){.alert-warning{background:color-mix(in srgb, var(--warning) 8%, transparent)}}.alert-error{border-color:var(--danger-border);color:var(--danger-text);background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.alert-error{background:color-mix(in srgb, var(--danger) 8%, transparent)}}.selection-tray{z-index:38;border:1px solid var(--border-strong);border-radius:var(--radius-surface);background:var(--raised);box-shadow:0 24px 80px var(--canvas);position:fixed;bottom:8px;left:8px;right:8px;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.selection-tray{box-shadow:0 24px 80px color-mix(in srgb, var(--canvas) 76%, transparent)}}.selection-tray{animation:.15s ease-out selection-tray-in}.selection-tray-review{border-bottom:1px solid var(--border-subtle);background:var(--surface)}.selection-tray-review-heading{justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.selection-tray-review-heading>span{border:1px solid var(--border-strong);min-width:28px;height:28px;color:var(--text-secondary);background:var(--raised);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;font-size:11px;font-weight:650;display:grid}.selection-tray-heading{color:var(--text-primary);font-size:14px;font-weight:650}.selection-tray-copy{color:var(--text-muted);margin-top:4px;font-size:12px}.selection-tray-records{border-top:1px solid var(--border-subtle);max-height:min(272px,42vh);overflow-y:auto}.selection-tray-record{border-bottom:1px solid var(--border-subtle);contain-intrinsic-size:auto 60px;content-visibility:auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:60px;padding:8px 12px 8px 16px;display:grid}.selection-tray-record:last-child{border-bottom:0}.selection-tray-title{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;line-height:16px;overflow:hidden}.selection-tray-meta{min-width:0;color:var(--text-muted);align-items:center;gap:4px;margin-top:4px;font-size:11px;display:flex}.selection-tray-bar{flex-direction:column;gap:12px;padding:12px;display:flex}.selection-tray-summary{min-width:0;color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:13px;font-weight:650;line-height:20px}.selection-tray-count,.selection-tray-summary-value{display:inline-block}.selection-tray-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.has-selection-tray{padding-bottom:144px;transition:padding-bottom .15s ease-out}.has-selection-tray-expanded{padding-bottom:432px}.dialog-backdrop{z-index:50;background:var(--canvas);place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}@supports (color:color-mix(in lab, red, red)){.dialog-backdrop{background:color-mix(in srgb, var(--canvas) 82%, transparent)}}.dialog-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:16px;animation:.15s ease-out backdrop-in}.dialog-panel,.shortcut-panel{border:1px solid var(--border-strong);border-radius:var(--radius-surface);background:var(--raised);width:100%;max-height:calc(100vh - 32px);box-shadow:0 36px 104px var(--canvas);padding:24px;overflow-y:auto}@supports (color:color-mix(in lab, red, red)){.dialog-panel,.shortcut-panel{box-shadow:0 36px 104px color-mix(in srgb, var(--canvas) 78%, transparent)}}.dialog-panel,.shortcut-panel{animation:.15s ease-out raised-in}.dialog-panel{max-width:624px}.shortcut-panel{max-width:704px}.dialog-title{color:var(--text-primary);letter-spacing:-.015em;margin-top:8px;font-size:20px;font-weight:650;line-height:24px}.dialog-copy{color:var(--text-secondary);margin-top:8px;font-size:14px;line-height:20px}.shortcut-groups{gap:12px;margin-top:20px;display:grid}.shortcut-groups>section{border:1px solid var(--border-subtle);background:var(--surface);border-radius:.75rem;overflow:hidden}.shortcut-groups h3{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);padding:8px 12px;font-size:12px;font-weight:650}.shortcut-groups dl>div{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:8px 12px;display:flex}.shortcut-groups dl>div:last-child{border-bottom:0}.shortcut-groups dt{color:var(--text-secondary);font-size:12px;line-height:16px}.shortcut-groups dd{flex:none}.shortcut-groups kbd{border:1px solid var(--border-strong);color:var(--text-secondary);background:var(--raised);box-shadow:0 1px 2px var(--canvas);border-radius:.375rem;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;display:inline-block}@supports (color:color-mix(in lab, red, red)){.shortcut-groups kbd{box-shadow:0 1px 2px color-mix(in srgb, var(--canvas) 40%, transparent)}}.scope-card{border:1px solid var(--border-subtle);color:var(--text-secondary);background:var(--surface);text-align:left;border-radius:.75rem;padding:16px;transition:border-color .15s ease-out,background .15s ease-out}.scope-card:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.scope-card:hover:not(:disabled){background:color-mix(in srgb, var(--surface) 88%, var(--raised))}}.scope-card-active{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.scope-card-active{border-color:color-mix(in srgb, var(--accent) 52%, var(--border-strong))}}.scope-card-active{color:var(--text-primary);background:var(--accent-soft)}.scope-heading{justify-content:space-between;align-items:center;gap:8px;font-size:14px;font-weight:650;display:flex}.scope-check{border:1px solid var(--border-strong);border-radius:999px;place-items:center;width:20px;height:20px;display:grid}.scope-card-active .scope-check{border-color:var(--accent);color:var(--canvas);background:var(--accent)}.scope-card>p{color:var(--text-secondary);margin-top:8px;font-size:12px;line-height:20px}.metric{border:1px solid var(--border-subtle);background:var(--surface);border-radius:.75rem;padding:12px}.metric>p{min-height:32px;color:var(--text-muted);font-size:11px;font-weight:600;line-height:16px}.metric>strong{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;margin-top:4px;font-size:14px;font-weight:650;display:block;overflow:hidden}.dialog-plan-region{min-height:76px;margin-top:20px;position:relative}.metric-skeleton{border-radius:.75rem;height:76px}.dialog-plan-loading{z-index:1;color:var(--text-secondary);background:var(--raised);border-radius:.75rem;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:-1px}@supports (color:color-mix(in lab, red, red)){.dialog-plan-loading{background:color-mix(in srgb, var(--raised) 88%, transparent)}}.dialog-plan-loading{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);font-size:12px;font-weight:650}.dialog-message,.dialog-confirmation{border:1px solid;border-radius:.75rem;margin-top:16px;padding:12px;font-size:13px;line-height:20px}.message-warning{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.message-warning{border-color:color-mix(in srgb, var(--warning) 24%, var(--border-subtle))}}.message-warning{color:var(--text-secondary);background:var(--warning)}@supports (color:color-mix(in lab, red, red)){.message-warning{background:color-mix(in srgb, var(--warning) 5%, transparent)}}.message-danger{border-color:var(--danger-border);color:var(--danger-text);background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.message-danger{background:color-mix(in srgb, var(--danger) 8%, transparent)}}.dialog-note,.dialog-information{color:var(--text-secondary);align-items:flex-start;gap:8px;margin-top:12px;font-size:12px;line-height:20px;display:flex}.dialog-note>svg,.dialog-information>svg{color:var(--text-muted);flex:none;margin-top:2px}.close-session-note{border:1px solid var(--border-subtle);background:var(--surface);border-radius:.75rem;margin-top:20px;padding:12px}.close-session-note strong{color:var(--text-primary);font-weight:650}.operation-panel{border:1px solid var(--border-subtle);background:var(--surface);border-radius:.75rem;margin-top:20px;padding:16px}.operation-heading{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:16px;font-size:14px;display:flex}.operation-heading>span:first-child{font-weight:600}.operation-heading>span:last-child{color:var(--text-muted);font-variant-numeric:tabular-nums}.progress-track{background:var(--border-subtle);border-radius:999px;height:6px;margin-top:12px;overflow:hidden}.progress-value{border-radius:999px;height:100%;transition:width .15s ease-out}.progress-success{background:var(--success)}.progress-warning{background:var(--warning)}.progress-danger{background:var(--danger)}.progress-info{background:var(--text-secondary)}.operation-error{background:0 0;border:0;margin-top:12px;padding:0;font-size:12px;line-height:20px}.restore-copy{color:var(--text-secondary);margin-top:12px;font-size:12px;line-height:20px}.restore-copy>div{margin-top:8px}.restore-copy>div>p{color:var(--text-muted)}.restore-copy code{overflow-wrap:anywhere;color:var(--text-muted);font-size:11px;display:block}.dialog-confirmation>p{color:var(--text-primary);font-size:14px;font-weight:650}.dialog-confirmation>span{margin-top:4px;display:block}.skeleton{background:linear-gradient(90deg, var(--text-primary), var(--text-primary), var(--text-primary))}@supports (color:color-mix(in lab, red, red)){.skeleton{background:linear-gradient(90deg, color-mix(in srgb, var(--text-primary) 4%, transparent), color-mix(in srgb, var(--text-primary) 9%, transparent), color-mix(in srgb, var(--text-primary) 4%, transparent))}}.skeleton{background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes selection-tray-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes raised-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes disclosure-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes checkbox-check-in{0%{opacity:.72;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes filter-chip-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes filter-chip-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-2px)}}@keyframes selection-value-in{0%{opacity:.7;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.selection-control input:checked,.session-checkbox input:checked{animation:.12s ease-out checkbox-check-in}.filter-chip{animation:.14s ease-out filter-chip-in}.filter-chip-exiting{animation:.12s ease-out forwards filter-chip-out}.selection-tray-count,.selection-tray-summary-value{animation:.12s ease-out selection-value-in}}@media (width<=1023px){.inspector-open{z-index:40;max-height:min(576px,100vh - 48px);box-shadow:0 28px 90px var(--canvas);display:block;position:fixed;bottom:12px;left:12px;right:12px;overflow-y:auto}@supports (color:color-mix(in lab, red, red)){.inspector-open{box-shadow:0 28px 90px color-mix(in srgb, var(--canvas) 76%, transparent)}}.inspector-backdrop-open{z-index:39;background:var(--canvas);border:0;width:100%;height:100%;display:block;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.inspector-backdrop-open{background:color-mix(in srgb, var(--canvas) 64%, transparent)}}.inspector-backdrop-open{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}@media (width>=640px){.session-list-header,.filter-bar,.more-filters-row,.active-filter-row,.unknown-activity-note,.page-selection-row,.pagination,.date-separator,.session-row{padding-left:20px;padding-right:20px}.shortcut-hint{display:block}.selection-tray{width:min(736px,100vw - 48px);bottom:20px;left:50%;right:auto;translate:-50%}.selection-tray-bar{flex-direction:row;align-items:center;padding:12px 12px 12px 16px}.selection-tray-summary{flex:auto}.selection-tray-actions{flex:none;display:flex}.session-row-chevron{display:block}}@media (width>=900px){.session-filters{--filter-grid:minmax(260px, 2fr) minmax(180px, 1fr) auto}.overview-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-item,.overview-item-primary{border-right:1px solid var(--border-subtle);border-bottom:0;grid-column:auto}.overview-item:nth-child(3n),.overview-item:last-child{border-right:0}.shortcut-groups{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1024px){.inspector{max-height:calc(100vh - 48px);display:block;position:sticky;top:24px;overflow-y:auto}}@media (width>=900px) and (width<=1179px){.filter-primary-controls .filter-priority-1,.filter-overflow-primary .filter-priority-2{display:none}}@media (width>=1180px){.session-filters{--filter-grid:minmax(220px, 1.5fr) repeat(2, minmax(180px, 1fr)) auto}.overview-strip{grid-template-columns:repeat(5,minmax(0,1fr))}.overview-item,.overview-item-primary{border-right:1px solid var(--border-subtle);border-bottom:0}.overview-item:nth-child(3n){border-right:1px solid var(--border-subtle)}.overview-item:last-child{border-right:0}.filter-overflow-primary{display:none}}@media (width<=639px){.brand-title{font-size:20px;line-height:24px}.brand-mark{width:40px;height:40px}.surface{border-radius:.875rem}.provider-context{align-items:flex-start}.provider-context-main{gap:4px;width:100%;display:grid}.provider-context code{width:100%}.date-separator{padding-left:12px;padding-right:12px}.session-row{grid-template-columns:28px minmax(0,1fr) auto;gap:4px;padding-left:12px;padding-right:12px}.session-row-chevron{display:none}.session-row-meta{gap:2px}.time-badge,.kind-label,.size-badge{padding-left:4px;padding-right:4px}.time-badge svg,.kind-label svg,.size-badge svg{display:none}.compatibility-popover{width:auto;position:fixed;top:72px;left:16px;right:16px}.dialog-backdrop{align-items:end;padding:0}.dialog-panel,.shortcut-panel{border-radius:var(--radius-surface) var(--radius-surface) 0 0;border-bottom:0;border-left:0;border-right:0;max-height:92vh;padding:20px}}@media (width<=899px){.filter-primary-controls{display:none}}@media (width<=519px){.more-filters-button>span{display:none}.filter-bar{gap:8px}.sort-control>span,.shortcut-hint{display:none}}@media (prefers-reduced-motion:reduce){.active-filter-row-clearing,.filter-chip-exiting{display:none!important}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}