/* ========== a站表情包选择器 ========== */
button.sticker-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 10px;
  font-size: 12px;
  line-height: 1.4;
  border: 1px solid var(--black, #1A1A1A);
  border-radius: 6px;
  background: transparent;
  color: var(--black, #1A1A1A);
  font-family: var(--body-font, inherit);
  box-shadow: none;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
}
button.sticker-btn:hover {
  background: rgba(0, 0, 0, 0.05);
  box-shadow: none;
}
button.sticker-btn:active {
  box-shadow: none;
  transform: none;
}

/* ========== 统一弹窗（表情+图片） ========== */
.media-picker-overlay {
  position: fixed;
  inset: 0;
  z-index: 9998;
  background: rgba(0, 0, 0, 0.35);
  display: none;
  align-items: flex-end;
  justify-content: center;
  backdrop-filter: blur(2px);
}
.media-picker-overlay.active {
  display: flex;
}

.media-picker {
  width: min(560px, 100%);
  max-height: 65vh;
  background: var(--card-bg, #fff);
  border: 2px solid var(--black, #1A1A1A);
  border-radius: 16px 16px 0 0;
  box-shadow: 0 -6px 30px rgba(0, 0, 0, 0.2);
  padding: 0;
  overflow: hidden;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  animation: mediaPickerSlideUp 0.2s ease-out;
}
@keyframes mediaPickerSlideUp {
  from { transform: translateY(30px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

.media-picker-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px 0;
  flex-shrink: 0;
}

.media-picker-tabs {
  display: flex;
  gap: 4px;
  background: rgba(0,0,0,0.05);
  border-radius: 8px;
  padding: 3px;
}
.media-picker-tab {
  padding: 6px 16px;
  font-size: 12px;
  font-weight: 600;
  border: none;
  background: transparent;
  color: var(--gray, #888);
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
  font-family: inherit;
}
.media-picker-tab.active {
  background: var(--card-bg, #fff);
  color: var(--black, #1A1A1A);
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.media-picker-tab:hover:not(.active) {
  color: var(--black, #1A1A1A);
}

.media-picker-close {
  border: none;
  background: none;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  color: var(--gray, #888);
  padding: 2px 6px;
  border-radius: 4px;
  transition: color 0.15s;
}
.media-picker-close:hover {
  color: var(--black, #1A1A1A);
}

.media-picker-body {
  padding: 12px 16px 16px;
  overflow-y: auto;
  flex: 1;
}

/* 标签页内容区 */
.media-picker-panel {
  display: none;
}
.media-picker-panel.active {
  display: block;
}

/* 表情面板 */
.media-picker-sticker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
  gap: 8px;
}
@media (max-width: 600px) {
  .media-picker-sticker-grid {
    grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
  }
}
.media-picker-sticker-item {
  border: none;
  background: transparent;
  padding: 6px;
  cursor: pointer;
  border-radius: 10px;
  transition: background 0.15s, transform 0.1s;
}
.media-picker-sticker-item:hover {
  background: rgba(0, 0, 0, 0.06);
  transform: scale(1.05);
}
.media-picker-sticker-item img {
  width: 100%;
  height: auto;
  display: block;
  pointer-events: none;
}

/* 图片面板 */
.media-picker-upload-area {
  border: 2px dashed rgba(0,0,0,0.15);
  border-radius: 12px;
  padding: 32px 20px;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}
.media-picker-upload-area:hover {
  border-color: var(--blue, #4169E1);
  background: rgba(65, 105, 225, 0.04);
}
.media-picker-upload-area svg {
  margin-bottom: 8px;
  opacity: 0.4;
}
.media-picker-upload-area p {
  font-size: 13px;
  color: var(--gray, #888);
  margin: 0;
}
.media-picker-upload-hint {
  font-size: 11px;
  color: #bbb;
  margin-top: 6px !important;
}
.media-picker-upload-preview {
  margin-top: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.media-picker-upload-preview img {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid rgba(0,0,0,0.1);
}
.media-picker-upload-preview .upload-status {
  font-size: 12px;
  color: var(--gray, #888);
}
.media-picker-upload-preview .upload-remove {
  cursor: pointer;
  color: #e74c3c;
  font-size: 16px;
  margin-left: auto;
  padding: 2px 6px;
  border-radius: 4px;
}
.media-picker-upload-preview .upload-remove:hover {
  background: rgba(231, 76, 60, 0.1);
}

/* 正文/评论中混排的表情图 */
.a-sticker {
  height: 3em;
  width: 3em;
  vertical-align: -0.6em;
  object-fit: contain;
  display: inline-block;
}

/* 正文内联图标（[icon:集:名] 短代码渲染结果） */
/* ===== 媒体弹窗「图标/表情」二级页签与嵌入图标检索 ===== */
.mp-subtabs {
  display: flex; gap: 4px; margin-bottom: 10px;
  background: rgba(0,0,0,0.05); border-radius: 8px; padding: 3px; width: fit-content;
}
.mp-subtab {
  padding: 4px 14px; font-size: 11px; font-weight: 600; border: none;
  background: transparent; color: var(--gray, #888); border-radius: 6px;
  cursor: pointer; font-family: inherit;
}
.mp-subtab.active {
  background: var(--card-bg, #fff); color: var(--black, #1A1A1A);
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.mp-icon-searchrow { display: flex; gap: 8px; align-items: center; margin-bottom: 6px; }
.mp-icon-searchrow input[type=search] {
  flex: 1; min-width: 0; padding: 8px 10px; border-radius: 8px;
  border: 1px solid var(--black, #1A1A1A); background: #fff; color: var(--black, #1A1A1A);
  font-size: 14px; box-sizing: border-box;
}
.mp-icon-searchrow label {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 4px;
  padding: 0 8px; height: 32px; border: 1px solid var(--black, #1A1A1A); border-radius: 8px;
  background: #fff; color: var(--black, #1A1A1A); font-size: 12px; cursor: pointer; white-space: nowrap;
}
.mp-icon-searchrow label input { margin: 0; }
.mp-icon-meta { font-size: 11px; color: var(--gray, #888); padding: 2px 2px 6px; }
.mp-icon-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 6px;
}
.mp-icon-item {
  position: relative; background: #fff; border: 1px solid rgba(0,0,0,0.12); border-radius: 8px;
  padding: 8px 4px 5px; text-align: center; cursor: pointer; user-select: none;
  font-family: inherit; transition: background 0.15s, transform 0.1s;
}
.mp-icon-item:hover { background: rgba(0,0,0,0.06); transform: scale(1.04); }
.mp-icon-item img { width: 24px; height: 24px; display: block; margin: 0 auto 4px; pointer-events: none; }
.mp-icon-badge {
  position: absolute; top: 3px; right: 4px; font-size: 8.5px; line-height: 1;
  padding: 2px 4px; border-radius: 4px; background: #00b894; color: #fff;
}
.mp-icon-name { display: block; font-size: 10px; font-weight: 700; color: var(--black, #1A1A1A); line-height: 1.25; word-break: break-all; }
.mp-icon-set { display: block; font-size: 9px; color: var(--gray, #888); line-height: 1.25; word-break: break-all; }
.mp-icon-more {
  padding: 6px 14px; font-size: 12px; background: #fff; color: var(--black, #1A1A1A);
  border: 2px solid var(--black, #1A1A1A); border-radius: 6px; cursor: pointer;
}
@media (max-width: 600px) {
  .mp-icon-grid { grid-template-columns: repeat(auto-fill, minmax(58px, 1fr)); }
  .mp-icon-searchrow input[type=search] { font-size: 15px; padding: 10px; }
}

/* 图标选择弹窗：键盘呼出时只压缩网格区，头部/搜索/底部保持原尺寸 */
#iconPickerModal .preview-content > *:not(#iconPickList) { flex: 0 0 auto; }

.a-icon {
  height: 1.25em;
  width: 1.25em;
  vertical-align: -0.25em;
  object-fit: contain;
  display: inline-block;
}

/* ========== 评论图片缩略图 ========== */
.comment-img {
  display: inline-block;
  width: 24px;
  height: 24px;
  object-fit: cover;
  border-radius: 4px;
  cursor: pointer;
  vertical-align: middle;
  margin-left: 4px;
  transition: transform 0.15s;
}
.comment-img:hover {
  transform: scale(1.3);
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}

/* ========== 语音面板 ========== */
.media-voice-record-btn {
  border: 2px dashed rgba(0,0,0,0.15);
  border-radius: 12px;
  padding: 32px 20px;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
  color: var(--black, #1A1A1A);
}
.media-voice-record-btn:hover {
  border-color: var(--blue, #4169E1);
  background: rgba(65, 105, 225, 0.04);
}
.media-voice-record-btn svg {
  opacity: 0.4;
  margin-bottom: 8px;
}
.media-voice-record-btn p {
  font-size: 13px;
  color: var(--gray, #888);
  margin: 0;
}
.media-voice-recording-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 28px 16px;
  border: 1px solid rgba(231, 76, 60, 0.3);
  background: rgba(231, 76, 60, 0.05);
  border-radius: 12px;
}
.media-voice-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #e74c3c;
  animation: voiceBlink 1s infinite;
}
@keyframes voiceBlink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.2; }
}
.media-voice-timer {
  font-size: 18px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--black, #1A1A1A);
}
.media-voice-stop {
  border: none;
  background: #e74c3c;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  padding: 6px 18px;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.15s;
}
.media-voice-stop:hover { background: #c0392b; }
.media-voice-preview {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
}
.media-voice-preview audio {
  flex: 1;
  height: 36px;
  min-width: 0;
}
.media-voice-info {
  font-size: 12px;
  color: var(--gray, #888);
  white-space: nowrap;
}
.media-voice-status {
  margin-top: 8px;
  font-size: 12px;
  color: var(--gray, #888);
  text-align: center;
}
/* ========== 评论内语音条 ========== */
.comment-audio {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
}
.comment-audio audio {
  height: 32px;
  max-width: 220px;
  flex: 1;
  min-width: 0;
}

.media-voice-play {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  border: none;
  border-radius: 50%;
  background: var(--blue, #4169E1);
  color: #fff;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s;
}
.media-voice-play:hover { background: #3153b3; }

/* ========== 复古像素风语音条 ========== */
.voice-msg {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  padding: 7px 12px;
  border-radius: 4px;
  background: var(--card-bg, #fff);
  border: 2px solid var(--black, #1a1a1a);
  box-shadow: 3px 3px 0 var(--black, #1a1a1a);
  cursor: pointer;
  user-select: none;
  font-size: 13px;
  color: var(--black, #1a1a1a);
  transition: transform 0.1s, box-shadow 0.1s;
  vertical-align: middle;
}
.voice-msg:hover { transform: translate(-1px, -1px); box-shadow: 4px 4px 0 var(--black, #1a1a1a); }
.voice-msg:active { transform: translate(1px, 1px); box-shadow: 1px 1px 0 var(--black, #1a1a1a); }
.voice-icon {
  position: relative;
  width: 16px;
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--blue, #4169E1);
  flex-shrink: 0;
}
.voice-speaker { display: block; }
.voice-wave {
  display: none;
  align-items: center;
  gap: 2px;
  height: 16px;
}
.voice-wave i {
  width: 3px;
  border-radius: 0;
  background: var(--blue, #4169E1);
  height: 6px;
  animation: voiceWaveJump 1s ease-in-out infinite;
}
.voice-wave i:nth-child(2) { animation-delay: 0.15s; }
.voice-wave i:nth-child(3) { animation-delay: 0.3s; }
@keyframes voiceWaveJump {
  0%, 100% { height: 6px; }
  50% { height: 15px; }
}
.voice-msg.playing .voice-icon .voice-speaker { display: none; }
.voice-msg.playing .voice-icon .voice-wave { display: flex; }
.voice-dur {
  display: none;
  font-size: 13px;
  color: var(--black, #1a1a1a);
  font-variant-numeric: tabular-nums;
}
.voice-msg.playing .voice-dur { display: inline; }
/* ========== 评论插件 · 复古像素风控件卡片 ========== */
.comment-plugin {
  display: inline-block;
  margin-top: 8px;
  max-width: 100%;
  vertical-align: top;
}

/* 卡片主体：硬边框 + 偏移阴影的像素盒子 */
.comment-plugin-box {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  min-width: 200px;
  max-width: 300px;
  padding: 10px 12px 12px;
  background: var(--card-bg, #fff);
  border: 2px solid var(--black, #1a1a1a);
  border-radius: 8px;
  box-shadow: 3px 3px 0 var(--black, #1a1a1a);
  transition: transform 0.1s ease, box-shadow 0.1s ease;
}
.comment-plugin-box:hover {
  transform: translate(-1px, -1px);
  box-shadow: 4px 4px 0 var(--black, #1a1a1a);
}

/* 顶部类型标签：彩色小铭牌 */
.comment-plugin-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  align-self: flex-start;
  padding: 3px 9px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.5px;
  line-height: 1.4;
  color: #fff;
  background: var(--black, #1a1a1a);
  border-radius: 4px;
  white-space: nowrap;
}
/* 类型小图标 */
.comment-plugin[data-plugin*="countdown"] .comment-plugin-tag::before { content: '\23F3'; }
.comment-plugin[data-plugin*="clock"] .comment-plugin-tag::before { content: '\1F556'; }
.comment-plugin[data-plugin*="random"] .comment-plugin-tag::before { content: '\1F3B2'; }
.comment-plugin[data-plugin*="stock"] .comment-plugin-tag::before { content: '\1F4C8'; }
.comment-plugin[data-plugin*="reminder"] .comment-plugin-tag::before { content: '\23F0'; }
.comment-plugin[data-plugin*="weather"] .comment-plugin-tag::before { content: '\26C5'; }
.comment-plugin[data-plugin*="quote"] .comment-plugin-tag::before { content: '\1F4AC'; }
.comment-plugin[data-plugin*="calc"] .comment-plugin-tag::before { content: '\1F5A9'; }

/* 每类插件专属铭牌配色 */
.comment-plugin[data-plugin*="countdown"] .comment-plugin-tag { background: #e67e22; }
.comment-plugin[data-plugin*="clock"] .comment-plugin-tag { background: #4169E1; }
.comment-plugin[data-plugin*="random"] .comment-plugin-tag { background: #8e44ad; }
.comment-plugin[data-plugin*="stock"] .comment-plugin-tag { background: #c0392b; }
.comment-plugin[data-plugin*="reminder"] .comment-plugin-tag { background: #d4a017; }
.comment-plugin[data-plugin*="weather"] .comment-plugin-tag { background: #16a085; }
.comment-plugin[data-plugin*="quote"] .comment-plugin-tag { background: #27ae60; }
.comment-plugin[data-plugin*="calc"] .comment-plugin-tag { background: #57606f; }

/* 实时类插件：铭牌上的呼吸 LIVE 小绿点 */
.comment-plugin[data-plugin*="clock"] .comment-plugin-tag::after,
.comment-plugin[data-plugin*="stock"] .comment-plugin-tag::after,
.comment-plugin[data-plugin*="weather"] .comment-plugin-tag::after {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #2ecc71;
  box-shadow: 0 0 4px #2ecc71;
  animation: pluginLivePulse 1.6s ease-in-out infinite;
}
@keyframes pluginLivePulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.35; transform: scale(0.8); }
}

/* 数值显示屏：内嵌小屏幕质感 */
.comment-plugin-val {
  padding: 7px 10px;
  font-size: 22px;
  font-weight: 700;
  font-family: 'Courier New', Consolas, monospace;
  font-variant-numeric: tabular-nums;
  letter-spacing: 1px;
  color: var(--black, #1a1a1a);
  background: rgba(0, 0, 0, 0.045);
  border: 1px solid rgba(0, 0, 0, 0.14);
  border-radius: 5px;
  text-align: center;
  line-height: 1.3;
  word-break: break-all;
}

/* 文字型数值（天气/股价）：小一号、左对齐 */
.comment-plugin-weather,
.comment-plugin-stock {
  font-size: 13px;
  font-weight: 600;
  font-family: inherit;
  letter-spacing: 0;
  text-align: left;
  word-break: normal;
}
.stock-name { font-weight: 700; margin-right: 4px; }
.stock-up { color: #e74c3c; font-weight: 700; }
.stock-down { color: #27ae60; font-weight: 700; }

/* 像素按钮 */
.comment-plugin-btn {
  align-self: flex-start;
  padding: 4px 14px;
  font-size: 12px;
  font-weight: 700;
  font-family: inherit;
  color: var(--black, #1a1a1a);
  background: var(--card-bg, #fff);
  border: 2px solid var(--black, #1a1a1a);
  border-radius: 4px;
  box-shadow: 2px 2px 0 var(--black, #1a1a1a);
  cursor: pointer;
  transition: transform 0.08s ease, box-shadow 0.08s ease, background 0.15s;
  white-space: nowrap;
}
.comment-plugin-btn:hover {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--black, #1a1a1a);
  background: rgba(0, 0, 0, 0.04);
}
.comment-plugin-btn:active {
  transform: translate(1px, 1px);
  box-shadow: 0 0 0 var(--black, #1a1a1a);
}

/* 倒计时/提醒结束：整卡庆祝态 */
.comment-plugin.plugin-done .comment-plugin-box {
  border-color: #e67e22;
  box-shadow: 3px 3px 0 #e67e22;
  animation: pluginDonePop 0.5s ease;
}
.comment-plugin.plugin-done .comment-plugin-val {
  color: #e67e22;
  border-color: rgba(230, 126, 34, 0.4);
  background: rgba(230, 126, 34, 0.08);
}
@keyframes pluginDonePop {
  0% { transform: scale(1); }
  40% { transform: scale(1.04); }
  100% { transform: scale(1); }
}
/* 提醒时间到：闪烁 */
.plugin-ring { animation: pluginRingBlink 0.8s step-end infinite; }
@keyframes pluginRingBlink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

/* ---- 每日一句：书信卡片 ---- */
.comment-plugin-quote {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
  max-width: 320px;
}
.comment-plugin-quote .comment-plugin-tag { flex-basis: 100%; }
.quote-inner {
  position: relative;
  flex: 1;
  min-width: 180px;
  padding: 6px 10px 6px 22px;
  background: rgba(39, 174, 96, 0.06);
  border-left: 3px solid #27ae60;
  border-radius: 3px;
}
.quote-inner::before {
  content: '\201C';
  position: absolute;
  left: 6px;
  top: 0;
  font-size: 22px;
  font-weight: 700;
  color: #27ae60;
  line-height: 1;
}
.quote-en { margin: 0 0 4px; font-size: 13px; font-weight: 600; color: var(--black, #1a1a1a); line-height: 1.5; }
.quote-cn { margin: 0; font-size: 12px; color: #888; line-height: 1.5; }

/* ---- 计算器：横向一排 ---- */
.comment-plugin-calc {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  max-width: 320px;
}
.comment-plugin-calc .comment-plugin-tag { flex-basis: 100%; }
.plugin-calc-input {
  flex: 1;
  min-width: 100px;
  padding: 5px 8px;
  font-size: 13px;
  font-family: 'Courier New', Consolas, monospace;
  border: 2px solid var(--black, #1a1a1a);
  border-radius: 4px;
  background: var(--card-bg, #fff);
  color: var(--black, #1a1a1a);
  outline: none;
  transition: box-shadow 0.15s;
}
.plugin-calc-input:focus { box-shadow: 0 0 0 2px rgba(65, 105, 225, 0.35); }
.comment-plugin-calc .comment-plugin-val {
  flex: 1;
  min-width: 60px;
  padding: 5px 8px;
  font-size: 15px;
  text-align: right;
}

/* 移动端：卡片不超出评论宽度 */
@media (max-width: 600px) {
  .comment-plugin { display: block; }
  .comment-plugin-box { max-width: 100%; min-width: 0; }
  .comment-plugin-quote, .comment-plugin-calc { max-width: 100%; }
}

/* ========== 插件选择界面 · 应用图标墙 ========== */
.plugin-tools {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.plugin-tool {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  padding: 12px 4px 10px;
  background: var(--card-bg, #fff);
  border: 2px solid var(--black, #1a1a1a);
  border-radius: 10px;
  box-shadow: 2px 2px 0 var(--black, #1a1a1a);
  cursor: pointer;
  font-family: inherit;
  transition: transform 0.1s, box-shadow 0.1s;
}
.plugin-tool:hover { transform: translate(-1px, -1px); box-shadow: 3px 3px 0 var(--black, #1a1a1a); }
.plugin-tool:active { transform: translate(1px, 1px); box-shadow: 0 0 0 var(--black, #1a1a1a); }
.plugin-tool-icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  line-height: 1;
  border-radius: 10px;
  border: 2px solid var(--black, #1a1a1a);
  box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.18);
}
.pt-countdown { background: #e67e22; }
.pt-clock { background: #4169E1; }
.pt-random { background: #8e44ad; }
.pt-stock { background: #c0392b; }
.pt-reminder { background: #d4a017; }
.pt-weather { background: #16a085; }
.pt-quote { background: #27ae60; }
.pt-calc { background: #57606f; }
.plugin-tool-name { font-size: 13px; font-weight: 700; color: var(--black, #1a1a1a); }
.plugin-tool-desc { font-size: 11px; color: #999; }
@media (max-width: 400px) {
  .plugin-tool-desc { display: none; }
}

/* 配置区：虚线面板 */
#pluginConfig {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 12px;
  background: rgba(0, 0, 0, 0.04);
  border: 2px dashed rgba(0, 0, 0, 0.18);
  border-radius: 10px;
}
.plugin-cfg-label { font-size: 12px; font-weight: 700; color: var(--black, #1a1a1a); }
.plugin-cfg-hint { flex-basis: 100%; font-size: 11px; color: #999; }
#pluginConfig .form-control {
  width: auto;
  padding: 5px 8px;
  font-size: 13px;
  border: 2px solid var(--black, #1a1a1a);
  border-radius: 4px;
  background: var(--card-bg, #fff);
  color: var(--black, #1a1a1a);
}
#pluginConfig .btn { box-shadow: 2px 2px 0 var(--black, #1a1a1a); }

/* 已选状态：绿色确认条 */
.plugin-selected-box {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: rgba(39, 174, 96, 0.08);
  border: 2px solid #27ae60;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--black, #1a1a1a);
}
.plugin-selected-box::before { content: '\2713'; font-weight: 700; color: #27ae60; }

/* ========== 邮件链接/分享页深链定位高亮 ========== */
.comment-item:target {
  scroll-margin-top: 80px;
  animation: commentTargetFlash 2.5s ease;
}
@keyframes commentTargetFlash {
  0%, 35% { box-shadow: 0 0 0 3px rgba(65, 105, 225, 0.65); }
  100% { box-shadow: 0 0 0 0 rgba(65, 105, 225, 0); }
}

/* 用户删除自己的评论 */
.comment-del-btn{background:none;border:none;padding:2px 4px;margin-left:6px;cursor:pointer;color:var(--gray,#999);vertical-align:middle;line-height:1;opacity:.72;}
.comment-del-btn:hover{color:#e74c3c;opacity:1;}
.comment-del-btn svg{display:block;}

/* ========== 信息提交（评论区表单 + 答案卡片）========== */
/* 正文内链接可用 #collect-<文章id> 直接定位到表单卡片 */
.collect-mount { scroll-margin-top: 80px; }
.collect-mount:target { animation: commentTargetFlash 2.5s ease; }
.collect-form { max-width: 420px; min-width: 0; width: 100%; }
.collect-form-hint { font-size: 11.5px; color: var(--gray, #888); line-height: 1.5; }
.collect-field { display: block; margin-top: 2px; }
.collect-field-lbl {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: var(--black, #1a1a1a);
  margin-bottom: 4px;
}
.collect-req { color: #e74c3c; font-style: normal; font-weight: 700; }
.collect-input {
  width: 100%;
  box-sizing: border-box;
  padding: 7px 9px;
  font-size: 13px;
  font-family: inherit;
  color: var(--black, #1a1a1a);
  background: var(--card-bg, #fff);
  border: 2px solid var(--black, #1a1a1a);
  border-radius: 5px;
}
.collect-input:focus { outline: none; border-color: var(--primary, #6c5ce7); }
textarea.collect-input { resize: vertical; min-height: 52px; }
.collect-choices { display: flex; flex-wrap: wrap; gap: 6px; }
.collect-choice {
  display: flex; align-items: center; gap: 5px;
  padding: 5px 9px;
  font-size: 12.5px;
  border: 2px solid var(--black, #1a1a1a);
  border-radius: 5px;
  cursor: pointer;
  background: var(--card-bg, #fff);
}
.collect-choice input { accent-color: var(--primary, #6c5ce7); cursor: pointer; }
.collect-submit { align-self: flex-start; margin-top: 4px; }

/* 已提交的答案：标签 + 值两列 */
.collect-answer { max-width: 420px; min-width: 0; }
.collect-ans-row {
  display: flex;
  gap: 8px;
  align-items: baseline;
  font-size: 13px;
  line-height: 1.55;
  word-break: break-word;
}
.collect-ans-k {
  flex-shrink: 0;
  min-width: 62px;
  color: var(--gray, #888);
  font-size: 12px;
}
.collect-ans-v { flex: 1; color: var(--black, #1a1a1a); font-weight: 600; }
/* 铭牌配色：与既有插件区分 */
.comment-plugin[data-plugin*="collect"] .comment-plugin-tag { background: #1d8348; }
.comment-plugin[data-plugin*="collect"] .comment-plugin-tag::before { content: '\1F4CB'; }
