:root {
  --accent:          #9b7fe8;
  --accent-light:    #c4a8ff;
  --accent-glow:     rgba(155, 127, 232, 0.15);
  --surface-purple:  #f3f0fd;
}

/* ── Brand ── */
.brand-label {
  color: var(--accent);
  letter-spacing: 0.25em;
}

/* ── Accent button ── */
.btn-accent {
  background-color: var(--accent) !important;
  border: 2px solid var(--accent) !important;
  color: #fff !important;
}
.btn-accent:hover:not(:disabled) {
  background-color: var(--accent-light) !important;
}
.btn-accent:disabled {
  opacity: 0.45;
}

/* ── Badges ── */
.badge-required {
  background-color: var(--accent-glow);
  border: 1px solid var(--accent);
  color: var(--accent);
  font-weight: 600;
}
.badge-optional {
  background-color: transparent;
  border: 1px solid var(--bs-secondary-color);
  color: var(--bs-secondary-color);
  font-weight: 400;
}
.badge-accent-outline {
  background-color: var(--accent-glow);
  border: 1px solid var(--accent);
  color: var(--accent);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
}
.badge-keyword {
  background-color: var(--bs-secondary-bg);
  border: 1px solid var(--bs-border-color);
  color: var(--bs-secondary-color);
  font-size: 0.775rem;
  font-weight: 400;
  padding: 0.35em 0.8em;
}

/* ── Result text ── */
.text-accent-light {
  color: var(--accent-light);
}

/* ── Card tint ── */
.card-purple {
  background-color: var(--surface-purple) !important;
  border-color: rgba(155, 127, 232, 0.3) !important;
}

/* ── Copy protection ── */
#result-card .card-body {
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

/* ── Calendar picker icon ── */
input[type="time"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
}

/* ── 生年月日（年・月・日）入力 ── */
.input-group .input-group-text {
  background-color: transparent;
  border-left: none;
  color: var(--bs-secondary-color);
}
.input-group input.form-control {
  border-right: none;
}

