/* 「我的作品」卡片规范 v2（2026-10-20）——三平台同一份样式。规范：portfolio-card-v2-spec-20261020.md */
html body .pc2-card.pc2-card{display:flex;flex-direction:column;min-width:0;padding:0;margin:0;background:#12142a;border:1px solid #2a2f45;border-radius:12px;overflow:hidden;position:relative;color:#f8fafc;box-shadow:none}
html body .pc2-card .pc2-thumb.pc2-thumb{position:relative;display:grid;place-items:center;aspect-ratio:16/9!important;height:auto!important;min-height:0!important;max-height:none!important;width:100%;margin:0;padding:0;border-radius:0;overflow:hidden;background:#1b1e36;color:#7c8598}
html body .pc2-card .pc2-thumb.pc2-thumb img{border:0;outline:0;box-shadow:none;margin:0;padding:0;position:absolute;inset:0;width:100%;height:100%;object-fit:cover!important;object-position:center;display:block;border-radius:0}
html body .pc2-card .pc2-thumb .pc2-sample{position:absolute;left:10px;bottom:10px;top:auto;right:auto;font-size:12px;line-height:16px;padding:2px 8px;border-radius:999px;background:rgba(10,10,26,.7);color:#cbd5e1}
html body .pc2-card .pc2-placeholder{font-size:12px;color:#7c8598}
html body .pc2-card .pc2-thumb .pc2-badge.pc2-badge{position:absolute;top:10px;left:10px;right:auto;bottom:auto;inset:10px auto auto 10px;transform:none;width:auto;height:auto;min-height:0;max-width:calc(100% - 20px);box-sizing:border-box;z-index:2;display:inline-flex;align-items:center;gap:6px;margin:0;padding:3px 9px;border-radius:999px;border:1px solid;font-size:12px;line-height:16px;font-weight:600;white-space:nowrap}
html body .pc2-card .pc2-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;background:var(--pc2-dot)}
html body .pc2-card .pc2-thumb .pc2-badge.pc2-badge[data-state="done"]{background:rgba(22,101,52,.85);color:#bbf7d0;border-color:#4ade80;--pc2-dot:#4ade80}
html body .pc2-card .pc2-thumb .pc2-badge.pc2-badge[data-state="ready"]{background:rgba(30,64,175,.85);color:#bfdbfe;border-color:#60a5fa;--pc2-dot:#60a5fa}
html body .pc2-card .pc2-thumb .pc2-badge.pc2-badge[data-state="running"]{background:rgba(146,64,14,.85);color:#fde68a;border-color:#fbbf24;--pc2-dot:#fbbf24}
html body .pc2-card .pc2-badge.pc2-badge[data-state="running"]::before{animation:pc2-breathe 1.6s ease-in-out infinite}
html body .pc2-card .pc2-thumb .pc2-badge.pc2-badge[data-state="draft"]{background:rgba(51,65,85,.9);color:#e2e8f0;border-color:#94a3b8;--pc2-dot:#94a3b8}
html body .pc2-card .pc2-thumb .pc2-badge.pc2-badge[data-state="failed"]{background:rgba(127,29,29,.85);color:#fecaca;border-color:#f87171;--pc2-dot:#f87171}
@keyframes pc2-breathe{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.pc2-badge[data-state="running"]::before{animation:none}}
html body .pc2-card .pc2-body.pc2-body{display:flex;flex-direction:column;padding:14px;margin:0;gap:0;position:relative}
html body .pc2-card .pc2-select{position:absolute;top:10px;right:10px;z-index:3;margin:0}
html body .pc2-card .pc2-name.pc2-name{margin:0;padding:0;min-height:0;height:auto;font-size:16px;line-height:24px;font-weight:700;color:#f8fafc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body .pc2-card .pc2-style.pc2-style,html body .pc2-card .pc2-size.pc2-size{margin:0;padding:0;min-height:0;font-size:13px;line-height:20px;font-weight:400;color:#a5adbd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body .pc2-card .pc2-date.pc2-date{display:block;margin:0;font-size:12px;line-height:18px;font-weight:400;color:#7c8598}
html body .pc2-card .pc2-actions.pc2-actions{display:flex;flex-wrap:nowrap;gap:8px;margin:12px 0 0;padding:0;container-type:normal}
html body .pc2-card .pc2-actions>*{margin:0}
html body .pc2-card .pc2-btn.pc2-btn,html body .pc2-card .pc2-actions summary.pc2-btn{box-sizing:border-box;height:40px;min-height:40px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-size:14px;line-height:20px;font-weight:600;white-space:nowrap;cursor:pointer;list-style:none;text-decoration:none;box-shadow:none}
html body .pc2-card .pc2-actions summary.pc2-btn::-webkit-details-marker{display:none}
html body .pc2-card .pc2-view.pc2-view{flex:1 1 auto!important;width:auto!important;min-width:0;background:linear-gradient(90deg,#b959e5,#e665b7);color:#0a0a1a;border:0}
html body .pc2-card .pc2-actions>.pc2-download,html body .pc2-card .pc2-actions>.pc2-download-menu{flex:0 0 84px!important;width:84px!important}
html body .pc2-card .pc2-download.pc2-download{background:transparent;color:#f8fafc;border:1px solid #4b5368}
html body .pc2-card .pc2-delete.pc2-delete{flex:0 0 64px!important;width:64px!important;padding:0!important;background:transparent;color:#8a93a6;border:0}
html body .pc2-card .pc2-delete.pc2-delete:hover,html body .pc2-card .pc2-delete.pc2-delete:active,html body .pc2-card .pc2-delete.pc2-delete:focus-visible{color:#f87171;background:rgba(248,113,113,.12)}
html body .pc2-card .pc2-view.pc2-view[aria-disabled="true"],html body .pc2-card .pc2-view.pc2-view:disabled{background:#2a2f45;color:#6b7386;cursor:not-allowed}
html body .pc2-card .pc2-download.pc2-download[aria-disabled="true"],html body .pc2-card .pc2-download.pc2-download:disabled{border-color:#2a2f45;color:#5b6376;cursor:not-allowed}
html body .pc2-card .pc2-hint.pc2-hint{margin:8px 0 0;font-size:12px;line-height:18px;color:#7c8598}
html body .pc2-card .pc2-download-menu{position:relative}
html body .pc2-card .pc2-download-menu>.pc2-download{width:100%;padding:0}
html body .pc2-card .pc2-menu-body{position:absolute;right:0;bottom:calc(100% + 6px);z-index:20;min-width:180px;display:grid;gap:4px;padding:8px;background:#12142a;border:1px solid #2a2f45;border-radius:8px;box-shadow:0 12px 30px rgba(0,0,0,.45)}
html body .pc2-card .pc2-menu-body a{display:block;padding:8px 10px;border-radius:6px;color:#f8fafc;text-decoration:none;font-size:14px;line-height:20px}
html body .pc2-card .pc2-menu-body a:hover{background:#1f2340}
@container pc2 (max-width:299px){html body .pc2-card .pc2-actions.pc2-actions{flex-wrap:wrap}html body .pc2-card .pc2-view.pc2-view{flex:1 1 100%!important}html body .pc2-card .pc2-actions>.pc2-download,html body .pc2-card .pc2-actions>.pc2-download-menu,html body .pc2-card .pc2-delete.pc2-delete{flex:1 1 calc(50% - 4px)!important;width:auto!important}}
html body .pc2-card .pc2-body{container:pc2/inline-size}
/* 删除确认 & 只读 3D 预览弹窗：三平台同一外观与关闭方式（右上 ×、Esc、点遮罩外不关）。 */
html body dialog.pc2-dialog{box-sizing:border-box;width:min(420px,calc(100vw - 32px));padding:20px;border:1px solid #2a2f45;border-radius:12px;background:#12142a;color:#f8fafc;box-shadow:0 24px 60px rgba(0,0,0,.55)}
html body dialog.pc2-dialog::backdrop{background:rgba(5,6,16,.72)}
html body dialog.pc2-dialog h2{margin:0 0 8px;font-size:18px;line-height:26px;font-weight:700;color:#f8fafc}
html body dialog.pc2-dialog p{margin:0;font-size:14px;line-height:22px;color:#a5adbd}
html body dialog.pc2-dialog .pc2-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
html body dialog.pc2-dialog .pc2-dialog-actions button{height:40px;min-width:84px;padding:0 16px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}
html body dialog.pc2-dialog .pc2-cancel{background:transparent;color:#f8fafc;border:1px solid #4b5368}
html body dialog.pc2-dialog .pc2-confirm-delete{background:#ef4444;color:#fff;border:0}
html body dialog.pc2-dialog.pc2-viewer{width:min(960px,calc(100vw - 32px));padding:0;overflow:hidden}
html body dialog.pc2-viewer .pc2-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #2a2f45}
html body dialog.pc2-viewer .pc2-viewer-head h2{margin:0;font-size:16px;line-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body dialog.pc2-viewer .pc2-close{flex:0 0 40px;width:40px;height:40px;padding:0;border-radius:8px;border:1px solid #4b5368;background:transparent;color:#f8fafc;font-size:20px;line-height:1;cursor:pointer}
html body dialog.pc2-viewer .pc2-stage{position:relative;height:min(62vh,560px);min-height:280px;background:#0a0a1a}
html body dialog.pc2-viewer .pc2-stage canvas{display:block;width:100%!important;height:100%!important}
html body dialog.pc2-viewer .pc2-stage-note{position:absolute;inset:0;display:grid;place-items:center;font-size:14px;color:#a5adbd;text-align:center;padding:16px}
html body dialog.pc2-viewer .pc2-viewer-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 16px;font-size:13px;line-height:20px;color:#a5adbd;border-top:1px solid #2a2f45}
html body dialog.pc2-viewer .pc2-viewer-foot p{margin:0;flex:1 1 200px;font-size:13px;line-height:20px;color:#a5adbd}
/* 「按这个再做一个」：三平台同位置（预览底栏右侧）、同文字、design-system 次按钮。 */
html body dialog.pc2-viewer .pc2-remake{flex:0 0 auto;min-height:44px;padding:0 16px;border-radius:8px;border:1px solid #4b5368;background:transparent;color:#f8fafc;font-size:14px;font-weight:600;cursor:pointer}
html body dialog.pc2-viewer .pc2-remake:hover{background:#1f2340}
html body dialog.pc2-viewer .pc2-remake:focus-visible{outline:2px solid #a855f7;outline-offset:2px}
@media(max-width:479px){html body dialog.pc2-viewer .pc2-remake{flex:1 1 100%}}
/* 顶部（去掉「管理」后）：标题左、服务费说明右，垂直居中；三平台一致。 */
html body .wy-portfolio .portfolio-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap}
html body .wy-portfolio .portfolio-heading>.portfolio-heading-actions{display:flex;align-items:center;margin-left:auto;flex:none}
html body .wy-portfolio .portfolio-heading-actions .portfolio-link{display:inline-flex;align-items:center;min-height:44px;padding:0;margin:0}
html body .pc2-card .pc2-body>*+*{margin-top:0}
/* 筛选行（三平台同一规则）：搜索框独占一行；款式/分类/排序与「刷新」排在下一行，选择框等分剩余宽度、「刷新」固定在行尾。
   放不下（每个选择框 <96px）时选择框按 96px 起折行，「刷新」始终跟在最后一行行尾。≥720px 时搜索框与筛选同一行。 */
html body .wy-portfolio .portfolio-toolbar.portfolio-toolbar{display:flex!important;flex-wrap:wrap!important;align-items:flex-end!important;gap:12px 8px!important;grid-template-columns:none!important;margin-bottom:16px!important}
html body .wy-portfolio .portfolio-toolbar>.portfolio-search{flex:1 1 100%!important;width:auto!important;min-width:0!important;margin:0!important;grid-column:auto!important}
html body .wy-portfolio .portfolio-toolbar>label:not(.portfolio-search){flex:1 1 96px!important;min-width:96px!important;width:auto!important;max-width:none!important;margin:0!important;display:flex!important;flex-direction:column!important;gap:6px!important;grid-column:auto!important}
html body .wy-portfolio .portfolio-toolbar>label:not(.portfolio-search) select{width:100%!important;min-width:0!important}
html body .wy-portfolio .portfolio-toolbar>button{flex:0 0 auto!important;width:auto!important;margin:0 0 0 auto!important;grid-column:auto!important;align-self:flex-end!important}
@media (min-width:720px){html body .wy-portfolio .portfolio-toolbar>.portfolio-search{flex:2 1 320px!important}html body .wy-portfolio .portfolio-toolbar>label:not(.portfolio-search){flex:0 1 180px!important}}
/* 删除＝垃圾桶图标（三平台同一 SVG）；可点区域 44×40↑，文字仅保留给读屏（aria-label="删除"、title「删除」）。 */
html body .pc2-card .pc2-actions>.pc2-delete.pc2-delete{flex:0 0 44px!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;font-size:0!important;line-height:0!important;color:#8a93a6}
html body .pc2-card .pc2-delete.pc2-delete::before{content:"";display:block;width:20px;height:20px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4h8v2'/%3E%3Cpath d='M19 6l-1 14H6L5 6'/%3E%3Cpath d='M10 11v6M14 11v6'/%3E%3C/svg%3E") center/20px 20px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4h8v2'/%3E%3Cpath d='M19 6l-1 14H6L5 6'/%3E%3Cpath d='M10 11v6M14 11v6'/%3E%3C/svg%3E") center/20px 20px no-repeat}
html body .pc2-card .pc2-actions.pc2-actions{align-items:center}
