/* finesse · component of swiss build (stamp in swiss.css) — 直角灰阶文字式分享/赞
   ==========================================================================
   分享 / 赞 —— 瑞士版：无圆角、灰阶、文字式
   与 swiss.css 的网格语言一致
   ========================================================================== */

.ap-actions {
  display: flex;
  gap: 1.25rem;
  margin-top: .85rem;
  padding-top: .6rem;
  border-top: 1px solid var(--line-soft);
}

.ap-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  min-height: 36px;
  padding: .3rem 0;
  font-family: var(--font-sans, sans-serif);
  font-size: .6875rem;
  letter-spacing: .1em;
  line-height: 1;
  color: var(--dim, #7D7D7D);
  background: none;
  border: 0;
  border-radius: 0;
  cursor: pointer;
  transition: color .25s cubic-bezier(.2,0,.38,1);
}

/* 下划线从左展开：与导航同一母题 */
.ap-btn::after {
  content: '';
  position: absolute;
  left: 0; bottom: .25rem;
  width: 100%; height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .35s cubic-bezier(.2,0,.38,1);
}

.ap-btn:hover { color: var(--ink, #EDEDED); }
.ap-btn:hover::after { transform: scaleX(1); }
.ap-btn:focus-visible { outline: 2px solid var(--accent, #6BA37C); outline-offset: 2px; }
.ap-btn:disabled { opacity: .5; cursor: default; }

.ap-btn-like.liked { color: var(--accent, #6BA37C); }

.ap-like-count, .ap-share-count {
  font-style: normal;
  font-size: .625rem;
  font-variant-numeric: tabular-nums;
}

/* 精确指针：静止不占视觉重量，悬停才浮现 */
@media (hover: hover) and (pointer: fine) {
  .ap-actions { opacity: 0; transition: opacity .3s cubic-bezier(.2,0,.38,1); }
  .work-item:hover .ap-actions,
  .work-card:hover .ap-actions,
  .related-card:hover .ap-actions,
  .work-item:focus-within .ap-actions,
  .work-card:focus-within .ap-actions,
  .related-card:focus-within .ap-actions { opacity: 1; }
}

@media (hover: none), (pointer: coarse) {
  .ap-actions { opacity: 1; }
  /* 触屏补足 44px；「赞」只有两个字，宽度也得撑开 */
  .ap-btn { min-height: 44px; min-width: 44px; justify-content: center; padding-inline: .5rem; }
  .ap-btn::after { bottom: calc(50% - .8em); }
}

.ap-actions { position: relative; z-index: 2; }

/* ---------- 分享菜单：瑞士式，直角、细线 ---------- */
.ap-share-menu {
  position: fixed;
  z-index: 300;
  background: var(--surface, #171717);
  border: 1px solid var(--line, rgba(255,255,255,.14));
  border-radius: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-width: 220px;
}

.ap-menu-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .1rem;
  font-family: var(--font-sans, sans-serif);
  font-size: .75rem;
  letter-spacing: .04em;
  color: var(--ink, #EDEDED);
  background: none;
  border: 0;
  border-right: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
  border-radius: 0;
  text-align: left;
  padding: .7rem .85rem;
  cursor: pointer;
  transition: background .2s, color .2s;
}

.ap-menu-item:hover { background: var(--accent, #6BA37C); color: var(--bg, #0F0F0F); }
.ap-menu-item small { color: var(--dim, #7D7D7D); font-size: .5625rem; letter-spacing: .04em; }
.ap-menu-item:hover small { color: var(--bg, #0F0F0F); }

/* ---------- 二维码 ---------- */
.ap-share-qr {
  position: fixed;
  z-index: 301;
  /* 纯白是扫码识别的功能要求，不是配色选择 —— 唯一保留的 #fff */
  background: #FFFFFF;
  border-radius: 0;
  padding: .75rem;
  text-align: center;
}

.ap-share-qr img { width: 176px; height: 176px; display: block; }

.ap-share-qr span {
  display: block;
  margin-top: .45rem;
  font-family: var(--font-cjk, sans-serif);
  font-size: .6875rem;
  color: #0F0F0F;
  letter-spacing: .04em;
}
