/* ==========================================================================
   tailwind-patch.css — 本地化 tailwind 的补充样式
   背景：tailwind v2.2 预编译全包（tailwind.min.css）不含 JIT 特性，
   此文件补齐：①自定义主题色 ②透明度修饰符 ③任意值类 ④peer/after 变体
   ========================================================================== */

/* ---------- ① 自定义主题色 primary #FF6B35 / primary-dark #E55A2B ---------- */
.bg-primary            { background-color: #FF6B35; }
.bg-primary-dark       { background-color: #E55A2B; }
.text-primary          { color: #FF6B35; }
.text-primary-dark     { color: #E55A2B; }
.border-primary        { border-color: #FF6B35; }
.hover\:bg-primary:hover       { background-color: #FF6B35; }
.hover\:bg-primary-dark:hover  { background-color: #E55A2B; }
.hover\:text-primary:hover     { color: #FF6B35; }
.focus\:border-primary:focus   { border-color: #FF6B35; }
.focus\:ring-primary:focus     { --tw-ring-color: #FF6B35; }
.peer:checked ~ .peer-checked\:bg-primary { background-color: #FF6B35; }

/* ---------- ①b orange 色阶（预编译包未收录，缺背景时会只剩 text-white → 按钮看不见） ---------- */
.bg-orange-50          { background-color: #fff7ed; }
.bg-orange-100         { background-color: #ffedd5; }
.bg-orange-200         { background-color: #fed7aa; }
.bg-orange-400         { background-color: #fb923c; }
.bg-orange-500         { background-color: #FF6B35; }
.bg-orange-600         { background-color: #E55A2B; }
.text-orange-400       { color: #fb923c; }
.text-orange-500       { color: #FF6B35; }
.text-orange-600       { color: #E55A2B; }
.text-orange-700       { color: #c2410c; }
.border-orange-300     { border-color: #fdba74; }
.border-orange-400     { border-color: #fb923c; }
.hover\:bg-orange-100:hover { background-color: #ffedd5; }
.hover\:bg-orange-200:hover { background-color: #fed7aa; }
.hover\:bg-orange-500:hover { background-color: #FF6B35; }
.hover\:bg-orange-600:hover { background-color: #E55A2B; }
.hover\:text-orange-600:hover { color: #E55A2B; }
.focus\:border-orange-400:focus { border-color: #fb923c; }

/* 管理后台搜索按钮：强制橙底白字，避免再被全局/页面样式冲掉 */
.admin-search-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: #FF6B35 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 6px 16px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  cursor: pointer !important;
  white-space: nowrap;
  -webkit-text-fill-color: #fff !important;
}
.admin-search-btn:hover { background: #E55A2B !important; color: #fff !important; }
.admin-search-bar {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.admin-search-input {
  flex: 1;
  min-width: 160px;
  max-width: 280px;
  padding: 6px 12px !important;
  border: 1px solid #d1d5db !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  background: #fff !important;
  color: #111827 !important;
  outline: none;
}
.admin-search-input:focus { border-color: #FF6B35 !important; }

/* ---------- ② 透明度修饰符（JIT 特性，预编译包不含） ---------- */
.bg-black\/50  { background-color: rgba(0, 0, 0, 0.5); }
.bg-black\/30  { background-color: rgba(0, 0, 0, 0.3); }
.bg-black\/60  { background-color: rgba(0, 0, 0, 0.6); }
.bg-white\/80  { background-color: rgba(255, 255, 255, 0.8); }
.bg-white\/90  { background-color: rgba(255, 255, 255, 0.9); }

/* ---------- ③ 任意值类（JIT 特性，预编译包不含） ---------- */
.w-\[90\%\]        { width: 90%; }
.min-h-\[80vh\]    { min-height: 80vh; }
.min-w-\[130px\]   { min-width: 130px; }

/* ---------- ④ after: 伪元素 + peer-checked 组合（设置页开关按钮） ---------- */
[class*="after:content-"]::after { content: ''; }
.after\:absolute::after   { position: absolute; }
.after\:top-\[2px\]::after { top: 2px; }
.after\:left-\[2px\]::after { left: 2px; }
.after\:bg-white::after   { background-color: #fff; }
.after\:rounded-full::after { border-radius: 9999px; }
.after\:h-4::after        { height: 1rem; }
.after\:w-4::after        { width: 1rem; }
.after\:transition-all::after { transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1); }
.peer:checked ~ .peer-checked\:after\:translate-x-full::after { transform: translateX(100%); }
