/**
 * 活动中心 — 侧栏（日耗有礼 + 推广得缘）
 * 壳：act-workbench（header → tabs → body 卡片列）
 */

#activityPanel.act-workbench {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
  padding: 0 !important;
  margin: 0;
  background: var(--bg-panel) !important;
  background-image: none !important;
  overflow: hidden !important;
}
#activityPanel.act-workbench .act-workbench__header {
  flex: none;
  background: var(--bg-panel);
}
#activityPanel.act-workbench .act-workbench__chrome {
  flex: none;
  background: var(--bg-panel);
  border-bottom: none;
}
#activityPanel.act-workbench .act-workbench__tabs.inventory-filter-tabs {
  flex: none;
  margin: 0 !important;
  padding: 0 var(--space-12) var(--space-8) !important;
  gap: var(--space-6);
  border-bottom: none !important;
  box-shadow: none !important;
}
#activityPanel.act-workbench .act-workbench__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: var(--space-10) var(--space-12) var(--space-14);
  -webkit-overflow-scrolling: touch;
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}
#activityDrawView,
#activityPromoView,
#activityFestivalView {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}
.act-tab-tag {
  flex: none;
  margin-left: var(--space-4);
  padding: 0 var(--space-4);
  border: 1px solid color-mix(in srgb, var(--text-muted) 45%, transparent);
  border-radius: var(--radius-xs);
  font-size: var(--font-micro);
  font-weight: 600;
  line-height: 1.4;
  color: var(--text-muted);
}

.act-card {
  padding: var(--space-10) var(--space-12);
  border: 1px solid color-mix(in srgb, var(--border-color) 55%, transparent);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--accent-gold) 4%, var(--bg-card));
}
.act-card--plain {
  background: var(--bg-card);
}
.act-card__head {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  flex-wrap: wrap;
  margin-bottom: var(--space-6);
}
.act-card__title {
  font-size: var(--font-label);
  font-weight: 600;
  color: var(--text-gold);
  letter-spacing: 0.04em;
}
.act-card__tag {
  margin-left: auto;
  font-size: var(--font-caption);
  font-weight: 600;
  color: var(--text-jade);
}
.act-card__tag.is-wait {
  color: var(--text-muted);
}
.act-card__tag.is-off {
  color: var(--text-danger);
}
.act-card__desc {
  margin: 0 0 var(--space-10);
  font-size: var(--font-body);
  color: var(--text-secondary);
  line-height: 1.55;
}
.act-card__state {
  margin: var(--space-8) 0 0;
  font-size: var(--font-caption);
  color: var(--text-muted);
  line-height: 1.45;
}
.act-card__foot {
  margin-top: var(--space-10);
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}
#activityPanel .act-card__btn.btn.sm {
  height: 40px;
  min-height: 40px;
  font-size: var(--font-label);
}

.act-progress {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}
.act-progress__meta {
  display: flex;
  justify-content: space-between;
  gap: var(--space-8);
  font-size: var(--font-caption);
  color: var(--text-muted);
}
.act-progress__meta b {
  color: var(--text-gold);
  font-variant-numeric: tabular-nums;
}
.act-progress__bar {
  height: 6px;
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--border-color) 55%, transparent);
  overflow: hidden;
}
.act-progress__fill {
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: var(--accent-gold);
  transition: width 0.2s ease;
}

.act-rules {
  margin: 0;
  padding-left: var(--space-16);
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  font-size: var(--font-caption);
  color: var(--text-secondary);
  line-height: 1.5;
}

.act-compose__block {
  margin-bottom: var(--space-10);
}
.act-compose__label {
  display: block;
  margin-bottom: var(--space-6);
  font-size: var(--font-caption);
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 0.06em;
}
.act-compose__cats {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-6);
}
.act-compose__cat {
  -webkit-appearance: none;
  appearance: none;
  height: 30px;
  min-height: 30px;
  padding: 0 var(--space-12);
  border: 1px solid color-mix(in srgb, var(--border-color) 70%, transparent);
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--text-secondary);
  font: inherit;
  font-size: var(--font-label);
  font-weight: 600;
  cursor: pointer;
}
.act-compose__cat.is-on {
  color: var(--text-gold);
  border-color: color-mix(in srgb, var(--accent-gold) 42%, transparent);
  background: color-mix(in srgb, var(--accent-gold) 8%, transparent);
}
.act-input {
  width: 100%;
  box-sizing: border-box;
  min-height: 40px;
  padding: var(--space-10) var(--space-12);
  border: 1px solid color-mix(in srgb, var(--border-color) 70%, transparent);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--bg-panel) 70%, var(--bg-card));
  color: var(--text-primary);
  font: inherit;
  font-size: var(--font-body);
}
.act-input:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--accent-gold) 40%, var(--border-color));
}
.act-compose__hint {
  margin: 0;
  font-size: var(--font-caption);
  color: var(--text-muted);
  line-height: 1.45;
}

.act-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}
.act-empty {
  padding: var(--space-16) var(--space-12);
  text-align: center;
  font-size: var(--font-label);
  color: var(--text-muted);
}
.act-item {
  padding: var(--space-10) var(--space-12);
  border: 1px solid color-mix(in srgb, var(--border-color) 55%, transparent);
  border-radius: var(--radius-md);
  background: var(--bg-card);
}
.act-item__head {
  display: flex;
  align-items: center;
  gap: var(--space-6) var(--space-8);
  flex-wrap: wrap;
  margin-bottom: var(--space-6);
}
.act-item__plat {
  font-size: var(--font-caption);
  font-weight: 600;
  color: var(--text-gold);
}
.act-item__stamp {
  margin-left: auto;
  font-size: var(--font-caption);
  font-weight: 600;
}
.act-item__stamp.is-pending { color: var(--text-gold); }
.act-item__stamp.is-settled { color: var(--text-jade); }
.act-item__stamp.is-rejected { color: var(--text-danger); }
.act-item__url {
  display: block;
  font-size: var(--font-caption);
  color: var(--text-jade);
  word-break: break-all;
  line-height: 1.45;
}
.act-item__meta {
  margin-top: var(--space-6);
  font-size: var(--font-caption);
  color: var(--text-muted);
  line-height: 1.45;
}
.act-item__note {
  margin-top: var(--space-4);
  font-size: var(--font-caption);
  color: var(--text-danger);
}
.act-item__foot {
  margin-top: var(--space-8);
}
.act-item__foot .btn {
  min-height: 40px;
}

/* ===== TG-317 每日签到·方向A 日历轨（连签越多给的越多） ===== */
.signin-cell {
    height: 56px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--bg-panel);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    overflow: visible;
}
.signin-cell__no { font-size: var(--font-micro); color: var(--text-muted); line-height: 1; }
/* 奖励文案允许两行（28 格宽仅 41-43px，单行截断不可读）；完整文案见格子 title */
.signin-cell__rw { font-size: var(--font-micro); color: var(--text-secondary); line-height: 1.2; text-align: center; padding: 0 var(--space-2); max-width: 100%; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; word-break: break-all; }
.signin-cell.is-signed { background: color-mix(in srgb, var(--accent-jade) 9%, var(--bg-card)); border-color: color-mix(in srgb, var(--accent-jade) 30%, transparent); }
.signin-cell.is-signed .signin-cell__no, .signin-cell.is-signed .signin-cell__rw { color: var(--accent-jade); }
.signin-cell.is-mile { border-color: color-mix(in srgb, var(--accent-gold) 55%, transparent); background: color-mix(in srgb, var(--accent-gold) 6%, var(--bg-card)); }
.signin-cell.is-mile .signin-cell__rw { color: var(--accent-gold); font-weight: 700; }
.signin-cell.is-mile.is-signed { background: color-mix(in srgb, var(--accent-gold) 12%, var(--bg-card)); }
.signin-cell.is-mile.is-signed .signin-cell__no, .signin-cell.is-mile.is-signed .signin-cell__rw { color: var(--accent-gold); }
.signin-cell.is-next { border: 2px solid var(--accent-jade); background: var(--bg-card); }
.signin-cell.is-next .signin-cell__no { color: var(--accent-jade); font-weight: 700; }
