/* TG 风格 reaction 条：跟随 Material 主题的配色变量，深浅色都好看 */
.tg-rx {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: .35rem 0 .2rem;
}

/* 一条表情都没有时：这行压成 0 高，＋ 浮在右下角，hover 才出现 —— 不留大片空白。
   注意用「直接子元素」判断：＋ 和表情面板都在 .tg-rx-add 里，
   面板里那 25 个 .tg-rx-btn 不能算成"有表情"（否则这条规则永远不生效）。 */
.tg-rx:not(:has(> .tg-rx-btn)) { position: relative; height: 0; margin: 0; }
.tg-rx:not(:has(> .tg-rx-btn)) .tg-rx-add { position: absolute; right: 0; bottom: 0; }

.tg-rx-btn {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .22rem .6rem;
  border: 1px solid var(--md-default-fg-color--lightest);
  border-radius: 1rem;
  background: var(--md-default-bg-color);
  color: var(--md-default-fg-color);
  font-size: .72rem;
  line-height: 1.4;
  cursor: pointer;
  transition: border-color .15s, background-color .15s, transform .1s;
}

.tg-rx-btn:hover {
  border-color: var(--md-accent-fg-color);
  background: var(--md-accent-fg-color--transparent);
}

.tg-rx-btn:active { transform: scale(.96); }

.tg-rx-btn:disabled { opacity: .55; cursor: progress; }

.tg-rx-btn.on {
  border-color: var(--md-accent-fg-color);
  background: var(--md-accent-fg-color--transparent);
  color: var(--md-accent-fg-color);
}

.tg-rx-e { font-size: .85rem; }

.tg-rx-img {
  width: 1.15em;
  height: 1.15em;
  vertical-align: -.22em;
}

.tg-rx-n { font-variant-numeric: tabular-nums; opacity: .85; }

.tg-rx-tip { font-size: .68rem; color: var(--md-default-fg-color--light); }

/* ＋ 添加表情：按钮 + 弹出的表情面板 */
.tg-rx-add { position: relative; display: inline-flex;
             opacity: 0; pointer-events: none; transition: opacity .15s; }
/* 悬停条目 / 键盘焦点进入 / 面板已打开：才把「添加表情」露出来 */
.tl-item:hover .tg-rx-add,          /* 悬停整条碎碎念也把「添加表情」带出来 */
.tg-rx:hover .tg-rx-add,
.tg-rx:focus-within .tg-rx-add,
.tg-rx-add.open,
.tg-rx:has(.tg-rx-panel:not([hidden])) .tg-rx-add { opacity: 1; pointer-events: auto; }
/* 触屏没有 hover：一直显示 */
@media (hover: none) { .tg-rx-add { opacity: 1; pointer-events: auto; } }

.tg-rx-plus { padding: .22rem .5rem; font-size: .82rem; }

.tg-rx-panel {
  position: absolute;
  bottom: 135%;
  left: 0;
  z-index: 6;
  display: flex;
  flex-wrap: wrap;
  gap: .2rem;
  width: max-content;
  max-width: 15rem;
  padding: .35rem;
  border: 1px solid var(--md-default-fg-color--lightest);
  border-radius: .5rem;
  background: var(--md-default-bg-color);
  box-shadow: 0 .2rem .8rem rgba(0, 0, 0, .18);
}

.tg-rx-panel[hidden] { display: none; }

.tg-rx-panel .tg-rx-btn { padding: .18rem .3rem; }
