.tdx-root{--tdx-pad-x:28px;--tdx-row-gap:4px;--tdx-radius-md:10px;--tdx-radius-lg:14px;--tdx-radius-pill:999px;--tdx-transition:.18s cubic-bezier(.4,0,.2,1);--tdx-success:#10b981;--tdx-warning:#f59e0b;--tdx-danger:#ef4444;--tdx-info:#3b82f6;background:var(--wh-surface);font-family:var(--wh-font,"Open Sans",sans-serif);color:var(--wh-text);flex-direction:column;height:100%;min-height:0;display:flex}.tdx-header{border-bottom:1px solid var(--wh-border-subtle);background:var(--wh-surface);z-index:10;justify-content:space-between;align-items:center;padding:14px 18px 14px 14px;display:flex;position:sticky;top:0}.tdx-header-left,.tdx-header-right{align-items:center;gap:6px;display:flex}.tdx-icon-btn{cursor:pointer;color:var(--wh-text-muted);transition:background var(--tdx-transition),color var(--tdx-transition),border-color var(--tdx-transition);background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.tdx-icon-btn:hover{background:var(--wh-surface-hover);color:var(--wh-text)}.tdx-eyebrow{color:var(--wh-text-muted);letter-spacing:.2px;user-select:none;font-size:12px;font-weight:600}.tdx-btn{border:1px solid var(--wh-border);background:var(--wh-surface);color:var(--wh-text);font:600 13px/1 var(--wh-font);cursor:pointer;transition:all var(--tdx-transition);border-radius:8px;align-items:center;gap:6px;height:32px;padding:0 12px;display:inline-flex}.tdx-btn:hover{background:var(--wh-surface-hover);border-color:var(--wh-border-strong)}.tdx-btn--primary{background:var(--wh-indigo);border-color:var(--wh-indigo);color:var(--wh-text-inverse,#fff);box-shadow:0 1px 2px #0000000a,0 6px 14px var(--wh-indigo-shadow,#2563eb2e)}.tdx-btn--primary:hover{background:var(--wh-indigo-hover);border-color:var(--wh-indigo-hover)}.tdx-btn:disabled,.tdx-btn[aria-disabled=true]{opacity:.55;cursor:default}.tdx-tabs{padding:0 var(--tdx-pad-x);border-bottom:1px solid var(--wh-border-subtle);background:var(--wh-surface);gap:2px;display:flex;position:relative}.tdx-tab{cursor:pointer;font:600 13.5px/1 var(--wh-font);color:var(--wh-text-muted);letter-spacing:.1px;transition:color var(--tdx-transition);background:0 0;border:none;align-items:center;gap:8px;margin-right:18px;padding:14px 4px;display:inline-flex;position:relative}.tdx-tab:hover{color:var(--wh-text-secondary)}.tdx-tab--active{color:var(--wh-text)}.tdx-tab:after{content:"";background:var(--wh-indigo);transform-origin:50%;transition:transform var(--tdx-transition);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.tdx-tab--active:after{transform:scaleX(1)}.tdx-tab-count{border-radius:var(--tdx-radius-pill);background:var(--wh-bg-secondary);color:var(--wh-text-muted);font:600 11px/1 var(--wh-font);justify-content:center;align-items:center;min-width:20px;height:18px;padding:0 6px;display:inline-flex}.tdx-tab--active .tdx-tab-count{background:var(--wh-indigo-muted);color:var(--wh-indigo)}.tdx-body{background:var(--wh-surface);flex-direction:column;flex:1;min-height:0;display:flex}.tdx-scroll{padding:24px var(--tdx-pad-x)88px;flex:1;overflow-y:auto}.tdx-panel-fade{animation:.22s cubic-bezier(.4,0,.2,1) tdx-fade}@keyframes tdx-fade{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}.tdx-chip-row{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.tdx-chip{border-radius:var(--tdx-radius-pill);font:600 12px/1 var(--wh-font);white-space:nowrap;letter-spacing:.1px;border:1px solid #0000;align-items:center;gap:6px;height:24px;padding:0 10px;display:inline-flex}.tdx-chip-dot{border-radius:50%;width:6px;height:6px;display:inline-block}.tdx-chip--neutral{background:var(--wh-bg-secondary);color:var(--wh-text-secondary)}.tdx-chip--success{color:#047857;background:#10b9811a}.tdx-chip--warning{color:#b45309;background:#f59e0b1f}.tdx-chip--danger{color:#b91c1c;background:#ef44441a}.tdx-chip--info{background:var(--wh-indigo-muted);color:var(--wh-indigo)}[data-theme=dark] .tdx-chip--success{color:#4ade80;background:#10b98129}[data-theme=dark] .tdx-chip--warning{color:#fbbf24;background:#f59e0b2e}[data-theme=dark] .tdx-chip--danger{color:#f87171;background:#ef44442e}[data-theme=dark] .tdx-chip--info{background:var(--wh-indigo-muted);color:var(--wh-indigo-light)}.tdx-title{letter-spacing:-.02em;color:var(--wh-text);margin:0 0 12px;font-size:26px;font-weight:700;line-height:1.18}.tdx-title--done{color:var(--wh-text-muted);text-decoration:line-through}.tdx-description{color:var(--wh-text-secondary);white-space:pre-wrap;word-break:break-word;margin:0 0 24px;font-size:14.5px;line-height:1.65}.tdx-properties{border-top:1px solid var(--wh-border-subtle);margin:0 0 28px}.tdx-prop{border-bottom:1px solid var(--wh-border-subtle);align-items:center;gap:14px;min-height:42px;padding:4px 0;display:flex}.tdx-prop-label{color:var(--wh-text-muted);font:500 13px/1 var(--wh-font);flex-shrink:0;align-items:center;gap:8px;width:138px;display:inline-flex}.tdx-prop-label-icon{color:var(--wh-text-muted);justify-content:center;align-items:center;width:16px;display:inline-flex}.tdx-prop-value{font:500 13.5px/1.4 var(--wh-font);color:var(--wh-text);flex:1;align-items:center;gap:8px;min-width:0;display:flex}.tdx-prop-value--muted{color:var(--wh-text-muted)}.tdx-prop-value--danger{color:var(--tdx-danger)}.tdx-prop-avatar{background:var(--wh-indigo);color:#fff;font:700 10px/1 var(--wh-font);letter-spacing:.2px;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.tdx-section{margin-bottom:24px}.tdx-section-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.tdx-section-title{font:700 13px/1 var(--wh-font);color:var(--wh-text);letter-spacing:.1px;align-items:center;gap:8px;display:inline-flex}.tdx-section-counter{font:500 12px/1 var(--wh-font);color:var(--wh-text-muted)}.tdx-att-list{flex-direction:column;gap:6px;display:flex}.tdx-att-item{background:var(--wh-bg);border:1px solid var(--wh-border-subtle);border-radius:var(--tdx-radius-md);cursor:pointer;transition:all var(--tdx-transition);align-items:center;gap:12px;padding:10px 12px;display:flex}.tdx-att-item:hover{border-color:var(--wh-border);background:var(--wh-surface-hover);transform:translateY(-1px)}.tdx-att-icon{background:var(--wh-indigo-muted);color:var(--wh-indigo);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.tdx-att-name{font:500 13.5px/1.3 var(--wh-font);color:var(--wh-text);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tdx-att-actions{opacity:0;transition:opacity var(--tdx-transition);align-items:center;gap:2px;display:flex}.tdx-att-item:hover .tdx-att-actions{opacity:1}.tdx-att-empty{text-align:center;background:var(--wh-bg);border:1px dashed var(--wh-border);border-radius:var(--tdx-radius-md);font:500 13px/1.5 var(--wh-font);color:var(--wh-text-muted);padding:28px 16px}.tdx-progress-track{background:var(--wh-bg-secondary);border-radius:4px;height:4px;margin-bottom:18px;position:relative;overflow:hidden}.tdx-progress-fill{background:linear-gradient(90deg,var(--wh-indigo)0%,var(--tdx-success)100%);border-radius:inherit;transition:width .32s cubic-bezier(.4,0,.2,1);position:absolute;inset:0 auto 0 0}.tdx-subtask-add{gap:8px;margin-bottom:16px;display:flex}.tdx-input{border:1px solid var(--wh-border);border-radius:var(--tdx-radius-md);background:var(--wh-surface);color:var(--wh-text);font:500 13.5px/1 var(--wh-font);transition:border-color var(--tdx-transition),box-shadow var(--tdx-transition);outline:none;flex:1;height:38px;padding:0 12px}.tdx-input::placeholder{color:var(--wh-text-muted)}.tdx-input:focus{border-color:var(--wh-indigo);box-shadow:0 0 0 3px var(--wh-indigo-muted)}.tdx-iconbtn-primary{border-radius:var(--tdx-radius-md);background:var(--wh-indigo);color:#fff;cursor:pointer;transition:background var(--tdx-transition);border:none;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.tdx-iconbtn-primary:hover{background:var(--wh-indigo-hover)}.tdx-iconbtn-primary:disabled{opacity:.45;cursor:default}.tdx-st-list{flex-direction:column;gap:2px;display:flex}.tdx-st-item{border-radius:var(--tdx-radius-md);cursor:pointer;transition:background var(--tdx-transition);align-items:center;gap:12px;padding:8px 10px;display:flex}.tdx-st-item:hover{background:var(--wh-surface-hover)}.tdx-st-checkbox{border:1.5px solid var(--wh-border-strong);color:#fff;transition:all var(--tdx-transition);background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.tdx-st-checkbox--done{background:var(--tdx-success);border-color:var(--tdx-success)}.tdx-st-title{font:500 14.5px/1.3 var(--wh-font);color:var(--wh-text);word-break:break-word;flex:1}.tdx-st-title--done{color:var(--wh-text-muted);text-decoration:line-through}.tdx-st-delete{cursor:pointer;color:var(--tdx-danger);opacity:0;transition:opacity var(--tdx-transition),background var(--tdx-transition);background:0 0;border:none;border-radius:6px;padding:4px}.tdx-st-item:hover .tdx-st-delete{opacity:1}.tdx-st-delete:hover{background:#ef44441a}.tdx-empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:48px 24px 32px;display:flex}.tdx-empty-glyph{background:var(--wh-bg-secondary);color:var(--wh-text-muted);border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:6px;display:inline-flex}.tdx-empty-title{font:600 15px/1.3 var(--wh-font);color:var(--wh-text)}.tdx-empty-desc{font:500 13px/1.55 var(--wh-font);color:var(--wh-text-muted);max-width:280px}.tdx-comments-scroll{padding:16px var(--tdx-pad-x)8px;flex-direction:column;flex:1;gap:14px;display:flex;overflow-y:auto}.tdx-day-divider{font:600 11px/1 var(--wh-font);color:var(--wh-text-muted);letter-spacing:.5px;text-transform:uppercase;align-items:center;gap:12px;margin:8px 0 2px;display:flex}.tdx-day-divider:before,.tdx-day-divider:after{content:"";background:var(--wh-border-subtle);flex:1;height:1px}.tdx-comment{gap:12px;display:flex}.tdx-comment-avatar{background:var(--wh-indigo);color:#fff;font:700 11px/1 var(--wh-font);letter-spacing:.3px;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.tdx-comment-body{flex:1;min-width:0}.tdx-comment-meta{align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.tdx-comment-author{font:600 13px/1 var(--wh-font);color:var(--wh-text)}.tdx-comment-time{font:500 11.5px/1 var(--wh-font);color:var(--wh-text-muted)}.tdx-comment-bubble{background:var(--wh-bg);border:1px solid var(--wh-border-subtle);color:var(--wh-text-secondary);font:500 14px/1.55 var(--wh-font);white-space:pre-wrap;word-break:break-word;border-radius:4px 14px 14px;padding:10px 14px}.tdx-composer{padding:14px var(--tdx-pad-x);background:var(--wh-surface);border-top:1px solid var(--wh-border-subtle);align-items:flex-end;gap:10px;display:flex}.tdx-composer textarea{border:1px solid var(--wh-border);background:var(--wh-bg);color:var(--wh-text);font:500 13.5px/1.45 var(--wh-font);resize:none;transition:border-color var(--tdx-transition),box-shadow var(--tdx-transition);box-sizing:border-box;border-radius:12px;outline:none;flex:1;min-height:40px;max-height:120px;padding:10px 14px}.tdx-composer textarea::placeholder{color:var(--wh-text-muted)}.tdx-composer textarea:focus{border-color:var(--wh-indigo);box-shadow:0 0 0 3px var(--wh-indigo-muted);background:var(--wh-surface)}.tdx-audit{border-top:1px solid var(--wh-border-subtle);justify-content:space-between;align-items:center;margin:12px 0 0;padding:16px 0 0;display:flex}.tdx-audit-left{font:500 12.5px/1.4 var(--wh-font);color:var(--wh-text-muted);align-items:center;gap:10px;display:inline-flex}.tdx-audit-avatar{background:var(--wh-bg-secondary);color:var(--wh-text-secondary);font:700 10px/1 var(--wh-font);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.tdx-audit strong{color:var(--wh-text-secondary);font-weight:600}.tdx-btn--danger-ghost{color:var(--tdx-danger);background:0 0;border-color:#0000}.tdx-btn--danger-ghost:hover{background:#ef444414;border-color:#ef44442e}[data-theme=dark] .tdx-btn--danger-ghost:hover{background:#ef444424}@media (prefers-reduced-motion:reduce){.tdx-tab:after,.tdx-att-item,.tdx-st-item,.tdx-icon-btn,.tdx-btn,.tdx-progress-fill,.tdx-panel-fade{transition-duration:.01ms!important;animation:none!important}}