/* Pontos de Montão — tokens compartilhados */
:root {
  --mt-ink: #1a2e28;
  --mt-muted: #5a6f68;
  --mt-paper: #f7f4ef;
  --mt-surface: #ffffff;
  --mt-accent: #2f6f5e;
  --mt-accent-2: #c45c26;
  --mt-gain: #1f7a4c;
  --mt-use: #b45309;
  --mt-expire: #9b1c1c;
  --mt-refund: #475569;
  --mt-radius: 14px;
  --mt-shadow: 0 10px 30px rgba(26, 46, 40, 0.08);
  --mt-font: "Segoe UI", system-ui, sans-serif;
}
.mt-page { font-family: var(--mt-font); color: var(--mt-ink); padding: 16px 16px 40px; max-width: 1100px; margin: 0 auto; }
.mt-kicker { text-transform: uppercase; letter-spacing: .08em; font-size: 12px; color: var(--mt-muted); margin: 0 0 6px; }
.mt-title { font-size: clamp(1.5rem, 3vw, 2rem); margin: 0 0 8px; font-weight: 700; }
.mt-lead { color: var(--mt-muted); margin: 0 0 20px; line-height: 1.45; }
.mt-grid-kpi { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin-bottom: 20px; }
.mt-kpi { background: var(--mt-surface); border-radius: var(--mt-radius); padding: 14px 16px; box-shadow: var(--mt-shadow); }
.mt-kpi strong { display: block; font-size: 1.4rem; }
.mt-kpi span { color: var(--mt-muted); font-size: .85rem; }
.mt-card { background: var(--mt-surface); border-radius: var(--mt-radius); padding: 16px; box-shadow: var(--mt-shadow); margin-bottom: 12px; }
.mt-card-row { display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; }
.mt-btn { appearance: none; border: 0; border-radius: 999px; padding: 10px 18px; font-weight: 600; cursor: pointer; background: var(--mt-accent); color: #fff; }
.mt-btn:hover { filter: brightness(1.05); }
.mt-btn-ghost { background: transparent; color: var(--mt-accent); border: 1px solid rgba(47,111,94,.35); }
.mt-btn-accent { background: var(--mt-accent-2); }
.mt-btn:disabled { opacity: .45; cursor: not-allowed; }
.mt-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.mt-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.mt-field input, .mt-field select, .mt-field textarea {
  border: 1px solid #d5ddd9; border-radius: 10px; padding: 10px 12px; font: inherit;
}
.mt-badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.mt-badge-gain { background: #dcfce7; color: var(--mt-gain); }
.mt-badge-use { background: #ffedd5; color: var(--mt-use); }
.mt-badge-expire { background: #fee2e2; color: var(--mt-expire); }
.mt-badge-refund { background: #e2e8f0; color: var(--mt-refund); }
.mt-move { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid #ebe6df; }
.mt-move-pts { font-weight: 700; min-width: 90px; }
.mt-move-pts.gain { color: var(--mt-gain); }
.mt-move-pts.use, .mt-move-pts.expire { color: var(--mt-expire); }
.mt-empty { color: var(--mt-muted); padding: 24px; text-align: center; }
.mt-progress {
  height: 8px;
  border-radius: 999px;
  background: #e8efeC;
  overflow: hidden;
}
.mt-progress > span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #2f6f5e, #D4A017);
  border-radius: 999px;
}
.mt-alert { padding: 12px 14px; border-radius: 12px; margin-bottom: 10px; font-size: .92rem; }
.mt-alert-info { background: #eff6ff; border: 1px solid #bfdbfe; color: #1e3a5f; }
.mt-alert-warn { background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412; }
.mt-alert-danger { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }
.mt-modal-back { position: fixed; inset: 0; background: rgba(26,46,40,.45); display: flex; align-items: center; justify-content: center; z-index: 50; padding: 16px; }
.mt-modal { background: #fff; border-radius: 16px; padding: 20px; max-width: 420px; width: 100%; box-shadow: var(--mt-shadow); }
.mt-list-plain { list-style: none; margin: 0; padding: 0; }
.mt-warn { color: var(--mt-accent-2); font-size: .9rem; }