/*
 * DarenFlow shared button stylesheet.
 *
 * Responsibility:
 * - Owns reusable button, action-link, copy-button, danger-button, quick-action,
 *   and button-like interaction styles shared across pages.
 *
 * Boundary:
 * - This file should not contain topbar navigation styles. Topbar styles belong to df_topbar.css.
 * - This file should not contain users-page-only styles. Users-page styles belong to users.css.
 * - This 2B-1 batch copies button rules from styles.css but does not delete the originals yet.
 *
 * Load order:
 * - df_buttons.css is intentionally loaded before styles.css in 2B-1.
 * - Existing styles.css rules still win, so this preparation batch should not change visuals.
 */

button{background:var(--blue);border:0;color:#fff;border-radius:8px;padding:9px 14px;cursor:pointer}

.danger-btn{background:#dc2626}

.btn{display:inline-block;border-radius:8px;padding:9px 14px}

.copy-btn{background:#e2e8f0;color:#0f172a;border:1px solid #cbd5e1;border-radius:6px;padding:3px 7px;font-size:12px;margin-left:4px}

.login-form button{width:100%;height:44px;margin-top:18px;font-weight:700}

.neon-btn{box-shadow:0 0 28px rgba(125,211,252,.45),0 10px 30px rgba(37,99,235,.22)}

.inline-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

button,.btn{border-radius:999px;padding:10px 17px;font-weight:750;letter-spacing:.01em;border:1px solid rgba(255,255,255,.46);background:linear-gradient(135deg,var(--brand),#1d4ed8 56%,#0ea5e9);color:#fff;box-shadow:inset 0 1px 1px rgba(255,255,255,.42),0 10px 24px rgba(37,99,235,.22);transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;line-height:1.15}

button:hover,.btn:hover{transform:translateY(-1px);box-shadow:inset 0 1px 1px rgba(255,255,255,.52),0 14px 30px rgba(37,99,235,.30);filter:saturate(1.06)}

button:active,.btn:active{transform:translateY(0);box-shadow:inset 0 2px 5px rgba(15,23,42,.22),0 6px 18px rgba(37,99,235,.18)}

button:disabled{opacity:.62;cursor:not-allowed;transform:none}

.secondary,.glass-btn{background:linear-gradient(135deg,rgba(255,255,255,.86),rgba(241,245,249,.64));color:#1e3a8a;border:1px solid rgba(148,163,184,.46);box-shadow:inset 0 1px 1px rgba(255,255,255,.78),0 8px 20px rgba(15,23,42,.08);backdrop-filter:blur(14px)}

.danger-btn{background:linear-gradient(135deg,#ef4444,#b91c1c);box-shadow:inset 0 1px 1px rgba(255,255,255,.32),0 10px 24px rgba(220,38,38,.22)}

.copy-btn{padding:4px 9px;font-size:12px;border-radius:999px;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(226,232,240,.78));color:#0f172a;border:1px solid #cbd5e1;box-shadow:0 4px 12px rgba(15,23,42,.08)}

.droplet-hero-btn{position:relative;overflow:hidden;font-size:18px;padding:17px 34px;border:1px solid rgba(255,255,255,.82);background:radial-gradient(circle at 28% 18%,rgba(255,255,255,.96),rgba(219,234,254,.90) 20%,rgba(56,189,248,.95) 54%,rgba(37,99,235,1));color:white;text-shadow:0 1px 8px rgba(15,23,42,.28);box-shadow:inset 0 2px 2px rgba(255,255,255,.65),inset 0 -8px 18px rgba(30,64,175,.22),0 0 34px rgba(125,211,252,.55),0 18px 44px rgba(37,99,235,.38)}

.droplet-hero-btn:after{content:"";position:absolute;width:42%;height:42%;left:16%;top:10%;border-radius:999px;background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(255,255,255,0));filter:blur(.2px);pointer-events:none}

.login-card .btn,.login-brand-card .btn{margin-left:0}

@media(max-width:900px) {
html body .droplet-hero-btn{width:100%;max-width:280px}
}

.template-card .danger-btn{padding:9px 14px}

/* V0.3.40：欢迎页主按钮去反光，改成立体压铸质感 */
.droplet-hero-btn:after{display:none!important;}

.droplet-hero-btn:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -10px 18px rgba(15,23,42,.30),0 20px 0 rgba(30,58,138,.55),0 34px 64px rgba(37,99,235,.45)!important;}

.droplet-hero-btn:active{transform:translateY(6px);box-shadow:inset 0 2px 8px rgba(15,23,42,.35),0 10px 0 rgba(30,58,138,.55),0 18px 38px rgba(37,99,235,.30)!important;}

.droplet-hero-btn{font-size:24px!important;padding:25px 72px!important;border-radius:999px!important;letter-spacing:.03em;min-width:300px;text-align:center;background:linear-gradient(180deg,#60a5fa 0%,#2563eb 46%,#1d4ed8 100%)!important;border:1px solid rgba(191,219,254,.92)!important;box-shadow:inset 0 2px 0 rgba(255,255,255,.32),inset 0 -10px 18px rgba(15,23,42,.25),0 14px 0 rgba(30,58,138,.72),0 34px 70px rgba(37,99,235,.45)!important;text-shadow:0 2px 4px rgba(15,23,42,.35)!important;}

.droplet-hero-btn:before,.droplet-hero-btn:after{display:none!important;}

.dual-picker-actions button{min-width:48px}

@media(max-width:1000px) {
html body .droplet-hero-btn{min-width:260px;width:100%;}
}

.btn.ghost{background:#fff;border:1px solid rgba(148,163,184,.4);color:#475569;}

.wx-form-action,.wx-edit-action{display:flex;align-items:center;gap:8px}

.sample-update-form button{width:100%;margin-top:10px}

/* V0.3.70 筛选按钮不再因 GET 表单卡在处理中 */
.auto-filter-form button[type="submit"]{min-width:88px;}

.wx-edit-action{grid-column:1/-1;display:flex;align-items:center;gap:10px;}

.wx-edit-action{grid-column:1/-1;display:flex;align-items:center;gap:10px;}

/* V0.3.75 待添加池顶部操作栏优化 */
.outreach-filter-bar .df-inline-action-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:850;
  white-space:nowrap;
}

.creator-filter-bar .df-creator-top-action{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-width:138px;
  height:44px;
  padding:0 18px !important;
  font-weight:850;
  white-space:nowrap;
  flex:0 0 auto;
}

.creator-filter-bar a.btn.secondary,
.creator-filter-bar .df-creator-top-action{
  margin-top:0;
}

.template-row-quick-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.template-row-quick-actions .inline-form{
  display:inline-flex;
  margin:0;
}

.template-row-quick-actions button,
.template-row-quick-actions .btn{
  min-height:36px;
  padding:0 14px;
  white-space:nowrap;
}

.df-page-heading-actions .inline-form,
.template-row-quick-actions .inline-form{
  display:inline-flex;
  margin:0;
}

/* V0.3.75 高级导出CSV单按钮 */
.export-csv-flat-btn{
  min-width:160px;
  font-weight:850;
  white-space:nowrap;
}

/* V0.3.75 话术管理DOM操作按钮样式 */
.template-row-quick-actions,
.df-template-dom-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.template-row-quick-actions .inline-form,
.df-template-dom-actions .inline-form{
  display:inline-flex;
  margin:0;
}

.template-row-quick-actions button,
.df-template-dom-actions button{
  min-height:36px;
  padding:0 14px;
  white-space:nowrap;
}

/* V0.3.75 话术详情最终交互样式 */
.df-template-detail-actions-final{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  padding:12px 0 16px;
  margin-bottom:14px;
  border-bottom:1px dashed rgba(148,163,184,.42);
}

.df-template-detail-actions-final .inline-form{
  display:inline-flex;
  margin:0;
}

.df-template-detail-actions-final button{
  min-height:38px;
  padding:0 16px;
  white-space:nowrap;
}

.creator-add-buttons {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}

.df-modal-footer button {
  min-width: 130px !important;
}

/* V0.3.77：联系方式标记局部更新反馈 */
.contact-mark-form button[disabled] {
  opacity: 0.7;
  cursor: not-allowed;
}

.creator-contact-item .muted-action {
  opacity: 0.72;
}

.creator-contact-item .muted-action:hover {
  opacity: 1;
}

.creator-contact-item .muted-action {
  opacity: 0.45 !important;
  filter: grayscale(0.35) !important;
}

.creator-contact-item .muted-action:hover,
.creator-contact-item .caution-action:hover {
  opacity: 1 !important;
  filter: none !important;
}

.creator-contact-item.contact-status-missing .creator-reveal-contact-btn,
.creator-contact-item.contact-status-missing .creator-copy-contact-btn {
  opacity: 0.42 !important;
  filter: grayscale(0.7) !important;
  background: #f8fafc !important;
  color: #64748b !important;
  border-color: #cbd5e1 !important;
  box-shadow: none !important;
}

.creator-contact-item.contact-status-abnormal .creator-reveal-contact-btn,
.creator-contact-item.contact-status-abnormal .creator-copy-contact-btn {
  background: #fff7ed !important;
  color: #9a3412 !important;
  border-color: #fdba74 !important;
  box-shadow: none !important;
}

.v0377-contact-missing .creator-reveal-contact-btn,
.v0377-contact-missing .creator-copy-contact-btn,
.v0377-muted-action {
  opacity: 0.45 !important;
  filter: grayscale(0.75) !important;
  background: #f8fafc !important;
  color: #64748b !important;
  border-color: #cbd5e1 !important;
  box-shadow: none !important;
}

.v0377-contact-abnormal .creator-reveal-contact-btn,
.v0377-contact-abnormal .creator-copy-contact-btn,
.v0377-caution-action {
  background: #fff7ed !important;
  color: #9a3412 !important;
  border-color: #fdba74 !important;
  box-shadow: none !important;
}

.followup-task-toolbar .btn.active {
  background: #2563eb;
  color: #ffffff;
  border-color: #2563eb;
}

.followup-action-btn {
  min-width: 92px;
  text-align: center;
}

.status-quick-actions button {
  white-space: nowrap;
}

@media (max-width: 760px) {
.status-quick-actions button {
    flex: 1 1 auto;
  }
}

.creator-status-action-form button {
  white-space: nowrap;
}

.btn.secondary.active {
  border-color: #2563eb;
  color: #1d4ed8;
  background: #eff6ff;
}

/* v0.4.68：开通个人直客入口 */
.df-v0468-direct-client-open-btn{
  background:linear-gradient(135deg,#0f766e,#14b8a6 52%,#5eead4)!important;
  border-color:rgba(153,246,228,.75)!important;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.42),0 12px 28px rgba(20,184,166,.18)!important;
}

.df-v0468-direct-client-form .df-v0435-toggle,
.df-v0468-direct-client-form .df-v0468-direct-client-note,
.df-v0468-direct-client-form .df-v0435-save-btn{
  grid-column:1/-1;
}
