/* 朴素但精致：圆角、柔和阴影、卡片层次 */
.card { border-radius: 1rem; }
.accordion-item { border-radius: 1rem; }
.accordion-button { padding: 1rem 1.25rem; }
.accordion-button:not(.collapsed) { box-shadow: none; }
.table { border-radius: .75rem; }
.sticky-bottom { position: sticky; bottom: 0; z-index: 10; border-radius: 1rem; }

/* 微交互：更接近“工资单系统”的细节 */
.card, .accordion-item{ transition: transform .12s ease, box-shadow .2s ease; }
@media (hover:hover){
  .card:hover{ transform: translateY(-1px); box-shadow: 0 14px 34px rgba(0,0,0,.08) !important; }
}
.btn{ transition: transform .08s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease; }
.btn:active{ transform: translateY(1px); }
@media (hover:hover){
  .btn:hover{ box-shadow: 0 10px 24px rgba(0,0,0,.10); }
}

/* ===========================
   ✅ 关键修复：微信端不溢出 + 自适应居中
   =========================== */

/* 1) 顶部两枚徽章（一码一次 / 不采集投票者信息）：允许换行、居中、不撑破卡片
   注意：模板已加 class="hero-badges"，这里用更精准的选择器，避免误伤其它 d-flex */
.hero-badges{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .5rem !important;
  max-width: 100%;
}
.hero-badges .badge{
  max-width: 100%;
  white-space: normal;  /* 允许换行，防止溢出 */
  text-align: center;
  line-height: 1.15;
  padding: .55rem .85rem;
}


/* 3) 底部提交条：整体对齐更稳（避免微信 flex 收缩异常） */
.vote-page .card-body *{ min-width: 0; }

/* 移动端提交条：避免提示语被按钮挤成“竖排字” */
.submit-bar{ align-items: center !important; }
.submit-bar .submit-hint{ flex: 1 1 auto; min-width: 0; }
.submit-bar .submit-actions{ flex: 0 0 auto; }

/* 按钮区：手机端等宽两列，允许收缩，居中且不溢出 */
.submit-actions{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); /* ✅允许收缩，避免撑破 */
  gap: .75rem;
  width: 100%;
  justify-content: center;
}
.submit-actions .btn{
  width: 100%;
  min-width: 0;
  justify-content: center;
  white-space: nowrap; /* “弃权/提交测评”不换行更美观 */
}
@media (min-width: 576px){
  .w-sm-auto{ width: auto !important; }
  .submit-actions{ display:flex; gap:.75rem; width:auto; justify-content:center; }
  .submit-actions .btn{ width:auto; }
}

/* 投票页底部粘性工具栏（模仿工资单系统的“粘性工具条”） */
.vote-page{ padding-bottom: 24px; }
.vote-toolbar{
  padding: .85rem 1rem;
  background: rgba(var(--bs-body-bg-rgb), .86);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 12px 28px rgba(0,0,0,.10);
  border-radius: 1rem;
}
/* 留一点呼吸感，不顶到屏幕边缘 */
.vote-toolbar.sticky-bottom{ bottom: 12px; }
@media (max-width: 576px){
  .vote-toolbar.sticky-bottom{ bottom: 10px; }
}
[data-bs-theme="dark"] .vote-toolbar{
  border-color: rgba(255,255,255,.10);
  box-shadow: 0 16px 34px rgba(0,0,0,.35);
}

/* iPhone 安全区 */
.vote-toolbar{ padding-bottom: calc(.85rem + env(safe-area-inset-bottom)); }

.btn-outline-primary { --bs-btn-border-color: rgba(13,110,253,.35); }

/* 柔和的“弃权”按钮：警示但不刺眼 */
.btn-soft-warning{
  --bs-btn-color: #6c4a00;
  --bs-btn-bg: rgba(255,193,7,.16);
  --bs-btn-border-color: rgba(255,193,7,.30);
  --bs-btn-hover-color: #523700;
  --bs-btn-hover-bg: rgba(255,193,7,.22);
  --bs-btn-hover-border-color: rgba(255,193,7,.40);
  --bs-btn-active-bg: rgba(255,193,7,.28);
  --bs-btn-active-border-color: rgba(255,193,7,.45);
}
[data-bs-theme="dark"] .btn-soft-warning{
  --bs-btn-color: #ffd27a;
  --bs-btn-bg: rgba(255,193,7,.16);
  --bs-btn-border-color: rgba(255,193,7,.28);
  --bs-btn-hover-bg: rgba(255,193,7,.22);
  --bs-btn-hover-border-color: rgba(255,193,7,.38);
}

.stat-card { min-height: 110px; }

/* Dark tweaks */
[data-bs-theme="dark"] .bg-body-tertiary { background-color: #0f1115 !important; }

/* 更“大气”的间距与层次 */
.hero{
  background: linear-gradient(135deg, rgba(13,110,253,.10), rgba(32,201,151,.08));
  border: 1px solid rgba(0,0,0,.06);
}
[data-bs-theme="dark"] .hero{
  border-color: rgba(255,255,255,.08);
  background: linear-gradient(135deg, rgba(13,110,253,.18), rgba(32,201,151,.10));
}

.opt-btn{ font-size: .95rem; }
@media (min-width: 992px){
  .opt-btn{ font-size: 1rem; }
}

.accordion-button{ border-radius: 1rem; }
.accordion-item{ background: transparent; }
.accordion-body{ padding: 1.25rem; }

.cadre-done{
  background: rgba(25,135,84,.10) !important;
}
.badge-done{
  background: rgba(25,135,84,.10) !important;
  border-color: rgba(25,135,84,.25) !important;
}

.q-row.flash-focus{
  outline: 2px solid rgba(13,110,253,.25);
  border-radius: .75rem;
}

.progress{ border-radius: 999px; overflow:hidden; }
.progress-bar{ border-radius: 999px; }

/* Quick nav sticky offset under navbar */
.quicknav-wrap{ top: 72px; z-index: 20; }
@media (max-width: 576px){
  .quicknav-wrap{ top: 64px; }
}
#cadreQuickNav::-webkit-scrollbar{ height: 6px; }
#cadreQuickNav::-webkit-scrollbar-thumb{ background: rgba(0,0,0,.15); border-radius: 999px; }
[data-bs-theme="dark"] #cadreQuickNav::-webkit-scrollbar-thumb{ background: rgba(255,255,255,.12); }

/* Nav button states */
.cadre-jump.cj-done{
  border-color: rgba(25,135,84,.25) !important;
  background: rgba(25,135,84,.10) !important;
  color: inherit;
}
.cadre-jump.cj-active{
  border-color: rgba(13,110,253,.35) !important;
  background: rgba(13,110,253,.08) !important;
}

/* Missing / attention animation */
.q-row.need-attn{
  outline: 2px solid rgba(255,193,7,.45);
  border-radius: .75rem;
  background: rgba(255,193,7,.10);
  animation: pulseGlow 1s ease-in-out 2;
}
@keyframes pulseGlow{
  0%{ transform: translateY(0); box-shadow: 0 0 0 rgba(255,193,7,0); }
  50%{ transform: translateY(-1px); box-shadow: 0 8px 20px rgba(255,193,7,.15); }
  100%{ transform: translateY(0); box-shadow: 0 0 0 rgba(255,193,7,0); }
}

/* 徽章（总体/分项）在微信浏览器里也要清晰可见：显式设置文字与背景 */
.badge-kind{
  border: 1px solid transparent;
  padding: .35rem .6rem;
  border-radius: .75rem;
  font-weight: 600;
  letter-spacing: .02em;
}
.badge-overall{
  color: #0b5ed7;              /* primary */
  background: rgba(13,110,253,.12);
  border-color: rgba(13,110,253,.25);
}
.badge-sub{
  color: #495057;              /* gray-700 */
  background: rgba(108,117,125,.12);
  border-color: rgba(108,117,125,.25);
}
[data-bs-theme="dark"] .badge-overall{
  color: #9ec5fe;
  background: rgba(13,110,253,.20);
  border-color: rgba(13,110,253,.35);
}
[data-bs-theme="dark"] .badge-sub{
  color: #dee2e6;
  background: rgba(108,117,125,.18);
  border-color: rgba(108,117,125,.35);
}

/* Submit button nudge when all cadres completed */
#submitBtn.submit-nudge{
  outline: 2px solid rgba(25,135,84,.45);
  box-shadow: 0 10px 24px rgba(25,135,84,.16);
  transform: translateY(-1px);
  animation: submitPulse 1.2s ease-in-out 1;
}
@keyframes submitPulse{
  0%{ outline-color: rgba(25,135,84,.15); box-shadow: 0 0 0 rgba(25,135,84,0); transform: translateY(0); }
  50%{ outline-color: rgba(25,135,84,.55); box-shadow: 0 12px 26px rgba(25,135,84,.18); transform: translateY(-2px); }
  100%{ outline-color: rgba(25,135,84,.25); box-shadow: 0 0 0 rgba(25,135,84,0); transform: translateY(0); }
}


/* ===========================
   ✅ 题目头部：第一行“姓名分项测评-德/能/勤/绩/廉”，第二行标题
   不用省略号，必要时自动换行
   =========================== */
.q-head{ display:block; }
.q-head .q-meta{ display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; }
.q-head .q-title{ margin-top:.25rem; }

.q-row .badge-kind{
  white-space: normal;          /* ✅允许换行 */
  overflow-wrap: anywhere;      /* ✅超长也能断行（微信端更稳） */
  word-break: break-word;
  line-height: 1.15;
  max-width: 100%;
}


/* 提交卡片内：完成进度条（常驻显示，更直观） */
.submit-progress{ flex: 1 1 100%; }
.progress.progress-thin{ height: 10px; border-radius: 999px; overflow: hidden; }
.progress.progress-thin .progress-bar{ border-radius: 999px; }
@media (min-width: 576px){
  .submit-progress{ max-width: 360px; }
}

/* ===========================
   多页测评：逐人独立页面
   =========================== */
.vote-step-page .step-strip{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap:.75rem;
}
.step-chip{
  display:flex;
  align-items:center;
  gap:.75rem;
  padding:.8rem .95rem;
  border-radius:1rem;
  border:1px solid rgba(0,0,0,.08);
  background:var(--bs-body-bg);
  color:inherit;
  box-shadow:0 8px 24px rgba(0,0,0,.04);
  transition:all .2s ease;
}
.step-chip:hover{ transform:translateY(-1px); }
.step-chip-index{
  width:2rem;
  height:2rem;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  flex:0 0 2rem;
}
.step-chip-text{ min-width:0; display:flex; flex-direction:column; }
.step-chip-name{ font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.step-chip-meta{ font-size:.82rem; color:var(--bs-secondary-color); }
.step-chip-done{
  border-color:rgba(25,135,84,.25);
  background:rgba(25,135,84,.07);
}
.step-chip-done .step-chip-index{
  background:rgba(25,135,84,.12);
  color:var(--bs-success);
}
.step-chip-current{
  border-color:rgba(13,110,253,.28);
  background:rgba(13,110,253,.07);
}
.step-chip-current .step-chip-index{
  background:rgba(13,110,253,.12);
  color:var(--bs-primary);
}
.step-chip-todo .step-chip-index{
  background:rgba(108,117,125,.12);
  color:var(--bs-secondary-color);
}
.cadre-stage{
  border-radius:1.25rem;
}
.suggestion-box{
  border-radius:1rem;
  min-height:120px;
  resize:vertical;
}
@media (max-width: 576px){
  .vote-step-page .step-strip{
    grid-template-columns: 1fr;
  }
}

/* ===========================
   2026 交互改版：逐人独立测评页
   =========================== */
.vote-step-page{
  --vote-primary: #1f6f5f;
  --vote-primary-soft: rgba(31,111,95,.12);
  --vote-primary-border: rgba(31,111,95,.22);
  --vote-warm: #fff8ea;
}
.vote-step-page .vote-hero{
  background:
    radial-gradient(circle at top right, rgba(31,111,95,.14), transparent 32%),
    linear-gradient(135deg, rgba(255,255,255,.92), rgba(244,248,246,.96));
}
[data-bs-theme="dark"] .vote-step-page .vote-hero{
  background:
    radial-gradient(circle at top right, rgba(92,214,185,.12), transparent 30%),
    linear-gradient(135deg, rgba(26,30,34,.95), rgba(20,25,28,.98));
}
.vote-step-page .hero-badge{
  border: 1px solid var(--vote-primary-border);
  color: var(--vote-primary);
  background: var(--vote-primary-soft);
  padding: .55rem .9rem;
  border-radius: 999px;
  font-weight: 600;
}
.vote-step-page .hero-progress-card{
  min-width: 240px;
  padding: 1rem 1.1rem;
  border-radius: 1.2rem;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(255,255,255,.7);
  box-shadow: 0 14px 32px rgba(18,38,31,.08);
}
[data-bs-theme="dark"] .vote-step-page .hero-progress-card{
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.08);
}
.vote-step-page .hero-progress-number{
  font-size: 1.85rem;
  line-height: 1;
  font-weight: 700;
  color: var(--vote-primary);
}
.vote-step-page .hero-progress-bar,
.vote-step-page .side-progress-bar,
.vote-step-page .page-progress-bar{
  height: 10px;
  border-radius: 999px;
  overflow: hidden;
}
.vote-step-page .current-cadre-card{
  position: relative;
  overflow: hidden;
}
.vote-step-page .current-cadre-card::after{
  content: "";
  position: absolute;
  inset: auto -40px -40px auto;
  width: 160px;
  height: 160px;
  background: radial-gradient(circle, rgba(31,111,95,.12), transparent 68%);
  pointer-events: none;
}
.vote-step-page .completion-pill,
.vote-step-page .toolbar-badge{
  display: inline-flex;
  align-items: center;
  padding: .45rem .85rem;
  border-radius: 999px;
  border: 1px solid rgba(108,117,125,.22);
  background: rgba(108,117,125,.08);
  color: var(--bs-body-color);
  font-weight: 600;
}
.vote-step-page .completion-pill.is-complete,
.vote-step-page .toolbar-badge.is-complete{
  background: rgba(25,135,84,.12);
  border-color: rgba(25,135,84,.22);
  color: #198754;
}
.vote-step-page .helper-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem;
}
.vote-step-page .helper-card{
  display: flex;
  gap: .85rem;
  align-items: flex-start;
  padding: 1rem;
  border-radius: 1rem;
  background: rgba(248,249,250,.75);
  border: 1px solid rgba(108,117,125,.12);
}
.vote-step-page .helper-card-highlight{
  background: linear-gradient(135deg, rgba(31,111,95,.10), rgba(255,248,234,.82));
  border-color: rgba(31,111,95,.18);
}
[data-bs-theme="dark"] .vote-step-page .helper-card{
  background: rgba(255,255,255,.03);
  border-color: rgba(255,255,255,.08);
}
.vote-step-page .helper-icon{
  width: 2.4rem;
  height: 2.4rem;
  border-radius: .9rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--vote-primary-soft);
  color: var(--vote-primary);
  font-size: 1.1rem;
  flex: 0 0 auto;
}
.vote-step-page .helper-title{
  font-weight: 700;
  margin-bottom: .15rem;
}
.vote-step-page .helper-text{
  color: var(--bs-secondary-color);
  font-size: .93rem;
  line-height: 1.45;
}
.vote-step-page .option-legend-card{
  background: linear-gradient(180deg, rgba(255,255,255,.85), rgba(249,251,250,.92));
}
[data-bs-theme="dark"] .vote-step-page .option-legend-card{
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
}
.vote-step-page .legend-title{
  font-weight: 700;
}
.vote-step-page .legend-tags{
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}
.vote-step-page .legend-tag{
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .48rem .8rem;
  border-radius: 999px;
  background: rgba(31,111,95,.08);
  border: 1px solid rgba(31,111,95,.16);
  color: var(--bs-body-color);
  font-size: .92rem;
}
.vote-step-page .question-stack{
  display: grid;
  gap: 1rem;
}
.vote-step-page .question-card{
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  border: 1px solid transparent;
}
.vote-step-page .question-card:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(25,42,36,.08) !important;
}
.vote-step-page .question-card.is-answered{
  border-color: rgba(31,111,95,.18);
}
.vote-step-page .question-head{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}
.vote-step-page .question-title-wrap{
  display: flex;
  gap: .95rem;
  align-items: flex-start;
}
.vote-step-page .question-index{
  width: 2.25rem;
  height: 2.25rem;
  border-radius: .9rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(31,111,95,.12);
  color: var(--vote-primary);
  font-weight: 700;
  flex: 0 0 auto;
}
.vote-step-page .question-title{
  font-size: 1.06rem;
  line-height: 1.5;
}
.vote-step-page .question-kind{
  border-radius: 999px;
  padding: .42rem .75rem;
  font-weight: 600;
}
.vote-step-page .question-kind.is-overall{
  background: rgba(13,110,253,.10);
  color: #0d6efd;
  border: 1px solid rgba(13,110,253,.18);
}
.vote-step-page .question-kind.is-sub{
  background: rgba(108,117,125,.10);
  color: #495057;
  border: 1px solid rgba(108,117,125,.18);
}
[data-bs-theme="dark"] .vote-step-page .question-kind.is-sub{
  color: #dee2e6;
}
.vote-step-page .state-pill{
  display: inline-flex;
  align-items: center;
  padding: .42rem .76rem;
  border-radius: 999px;
  background: rgba(108,117,125,.08);
  border: 1px solid rgba(108,117,125,.18);
  color: var(--bs-secondary-color);
  white-space: nowrap;
}
.vote-step-page .state-pill.is-selected{
  background: rgba(25,135,84,.10);
  border-color: rgba(25,135,84,.20);
  color: #198754;
  font-weight: 600;
}
.vote-step-page .option-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}
.vote-step-page .score-option{
  display: flex;
  align-items: center;
  gap: .9rem;
  min-height: 74px;
  padding: .95rem 1rem;
  border-radius: 1.05rem;
  border: 1px solid rgba(108,117,125,.18);
  background: var(--bs-body-bg);
  cursor: pointer;
  transition: all .18s ease;
  box-shadow: inset 0 0 0 1px transparent;
}
.vote-step-page .score-option:hover{
  transform: translateY(-1px);
  border-color: rgba(31,111,95,.26);
  box-shadow: 0 10px 20px rgba(25,42,36,.06);
}
.vote-step-page .score-option-code{
  width: 2.4rem;
  height: 2.4rem;
  border-radius: .9rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(31,111,95,.10);
  color: var(--vote-primary);
  font-weight: 800;
  flex: 0 0 auto;
}
.vote-step-page .score-option-text{
  font-weight: 700;
  font-size: 1rem;
}
.vote-step-page .btn-check:checked + .score-option{
  border-color: rgba(31,111,95,.48);
  background: linear-gradient(135deg, rgba(31,111,95,.10), rgba(255,255,255,.98));
  box-shadow: inset 0 0 0 1px rgba(31,111,95,.22), 0 12px 24px rgba(31,111,95,.10);
}
[data-bs-theme="dark"] .vote-step-page .btn-check:checked + .score-option{
  background: linear-gradient(135deg, rgba(31,111,95,.14), rgba(255,255,255,.04));
}
.vote-step-page .btn-check:checked + .score-option .score-option-code{
  background: var(--vote-primary);
  color: #fff;
}
.vote-step-page .question-card.need-attn{
  border-color: rgba(255,193,7,.42);
  box-shadow: 0 0 0 3px rgba(255,193,7,.18), 0 16px 30px rgba(0,0,0,.05) !important;
}
.vote-step-page .suggestion-box{
  border-radius: 1rem;
  min-height: 144px;
  resize: vertical;
}
.vote-step-page .vote-toolbar{
  position: sticky;
  bottom: 14px;
  z-index: 30;
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(14px);
}
[data-bs-theme="dark"] .vote-step-page .vote-toolbar{
  background: rgba(26,30,34,.88);
}
.vote-step-page .btn-soft-warning{
  border: 1px solid rgba(255,193,7,.28);
  background: rgba(255,193,7,.12);
  color: #946200;
}
[data-bs-theme="dark"] .vote-step-page .btn-soft-warning{
  color: #ffd66b;
}
.vote-step-page .vote-side-sticky{
  position: sticky;
  top: 78px;
}
.vote-step-page .step-list{
  display: grid;
  gap: .7rem;
}
.vote-step-page .step-item{
  width: 100%;
  display: flex;
  align-items: center;
  gap: .85rem;
  text-align: left;
  padding: .9rem 1rem;
  border-radius: 1rem;
  border: 1px solid rgba(108,117,125,.16);
  background: var(--bs-body-bg);
  transition: all .18s ease;
}
.vote-step-page .step-item:hover:not(:disabled){
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(25,42,36,.06);
}
.vote-step-page .step-item:disabled{
  opacity: 1;
  cursor: default;
}
.vote-step-page .step-item-index{
  width: 2rem;
  height: 2rem;
  border-radius: .8rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(108,117,125,.12);
  color: var(--bs-secondary-color);
  font-weight: 700;
  flex: 0 0 auto;
}
.vote-step-page .step-item-body{
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.vote-step-page .step-item-name{
  font-weight: 700;
}
.vote-step-page .step-item-meta{
  font-size: .88rem;
  color: var(--bs-secondary-color);
}
.vote-step-page .step-item-done{
  border-color: rgba(25,135,84,.20);
  background: rgba(25,135,84,.06);
}
.vote-step-page .step-item-done .step-item-index{
  background: #198754;
  color: #fff;
}
.vote-step-page .step-item-current,
.vote-step-page .step-item.is-current{
  border-color: rgba(31,111,95,.30);
  background: linear-gradient(135deg, rgba(31,111,95,.10), rgba(255,255,255,.98));
  box-shadow: 0 12px 24px rgba(31,111,95,.10);
}
[data-bs-theme="dark"] .vote-step-page .step-item-current,
[data-bs-theme="dark"] .vote-step-page .step-item.is-current{
  background: linear-gradient(135deg, rgba(31,111,95,.12), rgba(255,255,255,.04));
}
.vote-step-page .step-item-current .step-item-index,
.vote-step-page .step-item.is-current .step-item-index{
  background: var(--vote-primary);
  color: #fff;
}
.vote-step-page .vote-notes{
  padding-left: 1rem;
  color: var(--bs-secondary-color);
  line-height: 1.7;
}
.vote-step-page .vote-notes li + li{
  margin-top: .35rem;
}
.vote-step-page .submit-loading{
  pointer-events: none;
}
@media (max-width: 1199.98px){
  .vote-step-page .helper-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 991.98px){
  .vote-step-page .vote-side-sticky{ position: static; }
  .vote-step-page .hero-progress-card{ width: 100%; }
  .vote-step-page .vote-toolbar{ bottom: 10px; }
}
@media (max-width: 767.98px){
  .vote-step-page .question-head{
    flex-direction: column;
    gap: .75rem;
  }
  .vote-step-page .option-grid{ grid-template-columns: 1fr; }
  .vote-step-page .score-option{ min-height: 68px; }
  .vote-step-page .vote-hero .card-body,
  .vote-step-page .current-cadre-card .card-body,
  .vote-step-page .question-card .card-body,
  .vote-step-page .comment-card .card-body,
  .vote-step-page .side-card .card-body{ padding: 1.05rem !important; }
  .vote-step-page .toolbar-actions .btn,
  .vote-step-page .toolbar-actions button{
    width: 100%;
    justify-content: center;
  }
  .vote-step-page .vote-toolbar .card-body{ padding: 1rem !important; }
}


/* ===========================
   2026-04 第二轮交互与后台统一升级
   =========================== */
.brand-mark{
  width: 2rem;
  height: 2rem;
  border-radius: .8rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(31,111,95,.12);
  color: #1f6f5f;
}
.footer-badge{
  padding: .55rem .95rem;
  border-radius: 999px;
}

.admin-body{
  background:
    radial-gradient(circle at top left, rgba(53,141,99,.08), transparent 22%),
    linear-gradient(180deg, #f5f7f6 0%, #eef3f1 100%);
}
[data-bs-theme="dark"].admin-body{
  background:
    radial-gradient(circle at top left, rgba(53,141,99,.12), transparent 22%),
    linear-gradient(180deg, #0f1416 0%, #12181b 100%);
}
.admin-navbar{
  background: rgba(255,255,255,.84);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
[data-bs-theme="dark"] .admin-navbar{
  background: rgba(18,24,27,.84);
}
.admin-subnav-wrap{
  background: rgba(255,255,255,.66);
  backdrop-filter: blur(10px);
}
[data-bs-theme="dark"] .admin-subnav-wrap{
  background: rgba(18,24,27,.75);
  border-color: rgba(255,255,255,.08) !important;
}
.admin-subnav-link{
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .72rem 1rem;
  border-radius: 999px;
  text-decoration: none;
  color: var(--bs-body-color);
  background: rgba(255,255,255,.84);
  border: 1px solid rgba(31,111,95,.10);
  box-shadow: 0 8px 24px rgba(22,40,34,.05);
}
.admin-subnav-link:hover{ color: inherit; transform: translateY(-1px); }
.admin-subnav-link.is-active{
  background: rgba(31,111,95,.12);
  color: #1f6f5f;
  border-color: rgba(31,111,95,.20);
}
[data-bs-theme="dark"] .admin-subnav-link{
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.08);
}
[data-bs-theme="dark"] .admin-subnav-link.is-active{
  color: #7bd6b7;
  background: rgba(31,111,95,.20);
}
.admin-page{ display: grid; gap: 1.25rem; }
.admin-hero{
  background:
    radial-gradient(circle at top right, rgba(53,141,99,.14), transparent 28%),
    linear-gradient(135deg, rgba(255,255,255,.95), rgba(244,248,246,.96));
}
[data-bs-theme="dark"] .admin-hero{
  background:
    radial-gradient(circle at top right, rgba(53,141,99,.20), transparent 30%),
    linear-gradient(135deg, rgba(21,27,29,.96), rgba(17,22,24,.98));
}
.admin-hero-text{ max-width: 780px; line-height: 1.7; }
.admin-soft-badge{
  padding: .55rem .9rem;
  border-radius: 999px;
  border: 1px solid rgba(31,111,95,.18);
  background: rgba(31,111,95,.10);
  color: #1f6f5f;
  font-weight: 600;
}
[data-bs-theme="dark"] .admin-soft-badge{ color: #7bd6b7; }
.admin-panel,
.admin-form-card,
.admin-module-card,
.admin-login-card,
.admin-chart-card,
.admin-result-card,
.admin-stat-card{
  border-radius: 1.5rem;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(31,111,95,.10);
  box-shadow: 0 16px 40px rgba(22,40,34,.07);
}
[data-bs-theme="dark"] .admin-panel,
[data-bs-theme="dark"] .admin-form-card,
[data-bs-theme="dark"] .admin-module-card,
[data-bs-theme="dark"] .admin-login-card,
[data-bs-theme="dark"] .admin-chart-card,
[data-bs-theme="dark"] .admin-result-card,
[data-bs-theme="dark"] .admin-stat-card{
  background: rgba(255,255,255,.03);
  border-color: rgba(255,255,255,.08);
}
.admin-panel,
.admin-form-card,
.admin-module-card,
.admin-result-card,
.admin-chart-card{ padding: 1.35rem 1.4rem; }
.admin-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}
.admin-stat-card{ padding: 1.4rem 1.35rem; position: relative; overflow:hidden; }
.admin-stat-card::after{
  content:"";
  position:absolute;
  inset:auto -28px -36px auto;
  width:120px;height:120px;
  background: radial-gradient(circle, rgba(31,111,95,.16), transparent 68%);
}
.admin-stat-card.is-success::after{ background: radial-gradient(circle, rgba(25,135,84,.18), transparent 68%); }
.admin-stat-card.is-warning::after{ background: radial-gradient(circle, rgba(255,193,7,.18), transparent 68%); }
.admin-stat-icon{
  width: 3rem; height: 3rem; border-radius: 1rem;
  display:inline-flex; align-items:center; justify-content:center;
  background: rgba(31,111,95,.10); color:#1f6f5f; font-size:1.2rem; margin-bottom:.8rem;
}
.admin-stat-label{ color: var(--bs-secondary-color); font-size: .95rem; }
.admin-stat-value{ font-size: 2rem; font-weight: 700; line-height: 1.1; margin: .35rem 0 .45rem; }
.admin-stat-note{ color: var(--bs-secondary-color); font-size: .88rem; max-width: 240px; }
.admin-step-grid{ display:grid; gap:1rem; }
.admin-step-card{
  display:flex; gap:1rem; align-items:flex-start;
  padding:1rem 1.05rem; border-radius:1.15rem;
  background: rgba(31,111,95,.05); border:1px solid rgba(31,111,95,.10);
}
.admin-step-num{
  width:2.4rem; height:2.4rem; border-radius:.9rem; display:inline-flex; align-items:center; justify-content:center;
  background:#1f6f5f; color:#fff; font-weight:700; flex:0 0 auto;
}
.admin-note-list{ padding-left: 1.1rem; color: var(--bs-secondary-color); display:grid; gap:.6rem; }
.admin-danger-zone{
  border-radius:1.2rem; padding:1rem 1rem 1.05rem;
  background: rgba(220,53,69,.06); border:1px solid rgba(220,53,69,.12);
}
.admin-module-card{ padding: 1.5rem 1.4rem; }
.admin-module-icon{
  width: 3rem; height: 3rem; border-radius: 1rem; display:inline-flex; align-items:center; justify-content:center;
  background: rgba(31,111,95,.10); color:#1f6f5f; font-size:1.2rem; margin-bottom:1rem;
}
.admin-module-title{ font-weight:700; font-size:1.08rem; margin-bottom:.45rem; }
.admin-module-text{ color: var(--bs-secondary-color); line-height:1.65; }
.admin-note-board{ display:grid; gap:.8rem; }
.admin-note-item{
  display:flex; gap:.7rem; align-items:flex-start; padding:1rem 1.05rem;
  border-radius:1rem; background: rgba(248,249,250,.82); border:1px solid rgba(108,117,125,.12);
}
.admin-note-item i{ color:#1f6f5f; margin-top:.12rem; }
[data-bs-theme="dark"] .admin-note-item{ background: rgba(255,255,255,.03); border-color: rgba(255,255,255,.08); }
.admin-form-card-title{ font-weight:700; margin-bottom:1rem; }
.admin-input{
  min-height: 46px; border-radius: .95rem;
  border-color: rgba(31,111,95,.16);
}
textarea.admin-input{ min-height: 120px; }
.admin-tip-card{
  padding: 1rem 1.05rem;
  border-radius: 1.1rem;
  background: rgba(31,111,95,.06);
  border: 1px solid rgba(31,111,95,.10);
  color: var(--bs-secondary-color);
  line-height: 1.65;
}
.admin-table-wrap{
  border: 1px solid rgba(31,111,95,.08);
  border-radius: 1.1rem;
  overflow: hidden;
}
.admin-table{ margin-bottom: 0; }
.admin-table thead th{
  background: rgba(31,111,95,.06);
  color: var(--bs-secondary-color);
  font-size: .92rem;
  font-weight: 600;
  border-bottom: 1px solid rgba(31,111,95,.08);
}
.admin-table > :not(caption) > * > *{ padding: .92rem .9rem; }
.admin-accordion-item .accordion-button{
  background: rgba(255,255,255,.86);
}
[data-bs-theme="dark"] .admin-accordion-item .accordion-button{ background: rgba(255,255,255,.03); }
.admin-chart-card{ padding: 1.2rem 1.2rem .95rem; }
.admin-comment-card{
  padding: .95rem 1rem; border-radius: 1rem;
  background: rgba(248,249,250,.82); border: 1px solid rgba(108,117,125,.10);
}
[data-bs-theme="dark"] .admin-comment-card{ background: rgba(255,255,255,.03); border-color: rgba(255,255,255,.08); }
.admin-login-page{ min-height: calc(100vh - 240px); align-items:center; }
.admin-login-card{ overflow:hidden; }
.admin-login-mark{
  width: 3.3rem; height: 3.3rem; border-radius: 1.2rem;
  display:inline-flex; align-items:center; justify-content:center;
  background: rgba(31,111,95,.12); color:#1f6f5f; font-size:1.35rem;
}

.vote-step-page .question-kicker{
  display:flex; flex-wrap:wrap; gap:.5rem;
}
.vote-step-page .question-category{
  border-radius:999px;
  padding:.42rem .78rem;
  font-weight:600;
  background: rgba(31,111,95,.08);
  color: var(--vote-primary);
  border:1px solid rgba(31,111,95,.16);
}
.vote-step-page .question-note{
  color: var(--bs-secondary-color);
  font-size: .92rem;
  line-height: 1.5;
}
.vote-step-page .question-main{ min-width:0; }
.vote-step-page .vote-toolbar-mobile{
  position: sticky;
  bottom: 10px;
  z-index: 30;
}
.vote-step-page .mobile-toolbar-shell{
  padding: .7rem .75rem;
  border-radius: 1.2rem;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(31,111,95,.12);
  box-shadow: 0 14px 30px rgba(21,36,31,.12);
  backdrop-filter: blur(12px);
}
[data-bs-theme="dark"] .vote-step-page .mobile-toolbar-shell{
  background: rgba(18,24,27,.92);
  border-color: rgba(255,255,255,.08);
}
.vote-step-page .mobile-toolbar-meta{
  display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin-bottom:.6rem;
}
.vote-step-page .mobile-toolbar-count{
  font-size: .84rem; color: var(--bs-secondary-color);
}
.vote-step-page .mobile-toolbar-row{
  display:flex; align-items:center; gap:.55rem;
}
.vote-step-page .mobile-icon-btn{
  width: 2.9rem; height: 2.9rem; border-radius: .95rem; display:inline-flex; align-items:center; justify-content:center;
  padding:0; flex:0 0 auto;
}
.vote-step-page .mobile-primary-btn{
  flex: 1 1 auto;
  min-height: 2.9rem;
  border-radius: .95rem;
  font-weight: 600;
}
.vote-step-page .mobile-toolbar-menu{
  border-radius: 1rem;
  min-width: 180px;
  margin-bottom: .45rem !important;
}
.vote-step-page .mobile-toolbar-menu .dropdown-item{
  padding: .7rem .9rem;
  border-radius: .85rem;
}
@media (max-width: 991.98px){
  .vote-step-page{ padding-bottom: 88px; }
  .vote-step-page .vote-toolbar-desktop{ display:none !important; }
  .vote-step-page .question-head{ flex-direction: column; }
  .vote-step-page .question-state{ width: 100%; }
  .vote-step-page .state-pill{ white-space: normal; }
  .vote-step-page .helper-grid{ grid-template-columns: 1fr; }
  .vote-step-page .helper-card{ padding: .85rem .9rem; }
  .vote-step-page .question-card .card-body{ padding: 1rem !important; }
  .vote-step-page .question-title{ font-size: 1rem; }
}
@media (max-width: 576px){
  .vote-step-page .vote-hero .card-body,
  .vote-step-page .current-cadre-card .card-body,
  .vote-step-page .option-legend-card .card-body,
  .vote-step-page .comment-card .card-body,
  .vote-step-page .side-card .card-body{ padding: 1rem !important; }
  .vote-step-page .hero-progress-card{ min-width: 100%; }
  .vote-step-page .option-grid{ grid-template-columns: 1fr; gap:.65rem; }
  .vote-step-page .score-option{ min-height: 64px; padding: .8rem .9rem; }
  .vote-step-page .score-option-code{ width: 2.15rem; height: 2.15rem; border-radius: .8rem; }
  .vote-step-page .legend-tags{ gap: .4rem; }
  .vote-step-page .legend-tag{ font-size: .85rem; padding: .4rem .65rem; }
}

/* ===========================
   2026-04-17 抽屉导航 + 二维码预览升级
   =========================== */
.vote-step-page .mobile-toolbar-summary{
  display:flex;
  align-items:center;
  gap:.45rem;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.vote-step-page .mobile-drawer-btn{
  min-height: 2.35rem;
  border-radius: .95rem;
  padding: .42rem .85rem;
  font-weight: 600;
  white-space: nowrap;
}
.vote-step-page .cadre-drawer{
  --bs-offcanvas-width: min(88vw, 380px);
}
.vote-step-page .cadre-drawer .offcanvas-header{
  background: rgba(31,111,95,.06);
}
[data-bs-theme="dark"] .vote-step-page .cadre-drawer .offcanvas-header{
  background: rgba(31,111,95,.12);
}
.vote-step-page .cadre-drawer .offcanvas-body{
  background: var(--bs-body-bg);
}
.vote-step-page .cadre-drawer .step-list{
  max-height: none;
}
.vote-step-page .cadre-drawer .side-card{
  border-radius: 1.2rem;
}
.vote-step-page .cadre-drawer .step-item{
  padding: .85rem .9rem;
}
.vote-step-page .cadre-drawer .vote-notes{
  padding-left: 1rem;
}
@media (max-width: 991.98px){
  .vote-step-page{ padding-bottom: 84px; }
  .vote-step-page .mobile-toolbar-shell{ padding: .62rem .68rem; }
  .vote-step-page .mobile-toolbar-meta{ margin-bottom: .45rem; align-items:flex-start; }
  .vote-step-page .mobile-toolbar-row{ gap: .45rem; }
}
@media (max-width: 576px){
  .vote-step-page .mobile-toolbar-count{ font-size: .8rem; }
  .vote-step-page .mobile-drawer-btn{ padding: .4rem .72rem; }
}

.admin-qr-preview-grid{
  display:grid;
  grid-template-columns: minmax(280px, 1.1fr) minmax(220px, .9fr);
  gap: 1rem;
  align-items: stretch;
}
.admin-qr-phone-frame{
  border-radius: 1.6rem;
  padding: .9rem;
  background: linear-gradient(180deg, rgba(22,40,34,.98), rgba(31,111,95,.90));
  box-shadow: 0 22px 48px rgba(18,34,29,.20);
}
.admin-qr-phone-head{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  margin-bottom:.75rem;
}
.admin-qr-phone-dot{
  width:.42rem;
  height:.42rem;
  border-radius:999px;
  background: rgba(255,255,255,.35);
}
.admin-qr-preview-stage{
  min-height: 100%;
  border-radius: 1.2rem;
  background: #ffffff;
  padding: 1.2rem 1.1rem;
  display:grid;
  gap:.95rem;
}
.admin-qr-preview-title{
  font-weight: 700;
  font-size: 1.05rem;
  text-align: center;
  line-height: 1.5;
}
.admin-qr-preview-code-wrap{
  border-radius: 1rem;
  border: 1px dashed rgba(31,111,95,.20);
  background: linear-gradient(180deg, rgba(31,111,95,.03), rgba(31,111,95,.01));
  padding: 1rem;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height: 248px;
}
.admin-qr-preview-image,
.admin-qr-modal-image{
  width: min(100%, 220px);
  aspect-ratio: 1 / 1;
  display:block;
  background:#fff;
  border-radius: 1rem;
}
.admin-qr-preview-note{
  border-radius: 1rem;
  background: rgba(248,249,250,.95);
  border: 1px solid rgba(31,111,95,.10);
  padding: .9rem 1rem;
  color: var(--bs-secondary-color);
  line-height: 1.7;
  min-height: 92px;
}
.admin-token-info-card{
  padding: 1rem 1.05rem;
  border-radius: 1.1rem;
  background: rgba(248,249,250,.88);
  border: 1px solid rgba(31,111,95,.08);
}
[data-bs-theme="dark"] .admin-token-info-card,
[data-bs-theme="dark"] .admin-qr-preview-note{
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.08);
}
.admin-token-code{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: .92rem;
  line-height: 1.65;
  padding: .8rem .9rem;
  border-radius: .95rem;
  background: rgba(31,111,95,.06);
  border: 1px dashed rgba(31,111,95,.18);
  word-break: break-all;
}
.admin-qr-open-btn{
  white-space: nowrap;
}
.admin-qr-modal .modal-content,
.admin-qr-modal{
  border-radius: 1.4rem;
}
@media (max-width: 1199.98px){
  .admin-qr-preview-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 576px){
  .admin-qr-preview-stage{ padding: 1rem .9rem; }
  .admin-token-code{ font-size: .86rem; }
}

/* ===========================
   2026-04-17 紧凑头部 + 精致抽屉导航 + 极简测评页
   =========================== */
.vote-step-page .compact-vote-hero{
  border: 1px solid rgba(31,111,95,.10);
  background:
    radial-gradient(circle at top right, rgba(31,111,95,.10), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,251,249,.98));
}
[data-bs-theme="dark"] .vote-step-page .compact-vote-hero{
  background:
    radial-gradient(circle at top right, rgba(84,180,156,.12), transparent 34%),
    linear-gradient(180deg, rgba(21,27,30,.98), rgba(17,22,24,.98));
}
.vote-step-page .compact-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}
.vote-step-page .compact-head-main{ min-width:0; }
.vote-step-page .compact-head-eyebrow{
  font-size:.82rem;
  color:var(--bs-secondary-color);
  margin-bottom:.35rem;
}
.vote-step-page .compact-head-title-row{
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
}
.vote-step-page .compact-head-title-row h3{
  font-size:1.35rem;
  letter-spacing:.01em;
}
.vote-step-page .compact-step-badge{
  background:rgba(31,111,95,.08);
  color:var(--vote-primary);
  border:1px solid rgba(31,111,95,.14);
  padding:.45rem .8rem;
  font-weight:700;
}
.vote-step-page .compact-cadre-line{
  margin-top:.65rem;
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
  color:var(--bs-secondary-color);
}
.vote-step-page .compact-cadre-name{
  font-size:1.18rem;
  font-weight:800;
  color:var(--bs-heading-color);
}
.vote-step-page .compact-divider{
  width:.34rem;
  height:.34rem;
  border-radius:999px;
  background:rgba(31,111,95,.42);
}
.vote-step-page .compact-cadre-role{
  font-size:.96rem;
}
.vote-step-page .compact-head-side{
  min-width:108px;
  text-align:right;
  padding:.15rem 0 .15rem 1rem;
  border-left:1px solid rgba(31,111,95,.10);
}
.vote-step-page .compact-progress-number{
  font-size:1.38rem;
  font-weight:800;
  color:var(--vote-primary);
  line-height:1;
}
.vote-step-page .compact-progress-label{
  margin-top:.35rem;
  font-size:.83rem;
  color:var(--bs-secondary-color);
}
.vote-step-page .compact-progress-bar{
  height:.55rem;
  border-radius:999px;
}
.vote-step-page .compact-meta-row,
.vote-step-page .desktop-side-meta{
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
}
.vote-step-page .compact-meta-chip{
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  min-height:2rem;
  padding:.36rem .78rem;
  border-radius:999px;
  background:rgba(31,111,95,.07);
  border:1px solid rgba(31,111,95,.11);
  color:var(--bs-body-color);
  font-size:.9rem;
}
.vote-step-page .question-card{
  border:1px solid rgba(31,111,95,.08);
}
.vote-step-page .question-card.is-answered{
  box-shadow:0 14px 34px rgba(31,111,95,.08);
}
.vote-step-page .question-head{
  display:flex;
  align-items:flex-start;
  gap:.9rem;
}
.vote-step-page .question-index{
  width:2.55rem;
  height:2.55rem;
  border-radius:.95rem;
  background:linear-gradient(180deg, rgba(31,111,95,.10), rgba(31,111,95,.06));
  border:1px solid rgba(31,111,95,.10);
  color:var(--vote-primary);
  font-size:1rem;
  font-weight:800;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
}
.vote-step-page .question-kicker{
  gap:.45rem;
  margin-bottom:.55rem !important;
}
.vote-step-page .question-kind,
.vote-step-page .question-category{
  padding:.38rem .72rem;
  font-size:.83rem;
  font-weight:700;
}
.vote-step-page .question-title{
  font-size:1.06rem;
  line-height:1.62;
  letter-spacing:.01em;
}
.vote-step-page .score-option{
  min-height:72px;
  border-width:1px;
  border-color:rgba(31,111,95,.12);
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(249,251,250,.96));
}
.vote-step-page .score-option:hover{
  border-color:rgba(31,111,95,.22);
  transform:translateY(-1px);
}
.vote-step-page .btn-check:checked + .score-option{
  background:linear-gradient(180deg, rgba(31,111,95,.12), rgba(31,111,95,.08));
  border-color:rgba(31,111,95,.28);
  box-shadow:0 10px 24px rgba(31,111,95,.10);
}
.vote-step-page .comment-card{
  border:1px solid rgba(31,111,95,.08);
}
.vote-step-page .suggestion-box{
  min-height:112px;
  border-radius:1rem;
  border-color:rgba(31,111,95,.12);
}
.vote-step-page .toolbar-status{
  min-width:0;
}
.vote-step-page .vote-toolbar-mobile{
  bottom:8px;
}
.vote-step-page .mobile-toolbar-shell{
  padding:.5rem .56rem;
  border-radius:1.08rem;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(31,111,95,.12);
  box-shadow:0 12px 24px rgba(21,36,31,.10);
}
.vote-step-page .mobile-toolbar-meta{
  margin-bottom:.38rem;
}
.vote-step-page .mobile-toolbar-summary{
  gap:.38rem;
}
.vote-step-page .mobile-drawer-btn,
.vote-step-page .mobile-icon-btn{
  min-height:2.3rem;
  height:2.3rem;
  border-radius:.88rem;
}
.vote-step-page .mobile-drawer-btn{
  padding:.32rem .72rem;
  font-size:.92rem;
}
.vote-step-page .mobile-icon-btn{
  width:2.3rem;
}
.vote-step-page .mobile-primary-btn{
  min-height:2.55rem;
  border-radius:.9rem;
  font-size:.96rem;
}
.vote-step-page .mobile-toolbar-count{
  font-size:.8rem;
}
.vote-step-page .cadre-drawer{
  --bs-offcanvas-width:min(89vw, 390px);
  border-left:1px solid rgba(31,111,95,.10);
}
.vote-step-page .cadre-drawer .drawer-header{
  background:linear-gradient(135deg, #1f6f5f 0%, #358d63 100%);
  color:#fff;
}
.vote-step-page .cadre-drawer .offcanvas-body{
  padding:1rem;
  background:
    radial-gradient(circle at top right, rgba(31,111,95,.08), transparent 34%),
    linear-gradient(180deg, rgba(247,251,249,.96), rgba(255,255,255,.98));
}
[data-bs-theme="dark"] .vote-step-page .cadre-drawer .offcanvas-body{
  background:linear-gradient(180deg, rgba(17,22,24,.98), rgba(18,24,27,.98));
}
.vote-step-page .drawer-summary-card{
  padding:1rem;
  border-radius:1.25rem;
  color:#fff;
  background:linear-gradient(135deg, rgba(31,111,95,.96), rgba(53,141,99,.92));
  box-shadow:0 18px 34px rgba(31,111,95,.18);
}
.vote-step-page .drawer-summary-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.9rem;
}
.vote-step-page .drawer-summary-label{
  font-size:.8rem;
  color:rgba(255,255,255,.72);
  margin-bottom:.28rem;
}
.vote-step-page .drawer-summary-name{
  font-size:1.18rem;
  font-weight:800;
  line-height:1.25;
}
.vote-step-page .drawer-summary-role{
  margin-top:.18rem;
  font-size:.9rem;
  color:rgba(255,255,255,.82);
}
.vote-step-page .drawer-summary-step{
  min-width:3.1rem;
  height:3.1rem;
  border-radius:1rem;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
}
.vote-step-page .drawer-summary-card .side-progress-bar{
  background:rgba(255,255,255,.18);
}
.vote-step-page .drawer-summary-card .progress-bar{
  background:#fff;
}
.vote-step-page .drawer-summary-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
  font-size:.9rem;
  color:rgba(255,255,255,.9);
}
.vote-step-page .drawer-list-card{
  border:1px solid rgba(31,111,95,.08);
  background:rgba(255,255,255,.92);
}
[data-bs-theme="dark"] .vote-step-page .drawer-list-card{
  background:rgba(255,255,255,.03);
  border-color:rgba(255,255,255,.08);
}
.vote-step-page .cadre-drawer .step-item,
.vote-step-page .side-card .step-item{
  border-radius:1rem;
}
.vote-step-page .step-item{
  border:1px solid rgba(31,111,95,.08);
  background:rgba(255,255,255,.86);
}
[data-bs-theme="dark"] .vote-step-page .step-item{
  background:rgba(255,255,255,.02);
  border-color:rgba(255,255,255,.06);
}
.vote-step-page .step-item:hover:not(:disabled){
  border-color:rgba(31,111,95,.18);
}
.vote-step-page .step-item-index{
  width:2.35rem;
  height:2.35rem;
  border-radius:.9rem;
}
.vote-step-page .side-progress-card{
  border:1px solid rgba(31,111,95,.08);
}
@media (max-width: 991.98px){
  .vote-step-page{ padding-bottom:76px; }
  .vote-step-page .compact-head{
    flex-direction:column;
    gap:.85rem;
  }
  .vote-step-page .compact-head-side{
    width:100%;
    padding:.65rem 0 0;
    border-left:0;
    border-top:1px solid rgba(31,111,95,.10);
    text-align:left;
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:1rem;
  }
  .vote-step-page .compact-progress-number{ font-size:1.18rem; }
  .vote-step-page .compact-cadre-name{ font-size:1.08rem; }
  .vote-step-page .question-card .card-body{ padding:1rem !important; }
}
@media (max-width: 576px){
  .vote-step-page .vote-hero .card-body,
  .vote-step-page .comment-card .card-body,
  .vote-step-page .side-card .card-body{ padding:.95rem !important; }
  .vote-step-page .compact-head-title-row h3{ font-size:1.14rem; }
  .vote-step-page .compact-step-badge{ padding:.36rem .68rem; font-size:.8rem; }
  .vote-step-page .compact-meta-row{ gap:.42rem; }
  .vote-step-page .compact-meta-chip,
  .vote-step-page .completion-pill{ font-size:.82rem; }
  .vote-step-page .question-head{ gap:.78rem; }
  .vote-step-page .question-index{ width:2.25rem; height:2.25rem; border-radius:.82rem; font-size:.92rem; }
  .vote-step-page .question-kind,
  .vote-step-page .question-category{ font-size:.78rem; padding:.32rem .58rem; }
  .vote-step-page .question-title{ font-size:.98rem; line-height:1.58; }
  .vote-step-page .option-grid{ gap:.58rem; }
  .vote-step-page .score-option{ min-height:60px; padding:.72rem .8rem; }
  .vote-step-page .score-option-code{ width:2rem; height:2rem; }
  .vote-step-page .mobile-toolbar-shell{ padding:.46rem .5rem; }
  .vote-step-page .mobile-primary-btn{ min-height:2.45rem; }
}
.admin-qr-preview-block-label{
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--bs-secondary-color);
  text-transform:uppercase;
}


/* ===========================
   2026-04-17 稳定版：顶部信息分层 + 抽屉导航美化
   =========================== */
.vote-step-page .vote-top-stack{
  display:grid;
  gap:1rem;
}
.vote-step-page .vote-title-band,
.vote-step-page .vote-cadre-band{
  border:1px solid rgba(31,111,95,.10);
}
.vote-step-page .vote-title-band{
  background:
    radial-gradient(circle at top right, rgba(31,111,95,.10), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,251,249,.98));
}
[data-bs-theme="dark"] .vote-step-page .vote-title-band{
  background:
    radial-gradient(circle at top right, rgba(84,180,156,.12), transparent 34%),
    linear-gradient(180deg, rgba(21,27,30,.98), rgba(17,22,24,.98));
}
.vote-step-page .vote-cadre-band{
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,252,251,.98));
}
[data-bs-theme="dark"] .vote-step-page .vote-cadre-band{
  background:linear-gradient(180deg, rgba(22,28,31,.98), rgba(17,22,24,.98));
}
.vote-step-page .title-band-main{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}
.vote-step-page .title-band-left{ min-width:0; }
.vote-step-page .title-band-row{
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
}
.vote-step-page .title-band-row h3{
  font-size:1.35rem;
  letter-spacing:.01em;
}
.vote-step-page .title-band-right{
  min-width:108px;
  text-align:right;
  padding:.15rem 0 .15rem 1rem;
  border-left:1px solid rgba(31,111,95,.10);
}
.vote-step-page .cadre-band-shell{
  display:flex;
  align-items:flex-start;
  gap:1rem;
}
.vote-step-page .cadre-band-mark{
  width:92px;
  min-width:92px;
  border-radius:1rem;
  padding:.9rem .8rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:.55rem;
  color:#fff;
  background:linear-gradient(135deg, rgba(31,111,95,.96), rgba(53,141,99,.90));
  box-shadow:0 14px 28px rgba(31,111,95,.16);
}
.vote-step-page .cadre-band-mark-label{
  font-size:.78rem;
  color:rgba(255,255,255,.76);
  line-height:1.35;
}
.vote-step-page .cadre-band-mark-step{
  font-size:1.45rem;
  font-weight:800;
  line-height:1;
}
.vote-step-page .cadre-band-main{ min-width:0; flex:1; }
.vote-step-page .cadre-band-name-row{
  display:flex;
  align-items:center;
  gap:.7rem;
  flex-wrap:wrap;
}
.vote-step-page .cadre-band-name{
  font-size:1.24rem;
  font-weight:800;
  color:var(--bs-heading-color);
  letter-spacing:.01em;
}
.vote-step-page .cadre-band-role{
  display:inline-flex;
  align-items:center;
  min-height:2rem;
  padding:.36rem .78rem;
  border-radius:999px;
  background:rgba(31,111,95,.07);
  border:1px solid rgba(31,111,95,.11);
  color:var(--bs-secondary-color);
  font-size:.92rem;
}
.vote-step-page .drawer-header-eyebrow{
  font-size:.8rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,.70);
  margin-bottom:.18rem;
}
.vote-step-page .drawer-list-shell{
  border-radius:1.2rem;
  padding:.9rem;
  background:rgba(255,255,255,.86);
  border:1px solid rgba(31,111,95,.08);
  box-shadow:0 10px 24px rgba(22,38,33,.06);
}
[data-bs-theme="dark"] .vote-step-page .drawer-list-shell{
  background:rgba(255,255,255,.03);
  border-color:rgba(255,255,255,.08);
}
.vote-step-page .drawer-list-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin-bottom:.8rem;
}
.vote-step-page .drawer-list-title{
  font-weight:700;
  color:var(--bs-heading-color);
}
.vote-step-page .drawer-list-tip{
  font-size:.82rem;
  color:var(--bs-secondary-color);
}
.vote-step-page .drawer-step-list{
  display:grid;
  gap:.72rem;
}
.vote-step-page .drawer-step-card{
  width:100%;
  border:1px solid rgba(31,111,95,.08);
  border-radius:1.05rem;
  background:rgba(255,255,255,.95);
  padding:.8rem;
  text-align:left;
  display:grid;
  grid-template-columns: 2.6rem 1fr auto;
  align-items:center;
  gap:.72rem;
  transition:all .18s ease;
}
[data-bs-theme="dark"] .vote-step-page .drawer-step-card{
  background:rgba(255,255,255,.03);
  border-color:rgba(255,255,255,.08);
}
.vote-step-page .drawer-step-card:hover:not(:disabled){
  transform:translateY(-1px);
  border-color:rgba(31,111,95,.18);
  box-shadow:0 12px 24px rgba(22,38,33,.08);
}
.vote-step-page .drawer-step-card:disabled{
  opacity:1;
  cursor:default;
}
.vote-step-page .drawer-step-index{
  width:2.4rem;
  height:2.4rem;
  border-radius:.95rem;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.96rem;
  font-weight:800;
  background:linear-gradient(180deg, rgba(31,111,95,.10), rgba(31,111,95,.06));
  color:var(--vote-primary);
  border:1px solid rgba(31,111,95,.10);
}
.vote-step-page .drawer-step-body{
  min-width:0;
  display:grid;
  gap:.12rem;
}
.vote-step-page .drawer-step-name{
  font-size:1rem;
  font-weight:700;
  color:var(--bs-heading-color);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.vote-step-page .drawer-step-role{
  font-size:.86rem;
  color:var(--bs-secondary-color);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.vote-step-page .drawer-step-progress{
  min-width:3.2rem;
  text-align:center;
  border-radius:.85rem;
  padding:.36rem .5rem;
  background:rgba(31,111,95,.06);
  border:1px solid rgba(31,111,95,.10);
  color:var(--vote-primary);
  font-size:.84rem;
  font-weight:700;
}
.vote-step-page .drawer-step-card.step-item-done .drawer-step-index,
.vote-step-page .drawer-step-card.step-item-done .drawer-step-progress{
  background:rgba(25,135,84,.10);
  border-color:rgba(25,135,84,.18);
  color:#198754;
}
.vote-step-page .drawer-step-card.is-current{
  background:linear-gradient(180deg, rgba(31,111,95,.10), rgba(31,111,95,.06));
  border-color:rgba(31,111,95,.20);
  box-shadow:0 14px 28px rgba(31,111,95,.10);
}
.vote-step-page .drawer-step-card.is-current .drawer-step-progress{
  background:#fff;
}
@media (max-width: 991.98px){
  .vote-step-page .title-band-main,
  .vote-step-page .cadre-band-shell{
    flex-direction:column;
    gap:.85rem;
  }
  .vote-step-page .title-band-right{
    width:100%;
    padding:.65rem 0 0;
    border-left:0;
    border-top:1px solid rgba(31,111,95,.10);
    text-align:left;
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:1rem;
  }
  .vote-step-page .cadre-band-mark{
    width:100%;
    min-width:0;
    flex-direction:row;
    align-items:center;
    padding:.8rem .95rem;
  }
}
@media (max-width: 576px){
  .vote-step-page .vote-title-band .card-body,
  .vote-step-page .vote-cadre-band .card-body,
  .vote-step-page .comment-card .card-body,
  .vote-step-page .side-card .card-body{ padding:.95rem !important; }
  .vote-step-page .title-band-row h3{ font-size:1.14rem; }
  .vote-step-page .cadre-band-name{ font-size:1.08rem; }
  .vote-step-page .cadre-band-role{ font-size:.86rem; }
  .vote-step-page .drawer-step-card{
    grid-template-columns:2.3rem 1fr auto;
    padding:.72rem;
    gap:.62rem;
  }
  .vote-step-page .drawer-step-index{
    width:2.2rem;
    height:2.2rem;
    border-radius:.84rem;
  }
  .vote-step-page .drawer-step-progress{
    min-width:2.8rem;
    padding:.3rem .42rem;
    font-size:.8rem;
  }
}


/* ===========================
   2026-04-17 优化版：沉浸式投票页 + 更柔和的移动端导航
   =========================== */
.vote-immersive-body{
  background:
    radial-gradient(circle at top right, rgba(31,111,95,.08), transparent 26%),
    linear-gradient(180deg, #f4f7f5 0%, #eef3f0 100%);
}
[data-bs-theme="dark"] .vote-immersive-body{
  background:
    radial-gradient(circle at top right, rgba(84,180,156,.08), transparent 24%),
    linear-gradient(180deg, #101618 0%, #141c20 100%);
}
.vote-step-page{
  max-width:1320px;
  margin:0 auto;
  padding-left:1rem;
  padding-right:1rem;
}
.vote-step-page .question-title-row{
  display:grid;
  gap:.5rem;
}
.vote-step-page .question-state-wrap{
  display:flex;
  justify-content:flex-start;
}
.vote-step-page .page-progress-strip .progress{
  height:.52rem;
  background:rgba(31,111,95,.08);
  border-radius:999px;
  overflow:hidden;
}
.vote-step-page .page-progress-strip .progress-bar{
  background:linear-gradient(90deg, #1f6f5f 0%, #358d63 100%);
}
.vote-step-page .score-option,
.vote-step-page .step-item,
.vote-step-page .drawer-step-card,
.vote-step-page .mobile-drawer-btn,
.vote-step-page .mobile-icon-btn,
.vote-step-page .mobile-primary-btn{
  -webkit-appearance:none;
  appearance:none;
  font:inherit;
}
.vote-step-page .score-option{
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,249,.98));
  border:1px solid rgba(31,111,95,.11);
  box-shadow:0 8px 18px rgba(20,35,30,.05);
}
.vote-step-page .btn-check:checked + .score-option{
  box-shadow:0 14px 28px rgba(31,111,95,.12);
}
.vote-step-page .mobile-toolbar-shell{
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.vote-step-page .mobile-drawer-btn{
  font-weight:700;
  color:var(--vote-primary);
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,251,249,.96));
}
.vote-step-page .mobile-icon-btn{
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(250,252,251,.96));
}
.vote-step-page .mobile-primary-btn{
  font-weight:700;
  box-shadow:0 12px 24px rgba(31,111,95,.14);
}
.vote-step-page .drawer-summary-card{
  position:relative;
  overflow:hidden;
}
.vote-step-page .drawer-summary-card::after{
  content:"";
  position:absolute;
  right:-24px;
  top:-26px;
  width:110px;
  height:110px;
  border-radius:50%;
  background:rgba(255,255,255,.08);
}
.vote-step-page .drawer-list-shell{
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.vote-step-page .drawer-step-card{
  position:relative;
  overflow:hidden;
  box-shadow:0 8px 18px rgba(20,35,30,.05);
}
.vote-step-page .drawer-step-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:transparent;
  transition:background .18s ease;
}
.vote-step-page .drawer-step-card.step-item-done::before{
  background:rgba(25,135,84,.9);
}
.vote-step-page .drawer-step-card.is-current::before{
  background:rgba(31,111,95,.92);
}
.vote-step-page .drawer-step-progress i{
  opacity:.85;
}
.vote-step-page .vote-cadre-band{
  box-shadow:0 12px 28px rgba(21,36,31,.06);
}
.vote-step-page .vote-title-band{
  box-shadow:0 12px 28px rgba(21,36,31,.05);
}
@media (max-width: 991.98px){
  .vote-step-page{
    padding-left:.78rem;
    padding-right:.78rem;
  }
  .vote-step-page .cadre-drawer{
    --bs-offcanvas-width:min(92vw, 410px);
    border-top-left-radius:1.3rem;
    border-bottom-left-radius:1.3rem;
  }
}
@media (max-width: 576px){
  .vote-step-page{
    padding-left:.7rem;
    padding-right:.7rem;
  }
  .vote-step-page .vote-top-stack{
    gap:.78rem;
  }
  .vote-step-page .question-title-row{
    gap:.42rem;
  }
  .vote-step-page .question-state-wrap{
    margin-top:.04rem;
  }
  .vote-step-page .mobile-drawer-btn{
    padding:.35rem .75rem;
  }
  .vote-step-page .drawer-summary-card,
  .vote-step-page .drawer-list-shell{
    border-radius:1.08rem;
  }
}

/* ===========================
   2026-04-17 精修版：手机端成品化视觉提升
   =========================== */
.vote-step-page.vote-shell{
  max-width: 1280px;
}
.vote-step-page .title-band-row h3,
.vote-step-page .cadre-band-name,
.vote-step-page .question-title{
  word-break: break-word;
}
.vote-step-page .mobile-focus-strip{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:.55rem;
}
.vote-step-page .focus-chip{
  border-radius: 1rem;
  padding: .68rem .72rem;
  border:1px solid rgba(31,111,95,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,250,248,.98));
  box-shadow: 0 8px 16px rgba(20,35,30,.04);
  min-width:0;
}
.vote-step-page .focus-chip.is-main{
  background: linear-gradient(135deg, rgba(31,111,95,.12), rgba(53,141,99,.09));
  border-color: rgba(31,111,95,.16);
}
.vote-step-page .focus-chip-label{
  display:block;
  font-size:.74rem;
  color:var(--bs-secondary-color);
  margin-bottom:.16rem;
}
.vote-step-page .focus-chip-value{
  display:block;
  font-size:.92rem;
  font-weight:800;
  color:var(--bs-heading-color);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.vote-step-page .question-title-row{
  align-items:start;
}
.vote-step-page .question-state-wrap{
  justify-content:flex-start;
}
.vote-step-page .state-pill{
  font-weight:700;
  border-radius:999px;
  box-shadow: inset 0 0 0 1px rgba(31,111,95,.08);
}
.vote-step-page .state-pill.is-selected{
  box-shadow:none;
}
.vote-step-page .option-grid{
  gap:.72rem;
}
.vote-step-page .option-cell{
  min-width:0;
}
.vote-step-page .score-option{
  position:relative;
  display:grid;
  gap:.52rem;
  align-content:center;
  border-radius:1.1rem;
}
.vote-step-page .score-option-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.6rem;
}
.vote-step-page .score-option-check{
  width:1.6rem;
  height:1.6rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:1px solid rgba(31,111,95,.12);
  background:rgba(31,111,95,.04);
  color:rgba(31,111,95,.44);
  flex:0 0 auto;
  transition:all .18s ease;
}
.vote-step-page .score-option-text{
  font-weight:700;
  color:var(--bs-heading-color);
}
.vote-step-page .btn-check:checked + .score-option .score-option-check{
  background:rgba(31,111,95,.95);
  border-color:rgba(31,111,95,.95);
  color:#fff;
  box-shadow:0 8px 16px rgba(31,111,95,.18);
}
.vote-step-page .btn-check:checked + .score-option .score-option-text{
  color:var(--vote-primary);
}
.vote-step-page .mobile-toolbar-shell{
  border-radius:1.18rem;
}
.vote-step-page .mobile-toolbar-meta{
  gap:.55rem;
  align-items:center;
}
.vote-step-page .mobile-toolbar-summary{
  min-width:0;
  display:grid;
  gap:.18rem;
}
.vote-step-page .mobile-toolbar-count{
  font-weight:700;
  color:var(--bs-secondary-color);
}
.vote-step-page .mobile-drawer-btn,
.vote-step-page .mobile-icon-btn{
  box-shadow: 0 8px 16px rgba(20,35,30,.05);
}
.vote-step-page .mobile-drawer-btn{
  border-color:rgba(31,111,95,.14) !important;
}
.vote-step-page .mobile-toolbar-row{
  align-items:center;
}
.vote-step-page .mobile-primary-btn{
  background:linear-gradient(135deg, #1f6f5f 0%, #358d63 100%);
  border:0;
}
.vote-step-page .drawer-mini-stats{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  margin-bottom:.78rem;
}
.vote-step-page .drawer-mini-stat{
  display:inline-flex;
  align-items:center;
  min-height:1.95rem;
  border-radius:999px;
  padding:.28rem .68rem;
  background:rgba(31,111,95,.06);
  border:1px solid rgba(31,111,95,.10);
  color:var(--vote-primary);
  font-size:.82rem;
  font-weight:700;
}
.vote-step-page .drawer-step-card{
  grid-template-columns: 2.55rem minmax(0,1fr) auto;
}
.vote-step-page .drawer-step-body{
  gap:.18rem;
}
.vote-step-page .drawer-step-bar{
  display:block;
  width:100%;
  height:.34rem;
  margin-top:.18rem;
  border-radius:999px;
  overflow:hidden;
  background:rgba(31,111,95,.08);
}
.vote-step-page .drawer-step-bar-fill{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, #1f6f5f 0%, #358d63 100%);
}
.vote-step-page .drawer-step-side{
  display:grid;
  justify-items:end;
  gap:.32rem;
}
.vote-step-page .drawer-step-status{
  display:inline-flex;
  align-items:center;
  min-height:1.55rem;
  border-radius:999px;
  padding:.14rem .55rem;
  font-size:.74rem;
  font-weight:800;
  border:1px solid rgba(31,111,95,.10);
  background:rgba(31,111,95,.04);
  color:var(--bs-secondary-color);
}
.vote-step-page .drawer-step-status.is-done{
  color:#198754;
  background:rgba(25,135,84,.08);
  border-color:rgba(25,135,84,.16);
}
.vote-step-page .drawer-step-status.is-current{
  color:var(--vote-primary);
  background:rgba(31,111,95,.08);
  border-color:rgba(31,111,95,.16);
}
.vote-step-page .drawer-step-status.is-todo{
  color:var(--bs-secondary-color);
}
.vote-step-page .drawer-step-card.is-current .drawer-step-status{
  background:#fff;
}
.vote-step-page .drawer-step-progress{
  min-width:3.55rem;
}
@media (max-width: 991.98px){
  .vote-step-page .question-title-row{
    gap:.44rem;
  }
  .vote-step-page .question-state-wrap{
    width:100%;
  }
  .vote-step-page .state-pill{
    white-space:nowrap;
    max-width:100%;
  }
  .vote-step-page .mobile-toolbar-shell{
    padding:.58rem .62rem;
  }
}
@media (max-width: 576px){
  .vote-step-page .vote-top-stack{
    margin-bottom:.95rem !important;
  }
  .vote-step-page .mobile-focus-strip{
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap:.45rem;
  }
  .vote-step-page .focus-chip{
    padding:.56rem .58rem;
    border-radius:.92rem;
  }
  .vote-step-page .focus-chip-label{
    font-size:.7rem;
  }
  .vote-step-page .focus-chip-value{
    font-size:.82rem;
  }
  .vote-step-page .compact-meta-row{
    display:grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap:.42rem;
  }
  .vote-step-page .compact-meta-row .completion-pill{
    grid-column: 1 / -1;
    justify-content:center;
  }
  .vote-step-page .compact-meta-chip,
  .vote-step-page .completion-pill{
    justify-content:center;
    min-height:2.05rem;
    padding:.34rem .55rem;
    border-radius:.88rem;
  }
  .vote-step-page .question-kicker{
    display:flex;
    flex-wrap:wrap;
  }
  .vote-step-page .option-grid{
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap:.58rem;
  }
  .vote-step-page .score-option{
    min-height:74px;
    padding:.72rem .72rem;
    border-radius:1rem;
  }
  .vote-step-page .score-option-head{
    gap:.45rem;
  }
  .vote-step-page .score-option-code{
    width:1.86rem;
    height:1.86rem;
    border-radius:.76rem;
    font-size:.86rem;
  }
  .vote-step-page .score-option-check{
    width:1.42rem;
    height:1.42rem;
    font-size:.78rem;
  }
  .vote-step-page .score-option-text{
    font-size:.9rem;
    line-height:1.28;
  }
  .vote-step-page .mobile-toolbar-meta{
    justify-content:space-between;
  }
  .vote-step-page .mobile-toolbar-summary{
    text-align:right;
  }
  .vote-step-page .mobile-drawer-btn{
    padding:.35rem .68rem;
    min-width:5.55rem;
  }
  .vote-step-page .mobile-primary-btn{
    min-width:0;
    flex:1 1 auto;
  }
  .vote-step-page .drawer-mini-stats{
    margin-bottom:.68rem;
  }
  .vote-step-page .drawer-step-card{
    grid-template-columns: 2.2rem minmax(0,1fr);
    gap:.6rem;
    padding:.72rem;
  }
  .vote-step-page .drawer-step-side{
    grid-column: 2 / 3;
    justify-items:start;
    grid-auto-flow:column;
    align-items:center;
    gap:.42rem;
  }
  .vote-step-page .drawer-step-progress{
    min-width:0;
  }
  .vote-step-page .drawer-step-status{
    font-size:.72rem;
    padding:.12rem .48rem;
  }
}
