﻿:root,[data-bs-theme=light]{--bg: #fff;--surface: #fafafa;--elevated: #f5f5f5;--border: #eaeaea;--border-strong: #d4d4d4;--text: #000;--text-muted: #666;--text-dim: #999;--accent: #000;--accent-text: #fff;--status-done-bg: rgba(34, 197, 94, .10);--status-done-bd: rgba(34, 197, 94, .35);--status-done-fg: #16803c;--status-prog-bg: rgba(245, 158, 11, .10);--status-prog-bd: rgba(245, 158, 11, .35);--status-prog-fg: #92400e;--status-block-bg: rgba(239, 68, 68, .10);--status-block-bd: rgba(239, 68, 68, .35);--status-block-fg: #b91c1c;--status-pend-bg: rgba(0, 0, 0, .03);--status-pend-bd: var(--border);--status-pend-fg: var(--text-muted);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow: 0 4px 12px rgba(0, 0, 0, .08)}[data-bs-theme=dark]{--bg: #000;--surface: #0a0a0a;--elevated: #111;--border: #262626;--border-strong: #404040;--text: #fff;--text-muted: #a1a1a1;--text-dim: #525252;--accent: #fff;--accent-text: #000;--status-done-bg: rgba(34, 197, 94, .12);--status-done-bd: rgba(34, 197, 94, .25);--status-done-fg: #4ade80;--status-prog-bg: rgba(245, 158, 11, .12);--status-prog-bd: rgba(245, 158, 11, .25);--status-prog-fg: #fbbf24;--status-block-bg: rgba(239, 68, 68, .12);--status-block-bd: rgba(239, 68, 68, .25);--status-block-fg: #f87171;--status-pend-bg: rgba(255, 255, 255, .05);--status-pend-bd: var(--border);--status-pend-fg: var(--text-muted);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--shadow: 0 4px 12px rgba(0, 0, 0, .35)}:root{--radius-sm: 4px;--radius: 6px;--radius-lg: 10px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--tap-min: 44px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--text-xs: 13px;--text-sm: 16px;--text-base: 18px;--text-md: 19px;--text-lg: 22px;--text-xl: 24px;--text-2xl: 29px;--text-3xl: 31px;--text-num: 38px;--line-tight: 1.25;--line-body: 1.5;--t-fast: 120ms;--t-base: 200ms}[data-bs-theme=light],[data-bs-theme=dark]{--bs-body-bg: var(--bg);--bs-body-color: var(--text);--bs-border-color: var(--border);--bs-border-radius: var(--radius);--bs-border-radius-sm: var(--radius-sm);--bs-border-radius-lg: var(--radius-lg);--bs-secondary-color: var(--text-muted);--bs-tertiary-color: var(--text-dim)}html,body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--line-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--text);color:var(--bg)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) rgba(0,0,0,0)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:rgba(0,0,0,0)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}:focus-visible{outline:2px solid var(--text);outline-offset:2px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}}h1,.h1{font-size:var(--text-3xl);font-weight:700;letter-spacing:-0.02em;line-height:var(--line-tight);margin:0}h2,.h2{font-size:var(--text-2xl);font-weight:700;letter-spacing:-0.02em;line-height:var(--line-tight);margin:0}h3,.h3{font-size:var(--text-xl);font-weight:700;letter-spacing:-0.01em;line-height:var(--line-tight);margin:0}h4,.h4{font-size:var(--text-lg);font-weight:600;letter-spacing:-0.01em;line-height:var(--line-tight);margin:0}code,pre,.mono{font-family:var(--font-mono)}.text-mono{font-family:var(--font-mono)}.text-muted{color:var(--text-muted)}.text-dim{color:var(--text-dim)}.label-tag{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.tf-app{display:flex;flex-direction:column;min-height:100dvh;background:var(--bg)}.tf-main{flex:1;min-width:0;display:flex;flex-direction:column}.tf-topbar{display:flex;align-items:center;gap:var(--space-3);height:56px;padding:0 var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.tf-topbar .ham{background:rgba(0,0,0,0);border:0;padding:6px;color:var(--text);font-size:22px;line-height:1;cursor:pointer;border-radius:var(--radius)}.tf-topbar .ham:hover{background:var(--elevated)}.tf-topbar .brand{font-weight:700;font-size:var(--text-md);letter-spacing:-0.02em}.tf-topbar .crumbs{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-sm);display:flex;gap:6px;align-items:center}.tf-topbar .crumbs .sep{color:var(--text-dim)}.tf-topbar .crumbs .crumb{cursor:pointer}.tf-topbar .crumbs .crumb.active{color:var(--text)}.tf-topbar .who{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted)}.tf-drawer{display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);position:fixed;left:0;top:0;bottom:0;width:78%;max-width:280px;transform:translateX(-100%);transition:transform var(--t-base) ease-out;z-index:30;box-shadow:4px 0 24px rgba(0,0,0,.4)}.tf-drawer__head{padding:var(--space-4);border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:space-between}.tf-drawer__head .brand{font-weight:700;font-size:var(--text-md);letter-spacing:-0.02em}.tf-drawer__head .close{background:rgba(0,0,0,0);border:0;color:var(--text);font-size:20px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:var(--radius)}.tf-drawer__head .close:hover{background:var(--elevated)}.tf-drawer__scroll{flex:1;overflow-y:auto;min-height:0;padding:var(--space-3) var(--space-2)}.tf-drawer__scroll::-webkit-scrollbar{width:5px}.tf-drawer__scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.tf-drawer__scroll::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.tf-drawer__foot{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-3)}.tf-drawer__foot-user{display:flex;align-items:center;gap:var(--space-2);min-width:0}.tf-drawer__foot-user .who{flex:1;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tf-drawer__foot-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.tf-drawer .nav-item{display:flex;align-items:center;gap:var(--space-3);padding:10px var(--space-3);border-radius:var(--radius);color:var(--text-muted);font-size:var(--text-sm);text-decoration:none;margin-bottom:2px;cursor:pointer}.tf-drawer .nav-item:hover:not(.active){background:var(--elevated);color:var(--text)}.tf-drawer .nav-item.active{background:var(--accent);color:var(--accent-text);font-weight:600}.tf-drawer .nav-section-head{padding:var(--space-3) var(--space-3) var(--space-2);margin-top:var(--space-3);border-top:1px solid var(--border);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.tf-drawer .nav-section-head:first-child{margin-top:0;border-top:0}.tf-drawer .sign-out{background:rgba(0,0,0,0);border:0;padding:0;color:var(--status-block-fg);font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer}.tf-drawer .sign-out:hover{opacity:.85}[data-drawer-state=open] .tf-drawer{transform:translateX(0)}.tf-scrim{position:fixed;inset:0;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity var(--t-base) ease-out;z-index:25}[data-drawer-state=open] .tf-scrim{opacity:1;pointer-events:auto}body[data-drawer-state=open]{overflow:hidden}.tf-page{padding:var(--space-4);max-width:1200px;width:100%;margin:0 auto;flex:1}@media(min-width: 576px){.tf-page{padding:var(--space-6)}}@media(min-width: 768px){.tf-page{padding:var(--space-6) 28px}}.tf-container-narrow{max-width:720px;margin:0 auto}turbo-cable-stream-source{display:none}.tf-page--workspace,.tf-page--members,.tf-page--requests,.tf-page--locations,.tf-page--messages,.tf-page--reports,.tf-page--traces,.tf-page--worktree{padding:0;max-width:none;display:flex;flex-direction:column;min-height:0}.tf-tracepage{flex:1;display:grid;grid-template-columns:340px 1fr;min-height:calc(100dvh - 56px)}.tf-tracepage__col{border-right:1px solid var(--border);min-width:0}.tf-tracepage__col:last-child{border-right:0}.tf-tracepage__col--1{background:var(--surface);overflow:auto;display:flex;flex-direction:column}.tf-tracepage__col--2{background:var(--bg);overflow:hidden;display:flex;flex-direction:column}@media(max-width: 767.98px){.tf-tracepage{grid-template-columns:1fr;min-height:calc(100dvh - 56px)}}.tf-reportpage{flex:1;display:grid;grid-template-columns:300px 1fr;min-height:calc(100dvh - 56px)}.tf-reportpage__col{border-right:1px solid var(--border);min-width:0}.tf-reportpage__col:last-child{border-right:0}.tf-reportpage__col--1{background:var(--surface);overflow:auto}.tf-reportpage__col--2{background:var(--bg);overflow:hidden;display:flex;flex-direction:column}.tf-reportpage:has(.tf-reportcanvas.is-designing){grid-template-columns:1fr}.tf-reportpage:has(.tf-reportcanvas.is-designing) .tf-reportpage__col--1{display:none}@media(max-width: 767.98px){.tf-reportpage{grid-template-columns:1fr;min-height:calc(100dvh - 56px)}}.tf-page--planner{padding:0;max-width:1560px;width:100%;margin:0 auto;display:flex;flex-direction:column;min-height:0}.tf-page--planner .tf-pane-tabs{display:none}.tf-workspace{flex:1;display:grid;grid-template-columns:240px 320px 1fr;min-height:calc(100dvh - 56px)}.tf-workspace__tree{grid-column:1/-1;grid-row:1;overflow:auto;display:none;background:var(--surface)}.tf-workspace--tree>.tf-workspace__col{display:none}.tf-workspace--tree>.tf-workspace__tree{display:block}.tf-workspace--tree+.tf-pane-tabs{display:none}.tf-wsfloat{position:fixed;bottom:var(--space-4);right:var(--space-4);z-index:20;display:flex;align-items:center;gap:var(--space-2);padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 16px rgba(0,0,0,.28)}.tf-wsfloat__tree-actions{display:none;gap:2px}.tf-workspace--tree .tf-wsfloat__tree-actions{display:flex}.tf-wsfloat__btn{border:0;background:rgba(0,0,0,0);color:var(--text-muted);font-size:var(--text-xs);padding:4px 8px;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap}.tf-wsfloat__btn:hover{background:var(--elevated);color:var(--text)}.tf-wsfloat__agent{display:none;gap:2px}.tf-workspace--tree .tf-wsfloat__agent{display:flex}.tf-workspace--tree[data-agent-state=open] .tf-wsfloat{right:calc(360px + var(--space-4))}.tf-wsagent{position:fixed;top:56px;right:0;bottom:0;width:360px;max-width:92vw;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border);box-shadow:-4px 0 24px rgba(0,0,0,.28);transform:translateX(100%);transition:transform var(--t-base) ease-out;z-index:25}.tf-wsagent__head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);flex-shrink:0}.tf-wsagent__head .ttl{font-weight:700;font-size:var(--text-sm);display:block}.tf-wsagent__sub{font-size:var(--text-xs);color:var(--text-muted)}.tf-wsagent__body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.tf-wsagent__empty{color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-3);line-height:1.5}.tf-wsagent__pending{flex-shrink:0;max-height:40vh;overflow-y:auto;padding:0 var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.tf-wsagent__pending:empty{display:none}.tf-wsagent__compose{flex-shrink:0;border-top:1px solid var(--border);padding:var(--space-3)}.tf-wsagent__form{display:flex;flex-direction:column;gap:var(--space-2)}.tf-wsagent__composerow{display:flex;gap:var(--space-2)}.tf-wsagent__focus{align-self:flex-start;max-width:100%;display:flex;flex-direction:column;gap:var(--space-1)}.tf-wsagent__focuschip{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;appearance:none;cursor:pointer;font:inherit;font-size:var(--text-xs);color:var(--text-muted);background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 8px}.tf-wsagent__focuschip:hover{color:var(--text);border-color:var(--border-strong)}.tf-wsagent__focuscaret{font-size:9px;color:var(--text-dim)}.tf-wsagent__focuslist{list-style:none;margin:0;padding:4px;display:flex;flex-direction:column;gap:2px;background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:180px;overflow-y:auto}.tf-wsagent__focusitem{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--text);padding:2px 2px 2px 6px;border-radius:var(--radius-sm)}.tf-wsagent__focusitem:hover{background:var(--bg)}.tf-wsagent__focustitle{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tf-wsagent__focusid{flex-shrink:0;color:var(--text-dim);font-variant-numeric:tabular-nums}.tf-wsagent__focusx{flex-shrink:0;appearance:none;background:rgba(0,0,0,0);border:0;color:var(--text-dim);cursor:pointer;width:16px;height:16px;line-height:1;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.tf-wsagent__focusx:hover{color:var(--text);background:var(--border)}.tf-wsagent__input{flex:1;min-width:0;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);padding:8px 12px;color:var(--text);font-size:var(--text-sm)}.tf-wsagent__input:focus{outline:none;border-color:var(--text)}.tf-workspace--tree[data-agent-state=open] .tf-wsagent{transform:none}.tf-wsagent__tabs{display:flex;align-items:stretch;gap:var(--space-1);padding:0 var(--space-3);border-bottom:1px solid var(--border);flex-shrink:0}.tf-wsagent__tabstrip{display:flex;align-items:stretch;gap:var(--space-2);flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.tf-wsagent__tabstrip::-webkit-scrollbar{display:none}.tf-wsagent__tab{appearance:none;background:rgba(0,0,0,0);border:0;border-bottom:2px solid rgba(0,0,0,0);margin-bottom:-1px;padding:var(--space-2) 2px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);font-weight:500;color:var(--text-muted);cursor:pointer;transition:color var(--t-base) ease,border-color var(--t-base) ease}.tf-wsagent__tab:hover{color:var(--text)}.tf-wsagent__tab.is-active{color:var(--text);font-weight:600;border-bottom-color:var(--text)}.tf-wsagent__tabadd{display:inline-flex;align-self:center}.tf-wsagent__tab--add{margin:0;padding:0;border-bottom:0;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--text-md);line-height:1;color:var(--text-muted)}.tf-wsagent__tab--add:hover{color:var(--text);background:var(--elevated);border-bottom:0}#scratchpad_panels{display:contents}.tf-wsagent__panel{flex:1;min-height:0;display:flex;flex-direction:column}.tf-wsagent__panel[hidden]{display:none}.tf-scratch__doc{flex:0 1 auto;max-height:55%;overflow-y:auto;padding:var(--space-3);background:color-mix(in srgb, var(--text) 6%, var(--surface));border-bottom:2px solid var(--border-strong);display:flex;flex-direction:column;gap:var(--space-3)}.tf-scratch__form{display:flex;flex-direction:column;gap:var(--space-3)}.tf-scratch__top{display:flex;align-items:center;gap:var(--space-2)}.tf-scratch__top .tf-scratch__brief{flex:1;min-width:0}.tf-scratch__iconbtn{flex-shrink:0;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-muted);cursor:pointer;transition:background var(--t-base) ease,color var(--t-base) ease,border-color var(--t-base) ease}.tf-scratch__iconbtn:hover{color:var(--text);border-color:var(--text-muted)}.tf-scratch__iconbtn svg{display:block}.tf-scratch__iconbtn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.tf-scratch__iconbtn--primary:hover{color:var(--accent-text);opacity:.88}.tf-scratch__iconbtn--danger{background:#dc2626;border-color:#dc2626;color:#fff}.tf-scratch__iconbtn--danger:hover{background:#b91c1c;border-color:#b91c1c;color:#fff}.tf-scratch__editbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.tf-scratch__toggle.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.tf-scratch__label,.tf-scratch__outcomes-head{font-size:var(--text-xs);font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-dim)}.tf-scratch__brief,.tf-scratch__select{width:100%;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);padding:7px 10px;color:var(--text);font-size:var(--text-sm)}.tf-scratch__brief:focus,.tf-scratch__select:focus{outline:none;border-color:var(--text)}.tf-scratch__select{cursor:pointer}.tf-scratch__pane[hidden]{display:none}.tf-scratch__pane--pad{display:flex;flex-direction:column;gap:var(--space-3)}.tf-scratch__group{display:flex;flex-direction:column;gap:var(--space-2)}.tf-scratch__hint{margin:0;font-size:var(--text-xs);color:var(--text-muted)}.tf-scratch__deleteform{display:none}.tf-scratch__attachments{display:flex;flex-direction:column;gap:var(--space-1)}.tf-scratch__attachments:empty{display:none}.tf-scratch__attach{position:relative}.tf-scratch__attach-input{width:100%}.tf-scratch__kind{flex-shrink:0;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);border:1px solid var(--border);border-radius:3px;padding:0 4px;margin-right:6px}.tf-scratch__attached{display:flex;align-items:center;gap:2px;background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 4px 4px 8px;font-size:var(--text-xs);color:var(--text)}.tf-scratch__attached .tf-scratch__kind{margin-right:4px}.tf-scratch__attached-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tf-scratch__attached-empty{margin:0;font-size:var(--text-xs);color:var(--text-dim)}.tf-scratch__attached-form{display:inline-flex;margin:0;flex-shrink:0}.tf-scratch__attached-x{appearance:none;background:rgba(0,0,0,0);border:0;color:var(--text-dim);cursor:pointer;width:18px;height:18px;line-height:1;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.tf-scratch__attached-x:hover{color:var(--text);background:var(--border)}.tf-scratch__outcomes{display:flex;flex-direction:column;gap:var(--space-2)}.tf-scratch__outcomes:empty{display:none}.tf-scratch__outcome{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);font-size:var(--text-xs)}.tf-scratch__outcome-icon{flex-shrink:0;font-size:var(--text-sm);line-height:1.4}.tf-scratch__outcome--done .tf-scratch__outcome-icon{color:#16a34a}.tf-scratch__outcome--failed .tf-scratch__outcome-icon{color:#dc2626}.tf-scratch__outcome-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.tf-scratch__outcome-line{color:var(--text);font-size:var(--text-sm)}.tf-scratch__outcome-detail{color:var(--text-muted)}.tf-scratch__outcome-error{color:#dc2626}.tf-scratch__outcome-meta{color:var(--text-dim);font-size:10px;margin-top:2px}.tf-scratch__outcome .tf-btn{flex-shrink:0;align-self:center}.tf-scratch__chat{flex:1 1 0;min-height:0;display:flex;flex-direction:column}.tf-viewtoggle{display:inline-flex;background:var(--elevated);border-radius:var(--radius);padding:2px}.tf-viewtoggle button{border:0;background:rgba(0,0,0,0);color:var(--text-muted);font-size:var(--text-xs);padding:4px 12px;border-radius:var(--radius-sm);cursor:pointer}.tf-viewtoggle button.is-active{background:var(--surface);color:var(--text)}.tf-members{display:grid;grid-template-columns:280px 1fr 320px;grid-template-rows:minmax(0, 1fr);height:calc(100dvh - 56px)}.tf-reqpage{display:grid;grid-template-columns:200px minmax(0, 1fr) minmax(0, 1fr);grid-template-rows:minmax(0, 1fr);height:calc(100dvh - 56px)}.tf-locpage,.tf-msgpage{display:grid;grid-template-rows:minmax(0, 1fr);height:calc(100dvh - 56px)}.tf-locpage{grid-template-columns:300px 1fr}.tf-msgpage{grid-template-columns:320px 1fr}.tf-workspace__col,.tf-members__col,.tf-reqpage__col,.tf-locpage__col,.tf-msgpage__col{border-right:1px solid var(--border);min-width:0;overflow:auto}.tf-workspace__col:last-child,.tf-members__col:last-child,.tf-reqpage__col:last-child,.tf-locpage__col:last-child,.tf-msgpage__col:last-child{border-right:0}.tf-workspace__col--1{background:var(--surface)}.tf-workspace__col--3{background:var(--bg)}.tf-members__col--1{background:var(--surface)}.tf-members__col--3{background:var(--surface)}.tf-reqpage__col--1{background:var(--surface)}.tf-locpage__col--1{background:var(--surface);overflow:hidden}.tf-locpage__col--2{background:var(--bg)}.tf-msgpage__col--1{background:var(--surface);overflow:hidden}.tf-msgpage__col--2{background:var(--bg);overflow:hidden}.tf-plnrpage{display:grid;grid-template-rows:minmax(0, 1fr);grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);height:calc(100dvh - 56px)}.tf-plnrpage__col{border-right:1px solid var(--border);min-width:0;overflow:hidden}.tf-plnrpage__col:last-child{border-right:0}.tf-plnrpage__col--1{background:var(--bg)}.tf-plnrpage__col--2{background:var(--surface)}@media(max-width: 767.98px){.tf-workspace,.tf-members,.tf-reqpage,.tf-locpage,.tf-msgpage,.tf-plnrpage{grid-template-columns:1fr;min-height:calc(100dvh - 56px - 56px)}.tf-workspace__col,.tf-members__col,.tf-reqpage__col,.tf-locpage__col,.tf-msgpage__col,.tf-plnrpage__col{display:none;border-right:0}.tf-workspace[data-pane=col1] .tf-workspace__col--1,.tf-workspace[data-pane=col2] .tf-workspace__col--2,.tf-workspace[data-pane=col3] .tf-workspace__col--3,.tf-members[data-pane=col1] .tf-members__col--1,.tf-members[data-pane=col2] .tf-members__col--2,.tf-members[data-pane=col3] .tf-members__col--3,.tf-reqpage[data-pane=col1] .tf-reqpage__col--1,.tf-reqpage[data-pane=col2] .tf-reqpage__col--2,.tf-reqpage[data-pane=col3] .tf-reqpage__col--3,.tf-locpage[data-pane=col1] .tf-locpage__col--1,.tf-locpage[data-pane=col2] .tf-locpage__col--2,.tf-msgpage[data-pane=col1] .tf-msgpage__col--1,.tf-msgpage[data-pane=col2] .tf-msgpage__col--2{display:block}.tf-workspace{min-height:calc(100dvh - 56px)}.tf-workspace__col{display:none !important}.tf-workspace__tree{display:block !important}.tf-workspace+.tf-pane-tabs{display:none !important}.tf-wsfloat .tf-viewtoggle{display:none}.tf-wsfloat__tree-actions{display:flex}.tf-wsfloat__agent{display:none !important}.tf-wsagent{display:none !important}.tf-plnrpage{min-height:calc(100dvh - 56px)}.tf-plnrpage__col--1{display:block}.tf-plnrpage__col--2{display:none !important}.tf-pane-tabs{position:sticky;bottom:0;display:flex;background:var(--surface);border-top:1px solid var(--border);z-index:10}.tf-pane-tabs button{flex:1;background:rgba(0,0,0,0);border:0;padding:12px 0;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;min-height:var(--tap-min)}.tf-pane-tabs button.active{color:var(--text);border-top:2px solid var(--accent)}}@media(min-width: 768px){.tf-pane-tabs{display:none}}.tf-theme-toggle{display:inline-flex;background:var(--elevated);border-radius:var(--radius);padding:3px;font-family:var(--font-mono);font-size:var(--text-xs)}.tf-theme-toggle button{flex:1;background:rgba(0,0,0,0);border:0;padding:6px 0;text-align:center;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.06em}.tf-theme-toggle button:hover:not(.active){color:var(--text)}.tf-theme-toggle button.active{background:var(--border-strong);color:var(--text)}.tf-theme-toggle--icons{padding:2px}.tf-theme-toggle--icons button{flex:0 0 30px;height:28px;padding:0;font-family:var(--font-sans);font-size:14px;line-height:1;letter-spacing:0;text-transform:none;display:inline-flex;align-items:center;justify-content:center}.btn,.tf-btn{--bs-btn-border-radius: var(--radius);border-radius:var(--radius);font-weight:600;font-size:var(--text-sm);padding:10px 16px;min-height:40px;line-height:1;transition:opacity var(--t-fast)}.btn:hover,.tf-btn:hover{opacity:.85}.btn-primary,.tf-btn--primary{--bs-btn-bg: var(--accent);--bs-btn-color: var(--accent-text);--bs-btn-border-color: var(--accent);--bs-btn-hover-bg: var(--accent);--bs-btn-hover-color: var(--accent-text);--bs-btn-hover-border-color: var(--accent);background:var(--accent);color:var(--accent-text);border:1px solid var(--accent)}.btn-outline-secondary,.tf-btn--secondary{--bs-btn-color: var(--text);--bs-btn-border-color: var(--border-strong);--bs-btn-hover-bg: var(--elevated);--bs-btn-hover-color: var(--text);--bs-btn-hover-border-color: var(--border-strong);background:rgba(0,0,0,0);color:var(--text);border:1px solid var(--border-strong)}.btn-link,.tf-btn--ghost{background:rgba(0,0,0,0);color:var(--text-muted);border:1px solid rgba(0,0,0,0);text-decoration:none}.tf-btn--ghost:hover{color:var(--text)}.tf-btn--danger{background:rgba(0,0,0,0);color:var(--status-block-fg);border:1px solid var(--border-strong)}.tf-btn--icon{width:40px;padding:10px}.card,.tf-card{--bs-card-bg: var(--surface);--bs-card-border-color: var(--border);--bs-card-border-radius: var(--radius);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}.tf-card{padding:var(--space-4)}.tf-card--clickable{cursor:pointer;transition:border-color var(--t-fast)}.tf-card--clickable:hover{border-color:var(--border-strong)}.tf-card__heading{font-size:var(--text-lg);font-weight:700;letter-spacing:-0.02em;line-height:var(--line-tight)}.tf-card__meta{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-sm);margin-top:var(--space-2)}.tf-card__label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2)}.tf-row{display:flex;align-items:center;gap:var(--space-3);padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:6px;color:var(--text);text-decoration:none;cursor:pointer;transition:border-color var(--t-fast)}.tf-row:hover{border-color:var(--border-strong);color:var(--text)}.tf-row__left{flex:1;min-width:0}.tf-row__right{display:flex;gap:var(--space-2);align-items:center;flex-shrink:0}.tf-row__title{font-weight:600;font-size:var(--text-md);letter-spacing:-0.01em}.tf-row__sub{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-sm);margin-top:3px}.tf-metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4)}.tf-metric__num{font-size:var(--text-num);font-weight:700;letter-spacing:-0.04em;line-height:1}.tf-metric__label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:var(--space-2)}.tf-metric--alert .tf-metric__num{color:var(--status-block-fg)}.tf-metric-grid{display:grid;grid-template-columns:repeat(2, 1fr);gap:var(--space-2);margin-bottom:var(--space-4)}@media(min-width: 768px){.tf-metric-grid{grid-template-columns:repeat(4, 1fr)}}.tf-pill{display:inline-block;padding:3px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border:1px solid}.tf-pill--done{background:var(--status-done-bg);color:var(--status-done-fg);border-color:var(--status-done-bd)}.tf-pill--prog{background:var(--status-prog-bg);color:var(--status-prog-fg);border-color:var(--status-prog-bd)}.tf-pill--block{background:var(--status-block-bg);color:var(--status-block-fg);border-color:var(--status-block-bd)}.tf-pill--pend{background:var(--status-pend-bg);color:var(--status-pend-fg);border-color:var(--status-pend-bd)}.alert{--bs-alert-border-radius: var(--radius);border-radius:var(--radius);border-width:1px;padding:14px 16px;font-size:var(--text-sm);display:flex;align-items:flex-start;gap:var(--space-3);border:1px solid}.alert .tag{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;background:rgba(0,0,0,.1);border-radius:3px;flex-shrink:0}[data-bs-theme=dark] .alert .tag{background:hsla(0,0%,100%,.1)}.alert-success{background:var(--status-done-bg);border-color:var(--status-done-bd);color:var(--status-done-fg)}.alert-danger{background:var(--status-block-bg);border-color:var(--status-block-bd);color:var(--status-block-fg)}.alert-warning{background:var(--status-prog-bg);border-color:var(--status-prog-bd);color:var(--status-prog-fg)}.form-control,.form-select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:11px 14px;font-size:var(--text-base);transition:border-color var(--t-fast)}.form-control:focus,.form-select:focus{background:var(--surface);border-color:var(--text);color:var(--text);box-shadow:none;outline:none}.form-control::placeholder,.form-select::placeholder{color:var(--text-dim)}.form-label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2)}.table{--bs-table-bg: var(--surface);--bs-table-color: var(--text);--bs-table-border-color: var(--border);--bs-table-hover-bg: var(--elevated);--bs-table-hover-color: var(--text);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.table th{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.table td{font-size:var(--text-sm);vertical-align:middle}.modal-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text)}.modal-header{border-bottom:1px solid var(--border)}.modal-footer{border-top:1px solid var(--border)}.dropdown-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);--bs-dropdown-link-color: var(--text);--bs-dropdown-link-hover-bg: var(--elevated);--bs-dropdown-link-hover-color: var(--text)}.dropdown-divider{border-color:var(--border)}.tf-empty{text-align:center;padding:48px 20px;border:1px dashed var(--border);border-radius:var(--radius-lg);background:rgba(0,0,0,0)}.tf-empty__icon{font-family:var(--font-mono);font-size:36px;opacity:.3;margin-bottom:10px;line-height:1}.tf-empty__msg{color:var(--text-muted);font-size:var(--text-md);margin-bottom:14px}.tf-skel{background:linear-gradient(90deg, var(--surface), var(--elevated), var(--surface));background-size:200% 100%;border-radius:var(--radius-sm);animation:tf-shimmer 1.5s infinite}@keyframes tf-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.tf-page-header{display:flex;justify-content:space-between;align-items:end;gap:var(--space-3);margin-bottom:var(--space-4)}.tf-page-header .tf-page-header__title{margin:0 0 4px 0}.tf-page-header .tf-page-header__sub{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-sm)}.tf-section-h{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin:var(--space-6) 0 var(--space-3)}.tf-section-h .count{color:var(--text);font-weight:600}.tf-section-h .count--alert{color:var(--status-block-fg)}.tf-inspector{display:flex;flex-direction:column;height:100%;overflow:hidden}.tf-inspector__head{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.tf-inspector__head .ttl{font-weight:700;font-size:var(--text-sm)}.tf-inspector__head .live{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--status-done-fg);display:flex;align-items:center;gap:4px}.tf-inspector__head .live::before{content:"";width:6px;height:6px;border-radius:999px;background:var(--status-done-fg);animation:tf-pulse 1.5s infinite}.tf-inspector__scroll{flex:1;overflow-y:auto}.tf-inspector__section{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.tf-inspector__section:last-child{border-bottom:0}@keyframes tf-pulse{0%,100%{opacity:1}50%{opacity:.3}}.tf-activity__item{display:grid;grid-template-columns:44px 1fr;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--text-xs);border-bottom:1px solid var(--border)}.tf-activity__item:last-child{border-bottom:0}.tf-activity__time{color:var(--text-dim);font-family:var(--font-mono)}.tf-activity__what{color:var(--text);line-height:var(--line-body)}.tf-activity__icn{display:inline-block;width:14px;text-align:center;font-family:var(--font-mono);font-weight:700}.tf-activity__icn--add{color:var(--status-done-fg)}.tf-activity__icn--upd{color:var(--status-prog-fg)}.tf-activity__icn--blk{color:var(--status-block-fg)}.tf-activity__icn--tool{color:var(--text-muted)}.tf-action-card{background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);margin-bottom:var(--space-2);max-height:1000px}.tf-action-card__head{display:flex;justify-content:space-between;gap:var(--space-2);font-size:var(--text-xs);margin-bottom:var(--space-2)}.tf-action-card__to{color:var(--text);font-family:var(--font-mono)}.tf-action-card__body{font-size:var(--text-sm);color:var(--text);margin-bottom:var(--space-2)}.tf-action-card__body p{margin:0 0 4px}.tf-action-card__actions{display:flex;gap:var(--space-2)}.tf-action-card--leaving{animation:tf-card-leave 220ms ease forwards;pointer-events:none;overflow:hidden}@keyframes tf-card-leave{to{opacity:0;transform:translateX(12px);max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0}}@media(prefers-reduced-motion: reduce){.tf-action-card--leaving{animation:none}}.tf-btn--sm{padding:6px 12px;min-height:32px;font-size:var(--text-xs)}.tf-artifacts__empty{padding:var(--space-2) 0;color:var(--text-dim);font-size:var(--text-xs)}.tf-artifacts:has(>.tf-artifact) .tf-artifacts__empty{display:none}.tf-pending__empty,.tf-activity__empty{padding:var(--space-2) 0;color:var(--text-dim);font-size:var(--text-xs)}.tf-pending:has(.tf-action-card) .tf-pending__empty{display:none}.tf-activity:has(.tf-activity__item) .tf-activity__empty{display:none}.tf-artifact{background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-3);overflow:hidden}.tf-artifact__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);background:var(--surface)}.tf-artifact__titles{display:flex;align-items:center;gap:var(--space-2);min-width:0}.tf-artifact__title{font-size:var(--text-sm);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tf-artifact__close{flex-shrink:0;background:rgba(0,0,0,0);border:0;color:var(--text-muted);font-size:18px;line-height:1;cursor:pointer;padding:0 4px}.tf-artifact__close:hover{color:var(--text)}.tf-artifact__body{padding:var(--space-3)}.tf-artifact--leaving{animation:tf-artifact-leave 200ms ease forwards;pointer-events:none}@keyframes tf-artifact-leave{to{opacity:0;transform:translateY(-6px)}}@media(prefers-reduced-motion: reduce){.tf-artifact--leaving{animation:none}}.tf-artifact-table-wrap{overflow:auto;max-height:340px}.tf-artifact-table{width:100%;font-size:var(--text-xs);border-collapse:collapse}.tf-artifact-table th,.tf-artifact-table td{padding:6px 10px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.tf-artifact-table thead th{color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.tf-artifact-table td{color:var(--text)}.tf-artifact-table tbody tr:last-child td{border-bottom:0}.tf-artifact-table.tf-pivot tbody th{color:var(--text);font-weight:600}.tf-artifact-empty{color:var(--text-dim);font-size:var(--text-xs);padding:var(--space-2)}.tf-artifact-chart{width:100%;height:300px}.tf-report__intro{font-size:var(--text-sm);color:var(--text);margin:0 0 var(--space-3)}.tf-report__block{margin-bottom:var(--space-3)}.tf-report__block:last-child{margin-bottom:0}.tf-report__block-title{font-size:var(--text-xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:var(--space-2)}.tf-artchips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.tf-artchip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:var(--text-xs);text-decoration:none;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast)}.tf-artchip:hover{border-color:var(--accent);background:var(--elevated)}.tf-artchip__kind{font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;color:var(--accent)}.tf-artchip__title{color:var(--text)}.tf-artchip__tag{font-family:var(--font-mono);font-size:10px;color:var(--text-dim)}.tf-artchip--deleted{opacity:.55;cursor:default}.tf-artchip--deleted .tf-artchip__title{text-decoration:line-through}.tf-artchip--deleted .tf-artchip__kind{color:var(--text-dim)}.tf-arttabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:var(--space-2)}.tf-arttabs:empty{display:none}.tf-arttab{max-width:170px;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text-muted);font-size:var(--text-xs);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tf-arttab:hover{color:var(--text);border-color:var(--accent)}.tf-arttab.is-active{color:var(--text);border-color:var(--accent);background:var(--elevated)}.tf-artifactview{border:1px solid var(--border);border-radius:var(--radius);background:var(--elevated);overflow:hidden}.tf-artifactview--empty,.tf-artifactview--loading{display:flex;align-items:center;gap:8px;padding:var(--space-4);color:var(--text-dim);font-size:var(--text-sm);border-style:dashed}.tf-artifactview__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);background:var(--surface)}.tf-artifactview__heading{display:flex;align-items:center;gap:var(--space-2);min-width:0}.tf-artifactview__title{font-size:var(--text-sm);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tf-artifactview__meta{font-family:var(--font-mono);font-size:10px;color:var(--text-dim)}.tf-artifactview__actions{display:flex;gap:4px;flex-shrink:0}.tf-artifactview__actions form{margin:0}.tf-artifactview__body{padding:var(--space-3);max-height:440px;overflow:auto}.tf-artifactview__error{padding:var(--space-2) var(--space-3);color:var(--status-block-fg);font-size:var(--text-xs)}.tf-badge{font-family:var(--font-mono);font-size:10px;padding:2px 6px;border-radius:999px;white-space:nowrap}.tf-badge--ok{color:var(--status-done-fg);border:1px solid var(--status-done-fg)}.tf-badge--warn{color:var(--status-block-fg);border:1px solid var(--status-block-fg)}.tf-arttab--ai{border-style:dashed}.tf-inspector__section-head{display:flex;align-items:center;justify-content:space-between}.tf-inspector__head-actions{display:flex;align-items:center;gap:var(--space-3)}.tf-inspector__link{font-size:var(--text-xs);color:var(--accent);text-decoration:none;font-family:var(--font-mono);background:none;border:0;padding:0;cursor:pointer}.tf-artlist{display:none;margin-top:var(--space-2)}.tf-artlist.is-open{display:block}.tf-artlist__rows{display:flex;flex-direction:column;gap:2px}.tf-artlist__empty{padding:var(--space-2) var(--space-3);color:var(--text-dim);font-size:var(--text-xs)}.tf-artrow{display:flex;align-items:center;gap:var(--space-2);padding:2px 2px 2px var(--space-2);border-radius:var(--radius)}.tf-artrow:hover{background:var(--elevated)}.tf-artrow.is-active{background:var(--elevated);box-shadow:inset 2px 0 0 var(--accent)}.tf-artrow__open{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-2);text-decoration:none;color:var(--text);padding:var(--space-1) 0}.tf-artrow__kind{font-family:var(--font-mono);font-size:9px;letter-spacing:.04em;color:var(--text-muted);border:1px solid var(--border);border-radius:3px;padding:0 3px;flex-shrink:0}.tf-artrow__title{font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tf-artrow__actions{display:flex;gap:0;flex-shrink:0}.tf-artrow__actions form{margin:0}.tf-iconbtn{background:none;border:0;cursor:pointer;color:var(--text-muted);font-size:13px;line-height:1;padding:4px 6px;border-radius:var(--radius)}.tf-iconbtn:hover{background:var(--border);color:var(--text)}.tf-iconbtn.is-on{color:var(--warn, #e0a000)}.tf-reportpage__head{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.tf-reportlist{padding:var(--space-2);display:flex;flex-direction:column;gap:2px}.tf-reportlist__item{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);border-radius:var(--radius);text-decoration:none;color:var(--text)}.tf-reportlist__item:hover{background:var(--elevated)}.tf-reportlist__item.is-active{background:var(--elevated);border-left:2px solid var(--accent)}.tf-reportlist__title{font-size:var(--text-sm);font-weight:600}.tf-reportlist__meta{font-size:10px;font-family:var(--font-mono);color:var(--text-muted)}.tf-reportlist__empty{padding:var(--space-3);color:var(--text-dim);font-size:var(--text-xs)}.tf-reportcanvas-frame{flex:1;min-height:0;display:flex;flex-direction:column}.tf-reportcanvas{flex:1;min-height:0;display:flex;flex-direction:column}.tf-reportcanvas--empty{padding:var(--space-6);color:var(--text-dim);font-size:var(--text-sm)}.tf-reportcanvas__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);background:var(--surface)}.tf-reportcanvas__titles{display:flex;align-items:center;gap:var(--space-2);min-width:0}.tf-reportcanvas__title{font-size:16px;font-weight:700;color:var(--text)}.tf-reportcanvas__actions{display:flex;gap:var(--space-2);flex-shrink:0}.tf-reportcanvas__actions form{margin:0}.tf-reportcanvas__body{flex:1;min-height:0;display:flex;overflow:hidden}.tf-reportgrid{flex:1;min-height:0;overflow-y:auto;display:grid;grid-template-columns:repeat(6, 1fr);grid-auto-rows:max-content;align-content:start;gap:var(--space-3);padding:var(--space-4)}.tf-reportblock{border:1px solid var(--border);border-radius:var(--radius);background:var(--elevated);overflow:hidden}.tf-reportblock--full{grid-column:span 6}.tf-reportblock--two_thirds{grid-column:span 4}.tf-reportblock--half{grid-column:span 3}.tf-reportblock--third{grid-column:span 2}.tf-reportblock__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);background:var(--surface)}.tf-reportblock__title{font-size:var(--text-sm);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tf-reportblock__menu{display:none;align-items:center;gap:4px;flex-shrink:0}.tf-reportblock__menu form{margin:0}.tf-reportblock__body{padding:var(--space-3)}.tf-reportcanvas.is-designing .tf-reportblock__menu{display:flex}.tf-designonly{display:none}.tf-reportcanvas.is-designing .tf-designonly{display:inline-flex}.tf-blockwidth{display:inline-flex}.tf-blockwidth__select{font-size:11px;padding:2px 4px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer}.tf-btn--xs{padding:2px 6px;min-height:24px;font-size:10px}@media(max-width: 767.98px){.tf-reportgrid{grid-template-columns:1fr}.tf-reportblock--full,.tf-reportblock--two_thirds,.tf-reportblock--half,.tf-reportblock--third{grid-column:span 1}}.tf-designer{display:none}.tf-reportcanvas.is-designing .tf-designer{display:flex;flex-direction:column;width:380px;flex-shrink:0;min-height:0;border-left:1px solid var(--border);background:var(--surface)}.tf-designer__head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.tf-designer__log{flex:1;min-height:0;overflow-y:auto;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.tf-designer__hint{color:var(--text-dim);font-size:var(--text-xs);margin:0 0 6px}.tf-designer__compose{display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-3);border-top:1px solid var(--border)}.tf-designer__input{flex:1;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:var(--text-sm)}@media(max-width: 991px){.tf-reportcanvas__body{flex-direction:column}.tf-reportcanvas.is-designing .tf-designer{width:auto;max-height:50vh;border-left:0;border-top:1px solid var(--border)}}.tf-modal{display:none;position:fixed;inset:0;z-index:60}.tf-modal.is-open{display:flex;align-items:center;justify-content:center}.tf-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}.tf-modal__panel{position:relative;z-index:1;width:min(420px,92vw);max-height:80vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 12px 40px rgba(0,0,0,.35)}.tf-modal__head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.tf-modal__title{font-weight:700}.tf-modal__panel--detail{width:min(920px,94vw);max-height:88vh;overflow:hidden;display:flex;flex-direction:column}.tf-modal__body{flex:1;overflow-y:auto;padding:var(--space-4)}.tf-arrange{padding:var(--space-2);display:flex;flex-direction:column;gap:2px}.tf-arrange__row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius)}.tf-arrange__row:hover{background:var(--elevated)}.tf-arrange__pos{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);width:1.5em}.tf-arrange__title{flex:1;min-width:0;font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tf-arrange__moves{display:flex;gap:2px;flex-shrink:0}.tf-arrange__moves form{margin:0}.tf-arrange__moves form.is-disabled{opacity:.3;pointer-events:none}.tf-arrange__empty{padding:var(--space-3);color:var(--text-dim);font-size:var(--text-xs)}.tf-utree{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);max-width:920px;margin:0 auto}.tf-utree__loading,.tf-utree__empty{padding:var(--space-4);color:var(--text-muted)}.tf-utree__node{display:flex;align-items:center;gap:4px;padding:3px 6px;border-radius:var(--radius)}.tf-utree__node:hover{background:var(--elevated)}.tf-utree__children{padding-left:16px}.tf-utree__children[hidden]{display:none}.tf-utree__cardloading{padding:6px 10px;color:var(--text-dim);font-size:var(--text-xs)}.tf-utree__tw{flex-shrink:0;width:16px;padding:0;border:0;background:rgba(0,0,0,0);color:var(--text-dim);cursor:pointer;text-align:center;line-height:1;font-size:var(--text-xs)}.tf-utree__tw:hover{color:var(--text)}.tf-utree__tw--leaf{cursor:default}.tf-utree__label{flex:1 1 auto;min-width:0;text-align:left;background:rgba(0,0,0,0);border:0;cursor:pointer;font:inherit;color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:1px 4px;border-radius:var(--radius-sm)}.tf-utree__label:hover{text-decoration:underline}.tf-utree__label.is-selected{background:var(--text);color:var(--bg);font-weight:600}.tf-utree__label--client{font-weight:600}.tf-utree__label--project{font-weight:500}.tf-utree__label--muted{color:var(--text-dim)}.tf-utree__label--task.is-done{text-decoration:line-through;opacity:.6}.tf-utree__count{margin-left:4px;color:var(--text-dim);font-size:var(--text-xs);font-family:var(--font-mono)}.tf-utree__status{flex-shrink:0;width:8px;height:8px;border-radius:50%;border:1px solid var(--border-strong);background:rgba(0,0,0,0)}.tf-utree__status--done{background:var(--status-done-fg);border-color:var(--status-done-fg)}.tf-utree__status--in-progress{background:var(--status-prog-fg);border-color:var(--status-prog-fg)}.tf-utree__status--blocked{background:var(--status-block-fg);border-color:var(--status-block-fg)}.tf-section-modal__rename{margin:var(--space-3) 0}.tf-section-modal__renamerow{display:flex;gap:var(--space-2);align-items:center}.tf-section-modal__renamerow .form-control{flex:1}.tf-section-modal__tasks{margin-top:var(--space-4);display:flex;flex-direction:column;gap:2px}.tf-section-modal__empty{color:var(--text-dim);padding:var(--space-2);font-size:var(--text-sm)}.tf-taskcard{padding:var(--space-3);margin:2px 0 6px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm)}.tf-taskcard__head{display:flex;align-items:center;gap:var(--space-2)}.tf-taskcard__meta{color:var(--text-muted);font-size:var(--text-xs)}.tf-taskcard__blocker{color:var(--status-block-fg)}.tf-taskcard__row{display:flex;flex-direction:column;gap:2px}.tf-taskcard__pins{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.tf-taskcard__pin{display:flex;align-items:baseline;gap:6px}.tf-taskcard__pin-who{color:var(--text-muted);font-weight:600;white-space:nowrap}.tf-taskcard__pin-text{flex:1;min-width:0}.tf-taskcard__unpin-form{margin:0}.tf-taskcard__unpin{background:rgba(0,0,0,0);border:0;color:var(--text-dim);cursor:pointer;padding:0 4px}.tf-taskcard__unpin:hover{color:var(--danger, #d9534f)}.tf-pinned{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.tf-pinned__item{padding:var(--space-2);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm)}.tf-pinned__meta{color:var(--text-muted);font-size:var(--text-xs);margin-bottom:2px}.tf-pinned__text{white-space:pre-wrap}.tf-pinned__unpin{margin-top:6px;background:rgba(0,0,0,0);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;padding:2px 8px;font-size:var(--text-xs)}.tf-pinned__unpin:hover{color:var(--text)}.tf-msgpin{margin-top:4px;display:flex;align-items:center;gap:4px;font-size:var(--text-xs)}.tf-msgpin--set{color:var(--text-muted)}.tf-msgpin--pick{opacity:.6}.tf-msgpin__task{color:var(--accent);text-decoration:none}.tf-msgpin__task:hover{text-decoration:underline}.tf-msgpin__form{margin:0;display:inline}.tf-msgpin__x{background:rgba(0,0,0,0);border:0;color:var(--text-dim);cursor:pointer;padding:0 2px}.tf-msgpin__x:hover{color:var(--danger, #d9534f)}.tf-msgpin__select{background:rgba(0,0,0,0);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--text-xs);padding:2px 6px;cursor:pointer;max-width:220px}.tf-msgpin__toggle{cursor:pointer;user-select:none;line-height:1;list-style:none}.tf-msgpin__toggle::-webkit-details-marker{display:none}.tf-msgpin--pick:not([open]) .tf-msgpin__form{display:none}.tf-msgpage__bubble:hover .tf-msgpin--pick{opacity:1}.tf-md>:first-child{margin-top:0}.tf-md>:last-child{margin-bottom:0}.tf-md p{margin:0 0 var(--space-2)}.tf-md ul,.tf-md ol{margin:0 0 var(--space-2);padding-left:1.4em}.tf-md code{font-family:var(--font-mono);font-size:.9em;background:var(--elevated);padding:1px 4px;border-radius:var(--radius-sm)}.tf-md pre{background:var(--elevated);padding:var(--space-2);border-radius:var(--radius-sm);overflow-x:auto}.tf-md pre code{background:rgba(0,0,0,0);padding:0}.tf-md blockquote{border-left:3px solid var(--border-strong);margin:0 0 var(--space-2);padding-left:var(--space-2);color:var(--text-muted)}.tf-md a{color:var(--accent)}.tf-md h1,.tf-md h2,.tf-md h3,.tf-md h4{margin:var(--space-2) 0 4px;font-size:var(--text-sm);font-weight:700}.tf-md table{border-collapse:collapse}.tf-md th,.tf-md td{border:1px solid var(--border);padding:2px 6px}.tf-tracepage__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.tf-tracepage__totals{font-size:10px;font-family:var(--font-mono);color:var(--text-muted)}.tf-tracefilters{border-bottom:1px solid var(--border)}.tf-tracefilters__toggle{list-style:none;cursor:pointer;user-select:none;display:flex;align-items:center;gap:6px;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-muted)}.tf-tracefilters__toggle::-webkit-details-marker{display:none}.tf-tracefilters__toggle::before{content:"▸";display:inline-block;transition:transform .12s}.tf-tracefilters[open] .tf-tracefilters__toggle::before{transform:rotate(90deg)}.tf-tracefilters__dot{color:var(--accent);font-size:8px}.tf-tracefilters__form{display:none;flex-wrap:wrap;gap:var(--space-2);padding:0 var(--space-3) var(--space-3)}.tf-tracefilters[open] .tf-tracefilters__form{display:flex}.tf-tracefilters__sel,.tf-tracefilters__since{padding:4px 6px;font-size:var(--text-xs);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text)}.tf-tracefilters__since{width:9rem}.tf-tracefilters__actions{display:flex;gap:var(--space-2);width:100%}.tf-tracemore{display:block;padding:var(--space-2) 0}.tf-tracemore__btn{display:block;text-align:center;padding:var(--space-2);border-radius:var(--radius);border:1px solid var(--border);background:var(--elevated);color:var(--accent);text-decoration:none;font-size:var(--text-xs);font-family:var(--font-mono)}.tf-tracemore__btn:hover{background:var(--border)}.tf-tracelist{flex:1;min-height:0;overflow-y:auto;padding:var(--space-2);display:flex;flex-direction:column;gap:2px}.tf-tracelist__empty{padding:var(--space-3);color:var(--text-dim);font-size:var(--text-xs)}.tf-traceitem{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);border-radius:var(--radius);text-decoration:none;color:var(--text);border-left:2px solid rgba(0,0,0,0)}.tf-traceitem:hover{background:var(--elevated)}.tf-traceitem.is-active{background:var(--elevated);border-left-color:var(--accent)}.tf-traceitem--err .tf-traceitem__agent{color:var(--danger, #d9534f)}.tf-traceitem__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.tf-traceitem__agent{font-size:var(--text-sm);font-weight:600;font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tf-traceitem__status{font-size:9px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;padding:1px 5px;border-radius:999px;flex-shrink:0}.tf-traceitem__status--ok{background:color-mix(in srgb, var(--ok, #3a7) 22%, transparent);color:var(--ok, #3a7)}.tf-traceitem__status--err{background:color-mix(in srgb, var(--danger, #d9534f) 22%, transparent);color:var(--danger, #d9534f)}.tf-traceitem__meta{font-size:10px;font-family:var(--font-mono);color:var(--text-muted)}.tf-tracedetail-frame{flex:1;min-height:0;display:flex;flex-direction:column}.tf-tracedetail{flex:1;min-height:0;display:flex;flex-direction:column}.tf-tracedetail--empty{padding:var(--space-6);color:var(--text-dim);font-size:var(--text-sm)}.tf-tracedetail__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);background:var(--surface)}.tf-tracedetail__titles{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex-wrap:wrap}.tf-tracedetail__title{font-size:16px;font-weight:700}.tf-tracedetail__when{font-size:10px;color:var(--text-muted);flex-shrink:0}.tf-tracedetail__body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4)}.tf-summary{margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);border-left:2px solid var(--border);background:var(--surface);border-radius:var(--radius)}.tf-summary--ai{border-left-color:var(--status-block-fg)}.tf-summary .tf-badge{margin-bottom:4px;display:inline-block}.tf-summary__text{margin:0;font-size:var(--text-sm);color:var(--text);line-height:var(--line-body)}.tf-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);background:var(--surface)}.tf-controls__field{display:flex;flex-direction:column;gap:2px}.tf-controls__label{font-size:10px;font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.tf-controls input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;font-size:var(--text-xs);color:var(--text)}.tf-controls input:focus{outline:none;border-color:var(--accent)}.btn:focus-visible,.tf-row:focus-visible,.form-control:focus-visible,.form-select:focus-visible,.tf-card--clickable:focus-visible,.nav-item:focus-visible{outline:2px solid var(--text);outline-offset:2px;border-radius:var(--radius)}.btn-close{filter:none;--bs-btn-close-bg: none;width:18px;height:18px;background:rgba(0,0,0,0);position:relative;opacity:.5;transition:opacity var(--t-fast)}.btn-close:hover{opacity:1}.btn-close::before{content:"×";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:18px;color:currentColor}.tf-skel--line{height:14px;width:100%;margin-bottom:8px}.tf-skel--half{height:14px;width:50%;margin-bottom:8px}.tf-skel--card{height:80px;margin-bottom:8px}.label-tag{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;padding:0 var(--space-2);margin-bottom:var(--space-2);display:block}.tf-tree{padding:var(--space-3) var(--space-2);font-size:var(--text-sm)}.tf-tree__head{padding:var(--space-1) 0}.tf-tree__client{display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:var(--radius);color:var(--text);cursor:default}.tf-tree__client.is-selected{background:var(--elevated);border-left:2px solid var(--accent);padding-left:6px}.tf-tree__client:hover{background:var(--elevated)}.tf-tree__tri{background:rgba(0,0,0,0);border:0;color:var(--text-dim);cursor:pointer;width:18px;padding:0;text-align:center;line-height:1;font-size:var(--text-sm)}.tf-tree__tri:hover{color:var(--text)}.tf-tree__tri--leaf{cursor:default;pointer-events:none}.tf-tree__name{flex:1;color:inherit;text-decoration:none;padding:2px 4px;border-radius:var(--radius-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tf-tree__children{padding-left:22px}.tf-tree__children[hidden]{display:none}.tf-tree__project{display:block;padding:5px 10px;border-radius:var(--radius);color:var(--text-muted);text-decoration:none;font-size:var(--text-sm);margin-bottom:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tf-tree__project:hover{background:var(--elevated);color:var(--text)}.tf-tree__project.is-selected{background:var(--elevated);color:var(--text);border-left:2px solid var(--accent);padding-left:8px;font-weight:600}.tf-tree__foot{margin-top:var(--space-4);padding:0 var(--space-2)}.tf-add-btn{display:block;width:100%;padding:8px var(--space-3);border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-muted);text-align:center;font-size:var(--text-sm);text-decoration:none;cursor:pointer;background:rgba(0,0,0,0)}.tf-add-btn:hover{color:var(--text);border-color:var(--text)}.tf-col2{padding:var(--space-3);display:flex;flex-direction:column;height:100%;min-height:0}.tf-col2__head{display:flex;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-3)}.tf-col2__head .title{font-weight:600;font-size:var(--text-md);color:var(--text);letter-spacing:-0.01em}.tf-col2__head .count{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs)}.tf-col2__list{flex:1;overflow-y:auto;min-height:0;padding-right:2px}.tf-col2__foot{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.tf-proj-card{display:block;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:6px;color:var(--text);text-decoration:none;cursor:pointer;transition:border-color var(--t-fast)}.tf-proj-card:hover{border-color:var(--border-strong);color:var(--text)}.tf-proj-card.is-selected{border-color:var(--accent);background:var(--elevated)}.tf-proj-card__head{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}.tf-proj-card__head .name{font-weight:600;font-size:var(--text-sm)}.tf-proj-card__meta{display:flex;gap:var(--space-3);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs);margin-top:4px;flex-wrap:wrap}.tf-section{margin-top:var(--space-6)}.tf-section:first-child{margin-top:var(--space-2)}.tf-section__head{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:6px 4px;margin-bottom:2px;cursor:pointer;user-select:none;border-radius:var(--radius-sm)}.tf-section__head:hover{color:var(--text)}.tf-section__head .count{color:var(--text-dim);margin-left:4px}.tf-section__head .actions{margin-left:auto;display:none;gap:6px}.tf-section__head:hover .actions{display:flex}.tf-section__body{padding-left:2px;display:flex;flex-direction:column;gap:1px;min-height:8px}.tf-section__body[hidden]{display:none}.tf-section__add{display:block;padding:6px 8px;margin-top:4px;color:var(--text-dim);font-size:var(--text-sm);cursor:pointer;background:rgba(0,0,0,0);border:0;text-align:left;text-decoration:none;border-radius:var(--radius-sm)}.tf-section__add:hover{color:var(--text);background:var(--elevated)}.tf-section__rename{flex:1 1 auto;min-width:0;margin:0;display:flex}.tf-section__rename-input{flex:1 1 auto;min-width:0;background:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:var(--radius-sm);color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;padding:1px 4px}.tf-section__rename-input:hover{border-color:var(--border-strong)}.tf-section__rename-input:focus{outline:none;border-color:var(--text);color:var(--text)}.tf-section__name{flex:1 1 auto;min-width:0}.tf-section__action{background:rgba(0,0,0,0);border:0;color:var(--text-dim);cursor:pointer;font:inherit;text-transform:inherit;letter-spacing:inherit;padding:0 2px;text-decoration:none}.tf-section__action:hover{color:var(--text)}.tf-section__action--danger:hover{color:var(--danger, #d9534f)}.tf-section__action-form{display:inline;margin:0}.tf-section-add-form{margin-top:var(--space-6)}.tf-section-add-form__input{width:100%;background:rgba(0,0,0,0);border:1px dashed var(--border-strong);border-radius:var(--radius);padding:9px 12px;color:var(--text-muted);font-size:var(--text-sm);font-family:var(--font-sans);transition:border-color var(--t-fast),color var(--t-fast)}.tf-section-add-form__input::placeholder{color:var(--text-dim)}.tf-section-add-form__input:hover{border-color:var(--text-dim)}.tf-section-add-form__input:focus{outline:none;border-style:solid;border-color:var(--text);color:var(--text)}.tf-col2__head .title--linky{text-decoration:underline dotted var(--text-dim);text-underline-offset:4px;color:inherit}.tf-col2__head .title--linky:hover{color:var(--text);text-decoration-color:var(--text)}.tf-mlist{padding:var(--space-3);display:flex;flex-direction:column;min-height:100%}.tf-mlist__head{display:flex;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-3)}.tf-mlist__head .title{font-weight:600;font-size:var(--text-md);color:var(--text)}.tf-mlist__head .count{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs)}.tf-mlist__rows{flex:1;display:flex;flex-direction:column;gap:2px;min-height:0}.tf-mlist__foot{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.tf-mpick{display:flex;align-items:center;gap:var(--space-2);padding:8px 10px;border-radius:var(--radius);color:var(--text);text-decoration:none;cursor:pointer;transition:background var(--t-fast)}.tf-mpick:hover{background:var(--elevated);color:var(--text)}.tf-mpick.is-selected{background:var(--elevated);border-left:2px solid var(--accent);padding-left:8px}.tf-mpick.is-inactive{opacity:.55}.tf-mpick__avatar{width:28px;height:28px;border-radius:50%;background:var(--border);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:var(--text-muted);flex-shrink:0}.tf-mpick__body{flex:1;min-width:0}.tf-mpick__name{font-size:var(--text-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tf-mpick__sub{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.tf-mpick__status{font-size:10px;font-family:var(--font-mono);flex-shrink:0}.tf-tabs{display:flex;gap:2px;padding:0 var(--space-3);background:var(--surface);border-bottom:1px solid var(--border);margin:0 calc(-1*var(--space-6)) var(--space-4);position:sticky;top:0;z-index:2}.tf-tabs__tab{padding:12px var(--space-3) 10px;color:var(--text-muted);text-decoration:none;font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid rgba(0,0,0,0);margin-bottom:-1px;cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast)}.tf-tabs__tab:hover:not(.is-active){color:var(--text);border-bottom-color:var(--border-strong)}.tf-tabs__tab.is-active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.tf-tabs__tab .count{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;background:var(--elevated);color:var(--text-dim);font-size:10px;letter-spacing:0}.tf-tabs__tab.is-active .count{background:var(--border-strong);color:var(--text)}.tf-leaf-list{display:flex;flex-direction:column;gap:4px}.tf-leaf-row{display:grid;grid-template-columns:110px 1fr auto;gap:var(--space-3);align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text);cursor:pointer;background:var(--surface);transition:border-color var(--t-fast),background var(--t-fast)}.tf-leaf-row:hover{border-color:var(--border-strong)}.tf-leaf-row.is-selected{border-color:var(--accent);background:var(--elevated)}.tf-leaf-row__dates{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text)}.tf-leaf-row__sub{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.tf-leaf-row__body{min-width:0}.tf-leaf-row__body .cat{font-weight:500;font-size:var(--text-sm);text-transform:capitalize}.tf-leaf-row__body .notes{font-size:var(--text-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.tf-leaf-detail{display:flex;flex-direction:column;gap:var(--space-4)}.tf-leaf-detail__head .dates{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:600;color:var(--text);margin-bottom:4px}.tf-leaf-detail__head .meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.tf-leaf-detail__head .pills{display:flex;gap:6px;margin-top:var(--space-2);flex-wrap:wrap}.tf-leaf-detail__field .lbl{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.tf-leaf-detail__field .val{font-size:var(--text-sm);line-height:var(--line-body);color:var(--text)}.tf-leaf-detail__field .val--muted{color:var(--text-muted);font-style:italic}.tf-leaf-detail__timeline .step{display:flex;gap:var(--space-2);padding:6px 0;font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-muted);border-bottom:1px solid var(--border)}.tf-leaf-detail__timeline .step:last-child{border-bottom:0}.tf-leaf-detail__timeline .step.is-current{color:var(--text)}.tf-leaf-detail__timeline .step .dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;margin-top:6px}.tf-leaf-detail__timeline .step .dot--done{background:var(--status-done-fg)}.tf-leaf-detail__timeline .step .dot--prog{background:var(--status-prog-fg)}.tf-leaf-detail__timeline .step .dot--block{background:var(--status-block-fg)}.tf-leaf-detail__timeline .step .dot--pend{background:var(--border-strong)}.tf-leaf-detail__timeline .step .body{flex:1}.tf-leaf-detail__timeline .step .who{color:var(--text-dim)}.tf-leaf-detail__actions{display:flex;flex-direction:column;gap:8px;padding-top:var(--space-3);border-top:1px solid var(--border)}.tf-leaf-detail__actions .tf-btn{width:100%;min-height:36px}.tf-checkins-tab{display:flex;flex-direction:column;gap:var(--space-3)}.tf-activity{display:flex;gap:var(--space-4);align-items:flex-start}.tf-activity__rail{display:flex;flex-direction:column;gap:2px;width:130px;flex-shrink:0}.tf-activity__subtab{padding:10px var(--space-3);color:var(--text-muted);text-decoration:none;font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;border-left:2px solid rgba(0,0,0,0);border-radius:0 var(--radius) var(--radius) 0;cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast)}.tf-activity__subtab:hover:not(.is-active){color:var(--text);background:var(--elevated)}.tf-activity__subtab.is-active{color:var(--text);border-left-color:var(--accent);background:var(--elevated);font-weight:600}.tf-activity__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-3)}.tf-activity__pager{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-2)}.tf-activity__pager .is-disabled{opacity:.4;pointer-events:none}.tf-activity__page{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim)}.tf-reqtypes{display:flex;flex-direction:column;padding:var(--space-3) 0}.tf-reqtypes__item{padding:12px var(--space-4);color:var(--text-muted);text-decoration:none;font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;border-left:2px solid rgba(0,0,0,0);cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast)}.tf-reqtypes__item:hover:not(.is-active){color:var(--text);background:var(--elevated)}.tf-reqtypes__item.is-active{color:var(--text);border-left-color:var(--accent);background:var(--elevated);font-weight:600}.tf-reqlist{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.tf-reqfilters{display:flex;align-items:center;flex-wrap:nowrap;gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--border)}.tf-reqfilters__sel,.tf-reqfilters__date{min-height:32px;padding:0 8px;font-size:var(--text-sm);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius)}.tf-reqfilters__sel{flex:0 1 auto;min-width:0}.tf-reqfilters__date{flex:0 0 auto}.tf-reqfilters__dash{flex:0 0 auto;color:var(--text-dim)}.tf-reqfilters__btn{flex:0 0 auto;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-sm);background:var(--surface);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-decoration:none;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast)}.tf-reqfilters__btn:hover{color:var(--text);border-color:var(--border-strong);background:var(--elevated)}@media(max-width: 720px){.tf-activity{flex-direction:column}.tf-activity__rail{flex-direction:row;width:auto;border-bottom:1px solid var(--border)}.tf-activity__subtab{border-left:0;border-bottom:2px solid rgba(0,0,0,0);border-radius:0}.tf-activity__subtab.is-active{border-left:0;border-bottom-color:var(--accent)}}.tf-month-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:8px var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.tf-month-nav__btn{font-family:var(--font-mono);font-size:var(--text-lg);line-height:1;color:var(--text);text-decoration:none;padding:4px 10px;border-radius:var(--radius-sm, 4px);cursor:pointer;transition:background var(--t-fast)}.tf-month-nav__btn:hover{background:var(--elevated)}.tf-month-nav__btn.is-disabled{color:var(--text-dim);cursor:default}.tf-month-nav__label{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.04em}.tf-checkin-day-list{display:flex;flex-direction:column;gap:6px}.tf-checkin-day-card{display:block;padding:10px 14px 8px;border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text);background:var(--surface);transition:border-color var(--t-fast),background var(--t-fast);cursor:pointer}.tf-checkin-day-card:hover{border-color:var(--border-strong)}.tf-checkin-day-card.is-selected{border-color:var(--accent);background:var(--elevated)}.tf-checkin-day-card__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:8px}.tf-checkin-day-card__label{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;color:var(--text)}.tf-checkin-day-card__summary{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.tf-checkin-day-card__ticks{display:flex;justify-content:space-between;margin-top:4px;font-family:var(--font-mono);font-size:9px;color:var(--text-dim);letter-spacing:.04em}.tf-timeline{position:relative;height:14px;border-radius:3px;background:linear-gradient(to right, transparent calc(25% - 1px), var(--border) 25%, transparent calc(25% + 1px), transparent calc(50% - 1px), var(--border) 50%, transparent calc(50% + 1px), transparent calc(75% - 1px), var(--border) 75%, transparent calc(75% + 1px)),var(--elevated)}.tf-timeline__segment{position:absolute;top:2px;bottom:2px;background:var(--status-done-fg);border-radius:2px;min-width:2px}.tf-timeline__segment--open{background:repeating-linear-gradient(45deg, var(--status-prog-fg) 0 4px, rgba(255, 255, 255, 0.25) 4px 8px)}.tf-checkin-detail__head{margin-bottom:var(--space-3)}.tf-checkin-detail__head .dates{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:600;color:var(--text);margin-bottom:4px}.tf-checkin-detail__head .meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.tf-checkin-detail__field{margin-top:var(--space-4)}.tf-checkin-detail__field .lbl{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-2)}.tf-checkin-session-list{display:flex;flex-direction:column;gap:4px}.tf-checkin-session{display:flex;flex-direction:column;gap:2px;padding:6px 10px;border-radius:var(--radius-sm, 4px);background:var(--elevated);font-family:var(--font-mono);font-size:var(--text-xs)}.tf-checkin-session__row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.tf-checkin-session__row .time{color:var(--text)}.tf-checkin-session__row .dur{color:var(--text-muted)}.tf-checkin-session__row .cont{color:var(--text-dim);font-style:italic;letter-spacing:.02em}.tf-checkin-session__loc{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:10px;color:var(--text-muted)}.tf-checkin-session__loc .loc{color:var(--text-muted);text-decoration:none}.tf-checkin-session__loc .loc:hover{color:var(--accent)}.tf-checkin-session__loc .arrow{color:var(--text-dim)}.tf-checkin-event-list{display:flex;flex-direction:column;gap:6px}.tf-checkin-event{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm, 4px);background:var(--surface)}.tf-checkin-event__head{display:flex;align-items:center;gap:var(--space-2);margin-bottom:4px}.tf-checkin-event__head .time{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text)}.tf-checkin-event__loc{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text);text-decoration:none}.tf-checkin-event__loc:hover{color:var(--accent)}.tf-checkin-event__loc .ext{color:var(--text-dim);margin-left:2px}.tf-checkin-event__meta{font-family:var(--font-mono);font-size:10px;color:var(--text-dim);margin-top:2px;text-transform:lowercase}.tf-mdetail{padding:var(--space-6)}.tf-mdetail__head{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap}.tf-mdetail__head .ttl{font-size:var(--text-2xl);font-weight:700;letter-spacing:-0.02em;margin:0}.tf-mdetail__head .actions{margin-left:auto;display:flex;gap:var(--space-2)}.tf-mdetail__pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:var(--space-4)}.tf-mdetail__sub{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-sm);margin-bottom:var(--space-6)}.tf-mdetail__section{margin-bottom:var(--space-6)}.tf-mdetail__section .label-tag{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2);display:block}.tf-mdetail__fields{display:grid;grid-template-columns:1fr;gap:var(--space-3)}@media(min-width: 768px){.tf-mdetail__fields{grid-template-columns:1fr 1fr}}.tf-mdetail__field .lbl{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.tf-mdetail__field .val{font-size:var(--text-base)}.tf-mdetail__field .val--muted{color:var(--text-muted);font-style:italic}.tf-mdetail__people{display:flex;flex-wrap:wrap;gap:6px}.tf-mdetail__people .chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 6px;border:1px solid var(--border);border-radius:999px;font-size:var(--text-sm);color:var(--text);text-decoration:none}.tf-mdetail__people .chip .a{width:18px;height:18px;border-radius:50%;background:var(--elevated);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}.tf-mdetail__people .chip:hover{border-color:var(--text-dim)}.tf-mdetail__danger{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border)}.tf-mctx{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.tf-mctx__section .label-tag{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2);display:block}.tf-msg-snip{padding:8px 10px;border-left:2px solid var(--border-strong);background:var(--elevated);border-radius:0 var(--radius) var(--radius) 0;margin-bottom:6px;font-size:var(--text-sm)}.tf-msg-snip__head{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);margin-bottom:4px}.tf-msg-snip__head .who{color:var(--text-muted)}.tf-msg-snip__body{color:var(--text);line-height:var(--line-body);word-break:break-word}.tf-msg-snip__body--out{color:var(--text-muted);font-style:italic}.sortable-ghost{opacity:.35}.sortable-chosen{background:var(--elevated)}.sortable-drag .tf-task-row__handle{opacity:1}.tf-task-row{display:flex;align-items:center;gap:var(--space-2);padding:6px 8px;border-radius:var(--radius);color:var(--text);text-decoration:none;font-size:var(--text-sm);margin-bottom:1px}.tf-task-row:hover{background:var(--elevated);color:var(--text)}.tf-task-row.is-selected{background:var(--elevated);border-left:2px solid var(--accent);padding-left:6px}.tf-task-row.is-done .tf-task-row__title{text-decoration:line-through;opacity:.6}.tf-task-row__handle{flex-shrink:0;color:var(--text-dim);cursor:grab;font-size:var(--text-sm);line-height:1;opacity:0;transition:opacity var(--t-fast)}.tf-task-row:hover .tf-task-row__handle{opacity:1}.tf-task-row__handle:active{cursor:grabbing}.tf-task-row__dot{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid var(--border-strong);background:rgba(0,0,0,0);flex-shrink:0}.tf-task-row__dot--done{background:var(--status-done-fg);border-color:var(--status-done-fg)}.tf-task-row__dot--prog{background:var(--status-prog-fg);border-color:var(--status-prog-fg)}.tf-task-row__dot--block{background:var(--status-block-fg);border-color:var(--status-block-fg)}.tf-task-row__title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tf-task-row__due{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);flex-shrink:0}.tf-task-row__due.is-overdue{color:var(--status-block-fg)}.tf-detail{padding:var(--space-6);max-width:920px}.tf-detail__head{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:4px;flex-wrap:wrap}.tf-detail__head .ttl{font-size:var(--text-2xl);font-weight:700;letter-spacing:-0.02em;color:var(--text);margin:0}.tf-detail__head .actions{margin-left:auto;display:flex;gap:var(--space-2)}.tf-detail__meta{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-sm);margin-bottom:var(--space-6)}.tf-detail__grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}@media(min-width: 768px){.tf-detail__grid{grid-template-columns:1fr 240px}}.tf-detail__field{margin-bottom:var(--space-4)}.tf-detail__field .label-tag{padding:0;margin-bottom:4px}.tf-detail__field .value{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--line-body);color:var(--text)}.tf-detail__field .value--muted{color:var(--text-muted)}.tf-detail__sidebar .tf-detail__field{margin-bottom:var(--space-4)}.tf-detail__danger{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.tf-stat-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--space-2);margin-bottom:var(--space-4)}.tf-stat-grid .stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3)}.tf-stat-grid .stat .n{font-size:var(--text-2xl);font-weight:700;line-height:1}.tf-stat-grid .stat .l{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px}.tf-loc-list{display:flex;flex-direction:column;gap:2px}.tf-loc-row{display:flex;align-items:center;gap:var(--space-2);padding:4px 0;font-size:var(--text-sm)}.tf-loc-row .kind{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.tf-member-list{display:flex;flex-direction:column;gap:2px}.tf-member-row{display:flex;align-items:center;gap:var(--space-2);padding:4px 0;font-size:var(--text-sm)}.tf-member-row .avatar{width:22px;height:22px;border-radius:50%;background:var(--elevated);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);flex-shrink:0}.tf-member-row .role{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.tf-member-row .tf-member-row__rm-form{display:contents}.tf-member-row .tf-member-row__rm-btn{background:rgba(0,0,0,0);border:0;padding:0 4px;font-size:14px;color:var(--text-dim);cursor:pointer;line-height:1}.tf-member-row .tf-member-row__rm-btn:hover{color:var(--status-block-fg)}.tf-member-row .tf-member-row__level-form{display:contents}.tf-member-row .tf-member-row__level-select{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;background:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:4px;padding:2px 18px 2px 6px;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg, transparent 50%, currentColor 50%),linear-gradient(135deg, currentColor 50%, transparent 50%);background-position:calc(100% - 9px) 50%,calc(100% - 5px) 50%;background-size:4px 4px,4px 4px;background-repeat:no-repeat}.tf-member-row .tf-member-row__level-select:hover{border-color:var(--border, rgba(255, 255, 255, 0.12));color:var(--text)}.tf-member-row .tf-member-row__level-select:focus{outline:none;border-color:var(--accent);color:var(--text)}.tf-member-add{display:flex;gap:6px;margin-top:var(--space-3)}.tf-member-add .form-select{flex:1;min-width:0;font-size:var(--text-sm);padding:6px 10px}.tf-member-add .tf-btn{padding:6px 12px;font-size:var(--text-sm);min-height:auto;flex-shrink:0}.tf-member-hint{font-size:var(--text-xs);color:var(--text-dim);margin-top:var(--space-2)}.tf-member-allset{font-size:var(--text-xs);color:var(--text-dim);margin-top:var(--space-3);font-style:italic}.is-hidden{display:none !important}.tf-mlist__search{position:relative;margin-bottom:var(--space-2)}.tf-mlist__search-input{width:100%;padding:6px 28px 6px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:var(--text-sm);font-family:inherit}.tf-mlist__search-input::placeholder{color:var(--text-dim)}.tf-mlist__search-input:focus{outline:none;border-color:var(--accent)}.tf-mlist__search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:20px;height:20px;padding:0;border:0;background:rgba(0,0,0,0);color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer}.tf-mlist__search-clear:hover{color:var(--text)}.tf-mlist__empty{padding:var(--space-4) var(--space-3);color:var(--text-muted);font-size:var(--text-sm);text-align:center}.tf-typeahead{position:relative}.tf-typeahead__chips{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);min-height:36px;cursor:text}.tf-typeahead__chips:focus-within{border-color:var(--accent)}.tf-typeahead__chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 8px;background:var(--accent);color:var(--bg);border-radius:999px;font-size:var(--text-sm);line-height:1.4}.tf-typeahead__chip .x{background:rgba(0,0,0,0);border:0;color:var(--bg);cursor:pointer;padding:0 4px;font-size:14px;line-height:1}.tf-typeahead__chip .x:hover{opacity:.75}.tf-typeahead__input{flex:1;min-width:120px;border:0;background:rgba(0,0,0,0);color:var(--text);font-size:var(--text-sm);font-family:inherit;outline:none;padding:2px 4px}.tf-typeahead__dropdown{position:absolute;top:calc(100% + 2px);left:0;right:0;max-height:240px;overflow-y:auto;margin:0;padding:4px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);box-shadow:0 4px 12px rgba(0,0,0,.15);list-style:none;z-index:10}.tf-typeahead__option{display:flex;align-items:center;padding:6px 8px;border-radius:var(--radius);cursor:pointer;font-size:var(--text-sm);color:var(--text)}.tf-typeahead__option.is-active,.tf-typeahead__option:hover{background:var(--elevated)}.tf-typeahead__option .a{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--elevated);font-family:var(--font-mono);font-size:10px;color:var(--text-muted);margin-right:8px;flex-shrink:0}.tf-typeahead__option.is-active .a{background:var(--bg)}.tf-typeahead__empty{padding:8px;color:var(--text-muted);font-size:var(--text-sm);text-align:center}.tf-msgpage__list{height:100%;font-size:var(--text-sm);display:flex;flex-direction:column}.tf-msgpage__list-head{flex-shrink:0;padding:var(--space-4) var(--space-3);background:var(--surface);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:var(--space-3)}.tf-msgpage__list-title{display:flex;align-items:baseline;justify-content:space-between}.tf-msgpage__list-title .title{font-weight:600;color:var(--text)}.tf-msgpage__list-title .count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim)}.tf-msgpage__search{position:relative;display:flex;align-items:center}.tf-msgpage__search-input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:6px 28px 6px 10px;font-size:var(--text-sm);color:var(--text)}.tf-msgpage__search-input:focus{outline:none;border-color:var(--accent)}.tf-msgpage__search-clear{position:absolute;right:6px;background:rgba(0,0,0,0);border:0;color:var(--text-dim);cursor:pointer;font-size:16px;line-height:1;padding:2px 6px}.tf-msgpage__search-clear:hover{color:var(--text)}.tf-msgpage__list-body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-2) 0}.tf-msgpage__member{display:flex;align-items:center;gap:var(--space-2);padding:8px var(--space-3);color:var(--text);text-decoration:none;border-left:2px solid rgba(0,0,0,0)}.tf-msgpage__member:hover{background:var(--elevated);color:var(--text)}.tf-msgpage__member.is-selected{background:var(--elevated);border-left-color:var(--accent)}.tf-msgpage__member.is-empty .tf-msgpage__member-count{color:var(--text-dim)}.tf-msgpage__member-avatar{width:28px;height:28px;border-radius:50%;background:var(--elevated);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);flex-shrink:0}.tf-msgpage__member-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.tf-msgpage__member-name{font-size:var(--text-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tf-msgpage__member-sub{font-size:var(--text-xs);color:var(--text-dim)}.tf-msgpage__member-count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);flex-shrink:0;min-width:24px;text-align:right}.tf-msgpage__list-empty,.tf-msgpage__filter-empty{padding:var(--space-4) var(--space-3);color:var(--text-dim);font-size:var(--text-sm);text-align:center}.tf-msgpage__chat{height:100%;display:flex;flex-direction:column}.tf-msgpage__chat--compact{height:calc(100dvh - 56px - 216px);min-height:360px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.tf-reqpage__col--3 .tf-msgpage__chat--compact{height:calc(100dvh - 56px)}.tf-msgpage__chat-head{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--surface);border-bottom:1px solid var(--border)}.tf-msgpage__chat-head>div:first-child{display:flex;flex-direction:column;gap:4px}.tf-msgpage__chat-head .ttl{margin:0;font-size:var(--text-xl);font-weight:700;color:var(--text)}.tf-msgpage__chat-head .actions{display:flex;gap:var(--space-2)}.tf-msgpage__chat-sub{font-size:var(--text-sm);color:var(--text-muted)}.tf-msgpage__chat-body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:6px}.tf-msgpage__chat-loader{align-self:center;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);padding:var(--space-2) var(--space-3);background:var(--elevated);border-radius:var(--radius)}.tf-msgpage__chat-empty{margin:auto;color:var(--text-dim);font-size:var(--text-sm)}.tf-msgpage__date-sep{align-self:center;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);padding:4px 12px;background:var(--elevated);border-radius:999px;text-transform:uppercase;letter-spacing:.06em}.tf-msgpage__chat-compose{flex-shrink:0;padding:var(--space-3) var(--space-5);background:var(--surface);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.tf-msgpage__compose-form{display:flex;gap:var(--space-2)}.tf-msgpage__compose-input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;font-size:var(--text-sm);color:var(--text)}.tf-msgpage__compose-input:focus{outline:none;border-color:var(--accent)}.tf-msgpage__compose-hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim)}.tf-msgpage__bubble{display:flex;max-width:75%}.tf-msgpage__bubble-body{padding:8px 12px;border-radius:var(--radius-lg);font-size:var(--text-sm);line-height:var(--line-body);display:flex;flex-direction:column;gap:4px}.tf-msgpage__bubble-text{white-space:pre-wrap;word-wrap:break-word}.tf-msgpage__bubble-text p{margin:0}.tf-msgpage__bubble-meta{font-family:var(--font-mono);font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.tf-msgpage__typing{display:flex;align-items:center;gap:4px;padding:2px 0}.tf-typing-dot{width:6px;height:6px;border-radius:999px;background:var(--text-muted);animation:tf-typing 1.2s infinite ease-in-out}.tf-typing-dot:nth-child(2){animation-delay:.15s}.tf-typing-dot:nth-child(3){animation-delay:.3s}@keyframes tf-typing{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@media(prefers-reduced-motion: reduce){.tf-typing-dot{animation:none;opacity:.6}}.tf-msgpage__bubble--incoming{align-self:flex-start}.tf-msgpage__bubble--incoming .tf-msgpage__bubble-body{background:var(--elevated);color:var(--text);border-bottom-left-radius:var(--radius-sm)}.tf-msgpage__bubble--outgoing{align-self:flex-end}.tf-msgpage__bubble--outgoing .tf-msgpage__bubble-body{background:var(--accent);color:var(--accent-text);border-bottom-right-radius:var(--radius-sm)}.tf-msgpage__bubble--outgoing .tf-msgpage__bubble-meta{color:var(--accent-text);opacity:.7}.tf-msgpage__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--space-3);color:var(--text-dim);padding:var(--space-6);text-align:center}.tf-msgpage__empty-icon{font-size:48px;opacity:.4;line-height:1}.tf-msgpage__empty-msg{font-size:var(--text-sm)}.tf-locpage__tree{height:100%;font-size:var(--text-sm);display:flex;flex-direction:column}.tf-locpage__tree-head{flex-shrink:0;padding:var(--space-4) var(--space-3) var(--space-3);background:var(--surface);border-bottom:1px solid var(--border)}.tf-locpage__tree-title{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-3)}.tf-locpage__tree-title .title{font-weight:600;color:var(--text)}.tf-locpage__tree-title .count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim)}.tf-locpage__search{position:relative;display:flex;align-items:center}.tf-locpage__search-input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:6px 28px 6px 10px;font-size:var(--text-sm);color:var(--text)}.tf-locpage__search-input:focus{outline:none;border-color:var(--accent)}.tf-locpage__search-clear{position:absolute;right:6px;background:rgba(0,0,0,0);border:0;color:var(--text-dim);cursor:pointer;font-size:16px;line-height:1;padding:2px 6px}.tf-locpage__search-clear:hover{color:var(--text)}.tf-locpage__tree-body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-3)}.tf-locpage__group{margin-bottom:var(--space-3)}.tf-locpage__group-head,.tf-locpage__subgroup-head{display:flex;align-items:center;gap:6px;padding:6px 8px;cursor:pointer;user-select:none;border-radius:var(--radius)}.tf-locpage__group-head .tri,.tf-locpage__subgroup-head .tri{color:var(--text-dim);width:14px;text-align:center;font-size:var(--text-xs)}.tf-locpage__group-head .kind-label,.tf-locpage__group-head .project-label,.tf-locpage__subgroup-head .kind-label,.tf-locpage__subgroup-head .project-label{flex:1;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.tf-locpage__group-head .client-label,.tf-locpage__subgroup-head .client-label{flex:1;font-weight:600;color:var(--text);font-size:var(--text-sm)}.tf-locpage__group-head .group-count,.tf-locpage__subgroup-head .group-count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim)}.tf-locpage__group-head:hover,.tf-locpage__subgroup-head:hover{background:var(--elevated)}.tf-locpage__group-body{padding:2px 0 2px 18px;display:flex;flex-direction:column;gap:2px}.tf-locpage__subgroup{margin-top:4px}.tf-locpage__subgroup-body{padding:2px 0 4px 18px;display:flex;flex-direction:column;gap:2px}.tf-locpage__item{display:flex;align-items:baseline;gap:var(--space-2);padding:6px 8px;border-radius:var(--radius);color:var(--text);text-decoration:none;line-height:1.3}.tf-locpage__item:hover{background:var(--elevated);color:var(--text)}.tf-locpage__item.is-selected{background:var(--elevated);border-left:2px solid var(--accent);padding-left:6px}.tf-locpage__item.is-inactive .tf-locpage__item-name{color:var(--text-muted);text-decoration:line-through}.tf-locpage__item-name{flex:1;min-width:0;font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tf-locpage__item-kind{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.tf-locpage__item-count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);padding:0 4px;border-radius:var(--radius-sm);flex-shrink:0}.tf-locpage__filter-empty,.tf-locpage__tree-empty{padding:var(--space-3);color:var(--text-dim);font-size:var(--text-sm);text-align:center}.tf-locpage__tree-foot{flex-shrink:0;padding:var(--space-3);background:var(--surface);border-top:1px solid var(--border)}.tf-locpage__foot-buttons{display:flex;gap:6px}.tf-locpage__foot-buttons .tf-add-btn{flex:1}.tf-locpage__reclassify-drawer{margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px dashed var(--border)}.tf-locpage__reclassify-drawer .tf-locpage__reclassify-form{display:flex;flex-direction:column;gap:var(--space-2)}.tf-locpage__reclassify-drawer .tf-locpage__reclassify-form .field{display:flex;flex-direction:column}.tf-locpage__reclassify-drawer .tf-locpage__reclassify-form .field label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.tf-locpage__reclassify-drawer .tf-locpage__reclassify-form .form-control{max-width:100%;font-size:var(--text-sm)}.tf-locpage__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100dvh - 56px - var(--space-7, 32px));gap:var(--space-3);color:var(--text-dim);padding:var(--space-6);text-align:center}.tf-locpage__empty-icon{font-size:48px;opacity:.4;line-height:1}.tf-locpage__empty-msg{font-size:var(--text-sm)}.tf-locpage__map{margin-bottom:var(--space-5);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.tf-locpage__map-canvas{height:280px;width:100%}.tf-locpage__section{margin-top:var(--space-5)}.tf-locpage__hint{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-3)}.tf-locpage__tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:var(--space-4)}.tf-locpage__tabs .tab{padding:8px 14px;color:var(--text-muted);text-decoration:none;font-size:var(--text-sm);border-bottom:2px solid rgba(0,0,0,0);margin-bottom:-1px}.tf-locpage__tabs .tab:hover{color:var(--text)}.tf-locpage__tabs .tab.is-active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.tf-daily{font-size:var(--text-sm)}.tf-daily__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.tf-daily__head .total{color:var(--text-dim)}.tf-daily__row{display:grid;grid-template-columns:110px 1fr 130px;gap:var(--space-3);align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}.tf-daily__row:last-child{border-bottom:0}.tf-daily__row.is-today .tf-daily__date .dow{color:var(--accent)}.tf-daily__date{display:flex;align-items:baseline;gap:6px}.tf-daily__date .dow{font-weight:600;color:var(--text);width:28px}.tf-daily__date .md{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs)}.tf-daily__date .badge{font-family:var(--font-mono);font-size:10px;padding:1px 6px;border-radius:999px;background:var(--accent);color:var(--bg);text-transform:uppercase;letter-spacing:.04em}.tf-daily__bar{height:8px;background:var(--elevated);border-radius:4px;overflow:hidden}.tf-daily__bar .bar-fill{height:100%;background:var(--accent);border-radius:4px;transition:width 200ms ease}.tf-daily__counts{text-align:right;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.tf-daily__counts .in{color:var(--text)}.tf-daily__counts .out{color:var(--text-muted)}.tf-daily__counts .sep{color:var(--text-dim);margin:0 4px}.tf-daily__counts .zero{color:var(--text-dim)}.tf-locpage__bydate-form{display:flex;align-items:end;gap:var(--space-2);margin-bottom:var(--space-3)}.tf-locpage__bydate-label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.tf-locpage__bydate-form .form-control{max-width:200px}.tf-locpage__bydate-summary{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-3)}.tf-attn-tag{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;margin-right:8px;border-radius:var(--radius-sm);border:1px solid;vertical-align:2px;white-space:nowrap}.tf-attn-tag--overdue{background:var(--status-block-bg);color:var(--status-block-fg);border-color:var(--status-block-bd)}.tf-attn-tag--blocked{background:var(--status-block-bg);color:var(--status-block-fg);border-color:var(--status-block-bd)}.tf-attn-tag--pending{background:var(--status-prog-bg);color:var(--status-prog-fg);border-color:var(--status-prog-bd)}.tf-attn-tag--late{background:var(--status-prog-bg);color:var(--status-prog-fg);border-color:var(--status-prog-bd)}.tf-tempo{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--space-2);margin-bottom:var(--space-4)}.tf-tempo__stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4)}.tf-tempo__num{font-size:var(--text-2xl);font-weight:700;letter-spacing:-0.03em;line-height:1.1}.tf-tempo__label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px}.tf-tempo__stat.tf-tempo--ahead .tf-tempo__num{color:var(--status-done-fg)}.tf-tempo__stat.tf-tempo--behind .tf-tempo__num{color:var(--status-block-fg)}.tf-inbox{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);text-decoration:none;font-size:var(--text-md);font-family:var(--font-mono);margin-bottom:var(--space-4);transition:border-color var(--t-fast)}.tf-inbox--zero{color:var(--text-muted)}.tf-inbox--alert{border-color:var(--status-prog-bd);background:var(--status-prog-bg);color:var(--status-prog-fg)}.tf-inbox--alert:hover{border-color:var(--status-prog-fg);color:var(--status-prog-fg)}.tf-inbox__arrow{font-size:var(--text-lg)}@media(max-width: 575.98px){.tf-tempo{grid-template-columns:1fr}}.tf-worktree{--wt-paper: #f6f4ef;--wt-text: #1c1c1e;--wt-muted: rgba(0, 0, 0, .52);--wt-dim: rgba(0, 0, 0, .34);--wt-faint: rgba(0, 0, 0, .16);--wt-border: rgba(0, 0, 0, .09);--wt-rail: rgba(0, 0, 0, .13);--wt-elevated: rgba(0, 0, 0, .045);--wt-accent: #5b63d6;--wt-cursor: rgba(0, 0, 0, .045)}[data-bs-theme=dark] .tf-worktree{--wt-paper: #0b0b0d;--wt-text: rgba(255, 255, 255, .92);--wt-muted: rgba(255, 255, 255, .54);--wt-dim: rgba(255, 255, 255, .34);--wt-faint: rgba(255, 255, 255, .16);--wt-border: rgba(255, 255, 255, .08);--wt-rail: rgba(255, 255, 255, .11);--wt-elevated: rgba(255, 255, 255, .05);--wt-accent: #9aa6f5;--wt-cursor: rgba(255, 255, 255, .05)}.tf-worktree{display:flex;flex-direction:column;min-width:0;height:calc(100dvh - 56px);background:var(--wt-paper);color:var(--wt-text)}#worktree_focus{display:flex;flex-direction:column;flex:1;min-height:0}.tf-worktree__bar{display:flex;align-items:center;gap:var(--space-3);padding:7px var(--space-4) 6px;border-bottom:1px solid var(--wt-border);background:rgba(0,0,0,0);flex-shrink:0;width:100%;max-width:920px;margin-inline:auto}.tf-worktree__tools{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.tf-worktree__search{background:var(--wt-elevated);border:1px solid var(--wt-border);border-radius:7px;padding:5px 10px;color:var(--wt-text);font-size:var(--text-sm);width:150px;max-width:40vw;transition:border-color var(--t-fast),width var(--t-base)}.tf-worktree__search::placeholder{color:var(--wt-dim)}.tf-worktree__search:focus{outline:none;border-color:var(--wt-accent);width:200px}.tf-worktree__tool{border:1px solid var(--wt-border);background:rgba(0,0,0,0);color:var(--wt-muted);font-size:var(--text-xs);padding:5px 10px;border-radius:7px;cursor:pointer;white-space:nowrap;line-height:1;transition:color var(--t-fast),background var(--t-fast),border-color var(--t-fast)}.tf-worktree__tool:hover{background:var(--wt-elevated);color:var(--wt-text)}.tf-worktree__tool.is-active{background:var(--wt-accent);color:#fff;border-color:var(--wt-accent)}.tf-worktree__tool--icon{width:30px;padding-inline:0;font-size:var(--text-base);line-height:1}.tf-worktree__menu{position:relative;display:inline-flex}.tf-worktree__menu.is-open>.tf-worktree__tool{color:var(--text);background:var(--elevated)}.tf-worktree__menu-list{position:absolute;top:calc(100% + 4px);right:0;z-index:30;min-width:168px;padding:4px;display:flex;flex-direction:column;gap:1px;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow)}.tf-worktree__menu-list[hidden]{display:none}.tf-worktree__menu-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:7px 10px;border:0;background:rgba(0,0,0,0);color:var(--text);font:inherit;font-size:var(--text-sm);text-decoration:none;border-radius:var(--radius-sm);cursor:pointer}.tf-worktree__menu-item:hover{background:var(--elevated)}.tf-worktree__menu-icon{flex-shrink:0;width:16px;text-align:center;color:var(--text-dim);font-size:var(--text-sm);line-height:1}.tf-worktree__menu-sep{height:1px;margin:4px 6px;background:var(--border)}.tf-crumbs{min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.tf-crumbs::-webkit-scrollbar{display:none}.tf-crumbs__list{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0;font-size:var(--text-sm);white-space:nowrap}.tf-crumbs__item{display:inline-flex;align-items:center;gap:6px}.tf-crumbs__link{color:var(--wt-muted);text-decoration:none;padding:1px 2px;border-radius:var(--radius-sm);transition:color var(--t-fast)}.tf-crumbs__link:hover{color:var(--wt-text)}.tf-crumbs__sep{color:var(--wt-faint)}.tf-crumbs__current{font-family:var(--font-title);font-weight:500;font-size:var(--text-lg);letter-spacing:-0.01em;color:var(--wt-text);padding:0 2px;overflow:hidden;text-overflow:ellipsis;max-width:42vw}.tf-crumbs__roll{margin-left:auto;flex-shrink:0;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--wt-dim);display:inline-flex;align-items:center;gap:8px}.tf-crumbs__roll .blk{color:var(--status-block-fg)}.tf-worktree .tf-utree{flex:1;min-height:0;overflow:auto;width:100%;position:relative;padding-top:var(--space-2)}.tf-utree__inner{position:relative}.tf-utree__node--filtered{display:none !important}.tf-utree__children.tf-utree__node--filtered{display:none !important}.tf-utree__children[data-filter-open]{display:block !important}.tf-utree__actions{flex-shrink:0;display:inline-flex;align-items:center;gap:2px;opacity:0;transition:opacity var(--t-fast)}.tf-utree__node:hover>.tf-utree__actions,.tf-utree__node.is-active>.tf-utree__actions,.tf-utree__actions:focus-within{opacity:1}.tf-utree__focus,.tf-utree__add{flex-shrink:0;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:rgba(0,0,0,0);color:var(--wt-dim);font-size:var(--text-sm);line-height:1;text-decoration:none;cursor:pointer;border-radius:5px;transition:color var(--t-fast),background var(--t-fast)}.tf-utree__focus:hover,.tf-utree__add:hover{color:var(--wt-text);background:var(--wt-elevated)}.tf-utree__addwrap{position:relative;flex-shrink:0;display:inline-flex;align-items:center}.tf-utree__actions:has(.tf-utree__addwrap.is-open){opacity:1}@media(pointer: coarse){.tf-utree__actions{opacity:1}}.tf-utree__addmenu{position:absolute;top:calc(100% + 4px);left:0;z-index:30;min-width:120px;padding:4px;display:flex;flex-direction:column;gap:2px;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow)}.tf-utree__addmenu[hidden]{display:none}.tf-utree__addmenuitem{display:block;width:100%;text-align:left;padding:6px 8px;border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text);text-decoration:none}.tf-utree__addmenuitem:hover{background:var(--elevated)}.tf-worktree .tf-utree__node{position:relative;z-index:1;gap:9px;min-height:33px;padding:0 8px;border-radius:9px;border-left:0;background:rgba(0,0,0,0)}.tf-worktree .tf-utree__node:hover{background:var(--wt-elevated)}.tf-utree__tw{flex-shrink:0;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:rgba(0,0,0,0);cursor:pointer;transition:transform var(--t-fast)}.tf-utree__tw:hover{transform:scale(1.14)}.tf-utree__caret{width:0;height:0;border-left:5px solid currentColor;border-top:4px solid rgba(0,0,0,0);border-bottom:4px solid rgba(0,0,0,0);color:var(--wt-dim);transition:transform var(--t-fast),color var(--t-fast)}.tf-utree__node[data-expanded=true]>.tf-utree__tw .tf-utree__caret{transform:rotate(90deg)}.tf-utree__node:hover>.tf-utree__tw .tf-utree__caret,.tf-utree__node.is-active>.tf-utree__tw .tf-utree__caret{color:var(--wt-muted)}.tf-worktree .tf-utree__label{color:var(--wt-muted);transition:color var(--t-fast)}.tf-worktree .tf-utree__label:hover{text-decoration:none}.tf-utree__node:hover>.tf-utree__label,.tf-utree__node.is-active>.tf-utree__label{color:var(--wt-text)}.tf-worktree .tf-utree__label.is-selected{background:rgba(0,0,0,0);color:var(--wt-text);font-weight:600}.tf-utree__meta{flex-shrink:0;display:inline-flex;align-items:center;gap:11px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--wt-dim);opacity:.72;transition:opacity var(--t-fast)}.tf-utree__node:hover>.tf-utree__meta,.tf-utree__node.is-active>.tf-utree__meta{opacity:1}.tf-utree__health{display:inline-flex;align-items:center;gap:8px}.tf-utree__frac{color:var(--wt-dim)}.tf-utree__prog{width:46px;height:3px;border-radius:2px;overflow:hidden;background:color-mix(in srgb, var(--wt-text) 11%, transparent);opacity:0;transition:opacity var(--t-base)}.tf-utree__prog>i{display:block;height:100%;background:var(--status-done-fg);border-radius:2px}.tf-utree__node:hover>.tf-utree__meta .tf-utree__prog,.tf-utree__node.is-active>.tf-utree__meta .tf-utree__prog{opacity:1}.tf-utree__flag{color:var(--status-block-fg)}.tf-utree__who{color:var(--wt-dim);letter-spacing:.04em}.tf-utree__due{color:var(--wt-dim)}.tf-utree__due--over{color:var(--status-block-fg)}.tf-worktree .tf-utree__children{position:relative;padding-left:20px}.tf-worktree .tf-utree__children::before{content:"";position:absolute;left:15px;top:1px;bottom:6px;width:1.5px;border-radius:1px;background:var(--wt-rail);transition:background var(--t-base)}.tf-worktree .tf-utree__children.is-trail::before{background:color-mix(in srgb, var(--wt-accent) 62%, var(--wt-rail))}.tf-utree__cursor{position:absolute;left:4px;right:4px;top:0;height:33px;border-radius:9px;pointer-events:none;z-index:0;background:var(--wt-cursor);box-shadow:inset 2px 0 0 var(--wt-accent);transform:translateY(0);transition:transform .2s cubic-bezier(0.22, 0.8, 0.26, 1),height .2s ease,opacity .2s ease}.tf-utree__cursor[hidden]{display:none}@media(prefers-reduced-motion: reduce){.tf-utree__cursor,.tf-utree__caret{transition:none}}.tf-worktree .tf-utree__empty{text-align:center;padding:56px 16px;color:var(--wt-dim)}.tf-utree__empty-h{font-family:var(--font-title);font-weight:500;font-size:var(--text-xl);letter-spacing:-0.01em;color:var(--wt-text)}.tf-utree__empty-sub{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--wt-dim);margin-top:6px}.tf-utree__empty-cta{display:inline-block;margin-top:18px;font-family:var(--font-mono);font-size:var(--text-xs);color:#fff;background:var(--wt-accent);border-radius:8px;padding:8px 16px;text-decoration:none;transition:filter var(--t-fast)}.tf-utree__empty-cta:hover{filter:brightness(1.08)}.tf-worktree .tf-utree__cardloading{margin-left:20px;padding:8px 10px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--wt-dim)}.tf-kbdhelp{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb, var(--bg) 64%, transparent);backdrop-filter:blur(4px)}.tf-kbdhelp__panel{width:min(560px,92vw);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:24px 26px}.tf-kbdhelp__h{font-family:var(--font-mono);font-size:var(--text-base);font-weight:600;margin:0 0 18px}.tf-kbdhelp__grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px}.tf-kbdhelp h4{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);margin:0 0 8px}.tf-kbdhelp__row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:3px 0;font-size:var(--text-sm);color:var(--text-muted)}.tf-kbdhelp kbd{font-family:var(--font-mono);font-size:11px;background:var(--elevated);border:1px solid var(--border);border-radius:4px;padding:1px 6px;margin-left:3px;color:var(--text)}.tf-worktree .tf-utree__label--client{font-size:var(--text-base);font-weight:600;letter-spacing:-0.005em}.tf-worktree .tf-utree__label--project{font-size:var(--text-sm);font-weight:560}.tf-worktree .tf-utree__label--section{font-size:var(--text-sm);font-weight:500}.tf-worktree .tf-utree__label--task{font-size:var(--text-sm);font-weight:450}.tf-worktree .tf-utree__label--muted{color:var(--wt-dim);font-weight:450}.tf-worktree .tf-utree__label--task.is-done{text-decoration:line-through;color:var(--wt-dim)}.tf-utree__statuswrap{position:relative;flex-shrink:0;width:18px;display:inline-flex;align-items:center;justify-content:center}.tf-utree__statusdot{width:11px;height:11px;padding:0;border-radius:50%;border:1.5px solid var(--wt-dim);background:rgba(0,0,0,0);cursor:pointer;box-sizing:border-box;transition:box-shadow var(--t-fast),background var(--t-fast),border-color var(--t-fast)}.tf-utree__statusdot:hover{box-shadow:0 0 0 3px var(--wt-elevated)}.tf-utree__statusdot.tf-utree__status--done{background:var(--status-done-fg);border-color:var(--status-done-fg)}.tf-utree__statusdot.tf-utree__status--in-progress{background:var(--status-prog-fg);border-color:var(--status-prog-fg)}.tf-utree__statusdot.tf-utree__status--blocked{background:rgba(0,0,0,0);border-color:var(--status-block-fg);box-shadow:0 0 0 2px color-mix(in srgb, var(--status-block-fg) 22%, transparent)}.tf-utree__statusdot.tf-utree__status--pending{background:rgba(0,0,0,0);border-color:var(--wt-dim)}.tf-utree__statusmenu{position:absolute;top:calc(100% + 4px);left:0;z-index:30;min-width:140px;padding:4px;display:flex;flex-direction:column;gap:2px;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow)}.tf-utree__statusmenu[hidden]{display:none}.tf-utree__statusform{margin:0}.tf-utree__statusitem{display:flex;align-items:center;gap:6px;width:100%;text-align:left;background:rgba(0,0,0,0);border:0;border-radius:var(--radius-sm);padding:6px 8px;font:inherit;font-size:var(--text-sm);color:var(--text);text-decoration:none;cursor:pointer}.tf-utree__statusitem:hover{background:var(--elevated)}.tf-utree__statusitem.is-current{font-weight:600}.tf-utree__statusitem::before{content:"";width:9px;height:9px;border-radius:50%;border:1px solid var(--border-strong);flex-shrink:0}.tf-utree__statusitem--pending::before{background:rgba(0,0,0,0)}.tf-utree__statusitem--in-progress::before{background:var(--status-prog-fg);border-color:var(--status-prog-fg)}.tf-utree__statusitem--done::before{background:var(--status-done-fg);border-color:var(--status-done-fg)}.tf-utree__statusitem--blocked::before{background:var(--status-block-fg);border-color:var(--status-block-fg)}@media(max-width: 767.98px){.tf-worktree{min-height:calc(100dvh - 56px)}.tf-worktree__bar{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.tf-crumbs{flex:1}.tf-crumbs__current{max-width:50vw}.tf-worktree__search{width:120px}.tf-worktree__tool{padding:5px 8px;font-size:var(--text-xs)}.tf-worktree .tf-wsagent{display:none !important}.tf-worktree__tool[data-action~="workspace-agent#toggle"]{display:none}}@media(min-width: 1024px){.tf-worktree[data-agent-state=open]{display:grid;grid-template-columns:minmax(0, 2fr) minmax(380px, 1fr);align-items:start;height:calc(100dvh - 56px);overflow:hidden;gap:var(--space-3);width:100%;max-width:1440px;margin-inline:auto;transition:grid-template-columns var(--t-base) ease-out}.tf-worktree[data-agent-state=open][data-agent-pane=tree-major]{grid-template-columns:minmax(0, 2fr) minmax(380px, 1fr)}.tf-worktree[data-agent-state=open][data-agent-pane=chat-major]{grid-template-columns:minmax(380px, 1fr) minmax(0, 2fr)}.tf-worktree[data-agent-state=open]>#worktree_focus{min-width:0;display:flex;flex-direction:column;height:calc(100dvh - 56px)}.tf-worktree[data-agent-state=open]>turbo-cable-stream-source{display:none}.tf-worktree[data-agent-state=open] .tf-worktree__bar{max-width:none}.tf-worktree[data-agent-state=open] .tf-utree{max-width:none}.tf-worktree[data-agent-state=open] .tf-wsagent{position:static;top:auto;right:auto;bottom:auto;width:auto;max-width:none;transform:none;box-shadow:none;border-left:1px solid var(--border);height:calc(100dvh - 56px);position:sticky;top:56px}.tf-worktree[data-agent-state=open] .tf-utree{flex:1;min-height:0;overflow-y:auto}}@media(max-width: 1023.98px){.tf-worktree[data-agent-state=open]{display:flex;flex-direction:column}.tf-worktree .tf-wsagent{position:fixed;top:56px;right:0;bottom:0;width:360px;max-width:92vw;transform:translateX(100%);transition:transform var(--t-base) ease-out;box-shadow:-4px 0 24px rgba(0,0,0,.28)}.tf-worktree[data-agent-state=open] .tf-wsagent{transform:none}}
