/* 页 5 我的项目（tt-pj-*）。纸卡、分类栏、状态页签、空态都用 vendor/page-projects.css 与 discovery-tabs.css 的现网类名，
   这里只做三件事：补 vendor 没拷的 site-stack 网格；把四栏任务卡改成无封面的三栏行；工具条右侧搜索、行内菜单与改名。 */

/* vendor 未拷 sunlit/site.css，.site-stack 的网格在这里补（同现网 display:grid） */
body[data-page="projects"] .tt-pj.site-stack { display: grid; }
body[data-page="projects"] .projects-primary .tt-pj-new { height: 34px; padding: 0 var(--b-sp-4); font-size: var(--b-fs-13); }

/* ── 工具条：左状态页签（现网 .projects-tabs），右搜索 ── */
.tt-pj-searchbox { position: relative; display: flex; align-items: center; width: 232px; color: var(--b-text-3); }
.tt-pj-searchbox svg { position: absolute; left: 12px; width: 15px; height: 15px; pointer-events: none; }
.tt-pj-search.field { height: 36px; padding: 0 var(--b-sp-3) 0 34px; font-size: var(--b-fs-13); }
.tt-pj-search::-webkit-search-cancel-button { -webkit-appearance: none; width: 14px; height: 14px; cursor: pointer; background: var(--b-text-3); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5.5 5.5 9 9m0-9-9 9' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat; }

/* ── 行：现网 .project-card 去掉封面与报酬栏，留「正文｜进度刻度｜更多」 ── */
body[data-page="projects"] .project-card.tt-pj-row { grid-template-columns: minmax(0, 1fr) 176px 32px; gap: 24px; padding: 18px 16px 18px 24px; }
body[data-page="projects"] .tt-pj-row.is-menu-open { z-index: 5; }
.tt-pj-head { display: flex; align-items: center; gap: 10px; min-width: 0; }
body[data-page="projects"] .tt-pj-head h2 { min-width: 0; overflow: hidden; font-size: var(--b-fs-17); font-weight: 600; line-height: 1.5; letter-spacing: 0; text-overflow: ellipsis; white-space: nowrap; }
.tt-pj-link { color: inherit; text-decoration: none; }
/* 整行可点：标题链接的伪元素铺满卡片；「更多」与菜单压在它上面 */
.tt-pj-link::before { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.tt-pj-link:focus-visible { outline: none; }
.tt-pj-link:focus-visible::before { outline: 2px solid var(--b-focus); outline-offset: 2px; }
/* 状态徽标：同一形状，只靠墨色深浅与一枚圆点区分；黄不做状态色，绿只给「已完成」 */
.pill.tt-pj-state { flex: none; gap: 5px; height: 22px; padding: 0 var(--b-sp-2); font-size: var(--b-fs-12); font-weight: 600; color: var(--b-text-2); background: var(--b-neutral-tint); }
.pill.tt-pj-state[data-s="active"] { color: var(--b-text-1); }
.pill.tt-pj-state[data-s="active"]::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.pill.tt-pj-state[data-s="done"] { color: var(--b-ok); background: var(--b-ok-tint); }
.pill.tt-pj-state[data-s="archived"] { color: var(--b-text-3); background: transparent; box-shadow: inset 0 0 0 1px var(--b-line-strong); }
body[data-page="projects"] .tt-pj-sub { margin-top: 3px; font-variant-numeric: tabular-nums; }
.tt-pj-sub b { font-weight: 600; color: var(--b-text-1); }
.tt-pj-row[data-status="archived"] .tt-pj-head h2 { color: var(--b-text-2); }

/* 进度刻度：草稿数必问项、进行中数任务；墨色不用黄（黄不做状态色） */
.tt-pj-meter { display: grid; gap: 8px; padding-left: 24px; border-left: 1px solid var(--b-line); }
.tt-pj-meter-label { font-size: var(--b-fs-12); line-height: 1.4; color: var(--b-text-3); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tt-pj-ticks { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 3px; }
.tt-pj-ticks i { height: 4px; border-radius: 2px; background: var(--b-line-strong); }
.tt-pj-ticks i.is-on { background: var(--b-text-2); }
.tt-pj-row[data-status="done"] .tt-pj-ticks i.is-on { background: var(--b-ok); }
.tt-pj-row[data-status="archived"] .tt-pj-ticks i.is-on { background: var(--b-text-3); }

/* ── 更多菜单：纸（不做玻璃），挂在行右上 ── */
.tt-pj-actions { position: relative; z-index: 3; align-self: center; justify-self: end; }
.tt-pj-more svg { width: 18px; height: 18px; fill: currentColor; }
.tt-pj-more[aria-expanded="true"] { background: var(--b-neutral-tint); color: var(--b-text-1); }
.tt-pj-more:focus-visible, .tt-pj-filter:focus-visible { outline: 2px solid var(--b-focus); outline-offset: 2px; }
.tt-pj-more:active { transform: scale(.94); }
/* 按下整行：轻轻下沉 1px（点「更多」时不算） */
body[data-page="projects"] .tt-pj-row:active:not(:has(.tt-pj-actions:active, .tt-pj-renaming)) { transform: translateY(1px); transition-duration: 80ms; }
.tt-pj-row.is-leaving { pointer-events: none; }
.tt-pj-menu { position: absolute; top: calc(100% + 6px); right: 0; z-index: 4; display: grid; min-width: 152px; padding: 6px; border-radius: var(--b-radius-inner); background: var(--b-bg-card); box-shadow: inset 0 0 0 1px var(--b-line), inset 0 1px 0 var(--b-card-edge), 0 18px 36px -14px var(--b-card-shadow-far); animation: tt-pj-pop 140ms cubic-bezier(.22, 1, .36, 1) both; transform-origin: top right; }
.tt-pj-menu > button { display: block; width: 100%; padding: 8px 12px; border-radius: 8px; text-align: left; font-size: var(--b-fs-13); color: var(--b-text-1); }
.tt-pj-menu > button:hover, .tt-pj-menu > button:focus { background: var(--b-neutral-tint); outline: none; }
.tt-pj-menu > button:active { background: var(--b-line-strong); }
.tt-pj-menu > button.is-danger { color: var(--b-danger); }
.tt-pj-menu.is-confirm { width: 264px; padding: 14px 14px 12px; gap: 12px; }
.tt-pj-menu.is-confirm p { font-size: var(--b-fs-13); line-height: 1.6; color: var(--b-text-1); }
.tt-pj-menu-actions { display: flex; justify-content: flex-end; gap: 8px; }
.btn.tt-pj-danger { color: var(--b-on-media); background: var(--b-danger); }
:root[data-theme="dark"] .btn.tt-pj-danger { color: var(--b-on-primary); }
@keyframes tt-pj-pop { from { opacity: 0; transform: translateY(-4px) scale(.98); } }

/* ── 行内改名 ── */
/* 改名不撑高行：输入框与标题同一基线、同一左边，上下各吃回 3px */
.tt-pj-renaming { position: relative; z-index: 3; display: flex; align-items: center; gap: 8px; min-width: 0; flex: 1; margin: -3px 0 -3px -10px; }
.tt-pj-rename.field { height: 31px; max-width: 360px; padding: 0 9px; font-size: var(--b-fs-17); font-weight: 600; }
.tt-pj-renaming .btn-sm { height: 30px; }
.tt-pj-row.is-renaming .tt-pj-state { display: none; }

/* ── 列表尾：弱化的「找团团开新项目」入口，不抢「新建项目」的黄 ── */
.tt-pj-tail { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 56px; border-radius: var(--b-radius-card); font-size: var(--b-fs-13); color: var(--b-text-3); box-shadow: inset 0 0 0 1px var(--b-line); transition: background-color 160ms ease, color 160ms ease; }
.tt-pj-tail span { font-size: 15px; line-height: 1; transition: transform 200ms ease; }
.tt-pj-tail:hover { color: var(--b-text-1); background: var(--b-neutral-tint); }
.tt-pj-tail:hover span { transform: translateX(2px); }
.tt-pj-tail:active { transform: translateY(1px); }
.tt-pj-tail:focus-visible { outline: 2px solid var(--b-focus); outline-offset: 2px; }

/* ── 空态与「任务」页签说明 ── */
body[data-page="projects"] .tt-pj-empty { min-height: 280px; gap: 10px; }
body[data-page="projects"] .tt-pj-empty h2 { font-size: var(--b-fs-17); font-weight: 600; }
body[data-page="projects"] .tt-pj-empty p { font-size: var(--b-fs-13); color: var(--b-text-3); }
body[data-page="projects"] .tt-pj-empty .projects-state-mark { width: 52px; height: 52px; border-radius: 16px; font-size: 22px; color: var(--b-text-2); }
body[data-page="projects"] .tt-pj-empty .projects-state-mark svg { width: 22px; height: 22px; }
body[data-page="projects"] .tt-pj-empty .btn { margin-top: 6px; }
.tt-pj-note { padding: var(--b-sp-6) 0; font-size: var(--b-fs-13); color: var(--b-text-3); }

@media (prefers-reduced-motion: reduce) { .tt-pj-menu { animation: none; } }
