/* ===== 本文件=全站视觉令牌唯一源(:root)+按钮四档规范(.btn*) =====
 * 所有页面引此文件取令牌，禁止另写 :root 令牌
 * 引入方式：<link rel="stylesheet" href="/static/buttons.css"> 放各页 :root 之前
 * 覆盖：C端8页(vote/login/upload/seal-confirm/proposal/audit/profile/invite-admin)+渲染器(wiki/index.html)
 * 按钮四档：primary 绿底白字 / outline 白底绿边 / danger 白底红字 / sm 小号
 */
:root {
  --accent: #07C160;
  --accent-light: #f0faf3;
  --danger: #eb5757;
  --danger-light: #fef2f2;
  --text-primary: rgba(0,0,0,0.95);
  --text-secondary: #615d59;
  --text-muted: #a39e98;
  --border: rgba(0,0,0,0.1);
  --radius-sm: 8px;
  /* 以下5个令牌260623从渲染器 :root L18-26 迁入，成全站共享 */
  --bg: #f6f5f4;
  --card-bg: #ffffff;
  --link: #0075de;
  --hover-bg: rgba(55,53,47,0.03);
  --radius: 12px;
}

/* 详情链接令牌(何威260712): 蓝色+::after自动加»,全站可点详情链接统一,免漏改。
   HTML只写文字"详情"/"展开",不写»文字,»由::after补;MD数据»由processContainer后处理统一 */
.detail-link { color: var(--link); }
.detail-link::after { content: '»'; }

/* 基底：全宽块级按钮，统一圆角/字号/padding */
.btn {
  display: block;
  width: 100%;
  padding: 13px 16px;
  border: none;
  border-radius: var(--radius-sm);
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  text-align: center;
  margin-top: 4px;
}

/* 主操作：绿底白字（投票/登录/确认/绑定/同意用印等） */
.btn-primary {
  background: var(--accent);
  color: #fff;
}
.btn-primary:disabled {
  background: #bbb;
  cursor: not-allowed;
}

/* 次操作：白底绿边绿字（继续添加/哈希链/退出/关闭等） */
.btn-outline {
  background: #fff;
  color: var(--accent);
  border: 1px solid var(--accent);
}

/* 危险操作：白底红边红字（退出登录/反对用印/撤回等） */
.btn-danger {
  background: #fff;
  color: var(--danger);
  border: 1px solid var(--danger);
}

/* 小号：行内、窄padding、小字号，搭配上面三档 */
.btn-sm {
  width: auto;
  display: inline-block;
  padding: 8px 14px;
  font-size: 13px;
  margin-top: 0;
}

/* 文件选择：绿字链接式（函件提交选择文件/报名表上统一用，何威260701） */
.file-choose {
  display: inline-block;
  color: var(--accent);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  margin-top: 10px;
}

/* ── 右下角"..."菜单(何威260703:从渲染器+audit抽公共,两页引buttons.css自动生效,不再各写一份) ── */
.sc-menu-wrap { position: fixed; bottom: 16px; right: 16px; z-index: 9999; }
.sc-menu-btn { padding: 6px 12px; border-radius: 14px; background: #999; color: #fff; border: none; font-size: 13px; font-weight: 400; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,.15); opacity: .6; transition: opacity .2s; }
.sc-menu-btn:hover { opacity: .9; }
.sc-menu-panel { display: none; position: absolute; bottom: 52px; right: 0; background: #fff; border-radius: 8px; box-shadow: 0 2px 12px rgba(0,0,0,.2); overflow: hidden; min-width: 120px; }
/* 260629何威定：菜单保持竖排单列(否决2x2)，只加宽面板min-width 80→120px容"导出PDF"一行。
   原因：导出PDF(88px)在80px面板被挤换行。white-space:nowrap强制一行不换。去掉后果：导出PDF又挤两行。 */
.sc-menu-panel.open { display: block; }
.sc-menu-panel button { display: block; width: 100%; padding: 10px 16px; border: none; background: none; font-size: 14px; color: #333; cursor: pointer; text-align: left; white-space: nowrap; }
.sc-menu-panel button:hover { background: #f5f5f5; }
@media print { .sc-menu-wrap { display: none !important; } }

/* ── Callout折叠展开(视觉令牌·公共一份):灰字+顶部细线+展开/收起文字切换 ──
   从渲染器index.html行578-595搬来(何威260704:报名表折叠signup-card→callout-collapsible统一全站)。
   渲染器MD特有规则(seal-iframe-wrap后无gap/.md-render printable打印/.survey-form)留在渲染器不搬。
   全站引buttons.css的页面(audit.html报名表/未来其他页)共用这一份,反造轮子。 */
.callout-collapsible { margin-top: 16px; padding: 0; max-width: 680px; }
.callout-collapsible summary {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 0; cursor: pointer; user-select: none;
  color: rgba(0,0,0,0.5); font-size: 14px;
  border-top: 1px solid rgba(0,0,0,0.08);
  list-style: none;  /* 隐藏原生details三角 */
}
.callout-collapsible summary::-webkit-details-marker { display: none; }
.callout-collapsible summary .collapsible-title { font-size: 14px; font-weight: 600; }
.callout-collapsible summary .collapsible-toggle { font-size: 12px; opacity: 0.8; }
.callout-collapsible .collapsible-body { padding: 8px 0; }
.callout-collapsible .collapsible-body img { max-width: 100%; }
/* 展开/收起文字切换：用[open]属性控制，零JS */
.callout-collapsible[open] .toggle-expand { display: none; }
.callout-collapsible:not([open]) .toggle-collapse { display: none; }
