.projects-shell{width:85%;margin:0 auto;padding:40px 0 96px}@media (max-width: 768px){.projects-shell{width:92%;padding-top:24px!important}}body.has-global-user-dock .projects-shell{padding-top:88px!important}.projects-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:30px}.projects-head h1{margin:0;font-size:var(--fs-large-title);font-weight:640;letter-spacing:-0.02em;color:var(--portal-ink)}.projects-head p{margin:5px 0 0;color:var(--portal-muted);font-size:var(--fs-callout)}.projects-new{flex:none;border:0;border-radius:980px;padding:9px 17px;background:var(--accent-solid);color:var(--on-solid);font:inherit;font-size:var(--fs-callout);font-weight:590;cursor:pointer;transition:opacity 0.15s ease}.projects-new:hover{opacity:0.85}.projects-new:active{opacity:0.7}.projects-state{padding:72px 0;text-align:center;color:var(--portal-muted);font-size:var(--fs-callout)}.projects-tabs{display:inline-flex;gap:2px;margin:0 0 var(--sp-6);padding:3px;border-radius:var(--r-pill);background:var(--fill-active)}.projects-tabs button{border:0;padding:var(--sp-1) var(--sp-4);border-radius:var(--r-pill);background:transparent;font:inherit;font-size:var(--fs-callout);color:var(--portal-muted);cursor:pointer}.projects-tabs button.is-on{background:var(--surface);color:var(--portal-ink);font-weight:590;box-shadow:var(--shadow-1)}.projects-tab-count{margin-left:var(--sp-1);font-size:var(--fs-caption1);color:var(--portal-muted)}body[data-projects-tab=team] #projectsGrid,body[data-projects-tab=team] #projectsState{display:none!important}body[data-projects-tab=team] #projectsCount{visibility:hidden}body:not([data-projects-tab=team]) .projects-team{display:none}.projects-team-desc,.projects-team-empty{margin:0 0 var(--sp-6);color:var(--portal-muted);font-size:var(--fs-callout)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:32px 24px;align-items:start}.project-card{position:relative;min-width:0}.project-thumbs{position:relative;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:1px;aspect-ratio:4 / 3;border-radius:var(--r-lg);overflow:hidden;background:var(--bg-canvas);outline:1px solid var(--line-soft);outline-offset:-1px;transition:transform 0.22s cubic-bezier(0.32,0.72,0,1),box-shadow 0.22s ease}.project-thumbs:hover{transform:translateY(-3px);box-shadow:var(--shadow-3)}.project-thumbs:active{transform:translateY(-1px)}.project-thumbs .hp-cell{overflow:hidden;background:var(--bg-canvas);min-width:0;min-height:0}.project-thumbs .hp-cell.empty{background:var(--bg-canvas)}.project-thumbs .hp-cell img{width:100%;height:100%;object-fit:cover;display:block}.project-more{position:absolute;top:8px;right:8px;width:30px;height:var(--h-md);display:grid;place-items:center;border:0;border-radius:50%;cursor:pointer;padding:0;background:rgba(0,0,0,0.42);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:0 1px 4px rgba(0,0,0,0.24);color:var(--on-dark);opacity:0;transform:scale(0.9);transition:opacity 0.16s ease,transform 0.16s ease,background 0.15s ease}.project-more svg{fill:currentColor;display:block}.project-card:hover .project-more,.project-more:focus-visible,.project-more.is-open{opacity:1;transform:scale(1)}.project-more:hover{background:rgba(0,0,0,0.58)}@media (hover: none){.project-more{opacity:1;transform:scale(1)}}.project-info{padding:11px 3px 0}.project-title{display:block;color:var(--portal-ink);text-decoration:none;font-size:var(--fs-headline);font-weight:590;letter-spacing:-0.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-title:hover{text-decoration:underline;text-underline-offset:2px}.project-rename-input{width:100%;border:0;border-radius:var(--r-sm);padding:2px 6px;margin:-2px -6px;font:inherit;font-size:var(--fs-headline);font-weight:590;letter-spacing:-0.01em;color:var(--portal-ink);background:var(--surface);outline:2px solid var(--accent-line-on);box-sizing:border-box}.project-meta{display:block;margin-top:2px;color:var(--portal-muted);font-size:var(--fs-body)}.project-menu{position:fixed;z-index:200;min-width:168px;padding:5px;border-radius:var(--r-lg);background:var(--vibrancy-bg-strong);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);box-shadow:var(--shadow-2),inset 0 0 0 0.5px var(--line);opacity:0;transform:scale(0.96) translateY(-4px);transform-origin:top right;transition:opacity 0.14s ease,transform 0.14s cubic-bezier(0.32,0.72,0,1);pointer-events:none}.project-menu.is-open{opacity:1;transform:none;pointer-events:auto}.project-menu button{display:flex;align-items:center;gap:9px;width:100%;padding:7px 9px;border:0;background:transparent;border-radius:var(--r-sm);cursor:pointer;font:inherit;font-size:var(--fs-callout);color:var(--portal-ink);text-align:left}.project-menu button:hover,.project-menu button:focus-visible{background:var(--accent-solid);color:var(--on-solid);outline:none}.project-menu button.danger{color:var(--destructive-ink)}.project-menu button.danger:hover,.project-menu button.danger:focus-visible{background:var(--destructive-ink);color:var(--on-solid)}.project-menu hr{margin:5px 7px;border:0;border-top:0.5px solid var(--line-solid-mild)}.project-menu svg{flex:none;opacity:0.85;fill:currentColor}@media (prefers-reduced-motion: reduce){.project-thumbs,.project-more,.project-menu{transition:none}.project-thumbs:hover{transform:none}}

.project-thumbs[data-preview-count="1"]{grid-template-columns:1fr;grid-template-rows:1fr}.project-thumbs[data-preview-count="2"]{grid-template-rows:1fr}.project-thumbs[data-preview-count="3"] .hp-cell:first-child{grid-row:span 2}.project-thumbs[data-preview-count="0"]{display:grid;place-items:center}.project-empty-preview{display:grid;justify-items:center;gap:12px;color:var(--ink-muted);font-size:13px}.project-empty-preview svg{width:32px;height:32px;opacity:.6}.project-thumbs .preview-unavailable{display:grid;place-items:center;color:var(--ink-muted);font-size:12px}.project-thumbs .preview-unavailable:after{content:'预览暂不可用'}.project-thumbs:hover{transform:none;box-shadow:none}.project-thumbs:focus-visible{outline:2px solid var(--accent-solid);outline-offset:4px}
.project-thumbs[data-preview-count="0"]{grid-template-columns:1fr;grid-template-rows:1fr;text-decoration:none}.project-thumbs:active{transform:none}
